Перейти к контенту

[CoP] Ковыряемся в файлах


Рекомендуемые сообщения

.

В игре есть, например, name = zat_b20_teleport_horiz

Он какой-то еле заметный, та штука вроде поотчетлевее была :)

Хочу временно зоны перехода "подсветить", пока тестировать буду. Вот ты сейчас написал про партиклы и сразу пришло понимание, что можно временно рестриктор поставить и там уже проигрывать партикл, например аномалии и сразу будет видно мои переходы.

userbar368.png

Ссылка на комментарий

KD87, это явно не тот случай...

И версия игры CoP, а не SHoC, на который расчинан зоне-едитор (ZE), и для временного тестирования устанавливать ZE - больно хлопотно... :) Пилить DLL-ку, компилировать партиклы, добавлять и адаптировать скрипты - ради одного "увидеть" один переход...

Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

И снова про level_changer.

Так и не смогла понять, как заставить ГГ при появлении на локации, заставить смотреть в нужную сторону. В ТЧ у level_changer'а можно было задать точки в [pt_move_if_reject], но ЗП у меня этот способ не срабатывает.

 

И еще вопрос, правда больше ACDC касается но все же... В каких единицах измеряется параметр direction? Так поняла, что это аналог параметра Rotation в SDK.

userbar368.png

Ссылка на комментарий

Callisto, для того, чтобы актор после перехода на др.локацию смотрел куда задано требуется для level_changer'а задать параметр 'dest_direction' (см. пример в "labx8_level_changer").

Этот параметр, как и 'direction' задается как 'f32v3' - т.е. как вектор с тремя значениями (x,y,x) каждое из которых задано в радианах(!)

 

С параметром [pt_move_if_reject] , как и с silent_mode = 0 в ЗП похоже придется распрощаться, т.к. из движка это вырезали.

Все переходы в ЗП имеют silent_mode = 1, и попытки сделать их "с запросом" (=0) заканчиваются неудачей, т.е. игра просто при входе в зону перехода не выдает никакого окна-запроса...

Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Поработал с S.T.A.L.K.E.R. - Зов Припяти\gamedata\textures\ui\ui_actor_main_menu

Вроде рисунки подогнал - на захотелось еще и анимационный вариант загрузочных экранов....

 

Вообщем анимашка на втором загрузочном (какбы снизу первого слоя текстур) - переходящая в третий....

Не ну мне пытались чёйт там объянить - как увеличить анимашку или просто подставить другую....

Вообщем все перепробовал и сам и советы -- "а воз и ныне там!!"

Вообщем вот лист с прозрачным экраном - кто смелый и волокет - сделайте для людей -- спасибо скажут - я первый.

(правка вариантов текстур - за мной)

298be0834aa3t.jpg

 

Уточняю цель:

Есть куча анимашек в игре и маленькие и большие - надо или увеличить родную (там кусок неба с воронами - а ниже вода) или подставить любую другую анимашку - вернее чистый кусок неба.

Анимашки подходящие для этого:

ui_mm2_back_video

ui_vid_back_01

ui_vid_back_02

ui_vid_back_03

ui_vid_back_04

video_voroni_crop.ogm

последняя - родная - но размер маленький....

 

Скачать: 309.4кб

http://depositfiles....files/stcfh6kn6

или тут:

http://rghost.ru/40883726

http://zalil.ru/33844307

 

==========================================================

 

Подскажите !

 

Где и какие строчки правят координаты :

здоровья и усталости - тут:

красная -- здоровье

синяя -- усталость6236613031ae.jpg

 

ИГРА - Sigerous Mod 2.2

 

==========================================================

 

И еще вопрос:

 

Где и какие строчки - отвечают за часы на экране ?

Хочу немного передвинуть....

Изменено пользователем ColR_iT
Чуть компактнее, пожалуйста.

Самое гениальное - это самое простое - но чтобы сделать простое - нужно быть гениальным...

Ссылка на комментарий

Информация для тех, кто задавался вопросом: "Как определить какой прицел надет на оружие?"

 

Удалось определить место прописки метки, которая отвечает за информацию о секции прицела (из списка scopes_sect). Эта метка (флаг) пишется аналогично типу патронов (ammo_type), но не в 'state'-часть нет-пакета и не в 'update', а в 'abstract', т.е. в ту часть которая недоступна обычными способами чтения/записи для нет пакетов.

Если посмотреть структуру 'abstract'-части пакета, то, напомню, что помимо всем известных параметров 'section_name', 'name', ..., 'script_version' в конце имеются еще некие параметры. В модуле m_netpk.script (далее буду писать применительно именно к этому модулю), между 'script_version' и 'spawn_id' имеется параметр переменной длины 'unused_pad', который пока никто вроде бы нигде не использовал...

Так вот, именно в этом параметре записываются различные метки/флаги и вероятно еще что-то, что характеризует онлайновое состояние объекта записанное в нет-пакет серверного объекта.

Пояснение по флагу прицела, надетого на оружие (только для ЗП!):

1. Флаг "прицел одет-снят" пишется в 14-й байт параметра 'unused_pad', т.е. 0-снят, 1-одет (это помимо штатного флага 'addon_flags');

2. Тип прицела, точнее численный индекс соответствующий порядковому номеру в строке из конфига оружия scopes_sect - пишется в 13-ый байт.

Например для оружия wpn_ak74 это будет так: 0 - ПСО-1, 1 - ПСУ-1, 2 - ПСС-2, 3 - НСПУ-3

 

Т.о. прочитав 'abstract'-часть нет-пакета и получив табличку байт для 'unused_pad' можно определить индекс прицела и по строке из конфига соответствующего оружию определить какой же прицел установлен на оружии, если конечно установлен.

Остается дело за малым - научиться читать 'abstract'-часть нет-пакета и писать в нее. ;)

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Artos, отличная новость! Спасибо, что разобрался. Но так, как у меня "не очень" с нет-пакетами, хотел бы кое-что уточнить.

1) Чтобы узнать тип оптики, оружие нужно сперва отправить оффлайн, затем поставить колбэк на чтение абстракт-части пакета? Т.е. вопрос сводится к тому, обязательно ли отправлять оффлайн?

2) Что произойдёт, если в 14-ый байт 'unused_pad' поставить 1, а в 'addon_flags' первый бит установить в 0 или наоборот

Ссылка на комментарий

Artos, зря ты это назвал unused_pad :) Это клиентские данные объекта. Предваряется размером (2 байта) и состоит из двух частей - движковый кусок (как правило, небольшой) и то, что сохраняется в биндерах.

Shredder, abstract-кусок далеко не всегда можно прочитать.

Изменено пользователем KD87
  • Нравится 1
Ссылка на комментарий

KD87,

'Зря' - тут некорректно, т.к. когда неизвестно что за байты , но назвать их как-то было нужно -> любое понятное название подойдет. В тот момент "неиспользованное" - было по сути верным, ну а теперь вероятно настало время и дать более подходящее название и вероятно расписать на более удобные и используемые блоки... :-) О том как считать этот кусок - все давно ясно, интересует наполнение, т.е. значения каждого байта/бита и группировка байтов в этой 'unused_pad'.

А откуда информация про "Это клиентские данные объекта.объекта. ... и состоит из двух частей - движковый кусок (как правило, небольшой) и то, что сохраняется в биндерах." ?

Собственно я уже помянул вскользь про это, но пока исследую... Есть ли какие наработки по этой части?

 

 

Shredder,

1. Для того чтобы прочитать 'abstract'-часть нет-пакета требуется чтобы движек(!) вызвал метод STATE_Write для серверного объекта. И вызывать должен именно сам движек, а не читалка/писалка нет-пакетов, только тогда можно прочитать 'abstract'-часть.

Подобный вызов происходит либо в самом начале игры, при появлении в игре серверных объектов (еще до спавна актора) и при выходах объектов в онлайн.

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

Как уже сказал KD87, далеко не всегда можно прочитать 'abstract'-часть у нужного объекта. Например если объект у актора, то когда актор вышел в онлайн - уже прочитать невозможно, т.к. для этого требуется чтобы и предмет и сам его владелец ушли в оффлайн - только тогда возможен их выход в онлайн и перечтение данных, но актора отправить в оффлайн не удастся... К сожалению в ЗП, в отличии от ТЧ, даже активный предмет в руках не обновляет своего нет-пакета... Так что в ЗП придется мудрить, типа трансферить предмет куда-то и тогда оффлайн-онлайнить или иное придумывать.

2. Учитывая, что невозможно одиномоментно менять сразу и 'abstract'-часть и 'state'/'update' - то все зависит от последовательности. Пока могу сказать, что если ствол валяется на земле - то установка 'addon_flags' сбивает значения для 'unused_pad', т.е. аддон будет снят (0) или одет (1). Учитывая, что индексты для аддонов идут с 0 (нуля), то этому индексу соответствует первый аддон (прицел) из строки конфига - вот он и будет "надет".

 

Внимание: Менять 'abstract'-часть следует очень аккуратно и максимально корректно, в противном случае могут быть самые разные баги. Данная информация появилась именно в следствии некорректностей в 'unused_pad', когда в ТЧ обычное взятие обычного ствола приводило к исчезновениям из рюкзака только что "взятого" и вылетам...

 

Примечание: Для тех кто использует m_netpk для чтения 'abstract'-части следует пользоваться последней версией, в которой подправлен алгоритм (доступен пока в минификсе 121012 от Симбиона). По мере появления новой информации вероятно формат чтения различных байтов 'abstract'-части может быть изменен...

Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Artos, информация из моих личных изысканий во время разработки save_unpacker. Задавался целью распаковывать также и клиентские данные, но это было никому не нужно. Движковая часть клиентских данных оружия в ТЧ имеет примерно такой формат:

 

; CPhysicsShellHolder
bool unknown
; CInventoryItem
bool m_eItemPlace
float m_fCondition
if (parent exist) {
bool 0
} else {
bool _unknown
CPhysicsShellHolder::PHSaveState()
}
; CWeapon
int iAmmoElapsed
bool m_flagsAddOnState
int m_ammoType
bool m_bZoomMode
; CWeaponMagazined
int m_iQueueSize
int m_iShotNum
int m_iCurFireMode
; CWeaponMagazinedWGrenade
bool m_bGrenadeMode
int m_MagazineCount

Изменено пользователем KD87
  • Не нравится 1
Ссылка на комментарий

KD87, большое спасибо за ответ.

Невостребованность save_unpacker'а скорее обусловлена тем, что и мало кто играет в чистую игру, и самим моддмейкерам, отошедшим от "штатного" формата сэйвов уже оказалась мало пригодной для использования.

Однако, судя по уже вскрывшейся информации о возможности читать и даже менять ранее недоступные данные, вполне может уже пригодиться для дальнейшего развития моддинга.

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

Наверное нет особенного смысла в топике обсуждать и выкладывать "сырые" данные и предлагаю пока перенести это в оффлайн (ЛС, аська, скайп...). Ну а если будет интересно не одиночкам, то возможно стОит в "Модификации в разработке" открыть соответствующий топик по "Ковыряем нет-пакеты" ;-)

Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Проще всего получать все указанные выше данные из клиентского объекта, используя возможности x-ray extensions.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий

Не согласен что 'проще', если конечно кто-то не даст готовые варианты под все патчи ТЧ и ЧН/ЗП, чего нет на 'сейчас' (или я ошибаюсь?) и... неизвестно будет ли когда-то.

Да и не только вышеуказанными данными ограничены аппетиты моддейкеров... ;-)

Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Ну у меня вопрос попросче:

 

Можно ли поднять немного выше полосу загрузки ?

(где искать и строчки - если возможно)

 

1306966.jpg

Изменено пользователем Алексеич

Самое гениальное - это самое простое - но чтобы сделать простое - нужно быть гениальным...

Ссылка на комментарий

Привет всем!

Не пинайте плз за нубские вопросы, но что-то не получается..

1. Как править "пулестойкость" нпс? Хотел немного покрепсче сделать зомбированных (а то они с 4-6 попаданий валятся), пробовал в m_stalker_zombied крутить секцию stalker_zombied_immunities, вообще никаких результатов...

2. Как правильно уводить рестриктор в nil? В туторах пишут что-то типа того

on_info = {+info) nil %=effects%

а в конфигах ЗП всегда делается включение "пустой" секции:

[sr_idle@end]

 

Как правильно, чтобы точно "выключать" рестриктор?

Ссылка на комментарий

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

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...