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

Внимание. На форуме проводятся технические работы с боковым меню.

_Val_ _Val_

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


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

volazar, та сам то прочел и понял о чем спрашиваешь?

all.spawn - это бинарный файл-конфиг для начального спавна объектов движком и к скриптовому спавну (нет-пакетами) никакого отношения не имеет.

Если ты имеешь ввиду распаковку all.spawn'а - то формат представляемых данных сильно зависит от самого распаковцика (декомпилятора) и значения типа 0xfffffffa вполне могут быть представлены и иначе, т.е. в десятичном формате.

Ничто тебе не мешает это сделать самостоятельно имея под рукой простенький калькулятор переводящий из HEX в DEC. Для получения "соотв. числу" следует от полученного значения отнять 4294967295 (это десятичное значение для 0xffffffff).

Т.о., например для 0xffffff3a имеешь: 4294967098 - 4294967295 = -197

 

Если же имеешь ввиду смысловые значения для каждого бита флага, то:

а) параметров, которые несут информацию именно в виде битовых флагов, в all.spawn'е не менее десятка, поэтому следует в вопросе конкретно говорить о каком именно параметре тебя интересует информация.

б) на форуме имеется поиск, которым и следует пользоваться...

в) смею предположить, что тебя заинтересовала информация по параметру 'object_flags', о которой уже раз давалась на форумах информация. Сейчас не помню ссылку на первоначальный пост с материалами от KD87 и malandrinus'а, но вот выжимка:

Флажок				 двоичное дес. Функция-аксессор * назначение
======================================================================
flUseSwitches	 0000000000001 1					 используется только редактором level editor из SDK и отвечает за видимость в редакторе флажков flSwitchOnline и flSwitchOffline
flSwitchOnline	 0000000000010 2 can_switch_online возможность перехода в онлайн
flSwitchOffline	 0000000000100 4 can_switch_offline возможность перехода в оффлайн
flInteractive	 0000000001000 8 interactive	 ** Такое ощущение, что ни на что не влияет
flVisibleForAI	 0000000010000 16					 используется на клиентской стороне, в частности для зон  отвечает за возможность реакции на контакт
flUsefulForAI	 0000000100000 32					 кроме участия в interactive имет смысл для инвентарного предмета, в частности, влияет на торговлю
flOfflineNoMove	 0000001000000 64 move_offline		 по идее должен отвечать за отсутствие движения в оффлайне, но не используется
flUsedAI_Locations 0000010000000 128 used_ai_locations*** При спавне будет привязан к сетке, при наличии таковой под объектом Иначе будет создан в воздухе.
flGroupBehaviour 0000100000000 256					 неизвестно
flCanSave		 0001000000000 1024 can_save			 Сохранять ли объект. Если флажок снят, то при перезагрузке объект исчезнет.
flVisibleForMap	 0010000000000 2048 visible_for_map	 Устанавливает видимость на миникарте
flUseSmartTerrains 0100000000000 4096					 неизвестно
flCheckForSeparator 1000000000000 8192					 неизвестно
* Для многих объектов соответствующая функция не связана с флагом, а имеет логику, специфичную для данного объекта.
** Функция interactive также учитывает флажки flVisibleForAI и flUsefulForAI
*** В ЗП имеется функция для установки флажка use_ai_locations(bool). Обратите внимание, имя отличается от функции для чтения флажка.

 

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

Изменено пользователем Artos
  • Нравится 1

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

Artos, я как раз по модулю m_netpk.script и делаю ф-ию спавна физического объекта с возможностью фиксации.

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

 

object_flags = bit_not(5) -- ~5 = 0xfffffffa
packet:w_s32(object_flags)

Получается, что 0xfffffffa = 5. А вот как оно было высчитано?

 

Я пробовал переводить 0xfffffffa в десятичное число - однако получил совершенно другой результат, а не число 5.

volazar, раз пользуешься модулем m_netpk.script, тогда чего же спрашиваешь про значения флагов? Там все флаги расписаны, включая семантические имена...

А получается как раз не 5, а -5 (минус пять)!

 

Да и расчитывается просто: Отбрасываем, чтобы не путаться старшие байты и смотрим только последний 'fa' => 250

т.е. имеем десятичное число 250, отняв от которого 255 (ff) получаем -5

Можно иначе: Переводим 'fa' в бинарное значение, т.е. именно в флаги: 'fa' => 11111010

Смотрим что за флаги сброшены: это будут

UseSwitches = 1

SwitchOffline = 4

Т.е. 1+4 = 5

Для сброса флагов требуется от их 'ff' отнять 5 , т.е. 255 - 5 = 250 => 'fa'

 

Ну а суть всех этих значений флагов - сброшен флаг SwitchOffline - который не дает вертолету уходить о оффлайн, т.е. он всегда будет в онлайне (конечно после его спавна и если он на текущей локации).

 

Примечание: В модуле m_netpk.script при изменении любых параметров вертушек (да и машин/ящиков) биты вышеупомянутых флагов сбрасываются автоматически. Да и значение параметра 'skeleton_name' изменяется с '$editor' на 'idle', если не задано иное.

Изменено пользователем Artos
  • Нравится 1

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

Подскажите пожалуйста, как сделать рандомное воспроизведение звука кидания гранат... Как в этом

GiVcHiK.gif

 

 

Знатоки,подскажите как в ТЧ изменить погоду на солнечную? Играю в RMA shadows addon, постоянно дождь и пасмурно, с дождём вроде справился, во всех файлах weather_ххххх.ltx поставил значение rain_density = 0.0, а вот как облачность убрать, хотелось бы чистого неба)

 

Ссылка: "Настройка погоды и освещения".

ColR_iT

 

ColR_iT, спасибо, но ничего из написанного по ссылке не помогло, судя по описанию нужно в параметре clouds_color менять четвёртое число на 0, однако это не работает--изменений никаких.

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

всё идёт по плану...

Подскажите, пожалуйста, кто "в теме". Как избежать вот такого "нырка вертолета" под текстуры при взлете -

Замучился я уже по 80 раз переписывать пути отлета в алл.спавн. Какие бы пути не выставлял (в основном, играл с координатами высоты), вертолет перед взлетом обязательно уходит под террейн!

Неужели высоты 86.5072298 для первого вэйпойнта мало?! На уровне земли значение - "26.00"

[upi_heli_baty_otlet_move]
points = p0,p1,p2
p0:name = wp00
p0:position = -153.445114,86.5072298,-459.451752
p0:game_vertex_id = 3714
p0:level_vertex_id = 459501
p0:links = p1(1)

p1:name = wp01
p1:position = -116.552254,102.800180,-477.721039
p1:game_vertex_id = 3714
p1:level_vertex_id = 523484
p1:links = p2(1)

p2:name = wp02
p2:position = -34.024799,264.659878,-778.659119
p2:game_vertex_id = 3714
p2:level_vertex_id = 470337

===

П.С. Прилет идеален - вертушка зависает в полуметре над землей, выход непися, разговор, сдача квеста, уход непися/посадка в вертушку, все нормально. А вот с отлетом такая трабла. Может и не в путях совсем дело, а я их перебрал около 3х десятков различных вариантов. Возможо ли сделать отлет вертолета корректным?

 

Пользуемся тегами!

ColR_iT

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

Buusty​, когда то тоже намучился с путями вертушек. Спавним - летит нормально. Спавним в другой раз - летит абы как. Возможно иногда схема обрабатывается немного криво. А может и еще что.

По взлету - попробуй добавить точку чуть выше (метров 10) и впереди, от того места - где он (вертолет) зависает. А затем уже с той точки, пусть летит по остальным.

Так например сделано с вертушкой Бати на Янтаре - единственный минус там - там не взяли в расчет высоту забора вокруг территории бункера.

По взлету - попробуй добавить точку чуть выше (метров 10) и впереди, от того места - где он (вертолет) зависает. А затем уже с той точки, пусть летит по остальным.

Так я так и делаю. Первую точку вперед по курсу и выше (и "немного" выше, и "намного" выше, и "средне"... говорю же, перепробовал массу вариантов путей/порядка 30 разных вариантов/). Но такое впечатление складывается, что у вертушки "свое видение взлета", он все равно "ныряет" перед тем, как встать в первую точку вэйпойнта, потом то все идет "как по маслу", встает в две разные точки вэйпойнта и улетает по направлению к третей, окончательной, но чуток до неё не долетает - удаляется по таймеру)).

 

Так например сделано с вертушкой Бати на Янтаре

Именно оттуда вся логика и взята, как основа для моего прилета/отлета.

===

Переносить место квеста не буду. Если не найду решение этой траблы - так и оставлю, все остальное прекрасно работает /и слишком много завязано именно на данной площадке/.

Buusty, чтобы вертушка нормально взлетала и садилась - нужно управлять скоростью.

Изначально в схеме стоИт дефолтная скорость =30, что даже для свободного полета несколько многовато. При взлете, стартующая схема (heli_move) заставляет вертушку "бросаться с места в карьер"... причем движек еще не просчитал нормально высоту (GetRealAltitude).

Совет:

1. Задавать начальную точку взлета непосредственно над текущей точкой (над вертушкой) - метров ~5, чтобы вертушка взлетала вертикально, а не "вперед". При наличии горизонтальной составляющей (т.е. "вперед") движение по путям просчитывается не от точки к точке, а с вариациями, которые порой и "проваливают" вертушку под уровень.

2. Задавать или в самой логике схемы и/или в точках пути ограниченные скорости. Например у меня ранее было задано для "взлетной" точки так: p0:name = pm00|v=8|dv=15 - т.е. при взлете стартовая скорость 8 (можно и поменьше), ауже в точке взлета 15. Т.о. вертушка плавно с ускорением вертикально взлетает на высоту 2-5 метров и уже далее устремляется в полет (к следующей точке).

3. Ну и ... можно отказаться от полета "по путям" и переделать схему полностью для полетов по задаваемым точкам (по координатам), контролируя скриптами, а не движком и высоту и скорость и прочее...

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

Всем привет!Подскажите,как сделать что бы перед началом выброса на базах выла сирена???

Struck, не засоряй топик банальными вопросами! Открой статью по логике и по нужной схеме (ссылки в шапке) - и почитай.

Можешь открыть саму схему (скрипт) и посмотреть какие параметры она (не)использует:

--/ Функция чтения настроек. В нее передается секция, откуда их нужно читатью

function init_meet(npc, ini, section, st, scheme)

 

]snork[, а взять и посмотреть самому как это уже сделано в модах (хотя бы в том же AMK) - лень? Ждешь когда тебе готовые строки выложат?

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

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

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

а взять и посмотреть самому как это уже сделано в модах (хотя бы в том же AMK) - лень? Ждешь когда тебе готовые строки выложат?

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

Я уже искал в АМК 1.4.1 там нету.я нашел логику сирен на базах,посмотрел и ничего не понял

]snork[, распакуй all.spawn и найди в alife_l01_escape.ltx объект name = esc_matugalnik - это и есть сирена на блокпосте.

В этой секции объекта и смотри его логику, в которой по получению соотв.инфопоршня (+esc_blockpost_alarm) активируется соответствующая секция логики ([ph_sound@alarm]) и проигрывается snd = alarm1.

По аналогии - делай и для других баз...

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

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

Тогда как сделать, что бы НПС не смотрел на актора, а куда ему указано...без зацикливания ремарка. victim не подходит, у меня он должен в точку смотреть.

Struck, если тебя не устраивает существующая схема то... или юзаешь другую (подходящуюю) или засучиваешь рукава и пишешь свою иль дорабатываешь под себя имеющуюся.

Схема "meet" разработчиками задумана как встреча двух сталкеров и смотреть "не на собеседника" им как то в голову не пришло. Поэтому в схеме жестко задано: look_object = victim. Не подходит - меняй...

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

Struck, конкретно в точку (т.е. три координаты на уровне) не получится. Указывать куда смотреть НПС при секции meet можно только посредством параметра victim который поддерживает только три значения (цитата с wiki):

victim/victim_wpn = <number>|<параметр> - задает объект, на который должен будет смотреть персонаж, в зависимости от расстояния равное number.

Для ситуации, когда актор безоружен и вооружён соответственно. Возможны следующие значения:

actor - смотреть на игрока;

story_id - смотреть на персонажа со указанным story_id;

nil - никуда.

 

P.S. Мог бы и прочитать чуть более двадцати строк.

Artos, ясно, спасибо, тогда остается только ремарк.

 

ColR_iT, Emoticon-Facepalm.gif ну я в общем то прежде чем писать, читаю и пробую, я вроде не спрашивал как такое в [meet] сделать, ибо там даже в самой схеме берется id.

Buusty, чтобы вертушка нормально взлетала и садилась - нужно управлять скоростью....

Artos, да, все верно. Спасибо большое! Уже второй раз выручаешь дельным советом. Прописал координаты взлета (первую точку) точно такие же, как и точку приземления, но высоту поднял на "6", и добавил доп. точку вэйпойнта еще на +6 /уж для надежности/ и скорость убрал до "4" (в логике для этой схемы оказывается 15 (!) стояло, вот и срывалась "с буксами" под уровень :lol: ). Теперь все четко, конечно "чуток чиркает пузом" по бетону, но это мелочи, по сравнению с первоначальным вариантом.

P.S. К слову, в данном квесте использовал твой метод установки/удаления метки на рестриктор - простенько и со вкусом! :ok5: Все работает как положено.

Что тут скажешь - "опыт, опыт, опыт..."))).

Такой вопрос, по аномалиям. В нет-пакете у них есть такой параметр: artefact_position_offset = 2048. Значение 2048 подсмотрел в чистой игре у большинства аномалий. Понятно, что это что-то связанное с тем, куда спавнить появляющиеся в аномалии артефакты. Но как понимать это число?

Поясню ситуацию, сейчас занимаясь рандомным спавном аномалий на уровне (по рандомному левел-вертексу) часто сталкиваюсь с тем что артефакты лежат кучками по 2-5 штук почти в одной точке, причем в одной кучке артефакты разных видов, относящиеся к разным аномалиям. Самой аномалии в этой точке нет никакой. Не могу сказать что меня устраивает такое их поведение.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine / Мимокрокодил.

Я понял что моя старая подпись что-то нарушает. Удалил все ссылки.

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

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

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

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

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

Войти

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

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

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