Статистика Форума
Последние обновленные темы
Самые популярные темы
Активисты форума
Авторитеты форума
Bioshock 2

Ответил: WurDalaK
Mass Effect

Ответил: greendayone82
Dead Space

Ответил: greendayone82
Беседы у костра

Создал: WurDalaK; ответов: 2105
Вопросы по модострою

Создал: WurDalaK; ответов: 1161
Ходка №1

Создал: Алеся; ответов: 301
Какой трек у вас сейчас и...

Создал: Never; ответов: 65
Злой админ

Создал: WurDalaK; ответов: 54
WurDalaK

Постов: 2057
Возрожденный

Постов: 1621
Wo1fRam

Постов: 592
Алеся

Постов: 183
Marsel

Постов: 174
WurDalaK

Уважение: 28
Venus

Уважение: 23
Never

Уважение: 17
Возрожденный

Уважение: 13
Wo1fRam

Уважение: 13

  • Страница 1 из 1
  • 1
Модератор форума: WurDalaK  
Форум » Уроки по созданию модов » Правка файла all.spawn » Один из методов спавна
Один из методов спавна
  WurDalaK
Дата: Пятница, 30.03.2012, 18:46 | Сообщение # 1
Mysterious asari
Статус
Страж
Группа Администраторы
Сообщений 2057
Награды 9
-
28
+
Суть идеи
Создание на лету рабочих аномалий, вертолётов, переходов между уровнями, рестрикторов, точек воспроизводства и других объектов, конструктор которых задаёт не все необходимые для полноценного функционирования параметры.

Идея проста.

Цитата
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_valuepacket: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). Но там могут быть ошибки.

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

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

Хочешь сказать спасибо? Ставь + в репутацию!
Спрятать подпись Спрятать все подписи
 
Форум » Уроки по созданию модов » Правка файла all.spawn » Один из методов спавна
  • Страница 1 из 1
  • 1
Поиск:
Мини-чат
Яндекс.Метрика