В данной теме вы можете задавать любые вопросы касательно 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 по основным вопросам моддинга - обращаемся в ЛС.
Подскажите почему не происходит рандомного выбора?
Code
function pls() local snd1 = xr_sound.get_safe_sound_object([[characters_voice\scenario\yantar\dream_talk_1]]) local snd2 = xr_sound.get_safe_sound_object([[characters_voice\scenario\yantar\dream_talk_r]]) local snd = {"snd1", "snd2"} local snd_obj = (snd[math.random(#snd)]) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) end
вылет:
Code
attempt to call method 'play_no_feedback' (a nil value)
ins33, а заглянуть в функцию get_safe_sound_object в файле xr_sound.script не появлялось желания? Функция принимает один параметр. Возвращает уже готовый объект класса sound_object, т.е. его нужно просто запустить. Ты знаешь как вообще делать рандомную выборку из таблицы? Что такое параметры функции? Advisor890, а что ж тут дробить то? Из вопросов я вижу, что ты не очень понимаешь логику. Очень рекомендую прочитать статьи на Wiki. Полностью. И не один раз. Даже если не понятно - всё равно читай. Сейчас не поймёшь - поймёшь, через некоторое время. Я так однажды и поступил, теперь ни каких проблем со схемами, разве что с внутренней их структурой в скриптах. В качестве подсказки... В примере выше, doc1_walk_2 - это не точка.
ins33, вот несколько ссылок на наиболее лёгкий для понимания материал: 1. >>ClicK Me<< 2. >>ClicK Me<< 3. >>ClicK Me<< По сути - это одно и тоже, но где-то можно понять то, чего не получилось осмыслить по другой ссылке. Читать всё не нужно. Остановить там, где перестанет быть понятным. Вернись обратно и вновь прочитай до этого места. Так по степенно и будешь двигаться вниз...
Сообщение отредактировал ColR_iT - Понедельник, 17.12.2012, 00:53
Вот урок по нему делал квест на убийство, квест берется, но подробности в ПДА не обозначаются, после убийства сталкера ничего не происходит в чем проблема может быть? все инфопоршни проверил раз 10
Добавлено (17.12.2012, 07:33) --------------------------------------------- ссылка создал квест, берется у сталкера, но при убийстве ничего не происходит( и в ПДА описания тоже нет( в чем беда
Сообщение отредактировал DarkFace - Понедельник, 17.12.2012, 03:28
Uyman358, Какая задача таймера, предусмотрен вариант перезагрузки с сейва посреди таймера или переход на другую локу? От этого зависит таймар. И плюс к этому 3 мин реального времени абстрактное понятие в игре, так-как в зависимости от машины оно будет колебаться до 1.5 раз!
НПС уходит в офлайн, врубается таймер(через инфопоршень), после прохода этих самых трёх минут, врубается другой инфопоршень, тем самым выводя НПС обратно в онлайн.
local tim local timer_t_1 local timer_ts_1 function timer_doc_start_1() -- Запускаем из диалога if has_alife_info("поршень_1") then -- поршень установки таймера. даёт доктор в начале кв.. tim = 60*1000 -- (1 мин. = 60000) (180*1000=30 мин игр вр.)1200000-20мин игр времени end timer_t_1 = (game.time() + tim) -- присвоение значения переменной (во сколько разбудит) db.actor:disable_info_portion("поршень_1") -- отключение условия присвоения значения, чтобы значение было присвоено только один раз db.actor:give_info_portion("поршень_2") -- даём поршень будильника end
function zabolel_1() -- функция для bind_stalker if has_alife_info("поршень_2") then -- если будильник ещё не сработал timer_ts_1 = timer_t_1 -- вспоминаем во сколько встаём if timer_ts_1 and has_alife_info("поршень_2") then -- если ещё не проснулись if timer_ts_1 <= game.time() then -- и пора вставать db.actor:disable_info_portion("поршень__2") -- выключаем таймер (затем действие) Действие. end end end end
Но при перезагрузке он выключится. С временем поэксперементируй.
<string id="kil_wolf"> <text>Убить Волка</text> </string> <string id="kil_wolf_0"> <text>Сафрон, нет для меня работенки?</text> </string> <string id="kil_wolf_1"> <text>Есть тут одно дельце, сталкера надо одного пришить?!</text> </string> <string id="kil_wolf_2"> <text>О это по нашему, кого и когда?</text> </string> <string id="kil_wolf_3"> <text>Волка знаешь? так вот, он доигрался, тут недавно наёмники в деревню приходили что бы под контроль взять её, но он позвал своих парней, и помешал этому. Сам понимаешь наёмники этого не прощают. Так возьмешься?</text> </string> <string id="kil_wolf_4"> <text>Да конечно!</text> </string> <string id="kil_wolf_5"> <text>Не Сафрон не могу!</text> </string> <string id="kil_wolf_completed_0"> <text>Все его больше нет.</text> </string> <string id="kil_wolf_completed_1"> <text>Молодец, держи заслуженное.</text> </string> <string id="kil_wolf_completed_2"> <text>До встречи.</text> </string> <string id="text_kil_wolf_kvest"> <text>нужно найти и убить сталкера по прозвищу Волк.</text> </string> </string_table>
new_script
--задание от Сафрона-- function money_give_safron(first_speaker, second_speaker) dialogs.relocate_money(first_speaker, 7000, "in") end
и в alife_l01_escape.lth логики у волка не было добавил вот это