Сообщения от Скрипты для начинающих
BlueHeavenHero, закинуть героя в резервный пул игрока и через скрипт его респанить когда нужно) Думаю, с добавлением в резерв разберёшься, а спавнить героя из резерва вот так: DeployReserveHero( "скриптовое имя героя", x, y, поверхность/подземка );
Важный момент: Не ставь на карту героя который находится в резерве у какого-либо игрока, иначе ты поломаешь скрипт)
Если нужен прям скрипт на респавн, то можно использовать проверку потери героев у игрока и спавнить резервного если был убит именно он. Т.е...:
DeployReserveHero( "скриптовое имя героя", координата x, координата y, поверхность/подземка ); --не знаю задумку, но допустим вначале игры заспавним героя из резерва как будто он изначально поставлен на карту
function RespawnFromReserve( MyHero )
if MyHero == "скриптовое имя героя" then
DeployReserveHero( "скриптовое имя героя", координата x, координата y, поверхность/подземка );
end
end
Trigger( PLAYER_REMOVE_HERO_TRIGGER, PLAYER_номер игрока которому принадлежит герой, "RespawnFromReserve") --когда игрок теряет героев, запускаем скрипт в котором заспавним нужного героя если потеряли его
BlueHeavenHero, закинуть героя в резервный пул игрока и через скрипт его респанить когда нужно) Думаю, с добавлением в резерв разберёшься, а спавнить героя из резерва вот так: DeployReserveHero( "скриптовое имя героя", x, y, поверхность/подземка );
Важный момент: Не ставь на карту героя который находится в резерве у какого-либо игрока, иначе ты поломаешь скрипт)
Если нужен прям скрипт на респавн, то можно использовать проверку потери героев у игрока и спавнить резервного если был убит именно он. Т.е...:DeployReserveHero( "скриптовое имя героя", координата x, координата y, поверхность/подземка ); --не знаю задумку, но допустим вначале игры заспавним героя из резерва как будто он изначально поставлен на карту
function RespawnFromReserve( MyHero )
if MyHero == "скриптовое имя героя" then
DeployReserveHero( "скриптовое имя героя", координата x, координата y, поверхность/подземка );
end
end
Trigger( PLAYER_REMOVE_HERO_TRIGGER, PLAYER_номер игрока которому принадлежит герой, "RespawnFromReserve") --когда игрок теряет героев, запускаем скрипт в котором заспавним нужного героя если потеряли его
Здравствуйте. Вопрос, наверно, не по теме, но как добавить маны герою? Хочется сделать финальному боссу 300 маны.
1) Выставить ему в редакторе параметр "знания" в 30
2) Воспользоваться скриптом ChangeHeroStat( Имя героя, 7, 300 ) (7 это параметр маны)
3) Еще можно Выдавать через боевой скрипт, но это слишком заморочено, 2 первых примера работают куда надежнее
Кампании: "Новый порядок", "Серый Альянс", "Поиски Истины"
Трейлер №2 кампании "Дыхание Пустоты": https://www.youtube.com/watch?v=XkHKXk5BctA&ab_channel=%D0%90ndrei_21
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
Реализовать цель через скрипт. Отключить в нужный момент триггер от смерти прежнего героя, убрать героя, дать нового и включить триггер уже от его смерти. Как вариант.
Trigger(PLAYER_REMOVE_HERO_TRIGGER, номер игрока, "скрипт")
function скрипт(hero)
if ( hero == "герой " ) or ( hero == "некромант" ) then
Loose()
end
end
Но я не уверен, что ты не проиграешь как только с карты исчезнет изначальный герой, к тому же, некромант я так думаю из резерва появляется, а не телепортируется откуда-то с края карты... поэтому предлагаю сделать так:
necromant = 0 пишем это в самом начале всего скрипта карты отдельной строкой
В начале скрипта с заменой героя пишем necromant = 1
Trigger(PLAYER_REMOVE_HERO_TRIGGER, 1, "Heroes")
function Heroes(hero)
if ( hero == "герой 1" ) and necromant == 0 then
UnreserveHero("некромант") если некр из резерва появляется
Loose()
elseif ( hero == "некромант" ) then
UnreserveHero("некромант") если некр из резерва появляется
Loose()
end
end
Сценарий уже на 47% готов, осталось доделать часть дизайна и скрипты. И вот я в ступоре. По сюжету главный герой превращается в некроманта. Как это сделать, причем так, чтобы задача на выживание оставалась актуальна?
Да в принципе легко) Резервируем героя-некроманта, делаем квест на сохранение главного героя технически пустым(OBJECTIVE_KIND_MANUAL) чтобы контролировать его работу через скрипты. В скриптах же напишем такое:
NowNecromancer = 0 --Условие, которое выдадим когда героя сделаем некромантом
function prim_save_gg( heroName ) --название функции по этому квесту можешь сделать другим) Это так, чтобы было понятней
if ( heroName == Duncan ) and NowNecromancer ~= 1 then --Duncan взят для примера. Вставишь сюда скриптовое имя своего героя
SetObjectiveState("скриптовое имя квеста", OBJECTIVE_FAILED) --фейлим квест на сохранение главного героя
sleep(10) --дадим время чтобы игрок увидел провал квеста и осознал что он потерял главного героя
Loose() --фейлим миссию, ведь наш герой погиб до того как стал некромантом
elseif ( heroName == Duncan ) and NowNecromancer == 1 then --теряем героя с полученным условие что мы теперь некромант и от этого не проигрываем
print("Всё окей, условие есть. Помер и помер, с кем ни бывает? Теперь я некромант, пойду что ли черепами закуплюсь")
end
if ( heroName == DuncanNecro ) and NowNecromancer == 1 then --наш герой - некромант, условие что мы его сделали некромантом выполнено
SetObjectiveState("скриптовое имя квеста", OBJECTIVE_FAILED) --фейлим квест на сохранение главного героя
sleep(10) --дадим время чтобы игрок увидел провал квеста и осознал что он потерял главного героя
Loose() --фейлим миссию, ведь наш герой погиб уже после того как стал некромантом
end
end
function TransformToNecromancer() --тут пропишем что именно произойдёт после чего ГГ станет некромантом. Откуда она будет вызываться - это уже тоже тебе решать)
--всякая всячина автора, ктож знает какие у него условия?
NowNecromancer = 1 --выдадим условие чтобы игра не зафейлилась после удаления гг
sleep(2) --на всякий случай, дадим игре переварить полученную информацию
DeployReserveHero("DuncanNecro", x, y, GROUND/UNDERGROUND) --ставим нового гг чтобы игра не зафейлилась если вдруг у игрока ток один герой и нет замка с таверной
sleep(2) --тоже на всякий случай, дадим игре всё обработать
RemoveObject("Duncan") --безболезненно удаляем гг
end
Trigger(PLAYER_REMOVE_HERO_TRIGGER, PLAYER_1, "prim_save_gg") --триггер на отслеживание потерь героев игроком PLAYER_1
Пробуй)
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
Так. А функция MakeHeroNecromancer чем не удовлетворяет условиям? Она из любого героя делает некроманта с тёмной энергией
Я тут новенький и я хотел бы создавать карты со скриптами.
Почему я пишу сюда?
Из-за того что скрипт не работает почему-то.
Вот сам скрипт:
function MakeHeroes()
DeployReserveHero("Itil", 127, 74, 0);
ChangeHeroStat("Itil", 0, 90000);
end;
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "geroy", "MakeHeroes");
Я просто хочу, чтобы спавнился герой ,когда я встаю в определенную зону.
Надеюсь получить ответ)
Блин, надеюсь я написал в нужную тему.