Форум HeroesWorld-а - Показать сообщение отдельно - Скрипты
Тема: Скрипты
Показать сообщение отдельно
#2045
Старый 13.09.2015, 11:37
  #2045
^
Jack_of_shadows
 
Аватар для Jack_of_shadows
📖
Регистрация: 08.09.2013
Сообщения: 551
Выставка наград
Регистрация: 08.09.2013
Сообщения: 551
Выставка наград
По умолчанию
Re: Скрипты

Рыцарь Бездны, через дополнительные флаги. У себя я делал подобные вещи так (код не готовый, но позволяющий понять принцип):

	-- таблица, хранящая имена регионов и флаги посещения
region_table =
{
  {name = 'НАЗВАНИЕ_ПЕРВОГО_РЕГИОНА', visited = 0},
  {name = 'НАЗВАНИЕ_ВТОРОГО_РЕГИОНА', visited = 0},
  ...
};

-- функция инициализации
function RegionInit()
  for i, region in region_table do
    Trigger(REGION_ENTER_AND_STOP_TRIGGER,  region.name, 'RegionVisit');
  end
end

-- единая функция посещения
function RegionVisit(hero)
  -- проверям в каком мы регионе
  for i, region in region_table do
    if(IsObjectInRegion(hero, region.name)) then
      Trigger(REGION_ENTER_AND_STOP_TRIGGER, region.name, nil);
      region.visited = 1;
      -- здесь можно сделать что нужно, в зависимости от номера региона (переменная i - номер в таблице region_table)
    end
  end
end

-- возвращает true, если регион с именем name посещен
function IsRegionVisited(name)
  for i, region in region_table do
    if((region.name == name) and (region.visited == 1)) then
      return true
    end
  end
  return nil
end
Jack_of_shadows вне форума
Ответить с цитированием