В данной теме вы можете задавать любые вопросы касательно 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 по основным вопросам моддинга - обращаемся в ЛС.
Streels, опять про море... level.add_call(test1, test2) При верном условии в функции test1, сработает функция test2 db.actor.health = -0.01 -0.01 - можно не заметить, лучше -0.05(как хочешь) local time = time_global() У меня не срабатывает присвоение(возможно,кривые руки).Поэтому пишу так:
local t = 0 local t2 = 0 function test() if t < time_global() then t = time_global() + 10000 t2 = time_global() + 15000 level.add_call(test1, test2) end end
function test1() return time_global() > t2 end
function test2() db.actor.health = -0.05 end
t = time_global() + 10000 Вместо 10000,как я понял,любая цифра, не больше, чем в t2.
Сообщение отредактировал Arist - Четверг, 01.05.2014, 20:19
SG, Это очень великий и очень важный процесс, он настолько сложен, что мне надо все расписать по пунктам:
1. Помолитесь великому Ктулху 2. Перед началом перекреститесь. 3. Нажмите на properties 4. В Level path напишите какой-то бред - это будет названием уровня 5. Нажимаем Compilers>Make Game/Details/HOM/SOM/AI 6. Если в Make Game вылетело - материтесь помолитесь, и идите исправлять ошибки. 7. Повторяем пункт 5. 8. Жмем Build 9. Вылетело с ошибкой? Повторяем пункт 6. 10. Прошло успешно? Закрываем SDK, открываем xrLC блокнотом, вместо %1 пишем название уровня. 11. Нажимаем на батник и ждем 1-24 часа 12. Вылетело? Это норма. 13. Прошло успешно? Вы бесподобны. Уровень скомпилрован.
Сообщение отредактировал Karma - Четверг, 01.05.2014, 21:02
Люди ,как мне убрать непися?У меня не работают обе функции:
saxar, у тебя в первой функции две ошибки. Постарайся сам их увидеть. Для работы второй функции открой файл _g.script и пойми, что передаётся в качестве аргумента в функцию get_story_object_id Посмотри, есть ли этот аргумент в секции НПС.
makdm, так ,на счет ошибки ,можно поподробней пожалуйста У меня эта функция когда-то работала очень хорошо ,но это было давно.А так я не особо разбираюсь в скриптах...
Добавлено (01.05.2014, 23:18) --------------------------------------------- makdm, и что означает:
obj = alife():object(id)--вот здесь
Добавлено (01.05.2014, 23:19) --------------------------------------------- Вот сам урок ,видимо украденный у кого-то
Цитата
Убираем персонажа Способ №1 function del_nik() local id, obj, kto for id=0, 65535 do obj = alife():object(id)--вот здесь if obj then if IsStalker(obj) then kto = obj:section_name() if (kto == "nikitka") then alife():release(alife():object(id), true) end end end end news_manager.send_tip(db.actor,"Персонаж удален",0,mutant_hunter,10000,nil,"Тест инфо") end Способ №2 local npc_id = get_story_object_id("nikitka") if npc_id ~= nil then alife():release(alife():object(npc_id), true) end
Сообщение отредактировал saxar - Четверг, 01.05.2014, 23:16
Способ №2 local npc_id = get_story_object_id("nikitka") if npc_id ~= nil then alife():release(alife():object(npc_id), true) end
Уж больно она похожа на function remove_npc(actor, npc, p) П.С. Он судя по всему вызывает её не из логики. Хотя и в ней эти ф-ии будут работать, только надо прописать, что передаётся, к примеру: (p[1])
function remove_npc(actor, npc, p) local npc_id = get_story_object_id("nikitka") if npc_id ~= nil then alife():release(alife():object(npc_id), true) end
НЕТ! Посмотри, как вызывается эта ф-ия. Смотри в логике. Или посети _g.script, как советовали выше.
Цитатаsaxar ()
Как хотя бы одну из них через скрипт вызвать?
Для начала, дать название ф-ии, определиться, что именно ты присваиваешь локальной переменной obj, и после then, произвести действие: alife():release(obj,true) Ты об этом "вызове" спрашивал?