Форум HeroesWorld-а - Показать сообщение отдельно - Скрипты для начинающих
Показать сообщение отдельно
#329
Старый 06.11.2022, 10:49
  #329
^
BlueHeavenHero
 
Аватар для BlueHeavenHero
📖
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 426
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 426
По умолчанию
Re: Скрипты для начинающих

Азгалор

Да в принципе легко) Резервируем героя-некроманта, делаем квест на сохранение главного героя технически пустым(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

Пробуй)

Так-с, товарищ Азгалор, я протестировал скрипт и принёс безрадостные вести - скрипт не работает. Если в начале скрипта я пишу NowNecromanser = 0, остальной скрипт не работает
__________________
Всем привет,я BlueHeavenHero, любитель Героев Меча и Магии 5 и фанат Дронов-убийц, пишу свою книгу.
#СинийРайскийГерой
by BlueHeavenHero 
- мой ТГ-канал со всякой ерундой, сочинениями и рисуночками.

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

"Странствующий рыцарь"
"Наёмники"
"Существа в замке на глобальной карте"

Всем привет,я BlueHeavenHero, любитель Героев Меча и Магии 5 и фанат Дронов-убийц, пишу свою книгу.
#СинийРайскийГерой
by BlueHeavenHero 
- мой ТГ-канал со всякой ерундой, сочинениями и рисуночками.

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

"Странствующий рыцарь"
"Наёмники"
"Существа в замке на глобальной карте"

BlueHeavenHero вне форума
Ответить с цитированием