Какой мод хотите видеть в первый видео обзор S-L?

Всего голосовало: 1890
Прочие Баннеры
ONLINE
Всего в Зоне: 4
Новичков: 3
Сталкеров: 1
Мертвец




Главная » Статьи » Информация для создателей скриптов. Часть 1 » модостроение

Информация для создателей скриптов. Часть 1
Информация для создателей скриптов. Часть 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






Информация для создателей скриптов. Часть 1 Прохождение , скачать модостроение,

Обзор Информация для создателей скриптов. Часть 1 превю обзоры Привет сталкер ты находишься на территории сайта stalker-land.ru в нашем большом и богатым разделе статьи тут ты сможешь найти разные обзоры модов по сталкер прохождение игры сталкер чистое небо зов Припять и сталкер тень Чернобыля скоро будет и прохождение сталкер 2 после выхода игры но пока ждём тут есть и много фан рассказы прочтите их большинство из них очень интересные и увлекательные вить их написали настоящие фаны сталкера есть ишё одна небольшая категория музыка и стихи в нём нидёшь разые стихи и музыку по сталкеру так же есть интересные статьи про Чернобыль вся его история если ты модмейкер то у нас есть и для вас разные статьи просто зайдите в нужны раздел и вы найдёте нужную статью. У нас есть и статьи про метро 2033 очень интересные скоро будут и статьи про метро Last light потому что эта игра ближе к сталкеру и многие фаны сталкера в ней играют желаю вам удачи.
Категория: модостроение | Добавил: borisenko-2 (25.04.2011)
Просмотров: 2191 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]



СТАЛКЕР!
Я всегда рад видеть
еще одну живую душу!
Но я не знаю кто ты?
Регистрация
Вход!

Логин:
Пароль:

Прикольный мод , да вылетает часто!
НЕ ПАШЕТ КНОПКА СКАЧАТЬ
Да, не без минусов конечно)
Сценарий не плохой.
Игра актёров тоже.
Но вот боевые стычки хромают.
Там две огромные зеленые кнопки "СКАЧАТЬ" :D работает правда только вторая, хз почему, задала этот вопрос админу.



Карта сайта

Сайт для фанатов игрового мира сталкер .Копирование файлов без активной ссылки на наш сайт запрещена.
Кража Использование баз разрешения админа любых графических чястей дизайна запрещено.
Хостинг от uCoz