В данной теме вы можете задавать любые вопросы касательно 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 по основным вопросам моддинга - обращаемся в ЛС.
Lex2013, скачал. Посмотрел. Да, заменяет. Переименуй *.ltx конфиг, например в w_bm16_full, затем открой его, и первую строку, секцию в квадратных [] скобках переименуй так же. Затем впиши свое оружие в weapons.ltx , на выходе получаем и обрез и ружье.
FantomICW, HellRatz, а сори. там все вещи(кроме бинокля ножа и детектора с пда) уходят другому сталкеру по сиду сопровождающаяся эффектом типо удар, темнота, потом все мутит, короч он вроде deadcity_wake.ppe называецо
МонолитИК, в папке config/gameplay ищеш файл с локацией на которой персонаж нужный тебе. например нужен бармен, открываеш character_desc_bar.xml, ищеш секцию бармена в этом файле и удали нужные строки <actor_dialog>тратататата</actor_dialog>
Всем доброго вечера. Интересует такой вопрос: Например, я хочу сделать, чтобы функцию можно было запускать через консольную команду, а уж саму команду привязать к кнопке в меню, чтобы можно было легко включить/выключить нужный параметр. Возможно ли как-то скриптом создать новую консольную команду к нужной функции, или можно только движком?
Платформа: ТЧ.
Сообщение отредактировал Streels - Четверг, 13.02.2014, 22:12
Может подойдёт: <action>escape_dialog.esc_mill_teleport</action> escape_dialog.script
local next_time = 0 local effects_time = 0 function esc_mill_teleport(npc, actor) local point = patrol("actor_mill_walk") local look = patrol("actor_mill_look") db.actor:set_actor_position(point:point(0)) local dir = look:point(0):sub(point:point(0)) db.actor:set_actor_direction(-dir:getH()) if next_time < time_global() then next_time = time_global() + 5000 effects_time = time_global() + 5000 level.add_call(time_on, time_off) level.add_pp_effector("agr_u_fade.ppe", 1875, true) local snd_obj = xr_sound.get_safe_sound_object([[affects\hit_fist]]) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) level.add_cam_effector("camera_effects\\fusker.anm", 999, false, "") level.add_cam_effector("camera_effects\\prison_1.anm", 2001, false, "") local snd_obj = xr_sound.get_safe_sound_object([[characters_voice\scenario\agroprom\mill_snd_pda]]) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) xr_effects.mill_items_teleport(actor) db.actor:give_info_portion("vp_elevator_enemy") end end
function time_on() return time_global() > effects_time end
function time_off() level.remove_pp_effector(1875) end
actor_mill_walk -- точка в all.spawn'e, где герой очухается actor_mill_look -- куда будет смотреть -- characters_voice\scenario\agroprom\mill_snd_pda -- путь к звуковому файлу свой
xr_effects.script
function mill_items_teleport(actor) inv_box_1 = level_object_by_sid(33) out_object = actor in_object = inv_box_1 actor:inventory_for_each(transfer_object_item) end
level_object_by_sid(33) -- стори_ид ящика, куда отправятся вещи героя.Помню, что срабатывало в xr_effects, а в простом файле не срабатывало. Попробуй.
db.actor:give_info_portion("vp_elevator_enemy") -- это инфопоршень для перехода в логике НПС, при получении которого, они меняют отношение к Актору.
Сообщение отредактировал Arist - Четверг, 13.02.2014, 22:18
Если точнее, то смс вообще не приходят, менял сид, приходили смска: "НЕКУДА СПАВНИТЬ. Либо нет такого ящика, либо он оффлайн!" Спавн, пользуясь этим кодом:
Код
local toz = alife():create("hunters_toz37", vector():set(), 0, 0, invBox:id()) if toz then news_manager.send_tip(db.actor, "СПАВН НЕ ПРОИЗОШЕЛ!", 0, "trader", 3000) return end
Молчит Т.Е. смс нге приходят. 3 варианта не было!
Sanjaaa, Помести все эти ф-ции в один скрипт. И попробуй запустить ф-ию kidok1, если будет вылет, надо разнести вызов функций ограбление вещей и денег в разные места.
function kidok1() -- ограбление вещей local inv_box_1 = level_object_by_sid(номер) -- сид рюкзака, кстати если задумаешся вернуть вещи диалом, то рюкзак хабар не вернёт out_object = db.actor in_object = inv_box_1 db.actor:inventory_for_each(transfer_object_items) this.virubaem() -- вроде позволит избежать конфликт ф-ий. this.money_out(t1,t2) -- вроде позволит избежать конфликт ф-ий. end
function transfer_object_items(item) -- исключения пропиши тут local sect = item:section() if sect == "вещь_1" or sect == "вещь_2" then return end out_object:transfer_item(item, in_object) end
function virubaem() -- Эффект вырубания. Можешь взять и другие. local actor = db.actor sound = sound_object("affects\\hit_fist") sound:play_at_pos(db.actor, vector():set(0,0,0), 0, sound_object.s2d) level.add_pp_effector ("fire_hit.ppe", 1234, false) level.add_pp_effector ("agr_u_fade.ppe", 1235, false) level.add_pp_effector ("duality_circle.ppe", 1236, false) actor.power = -1.0 end
function money_out(t1,t2) local npc=t1 if npc:id()==db.actor:id() then npc=t2 end this.relocate_moneys(npc,db.actor:money(),"out") end
function relocate_moneys(victim, num, type) if db.actor and victim then if type == "in" then db.actor:give_money(num) game_stats.money_quest_update (num) elseif type == "out" then db.actor:transfer_money(num, victim) game_stats.money_quest_update (-num) end --news_manager.relocate_money(db.actor, type, num) Расскоментируй, если нужна смска, типав тебя кинули на столько-то денег. end end
И главное, как ты планируешь запускать ограбление. Диалог или ...
Добавлено (13.02.2014, 23:18) --------------------------------------------- Заберёт все вещи и деньги, оставив на месте. Arist,
ЦитатаArist ()
Помню, что срабатывало в xr_effects, а в простом файле не срабатывало.
Можно использовать xr_logic.script от АМК, тогда вызывать ф-ию из логики, можно из любого скрипта.
ins33, я вот решил сначала попробовать вариант Arist, и там непонятно куда и как вставить actor_mill_walk -- точка в all.spawn'e, где герой очухается actor_mill_look -- куда будет смотреть
FantomICW, а для логики где стоит и куда смотрит можно использовать одинаковые координаты?
Добавлено (13.02.2014, 23:49) --------------------------------------------- Expression : fatal error Function : CScriptEngine::lua_error File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp Line : 73 Description : <no expression> Arguments : LUA error: ...adow of chernobyl\gamedata\scripts\xr_effects.script:31: attempt to index local 'actor' (a nil value)
при синхронизации схватил вылет. ругаецо на функцию Aristа
Код
function mill_items_teleport(actor) inv_box_1 = level_object_by_sid(33) out_object = actor in_object = inv_box_1 actor:inventory_for_each(transfer_object_item) end