Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском по разделу, ответ на него, вероятно, уже есть.
Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
Благодарность выражаем в личке или же ставим плюсик в историю репутации. Подобные посты будут удаляться.
а если я запакую свои правки в такиеже название и закину к игре но там получится в моих файлах нет всех файлов которые есть в запакованом файле .xdb, оно там себе заменится или заменит например мой не полный configs.xdb1 файл закинуть в игру где есть полный configs.xdb1, то все будет в плрядке или... нужно розпаковать полный configs.xdb1 заменить моими файлами и обратно запаковать !?
KOLOMBO13, блин, ну ты выдал, роди заново мысль, ничего не понятно, распаковывай конфиги-правь (параллельно создав геймдату)-копируешь правленные файлы в геймдату-конец. Так в любом моде (если в моде, конечно, приоритет чтения геймдату поверх xdb. файлов)
Сообщение отредактировал Catalyst - Среда, 22.04.2020, 01:59
Почему когда я подключаю логику со схемой companion дядьке Яру, он атакует врагов как положено, а его вообще все игнорируют... Может схема косячная? Вот его "новая" логика:
[logic@jup_b19_freedom_yar] active = animpoint@start suitable = {=check_npc_name(jup_b19_freedom_yar)} prior = 200 post_combat_time = 5,5 on_death = death
И да, в каких модах эта самая схема подправлена для ЗП, чтобы компаньон бросал перестрелки и бежал к ГГ когда тот убежит слишком далеко?
Или желательно чтобы телепортировался... есть функция которая создает фейкового НПС рядом с ГГ а оригинала удаляет если я правильно понял, но мне нужно чтобы создавало оригинала (если юзать через xr_effects и параметром =dist_to_actor_ge чтобы телепортировать НПС). Потому-что когда использую данную функцию - НПС телепортируется к ГГ, но он просто начинает бродить по Зоне тобишь переходит в непонятную логику. P.S функция не моя.
function vanish(actor, npc)
alife():release(alife():object(npc:id()), true)
end
function offline(actor, npc) if npc == nil or npc:alive () == false then return end local sim = alife () if sim ~= nil then sim:set_switch_online (npc:id (), false) sim:set_switch_offline (npc:id (), true) end end
local allow_magic = true
function функция создания НПС которая юзается из xr_effects(actor, npc)
if allow_magic then
alife():release(alife():object(npc:id()), true)
local test = math.random(1,1) local myposition = db.actor:position() local x = math.random(1,2) local z = math.random(1,2) local pos = vector():set( myposition.x + x, myposition.y + 1, myposition.z + z )
if test == 1 then
for i = 1, 1 do alife():create("jup_b19_freedom_yar", pos, db.actor:level_vertex_id() , db.actor:game_vertex_id() ) end
end end
function create_fake_player_loot()
local test = math.random(1,1) local myposition = db.actor:position() local x = math.random(1,1) local z = math.random(1,1) local pos = vector():set( myposition.x, myposition.y + 3, myposition.z )
if test == 1 then
for i = 1, 1 do alife():create("medkit", pos, db.actor:level_vertex_id() , db.actor:game_vertex_id() ) alife():create("tushkano_normal", pos, db.actor:level_vertex_id() , db.actor:game_vertex_id() ) end
end
Сообщение отредактировал Paradox27kms - Среда, 22.04.2020, 15:23
Сделаем для ствола AUG дерево апгрейдов с одной веткой: 1 этап, 1 элемент ---> 2 этап, 1 элемент/2 этап, 2 элемент ---> 3 этап, 1 элемент
На первом этапе один апгрейд, на втором два взаимоисключающих апгрейда и на третьем опять один. В файле gamedata\configs\weapons\w_aug.ltx пропишем этапы первой ветки аплейтов:
Как и договаривались в первой колонке одна ячейка, во второй две, в трктьей опять одна. В секции ячейки (cell) x,y - координаты левого верхнего угла иконки, point_x, point_y - координаты точки-указателя места апгрейда на картинке с оружем.
В файл gamedata\configs\weapons\weapons.ltx добавим ссылку на файл описания апгрейдов AUG:
Код
#include "upgrades\w_walther_up.ltx" #include "upgrades\w_wincheaster1300_up.ltx" ;--Добавлен конфиг апгрейдов AUG #include "upgrades\w_aug_up.ltx"
В файл gamedata\configs\misc\inventory_upgrades.ltx добавим указатель на ствол:
Код
wpn_ak74u_snag wpn_fort_snag ;--Добавлена возможность апгрейдов AUG wpn_aug
В файл gamedata\configs\item_upgrades.ltx добавим ссылку на файл описания апгрейдов AUG:
Код
#include "weapons\upgrades\w_wincheaster1300_up.ltx" #include "weapons\upgrades\w_protecta_up.ltx" ;--Добавлен конфиг апгрейдов AUG #include "weapons\upgrades\w_aug_up.ltx"
Теперь займемся самим файлом gamedata\configs\weapons\upgrades\w_aug_up.ltx в котором будут содержаться описания апгрейдов оружия. Сначала пропишем этапы апгрейда с указанием содержащихся в них элементов апгрейда:
Код
[up_gr_firstab_aug] elements = up_firsta_aug
[up_gr_firstcd_aug] elements = up_firstc_aug, up_firstd_aug
[up_gr_firstef_aug] elements = up_firste_aug
Выше этих строк нужно прописать конфигурации самих элементов:
где, scheme_index - колонка, ячейка (счет с нуля!) для иконки в схеме апгрейда known - извстен или нет апгрейд механикам effects - следующий апгрейд в линейке апгрейдов (апгрейд может содержать несколько элементов) section - секция описывающяя изменения параметров оружия при установке апгрейда property - секция описывающая в файле upgrades_properties.ltx свойство апгрейда. precondition_functor - функция проверки возможности апгрейда (делает его механик, хватает ли денег, нет доп условий и т.п.) precondition_parameter - логическое выражение разрешающее апгрейд? (возможно параметр не анализируется) effect_functor - функция оплаты выполненного апгрейда prereq_functor - функция отображения нужных сдедств для апгрейда prereq_tooltip_functor - функция не используется (отображение нужного инструмента?) name - имя элемента апгрейда description - описание элемента апгрейда icon - иконка элемента апгрейда
Еще выше вставим секции параметров апгрейда:
Код
[up_sect_firsta_aug] ;Надежность(1)10% ;--------------- cost = 700 value = +10
;увеличение дисперсии в процентах при максимальном износе fire_dispersion_condition_factor = -1 ;15 ;шанс осечки при изношености больше чем misfireStartCondition misfire_start_prob = -0.0007 ;шанс осечки при изношености больше чем misfireEndCondition misfire_end_prob = -0.012 ;0.03.03
[up_sect_firstc_aug] ;Настильность(2)20% ;------------------ cost = 1050 value = +20
bullet_speed = +85 fire_dispersion_base = -0.02
[up_sect_firstd_aug] ;Скорострельность(2)15% ;---------------------- cost = 1050 value = +15
rpm = 100
[up_sect_firste_aug] ;Надежность(3)30% ;--------------- cost = 1300 value = +30
;увеличение дисперсии в процентах при максимальном износе fire_dispersion_condition_factor = -1 ;15 ;увеличение изношености при выстреле очередью condition_queue_shot_dec = -0.0003 ;0.0013 ;увеличение изношености при одиночном выстреле condition_shot_dec = -0.0003 ;0.0011 ;шанс осечки при изношености больше чем misfireStartCondition misfire_start_prob = -0.0025 ;шанс осечки при изношености больше чем misfireEndCondition misfire_end_prob = -0.025 ;0.03
В которых собственно указыватся их стоимость cost, влияние на интегрированный параметр (скорострельность, точность и т.п.) value и собственно сами параметры оружия которые меняються на указанную величину.
Теперь можно прописать возможность апгрейда механнику, на пример Кардану:
Код
;--Добавлена возможность апгрейдов AUG wpn_aug
...
[zat_a2_stalker_mechanic_upgr]
;--Кардан делает все апгрейды AUG up_sect_firsta_aug = true up_sect_firstc_aug = true up_sect_firstd_aug = true up_sect_firste_aug = true
Нужно зарегистрировать свое оружие в файле configs\mp\mp_ranks.ltx выбрав при этом секцию соответствующую классу оружия. Добавлять оружие нужно в параметр available_items, просто дописав его через запятую.
Почему когда я подключаю логику со схемой companion дядьке Яру, он атакует врагов как положено, а его вообще все игнорируют... Может схема косячная?
Вывод простой: в логике этих НПС запрещено атаковать Яра. От логики самого Яра это зависть никак не может.
ЦитатаParadox27kms ()
Потому-что когда использую данную функцию - НПС телепортируется к ГГ, но он просто начинает бродить по Зоне тобишь переходит в непонятную логику.
Все просто: вы не задали НПС никакой логики - значит Доби свободен.
Чтобы подобный НПС ходил свами по всей локации и телепортировался к вам (вот нафига его удалять и спавнить заново?) нужно делать его с логикой через кастом дату, а уж в этой логике телепортировать его.
Логика спутников-компаньенов реализована полностью в SGM2.2, хотите посмотрите там (схема bodyguard). Самая примитивная функция телепорта НПС к ГГ:
Код
function npc_teleport_to_actor(actor,npc) npc:set_npc_position(actor:position()) end
Сообщение отредактировал denis2000 - Четверг, 23.04.2020, 09:10
Paradox27kms, квестовые НПС имеют стори_айди, симуляционные НПС не имеют. Скрипт xr_combat_ignore.script разрешает симуляционным НПС атаковать квестовых НПС только если дистанция между ними меньше 30 метров. Если дистанция больше, то враг игнорируется.
Сообщение отредактировал makdm - Четверг, 23.04.2020, 11:15