Неа, всё равно глыбу кастует на 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 он исправно кастует молнии. Большущее спасибо тебе, я же и знать не знала про набор опыта, и вообще про все эти тонкости. Хе) Я на читах собаку съела, но единственное, что я никогда не апала, так это опыт). Если чит зачтут, это выход, точно, - спасибо за идею.
Gerterвот тут и кроется проблема. Триггер повышения уровня срабатывает, только если уровень повышается в процессе самой игры, если он был прописан в редакторе, этого не произойдет. Поэтому у тебя срабатывает только строчка
SetGameVar("LevR", 1)
из-за чего боевой скрипт всегда считает, что у героя 1 уровень.
Повысить уровень можно @for i=1, N do LevelUpHero("Имягероя") end , где N — количество добавочных уровней. Тогда и запоминать конкретное кол-во опыта для уровней не нужно.
Чит, увы, не сработал - не зачли. И не факт, что и скрипт в этой ситуации зачтут. Но это не страшно, я уже проверила, - целую рощу деревьев познания насажала, и скакала читом телепорта от одного к другому. Всё работает. Огромное спасибо вам обоим.
WarpHeroExp просто устанавливает число опыта героя, без выдачи навыков/статов, поэтому для быстрого тестирования эта функция, очевидно, удобнее. И это не чит, к слову. Читом можно так(в консоль прописать): enable_cheats add_exp 97972
}{0TT@6bI4Повысить уровень можно @for i=1, N do LevelUpHero("Имягероя") end , где N — количество добавочных уровней. Тогда и запоминать конкретное кол-во опыта для уровней не нужно.
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
Игра просто крашится при его выполнении. Сам скрипт был навеян похожим циклом из кампании за Маркела. Вся эта конструкция должна работать. Не уверен, но возможно проблема именно в исполнении через поток.