В данной теме вы можете задавать любые вопросы касательно 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 по основным вопросам моддинга - обращаемся в ЛС.
ins33, естественно она не работает в sr_idle. Можно ведь глянуть на Wiki, там есть всё за редким-редким исключением. Сигнал sound_end работает только в схемах sr_sound_act, sr_sound и ph_sound.
--\\ Проверяем нужно ли покурить. Вызывается каждые 6 игровых минут function test_for_need_kur() amk.save_variable("kur",amk.load_variable("kur",0)+1) amk.g_start_timer("kur",0,0,6) kur_reduce_health() end
--\\ Уменьшение здоровья, если долго не курил function kur_reduce_health() local tmp = amk.load_variable("kur",0) if tmp > 150 then if db.actor.health > 0.15 then db.actor.power = - 1.3 end if not snd:playing() then snd:play_at_pos(db.actor, vector():set(0,0,0), 0, sound_object.s2d) end end end
--\\ Курение function kur_item(oid, time) if alife():object(oid)==nil then local tmp = amk.load_variable("kur",0) - time*10 if tmp < 0 then tmp = 0 end amk.save_variable("kur", tmp) kur_reduce_health() end end Ну и по месту в amk_mod и в amk вставил как в уроке.
function __do_timer_action(select_string,params_string) --[[ здесь описываем вызовы, оформялять в виде
if select_string=="название условия" then <вызов сторонних функций> -- можно передавать npc как параметр end
]] --user area if select_string=="show_news" then mod_call("show_news") end if select_string=="gg_need_sleep" then mod_call("test_for_need_sleep") end if select_string=="sleep_nrg" then mod_call("test_for_need_sleep_nrg",params_string) end --[[ if select_string=="sleep_med" then mod_call("test_for_need_sleep_med",params_string) end ]]-- if select_string=="kur" then kurevo.test_for_need_kur() end ---------------------------------вот это вписал
if select_string=="sleep_matras" then mod_call("test_for_need_sleep_matras",params_string) end if select_string=="sleep_tr_item" then mod_call("test_for_need_sleep_tr_item",params_string) end if select_string=="sleep_notebook" then mod_call("test_for_need_sleep_notebook",params_string) end if select_string=="block_sleep_menu" then save_variable("block_sleep_menu",0) end if select_string=="radar_fix" then mod_call("radar_fix") end if select_string=="af_transform" then mod_call("af_transform_end",unpack_array_from_string(params_string)) end if select_string=="amk_freeplay" then if amk.load_variable("freeplay",0)==1 and level.name()=="l12_stancia_2" then xr_effects.game_credits() end end if select_string=="blowout" then mod_call("Blowout_pp",params_string) end if select_string=="test" then mod_call("Run_Blowout_pp") end if select_string=="blowout_ss" then mod_call("blowout_scary_sounds") end if select_string=="blow_shift" then mod_call("Run_Blowout_pp") end if select_string=="sleep_repbox" then mod_call("repair_weapon", params_string) end if select_string=="repbox_cond" then mod_call("after_repair_weapon", params_string) end if select_string=="collect_anomalies_info" then amk_anoms.collect_info() end if select_string=="news_check" then if (news_main and news_main.check_news) then news_main.check_news() end end
Сообщение отредактировал cxcxShaman - Четверг, 21.03.2013, 14:36
Привет! есть один вопросик по скриптам... На счет вызова сообщения. Мне нужно, что-бы при получении опр инфо поршня выдавалось сообщение 1 раз. Пытался сделать функцию... но словил вылет вот она:
function give_prov_mess() if not db.actor:has_info("test_1") if db.actor:has_info("give_mess") then db.actor:give_game_news("Неизвестно", "Грач это Проводник! Нужно встретится в подвале Гастронома", "ui_iconsTotal_lost_thing", 3000, 30000) db.actor:give_info_portion("test_1")--выдача инфопоршня end end
Но поскольку мои знания в скриптах равны 0, у меня ничего не получилось... Так как можно реализовать это? я убрал строчку if not db.actor:has_info("test_1") и функция работала.. я поставил её в update в stalker_binder... но после получения инфопоршня give_mess, это сообщение выдавалось бесконечно... Заранее спс!
и как можно запустить какую нибудь функцию через рестриктор %тут%... или там можно использовать функции заранее написанные в движке? ( ну или в др месте.. я незнаю просто )
Сообщение отредактировал FeLLoN - Четверг, 21.03.2013, 14:33
function give_prov_mess() if not db.actor:has_info("test_1") and db.actor:has_info("give_mess") then db.actor:give_game_news("Неизвестно", "Грач это Проводник! Нужно встретится в подвале Гастронома", "ui_iconsTotal_lost_thing", 3000, 30000) db.actor:give_info_portion("test_1")--выдача инфопоршня end end
После if then должен стоять end. Советую пользоваться редактором с поддержкой синтаксиса. Напримет notepad++
function имя_функции() news_manager.send_tip(db.actor, "%c[255,0,255,0]Неизвестно\\n%c[default]Грач это Проводник! Нужно встретится в подвале Гастронома.", 0, "ui_iconsTotal_lost_thing", 3000) end
Сообщение отредактировал ins33 - Четверг, 21.03.2013, 16:44