Настройка логики. Часть 0 — различия между версиями — S.T.A.L.K.E.R. Inside Wiki

Настройка логики. Часть 0 — различия между версиями

Материал из S.T.A.L.K.E.R. Inside Wiki

Перейти к: навигация, поиск
 
Строка 1: Строка 1:
1. Changes Log
+
==1. Changes Log==
  
 
<NULL>
 
<NULL>
  
2. Скрипты
+
==2. Скрипты==
 
Скрипты, которые можно использовать при конструировании игровых сцен: ScriptList
 
Скрипты, которые можно использовать при конструировании игровых сцен: ScriptList
  
 
Настройка смарттеррейнов: ScriptGulag
 
Настройка смарттеррейнов: ScriptGulag
  
2.1. ГУЛАГ
+
==2.1. ГУЛАГ==
2.1.1. Что это такое? Особенности
+
==2.1.1. Что это такое? Особенности==
 
Гулаг - средство объединения нескольких сталкеров под централизованным управлением.
 
Гулаг - средство объединения нескольких сталкеров под централизованным управлением.
  
Строка 19: Строка 19:
 
     * гулаг имеет состояния. Состояние - набор работ;  
 
     * гулаг имеет состояния. Состояние - набор работ;  
  
2.1.2. Как добавить новый тип гулага
+
==2.1.2. Как добавить новый тип гулага==
  
 
1. Установка на уровне.
 
1. Установка на уровне.
Строка 63: Строка 63:
 
       - в файле gulag_tasks.ltx создать описание каждой работы. Пример смотри в данном файле. Каждая работа должна описываться отдельной секцией(за исключением работ, которые кушают один и те же настройки, например kamp). Имена секций следует давать в соответствии с соглашением([walker1@имя зоны])
 
       - в файле gulag_tasks.ltx создать описание каждой работы. Пример смотри в данном файле. Каждая работа должна описываться отдельной секцией(за исключением работ, которые кушают один и те же настройки, например kamp). Имена секций следует давать в соответствии с соглашением([walker1@имя зоны])
 
       - в файле xr_gulag.script добавить функцию проверки на допустимость персонажа к гулагу (см пример в коде check_npc())
 
       - в файле xr_gulag.script добавить функцию проверки на допустимость персонажа к гулагу (см пример в коде check_npc())
 +
 +
 +
[[Категория:Скрипты]]

Версия 09:30, 10 марта 2010

1. Changes Log

<NULL>

2. Скрипты

Скрипты, которые можно использовать при конструировании игровых сцен: ScriptList

Настройка смарттеррейнов: ScriptGulag

2.1. ГУЛАГ

2.1.1. Что это такое? Особенности

Гулаг - средство объединения нескольких сталкеров под централизованным управлением.

Основные особенности:

   * есть список работ гулага. Работа - настроенная схема поведения (или цепочка схем  поведения);
   * работы имеют приоритеты;
   * гулаг назначает на работы сталкеров начиная с работ с наивысшим приоритетом;
   * гулаг имеет состояния. Состояние - набор работ; 

2.1.2. Как добавить новый тип гулага

1. Установка на уровне.

     - Необходимо установить зону smart_terrain, которая бы накрывала место захвата свежих душ (место спауна сталкеров). Необходимо помнить, что название зоны будет являться префиксом для патрульных путей, относящихся к этому гулагу. В custom_data зоны необходимо прописать настройку гулага: 

[gulag1] type = <тип гулага> squad = <squad> groups = <groups> capacity = <capacity> idle = min[, max] ;время бездействия после роспуска гулага. умолчание=0 stay = min[, max] ;время, на которое сталкер останется. умолчание=навсегда duration = min[, max] ; вермя существования данного типа гулага. умолчание=всегда preconditions = info1[, info2, ...] ; чтоб данный тип гулага образовался, нужно присутствие всех infoportions p = вероятность попадания сталкера под смарт терейн в процентах offline = true/false ; может ли данный гулаг образоваться в офлайне

времена задаются в часах игрового времени и могут быть дробными где: <тип гулага> - от него зависит набор и настройка работ. <squad> - все люди в гулаге будут иметь данный сквад. При отпускании на волю им будет восстанавливаться их родной сквад из редактора. <groups> - перечень групп, которые будут сетиться для той или иной работы. Задается строкой чисел, разделенных запятыми. <capacity> - максимальная вместимость гулага. Если количество человек в гулаге достигает этого значения, то больше в гулаг никто не принимается. Количество работ в гулаге в любой момент времени должно быть больше либо равно вместимости. Таким образом количество людей в гулаге гарантированно будет меньше либо равно количеству работ в любой момент времени.

2. Установка в коде.

     - необходимо в gulag_tasks.script внести настройку работ для данного типа гулага 

t = { section = "kamp1@gar_bandits",

       idle = 0,
       prior = 1, state = {0}, group = groups[0]
       in_rest = "", out_rest = ""

}

Idle – время в мс между запусками работы. Если оно отлично от 0, то работа может сетится только раз в заданное время. Если работа просечена – то обнуляться она не будет. Нужно для того чтобы раз в интервал отправлять патрули и другие конечные работы Prior – приоритет. Сперва заполняются работы с более высоким приоритетом. State - таблица с перечнем состояний гулага, в которых доступна данная работа. Group – группа для текущей работы, из перечисленных в кастом дате зоны. In_rest, out_rest - In и out рестрикторы для персонажа на текущей работе.

     - необходимо в gulag_tasks.script добавить функцию просчета состояния для данного типа гулага (см пример в коде. Функция loadStates())
     - в файле gulag_tasks.ltx создать описание каждой работы. Пример смотри в данном файле. Каждая работа должна описываться отдельной секцией(за исключением работ, которые кушают один и те же настройки, например kamp). Имена секций следует давать в соответствии с соглашением([walker1@имя зоны])
     - в файле xr_gulag.script добавить функцию проверки на допустимость персонажа к гулагу (см пример в коде check_npc())
Другие места
LANGUAGE