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

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

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

Ответ
Страница 186 из 260
 
Опции темы
#2776
Старый 27.07.2018, 19:18
  #2776
^
AlekseyS
📖
Регистрация: 02.04.2018
Адрес: Минск
Сообщения: 203
Регистрация: 02.04.2018
Адрес: Минск
Сообщения: 203
По умолчанию
Re: Скрипты

Gerterпотестил у себя нужную часть кода - вот так все работает. каждый раз после смерти феникса/элемов герой их перепризывает

	elemental = 0
fenix = 0
  
function DefenderHeroMove(hero)
  if elemental == 0 then
    elemental = 1
    startThread(UnitCastGlobalSpell, hero, SPELL_SUMMON_ELEMENTALS)
  end
  if fenix == 0 then
    fenix = 1
    startThread(UnitCastGlobalSpell, hero, SPELL_CONJURE_PHOENIX)
  end
  return not nil
end

function DefenderCreatureDeath(unit)
  if(GetCreatureType(unit) == 85) then
    print('fire elem dead')
    elemental = 0
  end
  
  if(GetCreatureType(unit) == 91) then
    print('phoenix dead')
    fenix = 0
  end
end

Спасибо огромное. Помогло.
AlekseyS вне форума
Ответить с цитированием
#2777
Старый 05.08.2018, 13:55
  #2777
^
OrnsteinDragonslayer
 
Аватар для OrnsteinDragonslayer
📖
Регистрация: 10.01.2016
Сообщения: 172
Регистрация: 10.01.2016
Сообщения: 172
По умолчанию
Re: Скрипты

Вопрос к боевым скриптам. Хочу сделать боссбаттл, но не простой. Сражение начинается против суккубы и дьявола. После убийства суккубы дьявол пропадает и спаунится архидемон. Если же сначала погиб дьявол, то суккуба пропадает и призывается искусительница. Вопросы в том, какими командами это всё делается, возможно ли вообще такое (не завершится ли бой после убийства лишь одного юнита и пр. подводные камни).
OrnsteinDragonslayer вне форума
Ответить с цитированием
#2778
Старый 05.08.2018, 14:42
  #2778
^
AlekseyS
📖
Регистрация: 02.04.2018
Адрес: Минск
Сообщения: 203
Регистрация: 02.04.2018
Адрес: Минск
Сообщения: 203
По умолчанию
Re: Скрипты

OrnsteinDragonslayerВопрос к боевым скриптам. Хочу сделать боссбаттл, но не простой. Сражение начинается против суккубы и дьявола. После убийства суккубы дьявол пропадает и спаунится архидемон. Если же сначала погиб дьявол, то суккуба пропадает и призывается искусительница. Вопросы в том, какими командами это всё делается, возможно ли вообще такое (не завершится ли бой после убийства лишь одного юнита и пр. подводные камни).

	EnableAutoFinish(nil)


function DefenderCreatureDeath(unit)
if(GetCreatureType(unit) == 21) then
removeUnit("имя дьявола")
SummonCreature(DEFENDER,28,10,-1,-1)
end
if(GetCreatureType(unit) == 27) then
removeUnit("имя суккуба")
SummonCreature(DEFENDER,134,10,-1,-1)
end
end


Как удалять юнитов, которые с начала боя, я не знаю( там нужно их скриптовое имя).
А вот, которые призываются, имя пишется в конце:
SummonCreature(DEFENDER, CREATURE_DEVIL, 1, 11, -1, 1, 'Devil')
AlekseyS вне форума
Ответить с цитированием
#2779
Старый 05.08.2018, 15:18
  #2779
^
Jack_of_shadows
 
Аватар для Jack_of_shadows
📖
Регистрация: 08.09.2013
Сообщения: 509
Выставка наград
Регистрация: 08.09.2013
Сообщения: 509
Выставка наград
По умолчанию
Re: Скрипты

Как удалять юнитов, которые с начала боя, я не знаю( там нужно их скриптовое имя).
Можно получить список существ вражеской стороны с помощью GetCreatures(DEFENDER). На примере дьявола:
	local units = GetCreatures(DEFENDER);
for i, unit in units do
  local unit_id = GetCreatureType(unit);
  if(unit_id == АЙДИ_ДЬЯВОЛА) then
    removeUnit(unit)
  end
end
__________________
РПГ-сценарий для HoMM5: Путь героя

ЧаВо по созданию карт для HoMM5: ЧаВо
РПГ-сценарий для HoMM5: Путь героя

ЧаВо по созданию карт для HoMM5: ЧаВо
Jack_of_shadows вне форума
Ответить с цитированием
#2780
Старый 05.08.2018, 15:24
  #2780
^
Gerter
 
Аватар для Gerter
📖
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 825
pegn0ly#9113
Выставка наград
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 825
pegn0ly#9113
Выставка наград
По умолчанию
Re: Скрипты

бой с кодом выше будет продолжаться бесконечно, т.к. не задано условие завершения при выключенном автоматическом
__________________
Нет войне.
Нет войне.
Gerter вне форума
Ответить с цитированием
#2781
Старый 06.08.2018, 21:00
  #2781
^
OrnsteinDragonslayer
 
Аватар для OrnsteinDragonslayer
📖
Регистрация: 10.01.2016
Сообщения: 172
Регистрация: 10.01.2016
Сообщения: 172
По умолчанию
Re: Скрипты

Вот с этим кодом:
	function DefenderCreatureDeath(unit)
	if(GetCreatureType(unit) == 21) then
		removeUnit("CREATURE_DEVIL")
		SummonCreature(DEFENDER,137,10,-1,-1)
	end
	if(GetCreatureType(unit) == 27) then
		removeUnit("CREATURE_SUCCUBUS")
		SummonCreature(DEFENDER,134,10,-1,-1)
	end
end

local units = GetCreatures(DEFENDER);
for i, unit in units do
  local unit_id = GetCreatureType(unit);
  if(unit_id == 27) then
    removeUnit(unit)
  end
end

local units = GetCreatures(DEFENDER);
for i, unit in units do
  local unit_id = GetCreatureType(unit);
  if(unit_id == 21) then
    removeUnit(unit)
  end
end

Вот такая ошибка:


И это не только в этом бою. И да, ничего не происходит из задуманного. Видимо нужно как то получить имя героя...
OrnsteinDragonslayer вне форума
Ответить с цитированием
#2782
Старый 06.08.2018, 21:15
  #2782
^
Gerter
 
Аватар для Gerter
📖
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 825
pegn0ly#9113
Выставка наград
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 825
pegn0ly#9113
Выставка наград
По умолчанию
Re: Скрипты

^аргумент heroname, с которым вызвана GetHeroName() не определен.
нужно вызывать так - GetHeroName(GetHero(сторона)), например

у меня тоже небольшой вопрос нарисовался. Столкнулся с проблемой, что невозможно заставить существ откастовать некоторые абилки, например абилку баньши, т.к. для нее просто нет id. Пробовал прописать аргументом название абилки из файла существа - ABILITY_DEATH_WAIL, но это значение тоже не определено. Получается, эти абилки вообще нельзя скастовать в принципе или можно как то?
__________________
Нет войне.
Нет войне.
Gerter вне форума
Ответить с цитированием
#2783
Старый 06.08.2018, 21:38
  #2783
^
Jack_of_shadows
 
Аватар для Jack_of_shadows
📖
Регистрация: 08.09.2013
Сообщения: 509
Выставка наград
Регистрация: 08.09.2013
Сообщения: 509
Выставка наград
По умолчанию
Re: Скрипты

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

Gerter, боевой скрипт знает всё что есть в common.lua. Если там нет соответствующего макроса, можно ещё посмотреть в types.xml, и если там есть то что нужно, вставить в скрипт как число. К примеру в common.lua заклинания заканчиваются на
SPELL_BLADE_BARRIER = 284;
а в types.xml после него есть ещё
SPELL_UBER_METEOR_SHOWER 285 и много других далеко за 300.
В частности ABILITY_DEATH_WAIL это 316.
__________________
РПГ-сценарий для HoMM5: Путь героя

ЧаВо по созданию карт для HoMM5: ЧаВо
РПГ-сценарий для HoMM5: Путь героя

ЧаВо по созданию карт для HoMM5: ЧаВо
Jack_of_shadows вне форума
Ответить с цитированием
#2784
Старый 06.08.2018, 21:44
  #2784
^
Gerter
 
Аватар для Gerter
📖
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 825
pegn0ly#9113
Выставка наград
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 825
pegn0ly#9113
Выставка наград
По умолчанию
Re: Скрипты

благодарю, про types.xml даже не знал, если честно, всегда ограничивался стандартным списком id из мануала. теперь буду пользоваться расширенным, спасибо
__________________
Нет войне.
Нет войне.
Gerter вне форума
Ответить с цитированием
#2785
Старый 06.08.2018, 22:41
  #2785
^
OrnsteinDragonslayer
 
Аватар для OrnsteinDragonslayer
📖
Регистрация: 10.01.2016
Сообщения: 172
Регистрация: 10.01.2016
Сообщения: 172
По умолчанию
Re: Скрипты

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

Ну, я с комбатскриптами на Вы, потому просто взял и скопировал всё выше, добавив просто определители существ. А мануал был бы полезен, но где найти его? Гугл молчит, на форуме человека с ником Novik нету (вроде так пишется, да? только это нашёл в гугле). В общих мануалах геройских нет. Буду признателен, если покажете на всеобщее обозрение.
OrnsteinDragonslayer вне форума
Ответить с цитированием
#2786
Старый 06.08.2018, 23:49
  #2786
^
Jack_of_shadows
 
Аватар для Jack_of_shadows
📖
Регистрация: 08.09.2013
Сообщения: 509
Выставка наград
Регистрация: 08.09.2013
Сообщения: 509
Выставка наград
По умолчанию
Re: Скрипты

__________________
РПГ-сценарий для HoMM5: Путь героя

ЧаВо по созданию карт для HoMM5: ЧаВо
РПГ-сценарий для HoMM5: Путь героя

ЧаВо по созданию карт для HoMM5: ЧаВо
Jack_of_shadows вне форума
Ответить с цитированием
#2787
Старый 11.08.2018, 00:18
  #2787
^
Gerter
 
Аватар для Gerter
📖
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 825
pegn0ly#9113
Выставка наград
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 825
pegn0ly#9113
Выставка наград
По умолчанию
Re: Скрипты

еще один небольшой вопрос по механике. все заклы делятся на таргетные/областные/глобальные, но есть исключения типа телепорта, которые требуют и таргета и указания области. Такие спеллы, как я понимаю вообще неприменимы в комбате? Попытка скастить телепорт всегда приводит к ошибке, а заколдованная стрела, хоть и юзается но эффекта не имеет. Есть ли способ разрешить такую проблему(уверен на 99%, что нет, но мало ли)?
__________________
Нет войне.
Нет войне.
Gerter вне форума
Ответить с цитированием
#2788
Старый 11.08.2018, 13:53
  #2788
^
LetoX
 
Аватар для LetoX
📖
Регистрация: 16.11.2017
Сообщения: 67
Регистрация: 16.11.2017
Сообщения: 67
По умолчанию
Re: Скрипты

Насчёт телепорта знаю, что есть такая функция : телепорт юнита на определённую клетку
LetoX вне форума
Ответить с цитированием
#2789
Старый 11.08.2018, 14:43
  #2789
^
Gerter
 
Аватар для Gerter
📖
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 825
pegn0ly#9113
Выставка наград
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 825
pegn0ly#9113
Выставка наград
По умолчанию
Re: Скрипты

это понятно, но мне интересен телепорт, как заклинание
__________________
Нет войне.
Нет войне.
Gerter вне форума
Ответить с цитированием
#2790
Старый 23.08.2018, 15:57
  #2790
^
LetoX
 
Аватар для LetoX
📖
Регистрация: 16.11.2017
Сообщения: 67
Регистрация: 16.11.2017
Сообщения: 67
По умолчанию
Re: Скрипты

кто-нибудь пробовал использовать руны на других расах в юоевом скрипте?
Если да, скажите, как их использовать через commandDoSpell или CommandDoSpecial? (просто вроде как это заклинания)
LetoX вне форума
Ответить с цитированием
Ответ
Страница 186 из 260


Опции темы



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


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

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