Форум HeroesWorld-а - Показать сообщение отдельно - Скрипты
Тема: Скрипты
Показать сообщение отдельно
#2046
Старый 19.09.2015, 08:25
  #2046
^
Рыцарь Бездны
 
Аватар для Рыцарь Бездны
📖
Регистрация: 24.07.2012
Сообщения: 88
Регистрация: 24.07.2012
Сообщения: 88
По умолчанию
Re: Скрипты

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

	-- таблица, хранящая имена регионов и флаги посещения
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

В жизни бы до такого недодумался,спасибо тебе нечеловеческое)

Я конечно извиняюсь,ну что поделаешь,такой вот я чайник... Самый последний вопрос.

Вобщем подскажи пожалуста,как сделать чтобы при посещении всех 5 регионов из таблицы выполнялось задание на посещение этих регионов?.Понимаю что это через NEW_DAY_TRIGGER и startThread нужно делать,но вот как это все реализовать мозгов нехватает...
Рыцарь Бездны вне форума
Ответить с цитированием