Скрипты - Страница 252 - Форум HeroesWorld-а

Быстрая навигация по основным разделам форума:
Турниры
КАРТЫ
Heroes 6
Heroes 5
Heroes 4
Heroes 3
Heroes 2
Heroes 1
Might&Magic

Герои Меча и Магии 5 - Картостроительство (Редактор карт) В этом разделе можно обсуждать все что касается редактора карт для Heroes of Might and Magic V. Так же здесь обсуждаем картостроительство.

Ответ
Страница 252 из 255
 
Опции темы
#3766
Старый 07.11.2022, 21:45
  #3766
^
Азгалор
 
Аватар для Азгалор
📖
Регистрация: 24.04.2016
Сообщения: 177
Регистрация: 24.04.2016
Сообщения: 177
По умолчанию
Re: Скрипты

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, то там есть аргумент который позволяет запустить функцию по завершению боя. Пропиши функцию с текстом, которая запустится после боя и выдаст текст.

Азгалор вне форума
Ответить с цитированием
#3767
Старый 07.11.2022, 23:44
  #3767
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1753
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1753
Выставка наград
По умолчанию
Re: Скрипты

Игра не собирается дожидаться, пока герой дойдёт до точки. Отпустила в свободное плавание — и вперёд. Вам надо либо придумать хитрое условие, по которому проверять, напал ли герой, — while УСЛОВИЕ do sleep() end и потом уже ифы с роликами. Либо — битву запускать старткомбатом (сразу после MoveHero) и ролик вынести со всеми остальными ифами в  новую функцию, которую указать коллбэком для старткомбата.
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#3768
Старый 08.11.2022, 18:58
  #3768
^
BlueHeavenHero
 
Аватар для BlueHeavenHero
📖
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 145
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 145
По умолчанию
Re: Скрипты

Азгалор

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 не работают и этот треклятый Витторио не нападает! 
__________________
Мои карты:
Сценарий "Падший рыцарь" - Мой первый сценарий.
Кампания "Пробуждение" - Только начал работу над кампанией.

Мои карты:
Сценарий "Падший рыцарь" - Мой первый сценарий.
Кампания "Пробуждение" - Только начал работу над кампанией.

BlueHeavenHero вне форума
Ответить с цитированием
#3769
Старый 08.11.2022, 19:38
  #3769
^
Азгалор
 
Аватар для Азгалор
📖
Регистрация: 24.04.2016
Сообщения: 177
Регистрация: 24.04.2016
Сообщения: 177
По умолчанию
Re: Скрипты

BlueHeavenHeroС сообщением я всё исправил, а вот с роликом проблемы.. 
Он мало того, что проигрывается ДО нападения Витторио, так ещё и SetObjectiveState не работают и этот треклятый Витторио не нападает! 
Упс, с выдачей ролика запутался - поправил функцию из прошлого поста, как и проверку условий на спавн, завершение квеста и выдачу нового. Проверь в игре, и посмотри что выдаст консоль если квесты опять не будут обновляться.
Азгалор вне форума
Ответить с цитированием
#3770
Старый 08.11.2022, 19:56
  #3770
^
BlueHeavenHero
 
Аватар для BlueHeavenHero
📖
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 145
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 145
По умолчанию
Re: Скрипты

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

Мои извинения за столь грубое сообщение выше.
Проверить сейчас не смогу. Написал скрипт на проверку, жив ли Витторио, и если нет - запускается ролик. Но опять-таки сомневаюсь в работоспособности сего скрипта.. 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")
__________________
Мои карты:
Сценарий "Падший рыцарь" - Мой первый сценарий.
Кампания "Пробуждение" - Только начал работу над кампанией.

Мои карты:
Сценарий "Падший рыцарь" - Мой первый сценарий.
Кампания "Пробуждение" - Только начал работу над кампанией.

BlueHeavenHero вне форума
Ответить с цитированием
#3771
Старый 08.11.2022, 20:35
  #3771
^
Азгалор
 
Аватар для Азгалор
📖
Регистрация: 24.04.2016
Сообщения: 177
Регистрация: 24.04.2016
Сообщения: 177
По умолчанию
Re: Скрипты

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

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

Азгалор вне форума
Ответить с цитированием
#3772
Старый 09.11.2022, 08:34
  #3772
^
BlueHeavenHero
 
Аватар для BlueHeavenHero
📖
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 145
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 145
По умолчанию
Re: Скрипты

Азгалор

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

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

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

Мои карты:
Сценарий "Падший рыцарь" - Мой первый сценарий.
Кампания "Пробуждение" - Только начал работу над кампанией.

BlueHeavenHero вне форума
Ответить с цитированием
#3773
Старый 10.11.2022, 11:42
  #3773
^
BlueHeavenHero
 
Аватар для BlueHeavenHero
📖
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 145
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 145
Печаль
Re: Скрипты

Всем привет! Возникла проблема. Когда захватываю финальный город, активируется ролик 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")
__________________
Мои карты:
Сценарий "Падший рыцарь" - Мой первый сценарий.
Кампания "Пробуждение" - Только начал работу над кампанией.

Мои карты:
Сценарий "Падший рыцарь" - Мой первый сценарий.
Кампания "Пробуждение" - Только начал работу над кампанией.

BlueHeavenHero вне форума
Ответить с цитированием
#3774
Старый 10.11.2022, 13:05
  #3774
^
Азгалор
 
Аватар для Азгалор
📖
Регистрация: 24.04.2016
Сообщения: 177
Регистрация: 24.04.2016
Сообщения: 177
По умолчанию
Re: Скрипты

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")

Консоль на что жалуется?
Азгалор вне форума
Ответить с цитированием
#3775
Старый 10.11.2022, 13:18
  #3775
^
BlueHeavenHero
 
Аватар для BlueHeavenHero
📖
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 145
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 145
По умолчанию
Re: Скрипты

АзгалорКонсоль на что жалуется?
Консоль ни на что из скриптов не жалуется.
Миниатюры
Нажмите на изображение для увеличения
Название:  ПРОБЛЕМА!.png
Просмотров: 11
Размер:	8.9 Кбайт
ID:	68744  
__________________
Мои карты:
Сценарий "Падший рыцарь" - Мой первый сценарий.
Кампания "Пробуждение" - Только начал работу над кампанией.

Мои карты:
Сценарий "Падший рыцарь" - Мой первый сценарий.
Кампания "Пробуждение" - Только начал работу над кампанией.

BlueHeavenHero вне форума
Ответить с цитированием
#3776
Старый 11.11.2022, 09:30
  #3776
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1753
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1753
Выставка наград
По умолчанию
Re: Скрипты

Думаю, проблема в криво созданной арене для боя: игра её запускает, сталкивается с критической ошибкой и уходит на покой. Рекомендую отдельно попробовать запустить бой на этой арене и посмотреть наличие вылета
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#3777
Старый 12.11.2022, 16:09
  #3777
^
BlueHeavenHero
 
Аватар для BlueHeavenHero
📖
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 145
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 145
По умолчанию
Re: Скрипты

}{0TT@6bI4Думаю, проблема в криво созданной арене для боя: игра её запускает, сталкивается с критической ошибкой и уходит на покой. Рекомендую отдельно попробовать запустить бой на этой арене и посмотреть наличие вылета
Теперь, благодаря помощи Азгалора всё работает.

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

Мои карты:
Сценарий "Падший рыцарь" - Мой первый сценарий.
Кампания "Пробуждение" - Только начал работу над кампанией.

BlueHeavenHero вне форума
Ответить с цитированием
#3778
Старый 12.11.2022, 18:17
  #3778
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1753
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1753
Выставка наград
По умолчанию
Re: Скрипты

Такой возможности нет.
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#3779
Старый 12.11.2022, 18:41
  #3779
^
BlueHeavenHero
 
Аватар для BlueHeavenHero
📖
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 145
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 145
По умолчанию
Re: Скрипты

}{0TT@6bI4Такой возможности нет.
Очень жаль
__________________
Мои карты:
Сценарий "Падший рыцарь" - Мой первый сценарий.
Кампания "Пробуждение" - Только начал работу над кампанией.

Мои карты:
Сценарий "Падший рыцарь" - Мой первый сценарий.
Кампания "Пробуждение" - Только начал работу над кампанией.

BlueHeavenHero вне форума
Ответить с цитированием
#3780
Старый 14.11.2022, 21:05
  #3780
^
Азгалор
 
Аватар для Азгалор
📖
Регистрация: 24.04.2016
Сообщения: 177
Регистрация: 24.04.2016
Сообщения: 177
По умолчанию
Re: Скрипты

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

Но тут у меня запуск срабатывает на 2 неделю каждого месяца, а мне нужно чтобы работало именно каждые 2 недели в первый день любого месяца.
Азгалор вне форума
Ответить с цитированием
Ответ
Страница 252 из 255


Опции темы



Часовой пояс GMT +4, время: 09:18.


vBulletin v3.5.0, Copyright ©2000-2023, Jelsoft Enterprises Ltd. (Русский)

Яндекс цитирование    Top.Mail.Ru