В данной теме вы можете задавать любые вопросы касательно S.T.A.L.K.E.R. моддинга
• Не флудить • Предварительно просматривайте раздел, ведь ответ на ваш вопрос может быть там • В своем вопросе указывайте платформу моддинга — Тень Чернобыля, Чистое небо или Зов Припяти
1. Какая стоит игра, с каким патчем? 2. Какой мод, версия мода? 3. Что правили своими ручками? 4. Лог вылета и последние 25 строк (помещать под спойлер).
Структура папок и файлов в корневом каталоге игры:
...\S.T.A.L.K.E.R\gamedata\anims – папка содержит исполнительные файлы эффектов (например от ПНВ).
...\S.T.A.L.K.E.R\gamedata\config – папка содержит основные конфигурационные файлы (т. е. большинство настроек игры)
...\S.T.A.L.K.E.R\gamedata\meshes – содержит модели игровых предметов и персонажей...
...\S.T.A.L.K.E.R\gamedata\scripts – папка со скриптами (рабочими файлами содержащими в себе наборы функций) – основная папка, отвечающая за ответные действия игры и действия производимых игроком в игре.
...\S.T.A.L.K.E.R\gamedata\shaders – папка содержит в себе конфигурационные файлы шейдеров.
...\S.T.A.L.K.E.R\gamedata\sounds – здесь находятся все звуки игры (разложены по своим каталогам и папкам)
...\S.T.A.L.K.E.R\gamedata\spawns – содержит файл спавна – очень важный файл – не трогать без нужды!!!
...\S.T.A.L.K.E.R\gamedata\textures – содержит разложенные по каталогам и папкам текстуры используемые в игре.
Теперь разберем папки в каталоге «config»
...\S.T.A.L.K.E.R\gamedata\config\creatures - содержит массу конфигурационных файлов, в основном отвечающих за взаимодействие Главного героя игры (в дальнейшем ГГ) и прочего окружения в игре и ТТХ самого ГГ.
...\S.T.A.L.K.E.R\gamedata\config\gameplay – содержит конфиг. файлы персонажей игры (НПС) отвечающие за внешний вид, статус, снаряжение. Файлы: character_desc_ххх (где ххх – название локации) и character_desc_general (отвечает за зомбированного персонажа). Также содержит файлы диалогов и профилей НПС.
…\S.T.A.L.K.E.R\gamedata\config\misc – конфиг.файлы торговцев (папки с именами торговцев), артефактов, брони, квестовых предметов, уникальных предметов, файл отвечающий за награды за автозадания, файл эффектов (алкоголизма, ранения, ПНВ и прочих)...
…\S.T.A.L.K.E.R\gamedata\config\mp – среди прочих содержит важный файл mp_ranks – отвечающий за выпадение оружия и патронов из рук ГГ и НПС – без прописывания добавляемого в игру оружия в этот файл при выпадении нового оружия из рук ГГ\НПС будут следовать вылеты.
…\S.T.A.L.K.E.R\gamedata\config\text\rus – содержит файлы описаний всего и вся находящегося в игре (брони, артефактов, оружия, предметов и прочего).
…\S.T.A.L.K.E.R\gamedata\config\weapons – содержит конфиг.файлы оружия и боеприпасов используемых в игре.
…\S.T.A.L.K.E.R\gamedata\config\weathers – содержит конфиг.файлы настройки погоды на локациях.
Теперь немного подробнее о файлах.
...\S.T.A.L.K.E.R\gamedata\config\misc:
Папка shop_ххх (ххх – имя торговца) – содержит конфиг.файлы ассортимента торговца.
outfits – содержит секции конфигов костюмов.
artefacts - содержит секции конфигов артефактов.
items - содержит секции конфигов предметов.
monster_items - содержит секции конфигов частей монстров
postprocess - содержит секции конфигов пост. процессов (например: ПНВ).
quest_items - содержит секции конфигов квестовых предметов.
task_manager - содержит секции наград за автоквесты.
unique_items - содержит секции конфигов уникального оружия и костюмов.
makdm, да, я тупой - понимаю. Больше донимать вас не буду, но если ты про это and has_alife_info(v.info) то я уже выставлял, смотрел ещё куда в ars отсылка идёт, там такие две функции:
-- проверяем актора в зоне X (вызывается раз в 4 секунды) function ars_fill_primary_objects() for k,v in pairs(primary_objects_tbl) do local obj_id = get_story_object_id(v.target) if(obj_id and db.storage[obj_id] and db.storage[obj_id].object)then if (db.storage[obj_id].object:position():distance_to(db.actor:position())<35 and not has_alife_info(v.info)) then db.actor:give_info_portion(v.info) ars_cop.add_spot_on_map(obj_id,"primary_object",v.hint) ars_cop.send_tip("Отмечен новый объект на карте: "..game.translate_string(v.hint),nil,1,nil,"location") ars_achievements.map_objects_counter() if(ogsm_notepad)then ogsm_notepad.note_location_info() end end end end end
-- а эти вызываются из диалогов function ars_fill_primary_objects_dlg(info) for k,v in pairs(primary_objects_tbl) do local obj_id = get_story_object_id(v.target) if(obj_id)then if (info==v.info and not has_alife_info(v.info)) then db.actor:give_info_portion(info) ars_cop.add_spot_on_map(obj_id,"primary_object",v.hint) ars_cop.send_tip("Отмечен новый объект на карте: "..game.translate_string(v.hint),nil,1,nil,"location") ars_achievements.map_objects_counter() if(ogsm_notepad)then ogsm_notepad.note_location_info() end end end end end
Все манипуляции дают вылет и я тут честно говоря не могу увидеть, каким боком вообще замешаны инфопоршни, кроме их выдачи в тех функциях под спойлером. Но я так понял - это условия их получения, а что такое has_alife_info(v.info) - ??? Слово info конечно намекает, но вообщем ладно, спасибо за помощь. Вы ведь не должны всё за меня делать в конце концов.
Ну фонарь это же отдельный предмет, он ставится в слот, т.е. ему нужны текстуры. Или нет?
Ваша логика: Автомобиль отдельный объект, на нем можно ездить, ему ведь нужен воздух? И да и нет, конкретизируйте вопрос!
ЦитатаAlex_91zA ()
А анимация тоже ведь есть на фонарь из Мизери?
Не знаю, я никогда не смотрел этот мод. Если фонарь там приаттаченный объект, то никакой анимации ему не требуется. _S_k_i_F_, Не у всякого объекта есть такоой метод, о чем тебе и сообщает движек: attemp to call method "condition"
Сообщение отредактировал denis2000 - Четверг, 08.09.2016, 20:06
function cleaner_weapons() for i=1,65534 do local obj = alife():object(i) if obj~=nil and obj:section_name()~=nil then if string.find(obj:section_name(),"wpn_") then if obj:condition() <= 0.35 then alife():release(alife():object(obj),true) end end end end end
function cleaner_weapons() for i=1,65534 do local obj = alife():object(i) if obj~=nil and isWeapon(obj) then if obj:condition() <= 0.35 then alife():release(alife():object(obj),true) end end end end
Все равно тот же вылет
Код
Description : ....r. - Зов Припяти\gamedata\scripts\xr_effects.script:3534: attempt to call method 'condition' (a nil value)
Движковый метод condition() может быть вызван только для клиентского класса объекта, а вы его пытаетесь вызвать для серверного класса. Для серверного класса нужно читать нет-пакет оружия. И вот это :
Цитата_S_k_i_F_ ()
alife():release(alife():object(obj),true)
ну просто "швах".
Сообщение отредактировал makdm - Четверг, 08.09.2016, 20:51
_S_k_i_F_, Проверять нужно у клиентского типа объектов, например так:
Код
function cleaner_weapons() for i=1,65534 do local obj = alife():object(i) if obj~=nil and isWeapon(obj) then local wpn = level.object_by_id(obj.id) if wpn then if wpn:condition() <= 0.35 then alife():release(alife():object(obj.id),true) end end end end end
А если проверять у всех, то придется разбирать нетпакет, как уже сказали. Вы пытаетесь сварганить какую-то дичь! Может для начала, расскажите, что требуется?
Сообщение отредактировал denis2000 - Четверг, 08.09.2016, 21:30
denis2000, к выбросу привязать (точнее уже привязал) функцию, которая удаляет все оружие, состояние которого меньше 0.35 denis2000, все, последний код работает как надо, спасибо за помощь!
Сообщение отредактировал _S_k_i_F_ - Четверг, 08.09.2016, 21:44
все, последний код работает как надо, спасибо за помощь!
Не так быстро! Этот код удалит только онлайн объекты, этот код не учитывает того, что объект может быть во владении НПС, находиться в ящике ГГ (или в ящике вообще) и множество других нюансов. Мне кажется что вы изобретаете велосипед и подобная чистилка хлама давно есть в некоторых модах.