В данной теме вы можете задавать любые вопросы касательно 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 по основным вопросам моддинга - обращаемся в ЛС.
Координаты свои, путь к файлу с логикой: cfg = scripts\marsh\smart\marsh_doc_smart.ltx тоже свой. 2)В этом новом файле(здесь он называется marsh_doc_smart.ltx), пишешь: [smart_terrain];marsh_doc_smart squad_id = 1 ;-- первый сквад на новой локе.Второй будет 2 и т. д.. max_population = 1 ;количество сквадов в лагере arrive_dist = 10 ;необязательно(НПС считается прибывшим в лагерь в 10 метрах от смарта)
3)Если [exclusive] оставила, пишешь в указанном файле(stalker_doc_cop.ltx) логику НПС.Типа: [logic@stalker_doc_cop] -- обрати внимание suitable = {=check_npc_name(stalker_doc_cop)} true active = walker
[walker] path_walk = walk_doc path_look = look_doc invulnerable = true ; бессмертие target = story | actor ; смотрит на Актора
Выше написал обрати внимание, stalker_doc_cop = из [exclusive].Имя обязательно должно соответствовать имени в логике [logic@stalker_doc_cop] .Если в логике смарта будет: [exclusive] lllee = путь к логике, то в логике эксклюзива обязательно: [logic@lllee]
4)Делаешь сквад.Удобнее в файле misc\squad_descr.ltx,добавить инклуду на свой,новый файл,например: #include "squad_descr_marsh.ltx" Я так для каждой новой локации делаю, и в этом файле пишешь:
[marsh_doc_squad]:online_offline_group ;в скобках - название сквада sympathy = 1 ;необязательно relationship = friend ;отношение необязательно faction = stalker ; группировка npc = stalker_doc_cop ;берётся из файлов spawn_sections_zaton.ltx и других(можно 10 НПС и т.д.) target_smart = marsh_doc_smart ;название смарта story_id = marsh_doc_squad ;если указать НПС не гибнет от выброса(А в противном случае - труп) spawn_point = marsh_doc_smart_walk_doc ;точка спавна сквада.
Arist, уу как ты намудрил. Ты написал сейчас тутор так сказать к ЧН\ТЧ . По-первых , invulnerable = true ; бессмертие не работает на ТЧ, во-вторых, я брал на примере Толика , и мне так посоветовали, в-третьих, как я уже написал, в ТЧ в смарте секции Болот в all.spawn никогда не прописывается ссылка на смарт. Все параметры его пишутся прямо там, вроде как.
Добавлено (28.11.2012, 00:57) --------------------------------------------- Arist, У меня АИ-пак стоит, но мой НПС не должен лечить самого себя..
LaRento, про смарт - это на Зов Припяти.А вот АИ-пак похоже и делает твоего раненого здоровым.Там, по моему несложно отключить схему "медик".Причина должна быть в этом.Потому что, сталкеру ставишь здоровье 0.3, как у тебя и он раненый.
function ins_start_timer() --/ (пере)запуск таймера (из диалога) Timer_q = time_global() + 9000*1000 --/ взводим таймер (180*1000=30 мин игр тайм(17280*1000=2 дня)) db.actor:give_info_portion("start_timer") end
function init(obj) local torch = torch_binder(obj) obj:bind_object(torch) end
class "torch_binder" (object_binder) function torch_binder:__init(obj) super(obj) end
function torch_binder:reload(section) object_binder.reload(self, section) end
function torch_binder:reinit() object_binder.reinit(self) end
function torch_binder:update(delta) object_binder.update(self, delta) --Update() end
function torch_binder:net_spawn(data) return object_binder.net_spawn(self, data) end
function torch_binder:net_destroy() object_binder.net_destroy(self) end
function torch_binder:net_save_relevant() return true end
--// сохранение и загрузка табличных и прочих данных - так как фонарик всегда в онлайне - очень удобно использовать
function torch_binder:save(p) -- тут сохраняем значение object_binder.save(self, p) p:w_u32(last_time_q) p:w_u32(time_back.SaveBackTimer()) -- походу тут хранится end
function torch_binder:load® -- отсюда загружаем object_binder.load(self, r) last_time_q = r:r_u32() time_back.LoadBackTimer(r:r_u32()) -- соответственно загружается end
Повесил на фонарь. При попытке сохранения ловлю выллет
Code
[error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: ...\s.t.a.l.k.e.r\gamedata\scripts\ins_timer_all.script:76: attempt to index global 'time_back' (a nil value)
Вот 76 строка p:w_u32(time_back.SaveBackTimer()) До этого всё работало, но при НИ вылетает
Нашел худ рации и сделал чтобы можно было использовать, а как сделать чтобы на подходе к N-ному месту от туда звучали переговоры определенного типа? (к примеру на базе долго, естественно переговоры долга а в деревне новичков переговоры сидора с кем не будь? я так понял нужно рестриктором сделать "зону покрытия" но с каким скриптом?
ins33, насколько помню, то скрипт time_back использовался в ТТ2 на "финишном забеге". У тебя он тоже используется? Если нет, то зачем на апдейт фонаря ты вешаешь его функции.