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

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

Аватар пользователя
#3838

BlueHeavenHero, понял... Тогда, перепишем функцию на такое:

function TownCaptured( oldowner, newowner )
if ( newowner == PLAYER_1 ) and ( GetObjectiveState("prim6") ~= OBJECTIVE_ACTIVE ) then
DeployReserveHero("Christian", 98, 108, 0)
SetObjectiveState("prim5", OBJECTIVE_COMPLETED, 1)
SetObjectiveState("prim6", OBJECTIVE_ACTIVE, 1)
sleep(3)
MoveHero("Christian", 126, 139, -1)
end
if newowner == PLAYER_2 then
SetObjectiveState("prim5", OBJECTIVE_FAILED, 1)
sleep(10)
Loose()
end
end

Trigger( OBJECT_CAPTURE_TRIGGER, "castle", "TownCaptured" );

По этой же аналогии вешаем триггер на потерю героев на игрока, которому принадлежит ваш герой, по потере которого запустится функция, которая проверит нужного ли героя игрок потерял и тогда запустится ролик или ещё что-нибудь если потребуется.

BlueHeavenHero
Кстати, примерно такая же проблема возникла и с другой функцией - запускается кат-сцена, потом начинается битва, и ПОСЛЕ битвы вылазит текстовое сообщение. Но - запускается кат-сцена, и текстовое сообщение вылазит ДО битвы. Как это исправить? 

Если битва запускается через StartCombat, то там есть аргумент который позволяет запустить функцию по завершению боя. Пропиши функцию с текстом, которая запустится после боя и выдаст текст.

Аватар пользователя
#3839
Игра не собирается дожидаться, пока герой дойдёт до точки. Отпустила в свободное плавание — и вперёд. Вам надо либо придумать хитрое условие, по которому проверять, напал ли герой, — while УСЛОВИЕ do sleep() end и потом уже ифы с роликами. Либо — битву запускать старткомбатом (сразу после MoveHero) и ролик вынести со всеми остальными ифами в  новую функцию, которую указать коллбэком для старткомбата.
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
В ответ пользователю Азгалор
Аватар пользователя
#3840
Азгалор

BlueHeavenHero, понял... Тогда, перепишем функцию на такое:

function TownCaptured( oldowner, newowner )
if ( newowner == PLAYER_1 ) and ( IsHeroAlive("Christian") ~= true ) then
StartDialogScene("/DialogScenes/FallenKnight/S3/DialogScene.xdb#xpointer(/DialogScene)")
sleep(1)
DeployReserveHero("Christian", 98, 108, 0)
SetObjectiveState("prim5", OBJECTIVE_COMPLETED, 1)
SetObjectiveState("prim6", OBJECTIVE_ACTIVE, 1)
sleep(3)
MoveHero("Christian", 126, 139, -1)
end
if newowner == PLAYER_2 then
SetObjectiveState("prim5", OBJECTIVE_FAILED, 1)
sleep(10)
Loose()
end
end

Trigger( OBJECT_CAPTURE_TRIGGER, "castle", "TownCaptured" );

По этой же аналогии вешаем триггер на потерю героев на игрока, которому принадлежит ваш герой, по потере которого запустится функция, которая проверит нужного ли героя игрок потерял и тогда запустится ролик или ещё что-нибудь если потребуется.

Если битва запускается через StartCombat, то там есть аргумент который позволяет запустить функцию по завершению боя. Пропиши функцию с текстом, которая запустится после боя и выдаст текст.

С сообщением я всё исправил, а вот с роликом проблемы.. 
Он мало того, что проигрывается ДО нападения Витторио, так ещё и SetObjectiveState не работают и этот треклятый Витторио не нападает! 

Мои карты:
Падший рыцарь
Сердце Хаоса

Мои моды:
Визуальные:
Изменение внешнего вида героев-некромантов
Существа-жители и кое-что по мелочи в городах Ордена Порядка, Некрополиса и Инферно

NCF-существа:
Странствующие рыцари
Наемники

В ответ пользователю BlueHeavenHero
Аватар пользователя
#3841
BlueHeavenHero
С сообщением я всё исправил, а вот с роликом проблемы.. 
Он мало того, что проигрывается ДО нападения Витторио, так ещё и SetObjectiveState не работают и этот треклятый Витторио не нападает! 
Упс, с выдачей ролика запутался - поправил функцию из прошлого поста, как и проверку условий на спавн, завершение квеста и выдачу нового. Проверь в игре, и посмотри что выдаст консоль если квесты опять не будут обновляться.
В ответ пользователю Азгалор
Аватар пользователя
#3842
Азгалор
Упс, с выдачей ролика запутался - поправил функцию из прошлого поста, как и проверку условий на спавн, завершение квеста и выдачу нового. Проверь в игре, и посмотри что выдаст консоль если квесты опять не будут обновляться.

Мои извинения за столь грубое сообщение выше.
Проверить сейчас не смогу. Написал скрипт на проверку, жив ли Витторио, и если нет - запускается ролик. Но опять-таки сомневаюсь в работоспособности сего скрипта.. frown

Christian = 0 --пишу это в начале скрипта
function ChristianDeath()
if (heroName == "Christian") and Christian ~= 1 then
StartDialogScene("/DialogScenes/FallenKnight/S3/DialogScene.xdb#xpointer(/DialogScene)")
SetObjectiveState("prim5", OBJECTIVE_COMPLETED, 1)
SetObjectiveState("prim6", OBJECTIVE_ACTIVE, 1)
elseif (heroName == "Christian") and Christian == 1 then
print("Витторио захватил замок?")
end;
end;

Trigger(PLAYER_REMOVE_HERO_TRIGGER, PLAYER_2, "ChristianDeath")

Мои карты:
Падший рыцарь
Сердце Хаоса

Мои моды:
Визуальные:
Изменение внешнего вида героев-некромантов
Существа-жители и кое-что по мелочи в городах Ордена Порядка, Некрополиса и Инферно

NCF-существа:
Странствующие рыцари
Наемники

В ответ пользователю BlueHeavenHero
Аватар пользователя
#3843
BlueHeavenHero

Мои извинения за столь грубое сообщение выше.
Проверить сейчас не смогу. Написал скрипт на проверку, жив ли Витторио, и если нет - запускается ролик. Но опять-таки сомневаюсь в работоспособности сего скрипта.. frown

Christian = 0 --пишу это в начале скрипта
function ChristianDeath()
if (heroName == "Christian") and Christian ~= 1 then
StartDialogScene("/DialogScenes/FallenKnight/S3/DialogScene.xdb#xpointer(/DialogScene)")
SetObjectiveState("prim5", OBJECTIVE_COMPLETED, 1)
SetObjectiveState("prim6", OBJECTIVE_ACTIVE, 1)
elseif (heroName == "Christian") and Christian == 1 then
print("Витторио захватил замок?")
end;
end;

Trigger(PLAYER_REMOVE_HERO_TRIGGER, PLAYER_2, "ChristianDeath")

 

Поправь эти строки:

function ChristianDeath( heroName )

and ( Christian ~= 1 ) then

and (Christian == 1 )  then

И да, у тебя квест обновится и другой выдастся уже после разгрома героя, хотя ты до этого писал что тебе нужна операция с квестами до боя с ним) Впрочем, хозяин - барин 😏

В ответ пользователю Азгалор
Аватар пользователя
#3844
Азгалор

И да, у тебя квест обновится и другой выдастся уже после разгрома героя, хотя ты до этого писал что тебе нужна операция с квестами до боя с ним) Впрочем, хозяин - барин 😏

Квесты, как и положено, должны появлятся после смерти Витторио) И спасибо за поправку.

Добавлено через 11 часов 56 минут
Азгалор
Упс, с выдачей ролика запутался - поправил функцию из прошлого поста, как и проверку условий на спавн, завершение квеста и выдачу нового. Проверь в игре, и посмотри что выдаст консоль если квесты опять не будут обновляться.
Протестировал, всё работает. Спасибо за помощь! 

Мои карты:
Падший рыцарь
Сердце Хаоса

Мои моды:
Визуальные:
Изменение внешнего вида героев-некромантов
Существа-жители и кое-что по мелочи в городах Ордена Порядка, Некрополиса и Инферно

NCF-существа:
Странствующие рыцари
Наемники

В ответ пользователю BlueHeavenHero
Аватар пользователя
#3845
Всем привет! Возникла проблема. Когда захватываю финальный город, активируется ролик Final, разрушается сам город НО - весь остальной скрипт не работает!
function Final()
RazeTown("FinalHaven")
sleep(1)
StartDialogScene("/DialogScenes/FallenKnight/Final/DialogScene.xdb#xpointer(/DialogScene)")--- после этой функции скрипт не работает!
StartCombat("HafadNecro", "MelhiorFinalCombat", 5, 14, 22, 13, 22, 14, 22, 13, 22, 14, 22, "\Maps\SingleMissions\FallenKnight\FinalCombat.xdb#xpointer(\Script)", nil, "\Scenes\CombatArenas\FinalCombat.(AdventureFlybyScene).xdb#xpointer(\AdventureFlybyScene)", nil)
StartDialogScene("/DialogScenes/FallenKnight/Outro/DialogScene.xdb#xpointer(/DialogScene)")
sleep(3)
Win()
end;

Trigger(OBJECT_CAPTURE_TRIGGER, "FinalHaven", "Final")

Мои карты:
Падший рыцарь
Сердце Хаоса

Мои моды:
Визуальные:
Изменение внешнего вида героев-некромантов
Существа-жители и кое-что по мелочи в городах Ордена Порядка, Некрополиса и Инферно

NCF-существа:
Странствующие рыцари
Наемники

В ответ пользователю BlueHeavenHero
Аватар пользователя
#3846
BlueHeavenHero
Всем привет! Возникла проблема. Когда захватываю финальный город, активируется ролик Final, разрушается сам город НО - весь остальной скрипт не работает!
function Final()
RazeTown("FinalHaven")
sleep(1)
StartDialogScene("/DialogScenes/FallenKnight/Final/DialogScene.xdb#xpointer(/DialogScene)")--- после этой функции скрипт не работает!
StartCombat("HafadNecro", "MelhiorFinalCombat", 5, 14, 22, 13, 22, 14, 22, 13, 22, 14, 22, "\Maps\SingleMissions\FallenKnight\FinalCombat.xdb# xpointer(\Script)", nil, "\Scenes\CombatArenas\FinalCombat.(AdventureFlybySc ene).xdb#xpointer(\AdventureFlybyScene)", nil)
StartDialogScene("/DialogScenes/FallenKnight/Outro/DialogScene.xdb#xpointer(/DialogScene)")
sleep(3)
Win()
end;

Trigger(OBJECT_CAPTURE_TRIGGER, "FinalHaven", "Final")
Консоль на что жалуется?
В ответ пользователю Азгалор
Аватар пользователя
#3847
Азгалор
Консоль на что жалуется?
Консоль ни на что из скриптов не жалуется.
Вложения 1
1 файл • Общий размер: 6,0 KB

Мои карты:
Падший рыцарь
Сердце Хаоса

Мои моды:
Визуальные:
Изменение внешнего вида героев-некромантов
Существа-жители и кое-что по мелочи в городах Ордена Порядка, Некрополиса и Инферно

NCF-существа:
Странствующие рыцари
Наемники

Аватар пользователя
#3849
Думаю, проблема в криво созданной арене для боя: игра её запускает, сталкивается с критической ошибкой и уходит на покой. Рекомендую отдельно попробовать запустить бой на этой арене и посмотреть наличие вылета
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
В ответ пользователю }{0TT@6bI4
Аватар пользователя
#3850
}{0TT@6bI4
Думаю, проблема в криво созданной арене для боя: игра её запускает, сталкивается с критической ошибкой и уходит на покой. Рекомендую отдельно попробовать запустить бой на этой арене и посмотреть наличие вылета
Теперь, благодаря помощи Азгалора всё работает.

Добавлено через 3 часа 25 минут
Всем доброго времени суток! Написал боевой скрипт,  протестировал, всё работает. Но - функция AddCreatures просто добавляет существ, без какого-либо эффекта, а хотелось бы для красоты добавить какой-нибудь эффект. (Важно! Функция SummonCreature НЕ подходит!)

Мои карты:
Падший рыцарь
Сердце Хаоса

Мои моды:
Визуальные:
Изменение внешнего вида героев-некромантов
Существа-жители и кое-что по мелочи в городах Ордена Порядка, Некрополиса и Инферно

NCF-существа:
Странствующие рыцари
Наемники

Аватар пользователя
#3851
Такой возможности нет.
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
В ответ пользователю }{0TT@6bI4
Аватар пользователя
#3852
}{0TT@6bI4
Такой возможности нет.
Очень жаль :(

Мои карты:
Падший рыцарь
Сердце Хаоса

Мои моды:
Визуальные:
Изменение внешнего вида героев-некромантов
Существа-жители и кое-что по мелочи в городах Ордена Порядка, Некрополиса и Инферно

NCF-существа:
Странствующие рыцари
Наемники

Аватар пользователя
#3853
Привет! Столкнулся с трудностями в таком плане: Мне нужно, чтобы каждые 2 недели в первый день недели производилось какое-то действие. Изначально прописывал такое:
if ( GetDate(WEEK) == 2 ) and ( GetDate(DAY_OF_WEEK) == 1 ) then
Но тут у меня запуск срабатывает на 2 неделю каждого месяца, а мне нужно чтобы работало именно каждые 2 недели в первый день любого месяца.

Статистика

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

Сейчас на сайте 4 пользователей 1316 гостей