Герои Меча и Магии 5 - Картостроительство (Редактор карт)В этом разделе можно обсуждать все что касается редактора карт для Heroes of Might and Magic V. Так же здесь обсуждаем картостроительство.
Неа, всё равно глыбу кастует на 20м левеле. Может, тут что-то лишнее?
path = '/'..GetMapDataPath()
main_hero = 'Raelag'
print("ГГ назван");
SetHeroCombatScript('Raelag', path.."CombatScript.xdb#xpointer(/Script)");
print("Комбат скрипт запущен");
LevR = GetHeroLevel('Raelag');
print("LevR установлен как определитель уровня Раилага");
function HeroLevelSaveF()
SetGameVar("LevR", ceil(GetHeroLevel('Raelag')));
print("Установили что LevR это Сет Гейм Вар");
end
SetGameVar("LevR", 1)
Trigger(HERO_LEVELUP_TRIGGER, "Raelag", "HeroLevelSaveF")
function ProbaF()
if LevR < 20 then
print("уровень меньше 20");
else
print("уровень 20 или больше");
end;
end;
Trigger(OBJECT_TOUCH_TRIGGER, "Proba", "ProbaF");
ну я перепроверил этот вариант скрипта у себя, на 20 уровне, как и нужно, кастует шары. Точно героя до нужного уровня апаешь? Покажи, что в мап скрипте полностью написано.
Всё, что там написано, до последней запятой, я выше уже повесила. Там просто больше ничего нет, я даже вступительный ролик ещё не делала. Что до комбат-скрипта, то я поставила молнии, а не шары, чтобы не переписывать. Левел у него точно двадцатый, я в редакторе дала ему опыт и способности, да на нём и написано. Пойду опять на свою пробную карту, понавешаю там то же самое, и проверю, будет ли он кастовать молнии.
МартаЛевел у него точно двадцатый, я в редакторе дала ему опыт и способности, да на нём и написано.
вот тут и кроется проблема. Триггер повышения уровня срабатывает, только если уровень повышается в процессе самой игры, если он был прописан в редакторе, этого не произойдет. Поэтому у тебя срабатывает только строчка
SetGameVar("LevR", 1)
из-за чего боевой скрипт всегда считает, что у героя 1 уровень.
Аа, млин. Так, должно быть, и есть, - на моей пробной карте у него тоже глыбы падают. Дык, как же мне проверить, работает ли скрипт? Всякий раз вручную набивать ему 20й левел? Или, может быть, сменить пока что условие с 20го левела на 2й, а потом переправить, если всё будет хорошо...
ЗЫ Точно, всё так и есть. Не знаю, что там с ним будет на 20м, но при смене числа уровней на 2 он исправно кастует молнии. Большущее спасибо тебе, я же и знать не знала про набор опыта, и вообще про все эти тонкости. Хе) Я на читах собаку съела, но единственное, что я никогда не апала, так это опыт). Если чит зачтут, это выход, точно, - спасибо за идею.
__________________ ✍С уважением, }{0TT@6bI4 _________________ Группа картостроителей Там ответы на вопросы, руководства, гайды и прочее _________________
С уважением, }{0TT@6bI4 _________________ Группа картостроителей Там ответы на вопросы, руководства, гайды и прочее _________________
Gerterвот тут и кроется проблема. Триггер повышения уровня срабатывает, только если уровень повышается в процессе самой игры, если он был прописан в редакторе, этого не произойдет. Поэтому у тебя срабатывает только строчка
SetGameVar("LevR", 1)
из-за чего боевой скрипт всегда считает, что у героя 1 уровень.
Повысить уровень можно @for i=1, N do LevelUpHero("Имягероя") end , где N — количество добавочных уровней. Тогда и запоминать конкретное кол-во опыта для уровней не нужно.
__________________ ✍С уважением, }{0TT@6bI4 _________________ Группа картостроителей Там ответы на вопросы, руководства, гайды и прочее _________________
С уважением, }{0TT@6bI4 _________________ Группа картостроителей Там ответы на вопросы, руководства, гайды и прочее _________________
Чит, увы, не сработал - не зачли. И не факт, что и скрипт в этой ситуации зачтут. Но это не страшно, я уже проверила, - целую рощу деревьев познания насажала, и скакала читом телепорта от одного к другому. Всё работает. Огромное спасибо вам обоим.
WarpHeroExp просто устанавливает число опыта героя, без выдачи навыков/статов, поэтому для быстрого тестирования эта функция, очевидно, удобнее. И это не чит, к слову. Читом можно так(в консоль прописать): enable_cheats add_exp 97972
}{0TT@6bI4Повысить уровень можно @for i=1, N do LevelUpHero("Имягероя") end , где N — количество добавочных уровней. Тогда и запоминать конкретное кол-во опыта для уровней не нужно.
А вы попробовали этот вариант?
__________________ ✍С уважением, }{0TT@6bI4 _________________ Группа картостроителей Там ответы на вопросы, руководства, гайды и прочее _________________
С уважением, }{0TT@6bI4 _________________ Группа картостроителей Там ответы на вопросы, руководства, гайды и прочее _________________
function fon() local day1; while 1 do if GetObjectiveState("zad5")==OBJECTIVE_ACTIVE then day1=GetDate( ABSOLUTE_DAY ) + 2 while day1 >= GetDate( ABSOLUTE_DAY ) do sleep(10); end; SetObjectiveState("dzad3", OBJECTIVE_ACTIVE); break end; sleep(2); end; while 1 do pfonix = GetHeroCreatures( "Main_Hero", CREATURE_PHOENIX); if pfonix >= 5 then SetObjectiveState("dzad3", OBJECTIVE_COMPLETED); SetObjectiveState("dzad2", OBJECTIVE_FAILED); break; end; end; end
Игра просто крашится при его выполнении. Сам скрипт был навеян похожим циклом из кампании за Маркела. Вся эта конструкция должна работать. Не уверен, но возможно проблема именно в исполнении через поток.