Скрипты для начинающих - Страница 19 - Форум HeroesWorld-а

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

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

Ответ
Страница 19 из 24
 
Опции темы
#271
Старый 12.09.2022, 18:32
  #271
^
BlueHeavenHero
 
Аватар для BlueHeavenHero
📖
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 141
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 141
По умолчанию
Re: Скрипты для начинающих

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

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

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

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") --когда игрок теряет героев, запускаем скрипт в котором заспавним нужного героя если потеряли его
Азгалор вне форума
Ответить с цитированием
#273
Старый 13.09.2022, 18:05
  #273
^
BlueHeavenHero
 
Аватар для BlueHeavenHero
📖
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 141
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 141
По умолчанию
Re: Скрипты для начинающих

Азгалор

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 вне форума
Ответить с цитированием
#274
Старый 25.09.2022, 15:07
  #274
^
BlueHeavenHero
 
Аватар для BlueHeavenHero
📖
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 141
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 141
По умолчанию
Re: Скрипты для начинающих

Здравствуйте. Вопрос, наверно, не по теме, но как добавить маны герою? Хочется сделать финальному боссу 300 маны.
__________________
Мои карты:
Сценарий "Падший рыцарь" - Мой первый сценарий.
Кампания "Пробуждение" - Только начал работу над кампанией.

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

BlueHeavenHero вне форума
Ответить с цитированием
#275
Старый 25.09.2022, 15:18
  #275
^
Andrei_21
 
Аватар для Andrei_21
📖
Регистрация: 14.03.2021
Сообщения: 202
Andrei_21#1931
Выставка наград
Регистрация: 14.03.2021
Сообщения: 202
Andrei_21#1931
Выставка наград
По умолчанию
Re: Скрипты для начинающих

BlueHeavenHeroЗдравствуйте. Вопрос, наверно, не по теме, но как добавить маны герою? Хочется сделать финальному боссу 300 маны.
Есть несколько вариантов: 
1) Выставить ему в редакторе параметр "знания" в 30
2) Воспользоваться скриптом ChangeHeroStat( Имя героя, 7, 300 ) (7 это параметр маны)
3) Еще можно Выдавать через боевой скрипт, но это слишком заморочено, 2 первых примера работают куда надежнее
__________________

Сценарий:
"Наследие прошлого"
Кампании:
"
Новый порядок",  "Серый Альянс" 
Руководство "Создание пользовательской кампании"

Трейлер к кампании "Поиски Истины": https://youtu.be/RDqq1dAW6sw

Сценарий:
"Наследие прошлого"
Кампании:
"
Новый порядок",  "Серый Альянс" 
Руководство "Создание пользовательской кампании"

Трейлер к кампании "Поиски Истины": https://youtu.be/RDqq1dAW6sw
Andrei_21 вне форума
Ответить с цитированием
#276
Старый 25.09.2022, 15:25
  #276
^
AstralLein
 
Аватар для AstralLein
📖
Регистрация: 02.06.2017
Адрес: В Империи Незанхельм.
Сообщения: 1758
Регистрация: 02.06.2017
Адрес: В Империи Незанхельм.
Сообщения: 1758
По умолчанию
Re: Скрипты для начинающих

Лол, не знал что мана выдаётся ChangeHeroStat-ом XD 
__________________
Готовые проекты:

Карты для героев 5:
"Плата за любовь"
"Путь некроманта"
"Темные грани"

Карты для Disciples 3:
"Противостояние"

Проекты в разработке:

Моды для Disciples 3:
"Астельнаир" - разработка возобновлена в мае 2019 год

Карты для героев 5:
"Рок Гримхейма" - ориентировочная дата выхода - ???

Карты для героев 6:
"Темницы разума" - почти готово, но когда будет время доделать без понятия
Готовые проекты:

Карты для героев 5:
"Плата за любовь"
"Путь некроманта"
"Темные грани"

Карты для Disciples 3:
"Противостояние"

Проекты в разработке:

Моды для Disciples 3:
"Астельнаир" - разработка возобновлена в мае 2019 год

Карты для героев 5:
"Рок Гримхейма" - ориентировочная дата выхода - ???

Карты для героев 6:
"Темницы разума" - почти готово, но когда будет время доделать без понятия
AstralLein вне форума
Ответить с цитированием
#277
Старый 26.09.2022, 18:50
  #277
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1750
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1750
Выставка наград
По умолчанию
Re: Скрипты для начинающих

Andrei_21, 7 - это мувпойнты; мана выдаётся через STAT_MANA_POINTS, какое число, не помню. Но то, что 7 - мувпойнты, инфа 100%ная, так как моя постоянная команда в консоли - @ChangeHeroStat(GetPlayerHeroes(1)[0], 7, 2500) biggrin
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#278
Старый 09.10.2022, 09:20
  #278
^
BlueHeavenHero
 
Аватар для BlueHeavenHero
📖
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 141
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 141
По умолчанию
Re: Скрипты для начинающих

Сценарий уже на 47% готов, осталось доделать часть дизайна и скрипты. И вот я в ступоре. По сюжету главный герой превращается в некроманта. Как это сделать, причем так, чтобы задача на выживание оставалась актуальна?
__________________
Мои карты:
Сценарий "Падший рыцарь" - Мой первый сценарий.
Кампания "Пробуждение" - Только начал работу над кампанией.

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

BlueHeavenHero вне форума
Ответить с цитированием
#279
Старый 09.10.2022, 10:58
  #279
^
AstralLein
 
Аватар для AstralLein
📖
Регистрация: 02.06.2017
Адрес: В Империи Незанхельм.
Сообщения: 1758
Регистрация: 02.06.2017
Адрес: В Империи Незанхельм.
Сообщения: 1758
По умолчанию
Re: Скрипты для начинающих

Реализовать цель через скрипт. Отключить в нужный момент триггер от смерти прежнего героя, убрать героя, дать нового и включить триггер уже от его смерти. Как вариант. 
__________________
Готовые проекты:

Карты для героев 5:
"Плата за любовь"
"Путь некроманта"
"Темные грани"

Карты для Disciples 3:
"Противостояние"

Проекты в разработке:

Моды для Disciples 3:
"Астельнаир" - разработка возобновлена в мае 2019 год

Карты для героев 5:
"Рок Гримхейма" - ориентировочная дата выхода - ???

Карты для героев 6:
"Темницы разума" - почти готово, но когда будет время доделать без понятия
Готовые проекты:

Карты для героев 5:
"Плата за любовь"
"Путь некроманта"
"Темные грани"

Карты для Disciples 3:
"Противостояние"

Проекты в разработке:

Моды для Disciples 3:
"Астельнаир" - разработка возобновлена в мае 2019 год

Карты для героев 5:
"Рок Гримхейма" - ориентировочная дата выхода - ???

Карты для героев 6:
"Темницы разума" - почти готово, но когда будет время доделать без понятия
AstralLein вне форума
Ответить с цитированием
#280
Старый 09.10.2022, 11:13
  #280
^
BlueHeavenHero
 
Аватар для BlueHeavenHero
📖
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 141
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 141
По умолчанию
Re: Скрипты для начинающих

AstralLeinРеализовать цель через скрипт. Отключить в нужный момент триггер от смерти прежнего героя, убрать героя, дать нового и включить триггер уже от его смерти. Как вариант. 
Как именно это сделать?
__________________
Мои карты:
Сценарий "Падший рыцарь" - Мой первый сценарий.
Кампания "Пробуждение" - Только начал работу над кампанией.

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

BlueHeavenHero вне форума
Ответить с цитированием
#281
Старый 09.10.2022, 12:59
  #281
^
AstralLein
 
Аватар для AstralLein
📖
Регистрация: 02.06.2017
Адрес: В Империи Незанхельм.
Сообщения: 1758
Регистрация: 02.06.2017
Адрес: В Империи Незанхельм.
Сообщения: 1758
По умолчанию
Re: Скрипты для начинающих

Допустим, вот самая стандартная проверка жив ли главный герой игрока. 

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
__________________
Готовые проекты:

Карты для героев 5:
"Плата за любовь"
"Путь некроманта"
"Темные грани"

Карты для Disciples 3:
"Противостояние"

Проекты в разработке:

Моды для Disciples 3:
"Астельнаир" - разработка возобновлена в мае 2019 год

Карты для героев 5:
"Рок Гримхейма" - ориентировочная дата выхода - ???

Карты для героев 6:
"Темницы разума" - почти готово, но когда будет время доделать без понятия
Готовые проекты:

Карты для героев 5:
"Плата за любовь"
"Путь некроманта"
"Темные грани"

Карты для Disciples 3:
"Противостояние"

Проекты в разработке:

Моды для Disciples 3:
"Астельнаир" - разработка возобновлена в мае 2019 год

Карты для героев 5:
"Рок Гримхейма" - ориентировочная дата выхода - ???

Карты для героев 6:
"Темницы разума" - почти готово, но когда будет время доделать без понятия
AstralLein вне форума
Ответить с цитированием
#282
Старый 09.10.2022, 14:00
  #282
^
Азгалор
 
Аватар для Азгалор
📖
Регистрация: 24.04.2016
Сообщения: 177
Регистрация: 24.04.2016
Сообщения: 177
По умолчанию
Re: Скрипты для начинающих

BlueHeavenHeroСценарий уже на 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

Пробуй)

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

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

}{0TT@6bI4Так. А функция MakeHeroNecromancer чем не удовлетворяет условиям? Она из любого героя делает некроманта с тёмной энергией
Главный герой изначально имеет темную энергию и скилл некромантии, однако он - рыцарь по классу. Мне же нужно, чтобы этот рыцарь удалялся с карты и на его место ставился герой с таким же именем, но с кастомным скином некроманта (взял из NHF и подредактировал) и классом некромант.
__________________
Мои карты:
Сценарий "Падший рыцарь" - Мой первый сценарий.
Кампания "Пробуждение" - Только начал работу над кампанией.

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

BlueHeavenHero вне форума
Ответить с цитированием
#285
Старый 15.10.2022, 20:01
  #285
^
HeroOfDestiny
 
Аватар для HeroOfDestiny
📖
Регистрация: 15.10.2022
Сообщения: 11
Регистрация: 15.10.2022
Сообщения: 11
По умолчанию
Re: Скрипты для начинающих

Всех приветствую
Я тут новенький и я хотел бы создавать карты со скриптами.
Почему я пишу сюда?
Из-за того что скрипт не работает почему-то.
Вот сам скрипт:

function MakeHeroes()
DeployReserveHero("Itil", 127, 74, 0);
ChangeHeroStat("Itil", 0, 90000);
end;


Trigger(REGION_ENTER_AND_STOP_TRIGGER, "geroy", "MakeHeroes");

Я просто хочу, чтобы спавнился герой ,когда я встаю в определенную зону.
Надеюсь получить ответ)
Блин, надеюсь я написал в нужную тему.
HeroOfDestiny вне форума
Ответить с цитированием
Ответ
Страница 19 из 24


Опции темы



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


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

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