Войти на сайт Регистрация Лента форума Пользователи Правила сайта Поиск по форуму
Модератор форума: denis2000, FantomICW  
Модостроение. Спавн и логика
denis2000Дата: Пн, 10.10.2011, 21:20 | Сообщение # 1
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Спавн и логика

Создание объектов на локации и логика поведения этих объектов

Если у вас появились вопросы по созданию динамических объектов в игре (НПС, монстры, аномалии, и т.п.) и настройке их "поведения". Задавайте их в этой теме - умные головы,
модосторители и просто разбирающиеся в программировании люди вам ответят.


Много интересного материала здесь (wiki), Lua_help.script, Help из SDK 0.7

Сборник модостроения ЗП v10.10.11 (автор: XOBAH): *.CHM, *.HTML
[cut noguest=Если у вас не открывается файл CHM]Если у вас не открывается файл:
1. Запустите [Пуск]=>[Выполнить] (либо хот-кей [WIN]+[R])
2. Введите команду (без кавычек) "regsvr32 %windir%\system32\hhctrl.ocx"
3. Если вылезло окно об успешном завершении вы все сделали правильно и можете перезагружать компьютер (а может и не надо)
Также: файлы МОГУТ не открываться если в пути к файлу есть: символы кириллицы, "_", "#"
Также: есть не стандартные программы-просмоторщики CHM файлов. Например: FBReader[/cut]

[cut=Где найти лог игры после вылета]Что такое LOG ошибки, и как мне его найти?
Это система отладки происходивших вылетов, которая подается игрой в форме текста, хотя не всегда.
Для того чтоб найти LOG необходимо зайти вот сюда:

В Win хр лог находится:

C:\Documents and Settings\All Users\Документы\S.T.A.L.K.E.R. - Зов Припяти\logs

Затем открываете первый файл в формате TXT, и в нем отбираете с низу 25 строчек. После кидаете эти 25 строчек в сообщение на форум.

В Win7 лог находится C:\Users\Public\Documents\S.T.A.L.K.E.R. - Зов Припяти\logs

Путь к папке с логом можно найти открыв файл fsgame.ltx который находится в корневой директории ЗП, за это отвечает строка:
...
$app_data_root$ = true | false| $fs_root$| users\
(тут мы указываем что папка пользователя, будет хранится рядом с Fsgame.ltx)
...
$logs$ = true| false| $app_data_root$| logs\
(а тут мы указываем что в папке пользователя, в подпапке Logs будут храниться наши логи)
...
[/cut][cut=Получение более подробной информации о вылете (ХОВАН)]
Открываем файл _g.script и ищем такую функцию: function abort(fmt, ...)
Там есть заккомментированная строчка "--error_log(reason)", ее и надо расскомментировать, должно получиться вот так:
Code
function abort(fmt, ...)
                    local reason = string.format(fmt, ...)
                    error_log(reason)
end

Вот для примера два одинаковых вылета, первый с функцией по умолчанию, второй - с поправленной функцией

Первый:
Code
Expression    : !m_error_code
Function      : raii_guard::~raii_guard
File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line          : 748
Description   : ....a.l.k.e.r. - Зов Припяти\gamedata\scripts\_g.script:478: bad argument #2 to 'format' (string expected, got nil)

Второй:
Code
Expression    : 0
Function      : ErrorLog
File          : D:\prog_repository\sources\trunk\xrServerEntities\script_engine_script.cpp
Line          : 49
Description   : 'Attempt to read a non-existant string field 'path_walk' in section 'walker@mechanic'

[/cut]


Перед тем, как задать вопрос в этой теме, прочтите все предыдущие страницы,
статьи в wiki по ссылке из шапки и соседнюю тему "Курс молодого бойца",
возможно Ваш вопрос уже рассматривался.


Если произошел вылет - выкладываем лог! Вопрос ставим четко, не забываем указывать версию игры, установленные моды их версии, установленные фиксы модов и подробно ваши правки.
Помните чем подробнее вопрос, тем точнее ответ.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
denis2000Дата: Ср, 16.07.2014, 10:17 | Сообщение # 961
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Shram22, Также как и любого другого НПС. Будет он торговать или нет зависит от параметра trade_enable в секции [meet]. У торговцев также есть некоторые дополнительные параметры в секции логики [logic], нпример level_spot = trader (метка торговец на карте) и trade = misc\trade\trade_zat_a2_barmen.ltx (файл настроек торговли). В случае отсутствия этих параметров метка и настройки торговли стандартные. Также можно назначить НПС бесконечные деньги (infinitive="1") в дескрипшене персонажа:
Код
<money min="1000" max="1000" infinitive="1" />


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
Shram22Дата: Ср, 16.07.2014, 11:10 | Сообщение # 962
Удаленные



denis2000, а с Сидоровичем так же?
 
denis2000Дата: Ср, 16.07.2014, 17:07 | Сообщение # 963
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Shram22, Да, только нужно учитывать, что скелет и анимации этого НПС уникальные. Или брать модель Сидоровича на стандартном сталкерском скелете.

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
Shram22Дата: Ср, 16.07.2014, 17:33 | Сообщение # 964
Удаленные



denis2000, а какую для него логику нужно прописать?
 
denis2000Дата: Ср, 16.07.2014, 19:48 | Сообщение # 965
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Shram22, Такую как например в ЧН, файл configs\scripts\escape\esc_trader.ltx

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
sergej5500Дата: Пн, 21.07.2014, 17:29 | Сообщение # 966
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Добрый день. Просьба уточнить один вопрос. Что означает запись типа {~1} в коде:

[cut=Код][sr_idle@random_sim_1]
on_info = {~1} sr_idle@control_sim_2 %=create_squad(simulation_bloodsucker_nightmare:jup_sim_1)%, {~2} sr_idle@control_sim_2 %=create_squad(simulation_burer_nightmare:jup_sim_1)%, {~1} sr_idle@control_sim_2 %=create_squad(simulation_controller_nightmare:jup_sim_1)%, {~1} sr_idle@control_sim_2 %=create_squad(simulation_chimera_nightmare:jup_sim_1)%, {~1} sr_idle@control_sim_2 %=create_squad(simulation_bibliotekar_nightmare:jup_sim_1)%, {~1} sr_idle@control_sim_2 %=create_squad(simulation_bloodsucker:jup_sim_1)%, {~9} sr_idle@control_sim_2 %=create_squad(simulation_boar:jup_sim_1)%, {~2} sr_idle@control_sim_2 %=create_squad(simulation_burer:jup_sim_1)%, {~14} sr_idle@control_sim_2 %=create_squad(simulation_dog:jup_sim_1)%, {~8} sr_idle@control_sim_2 %=create_squad(simulation_pseudodog:jup_sim_1)%, {~12} sr_idle@control_sim_2 %=create_squad(simulation_flesh:jup_sim_1)%, {~7} sr_idle@control_sim_2 %=create_squad(simulation_snork:jup_sim_1)%, {~1} sr_idle@control_sim_2 %=create_squad(simulation_controller:jup_sim_1)%, {~13} sr_idle@control_sim_2 %=create_squad(simulation_mix_dogs:jup_sim_1)%, {~10} sr_idle@control_sim_2 %=create_squad(simulation_mix_boar_flesh:jup_sim_1)%, {~1} sr_idle@control_sim_2 %=create_squad(simulation_poltergeist_tele:jup_sim_1)%, {~1} sr_idle@control_sim_2 %=create_squad(simulation_chimera:jup_sim_1)%, {~6} sr_idle@control_sim_2 %=create_squad(simulation_psy_dog:jup_sim_1)%, {~8} sr_idle@control_sim_2 %=create_squad(simulation_tushkano:jup_sim_1)%, sr_idle@control_sim_2 %=create_squad(simulation_gigant:jup_sim_1)%
[/cut]
Я полагал, что это проценты. Данный код должен заспавнить симуляционный сквад монстров. Полная сумма чисел типа {~1} равна 99. На последнюю возможность sr_idle@control_sim_2 %=create_squad(simulation_gigant:jup_sim_1)% остается один процент. Я написал рестриктор спавна монстров для симуляционных смартов на Юпитере.

[cut=Логика][logic]
active = sr_idle@start

[sr_idle@start]
on_info = {+opt_more_monsters} sr_idle@random_timer

[sr_idle@random_timer]
on_info = {~25} sr_idle@timer_1, {~25} sr_idle@timer_2, {~25} sr_idle@timer_3, sr_idle@timer_4

[sr_idle@timer_1]
on_game_timer = 60 | sr_idle@control_sim_1

[sr_idle@timer_2]
on_game_timer = 120 | sr_idle@control_sim_1

[sr_idle@timer_3]
on_game_timer = 180 | sr_idle@control_sim_1

[sr_idle@timer_4]
on_game_timer = 240 | sr_idle@control_sim_1

[sr_idle@control_sim_1]
on_info = {=distance_to_smart_ge(jup_sim_1:150) =distance_to_smart_le(jup_sim_1:225)} sr_idle@random_sim_1, sr_idle@control_sim_2

[sr_idle@random_sim_1]
on_info = {~1} sr_idle@control_sim_2 %=create_squad(simulation_bloodsucker_nightmare:jup_sim_1)%, {~2} sr_idle@control_sim_2 %=create_squad(simulation_burer_nightmare:jup_sim_1)%, {~1} sr_idle@control_sim_2 %=create_squad(simulation_controller_nightmare:jup_sim_1)%, {~1} sr_idle@control_sim_2 %=create_squad(simulation_chimera_nightmare:jup_sim_1)%, {~1} sr_idle@control_sim_2 %=create_squad(simulation_bibliotekar_nightmare:jup_sim_1)%, {~1} sr_idle@control_sim_2 %=create_squad(simulation_bloodsucker:jup_sim_1)%, {~9} sr_idle@control_sim_2 %=create_squad(simulation_boar:jup_sim_1)%, {~2} sr_idle@control_sim_2 %=create_squad(simulation_burer:jup_sim_1)%, {~14} sr_idle@control_sim_2 %=create_squad(simulation_dog:jup_sim_1)%, {~8} sr_idle@control_sim_2 %=create_squad(simulation_pseudodog:jup_sim_1)%, {~12} sr_idle@control_sim_2 %=create_squad(simulation_flesh:jup_sim_1)%, {~7} sr_idle@control_sim_2 %=create_squad(simulation_snork:jup_sim_1)%, {~1} sr_idle@control_sim_2 %=create_squad(simulation_controller:jup_sim_1)%, {~13} sr_idle@control_sim_2 %=create_squad(simulation_mix_dogs:jup_sim_1)%, {~10} sr_idle@control_sim_2 %=create_squad(simulation_mix_boar_flesh:jup_sim_1)%, {~1} sr_idle@control_sim_2 %=create_squad(simulation_poltergeist_tele:jup_sim_1)%, {~1} sr_idle@control_sim_2 %=create_squad(simulation_chimera:jup_sim_1)%, {~6} sr_idle@control_sim_2 %=create_squad(simulation_psy_dog:jup_sim_1)%, {~8} sr_idle@control_sim_2 %=create_squad(simulation_tushkano:jup_sim_1)%, sr_idle@control_sim_2 %=create_squad(simulation_gigant:jup_sim_1)%

[sr_idle@control_sim_2]
on_info = {=distance_to_smart_ge(jup_sim_2:150) =distance_to_smart_le(jup_sim_2:225)} sr_idle@random_sim_2, sr_idle@control_sim_3

[sr_idle@random_sim_2]
on_info = {~1} sr_idle@control_sim_3 %=create_squad(simulation_bloodsucker_nightmare:jup_sim_2)%, {~2} sr_idle@control_sim_3 %=create_squad(simulation_burer_nightmare:jup_sim_2)%, {~1} sr_idle@control_sim_3 %=create_squad(simulation_controller_nightmare:jup_sim_2)%, {~1} sr_idle@control_sim_3 %=create_squad(simulation_chimera_nightmare:jup_sim_2)%, {~1} sr_idle@control_sim_3 %=create_squad(simulation_bibliotekar_nightmare:jup_sim_2)%, {~1} sr_idle@control_sim_3 %=create_squad(simulation_bloodsucker:jup_sim_2)%, {~9} sr_idle@control_sim_3 %=create_squad(simulation_boar:jup_sim_2)%, {~2} sr_idle@control_sim_3 %=create_squad(simulation_burer:jup_sim_2)%, {~14} sr_idle@control_sim_3 %=create_squad(simulation_dog:jup_sim_2)%, {~8} sr_idle@control_sim_3 %=create_squad(simulation_pseudodog:jup_sim_2)%, {~12} sr_idle@control_sim_3 %=create_squad(simulation_flesh:jup_sim_2)%, {~7} sr_idle@control_sim_3 %=create_squad(simulation_snork:jup_sim_2)%, {~1} sr_idle@control_sim_3 %=create_squad(simulation_controller:jup_sim_2)%, {~13} sr_idle@control_sim_3 %=create_squad(simulation_mix_dogs:jup_sim_2)%, {~10} sr_idle@control_sim_3 %=create_squad(simulation_mix_boar_flesh:jup_sim_2)%, {~1} sr_idle@control_sim_3 %=create_squad(simulation_poltergeist_tele:jup_sim_2)%, {~1} sr_idle@control_sim_3 %=create_squad(simulation_chimera:jup_sim_2)%, {~6} sr_idle@control_sim_3 %=create_squad(simulation_psy_dog:jup_sim_2)%, {~8} sr_idle@control_sim_3 %=create_squad(simulation_tushkano:jup_sim_2)%, sr_idle@control_sim_3 %=create_squad(simulation_gigant:jup_sim_2)%

[sr_idle@control_sim_3]
on_info = {=distance_to_smart_ge(jup_sim_3:150) =distance_to_smart_le(jup_sim_3:225)} sr_idle@random_sim_2, sr_idle@control_sim_4

[sr_idle@random_sim_3]
on_info = {~1} sr_idle@control_sim_4 %=create_squad(simulation_bloodsucker_nightmare:jup_sim_3)%, {~2} sr_idle@control_sim_4 %=create_squad(simulation_burer_nightmare:jup_sim_3)%, {~1} sr_idle@control_sim_4 %=create_squad(simulation_controller_nightmare:jup_sim_3)%, {~1} sr_idle@control_sim_4 %=create_squad(simulation_chimera_nightmare:jup_sim_3)%, {~1} sr_idle@control_sim_4 %=create_squad(simulation_bibliotekar_nightmare:jup_sim_3)%, {~1} sr_idle@control_sim_4 %=create_squad(simulation_bloodsucker:jup_sim_3)%, {~9} sr_idle@control_sim_4 %=create_squad(simulation_boar:jup_sim_3)%, {~2} sr_idle@control_sim_4 %=create_squad(simulation_burer:jup_sim_3)%, {~14} sr_idle@control_sim_4 %=create_squad(simulation_dog:jup_sim_3)%, {~8} sr_idle@control_sim_4 %=create_squad(simulation_pseudodog:jup_sim_3)%, {~12} sr_idle@control_sim_4 %=create_squad(simulation_flesh:jup_sim_3)%, {~7} sr_idle@control_sim_4 %=create_squad(simulation_snork:jup_sim_3)%, {~1} sr_idle@control_sim_4 %=create_squad(simulation_controller:jup_sim_3)%, {~13} sr_idle@control_sim_4 %=create_squad(simulation_mix_dogs:jup_sim_3)%, {~10} sr_idle@control_sim_4 %=create_squad(simulation_mix_boar_flesh:jup_sim_3)%, {~1} sr_idle@control_sim_4 %=create_squad(simulation_poltergeist_tele:jup_sim_3)%, {~1} sr_idle@control_sim_4 %=create_squad(simulation_chimera:jup_sim_3)%, {~6} sr_idle@control_sim_4 %=create_squad(simulation_psy_dog:jup_sim_3)%, {~8} sr_idle@control_sim_4 %=create_squad(simulation_tushkano:jup_sim_3)%, sr_idle@control_sim_4 %=create_squad(simulation_gigant:jup_sim_3)%

[sr_idle@control_sim_4]
on_info = {=distance_to_smart_ge(jup_sim_4:150) =distance_to_smart_le(jup_sim_4:225)} sr_idle@random_sim_2, sr_idle@control_sim_5

[sr_idle@random_sim_4]
on_info = {~1} sr_idle@control_sim_5 %=create_squad(simulation_bloodsucker_nightmare:jup_sim_4)%, {~2} sr_idle@control_sim_5 %=create_squad(simulation_burer_nightmare:jup_sim_4)%, {~1} sr_idle@control_sim_5 %=create_squad(simulation_controller_nightmare:jup_sim_4)%, {~1} sr_idle@control_sim_5 %=create_squad(simulation_chimera_nightmare:jup_sim_4)%, {~1} sr_idle@control_sim_5 %=create_squad(simulation_bibliotekar_nightmare:jup_sim_4)%, {~1} sr_idle@control_sim_5 %=create_squad(simulation_bloodsucker:jup_sim_4)%, {~9} sr_idle@control_sim_5 %=create_squad(simulation_boar:jup_sim_4)%, {~2} sr_idle@control_sim_5 %=create_squad(simulation_burer:jup_sim_4)%, {~14} sr_idle@control_sim_5 %=create_squad(simulation_dog:jup_sim_4)%, {~8} sr_idle@control_sim_5 %=create_squad(simulation_pseudodog:jup_sim_4)%, {~12} sr_idle@control_sim_5 %=create_squad(simulation_flesh:jup_sim_4)%, {~7} sr_idle@control_sim_5 %=create_squad(simulation_snork:jup_sim_4)%, {~1} sr_idle@control_sim_5 %=create_squad(simulation_controller:jup_sim_4)%, {~13} sr_idle@control_sim_5 %=create_squad(simulation_mix_dogs:jup_sim_4)%, {~10} sr_idle@control_sim_5 %=create_squad(simulation_mix_boar_flesh:jup_sim_4)%, {~1} sr_idle@control_sim_5 %=create_squad(simulation_poltergeist_tele:jup_sim_4)%, {~1} sr_idle@control_sim_5 %=create_squad(simulation_chimera:jup_sim_4)%, {~6} sr_idle@control_sim_5 %=create_squad(simulation_psy_dog:jup_sim_4)%, {~8} sr_idle@control_sim_5 %=create_squad(simulation_tushkano:jup_sim_4)%, sr_idle@control_sim_5 %=create_squad(simulation_gigant:jup_sim_4)%

[sr_idle@control_sim_5]
on_info = {=distance_to_smart_ge(jup_sim_5:150) =distance_to_smart_le(jup_sim_5:225)} sr_idle@random_sim_2, sr_idle@control_sim_6

[sr_idle@random_sim_5]
on_info = {~1} sr_idle@control_sim_6 %=create_squad(simulation_bloodsucker_nightmare:jup_sim_5)%, {~2} sr_idle@control_sim_6 %=create_squad(simulation_burer_nightmare:jup_sim_5)%, {~1} sr_idle@control_sim_6 %=create_squad(simulation_controller_nightmare:jup_sim_5)%, {~1} sr_idle@control_sim_6 %=create_squad(simulation_chimera_nightmare:jup_sim_5)%, {~1} sr_idle@control_sim_6 %=create_squad(simulation_bibliotekar_nightmare:jup_sim_5)%, {~1} sr_idle@control_sim_6 %=create_squad(simulation_bloodsucker:jup_sim_5)%, {~9} sr_idle@control_sim_6 %=create_squad(simulation_boar:jup_sim_5)%, {~2} sr_idle@control_sim_6 %=create_squad(simulation_burer:jup_sim_5)%, {~14} sr_idle@control_sim_6 %=create_squad(simulation_dog:jup_sim_5)%, {~8} sr_idle@control_sim_6 %=create_squad(simulation_pseudodog:jup_sim_5)%, {~12} sr_idle@control_sim_6 %=create_squad(simulation_flesh:jup_sim_5)%, {~7} sr_idle@control_sim_6 %=create_squad(simulation_snork:jup_sim_5)%, {~1} sr_idle@control_sim_6 %=create_squad(simulation_controller:jup_sim_5)%, {~13} sr_idle@control_sim_6 %=create_squad(simulation_mix_dogs:jup_sim_5)%, {~10} sr_idle@control_sim_6 %=create_squad(simulation_mix_boar_flesh:jup_sim_5)%, {~1} sr_idle@control_sim_6 %=create_squad(simulation_poltergeist_tele:jup_sim_5)%, {~1} sr_idle@control_sim_6 %=create_squad(simulation_chimera:jup_sim_5)%, {~6} sr_idle@control_sim_6 %=create_squad(simulation_psy_dog:jup_sim_5)%, {~8} sr_idle@control_sim_6 %=create_squad(simulation_tushkano:jup_sim_5)%, sr_idle@control_sim_6 %=create_squad(simulation_gigant:jup_sim_5)%

[sr_idle@control_sim_6]
on_info = {=distance_to_smart_ge(jup_sim_6:150) =distance_to_smart_le(jup_sim_6:225)} sr_idle@random_sim_2, sr_idle@control_sim_7

[sr_idle@random_sim_6]
on_info = {~1} sr_idle@control_sim_7 %=create_squad(simulation_bloodsucker_nightmare:jup_sim_6)%, {~2} sr_idle@control_sim_7 %=create_squad(simulation_burer_nightmare:jup_sim_6)%, {~1} sr_idle@control_sim_7 %=create_squad(simulation_controller_nightmare:jup_sim_6)%, {~1} sr_idle@control_sim_7 %=create_squad(simulation_chimera_nightmare:jup_sim_6)%, {~1} sr_idle@control_sim_7 %=create_squad(simulation_bibliotekar_nightmare:jup_sim_6)%, {~1} sr_idle@control_sim_7 %=create_squad(simulation_bloodsucker:jup_sim_6)%, {~9} sr_idle@control_sim_7 %=create_squad(simulation_boar:jup_sim_6)%, {~2} sr_idle@control_sim_7 %=create_squad(simulation_burer:jup_sim_6)%, {~14} sr_idle@control_sim_7 %=create_squad(simulation_dog:jup_sim_6)%, {~8} sr_idle@control_sim_7 %=create_squad(simulation_pseudodog:jup_sim_6)%, {~12} sr_idle@control_sim_7 %=create_squad(simulation_flesh:jup_sim_6)%, {~7} sr_idle@control_sim_7 %=create_squad(simulation_snork:jup_sim_6)%, {~1} sr_idle@control_sim_7 %=create_squad(simulation_controller:jup_sim_6)%, {~13} sr_idle@control_sim_7 %=create_squad(simulation_mix_dogs:jup_sim_6)%, {~10} sr_idle@control_sim_7 %=create_squad(simulation_mix_boar_flesh:jup_sim_6)%, {~1} sr_idle@control_sim_7 %=create_squad(simulation_poltergeist_tele:jup_sim_6)%, {~1} sr_idle@control_sim_7 %=create_squad(simulation_chimera:jup_sim_6)%, {~6} sr_idle@control_sim_7 %=create_squad(simulation_psy_dog:jup_sim_6)%, {~8} sr_idle@control_sim_7 %=create_squad(simulation_tushkano:jup_sim_6)%, sr_idle@control_sim_7 %=create_squad(simulation_gigant:jup_sim_6)%

[sr_idle@control_sim_7]
on_info = {=distance_to_smart_ge(jup_sim_7:150) =distance_to_smart_le(jup_sim_7:225)} sr_idle@random_sim_2, sr_idle@control_sim_8

[sr_idle@random_sim_7]
on_info = {~1} sr_idle@control_sim_8 %=create_squad(simulation_bloodsucker_nightmare:jup_sim_7)%, {~2} sr_idle@control_sim_8 %=create_squad(simulation_burer_nightmare:jup_sim_7)%, {~1} sr_idle@control_sim_8 %=create_squad(simulation_controller_nightmare:jup_sim_7)%, {~1} sr_idle@control_sim_8 %=create_squad(simulation_chimera_nightmare:jup_sim_7)%, {~1} sr_idle@control_sim_8 %=create_squad(simulation_bibliotekar_nightmare:jup_sim_7)%, {~1} sr_idle@control_sim_8 %=create_squad(simulation_bloodsucker:jup_sim_7)%, {~9} sr_idle@control_sim_8 %=create_squad(simulation_boar:jup_sim_7)%, {~2} sr_idle@control_sim_8 %=create_squad(simulation_burer:jup_sim_7)%, {~14} sr_idle@control_sim_8 %=create_squad(simulation_dog:jup_sim_7)%, {~8} sr_idle@control_sim_8 %=create_squad(simulation_pseudodog:jup_sim_7)%, {~12} sr_idle@control_sim_8 %=create_squad(simulation_flesh:jup_sim_7)%, {~7} sr_idle@control_sim_8 %=create_squad(simulation_snork:jup_sim_7)%, {~1} sr_idle@control_sim_8 %=create_squad(simulation_controller:jup_sim_7)%, {~13} sr_idle@control_sim_8 %=create_squad(simulation_mix_dogs:jup_sim_7)%, {~10} sr_idle@control_sim_8 %=create_squad(simulation_mix_boar_flesh:jup_sim_7)%, {~1} sr_idle@control_sim_8 %=create_squad(simulation_poltergeist_tele:jup_sim_7)%, {~1} sr_idle@control_sim_8 %=create_squad(simulation_chimera:jup_sim_7)%, {~6} sr_idle@control_sim_8 %=create_squad(simulation_psy_dog:jup_sim_7)%, {~8} sr_idle@control_sim_8 %=create_squad(simulation_tushkano:jup_sim_7)%, sr_idle@control_sim_8 %=create_squad(simulation_gigant:jup_sim_7)%

[sr_idle@control_sim_8]
on_info = {=distance_to_smart_ge(jup_sim_8:150) =distance_to_smart_le(jup_sim_8:225)} sr_idle@random_sim_2, sr_idle@control_sim_9

[sr_idle@random_sim_8]
on_info = {~1} sr_idle@control_sim_9 %=create_squad(simulation_bloodsucker_nightmare:jup_sim_8)%, {~2} sr_idle@control_sim_9 %=create_squad(simulation_burer_nightmare:jup_sim_8)%, {~1} sr_idle@control_sim_9 %=create_squad(simulation_controller_nightmare:jup_sim_8)%, {~1} sr_idle@control_sim_9 %=create_squad(simulation_chimera_nightmare:jup_sim_8)%, {~1} sr_idle@control_sim_9 %=create_squad(simulation_bibliotekar_nightmare:jup_sim_8)%, {~1} sr_idle@control_sim_9 %=create_squad(simulation_bloodsucker:jup_sim_8)%, {~9} sr_idle@control_sim_9 %=create_squad(simulation_boar:jup_sim_8)%, {~2} sr_idle@control_sim_9 %=create_squad(simulation_burer:jup_sim_8)%, {~14} sr_idle@control_sim_9 %=create_squad(simulation_dog:jup_sim_8)%, {~8} sr_idle@control_sim_9 %=create_squad(simulation_pseudodog:jup_sim_8)%, {~12} sr_idle@control_sim_9 %=create_squad(simulation_flesh:jup_sim_8)%, {~7} sr_idle@control_sim_9 %=create_squad(simulation_snork:jup_sim_8)%, {~1} sr_idle@control_sim_9 %=create_squad(simulation_controller:jup_sim_8)%, {~13} sr_idle@control_sim_9 %=create_squad(simulation_mix_dogs:jup_sim_8)%, {~10} sr_idle@control_sim_9 %=create_squad(simulation_mix_boar_flesh:jup_sim_8)%, {~1} sr_idle@control_sim_9 %=create_squad(simulation_poltergeist_tele:jup_sim_8)%, {~1} sr_idle@control_sim_9 %=create_squad(simulation_chimera:jup_sim_8)%, {~6} sr_idle@control_sim_9 %=create_squad(simulation_psy_dog:jup_sim_8)%, {~8} sr_idle@control_sim_9 %=create_squad(simulation_tushkano:jup_sim_8)%, sr_idle@control_sim_9 %=create_squad(simulation_gigant:jup_sim_8)%

[sr_idle@control_sim_9]
on_info = {=distance_to_smart_ge(jup_sim_9:150) =distance_to_smart_le(jup_sim_9:225)} sr_idle@random_sim_2, sr_idle@control_sim_10

[sr_idle@random_sim_9]
on_info = {~1} sr_idle@control_sim_10 %=create_squad(simulation_bloodsucker_nightmare:jup_sim_9)%, {~2} sr_idle@control_sim_10 %=create_squad(simulation_burer_nightmare:jup_sim_9)%, {~1} sr_idle@control_sim_10 %=create_squad(simulation_controller_nightmare:jup_sim_9)%, {~1} sr_idle@control_sim_10 %=create_squad(simulation_chimera_nightmare:jup_sim_9)%, {~1} sr_idle@control_sim_10 %=create_squad(simulation_bibliotekar_nightmare:jup_sim_9)%, {~1} sr_idle@control_sim_10 %=create_squad(simulation_bloodsucker:jup_sim_9)%, {~9} sr_idle@control_sim_10 %=create_squad(simulation_boar:jup_sim_9)%, {~2} sr_idle@control_sim_10 %=create_squad(simulation_burer:jup_sim_9)%, {~14} sr_idle@control_sim_10 %=create_squad(simulation_dog:jup_sim_9)%, {~8} sr_idle@control_sim_10 %=create_squad(simulation_pseudodog:jup_sim_9)%, {~12} sr_idle@control_sim_10 %=create_squad(simulation_flesh:jup_sim_9)%, {~7} sr_idle@control_sim_10 %=create_squad(simulation_snork:jup_sim_9)%, {~1} sr_idle@control_sim_10 %=create_squad(simulation_controller:jup_sim_9)%, {~13} sr_idle@control_sim_10 %=create_squad(simulation_mix_dogs:jup_sim_9)%, {~10} sr_idle@control_sim_10 %=create_squad(simulation_mix_boar_flesh:jup_sim_9)%, {~1} sr_idle@control_sim_10 %=create_squad(simulation_poltergeist_tele:jup_sim_9)%, {~1} sr_idle@control_sim_10 %=create_squad(simulation_chimera:jup_sim_9)%, {~6} sr_idle@control_sim_10 %=create_squad(simulation_psy_dog:jup_sim_9)%, {~8} sr_idle@control_sim_10 %=create_squad(simulation_tushkano:jup_sim_9)%, sr_idle@control_sim_10 %=create_squad(simulation_gigant:jup_sim_9)%

[sr_idle@control_sim_10]
on_info = {=distance_to_smart_ge(jup_sim_10:150) =distance_to_smart_le(jup_sim_10:225)} sr_idle@random_sim_2, sr_idle@control_sim_11

[sr_idle@random_sim_10]
on_info = {~1} sr_idle@control_sim_11 %=create_squad(simulation_bloodsucker_nightmare:jup_sim_10)%, {~2} sr_idle@control_sim_11 %=create_squad(simulation_burer_nightmare:jup_sim_10)%, {~1} sr_idle@control_sim_11 %=create_squad(simulation_controller_nightmare:jup_sim_10)%, {~1} sr_idle@control_sim_11 %=create_squad(simulation_chimera_nightmare:jup_sim_10)%, {~1} sr_idle@control_sim_11 %=create_squad(simulation_bibliotekar_nightmare:jup_sim_10)%, {~1} sr_idle@control_sim_11 %=create_squad(simulation_bloodsucker:jup_sim_10)%, {~9} sr_idle@control_sim_11 %=create_squad(simulation_boar:jup_sim_10)%, {~2} sr_idle@control_sim_11 %=create_squad(simulation_burer:jup_sim_10)%, {~14} sr_idle@control_sim_11 %=create_squad(simulation_dog:jup_sim_10)%, {~8} sr_idle@control_sim_11 %=create_squad(simulation_pseudodog:jup_sim_10)%, {~12} sr_idle@control_sim_11 %=create_squad(simulation_flesh:jup_sim_10)%, {~7} sr_idle@control_sim_11 %=create_squad(simulation_snork:jup_sim_10)%, {~1} sr_idle@control_sim_11 %=create_squad(simulation_controller:jup_sim_10)%, {~13} sr_idle@control_sim_11 %=create_squad(simulation_mix_dogs:jup_sim_10)%, {~10} sr_idle@control_sim_11 %=create_squad(simulation_mix_boar_flesh:jup_sim_10)%, {~1} sr_idle@control_sim_11 %=create_squad(simulation_poltergeist_tele:jup_sim_10)%, {~1} sr_idle@control_sim_11 %=create_squad(simulation_chimera:jup_sim_10)%, {~6} sr_idle@control_sim_11 %=create_squad(simulation_psy_dog:jup_sim_10)%, {~8} sr_idle@control_sim_11 %=create_squad(simulation_tushkano:jup_sim_10)%, sr_idle@control_sim_11 %=create_squad(simulation_gigant:jup_sim_10)%

[sr_idle@control_sim_11]
on_info = {=distance_to_smart_ge(jup_sim_11:150) =distance_to_smart_le(jup_sim_11:225)} sr_idle@random_sim_2, sr_idle@control_sim_12

[sr_idle@random_sim_11]
on_info = {~1} sr_idle@control_sim_12 %=create_squad(simulation_bloodsucker_nightmare:jup_sim_11)%, {~2} sr_idle@control_sim_12 %=create_squad(simulation_burer_nightmare:jup_sim_11)%, {~1} sr_idle@control_sim_12 %=create_squad(simulation_controller_nightmare:jup_sim_11)%, {~1} sr_idle@control_sim_12 %=create_squad(simulation_chimera_nightmare:jup_sim_11)%, {~1} sr_idle@control_sim_12 %=create_squad(simulation_bibliotekar_nightmare:jup_sim_11)%, {~1} sr_idle@control_sim_12 %=create_squad(simulation_bloodsucker:jup_sim_11)%, {~9} sr_idle@control_sim_12 %=create_squad(simulation_boar:jup_sim_11)%, {~2} sr_idle@control_sim_12 %=create_squad(simulation_burer:jup_sim_11)%, {~14} sr_idle@control_sim_12 %=create_squad(simulation_dog:jup_sim_11)%, {~8} sr_idle@control_sim_12 %=create_squad(simulation_pseudodog:jup_sim_11)%, {~12} sr_idle@control_sim_12 %=create_squad(simulation_flesh:jup_sim_11)%, {~7} sr_idle@control_sim_12 %=create_squad(simulation_snork:jup_sim_11)%, {~1} sr_idle@control_sim_12 %=create_squad(simulation_controller:jup_sim_11)%, {~13} sr_idle@control_sim_12 %=create_squad(simulation_mix_dogs:jup_sim_11)%, {~10} sr_idle@control_sim_12 %=create_squad(simulation_mix_boar_flesh:jup_sim_11)%, {~1} sr_idle@control_sim_12 %=create_squad(simulation_poltergeist_tele:jup_sim_11)%, {~1} sr_idle@control_sim_12 %=create_squad(simulation_chimera:jup_sim_11)%, {~6} sr_idle@control_sim_12 %=create_squad(simulation_psy_dog:jup_sim_11)%, {~8} sr_idle@control_sim_12 %=create_squad(simulation_tushkano:jup_sim_11)%, sr_idle@control_sim_12 %=create_squad(simulation_gigant:jup_sim_11)%

[sr_idle@control_sim_12]
on_info = {=distance_to_smart_ge(jup_sim_12:150) =distance_to_smart_le(jup_sim_12:225)} sr_idle@random_sim_2, sr_idle@control_sim_13

[sr_idle@random_sim_12]
on_info = {~1} sr_idle@control_sim_13 %=create_squad(simulation_bloodsucker_nightmare:jup_sim_12)%, {~2} sr_idle@control_sim_13 %=create_squad(simulation_burer_nightmare:jup_sim_12)%, {~1} sr_idle@control_sim_13 %=create_squad(simulation_controller_nightmare:jup_sim_12)%, {~1} sr_idle@control_sim_13 %=create_squad(simulation_chimera_nightmare:jup_sim_12)%, {~1} sr_idle@control_sim_13 %=create_squad(simulation_bibliotekar_nightmare:jup_sim_12)%, {~1} sr_idle@control_sim_13 %=create_squad(simulation_bloodsucker:jup_sim_12)%, {~9} sr_idle@control_sim_13 %=create_squad(simulation_boar:jup_sim_12)%, {~2} sr_idle@control_sim_13 %=create_squad(simulation_burer:jup_sim_12)%, {~14} sr_idle@control_sim_13 %=create_squad(simulation_dog:jup_sim_12)%, {~8} sr_idle@control_sim_13 %=create_squad(simulation_pseudodog:jup_sim_12)%, {~12} sr_idle@control_sim_13 %=create_squad(simulation_flesh:jup_sim_12)%, {~7} sr_idle@control_sim_13 %=create_squad(simulation_snork:jup_sim_12)%, {~1} sr_idle@control_sim_13 %=create_squad(simulation_controller:jup_sim_12)%, {~13} sr_idle@control_sim_13 %=create_squad(simulation_mix_dogs:jup_sim_12)%, {~10} sr_idle@control_sim_13 %=create_squad(simulation_mix_boar_flesh:jup_sim_12)%, {~1} sr_idle@control_sim_13 %=create_squad(simulation_poltergeist_tele:jup_sim_12)%, {~1} sr_idle@control_sim_13 %=create_squad(simulation_chimera:jup_sim_12)%, {~6} sr_idle@control_sim_13 %=create_squad(simulation_psy_dog:jup_sim_12)%, {~8} sr_idle@control_sim_13 %=create_squad(simulation_tushkano:jup_sim_12)%, sr_idle@control_sim_13 %=create_squad(simulation_gigant:jup_sim_12)%

[sr_idle@control_sim_13]
on_info = {=distance_to_smart_ge(jup_sim_13:150) =distance_to_smart_le(jup_sim_13:225)} sr_idle@random_sim_2, sr_idle@control_sim_14

[sr_idle@random_sim_13]
on_info = {~1} sr_idle@control_sim_14 %=create_squad(simulation_bloodsucker_nightmare:jup_sim_13)%, {~2} sr_idle@control_sim_14 %=create_squad(simulation_burer_nightmare:jup_sim_13)%, {~1} sr_idle@control_sim_14 %=create_squad(simulation_controller_nightmare:jup_sim_13)%, {~1} sr_idle@control_sim_14 %=create_squad(simulation_chimera_nightmare:jup_sim_13)%, {~1} sr_idle@control_sim_14 %=create_squad(simulation_bibliotekar_nightmare:jup_sim_13)%, {~1} sr_idle@control_sim_14 %=create_squad(simulation_bloodsucker:jup_sim_13)%, {~9} sr_idle@control_sim_14 %=create_squad(simulation_boar:jup_sim_13)%, {~2} sr_idle@control_sim_14 %=create_squad(simulation_burer:jup_sim_13)%, {~14} sr_idle@control_sim_14 %=create_squad(simulation_dog:jup_sim_13)%, {~8} sr_idle@control_sim_14 %=create_squad(simulation_pseudodog:jup_sim_13)%, {~12} sr_idle@control_sim_14 %=create_squad(simulation_flesh:jup_sim_13)%, {~7} sr_idle@control_sim_14 %=create_squad(simulation_snork:jup_sim_13)%, {~1} sr_idle@control_sim_14 %=create_squad(simulation_controller:jup_sim_13)%, {~13} sr_idle@control_sim_14 %=create_squad(simulation_mix_dogs:jup_sim_13)%, {~10} sr_idle@control_sim_14 %=create_squad(simulation_mix_boar_flesh:jup_sim_13)%, {~1} sr_idle@control_sim_14 %=create_squad(simulation_poltergeist_tele:jup_sim_13)%, {~1} sr_idle@control_sim_14 %=create_squad(simulation_chimera:jup_sim_13)%, {~6} sr_idle@control_sim_14 %=create_squad(simulation_psy_dog:jup_sim_13)%, {~8} sr_idle@control_sim_14 %=create_squad(simulation_tushkano:jup_sim_13)%, sr_idle@control_sim_14 %=create_squad(simulation_gigant:jup_sim_13)%

[sr_idle@control_sim_14]
on_info = {=distance_to_smart_ge(jup_sim_14:150) =distance_to_smart_le(jup_sim_14:225)} sr_idle@random_sim_2, sr_idle@control_sim_15

[sr_idle@random_sim_14]
on_info = {~1} sr_idle@control_sim_15 %=create_squad(simulation_bloodsucker_nightmare:jup_sim_14)%, {~2} sr_idle@control_sim_15 %=create_squad(simulation_burer_nightmare:jup_sim_14)%, {~1} sr_idle@control_sim_15 %=create_squad(simulation_controller_nightmare:jup_sim_14)%, {~1} sr_idle@control_sim_15 %=create_squad(simulation_chimera_nightmare:jup_sim_14)%, {~1} sr_idle@control_sim_15 %=create_squad(simulation_bibliotekar_nightmare:jup_sim_14)%, {~1} sr_idle@control_sim_15 %=create_squad(simulation_bloodsucker:jup_sim_14)%, {~9} sr_idle@control_sim_15 %=create_squad(simulation_boar:jup_sim_14)%, {~2} sr_idle@control_sim_15 %=create_squad(simulation_burer:jup_sim_14)%, {~14} sr_idle@control_sim_15 %=create_squad(simulation_dog:jup_sim_14)%, {~8} sr_idle@control_sim_15 %=create_squad(simulation_pseudodog:jup_sim_14)%, {~12} sr_idle@control_sim_15 %=create_squad(simulation_flesh:jup_sim_14)%, {~7} sr_idle@control_sim_15 %=create_squad(simulation_snork:jup_sim_14)%, {~1} sr_idle@control_sim_15 %=create_squad(simulation_controller:jup_sim_14)%, {~13} sr_idle@control_sim_15 %=create_squad(simulation_mix_dogs:jup_sim_14)%, {~10} sr_idle@control_sim_15 %=create_squad(simulation_mix_boar_flesh:jup_sim_14)%, {~1} sr_idle@control_sim_15 %=create_squad(simulation_poltergeist_tele:jup_sim_14)%, {~1} sr_idle@control_sim_15 %=create_squad(simulation_chimera:jup_sim_14)%, {~6} sr_idle@control_sim_15 %=create_squad(simulation_psy_dog:jup_sim_14)%, {~8} sr_idle@control_sim_15 %=create_squad(simulation_tushkano:jup_sim_14)%, sr_idle@control_sim_15 %=create_squad(simulation_gigant:jup_sim_14)%

[sr_idle@control_sim_15]
on_info = {=distance_to_smart_ge(jup_sim_15:150) =distance_to_smart_le(jup_sim_15:225)} sr_idle@random_sim_2, sr_idle@control_sim_16

[sr_idle@random_sim_15]
on_info = {~1} sr_idle@control_sim_16 %=create_squad(simulation_bloodsucker_nightmare:jup_sim_15)%, {~2} sr_idle@control_sim_16 %=create_squad(simulation_burer_nightmare:jup_sim_15)%, {~1} sr_idle@control_sim_16 %=create_squad(simulation_controller_nightmare:jup_sim_15)%, {~1} sr_idle@control_sim_16 %=create_squad(simulation_chimera_nightmare:jup_sim_15)%, {~1} sr_idle@control_sim_16 %=create_squad(simulation_bibliotekar_nightmare:jup_sim_15)%, {~1} sr_idle@control_sim_16 %=create_squad(simulation_bloodsucker:jup_sim_15)%, {~9} sr_idle@control_sim_16 %=create_squad(simulation_boar:jup_sim_15)%, {~2} sr_idle@control_sim_16 %=create_squad(simulation_burer:jup_sim_15)%, {~14} sr_idle@control_sim_16 %=create_squad(simulation_dog:jup_sim_15)%, {~8} sr_idle@control_sim_16 %=create_squad(simulation_pseudodog:jup_sim_15)%, {~12} sr_idle@control_sim_16 %=create_squad(simulation_flesh:jup_sim_15)%, {~7} sr_idle@control_sim_16 %=create_squad(simulation_snork:jup_sim_15)%, {~1} sr_idle@control_sim_16 %=create_squad(simulation_controller:jup_sim_15)%, {~13} sr_idle@control_sim_16 %=create_squad(simulation_mix_dogs:jup_sim_15)%, {~10} sr_idle@control_sim_16 %=create_squad(simulation_mix_boar_flesh:jup_sim_15)%, {~1} sr_idle@control_sim_16 %=create_squad(simulation_poltergeist_tele:jup_sim_15)%, {~1} sr_idle@control_sim_16 %=create_squad(simulation_chimera:jup_sim_15)%, {~6} sr_idle@control_sim_16 %=create_squad(simulation_psy_dog:jup_sim_15)%, {~8} sr_idle@control_sim_16 %=create_squad(simulation_tushkano:jup_sim_15)%, sr_idle@control_sim_16 %=create_squad(simulation_gigant:jup_sim_15)%

[sr_idle@control_sim_16]
on_info = {=distance_to_smart_ge(jup_sim_16:150) =distance_to_smart_le(jup_sim_16:225)} sr_idle@random_sim_2, sr_idle@control_sim_17

[sr_idle@random_sim_16]
on_info = {~1} sr_idle@control_sim_17 %=create_squad(simulation_bloodsucker_nightmare:jup_sim_16)%, {~2} sr_idle@control_sim_17 %=create_squad(simulation_burer_nightmare:jup_sim_16)%, {~1} sr_idle@control_sim_17 %=create_squad(simulation_controller_nightmare:jup_sim_16)%, {~1} sr_idle@control_sim_17 %=create_squad(simulation_chimera_nightmare:jup_sim_16)%, {~1} sr_idle@control_sim_17 %=create_squad(simulation_bibliotekar_nightmare:jup_sim_16)%, {~1} sr_idle@control_sim_17 %=create_squad(simulation_bloodsucker:jup_sim_16)%, {~9} sr_idle@control_sim_17 %=create_squad(simulation_boar:jup_sim_16)%, {~2} sr_idle@control_sim_17 %=create_squad(simulation_burer:jup_sim_16)%, {~14} sr_idle@control_sim_17 %=create_squad(simulation_dog:jup_sim_16)%, {~8} sr_idle@control_sim_17 %=create_squad(simulation_pseudodog:jup_sim_16)%, {~12} sr_idle@control_sim_17 %=create_squad(simulation_flesh:jup_sim_16)%, {~7} sr_idle@control_sim_17 %=create_squad(simulation_snork:jup_sim_16)%, {~1} sr_idle@control_sim_17 %=create_squad(simulation_controller:jup_sim_16)%, {~13} sr_idle@control_sim_17 %=create_squad(simulation_mix_dogs:jup_sim_16)%, {~10} sr_idle@control_sim_17 %=create_squad(simulation_mix_boar_flesh:jup_sim_16)%, {~1} sr_idle@control_sim_17 %=create_squad(simulation_poltergeist_tele:jup_sim_16)%, {~1} sr_idle@control_sim_17 %=create_squad(simulation_chimera:jup_sim_16)%, {~6} sr_idle@control_sim_17 %=create_squad(simulation_psy_dog:jup_sim_16)%, {~8} sr_idle@control_sim_17 %=create_squad(simulation_tushkano:jup_sim_16)%, sr_idle@control_sim_17 %=create_squad(simulation_gigant:jup_sim_16)%

[sr_idle@control_sim_17]
on_info = {=distance_to_smart_ge(jup_sim_17:150) =distance_to_smart_le(jup_sim_17:225)} sr_idle@random_sim_2, sr_idle@control_sim_19

[sr_idle@random_sim_17]
on_info = {~1} sr_idle@control_sim_19 %=create_squad(simulation_bloodsucker_nightmare:jup_sim_17)%, {~2} sr_idle@control_sim_19 %=create_squad(simulation_burer_nightmare:jup_sim_17)%, {~1} sr_idle@control_sim_19 %=create_squad(simulation_controller_nightmare:jup_sim_17)%, {~1} sr_idle@control_sim_19 %=create_squad(simulation_chimera_nightmare:jup_sim_17)%, {~1} sr_idle@control_sim_19 %=create_squad(simulation_bibliotekar_nightmare:jup_sim_17)%, {~1} sr_idle@control_sim_19 %=create_squad(simulation_bloodsucker:jup_sim_17)%, {~9} sr_idle@control_sim_19 %=create_squad(simulation_boar:jup_sim_17)%, {~2} sr_idle@control_sim_19 %=create_squad(simulation_burer:jup_sim_17)%, {~14} sr_idle@control_sim_19 %=create_squad(simulation_dog:jup_sim_17)%, {~8} sr_idle@control_sim_19 %=create_squad(simulation_pseudodog:jup_sim_17)%, {~12} sr_idle@control_sim_19 %=create_squad(simulation_flesh:jup_sim_17)%, {~7} sr_idle@control_sim_19 %=create_squad(simulation_snork:jup_sim_17)%, {~1} sr_idle@control_sim_19 %=create_squad(simulation_controller:jup_sim_17)%, {~13} sr_idle@control_sim_19 %=create_squad(simulation_mix_dogs:jup_sim_17)%, {~10} sr_idle@control_sim_19 %=create_squad(simulation_mix_boar_flesh:jup_sim_17)%, {~1} sr_idle@control_sim_19 %=create_squad(simulation_poltergeist_tele:jup_sim_17)%, {~1} sr_idle@control_sim_19 %=create_squad(simulation_chimera:jup_sim_17)%, {~6} sr_idle@control_sim_19 %=create_squad(simulation_psy_dog:jup_sim_17)%, {~8} sr_idle@control_sim_19 %=create_squad(simulation_tushkano:jup_sim_17)%, sr_idle@control_sim_19 %=create_squad(simulation_gigant:jup_sim_17)%

[sr_idle@control_sim_19]
on_info = {=distance_to_smart_ge(jup_sim_19:150) =distance_to_smart_le(jup_sim_19:225)} sr_idle@random_sim_2, sr_idle@control_sim_20

[sr_idle@random_sim_19]
on_info = {~1} sr_idle@control_sim_20 %=create_squad(simulation_bloodsucker_nightmare:jup_sim_19)%, {~2} sr_idle@control_sim_20 %=create_squad(simulation_burer_nightmare:jup_sim_19)%, {~1} sr_idle@control_sim_20 %=create_squad(simulation_controller_nightmare:jup_sim_19)%, {~1} sr_idle@control_sim_20 %=create_squad(simulation_chimera_nightmare:jup_sim_19)%, {~1} sr_idle@control_sim_20 %=create_squad(simulation_bibliotekar_nightmare:jup_sim_19)%, {~1} sr_idle@control_sim_20 %=create_squad(simulation_bloodsucker:jup_sim_19)%, {~9} sr_idle@control_sim_20 %=create_squad(simulation_boar:jup_sim_19)%, {~2} sr_idle@control_sim_20 %=create_squad(simulation_burer:jup_sim_19)%, {~14} sr_idle@control_sim_20 %=create_squad(simulation_dog:jup_sim_19)%, {~8} sr_idle@control_sim_20 %=create_squad(simulation_pseudodog:jup_sim_19)%, {~12} sr_idle@control_sim_20 %=create_squad(simulation_flesh:jup_sim_19)%, {~7} sr_idle@control_sim_20 %=create_squad(simulation_snork:jup_sim_19)%, {~1} sr_idle@control_sim_20 %=create_squad(simulation_controller:jup_sim_19)%, {~13} sr_idle@control_sim_20 %=create_squad(simulation_mix_dogs:jup_sim_19)%, {~10} sr_idle@control_sim_20 %=create_squad(simulation_mix_boar_flesh:jup_sim_19)%, {~1} sr_idle@control_sim_20 %=create_squad(simulation_poltergeist_tele:jup_sim_19)%, {~1} sr_idle@control_sim_20 %=create_squad(simulation_chimera:jup_sim_19)%, {~6} sr_idle@control_sim_20 %=create_squad(simulation_psy_dog:jup_sim_19)%, {~8} sr_idle@control_sim_20 %=create_squad(simulation_tushkano:jup_sim_19)%, sr_idle@control_sim_20 %=create_squad(simulation_gigant:jup_sim_19)%

[sr_idle@control_sim_20]
on_info = {=distance_to_smart_ge(jup_sim_20:150) =distance_to_smart_le(jup_sim_20:225)} sr_idle@random_sim_2, sr_idle@control_sim_21

[sr_idle@random_sim_20]
on_info = {~1} sr_idle@control_sim_21 %=create_squad(simulation_bloodsucker_nightmare:jup_sim_20)%, {~2} sr_idle@control_sim_21 %=create_squad(simulation_burer_nightmare:jup_sim_20)%, {~1} sr_idle@control_sim_21 %=create_squad(simulation_controller_nightmare:jup_sim_20)%, {~1} sr_idle@control_sim_21 %=create_squad(simulation_chimera_nightmare:jup_sim_20)%, {~1} sr_idle@control_sim_21 %=create_squad(simulation_bibliotekar_nightmare:jup_sim_20)%, {~1} sr_idle@control_sim_21 %=create_squad(simulation_bloodsucker:jup_sim_20)%, {~9} sr_idle@control_sim_21 %=create_squad(simulation_boar:jup_sim_20)%, {~2} sr_idle@control_sim_21 %=create_squad(simulation_burer:jup_sim_20)%, {~14} sr_idle@control_sim_21 %=create_squad(simulation_dog:jup_sim_20)%, {~8} sr_idle@control_sim_21 %=create_squad(simulation_pseudodog:jup_sim_20)%, {~12} sr_idle@control_sim_21 %=create_squad(simulation_flesh:jup_sim_20)%, {~7} sr_idle@control_sim_21 %=create_squad(simulation_snork:jup_sim_20)%, {~1} sr_idle@control_sim_21 %=create_squad(simulation_controller:jup_sim_20)%, {~13} sr_idle@control_sim_21 %=create_squad(simulation_mix_dogs:jup_sim_20)%, {~10} sr_idle@control_sim_21 %=create_squad(simulation_mix_boar_flesh:jup_sim_20)%, {~1} sr_idle@control_sim_21 %=create_squad(simulation_poltergeist_tele:jup_sim_20)%, {~1} sr_idle@control_sim_21 %=create_squad(simulation_chimera:jup_sim_20)%, {~6} sr_idle@control_sim_21 %=create_squad(simulation_psy_dog:jup_sim_20)%, {~8} sr_idle@control_sim_21 %=create_squad(simulation_tushkano:jup_sim_20)%, sr_idle@control_sim_21 %=create_squad(simulation_gigant:jup_sim_20)%

[sr_idle@control_sim_21]
on_info = {=distance_to_smart_ge(jup_sim_21:150) =distance_to_smart_le(jup_sim_21:225)} sr_idle@random_sim_2, sr_idle@random_final

[sr_idle@random_sim_21]
on_info = {~1} sr_idle@random_final %=create_squad(simulation_bloodsucker_nightmare:jup_sim_21)%, {~2} sr_idle@random_final %=create_squad(simulation_burer_nightmare:jup_sim_21)%, {~1} sr_idle@random_final %=create_squad(simulation_controller_nightmare:jup_sim_21)%, {~1} sr_idle@random_final %=create_squad(simulation_chimera_nightmare:jup_sim_21)%, {~1} sr_idle@random_final %=create_squad(simulation_bibliotekar_nightmare:jup_sim_21)%, {~1} sr_idle@random_final %=create_squad(simulation_bloodsucker:jup_sim_21)%, {~9} sr_idle@random_final %=create_squad(simulation_boar:jup_sim_21)%, {~2} sr_idle@random_final %=create_squad(simulation_burer:jup_sim_21)%, {~14} sr_idle@random_final %=create_squad(simulation_dog:jup_sim_21)%, {~8} sr_idle@random_final %=create_squad(simulation_pseudodog:jup_sim_21)%, {~12} sr_idle@random_final %=create_squad(simulation_flesh:jup_sim_21)%, {~7} sr_idle@random_final %=create_squad(simulation_snork:jup_sim_21)%, {~1} sr_idle@random_final %=create_squad(simulation_controller:jup_sim_21)%, {~13} sr_idle@random_final %=create_squad(simulation_mix_dogs:jup_sim_21)%, {~10} sr_idle@random_final %=create_squad(simulation_mix_boar_flesh:jup_sim_21)%, {~1} sr_idle@random_final %=create_squad(simulation_poltergeist_tele:jup_sim_21)%, {~1} sr_idle@random_final %=create_squad(simulation_chimera:jup_sim_21)%, {~6} sr_idle@random_final %=create_squad(simulation_psy_dog:jup_sim_21)%, {~8} sr_idle@random_final %=create_squad(simulation_tushkano:jup_sim_21)%, sr_idle@random_final %=create_squad(simulation_gigant:jup_sim_21)%

[sr_idle@random_final]
on_info = {~75} sr_idle@control_sim_1, sr_idle@start[/cut]

После активации рестриктора убедился, что он прекрасно работает. И увидел сразу 15 псевдогигантов. Если я не ошибаюсь насчет процентов, то собак и кабанов должны быть сотни. Либо спавн почему-то идет по последней секции.


Сообщение отредактировал sergej5500 - Пн, 21.07.2014, 17:30
 
denis2000Дата: Пн, 21.07.2014, 17:56 | Сообщение # 967
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата sergej5500 ()
Я полагал, что это проценты

Это и есть вероятность в процентах выполнения условия.
Цитата sergej5500 ()
Полная сумма чисел типа {~1} равна 99. На последнюю возможность sr_idle@control_sim_2 %=create_squad(simulation_gigant:jup_sim_1)% остается один процент.

Вот только теория вероятности так не работает! И вероятность выполнения последнего действий гораздо выше 1% и составляет более 35%.
Цитата sergej5500 ()
Либо спавн почему-то идет по последней секции.

Все верно если не выполнены предыдущие условия, то выполняется последнее безусловное действие!


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
sergej5500Дата: Пн, 21.07.2014, 18:00 | Сообщение # 968
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

denis2000,
Спасибо за информацию. Тогда как писать правильно?

Так: {~1} sr_idle@control_sim_2 %=create_squad(simulation_gigant:jup_sim_1)%
 
denis2000Дата: Пн, 21.07.2014, 18:08 | Сообщение # 969
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

sergej5500, Ставьте условия по мере возростания вероятности и учитывайте, что последнее безусловное действие будет выполнено в случае не выполнения всех предыдущих условий, иначе говоря вероятнось его выполнения:
Р=(1-Р1)*(1-Р2)*(1-Р3)*(1-Р4)*...*(1-РN)
где Р1 - вероятность первого события, Р2 - вероятность второго события, PN- вероятность N-нного события.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
sergej5500Дата: Пн, 21.07.2014, 21:34 | Сообщение # 970
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Добрый вечер. Интересует такой момент.

Можно ли подсчитать кол-во сквадов монстров, существующих на локации (Юпитер) в данный игровой момент. Я решил переделать опцию "Спавн дополнительных монстров" для СГМ. Написал рестриктор, который через определенные промежутки времени спавнит на всех смартах на дистанции 150-225 метров от игрока по одному скваду зверья.

Требуется сделать "предохранитель" от переполнения локации. Если, например, сквадов монстров на Юпитере больше 500, то спавн приостанавливать.

Функцию подсчета сквадов надо вызвать из рестриктора спавна дополнительных монстров. Как это правильно сделать?
 
denis2000Дата: Вт, 22.07.2014, 09:18 | Сообщение # 971
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

sergej5500, А зачем опираться на костыли SGM? Да там была разработана целая система заселения свободных мест, с одним существенным недостатком - в оригинальном ЗП это все уже было сделано (симуляционная доска).
Просто бери и подстраивай под свои нужды. В целом достаточно увеличить количество симуляционных смартов, сделать респавн на них и разнообразить условия спавна.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
sergej5500Дата: Вт, 22.07.2014, 09:47 | Сообщение # 972
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

denis2000,

Можно в принципе прописать спавн дополнительного зверья в смартах. Просто в рестрикторе это сделать проще. Редактировать один файл или 20. Разница есть.

Кроме того, вопрос интересен. Как подсчитать кол-во сквадов определенной группировки на локации?
 
denis2000Дата: Вт, 22.07.2014, 11:22 | Сообщение # 973
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата sergej5500 ()
Просто в рестрикторе это сделать проще. Редактировать один файл или 20. Разница есть.

Конечно есть, будет задача выполняться распределенно или вызывать скриптовые фризы из-за нескольких перегруженных задачами файлов логики.

Цитата sergej5500 ()
Как подсчитать кол-во сквадов определенной группировки на локации?

В файле sim_board.script есть таблица self.smarts которая содержит все смарты и находящиеся в них сквады, перебрать их все и посчитать сквады определенных группировок.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
sergej5500Дата: Чт, 14.08.2014, 12:44 | Сообщение # 974
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Всем привет. Перевел базу наемников на Юпитере под сквады.

Сделал 3 сквада. Командир базы, часовой на входе и массовка (сквад из 28 НПС). Переделал под сквады квест с контролерами на Юпитере. При первом визите на Юпитер (где наемники зомбируются) требуется уничтожить группу зомби.

Сквад массовки ринулся на завод собирать оружие с убитых зомби.

[cut=Скрины]






[/cut]

Это еще полбеды. В конце концов можно запретить им обыскивать трупы. Хотя это нелогично.

Когда сквад вернулся на базу, то некоторые неписи встали вдвоем на одну и ту же работу. Я насчитал 4 таких случая.

[cut=Скрины]



[/cut]

[cut=Логика сквада][walker@jup_killer_base]
avail_speak = 15|wait|true
meet = meet

;

[meet]
abuse = true
use = {!actor_enemy} true, false
allow_break = true
meet_on_talking = false

;

[hit]
on_info = {=hit_by_actor -jup_killer_base_actor_hit} %+jup_killer_base_actor_hit%

;

[death]
on_info = {=killed_by_actor -jup_killer_base_actor_hit} %+jup_killer_base_actor_hit%

;

[logic@jup_killer_base_quard_1]
active = walker@jup_killer_base_quard_1
suitable = {=target_squad_name(jup_killer_base_squad)} true
on_hit = hit
on_death = death
prior = 300
post_combat_time = 0,0

[walker@jup_killer_base_quard_1]:walker@jup_killer_base
path_walk = respawn_3_walk
path_look = respawn_3_look

;

[logic@jup_killer_base_quard_2]
active = walker@jup_killer_base_quard_2
suitable = {=target_squad_name(jup_killer_base_squad)} true
on_hit = hit
on_death = death
prior = 300
post_combat_time = 0,0

[walker@jup_killer_base_quard_2]:walker@jup_killer_base
path_walk = respawn_4_walk
path_look = respawn_4_look

;

[logic@jup_killer_base_quard_3]
active = walker@jup_killer_base_quard_3
suitable = {=target_squad_name(jup_killer_base_squad)} true
on_hit = hit
on_death = death
prior = 300
post_combat_time = 0,0

[walker@jup_killer_base_quard_3]:walker@jup_killer_base
path_walk = respawn_5_walk
path_look = respawn_5_look

;

[logic@jup_killer_base_quard_4]
active = walker@jup_killer_base_quard_4
suitable = {=target_squad_name(jup_killer_base_squad)} true
on_hit = hit
on_death = death
prior = 300
post_combat_time = 0,0

[walker@jup_killer_base_quard_4]:walker@jup_killer_base
path_walk = respawn_6_walk
path_look = respawn_6_look

;

[logic@jup_killer_base_quard_5]
active = walker@jup_killer_base_quard_5
suitable = {=target_squad_name(jup_killer_base_squad)} true
on_hit = hit
on_death = death
prior = 300
post_combat_time = 0,0

[walker@jup_killer_base_quard_5]:walker@jup_killer_base
path_walk = respawn_7_walk
path_look = respawn_7_look

;

[logic@jup_killer_base_quard_6]
active = walker@jup_killer_base_quard_6
suitable = {=target_squad_name(jup_killer_base_squad)} true
on_hit = hit
on_death = death
prior = 300
post_combat_time = 0,0

[walker@jup_killer_base_quard_6]:walker@jup_killer_base
path_walk = respawn_8_walk
path_look = respawn_8_look

;

[logic@jup_killer_base_quard_7]
active = walker@jup_killer_base_quard_7
suitable = {=target_squad_name(jup_killer_base_squad)} true
on_hit = hit
on_death = death
prior = 300
post_combat_time = 0,0

[walker@jup_killer_base_quard_7]:walker@jup_killer_base
path_walk = respawn_9_walk
path_look = respawn_9_look

;

[logic@jup_killer_base_quard_8]
active = walker@jup_killer_base_quard_8
suitable = {=target_squad_name(jup_killer_base_squad)} true
on_hit = hit
on_death = death
prior = 300
post_combat_time = 0,0

[walker@jup_killer_base_quard_8]:walker@jup_killer_base
path_walk = respawn_10_walk
path_look = respawn_10_look

;

[logic@jup_killer_base_quard_9]
active = walker@jup_killer_base_quard_9
suitable = {=target_squad_name(jup_killer_base_squad)} true
on_hit = hit
on_death = death
prior = 300
post_combat_time = 0,0

[walker@jup_killer_base_quard_9]:walker@jup_killer_base
path_walk = respawn_11_walk
path_look = respawn_11_look

;

[logic@jup_killer_base_quard_10]
active = walker@jup_killer_base_quard_10
suitable = {=target_squad_name(jup_killer_base_squad)} true
on_hit = hit
on_death = death
prior = 300
post_combat_time = 0,0

[walker@jup_killer_base_quard_10]:walker@jup_killer_base
path_walk = respawn_12_walk
path_look = respawn_12_look

;

[logic@jup_killer_base_quard_11]
active = walker@jup_killer_base_quard_11
suitable = {=target_squad_name(jup_killer_base_squad)} true
on_hit = hit
on_death = death
prior = 300
post_combat_time = 0,0

[walker@jup_killer_base_quard_11]:walker@jup_killer_base
path_walk = respawn_13_walk
path_look = respawn_13_look

;

[logic@jup_killer_base_quard_12]
active = walker@jup_killer_base_quard_12
suitable = {=target_squad_name(jup_killer_base_squad)} true
on_hit = hit
on_death = death
prior = 300
post_combat_time = 0,0

[walker@jup_killer_base_quard_12]:walker@jup_killer_base
path_walk = respawn_14_walk
path_look = respawn_14_look

;

[logic@jup_killer_base_quard_13]
active = walker@jup_killer_base_quard_13
suitable = {=target_squad_name(jup_killer_base_squad)} true
on_hit = hit
on_death = death
prior = 300
post_combat_time = 0,0

[walker@jup_killer_base_quard_13]:walker@jup_killer_base
path_walk = respawn_15_walk
path_look = respawn_15_look

;

[logic@jup_killer_base_quard_14]
active = walker@jup_killer_base_quard_14
suitable = {=target_squad_name(jup_killer_base_squad)} true
on_hit = hit
on_death = death
prior = 300
post_combat_time = 0,0

[walker@jup_killer_base_quard_14]:walker@jup_killer_base
path_walk = respawn_16_walk
path_look = respawn_16_look

;

[logic@jup_killer_base_quard_15]
active = walker@jup_killer_base_quard_15
suitable = {=target_squad_name(jup_killer_base_squad)} true
on_hit = hit
on_death = death
prior = 300
post_combat_time = 0,0

[walker@jup_killer_base_quard_15]:walker@jup_killer_base
path_walk = respawn_17_walk
path_look = respawn_17_look

;

[logic@jup_killer_base_quard_16]
active = walker@jup_killer_base_quard_16
suitable = {=target_squad_name(jup_killer_base_squad)} true
on_hit = hit
on_death = death
prior = 300
post_combat_time = 0,0

[walker@jup_killer_base_quard_16]:walker@jup_killer_base
path_walk = respawn_18_walk
path_look = respawn_18_look

;

[logic@jup_killer_base_quard_17]
active = walker@jup_killer_base_quard_17
suitable = {=target_squad_name(jup_killer_base_squad)} true
on_hit = hit
on_death = death
prior = 300
post_combat_time = 0,0

[walker@jup_killer_base_quard_17]:walker@jup_killer_base
path_walk = respawn_19_walk
path_look = respawn_19_look

;

[logic@jup_killer_base_quard_18]
active = walker@jup_killer_base_quard_18
suitable = {=target_squad_name(jup_killer_base_squad)} true
on_hit = hit
on_death = death
prior = 300
post_combat_time = 0,0

[walker@jup_killer_base_quard_18]:walker@jup_killer_base
path_walk = respawn_20_walk
path_look = respawn_20_look

;

[logic@jup_killer_base_quard_19]
active = walker@jup_killer_base_quard_19
suitable = {=target_squad_name(jup_killer_base_squad)} true
on_hit = hit
on_death = death
prior = 300
post_combat_time = 0,0

[walker@jup_killer_base_quard_19]:walker@jup_killer_base
path_walk = respawn_21_walk
path_look = respawn_21_look

;

[logic@jup_killer_base_quard_20]
active = walker@jup_killer_base_quard_20
suitable = {=target_squad_name(jup_killer_base_squad)} true
on_hit = hit
on_death = death
prior = 300
post_combat_time = 0,0

[walker@jup_killer_base_quard_20]:walker@jup_killer_base
path_walk = respawn_22_walk
path_look = respawn_22_look

;

[logic@jup_killer_base_quard_21]
active = walker@jup_killer_base_quard_21
suitable = {=target_squad_name(jup_killer_base_squad)} true
on_hit = hit
on_death = death
prior = 300
post_combat_time = 0,0

[walker@jup_killer_base_quard_21]:walker@jup_killer_base
path_walk = respawn_23_walk
path_look = respawn_23_look

;

[logic@jup_killer_base_quard_22]
active = walker@jup_killer_base_quard_22
suitable = {=target_squad_name(jup_killer_base_squad)} true
on_hit = hit
on_death = death
prior = 300
post_combat_time = 0,0

[walker@jup_killer_base_quard_22]:walker@jup_killer_base
path_walk = respawn_24_walk
path_look = respawn_24_look

;

[logic@jup_killer_base_quard_23]
active = walker@jup_killer_base_quard_23
suitable = {=target_squad_name(jup_killer_base_squad)} true
on_hit = hit
on_death = death
prior = 300
post_combat_time = 0,0

[walker@jup_killer_base_quard_23]:walker@jup_killer_base
path_walk = respawn_25_walk
path_look = respawn_25_look

;

[logic@jup_killer_base_quard_24]
active = walker@jup_killer_base_quard_24
suitable = {=target_squad_name(jup_killer_base_squad)} true
on_hit = hit
on_death = death
prior = 300
post_combat_time = 0,0

[walker@jup_killer_base_quard_24]:walker@jup_killer_base
path_walk = respawn_26_walk
path_look = respawn_26_look

;

[logic@jup_killer_base_quard_25]
active = walker@jup_killer_base_quard_25
suitable = {=target_squad_name(jup_killer_base_squad)} true
on_hit = hit
on_death = death
prior = 300
post_combat_time = 0,0

[walker@jup_killer_base_quard_25]:walker@jup_killer_base
path_walk = respawn_27_walk
path_look = respawn_27_look

;

[logic@jup_killer_base_quard_26]
active = walker@jup_killer_base_quard_26
suitable = {=target_squad_name(jup_killer_base_squad)} true
on_hit = hit
on_death = death
prior = 300
post_combat_time = 0,0

[walker@jup_killer_base_quard_26]:walker@jup_killer_base
path_walk = respawn_28_walk
;path_look = respawn_28_look

;

[logic@jup_killer_base_quard_27]
active = walker@jup_killer_base_quard_27
suitable = {=target_squad_name(jup_killer_base_squad)} true
on_hit = hit
on_death = death
prior = 300
post_combat_time = 0,0

[walker@jup_killer_base_quard_27]:walker@jup_killer_base
path_walk = respawn_29_walk
;path_look = respawn_29_look

;

[logic@jup_killer_base_quard_28]
active = walker@jup_killer_base_quard_28
suitable = {=target_squad_name(jup_killer_base_squad)} true
on_hit = hit
on_death = death
prior = 300
post_combat_time = 0,0

[walker@jup_killer_base_quard_28]:walker@jup_killer_base
path_walk = respawn_30_walk
;path_look = respawn_30_look

;
[/cut]

Вопрос такой. Как можно поправить файл, чтобы неписи не вставали вдвоем на одну работу?
 
denis2000Дата: Чт, 14.08.2014, 18:14 | Сообщение # 975
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

sergej5500, Попробуй назначать разный приоритет работы.

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
Поиск: