Сообщения от Текущие вопросы и ответы по редактору карт
function DefenderCreatureMove(Unit)
Существ призывает вот эта функция (временное призывание):
SummonCreature(кому, какое, сколько, координаты)
Отслеживал количество смертей я бы с помощью
GetCreatureNumber(unitName);
Как-то так.
GetCreatureNumber(unitName);
.
И как вызваьт это отслеживание в определенный момент?
function DefenderCreatureMove(Unit)
if GetCreatureType(Unit)==CREATURE_SNOW_APE then
SummonCreature(DEFENDER, 54, GetCreatureNumber(Unit), 13,8);
end;
end;Что произойдёт: каждый раз, когда у врага ход передастся йети, призовётся столько существ номер 54, сколько йети в стеке. Выглядит немного нестандартно для скриптового языка, но работает.
Ну, это все предисловие, суть в следующем:
А как сделать так, чтобы переносить свои "моды" вместе с картой через интернет?
Заранее, спасибо.
Ну...например, я поставил на карту героя, изменил ему shared, у меня он теперь выглядит как друид, допустим, я выкладываю карту в интернет, он и там будет такой же?
И еще - если я потом создаю новую карту и ставлю этого героя, то он опять выглядит нормально, а при запуске игры все-равно превращается в друида.
Вот, как это работает. При запуске игра ищет в определённых директориях все zip-архивы с определённым расширением. Сначала она просматривает папку data и загружает оттуда все архивы с расширением pak. Потом отправляется в Maps, грузит оттуда h5m-архивы. Аналогично в UserMODs, оттуда даже по-моему грузятся все архивы вне зависмости от расширения, ну архивы h5u точно. Если загрузилось два файла с одинаковым именем, в игру попадает самый новый (дата создания ближе к текущей). Ну вот и всё. Таким образом, если у Вас карта в папке Maps находится, она загрузится в базу данных уже при старте игры и все моды из этой карты будут действовать везде.
Или качать мод ncf, там больше ID.
Большое Вам спасибо, узнал много интересной информации!
Я бы написал с помощью вспомогательных значений. Например, в самом начале карты поставил
a = 0;
На втором триггере сделал бы проверку
if a == 1 then
Ваша функция
Обнуление триггера
else
of a == 0 then
Текст: вы не посетили первую хижину
end;
end;
А в первой хижине написать вашу функцию, а в конце добавить
a = 1;
Если не понятно, могу потом написать подробный шаблон.
Попробовал сделать - всё получилось. Ещё раз спасибо. Только не совсем понятно: "а" - это вообще что такое? Я очень мало понимаю в программировании, разбираюсь немного только в css. Как эта "а" действует? Я попытался присвоить числовое значение другой букве - "b", но когда в скрипте и "а" и "b" редактор выдаёт ошибку и не сохраняет карту почему-то.
Добавлено через 48 секунд
Такой вопрос: мне нужно запустить диалог, а после - выдать текстовое сообщение, резюмирующие идею диалога, мол, "Вам нужно туда-то". Пишу:
StartAdvMapDialog("0");
MessageBox("путь\имя.txt");
Но это сообщение появляется не после диалога, а перед ним. Есть ли какая-то функция, чтобы разделить их по времени?
2-Между диалогом и сообщением поставить sleep(10)
1- a -это переменная. Если писать b, так надо заменить все a на b.
2-Между диалогом и сообщением поставить sleep(10)
Коротко и ясно - благодарю)
Ну вот пример применения:Что произойдёт: каждый раз, когда у врага ход передастся йети, призовётся столько существ номер 54, сколько йети в стеке. Выглядит немного нестандартно для скриптового языка, но работает.function DefenderCreatureMove(Unit)
if GetCreatureType(Unit)==CREATURE_SNOW_APE then
SummonCreature(DEFENDER, 54, GetCreatureNumber(Unit), 13,8);
end;
end;
Если у игрока может быть любое кол-во стеков существ и кол-во существ в стеках, то как в начале боя посчитать кол-во существ в каждом стеке у игрока, а потом для каждого из них производить сравнение?