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

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


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

Gun12

Мы все же в некие дебри для этого раздела углубились, что многими читающими вероятно не приветствуется, но ... :-)

Добавлю тебе сомневалок/добавлялок относительно именно игрового LUA для Сталкера.

На практике, при обращении к файлу есть еще некий промежуточный (а может просто дополнительный) этап, который приводит к появлению копии таблицы считанного файла в таблице 'db'. Вот как и для чего туда попадает копии таблиц скрипт-файлов - не ясно.

Но, не имея информации как удалять занесенный в глобальный массив модуль, например после 'prefetch("my_script_name")', можно воспользоваться по сути некоей копией '_G', находящейся в 'db', и уже в ней 'ручками' удалять (приравнивая к nil'ам) и/или проверять наличие.

Изменено пользователем Artos
Ссылка на комментарий

Artos

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

Дальше по сути.

Как? добавить копии - не проблема. А вот для чего? Если очень нужно, то можно ПОвыяснять.

Единственное что мне не понятно - для чего тебе нужно удалять занесенный в глобальный массив модуль?

Но в любом случае интересно и об этом подумать.

 

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

Gun12

'как и для чего' - это скорее имеет познавательский интерес, чем практический (хотя кто знает ...)

 

Больше интересует не 'как добавить копию' (это эмпирически у всех получается), а как отключать корректно модули.

Причин для применения возможности отключения требуемого модуля (скрипта) можно назвать немало.

Например, при использовании опциональных настроек для модов.

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

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

 

Дозагрузка или отключение схем поведения, которые и ресурсы съедают и влияют - уже более актуально. В подземельях, к примеру, не разумно иметь включенным, например, присутствующую и в оригинальной игре схему 'xr_heli_hunter.script', о динамических кострах иль иных 'поверхностных' модулях - можно и не упоминать.

И т.д.

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

Изменено пользователем Artos
Ссылка на комментарий

кто подскажет где находится файл отвечающий за башню бтр в народной солянке, тоесть ее скорострельность, партиклы, скорость поворотаи тд?

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

saruman_ten

config\models\vehicles\ Там посмотри файлы про БТР, его параметры, в том числе и башня, будут там. Углы поворота башни - зашиты в модели. По поводу оружия - его секция прописана там же, посмотри какая, и ее поищи в папке weapons

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

Kirag, нашел сам, я сейчас на основе бтр хочу сделать стреляющим, танк из сборки 22ff,

насчет угла поворота не уверен, в модели нет не какого джоинта у башни

Изменено пользователем saruman_ten
Ссылка на комментарий

saruman_ten, не могу понять с чего ты решил что в модели нет джойнта башни. Их аж 3.

mashine_gun_tower - сама башня.

mashine_gun - дуло

mashine_gun_fire_point - точка откуда воспроизводится партикл.

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

Вопрос на засыпку: почему, несмотря на то, что у НПС стоит появление только после выдачи инфопоршня, он спавнится сразу после начала игры?

Вот созданная секция в алл.спавн:

[9971]

; cse_abstract properties

section_name = stalker

name = morda_26

position = -132.15274047852,-0.20062898099422,-223.84744262695

direction = 0,0,0

 

; cse_alife_trader_abstract properties

money = 100000

character_profile = morda_26

 

; cse_alife_object properties

game_vertex_id = 553

distance = 3.5

level_vertex_id = 106939

object_flags = 0xffffffbf

custom_data = <<END

[smart_terrains]

agr_kidala_lager = true

 

[spawner]

cond = {+bar_deactivate_radar_done}

END

 

story_id = 351

 

; cse_visual properties

visual_name = actors\new_npc\army_1

 

; cse_alife_creature_abstract properties

g_team = 0

g_squad = 0

g_group = 0

health = 1

dynamic_out_restrictions =

dynamic_in_restrictions =

 

upd:health = 1

upd:timestamp = 0

upd:creature_flags = 0

upd:position = -132.15274047852,-0.20062898099422,-223.84744262695

upd:o_model = 0

upd:o_torso = 0,0,0

upd:g_team = 0

upd:g_squad = 0

upd:g_group = 0

 

; cse_alife_monster_abstract properties

 

upd:next_game_vertex_id = 65535

upd:prev_game_vertex_id = 65535

upd:distance_from_point = 0

upd:distance_to_point = 0

 

; cse_alife_human_abstract properties

predicate5 = 1,0,0,2,0

predicate4 = 2,2,1,2

 

; cse_ph_skeleton properties

 

upd:start_dialog =

 

; se_stalker properties

 

 

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

Ссылка на комментарий
ЙоЖеГ, я не это имел в виду, там просто нет лимитов, но они вроде для шейпа, я сейчас вместо бтр поставил танк, башня нормально поворачивается, но шейп остается на месте
Ссылка на комментарий

Что то никак не найду в какой папке находится звук жужжания прибора ночного видения, может кто знает, перерыл вроде все, а может что пропустил. :russian_ru:

 

Сообщение от модератора Cyclone
Файлы nv_loop.ogg (работа); nv_off.ogg; nv_start.ogg в папке sounds\weapons
Ссылка на комментарий

Люди, подскажите пожалуйста, как исправить вылет такого вида и вообще на что именно он ругается?

Expression : !phrase_dialog->m_PhraseVector.empty()

Function : CPhraseDialog::SayPhrase

File : E:\stalker\patch_1_0004\xr_3da\xrGame\PhraseDialog.cpp

Line : 140

Description : No available phrase to say, dialog[bar_bar_barmen_start]

 

Ссылка на комментарий
Ulman, отсутствие фразы актора\НПС'а в диалоге bar_bar_barmen_start. Покопайся в нем, либо пропиши другой диалог НПС'у. Изменено пользователем ЙоЖеГ
Ссылка на комментарий

Ulman

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

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

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

Подскажите пожалуйста об увеличении спавна монстров на локациях.

Мое предположение: открываю config/scripts/назв. локации.ltx и там поднимаю max_count и max_spawn? Если да, то в каких пределах? (и еще могу подкрутить время спавна, чтобы чаще и больше?) И! не вызовет ли это каких нибудь глобальных расстройств в игре?

 

И скажите, какой файл отвечает за количество спавнящихся врагов-людей на локациях? А то скучно с 4мя наемниками на стройке в ДТ

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

reboot, Количество находящихся на той, или иной локации монстров и(или) нпс, напрямую зависит от емкостей смарт_террейнов, находящихся на требуемой локации. В свою очередь, ёмкости смарт_террейнов всегда меньше, или равны количеству заданных работ, назначенного гулага, в тот, или иной момент времени (зависит от временных настроек гулагов).

Судя по вопросу, модинг Сталкера, для вас новинка. Система данной игры, представляет собой, достаточно сложный алгоритм. И ни один вопрос, связанный с её модингом, не может дать предельно ясного ответа. Могу только посоветовать почитать множественные справчники и мануалы по модингу Сталкера, которыми интернет буквально переполнен.

Ссылка на комментарий
singapur22, хорошо, буду изучать, но взять хотя бы монстров в АМК: во всех файлах логики прописана их НЕ принадлежность к гулагам (smart_terrains none=true), из чего я сделал вывод что возможно увеличение численности... ладно, буду экспериментировать.
Ссылка на комментарий

reboot,

но взять хотя бы монстров в АМК: во всех файлах логики прописана их НЕ принадлежность к гулагам (smart_terrains none=true
Это уникальные нпс. После их смерти, они не перевосполняются. И в итоге, после их смерти, общее количество нпс вернётся к установленым ёмкостям смартов.

Чтобы увеличить объём Зоны в плане количества нпс, нужно манипултровать именно смарт_террейнами и их гулагами.

Изменено пользователем singapur22
Ссылка на комментарий

singapur22, нет нет, пардон, в сообщ. 7196 я говорил именно про монстров, а не про нпс. Например открываем config/scripts/amk/rostok.ltx, там видим

[ros_zomb1]
xyzlg = -254.38,-5.89,88.77,8335,1382
respawn_section = zombie_normal,33,zombie_trup,33,zombie_trup2,33,zombie_blow,30
max_count = 1
min_spawn = 1
max_spawn = 1
creature_binded_logic = logic\ros_zomb1
idle_spawn = 259200

Из данного кода я понимаю, что через каждые 259200 секунд в точке x y z будет заспавнен максимум 1 зомби.

Неверное обобщение, 'idle_spawn' задает минимальное время (паузу) между спавнами, но ни как не делает спавн обязательным.

Правильнее будет: не ранее чем через XXX секунд в точке (x,y,z) может быть заспавнен монстр (не менее 1 и не более 1).

--/ Artos

 

видим ссылку на логику ros_zomb1

[smart_terrains]
none = true

[logic]
active = mob_home

[mob_home]
path_home = ros_zomb1
home_min_radius = 1
home_max_radius = 10
on_signal = sig_attacked | mob_combat

[mob_combat]
on_timer = 30000 | mob_home

отсюда я понимаю, что после спавна этот зомби, НЕ привязанный к гулагу, будет гулять где угодно в радиусе 10м.

 

И я думал, что можно увеличить значения max_count и max_spawn, чтобы спавнилось хотя бы 2 зомби, а не 1. Верно я говорю?

Или мои понятия о гулагах хромают сильно.

ну да, хромают :) буду выяснять вместимость монстровских гулагов

 

Пиши грамотнее, не забывая о заглавных буквах! --/ Artos

Изменено пользователем Artos
Ссылка на комментарий

reboot, в его логике написано, что у него есть моб_хоум, называеться ros_zomb1, и гулять он будет в радиусе 10 метров в данном хоуме, а не по всей локации.В свою очередь ros_zomb1 прописываеться в all.spawn.

Параметр max_count это параметр максимального количества заспавненых монстров за один цикл спавна.

параметр min_spawn и max_spawn являються счетчиками для минимального и максимальног спавна.

С использованием данной логики можно хоть десять мутантов в данном хоуме оставить.А так если нужно, то можно и смарты типа general_lair сделать.

Изменено пользователем panzyuza
Ссылка на комментарий

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

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

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

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

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

Войти

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

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

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