В данной теме вы можете задавать любые вопросы касательно 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 по основным вопросам моддинга - обращаемся в ЛС.
Expression : fatal error Function : CScriptEngine::lua_error File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp Line : 73 Description : <no expression> Arguments : LUA error: ...hing\s.t.a.l.k.e.r\gamedata\scripts\ins_poisk.script:38: attempt to perform arithmetic on upvalue 'timer_1' (a nil value)
Вот скрипт
local timer_1 local timer_t_1 local timer_ts_1 function timer_doc_start_1() -- Запускаем из диалога if has_alife_info("bomJ") then -- поршень установки таймера. даёт доктор в начале кв.. timer_1 = 60000 -- (1 мин. = 60000) (180*1000=30 мин игр вр.)1200000-20мин игр времени end timer_t_1 = (game.time() + timer_1) -- присвоение значения переменной (во сколько разбудит) db.actor:disable_info_portion("bomJ") -- отключение условия присвоения значения, чтобы значение было присвоено только один раз db.actor:give_info_portion("doctor_est_2") -- даём поршень будильника end
function zabolel_1() -- функция для bind_stalker if has_alife_info("doctor_est_2") then -- если будильник ещё не сработал timer_ts_1 = timer_t_1 -- вспоминаем во сколько встаём if timer_ts_1 and has_alife_info("doctor_est_2") then -- если ещё не проснулись if timer_ts_1 <= game.time() then -- и пора вставать db.actor:disable_info_portion("doctor_est_2") -- выключаем таймер (затем действие) db.actor:give_info_portion("doctor_razgovor")-- добавляем поршень запуск квеста db.actor:give_info_portion("doctor_one_start")-- обавляем поршень условие квеста end end end end
Вот 38 строка: timer_t_1 = (game.time() + timer_1)
ins33, у тебя отсутствует инфопоршень bomJ, из-за чего не проходит инициализация переменной timer_1 (имена переменным ужасные дал). А вылет говорит, то что и должен - ты пытаешься совершить арифметическую операцию числа с nil, а этого делать нельзя. Либо выдавай инфопорцию, либо инициализируй переменную при объявлении:
Спрошу ещё раз, про спавн скиптовым методом нпс с присвоением ид, Он спавнится, но при перехонев алайф, ловил вылет по логике. Если спавню с логикой без ид всё ок. Может хр_эфект надо править? Подобную ф-цию, увидел в нём.
DarkFace, в файле xr_effects.script есть функция respawner_spawn, которая в качестве аргумента принимает имя респавн-секции. Вот она и вызывает "незапланированный" спавн.
Всем привет. Возник вопрос по добавлению локаций в ТЧ. Сразу скажу, что локации это для меня тёмный лес . Я пытался достать из map_pack Восточную Припять. Вот что я делал:
- Достал из map packа нужные текстуры, шейдеры, модели и т.п. - Прописал локацию в конфингах:game_graphs,game_levels,game_maps_single - Распаковал all.spawn из map packa - но спавнов для Припяти и вообщем для ЗП-шных лок там не оказалось. Поэтому я только заспавнил на кордоне переход и собрал all.spawn - С помощью проги ggrc.pl v.0.6 собрал game graph. Как и было сказано в ридми к проге, при сборке графа добавил папки с остальными локами и в них фаилы level.gct,level.ai. Собрал граф.
Но при создании новой игры, игра вылетает без лога. Подскажите пожалуйста, что я не так сделал?
Сообщение отредактировал ОТИС - Вторник, 11.12.2012, 17:03
Вопрос по логике: 1) Как сделать так, чтобы НПС в активной секции walker, не разговаривал с ГГ? А то если пропишешь ему no_meet, то он конечно разговаривать не будет, но потом когда дойдёт до конечного вэй-поинта, не будет выполнять логику meet, которая нужна. Можно ли сделать так, чтобы НПС не разговаривал с ГГ, когда ходит по вэй-поинтам, не затрагивая секцию meet в логике? 2) И ещё, что нужно прописать в секции combat, чтобы НПС действительно стрелял по мутантам, и если передвигался, то потом возвращался на первичный вэй-поинт, а не оставался "где-нибудь там" Заранее спасибо.
Вот возник такой вопрос: мне нужно было добавить GPS-маячки из АМК. Я добавил, игра запустилась, без вылетов. Но маячок не работает, как должен: не появляется рамка, куда нужно вводить текст для метки. Пожалуйста помогите, что я не так сделал.
dinsekt, как то ты не очень удачно вопросы составил... 1. Секция meet прописывается в конкретную схему и будет работать до тех пор, пока НПС будет находится в этой схеме. Каким образом у тебя meet завязана на точках пути одному тебе известно. Видимо весь сакральный смысл скрыт вот в этой фразе:
Quote
но потом когда дойдёт до конечного вэй-поинта, не будет выполнять логику meet, которая нужна
. 2. Что значит "действительно"? Секция combat это по своей сущности колбек. Секция определяет, что произойдёт, когда НПС сорвётся в бой. И параметров у неё всего-ничего: стандартный набор переключения схем (on_info, on_timer, on_actor_in_zone и т.д. Причём само переключение недопустимо, лишь условия и эффекты), плюс ещё один - combat_type, который задаёт один из типов боя: camper, zombied, monolith, nil. Вопрос про точки пути, вообще отдельный пункт, никак не связанный с какой-либо секцией. Чтобы НПС ходил по кругу нужно в последней точке пути указать ссылку на первую (см. параметр link).
Добавлено (11.12.2012, 22:06) --------------------------------------------- Rap4ik, в фразу вставляешь экшн, где вызываешь вот такую функцию:
Code
function actor_enemy(first_speaker, second_speaker) --# Определим кто есть кто. --# Если id актора совпадает с id говорящего фразу, значит собеседник это second_speaker, иначе - first_speaker local npc = (db.actor:id() == first_speaker:id()) and second_speaker or first_speaker --# Устанавливаем отношение как враг. npc:set_relation(game_object.enemy, db.actor) end
Только рекомендую также и акшн окончания диалога поставить, на всякий случай...
ColR_iT, На счёт combat, НПС иногда просто смотрят на мутанта и не желают стрелять, я вот про что. Нет-нет. Как бы в моём случае, когда нпс рвётся в бой и уничтожает угрозу он начинает искать новую, бегает со стороны в сторону. И только некоторые НПС возвращаются на своё место, а другие оказываются 'где-нибудь там' причём не прекращая искать угрозу. И тогда на счёт meet, по-другому вопрос задам. Можно ли поставить Space restrictor, который бы включал секцию meet в логике?