function BiaraKill () while 1 do sleep (10); if IsHeroAlive ("Biara") == nil then SetObjectiveState ("obj2",OBJECTIVE_COMPLETED); Sleep(2); break; end; end; end;
startThead("BiaraKill);
Нужно чтобы после смерти Биары выполнялась задача obj2.Заранее спасибо...
RedHeavenHero
Sleep написан с заглавной буквы, а надо со строчной.
Добавлено через 32 секунды В startThread пропущена r.
Добавлено через 56 секунд Перед BiaraKill кавычка ни к селу, ни к городу.
Рыцарь Бездны, Вообще третий видимо лучше всего, но, я совсем не разбираюсь в скриптах, буквально на днях начал что-то делать с ними. Единственное, что я могу, это сделать скрипт с начальным капиталом игрока... Так что не могли бы Вы написать как именно будет выглядеть сам скрипт? Буду очень благодарен...
И ещё, такая штука... Если герой (вражеские тоже), находится без замка, то через неделю игрок терпит поражение. Нельзя ли как-нибудь убрать эту функцию? Чтобы не было миссии "Захватить любой город в течение недели".
Добавлено через 16 минут И как сделать так, чтобы бот нападал на 2, 3, 4 и тд дни? То есть не сразу.
Ну вот вас скрипт на картинке (извиняюсь за рекламу бандикама,недумал что его будет видно) Вобщем в начале второго месяца появляется герой (в моем случае Грол) и бежит по кординатам 23,101.Вам вместо 23,101 нужно указать место входа в ваш город,а в DeployReserveHero поставить кординаты где ваш герой должен появляться.Только чтобы герой появился нужно его предварительно создать. Для это нажмите английскую М,выберите окно Players Properties,там выберите нужного игрока,потом внизу будет окно Reserve Heroes,нажмите там add,дальше сами разберетесь)
А чтобы через неделю поражение не выдавалось в окне слева найдите вкладку Objectives, нажмите +, выберите Primary> Common,там будет цифра ноль,это задание "победить всех",и под ним еще одно окно,в нем написанно true,поменяйте true на false и больше не будет поражение выдаваться....
Pert17 Столкнулся с проблемой.Почемуто этот скрипт работает только на одного ReserveHero. Если продублировать этот скрипт,заменив имя героя и название функции то не срабатывают и первая функция и дублированая.Так что увы эта функция подходит только для одного героя,если вы хотите несколько атак то она не сработает...
Добавлено через 4 минуты И да,подскажите пожалуста кто знает,почему если я копирую такой же скрипт,но DemonAtack_1 заменяю на Demon_Atack2,а Calid заменяю на Grok,то перестают работать и Demon_Atack1 и Demon_Atack2? Заранее огромное спасибо...
RedHeavenHero
Дублировать надо не всю функцию, а блок if-then-end внутри неё.
Думаю, там просто нужно дождаться окончания боя, и по результату уже запускать функцию ещё раз. Ну и да, RedHeaven дело говорит, там надо внимательно смотреть содержимое. А то один триггер перезапишет другой, как минимум.
Думаю, там просто нужно дождаться окончания боя, и по результату уже запускать функцию ещё раз. Ну и да, RedHeaven дело говорит, там надо внимательно смотреть содержимое. А то один триггер перезапишет другой, как минимум.
Простите,там моя неточность,забыл указать что кроме имени функции и имени героя еще и дата вызова менялась,ну как бы демоны из врат ада вылазили и все дружно бежали в одну точку,так что вариант RedHeavenHero идеально подходит... А можно еще один вопросик? Не подскажите как можно установить временные рамки для нескольких задач? Для одной у меня без проблем получалось,писал тригер чтобы при достижении определенной даты выдавалось поражение а при выполнении условия обнулял тригер,но когда оказалась нужна еще одна временная рамка для следующей задачи попытался как и в первом случае продублировать функцию,подставив новые значения но обе функции перестали работать. Также благодоря подсказкам пытался обьеденить две функции в одну через elseif но ничего работоспособного у меня не вышло... Вобщем подскажите пожалуста,каким образом можно реализовать 2 временных рамки (ну или промежутка) для выполнения задач... Ну допустим "захватить гарнизон 1 за одну неделю" и "захватить гарнизон 2 за 3 недели". Извините что так много текста,надеюсь я вас не запутал.Как всегда заранее большое спасибо...
Добавлено через 18 часов 22 минуты Вобщем написал я там полную бурду... Посмотрите пожалуста, там вверху одна из функций,а внизу два loose тригера,по моей задумке я писал NEW_DAY_TRIGGER,в котором при достижении нужной даты без всяких вопросов выдавалось поражение,и не обнулял этот тригер,а обнуление вставлял в фунуцию выполнения задачи... По началу,когда loose тригер был только один,все работало как надо,но потом когда тригеров стало двое,т.к появилась еще одна задача "на время" оба они перестали работать.
Помогите пожалуста, как можно заставить заработать loose2 и loose3,очень нужно,прямо вопрос жизни и смерти :smile45:
Ment
Содержимое loose3 скопируйте в тело loose2, без замены, между двумя end'ами. loose3 и связанный с ним триггер удалить. И посмотрите, что вышло.
И еще триггер обнуляется неправильно, надо: Trigger(NEW_DAY_TRIGGER, nil); первый параметр - условие, в данном случае "новый день", второй параметр - функция, выполняющаяся по условию. Ее и нужно занулить при выключении триггера.
Bravo1853
Вылетает редактор, когда открываю Edit Script, не знаю куда теперь вводить скрипты.
RedHeavenHero
Bravo1853
Вылетает редактор, когда открываю Edit Script, не знаю куда теперь вводить скрипты.
Попробуйте открыть карту архиватором и редактировать файл скрипта карты блокнотом. Имя файла - MapScript.lua.
Добавлено через 29 минут Рыцарь Бездны, плюс к тому, что сказали Ment и Jack_of_shadows, в функциях loose2 и loose3 OBJECTIVE_FAILED написано неверно
Совет: отправляйте скрипт текстом в тегах
, а не картинках. МБ, кто и отредактирует, но с изображения вряд ли кто-то перепечатывать будет.
Содержимое loose3 скопируйте в тело loose2, без замены, между двумя end'ами. loose3 и связанный с ним триггер удалить. И посмотрите, что вышло.
Спасибо,помогло) Сначала ничего не изменилось... Видимо потому что у меня еще один NEW_DAY_TRIGGER был. Когда вставил туда то всё заработало,при достижении нужного дня поражение выдается,но теперь другая проблема,непонимаю как всё это дело обнулить при выполнении задания... Ведь тригер один,а функции 2,если обнулить тригер при выполнении первого задания то вместе с содержимым loose2 обнулится и loose3,и вторая задача останется без ограничений по времени... Вобщем странно это всё,почему вобще два NEW_DAY_TRIGGERа конфликтуют,на разрабовских картах этих тригеров куча и всё хорошо... Да и посмотрел скрипты во второй миссии за Илайю (там были ограничения по времени на захват гарнизонов),как ни странно там небыло ниодного скрипта на поражение при достижении нужной даты... Как вобще разработчики такого добились без скриптов. Вобщем извините за безпокойство,видимо мне такими скриптами еще рано заниматься.
Добавлено через 5 минут Jack_of_shadows
И еще триггер обнуляется неправильно, надо: Trigger(NEW_DAY_TRIGGER, nil); первый параметр - условие, в данном случае "новый день", второй параметр - функция, выполняющаяся по условию. Ее и нужно занулить при выключении триггера.
Разве? Я на картах разработчиков видел что они и при обнулении имя функции указывали... Да и у меня всё работало пока тригер был один.Ну попробую так как вы сказали)
RedHeavenHero
Проще всего, сделать одну функцию на все временные события, и добавить проверку дополнительного условия, например, состояние задачи.