Перейти к содержанию

Сообщения от Скрипты

Аватар пользователя
Доброго времени суток!

Функция PlayObjectAnimation не работает на героев, или я что-то не так делаю?
В свойствах поставил ему нужный AnimSet и HeroCharacterAdventure. При одинаковых условиях обычное существо все проигрывает, а от героя никакой реакции.
Аватар пользователя
не работает
Нет войне.
Всем привет:)

У меня такой вопрос, можно ли ставить боевые скрипты (на героев) в мультиплеерных картах или они работают только для одиночных. И если можно, есть ли карты на сайте на которых можно посмотреть как они реализованы)
Ясно, спасибо
Аватар пользователя
Привет всем :)
Вопросы таковы:Можно ли вызвать функцию без использования стандартных триггеров?
И есть ли более ли менее подробное описание работы while do и for?
В ответ пользователю Jewily
Аватар пользователя
Можно ли вызвать функцию без использования стандартных триггеров?
вызвать при старте карты - прописать вызов функции в любом месте скрипта. Вызвать из другой функции/потока.
И есть ли более ли менее подробное описание работы while do и for?

погугли гайд Novik'а - там есть общая инфа по работе скриптов + хорошее описание большинства функций на русском. В целом, здесь стандартные циклы Lua 4.0
Нет войне.
В ответ пользователю Gerter
Аватар пользователя
Спасибо.Постараюсь разобраться с потоками,хотя если честно язык Novik`a весьма сложен,как для человека далекого от языков программирования :).
Аватар пользователя
И снова привет форум.Может кто подскажет,как прибавить к переменной еденицу?т.е я запускаю цикл с проверкой,изменилась ли моя переменная на "+1"(в моём случае это GetHeroLevel).Однако игра не реагирует вообще,будто у меня ошибка в синтаксисе.
В ответ пользователю Jewily
Аватар пользователя
Jewill
И снова привет форум.Может кто подскажет,как прибавить к переменной еденицу?т.е я запускаю цикл с проверкой,изменилась ли моя переменная на "+1"(в моём случае это GetHeroLevel).Однако игра не реагирует вообще,будто у меня ошибка в синтаксисе.

Вообще прибавить единицу:
a = a + 1

В случае с циклом на проверку уровня я бы сделал так:

a = 1;
while 1 do
sleep(2);
if GetHeroLevel(hero) - a == 1 then
...
end
sleep(2);
a = GetHeroLevel(hero);
end

А так для этого дела есть:
Trigger(HERO_LEVELUP_TRIGGER, hero, function)
В ответ пользователю 32MeTpa
Аватар пользователя
32MeTpa
Вообще прибавить единицу:
a = a + 1

В случае с циклом на проверку уровня я бы сделал так:

a = 1;
while 1 do
sleep(2);
if GetHeroLevel(hero) - a == 1 then
...
end
sleep(2);
a = GetHeroLevel(hero);
end

А так для этого дела есть:
Trigger(HERO_LEVELUP_TRIGGER, hero, function)

Спасибо :) .функция прекрасно работает в единичном случае.А что если мне нужно,чтобы действие выполнялось при Каждом
повышении уровня?Прошу прощение за глупые вопросы,но манипуляции со знаками сравнения не помогли.
Аватар пользователя
Trigger(HERO_LEVELUP_TRIGGER, hero, function)
- функция function будет вызвана при каждом повышении уровня героем hero
Нет войне.
В ответ пользователю Gerter
Аватар пользователя
Чтож,спасибо вам обоим за ответы,действительно,через триггер всё работает по-человечески.Попытался ещё покопаться в картах уважаемого 32MeTpa,там всё хоть и лаконично расписано,но моих знаний не хватает.:smile15:
UPD:перестало работать от слова совсем.Всё просто и элементарно,однако существа даются при первом повышении уровня,а на остальных ничего не происходит.В чём оплошность?
function a()
AddHeroCreatures("Sarge",CREATURE_ARCHER,20);
Trigger(HERO_LEVELUP_TRIGGER,"Sarge",nil)
end;
Trigger(HERO_LEVELUP_TRIGGER,"Sarge","a")
В ответ пользователю Jewily
Аватар пользователя
Jewill

UPD:перестало работать от слова совсем.Всё просто и элементарно,однако существа даются при первом повышении уровня,а на остальных ничего не происходит.В чём оплошность?
function a()
AddHeroCreatures("Sarge",CREATURE_ARCHER,20);
Trigger(HERO_LEVELUP_TRIGGER,"Sarge",nil)
end;
Trigger(HERO_LEVELUP_TRIGGER,"Sarge","a")
Trigger(HERO_LEVELUP_TRIGGER,"Sarge",nil)
Вот эта строчка триггер обнуляет, потому он один раз выполняется и отключается. Просто уберите ее и будет работать при каждом повышении.
В ответ пользователю 32MeTpa
Аватар пользователя
32MeTpa
Trigger(HERO_LEVELUP_TRIGGER,"Sarge",nil)
Вот эта строчка триггер обнуляет, потому он один раз выполняется и отключается. Просто уберите ее и будет работать при каждом повышении.
Спасибо.Не знаете ли кстати,возможно ли каким-то образом давать герою одного класса перки другого(GiveHeroSkill может выдать навык первого уровня,но отказывается выдавать умения) только скриптами.Или нужно менять что-то в GameMechanics в структуре героя?Ещё раз спасибо за столь быстрые ответы и трату времени.

Статистика

Приветствуем новейшего участника: Emil