В данной теме вы можете задавать любые вопросы касательно 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 по основным вопросам моддинга - обращаемся в ЛС.
TheVeteran, ну я не знаю, как перевести слово заменить с русского на русский. Берешь свой звук - прогоняешь через СДК с настройками родного звука, называешь его ТОЧНО ТАК ЖЕ как родной звук. 1.Если в моде есть папка со звуками шагов. Закидываешь в папку с родными звуками, соглашаешься на замену. 2. Если такой папки нет. Создаешь и кидаешь туда.
Всем доброго дня. Подскажите, как решить проблему? НПС движется в указанную точку, но как только он подходит к месту, где была перестрелка без его участия, поворачивает и бежит назад с оружием на изготовку. Отбежав метров на 15, снова поворачивает, идёт до вышеуказанного места и снова бежит назад... И так по кругу.
Сообщение отредактировал DеXter - Четверг, 29.10.2015, 16:00
Есть мод на Тени Чернобыля за авторством Stalk15,Mini Games Mod_v0.5. В нём есть окошко, куда вписываешь ставку. Если же окошко пустое, то происходит вылет:
if tonumber(text) > 5000 or tonumber(text) < 500 or db.actor:money() < tonumber(text) then level.start_stop_menu(mini_games.GameMessege("Мин - 500, макс - 5000. Измените ставку"), true) return false end
,чтобы проверял и пустое окно. Скрины с ЧН, но тот же вылет и в ТЧ.
stack traceback: c:\games\stalker_zp\gamedata\scripts\xr_logic.script:669: in function 'try_switch_to_another_section' c:\games\stalker_zp\gamedata\scripts\ph_idle.script:26: in function <c:\games\stalker_zp\gamedata\scripts\ph_idle.script:17> c:\games\stalker_zp\gamedata\scripts\xr_logic.script:297: in function 'issue_event' ...es\stalker_zp\gamedata\scripts\bind_physic_object.script:62: in function <...es\stalker_zp\gamedata\scripts\bind_physic_object.script:46> [C]: in function 'on_door_is_open' c:\games\stalker_zp\gamedata\scripts\ph_door.script:99: in function <c:\games\stalker_zp\gamedata\scripts\ph_door.script:91>
Теперь вопросец: схема 'patrol' самая нестабильная схема
интересует конкретно фрагмент
Код
function PatrolManager:reset_positions() local form_ = formations[self.formation] local index = 1 for key, data in pairs(self.npc_list) do [b] --установим командора, если это еще не сделано if self.commander_id == -1 and index == 1 then self.commander_id = data.soldier:id () end[/b] -- пересчитаем позиции if self.commander_id ~= self.npc_list[key].soldier:id () then ----printf("key[%s] index[%s]", tostring(key), tostring(index)) self.npc_list[key].dir = form_[index].dir self.npc_list[key].dist = form_[index].dist self.npc_list[key].vertex_id = -1 self.npc_list[key].accepted = true
index = index + 1 end end end
Кажется что-то здесь не то я выделил жирным... Нужно вообще всё это дело переделать.
Может кто-то уже сталкивался/смотрел/переделывал/исправлял под/для себя?
if tonumber(text) == nil then level.start_stop_menu(mini_games.GameMessege("Минимальная ставка - 500, максимальная - 5000.", "Не корретная ставка или у Вас нет таких денег!"), true) return false end if tonumber(text) > 5000 or tonumber(text) < 500 or db.actor:money() < tonumber(text) then level.start_stop_menu(mini_games.GameMessege("Минимальная ставка - 500, максимальная - 5000.", "Не корретная ставка или у Вас нет таких денег!"), true) return false end
denis2000, спасибо! Вроде вылета нет! По-моему, я делал этот код наоборот:
Код
if tonumber(text) > 5000 or tonumber(text) < 500 or db.actor:money() < tonumber(text) then level.start_stop_menu(mini_games.GameMessege("Минимальная ставка - 500, максимальная - 5000.", "Не корретная ставка или у Вас нет таких денег!"), true) return false end if tonumber(text) == nil then level.start_stop_menu(mini_games.GameMessege("Минимальная ставка - 500, максимальная - 5000.", "Не корретная ставка или у Вас нет таких денег!"), true) return false end
и был вылет. Сейчас ещё вопрос по окнам, точнее, по снятию координат. Минут через пять сформулирую.
Добавлено (30.10.2015, 13:13) --------------------------------------------- Вопрос по расположению окна на экране и надписей на нём. Вроде бы неоднократно обсуждалось и надо просто поискать. В общем, надо сдвинуть картинку и надписи на ней. А то пока вот так.
Добавлено (30.10.2015, 14:45) --------------------------------------------- Да. Вылета нет. Единственное - надписи. Местоположение и цвет поменять бы. А так, сам модуль работает в Чистом небе. Может кто будет ставить себе на Чистое небо, заодно и доделает. Скачать.
ЧН. Такое впечатление, что игра не воспринимает значения вероятности выпадения артов в death_items_by_communities ниже 0.01 (да, я считаю, что если хоть иногда в трупах выпадают арты - то это никак не портит "атмосферу" ЗО, а даже наоборот) - т.е. выставлял цифры в диапазоне 0.005 -0.009 - три локации или даже больше проходил - никакого эффекту ! (в death_manager.script заменить в item_by_community[v][id] = 100*tonumber(value) на 200 например - увеличивает выпадение всего хабара). Поставил цифру 2 для самых простых артов в death_items_count - в паре ящиков попались медуза и ещё что-то, всё (в трупах так ничего и нет, щас на Янтаре, мах вероятность 0.009) У кого какие мысли, предложения ?
_S_k_i_F_ Спасибо, попробую
Сообщение отредактировал igi_vlad - Пятница, 30.10.2015, 22:18
makdm, А что все ошибки вызывают вылет? Обычно бывает что функции тихо виснут, в следствии чего, получается разнообразный букет. Даже abort срабатывает 3 раза из 10 ((
Кстати ну тут вы правы у меня действительно была ошибка
local dir = commander:direction() --' Вот это строка
Ошибка attemp to index local commander a nil value
И по моим наблюдениям алгоритм действий удаление/получение командира происходит с ошибкой...
Такой вопрос Скрипты: Получил объект в игре. Аномалия. Как получить ее радиус и силу? И еще к этому же вопрос - есть секция аномалии "..._weak" и там указывается максимальная и минимальная сила. Я правильно понимаю что это и будет сила, которая у объекта. Вот про радиус я не вижу в конфигах ничего
Добавлено (31.10.2015, 18:49) --------------------------------------------- UPD вопрос про радиус снимается, нашел вроде
Новый вопрос Я пробегаю по объектам игры в цикле и в теле цикла спавню новый объект Вопрос - почему он не появляется в игре?
if xr_conditions.actor_in_zone(actor, npc, {"zat_a2_bochka_dla_vodi_restr"})
and db.actor:object("flyaga_pystay") then
dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "flyaga_pystay") and dialogs.relocate_item_section(second_speaker, "flyaga", "in") end
end
Должно провериться два условия - актор в зоне рестриктора, и есть ли к него предмет, тогда, если оба правильны, должны выполниться два действия - забрать предмет, и выдать другой. Скрипт размещен в xr_effects.script При НИ вылет с таким логом
Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ....e.r. - Зов Припяти\gamedata\scripts\xr_logic.script:648: attempt to index global 'xr_effects' (a nil value)
В чем ошибка? Если убрать скрипт из xr_effects и переместить в другой скриптовый файл, то при юзании туториала происходит безлоговый вылет. Вот на всяк случай сам тутор и логика рестриктора
Зараннее спасибо за помощь! Все, разобрался, надо было скрипт так написать, мож пригодится кому
function zat_a2_bochka_dla_vodi(actor, npc)
if xr_conditions.actor_in_zone(actor, npc, {"zat_a2_bochka_dla_vodi_restr"})
and db.actor:object("flyaga_pystay") then
remove_item(actor, npc, {"flyaga_pystay"}) give_actor(db.actor,nil,{"flyaga"}) end
end
Добавлено (01.11.2015, 11:45) --------------------------------------------- Скажите, а можно при отыгрывании туториала проиграть определенный звук? Если можно то как? И еще: можно в ЗП как в ТЧ спавнить левел чейнджеры при определенном условии? Зараннее спасибо!
Сообщение отредактировал _S_k_i_F_ - Воскресенье, 01.11.2015, 11:50