S.T.A.L.K.E.R. 2
Моды Тень Чернобыля Моды Зов Припяти Моды Чистое Небо
Форум Тень Чернобыля Форум Чистое Небо Форум Зов Припяти

☢ Информационный портал по модификациям к серии игр S.T.A.L.K.E.R. ☢

                                                                                                                                                                                         

Вторник, 21.01.2025, 15:31 | Приветствую Вас Гость | RSS | Главная | Регистрация | Вход

PDA сайта


Разделы каталога
Обзор игр [29]
Статьи, информация по играм, системные данные для установки игр.
Информация, рассказы - все что касается STALKER [84]
Книги - тематика STALKER [28]
Новинки модов
S.T.A.L.K.E.R - Need for year
Просмотров: 170
Добавлено: 28.12.2024

Сборка Злобного читера Final Plus 15.11.24
Просмотров: 129
Добавлено: 28.12.2024

Mortal Anomaly (v.0.9.95 - ОБТ)
Просмотров: 38
Добавлено: 28.12.2024

G.A.M.M.A. 0.9.3 - Anomaly 1.5.3
Просмотров: 84
Добавлено: 28.12.2024

Забытый Отряд: Remastered
Просмотров: 55
Добавлено: 28.12.2024

Lost Alpha Enhanced Edition 1.2.2
Просмотров: 93
Добавлено: 28.12.2024

Хроники Кайдана 4. По ту сторону света 1.02
Просмотров: 38
Добавлено: 28.12.2024

S.T.A.L.K.E.R. xMod (ver. 0.26)
Просмотров: 107
Добавлено: 28.12.2024

Хроники Кайдана 4. По ту сторону света 1.01
Просмотров: 29
Добавлено: 28.12.2024

Грехи Академика. Красный Рассвет 1.0
Просмотров: 30
Добавлено: 28.12.2024

Лидеры просмотров
SOC WEAPON PACK
Просмотров: 39968
Добавлено: 23.05.2018

Новый Арсенал 5.1 + Спавнер
Просмотров: 31198
Добавлено: 21.06.2018

Правки для ОП 2.1 с патчем 8.2
Просмотров: 26890
Добавлено: 02.07.2019

Спавнер - Пространственная аномалия 4.1
Просмотров: 25587
Добавлено: 22.05.2018

СТАЛКЕР - ТЕНЬ ЧЕРНОБЫЛЯ (Чистая игра)
Просмотров: 24391
Добавлено: 08.10.2018

Дополнения - Объединенный Пак 2.1
Просмотров: 24239
Добавлено: 05.01.2019

Тень Вонючки 0.03+
Просмотров: 21602
Добавлено: 21.05.2018

Сталкер - Приключения Толика
Просмотров: 19179
Добавлено: 19.01.2019

Спавн-Меню - Новый Арсенал 5.0
Просмотров: 18706
Добавлено: 23.05.2018

Спавнер для ОП 2.1
Просмотров: 16174
Добавлено: 03.01.2019

Главная » Статьи » Информация, рассказы - все что касается STALKER

Информация для создателей скриптов. Часть 1
В каждом скрипте должны быть:
action:initialize() – вызывается в момент включения схемы по GOAP.
Инициализировать переменные здесь НЕЛЬЗЯ. Нужно провести установку callback-ов, которые будет использовать скрипт. В самом конце функции нужно вызвать acton:reset_scheme()

action:reset_scheme() – вызывается в момент включения схемы другим скриптом (gulag и т.п.), также вызывается из initialize при включении схемы по GOAP
Вся инициализация должна производиться в reset_scheme(), а не в initialize()!
action:finalize() – вызывается в момент выключения схемы по GOAP. Снять проставленные в initialize callback-и.
function add_to_binder(npc, char_ini) – биндит схему, только если char_ini == nil (это значит, что биндинг запрошен другим скриптом), или сущестует секция с именем скрипта в custom_data, которая передана как char_ini
function set_scriptname(параметры) – настройка параметров скрипта. Параметры, вместо которых передан nil, берутся из customdata персонажа.
Работа с customdata:
При чтении полей customdata, если поле не найдено, нужно выдавать сообщение об ошибке, а не тихо отключать скрипт. Сделать это можно с помощью функции xr_utils.abort("сообщение”, параметры), которая действует аналогично printf, но выводит сообщение в MessageBox и останавливает игру.
Чтобы не переписывать парсинг заново в каждом скрипте, можно воспользоваться функциями из xr_utils:
function conf_get_bool(char_ini, section, field, override, object, mandatory)
function conf_get_string(char_ini, section, field, override, object, mandatory)
function conf_get_number(char_ini, section, field, override, object, mandatory)
Например:
st.enabled = utils.conf_get_bool(char_ini, "guard", "enabled", enable, object, true)
Пример использования можно посмотреть в xr_guard.
Описание параметров – в xr_utils в месте, где определена функция.
В случае возникновения вопросов - обращаться к Змею (af@svitonline.com).
Перемещение:
За перемещение отвечает movement manager.

Пример использования – xr_walker.script.

1) В _init создается экземпляр movement manager-а:
self.move_mgr = move_mgr.move_mgr()
2) В initialize грузим информацию о путях из их имен:
self.path_walk_info = utils.path_parse_waypoints(self.st.path_walk)
self.path_look_info = utils.path_parse_waypoints(self.st.path_look)
3) В reset_scheme инициализируем movement manager:
function move_mgr:reset(path_walk, path_walk_info, path_look, path_look_info,
team, mode, move_cb_info)

Здесь
team – команда для синхронизации нескольких персонажей (произвольная текстовая строка)

mode – таблица, поля которой задают начальный режим перемещения:
{ crouch = true/false, run = true/false, danger=true/false }
move_cb_info – таблица, поля которой задают информацию о callback-методе, который будет вызван, если персонаж прибыл в точку, в которой установлено значение ret: { obj = объект, func = функция }
obj – ссылка на объект класса, которому принадлежит функция, или nil, если функция определена вне класса.
func – ссылка на функцию, которая будет вызвана.

Поля team, mode, move_cb задавать не обязательно.

4) В execute:
self.move_mgr:update()
5) В finalize:
self.move_mgr:finalize()
Переключение скорости и режима перемещения до прибытия в первый вейпоинт.
Для того, чтобы сменить режим движения до прибытия в первый вейпоинт пути (например, переключиться с ходьбы на бег при каких-то условиях), выполните в своем скрипте в любой момент после reset-а:
// ВНИМАНИЕ – вызывать update_movement_state при last_index
// не равном nil недопустимо!
if self.move_mgr.last_index == nil then
self.move_mgr.running = true / false
self.move_mgr.danger = true / false
self.move_mgr.crouch = true / false
self.move_mgr:update_movement_state()
end
Примечание: в большинстве случаев переключать режим перемещения не понадобится. Рекомендуется задавать стартовый режим перемещения с помощью параметра mode функции reset(), а не менять его вышеописанным способом.
Использование callback:
Функция-callback может быть как свободной функцией, так и членом класса.
Прототип свободной функции имеет следующий вид:
function my_callback(self, mode, number)
Прототип функции класса:
function class:my_callback(mode, number)

Здесь в качестве первого параметра (self) будет передано значение поля obj таблицы move_cb_info, т.е. фактически это объект, которому принадлежит функция-callback.
Параметр mode может быть одним из:
move_mgr.arrival_before_rotation – если поле ret было задано в path_walk и коллбек был вызван сразу же по прибытию персонажа в точку, ДО поворота.
move_mgr.arrival_after_rotation – если поле ret было задано в path_look и коллбек был вызван после прибытия в точку path_walk и поворота в соответствующую точку path_look (в которой был задан ret).
number – значение поля ret.
В коллбеке можно прервать движение персонажа (остановить его, но нежелательно сбрасывать пути) и выполнять свои custom действия (апдейты movement manager-а при этом вызывать не нужно по понятным причинам). Для прерывания нормальной работы схемы с целью вмешательства в перемещение, нужно вернуть значение true из callback-а, после чего перестать вызывать апдейты. Если это не сделать – значения, которые Вы установите персонажу в коллбеке могут быть сбиты схемой сразу же по возврату из Вашего коллбека! Чтобы продолжить затем движение по маршруту, вызовите:
self.move_mgr:update_movement_state() – это включит бег или ходьбу (в зависимости от настроек последней точки, в которой был персонаж)
После чего продолжайте вызывать апдейты movement manager-а как обычно.
Перед вызовом update_movement_state, можно также явно задать режим перемещения:
self.move_mgr.running = true / false
self.move_mgr.danger = true / false
self.move_mgr.crouch = true / false
Если коллбек выполняет задачи, никак не влияющие на перемещение и персонажа в целом (например, просто ставит info portion), то из коллбека нужно вернуть nil или false. Вызов коллбека тогда останется для схемы незамеченным.

Взаимодействие path_walk c path_look:
Прийдя на точку path_walk, где установлена какая-то комбинация флажков, сталкер найдет такую же комбинацию флажков в path_look и посмотрит в эту точку. Если же ни один флажок не установлен, сталкер пойдет дальше не останавливаясь.
Проверка текущего состояния персонажа:
Часто с персонажем должны взаимодействовать другие персонажи, например, follower-ы командира должны знать его состояние.
Движется ли персонаж в данный момент можно узнать, опросив у move_mgr переменную moving.
if self.move_mgr.moving then движется end
При этом, если moving == true, можно узнать подробности о перемещении:
if self.move_mgr.crouch then идет в присяде end
if self.move_mgr.running then бежит end
if self.move_mgr.danger then находится в состоянии danger end
Если moving == false, то:
if self.move_mgr.standing_crouch then сидит end
if self.move_mgr.standing_danger then сидит в состоянии danger end
Категория: Информация, рассказы - все что касается STALKER | Добавил: ferr-um (01.05.2011) | Автор: ferr-um E
Просмотров: 630 | Теги: правка скриптов, написание скриптов, скрипты для сталкера
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
PDA Stalker-Mods


Форма входа
Поиск по сайту
ADVERT
Популярные моды
Повелитель Зоны v. 1.1/ Gode of zone v. 1.1
Просмотров: 12063
Добавлено: 26.11.2011

Новый Арсенал 5.1 + Спавнер
Просмотров: 31198
Добавлено: 21.06.2018

COP Weapons Mod
Просмотров: 9253
Добавлено: 19.06.2011

Оружейный пак от Moonlight1986
Просмотров: 12301
Добавлено: 25.06.2012

Спавнер - Пространственная аномалия 4.1
Просмотров: 25587
Добавлено: 22.05.2018

Winter of Death: Ultimatum (FINAL)
Просмотров: 8156
Добавлено: 26.09.2011

S.T.A.L.K.E.R.: Зов Припяти - Оружейный аддон
Просмотров: 9391
Добавлено: 23.12.2011

SOC WEAPON PACK
Просмотров: 39968
Добавлено: 23.05.2018

"Повелитель зоны" для FERR-UM MOD ver.0.4
Просмотров: 9584
Добавлено: 15.08.2012

S.T.A.L.K.E.R. "Зов Припяти" - Новые иконки
Просмотров: 8003
Добавлено: 27.08.2011

Статистика

Онлайн всего: 2
Гостей: 2
Пользователей: 0

Моды Тень Чернобыля Форум Тень Чернобыля Моды Чистое Небо Форум Чистое Небо Моды Зов Припяти Форум Зов Припяти Моды Зов Чернобыля Форум Зов Чернобыля Сталкер - Другие платформы
Картинка в качестве фона





Картинка в качестве фона
Картинка в качестве фона
Stalker-Mods © 2025 Используются технологии uCoz