Форум HeroesWorld-а - Показать сообщение отдельно - [ВОПРОС] Как сделать в скриптах, чтобы нельзя было напасть на монстра?
Показать сообщение отдельно
#8
Старый 07.04.2021, 14:20
  #8
^
Sir Krenshton
📖
Регистрация: 07.04.2021
Сообщения: 3
Регистрация: 07.04.2021
Сообщения: 3
По умолчанию
Re: [ВОПРОС] Как сделать в скриптах, чтобы нельзя было напасть на монстра?

DarkLordaxМожно на монстра триггер повесить, а самого монстра отключить как объект

Прошу, ответьте как отключить объект! Понимаю что 2 года прошло, но уж очень надо.

Добавлено через 5 минут
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

Прошу, ответьте что это за буквы, и как это изменять...
Sir Krenshton вне форума
Ответить с цитированием