Jump to content

Recommended Posts

Интересует следующий вопрос: возможно ли реализовать проверку получения хита (тип fire_wound) актёром и/или НПС и деление полученого хита на коэффициент (ТЧ 1.0004, АМК-1.4.1). Необходимо для обхода damages.ltx при создании новых костюмов с разной пулестойкостью. В первую очередь возникает проблема именно в грамотном написании функции, иначе бы сам всё проверил.

Edited by mole venomous

Share this post


Link to post
Share on other sites

Буду разбираться с этим, спасибо за информацию. А вот что касается damages, это ведь только для НПС? И можно ли туда добавлять секции, которые будут работать. На практике пробовал и результата не увидел.

Share this post


Link to post
Share on other sites

Значит всё моя невнимательность... Сую голову глубоко и не вижу, что на поверхности.

Share this post


Link to post
Share on other sites

Господа модмейкеры, надеюсь на вашу помощь. После нескольких тщетных попыток всё же решил обратиться сюда. Вопрос в том, как определить тип патронов в стволе в текущий момент, для получения коэффициентов ттх. Всё это нужно для краткого инфо об оружии в виде сообщения. На всякий случай вот код, как его составил на данный момент, потребует ли он кардинальной правки?

------------------------------------------------------------------------------------------------------------------------
--" информация об оружии
------------------------------------------------------------------------------------------------------------------------
local time_update = 500
local time_add
local condition
local damage
local velocity
local dispersion
function weapon_info()
local time = time_global()
if time_add == nil then
time_add = time_global() + time_update
end
local active_slot = db.actor:active_item()
if active_slot and db.actor:active_slot()==1 then
if time > time_add then
time_add = time_global() + time_update
local sect=db.actor:item_in_slot(1):section()
local name = tostring(system_ini():r_string(sect,"inv_name_short"))
local a=tonumber(system_ini():r_string(sect,"hit_power"))
local b=tonumber(system_ini():r_string(sect,"bullet_speed"))
local c=tonumber(system_ini():r_string(sect,"fire_dispersion_base"))
local d=tonumber(system_ini():r_string(sect,"fire_dispersion_condition_factor"))
damage=a*100
velocity=b
condition=db.actor:item_in_slot(1):condition()
dispersion=(c*100)*(1+(d*(1-condition)))
local text = "\\n%c[0,0,255,255]Текущее оружие: \\n%c[255,160,160,160]"..game.translate_string(tostring(name)).."\\n%c[255,1,255,1]повреждение = "..game.translate_string(tostring(damage)).."\\n%c[255,1,255,1]скорость пули = "..game.translate_string(tostring(velocity)).."\\n%c[255,1,255,1]кучность = "..game.translate_string(tostring(dispersion)).."\\n%c[255,1,255,1]состояние = "..game.translate_string(tostring(condition))
db.actor:give_game_news(text,"ui\\ui_IconsTotalKrot",Frect():set(0,48,83,47),50,10000)
end
time_add = nil
end
if active_slot and db.actor:active_slot()==2 then
if time > time_add then
time_add = time_global() + time_update
local sect=db.actor:item_in_slot(2):section()
local name = tostring(system_ini():r_string(sect,"inv_name_short"))
local a=tonumber(system_ini():r_string(sect,"hit_power"))
local b=tonumber(system_ini():r_string(sect,"bullet_speed"))
local c=tonumber(system_ini():r_string(sect,"fire_dispersion_base"))
local d=tonumber(system_ini():r_string(sect,"fire_dispersion_condition_factor"))
damage=a*100
velocity=b
condition=db.actor:item_in_slot(2):condition()
dispersion=(c*100)*(1+(d*(1-condition)))
local text = "\\n%c[0,0,255,255]Текущее оружие: \\n%c[255,160,160,160]"..game.translate_string(tostring(name)).."\\n%c[255,1,255,1]повреждение = "..game.translate_string(tostring(damage)).."\\n%c[255,1,255,1]скорость пули = "..game.translate_string(tostring(velocity)).."\\n%c[255,1,255,1]кучность = "..game.translate_string(tostring(dispersion)).."\\n%c[255,1,255,1]состояние = "..game.translate_string(tostring(condition))
db.actor:give_game_news(text,"ui\\ui_IconsTotalKrot",Frect():set(0,0,83,47),50,10000)
end
time_add = nil
end
end

 

Share this post


Link to post
Share on other sites

Вопрос такой - существует ли код для определения типа патронов, заряженных в оружии? Если да, неплохо бы на него глянуть.

Share this post


Link to post
Share on other sites

Не, народ не обленился. Исправно и стабильно ищет выход из сложившейся непростой ситуации. Пытался я "поймать" ammo_type сам, защёл в тупик и только тогда обратился за советом. Однако же, спасибо.

  • Согласен 1

Share this post


Link to post
Share on other sites
В 07.09.2017 в 11:46, _Sk8_AsTeR_ сказал:

как заставить НПС съесть водку

Думаю, тут надо ковырять логику НПС, где через условия заставлять его проигрывать нужные анимации по порядку. В итоге, когда НПС очнётся, маленько хитовать его, как бы похмелье.

Share this post


Link to post
Share on other sites

Вот и я тут с вопросами... Возможно ли задать предмету (в частности оружию) состояние, заспавнивая его из инвентаря (путём use_object)?

Share this post


Link to post
Share on other sites
48 минут назад, Kirgudu сказал:

Странный вопрос

С коллбеками и спауном всё понятно. Интересовало то, как задать итему состояние (нанести хит или указать кондишн) - собственно, сам код, как это сделать любым доступным способом. Вроде того, как мы задаём некоторые пар-тры НПС, не прибегая к all.spawn. Теперь всё ясно, спасибо.

Share this post


Link to post
Share on other sites

Всем предновогодний привет. Уже давно собираю "солянку под себя", изначально на основе АМК 1.41. Уже сделано достаточно много, но совсем недавно заметил проблему. После сейв-лоада рандомно появляются инвентарные ящики с визуалом динамита. Я их, конечно, удаляю через net_spawn, но появляются новые. Пересмотрел все свои правки и дополнения, но ничего не нашёл. И вот вопрос - это проблема игры (4 и 6 патч), самого АМК или же частный случай? Может, кто сталкивался.

Share this post


Link to post
Share on other sites
19 часов назад, naxac сказал:

для работы менеджера оружия

О как! Спасибо, не допёр бы. А больше ai additions не преподносит сюрпризов?

 

Share this post


Link to post
Share on other sites

Использую лечение из DMX. Всё вроде бы хорошо, но вот заковыка. Если сразу не закрыть инвентарь после использования аптечки/еды, то оружие в руках уже не появится (придёться делать сейв/лоад). Может где то накосячил с адаптацией или в сборке Солянка + DMX такое бывает? Что бы не ломать голову, подумал, может кто подскажет код на закрытие инвентаря после использования конкретного предмета?

Share this post


Link to post
Share on other sites
14 часов назад, losiara сказал:

вылет безлоговый

Посмотреть последнее, что будет в логе, если принудительно его писать. Надо в файле _g.script поправить так:

Скрытый текст

rlog = 1
function printf(fmt,...)
    -- принудительная запись в лог, для выявления причин безлоговых вылетов 
    -- v.0.77 : добавлено условие rlog 
    if rlog == 1 then local con=get_console()con:execute(string_gsub(string_format(fmt,...)," ","_"))con:execute("flush") end
    local arg = {...}
    if (arg and arg[1] ~= nil) then    
        log(string_format(fmt,...))
    end
end 

Потом вернуть как было или выставить rlog = 0

Share this post


Link to post
Share on other sites
9 часов назад, DoberBull сказал:

Помогите пж с распаковкой ресурсов ОП-2.1

Ты сталкер или где? Кто ищет выход за счёт других?

  • Like 2
  • Confused 1

Share this post


Link to post
Share on other sites

Вопрос, скорее всего нубовский, т.к. только недавно обратил внимание на проблему. Однако, у меня одного исчезают артефакты, рождённые "электрой"? Пропадают даже без сейв/лоада, при удалении от них на определённую дистанцию. Для спавна артов использую скрипт art_mgr (Artefact Respawn Script 1.01 by kstn). Если это проблема ПЫС, сорри за невнимательность. 

Share this post


Link to post
Share on other sites

Вопрос относительно блокировки доступа к инвентарю. Даже целых три. Весьма понравились идеи из ОП-2.1 и НА-6, где нельзя открыть инвентарь в движении (вернее, ГГ остановится) и при перезарядке оружия. Кроме того, пытался реализовать автозакрытие инвентаря при поедании медикаментов/еды (с блокировкой доступа до истечения времени использования), но ничего не вышло. Если есть подобные методы, скриптово реализуемые, буду признателен.

Share this post


Link to post
Share on other sites
6 часов назад, Norman Eisenherz сказал:

attempt to concatenate field '?'

naxac дело говорит, я ловил такую дрянь, в другой ситуации. Тогда у меня нет-пакет портился из-за негодной адаптации, а я то думал, что там с загрузкой моего difficulty...

Share this post


Link to post
Share on other sites
В 05.08.2019 в 11:24, _Sk8_AsTeR_ сказал:

где в солянке рыться

Тогда берём araxis и сравниваем файлы оригинальной соли и свои. Для начала, файлы со скриптами сна .

 

Share this post


Link to post
Share on other sites

Всем добрый день. Вопрос по restriction_stock. Возможно ли к фиксированной InvMax добавлять числовые значения, полученные из функции через массив. Т.е имеем функцию проверки, одет ли костюм и если да, то какой. Отсюда находим кол-во дополнительного места для рюкзака и прибавляем к InvMax. Или же нужно оперировать в самой функции restriction_of_stock(ItemObj,Fix)?(Где я и застрял, т.к. при каждом вызове функции InvMax постоянно увеличивается). Моих знаний здесь не хватает... 

Share this post


Link to post
Share on other sites

Добрый вечер. Подскажет ли кто-нибудь, как скриптово принудительно остановить перезарядку оружия у ГГ?

Share this post


Link to post
Share on other sites

  • Recently Browsing   0 members

    No registered users viewing this page.

AMK-Team.ru

×
×
  • Create New...