Перейти к контенту

[SoC] Ковыряемся в файлах


Рекомендуемые сообщения

@h0N0r 

а что значит

nonscript_usable?

Нигде не видел такой строчки.

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

Ссылка на комментарий

@imcrazyhoudini, nonscript_usable = true/false - возможность стандартных (нескриптовых) действий над объектом: взять объект в интерфейс, открыть инвентарь.

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

[logic]
active = ph_idle

[ph_idle]
on_info = {+dolgs_t_1} ph_idle2
nonscript_usable = true

[ph_idle2]
nonscript_usable = false

 

  • Спасибо 1
Ссылка на комментарий

При закладке нычки можно получить ссылку на объект рюкзака: что-нибудь вроде local ruck = alife():create(…), потом level.object_by_id(ruck.id) для клиентского объекта. Попробовать изменить подсказку и посмотреть, сохранится или нет.

 

Кастом-дату вроде бы через перезапись нетпакета можно менять.

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий
1 час назад, nik1967 сказал:

взять объект в интерфейс, открыть инвентарь.

А каким образом определяется что из этого конкретно сделать можно?

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

Ссылка на комментарий

Как добавить новые слоты в ОГСР движке? Их вообще можно добавить? Есть ли подробная информация? Пробовал варашить движок, захожу в игру и результат 0.

Изменено пользователем Colder
Ссылка на комментарий

@Colder external.ltx

; Включает слоты ножа, бинокля, шлема, биорадара, ПНВ, детектора артефактов, фонаря
ogse_new_slots = true

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

Ссылка на комментарий

Хочу использовать локации из мода Зона поражения новая эра, на ТЧ с OGSR движком. Такой вопрос, переносить нужно как написано в этой теме? https://www.amk-team.ru/forum/topic/13552-podklyuchenie-ranee-perenesennyh-lokaciy-v-sdk/

Ссылка на комментарий

Всем привет. Может, кто подскажет/покажет пример работы с callback'ом "on_before_use_item"? Может, у кого завалялось.

Ссылка на комментарий

@nik1967 Там все стандартно, так же как со всеми другими колбеками добавленными в правленных движках.

net_destroy

self.object:set_callback(callback.on_before_use_item, nil)

reinit

	self.object:set_callback(callback.on_before_use_item, self.Before_use_item, self)

сама обработка колбека

function actor_binder:Before_use_item(item)
	--- Перед использованием СЪЕДАЕМЫХ итемов.
	--- Сюда пишем свой код
end

На древнем-оригинальном движке ТЧ 1.0004 и прочих изделиях, основанных на нем, все это разумеется НЕ работает. Работает на современных движках вроде OGSR.

  • Спасибо 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий

Если кто-нибудь может подсказать, как называется текстура колючей проволоки? Например та, что на Кордоне окружает яму за бункером Сидоровича. Или которую по краям локаций можно увидеть.

Ссылка на комментарий

народ, кто может сказать в чём трабла может заключаться

 

поставил мод на обход аномалий ботами (адаптацию под 6 патч) в итоге ловлю вылет

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

[03/07/23 14:02:24]    FATAL ERROR
[03/07/23 14:02:24]     
[03/07/23 14:02:24]    [error]Expression    : fatal error
[03/07/23 14:02:24]    [error]Function      : CScriptEngine::lua_error
[03/07/23 14:02:24]    [error]File          : script_engine.cpp
[03/07/23 14:02:24]    [error]Line          : 73
[03/07/23 14:02:24]    [error]Description   : <no expression>
[03/07/23 14:02:24]    [error]Arguments     : LUA error: ...s.t.a.l.k.e.r\gamedata\scripts\anomaly_holder.script:124: bad argument #1 to 'pairs' (table expected, got nil)
[03/07/23 14:02:24]     
[03/07/23 14:02:24]    
[03/07/23 14:02:24]    stack trace:

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

for id,o in pairs(anom_list) do

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

local anom_list=nil
local cur_level=nil

local radius={
    zone_buzz=1,
    zone_buzz_weak=1,
    zone_buzz_average=1,
    zone_buzz_strong=2,
    zone_gravi_zone=7,
    zone_gravi_zone_weak=6,
    zone_gravi_zone_weak_noart=6,
    zone_gravi_zone_average=6,
    zone_gravi_zone_strong=6,
    zone_gravi_zone_killing=7,
    zone_mincer=7,
    zone_mincer_weak=7,
    zone_mincer_weak_noart=7,
    zone_mincer_average=7,
    zone_mincer_strong=7,
    zone_mosquito_bald=7,
    zone_mosquito_bald_weak=6,
    zone_mosquito_bald_weak_noart=7,
    zone_mosquito_bald_average=7,
    zone_mosquito_bald_strong=7,
    zone_mosquito_bald_strong_noart=7,
    zone_sarcofag=5,
    zone_witches_galantine=6,
    zone_witches_galantine_weak=6,
    zone_witches_galantine_average=6,
    zone_witches_galantine_strong=7,
    zone_zharka_static=5,
    zone_zharka_static_weak=5,
    zone_zharka_static_average=5,
    zone_zharka_static_strong=5,
    zone_mine_field=0,
    zone_death=2
  }

function get_radius_for_section(sect)
  if radius[sect] then
    return radius[sect]
  else
    mylog("cannot find radius for " .. sect)
    return 4
  end
end

function add_anomaly(id,cls,sect,rad)
  if anom_list==nil then
    anom_list={}
  end
  if cur_level~=level.name() then
    anom_list={}
    cur_level=level.name()
--    mylog("switching to level " .. tostring(cur_level) )
  end
--  mylog("adding " .. id .. " clsid " .. cls .. " " .. sect )
  anom_list[id]={pos=0,clsid=cls,radius=rad or get_radius_for_section(sect),section=sect}
end

function remove_anomaly(id)
  if anom_list then
    anom_list[id]=nil
  end
end


function enumerate_anoms()
  if cur_level~=level.name() then
    anom_list=nil
    cur_level=level.name()
  end
  if not anom_list then
    anom_list={}
    local cnt=0
--    mylog(clsid.zone_bfuzz_s .. " " .. 
--          clsid.zone_galant_s .. " " ..
--          clsid.zone_mbald_s .. " " ..
--          clsid.zone_mincer_s)
    for id=1,40000,1 do
      local obj=level.object_by_id(id)
      if obj then
        if obj:clsid()==clsid.zone_bfuzz_s or
            obj:clsid()==clsid.zone_galant_s or
            obj:clsid()==clsid.zone_mbald_s or
            obj:clsid()==clsid.zone_mincer_s then
          anom_list[id]={object=obj,pos=obj:position(),clsid=obj:clsid()}
          local pos=anom_list[id].pos
--          mylog("found " .. id .. " " .. obj:clsid() .. " at " .. pos.x .. ";" .. pos.y .. ";" .. pos.z )
          cnt=cnt+1
        else
--        mylog(obj:clsid())
        end
      end
    end
--    mylog("total " .. cnt)
    if cnt==0 then
      anom_list=nil
    end
  end
end

function get_nearest_anomaly(npc,dirp)
  local posn=npc:position()
  local dir
  local anomid=nil
  local mindist=10000000
  local pos1=nil
  local cls=0
  local cnt=0
  local anomdesc={}
  if dirp then
    dir=dirp
  else
    dir=npc:direction()
  end
  for id,o in pairs(anom_list) do
    if o then
      if o.pos==0 then
        local obj=level.object_by_id(id)
        if obj then
          o.pos=obj:position()
--          mylog("reposition " .. id .. " clsid " .. obj:clsid() ..  " at " .. o.pos.x .. ";" .. o.pos.y .. ";" .. o.pos.z )
        end
      end
      if o.pos~=0 then
        cnt=cnt+1
        local delta=vector():set(o.pos):sub(posn)
        local scalarmul=(delta.x*dir.x+delta.z*dir.z)/math.sqrt(delta.x*delta.x+delta.z*delta.z) 
    -- если скалярное произведения текущего направления движения NPC
    -- и относительного радиус вектора аномалии меньше 0, то NPC удаляется от аномалии
        if scalarmul>-0.4 then
          local dist=posn:distance_to(o.pos)-o.radius
--    if id>20000 then
--      mylog("get nearest " .. npc:name() .. " dist " .. dist)
--    end
          if dist<mindist then
            mindist=dist
            anomid=id
            pos1=o.pos
            cls=o.clsid
            anomdesc=o
          end
        end
      end
    end
  end
--  if anomid then
--    mylog("get nearest " .. anomid .. " dist " .. mindist)
--  end
  if anomid then
    return true,anomid,pos1,cls,mindist+anomdesc.radius,anomdesc.radius,anomdesc.section
  else
    return false
  end
end

Вылет происходил при подходе к базе, где кроме костров (вокруг которых сидят сталкеры), больше ничего нет

Лучше сделать мод с 0, чем пытаться залатать багованный.

DarkSnowder.gif

Ссылка на комментарий

Каким образом происходит спавн артефактов в начале игры?
artefact_spawn_idle    = 24  ;насколько часто спонить артефакты в офлайне, в часах
artefact_spawn_rnd    = 100  ;вероятность заспавнить артефакт в процентах.
min_artefact_count    = 0
max_artefact_count    = 1

В моём понимании если в artefact_spawn_rnd значении 100, то спавн должен быть 100%

min_artefact_count    = 0 - сколько аномалия может заспавнить артов минимально
max_artefact_count    = 1 - максимально естественно

Но почему при min_artefact_count = 0 и artefact_spawn_rnd    = 100 спавна артефактов в любом случае не будет?

А если:
min_artefact_count    = 1
max_artefact_count    = 1
artefact_spawn_rnd    = 0 


То артефакт будет в каждой аномалии.

Как это работает?

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

Ссылка на комментарий

@DarkSnowder , при считывании из табл. anom_list получаем недопустимый первый аргумент.

На первый-первый погляд ( ! ) что-то странное здесь:

function enumerate_anoms()
...
--* по идее же, перебираем в цикле игровые id, а что есть 40000 при этом? id же мах = 65535 ?
    for id=1,40000,1 do
...
end

 

 

Ссылка на комментарий

Всем привет. Господа, подскажите в ТЧ/ЧН/ЗП верна ли формула расчета кратности прицела? 60/ число Х = кратность. Если не верный, то какой верхний предел (самое маленькое приближение) для оптики?

И еще такой вопрос. Работает ли в Тенях функции на прицелах (если их туда прописать) scope_dynamic_zoom = on, scope_nightvision = scope_nightvision и scope_alive_detector = scope_detector

Ссылка на комментарий

@bsanek628 

 

Всё зависит от твоего угла обзора и худ интерфейса)

Лично у себя в игре всегда ставлю зоом фактор 73.3 у всего оружия(без оптики конечно)

Это значит нет ни приближения ни отдаления во время прицеливания.

И это при угле обзора в 55, и при худе 0.45

И если для снайперки выставить 73.3, то тоже не будет ни какого приближения и отдаления)

Угол обзора в 55 считаю идеальным. Если больше, то происходит искажение. Как камера рыбий глаз))) Как играют при 75, фиг его знает)))

 

И конечно же в ТЧ в чистой игре не будет то работать.

Ссылка на комментарий

@bsanek628 fov (конфиг) * кратность = 120.

Видимое приближение меньше на 20% (4x – 3,33x).

Изменено пользователем Norman Eisenherz
  • Полезно 1

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий

Понял, спасибо.

 

И еще такой вопрос. В дефолтных Тенях дамаг оружия с надетым глушителем завязан на silencer_hit_power? Или, как в случае без глушителя  также на hit_power?

Ссылка на комментарий

@bsanek628 

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

silencer_hit_power конечно.

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

Значит странный не вопрос, а ответ)))

 

Изменено пользователем alex5773
Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...