В данной теме вы можете задавать любые вопросы касательно S.T.A.L.K.E.R. моддинга.
Не флудить
Предварительно просматривайте раздел. Ответ на ваш вопрос может быть там.
В своем вопросе указывайте платформу моддинга - Тень Чернобыля, Чистое небо или Зов Припяти.
1. Какая стоит игра, с каким патчем? 2. Какой мод, версия мода? 3. Что правили своими ручками? 4. Конфиг компа. 5. Лог вылета и последние 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 - содержит секции конфигов уникального оружия и костюмов.
У кого есть желание, создать FAQ по основным вопросам моддинга - обращаемся в ЛС.
можно ли сделать так в зп что бы предмет нельзя было использовать если у тебя нет определенной вещи? я сделал противогаз и фильтры к нему можно ли сделать что бы фильтры нельзя было использовать без противогаза? помогите как?
Сообщение отредактировал wind - Пятница, 21.03.2014, 11:32
Подскажите в тч, xray-extensions добавлен колбек на хит актора, я правильно понял его вызов: db.storage[db.actor:id()].hit? Не работает:
function actor_hited(actor, npc) local nps local t = db.storage[db.actor:id()].hit local actor_hited = (t ~= nil and t.who == nps:id()) printf("_bp: actor_hited: %s", if_then_else(actor_hited, "true", "false")) return actor_hited end
Или помогите придумать, как проверить получения хита не используя апдейт, а при однократном вызове ф-ии. Это не даёт результата:
function actor_hited_two(actor, npc) hited = 0.05 local actor_health = db.actor.health if actor_health < db.actor.health - hited then news_manager.send_tip(db.actor, "%c[255,0,255,0]Нанесён ХИТ\\n%c[default]..", 0, "trader", 3000) return true end return false end
[error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: ...ow of chernobyl\gamedata\scripts\task_manager.script:208: attempt to index field '?' (a nil value)
Оригинальный таск мэнэджер не изменял, да и вообще к квестовым оболочкам не прикасался, т.е. ни xml, ни script, ни ltx-ные файлы, отонсящиеся к квестам я не трогал: task_manager.scriptот оригинала, task_manager.ltx тоже, файлtaski.xml(где будут хранится квесты) ещё не создан и нигде не прописан. Может, из-за кривой вставки какого-нибудь минидополнения? Пожскажите хотя бы район, где можно поискать ошибку
Uyman358, Начни поиск с простого, удали все файлы связанные с квестами, пусть игра читает оригинал. Потом добавляй по одному. И на всякий начни Новую Игру. А лучше, вспомни, что делал, т.к. если это оригинал, то вылета не должно быть. Подобный вылет встречал при выдачи всех квестов, и изменении task_manager.ltx без НИ.
ins33, в том-то и дело, что сохранения я не проверял(ДО некоторого времени), а добавлено довольно много FantomICW, указывает на функцию из лога:
* Game gtwyeery is successfully loaded from file 'c:\documents and settings\all users\documents\stalker-shoc\savedgames\gtwyeery.sav' (0.557s) * phase time: 556 ms * phase cmem: 317832 K Сервер: Соединяемся... * phase time: 7 ms * phase cmem: 317832 K Клиент: Синхронизация... * phase time: 6 ms * phase cmem: 317832 K * [win32]: free[830104 K], reserved[217172 K], committed[1049812 K] * [ D3D ]: textures[396491 K] * [x-ray]: crt heap[317832 K], process heap[567243 K], game lua[5709 K], engine lua[243 K], render[556 K] * [x-ray]: economy: strings[2950 K], smem[26935 K] ! Unknown command: actor_binder:load():_self.object:name()='%s' ! Unknown command: actor_binder:object_binder.load():_self.object:name()='%s' ! Unknown command: _bp:_pstor_load_all:_loaded_[%s]='%s' ! Unknown command: _bp:_pstor_load_all:_loaded_[%s]='%s' ! Unknown command: ^^^_LOAD
FATAL ERROR
[error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: ...ow of chernobyl\gamedata\scripts\task_manager.script:208: attempt to index field '?' (a nil value)
А вот и сама функция:
--' Загрузка function CRandomTask:load(p) printf("^^^ LOAD") --' Считаем количество записей
local i = p:r_u8() for k = 1,i do local id = p:r_stringZ() self.task_info[id].enabled = p:r_bool() self.task_info[id].enabled_props = p:r_bool() self.task_info[id].status = p:r_stringZ()
local selected_target = p:r_u32() if selected_target ~= -1 then self.task_info[id].selected_target = selected_target end self.task_info[id].last_task_time = utils.r_CTime(p)
if self.task_info[id].type == "defend_lager" then local defend_object = alife():object(self.task_info[id].selected_target) local sm_ini = defend_object:spawn_ini() self.task_info[id].defend_target = utils.cfg_get_number(sm_ini, "random_task", "defend_target", nil, true) end
xray-extensions добавлен колбек на хит актора, я правильно понял его вызов: db.storage[db.actor:id()].hit?
Это ты от куда такой вывод сделал, что колбек для актора выглядит так? Колбек - он и в ... в общем это колбек, такой же как на юз, дроп и прочие, его также нужно регистрировать в reinit и т.д.
Доброго времени суток. Простой копипаст амбиэнта из ЗП в ТЧ даёт такой результат Expression : ovi->channels==1 Function : CSoundRender_Source::LoadWave File : E:\stalker\sources\trunk\xrSound\SoundRender_Source_loader.cpp Line : 71 Description : Invalid source num channels: Arguments : c:\games\s.t.a.l.k.e.r. - shadow of chernobyl\gamedata\sounds\music\zaton_day2_l.ogg Не подскажите, пожалуйста, что нужно делать?
Доброго времени суток. Простой копипаст амбиэнта из ЗП в ТЧ даёт такой результат Expression : ovi->channels==1 Function : CSoundRender_Source::LoadWave File : E:\stalker\sources\trunk\xrSound\SoundRender_Source_loader.cpp Line : 71 Description : Invalid source num channels: Arguments : c:\games\s.t.a.l.k.e.r. - shadow of chernobyl\gamedata\sounds\music\zaton_day2_l.ogg Не подскажите, пожалуйста, что нужно делать?
Если я не ошибаюсь то переконвертить звуки в SDK. Судя по логу, не соответствуют каналы.