Воскресенье, 22.09.2024, 20:25
Приветствую Вас Гость | RSS
F.R.O.N.T.
Главная | Статьи | Регистрация | Вход
Меню сайта
Все новые статьи находяться на форуме!!! Видеть их могут только рарегистрированые пользователи...
Категории каталога
Мои статьи [28] Сценарии [0]
Пишите сюда свои сцинарии
Модострой [152]
Статьи по созданию модов
КАК СНЯТЬ ФИЛЬМ??? [0]
Статьи о том как снять фильмы
Мини-чат
Наш опрос
Чего не хватает в сталкере
1. Возможностей
2. Группировок
3. Свободы
4. Квестов
5. Транспорта
6. Ничего, все есть
7. Мутантов
8. Оружия
9. Атмосферы
10. Блин, сталкер отстой
11. Брони
12. Графики
13. Аномалий
14. Артефактов
15. Предметов
Всего ответов: 155
Главная » Статьи » Модострой

Один из методов спавна
Суть идеи

Создание на лету рабочих аномалий, вертолётов, переходов между уровнями, рестрикторов, точек воспроизводства и других объектов, конструктор которых задаёт не все необходимые для полноценного функционирования параметры.

Идея проста.
1) Создаём объект стандартным методом:
local obj = alife():create(...)
2) Создаём экземпляр класса net_packet:
local packet = net_packet()
3) Сохраняем состояние объекта в пакет:
obj:STATE_Write(packet)
4) Считываем _все_ сохраняемые свойства в переменные:
local property1 = packet:r_u32()
...
local propertyN = packet:r_float()
5) Записываем эти переменные опять, меняя или дополняя необходимые параметры:
packet:w_u32(property1)
...
propertyN = new_value
packet:w_float(propertyN)
6) Считываем модифицированное состояние объекта:
packet:r_seek(0)
obj:STATE_Read(packet, packet:w_tell())

Где брать список сохраняемых параметров и их размеры? Самый верный способ - дизассемблирование методов STATE_Write и STATE_Read всех классов вида CSE_ALife... в xrGame.dll. Более простой - смотреть методы state_read "классов" cse_alife_... в acdc.pl (это альтернативный редактор all.spawn). Но там могут быть ошибки.

Внизу вы найдете пример кода, который скриптом создаёт рабочую электру и вертолёт (у ног игрока и на 50 метров выше игрока соответственно).

Лучше всего смотреть на Кордоне. Вертолёт ни на что не реагирует, но это нормально. Ему нужно либо логику через custom_data прописывать, либо ручками дёргать управляющие методы.
Нюансы

1) Для некоторых типов объектов желательно дёргать UPDATE_Write/UPDATE_Read. Смотрите в том же acdc.pl методы update_read (если есть).

2) Стоит попробовать поиграться с аномалиями, которые создаются при активации артефактов. Если у них таймер не внешний, то есть шанс регулировки времени жизни. Ссылку на серверный объект можно получить через биндер, например.
Made by Bardak







Категория: Модострой | Добавил: front (03.06.2008)
Просмотров: 634 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Поиск
счетчик посещенийсчетчик посещений
Друзья сайта
 
Фан сайт игры S.T.A.L.K.E.R.

Бар_У_границы_Зоны_бар_настоящего_сталкера!

Статистика

На портале: 1
Новичков: 1
Участников: 0

Copyright MyCorp © 2024