[ВОПРОС] Как сделать в скриптах, чтобы нельзя было напасть на монстра? - Форум 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. Так же здесь обсуждаем картостроительство.

Ответ
 
Опции темы
Старый 01.08.2019, 11:28   #1
Rasvetribka
 
Аватар для Rasvetribka
Регистрация: 20.06.2016
Сообщения: 70
Rasvetribka - уровень боевого духа
По умолчанию [ВОПРОС] Как сделать в скриптах, чтобы нельзя было напасть на монстра?

Я хочу сделать так, чтобы при нападении на монстра у меня появлялся с ним диалог, короче этот монстр даёт квест. Мне нужно чтобы с этим монстром можно было взаимодействовать, но нельзя было атаковать. Т.е. не просто закрыть к нему доступ, чтобы на него даже нельзя было навести курсор, а сделать так, чтобы можно было к нему подходить, но боя бы не начиналось. Мне же надо ему потом как-то сдать квест.
Rasvetribka вне форума   Ответить с цитированием
Старый 01.08.2019, 13:25   #2
DarkLordax
 
Аватар для DarkLordax
Регистрация: 01.06.2017
Сообщения: 67
DarkLordax - уровень боевого духа
По умолчанию Re: [ВОПРОС] Как сделать в скриптах, чтобы нельзя было напасть на монстра?

Можно на монстра триггер повесить, а самого монстра отключить как объект
DarkLordax вне форума   Ответить с цитированием
Старый 01.08.2019, 17:00   #3
Rasvetribka
 
Аватар для Rasvetribka
Регистрация: 20.06.2016
Сообщения: 70
Rasvetribka - уровень боевого духа
По умолчанию Re: [ВОПРОС] Как сделать в скриптах, чтобы нельзя было напасть на монстра?

Цитата:
Сообщение от DarkLordax
Можно на монстра триггер повесить, а самого монстра отключить как объект
А в таком случае взаимодействовать с ним можно будет?
Rasvetribka вне форума   Ответить с цитированием
Старый 01.08.2019, 17:07   #4
DarkLordax
 
Аватар для DarkLordax
Регистрация: 01.06.2017
Сообщения: 67
DarkLordax - уровень боевого духа
По умолчанию Re: [ВОПРОС] Как сделать в скриптах, чтобы нельзя было напасть на монстра?

Цитата:
Сообщение от Rasvetribka
А в таком случае взаимодействовать с ним можно будет?
Через триггер
DarkLordax вне форума   Ответить с цитированием
Старый 01.08.2019, 19:02   #5
Rasvetribka
 
Аватар для Rasvetribka
Регистрация: 20.06.2016
Сообщения: 70
Rasvetribka - уровень боевого духа
По умолчанию Re: [ВОПРОС] Как сделать в скриптах, чтобы нельзя было напасть на монстра?

Цитата:
Сообщение от DarkLordax
Через триггер
Аааа, понял. Спасибо
Rasvetribka вне форума   Ответить с цитированием
Старый 01.08.2019, 22:22   #6
Jack_of_shadows
 
Аватар для Jack_of_shadows
Регистрация: 08.09.2013
Сообщения: 464
Jack_of_shadows - уровень боевого духа
Выставка наград
По умолчанию Re: [ВОПРОС] Как сделать в скриптах, чтобы нельзя было напасть на монстра?

Из мануала в моей подписи:

Как выполнить действие при касании определённого монстра?

Как правило, монстра с нестандартным поведением лучше делать внешне отличным от
обычного, поэтому бонусом к триггеру касания я добавляю изменение курсора со
стандартного меча на мирную лошадку, убирание «юбки» монстра и изменение его
имени:

Код:
-- настройка существ-NPC на карте -- npc – имя монстра, присвоенное в редакторе (строка) -- func – функция-обработчик касания (строка) -- name – название файла с именем существа (строка) -- func и name – необязательные параметры, их можно не передавать function SetNpcFunc(npc, func, name) -- выключение стандартного триггера касания монстра (бой) SetObjectEnabled(npc, nil); -- установка мирного курсора при наведении на монстра SetDisabledObjectMode(npc, DISABLED_INTERACT); sleep(1) -- отключение «юбки» (символа фракции под монстром) SetMonsterSelectionType(npc, 0); -- установка своего триггера касания (необязательный параметр) if (func ~= nil) then Trigger(OBJECT_TOUCH_TRIGGER, npc, func); end -- установка имени монстра (необязательный параметр) if (name ~= nil) then local full_name = GetMapDataPath()..name; SetMonsterNames(npc, MONSTER_NAME_SINGLE, full_name); end end -- примеры использования функции: -- монстр просто перестаёт реагировать на касания SetNpcFunc(‘СКРИПТОВОЕ_ИМЯ_МОНСТРА’); -- монстру присваивается триггер касания, имя остаётся обычным SetNpcFunc(‘СКРИПТОВОЕ_ИМЯ_МОНСТРА’, ‘NpcTouch’); -- монстру присваивается триггер касания и даётся новое имя SetNpcFunc(‘СКРИПТОВОЕ_ИМЯ_МОНСТРА’, ‘NpcTouch’, ‘НАЗВАНИЕ_ФАЙЛА_С ИМЕНЕМ’); -- обработчик касания монстра -- hero – скриптовое имя героя, который коснулся монстра-NPC -- npc – скриптовое имя монстра, которого коснулись function NpcTouch(hero, npc) ВАШ КОД end
__________________
РПГ-сценарий для HoMM5: Путь героя
ЧаВо по созданию карт для HoMM5: ЧаВо
Jack_of_shadows вне форума   Ответить с цитированием
Старый 02.08.2019, 06:14   #7
Rasvetribka
 
Аватар для Rasvetribka
Регистрация: 20.06.2016
Сообщения: 70
Rasvetribka - уровень боевого духа
По умолчанию Re: [ВОПРОС] Как сделать в скриптах, чтобы нельзя было напасть на монстра?

Цитата:
Сообщение от Jack_of_shadows
Из мануала в моей подписи:

Как выполнить действие при касании определённого монстра?

Как правило, монстра с нестандартным поведением лучше делать внешне отличным от
обычного, поэтому бонусом к триггеру касания я добавляю изменение курсора со
стандартного меча на мирную лошадку, убирание «юбки» монстра и изменение его
имени:

Код:
-- настройка существ-NPC на карте -- npc – имя монстра, присвоенное в редакторе (строка) -- func – функция-обработчик касания (строка) -- name – название файла с именем существа (строка) -- func и name – необязательные параметры, их можно не передавать function SetNpcFunc(npc, func, name) -- выключение стандартного триггера касания монстра (бой) SetObjectEnabled(npc, nil); -- установка мирного курсора при наведении на монстра SetDisabledObjectMode(npc, DISABLED_INTERACT); sleep(1) -- отключение «юбки» (символа фракции под монстром) SetMonsterSelectionType(npc, 0); -- установка своего триггера касания (необязательный параметр) if (func ~= nil) then Trigger(OBJECT_TOUCH_TRIGGER, npc, func); end -- установка имени монстра (необязательный параметр) if (name ~= nil) then local full_name = GetMapDataPath()..name; SetMonsterNames(npc, MONSTER_NAME_SINGLE, full_name); end end -- примеры использования функции: -- монстр просто перестаёт реагировать на касания SetNpcFunc(‘СКРИПТОВОЕ_ИМЯ_МОНСТРА’); -- монстру присваивается триггер касания, имя остаётся обычным SetNpcFunc(‘СКРИПТОВОЕ_ИМЯ_МОНСТРА’, ‘NpcTouch’); -- монстру присваивается триггер касания и даётся новое имя SetNpcFunc(‘СКРИПТОВОЕ_ИМЯ_МОНСТРА’, ‘NpcTouch’, ‘НАЗВАНИЕ_ФАЙЛА_С ИМЕНЕМ’); -- обработчик касания монстра -- hero – скриптовое имя героя, который коснулся монстра-NPC -- npc – скриптовое имя монстра, которого коснулись function NpcTouch(hero, npc) ВАШ КОД end

Спасибо огромное, очень много полезной информации.
Rasvetribka вне форума   Ответить с цитированием
Ответ


Опции темы

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

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


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


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

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

Авторские права - Copyright © 2002-2018 www.HeroesWorld.ru All rights reserved (new server)


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