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

Вернуться   Форум HeroesWorld-а > Все о игре Герои 5. All about Heroes 5 > Герои Меча и Магии 5 - Картостроительство (Редактор карт)
Имя
Пароль
Карта сайта Регистрация Справка Пользователи Календарь Все разделы прочитаны
Быстрая навигация по основным разделам форума:
Кланы HW Турниры на HW КАРТЫ и Картостроительство Heroes 6 Heroes 5 Heroes 4 Heroes 3 Heroes 2 Heroes 1 Might&Magic

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

Ответ
 
Опции темы
Старый 27.07.2018, 19:18   #2776
AlekseyS
Регистрация: 02.04.2018
Адрес: Минск
Сообщения: 77
AlekseyS - уровень боевого духа
По умолчанию 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 вне форума   Ответить с цитированием
Старый 05.08.2018, 13:55   #2777
OrnsteinDragonslayer
 
Аватар для OrnsteinDragonslayer
Регистрация: 10.01.2016
Сообщения: 93
OrnsteinDragonslayer - уровень боевого духа
По умолчанию Re: Скрипты

Вопрос к боевым скриптам. Хочу сделать боссбаттл, но не простой. Сражение начинается против суккубы и дьявола. После убийства суккубы дьявол пропадает и спаунится архидемон. Если же сначала погиб дьявол, то суккуба пропадает и призывается искусительница. Вопросы в том, какими командами это всё делается, возможно ли вообще такое (не завершится ли бой после убийства лишь одного юнита и пр. подводные камни).
__________________
Автор карты: Долина расхитителей
Карта Выбор мира - в разработке.
OrnsteinDragonslayer вне форума   Ответить с цитированием
Старый 05.08.2018, 14:42   #2778
AlekseyS
Регистрация: 02.04.2018
Адрес: Минск
Сообщения: 77
AlekseyS - уровень боевого духа
По умолчанию 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 вне форума   Ответить с цитированием
Старый 05.08.2018, 15:18   #2779
Jack_of_shadows
 
Аватар для Jack_of_shadows
Регистрация: 08.09.2013
Сообщения: 415
Jack_of_shadows - уровень боевого духа
По умолчанию 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: ЧаВо
Jack_of_shadows вне форума   Ответить с цитированием
Старый 05.08.2018, 15:24   #2780
Gerter
 
Аватар для Gerter
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 261
Gerter - уровень боевого духа
По умолчанию Re: Скрипты

бой с кодом выше будет продолжаться бесконечно, т.к. не задано условие завершения при выключенном автоматическом
__________________
I heard your voice through a photograph
I thought it up it brought up the past
Once you know you can never go back
I’ve got to take it on the otherside
Gerter вне форума   Ответить с цитированием
Старый 06.08.2018, 21:00   #2781
OrnsteinDragonslayer
 
Аватар для OrnsteinDragonslayer
Регистрация: 10.01.2016
Сообщения: 93
OrnsteinDragonslayer - уровень боевого духа
По умолчанию 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 вне форума   Ответить с цитированием
Старый 06.08.2018, 21:15   #2782
Gerter
 
Аватар для Gerter
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 261
Gerter - уровень боевого духа
По умолчанию Re: Скрипты

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

у меня тоже небольшой вопрос нарисовался. Столкнулся с проблемой, что невозможно заставить существ откастовать некоторые абилки, например абилку баньши, т.к. для нее просто нет id. Пробовал прописать аргументом название абилки из файла существа - ABILITY_DEATH_WAIL, но это значение тоже не определено. Получается, эти абилки вообще нельзя скастовать в принципе или можно как то?
__________________
I heard your voice through a photograph
I thought it up it brought up the past
Once you know you can never go back
I’ve got to take it on the otherside
Gerter вне форума   Ответить с цитированием
Старый 06.08.2018, 21:38   #2783
Jack_of_shadows
 
Аватар для Jack_of_shadows
Регистрация: 08.09.2013
Сообщения: 415
Jack_of_shadows - уровень боевого духа
По умолчанию 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: ЧаВо
Jack_of_shadows вне форума   Ответить с цитированием
Старый 06.08.2018, 21:44   #2784
Gerter
 
Аватар для Gerter
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 261
Gerter - уровень боевого духа
По умолчанию Re: Скрипты

благодарю, про types.xml даже не знал, если честно, всегда ограничивался стандартным списком id из мануала. теперь буду пользоваться расширенным, спасибо
__________________
I heard your voice through a photograph
I thought it up it brought up the past
Once you know you can never go back
I’ve got to take it on the otherside
Gerter вне форума   Ответить с цитированием
Старый 06.08.2018, 22:41   #2785
OrnsteinDragonslayer
 
Аватар для OrnsteinDragonslayer
Регистрация: 10.01.2016
Сообщения: 93
OrnsteinDragonslayer - уровень боевого духа
По умолчанию Re: Скрипты

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

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

OrnsteinDragonslayer, Скриптовое руководство.doc
__________________
РПГ-сценарий для HoMM5: Путь героя
ЧаВо по созданию карт для HoMM5: ЧаВо
Jack_of_shadows вне форума   Ответить с цитированием
Старый 11.08.2018, 00:18   #2787
Gerter
 
Аватар для Gerter
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 261
Gerter - уровень боевого духа
По умолчанию Re: Скрипты

еще один небольшой вопрос по механике. все заклы делятся на таргетные/областные/глобальные, но есть исключения типа телепорта, которые требуют и таргета и указания области. Такие спеллы, как я понимаю вообще неприменимы в комбате? Попытка скастить телепорт всегда приводит к ошибке, а заколдованная стрела, хоть и юзается но эффекта не имеет. Есть ли способ разрешить такую проблему(уверен на 99%, что нет, но мало ли)?
__________________
I heard your voice through a photograph
I thought it up it brought up the past
Once you know you can never go back
I’ve got to take it on the otherside
Gerter вне форума   Ответить с цитированием
Старый 11.08.2018, 13:53   #2788
LetoX
Регистрация: 16.11.2017
Сообщения: 24
LetoX - уровень боевого духа
По умолчанию Re: Скрипты

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

это понятно, но мне интересен телепорт, как заклинание
__________________
I heard your voice through a photograph
I thought it up it brought up the past
Once you know you can never go back
I’ve got to take it on the otherside
Gerter вне форума   Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Вкл.
Быстрый переход


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


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

Яндекс цитирование  Rambler\'s Top100   Рейтинг@Mail.ru

Авторские права - Copyright © 2002-2008 www.HeroesWorld.ru All rights reserved


На правах рекламы:123123