- 261 - HeroesWorld-

:
Heroes 6
Heroes 5
Heroes 4
Heroes 3
Heroes 2
Heroes 1
Might&Magic

5 - ( ) Heroes of Might and Magic V. .

261 261
 
#3901
13.06.2024, 02:54
  #3901
^
 
📖
: 24.04.2016
: 219
: 24.04.2016
: 219
Re:

Jack_of_shadowsАзгалор, долго вспоминал, короче нужно в этом случае обязательно передавать все 5 вариантов ответов, если используются только 2, то после них добавить еще , nil, nil, nil.

Да, вот теперь всё работает как надо. Огромное спасибо) Впрочем, и не только за это, а ещё и за скрипты связанные с табличкой артефактов
__________________

/:

/:

#3902
14.06.2024, 10:28
  #3902
^
Madara_X
 
  Madara_X
📖
: 08.06.2024
: 7
: 08.06.2024
: 7
Re:

Друзья, как реализовать одновременные анимации? Сейчас из-за того что строчки кода идут последовательно, возникает рассинхронизация небольшая. Также хотел спросить насчет паузы между анимациями. Пока что поставил на IDLE, но в таком случае объекты после окончания анимации сразу начинают новую, а мне нужна пауза. Пока есть идея реализовывать все это через функции и циклы. Подскажите, правильно ли я мыслю? И если вдруг лень объяснять, может, кто-то знает, в каких сценариях были реализованы такие анимации? Я могу сам в них залезть и посмотреть)
Madara_X
#3903
14.06.2024, 13:46
  #3903
^
 
📖
: 24.04.2016
: 219
: 24.04.2016
: 219
Re:

Madara_X,
Madara_Xкак реализовать одновременные анимации? Сейчас из-за того что строчки кода идут последовательно, возникает рассинхронизация небольшая.Также хотел спросить насчет паузы между анимациями. Пока что поставил на IDLE, но в таком случае объекты после окончания анимации сразу начинают новую, а мне нужна пауза

Прописать PlayObjectAnimation("скриптовое имя существа", "анимация", ONESHOT(ONESHOT_STILL если это анимация смерти(по желанию)), после написать sleep(нужное количество задержки), и после снова прописывать PlayObjectAnimation(), которая(ые) отработают уже после задержки из sleep()
Madara_XВ каких сценариях были реализованы такие анимации?

Первая миссия кампании за Фриду во Владыках, анимки тренирующихся существ в лагерях Рэндалла и Колдуэлла. Чтобы не бежать открывать туман войны на карте, можешь вбить в консоли @OpenCircleFog(0, 0, 0, 999, 1);
__________________

/:

/:

#3904
15.06.2024, 00:37
  #3904
^
green belly
 
  green belly
📖
: 14.06.2024
: 2
: 14.06.2024
: 2
Re:

Всем добрый день, нужна помощь в написании кода скрипта. Задумка - любой случайный герой заходит в определенное здание и это здание проверяет есть ли у героя перк - выдает ему бонус за этот перк. Проблема в том, что нужно проверить имеет ли герой много перков и дать ему много бонусов если он их имеет, сам научился писать код для проверки только одного перка и дальше игра не читает. Прошу кодеров помочь, нужен максимально простой скрипт такого вида: функция перкиФ (херонейм) если "герой имеет скилл" (херонейм, например скилл стрельба) то "добавить герою существ" (херонейм, например лучники, в колве 1) также если "герой имеет скилл" (херонейм, например логистика искусная) то "добавить герою артефакт" (херонейм, например кандалы неизбежности, непередаваемый) также если "герой имеет скилл" (херонейм, например логистика развитая) то "изменить герою стат" (херонейм, например защита, +2) также если "герой имеет скилл" (херонейм, например свет развитый) то "обучить героя заклинанию" (херонейм, например замедление на искусном уровне) конец конец Тригер (герой касается объекта под названием тттт, запуск функции перкиФ) Сами примеры могут быть другими, важен принцип и логика написания кода, чтобы один тригер касания проверял большое количество перков и выдавал герою существ, артефакт, заклинание Еще надо чтобы присутстовал нил и касание работало один раз и не выдавало по сто раз бонусы. Буду благодарен за объяснение Еще вопрос есть Нужен скрипт который будет работать при начале сражения Старткомбат если в битве присутствует герой некромант и если он имеет перк лидерство то герой противника получает -1 к боевому духу и аналогично для развитого и искусного уровня на -2 и -3 бд. Спасибо за помощь.
green belly
#3905
15.06.2024, 17:29
  #3905
^
Madara_X
 
  Madara_X
📖
: 08.06.2024
: 7
: 08.06.2024
: 7
Re:

green bellyВсем добрый день, нужна помощь в написании кода скрипта. Задумка - любой случайный герой заходит в определенное здание и это здание проверяет есть ли у героя перк - выдает ему бонус за этот перк. Проблема в том, что нужно проверить имеет ли герой много перков и дать ему много бонусов если он их имеет, сам научился писать код для проверки только одного перка и дальше игра не читает. Прошу кодеров помочь, нужен максимально простой скрипт такого вида: функция перкиФ (херонейм) если "герой имеет скилл" (херонейм, например скилл стрельба) то "добавить герою существ" (херонейм, например лучники, в колве 1) также если "герой имеет скилл" (херонейм, например логистика искусная) то "добавить герою артефакт" (херонейм, например кандалы неизбежности, непередаваемый) также если "герой имеет скилл" (херонейм, например логистика развитая) то "изменить герою стат" (херонейм, например защита, +2) также если "герой имеет скилл" (херонейм, например свет развитый) то "обучить героя заклинанию" (херонейм, например замедление на искусном уровне) конец конец Тригер (герой касается объекта под названием тттт, запуск функции перкиФ) Сами примеры могут быть другими, важен принцип и логика написания кода, чтобы один тригер касания проверял большое количество перков и выдавал герою существ, артефакт, заклинание Еще надо чтобы присутстовал нил и касание работало один раз и не выдавало по сто раз бонусы. Буду благодарен за объяснение Еще вопрос есть Нужен скрипт который будет работать при начале сражения Старткомбат если в битве присутствует герой некромант и если он имеет перк лидерство то герой противника получает -1 к боевому духу и аналогично для развитого и искусного уровня на -2 и -3 бд. Спасибо за помощь.

Вот пример моего кода на проверку магических скиллов и выдачу заклинаний в соответствии со школой. С существами и прочим можно сделать по аналогии



Добавлено через 9 минут
Друзья, а подскажите, сколько одновременных функций может исполняться в игре? Сейчас занимаюсь анимациями персонажей: создаю отдельные функции и запускаю их через startThread(), однако заметил, что ровно на второй команде startThread() игра намертво зависает. Если объединить все анимации в одну функцию, то тогда все ок.
Madara_X
#3906
15.06.2024, 19:08
  #3906
^
 
📖
: 24.04.2016
: 219
: 24.04.2016
: 219
Re:

green belly, про перки: удобней всего(наверное) будет создать таблицу, куда занести перки, тип награды за перк и соответственно сами награды за разные уровни мастерства. После написать функцию которая будет проверять наличие нужных перков и их мастерство, определять какой тип награды должен быть и выдавать за них саму награду.

Про статы для боя: думаю, можно определять какой расе принадлежит герой через HasHeroSkill(heroName, ID расовых статов(типа "мастер артефактов" у магов, "контрудар" у рыцарей, мститель у эльфов, "некромантия" у некромантов и т.д.), и если у героя есть тот или иной стат(а он, по стандарту, может быть у героя только один), приписывать его в нужную расу. С лидерством так же, но для проверки уровня мастерства нужно использовать функцию GetHeroSkillMastery(heroName, ID скилла), которая возвращает число от 0 до 4(0 - не владеет перком совсем, 1-3 - начально/развито/искусно, 4 - совершенно(вроде как только для расовых перков, типа "Совершенный контрудар". Напомню, что совершенные уровни расовых перков получаются только благодаря артефакту "Кулон Мастерства")), и в соответствии с уровнем мастерства применять GiveHeroBattleBonus(heroName, HERO_BATTLE_BONUS_MORALE, -нужное число)

p.s. функция баттл-бонусов работает только в версии 3.1)
__________________

/:

/:

#3907
15.06.2024, 21:57
  #3907
^
Jack_of_shadows
 
  Jack_of_shadows
📖
: 08.09.2013
: 515
:  -  :    2015-  (  HoMMV) 
: 1
: 08.09.2013
: 515
:  -  :    2015-  (  HoMMV) 
: 1
Re:

Madara_XДрузья, а подскажите, сколько одновременных функций может исполняться в игре? Сейчас занимаюсь анимациями персонажей: создаю отдельные функции и запускаю их через startThread(), однако заметил, что ровно на второй команде startThread() игра намертво зависает. Если объединить все анимации в одну функцию, то тогда все ок.
Потоков может быть много (в рамках разумного, возможно на нескольких десятках у кого-то начнет подтормаживать). Лично я чисто на всякий случай пускаю анимации существ только если игрок находится рядом (можно например в начале хода проверять расстояние герой-существа), но это уже мой режим параноика. Приведите простенький пример как именно запускаете и что происходит.
__________________
- HoMM5:

HoMM5:
- HoMM5:

HoMM5:
Jack_of_shadows
#3908
19.06.2024, 15:32
  #3908
^
green belly
 
  green belly
📖
: 14.06.2024
: 2
: 14.06.2024
: 2
Re:

Madara X, Азгалор, благодарю за ответы, со множественной проверкой перков в одном скрипте я разобрался) Но все ещё не могу разобраться с выдачей бонусов через givebattlebonus.
Нужен именно пример кода, может есть какие то карты у форумчан или примеры, где используют этот код.
Я ищу следующие примеры: 
1) если герой обладает навыком A, то дать ЭТОМУ ГЕРОЮ на один бой бонус (например +1 к скорости существам или +бд или + стат или + 1% к хп существам)
2) если герой обладает навыком B, то дать ГЕРОЮ ПРОТИВНИКА на один бой бонус (например -1 к скорости существ, - 1 бд, удачи и тд)
3) если герой обладает навыком C, то этот герой кастует в начале всех следующих битв заклинание D.
Благодарю за любые примеры и помощь!
green belly
#3909
19.06.2024, 21:12
  #3909
^
 
📖
: 24.04.2016
: 219
: 24.04.2016
: 219
Re:

green bellyMadara X, Азгалор, благодарю за ответы, со множественной проверкой перков в одном скрипте я разобрался) Но все ещё не могу разобраться с выдачей бонусов через givebattlebonus.
Нужен именно пример кода, может есть какие то карты у форумчан или примеры, где используют этот код.
Я ищу следующие примеры: 
1) если герой обладает навыком A, то дать ЭТОМУ ГЕРОЮ на один бой бонус (например +1 к скорости существам или +бд или + стат или + 1% к хп существам)
2) если герой обладает навыком B, то дать ГЕРОЮ ПРОТИВНИКА на один бой бонус (например -1 к скорости существ, - 1 бд, удачи и тд)
3) если герой обладает навыком C, то этот герой кастует в начале всех следующих битв заклинание D.
Благодарю за любые примеры и помощь!

Вот такие статы можно менять у героев в GiveHeroBattleBonus(heroName, bonusType/bonusID, +-(если нужно прибавить, то + не ставить(иначе скрипт выдаст ошибку)) amount). Сами ID-шники и названия бонусов которые можно повысить или понизить(кроме Hitpoints(очки жизни существ), их можно только повышать):
HERO_BATTLE_BONUS_LUCK = 0
HERO_BATTLE_BONUS_MORALE = 1
HERO_BATTLE_BONUS_ATTACK = 2
HERO_BATTLE_BONUS_DEFENCE = 3
HERO_BATTLE_BONUS_HITPOINTS = 4
HERO_BATTLE_BONUS_INITIATIVE = 5
HERO_BATTLE_BONUS_SPEED = 6

Соответственно:
function buffsForbattle()
if HasHeroSkill("Duncan", SKILL_LUCK ) then
GiveHeroBattleBonus("Duncan", HERO_BATTLE_BONUS_SPEED, 1)
elseif...... и т.д.
end
end

Насчёт заклинаний: это нужно через SetGameVar и GetGameVar передавать, чтобы игра в боевом скрипте знала что вы хотите ей передать из походного скрипта.
__________________

/:

/:

261 261

« | »




GMT +4, : 06:35.


vBulletin v3.5.0, Copyright ©2000-2024, Jelsoft Enterprises Ltd. ()

     Top.Mail.Ru