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

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

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

Нет, это будет замена начинки внутренней таблицы self.saved_obj, да еще и другим типом данных: в оригинале числа, замена на строки.

 

Поиграю в телепата: исходя из записи local obj = alife:object(k), таблица self.saved_obj хранит id объектов в ключах и true/false в значениях. Запись local obj = alife:object(k) дает серверный объект, для которого невозможно прочитать секцию – именно поэтому тебе уже кто-то подсказал использовать для сравнения class_id, в частности, clsid.stalker.

 

Полный список class_id: [lua_help.script] C++ class clsid. По сути, это просто номера: например, объект класса stalker имеет clsid = 32.

Проблема: классов object и destroyable_object в списке нет – возможно, имелся в виду класс obj_breakable (79) или obj_phys_destroyable (86).

 

Если задача в том, чтобы исключить удаление некоторых объектов по типу, код должен выглядеть примерно так:

Spoiler
local keep = {
	[32] = true,		-- clsid.stalker
	 = true,
	 = true,
		}

function arena_zone_binder:purge_items()
	
		if obj ~= nil then
			if not keep[ obj:clsid() ] then
				
				alife:release(obj, true)
			end
		end
	

 


Можно сверять и через ссылки на clsid:

if obj:class_id() ~= clsid.stalker and obj:class_id() ~= clsid… and … then (удалить)

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

Шпаргалка

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

@Norman Eisenherz 

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

local keep = {
    [32] = true,        -- clsid.stalker
    [79] = true,
    [86]= true,
        }

function arena_zone_binder:purge_items()
    local alife = alife()
    for k,v in pairs(self.saved_obj) do
        local obj = alife:object(k)
        if obj ~= nil then
            if not keep[ obj:clsid() ] then
            printf("release object %s, id %s", obj:name(), k)
            alife:release(obj, true)
            end
        end
    end
end


Не работает.

Для пояснения - у меня рядом стоят два сталкера, они не находятся в зоне чистки арены, но почему то их всё равно удаляет, а когда удаляет - вылетает игра с таким логом (когда НПС этих нет, то нет и вылета):
 

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

12.11.22 19:58:39.812] *********************************************************************************
[12.11.22 19:58:39.812] [print_output([CScriptEngine::lua_pcall_failed])] SCRIPT RUNTIME ERROR:
.... shadow of chernobymod\gamedata\scripts\xr_gulag.script:1235: attempt to index local 'obj' (a nil value)
stack traceback:
    [C]: in function '__index'
    .... shadow of chernobymod\gamedata\scripts\xr_gulag.script:1235: in function 'get_npc_gulag'
    .... shadow of chernobymod\gamedata\scripts\xr_logic.script:1405: in function 'save_logic_online'
    ...adow of chernobymod\gamedata\scripts\xr_motivator.script:131: in function <...adow of chernobymod\gamedata\scripts\xr_motivator.script:128>
[12.11.22 19:58:39.812] *********************************************************************************
[12.11.22 19:58:39.812] 
FATAL ERROR

[error]Expression    : FATAL ERROR
[error]Function      : CScriptEngine::lua_pcall_failed
[error]File          : D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\COMMON_AI\script_engine.cpp
[error]Line          : 46
[error]Description   : [CScriptEngine::lua_pcall_failed]: .... shadow of chernobymod\gamedata\scripts\xr_gulag.script:1235: attempt to index local 'obj' (a nil value)

[12.11.22 19:58:39.812] ***************************[ScriptCrashHandler]**********************************
[12.11.22 19:58:39.812] stack traceback:
    [C]: in function '__index'
    .... shadow of chernobymod\gamedata\scripts\xr_gulag.script:1235: in function 'get_npc_gulag'
    .... shadow of chernobymod\gamedata\scripts\xr_logic.script:1405: in function 'save_logic_online'
    ...adow of chernobymod\gamedata\scripts\xr_motivator.script:131: in function <...adow of chernobymod\gamedata\scripts\xr_motivator.script:128>
[12.11.22 19:58:39.812]     Locals: 
[12.11.22 19:58:39.812]      string (*temporary) : .... shadow of chernobymod\gamedata\scripts\xr_gulag.script:1235: attempt to index local 'obj' (a nil value)
[12.11.22 19:58:39.812]     End
[12.11.22 19:58:39.812]     Locals: 
[12.11.22 19:58:39.812]      nil obj : [not available]
[12.11.22 19:58:39.812]      userdata sim : (alife_simulator): 000005CDD9AC9600
[12.11.22 19:58:39.812]      function (*temporary) : [[function]]
[12.11.22 19:58:39.812]      number (*temporary) : 0.000000
[12.11.22 19:58:39.812]      nil (*temporary) : [not available]
[12.11.22 19:58:39.812]      function (*temporary) : [[function]]
[12.11.22 19:58:39.812]      function (*temporary) : [[function]]
[12.11.22 19:58:39.812]      number (*temporary) : 0.000000
[12.11.22 19:58:39.812]      string (*temporary) : attempt to index local 'obj' (a nil value)
[12.11.22 19:58:39.812]     End
[12.11.22 19:58:39.812]     Locals: 
[12.11.22 19:58:39.812]      userdata obj : (game_object): 000005CE46DED2E0
[12.11.22 19:58:39.812]      number npc_id : 2145.000000
[12.11.22 19:58:39.812]      Table: st
[12.11.22 19:58:39.812]              string st.gulag_name : 
[12.11.22 19:58:39.812]              Table: st.post_combat_idle
[12.11.22 19:58:39.812]                      userdata st.post_combat_idle.ini : (ini_file): 000005CE46B2CC80
[12.11.22 19:58:39.812]                      string st.post_combat_idle.section : post_combat_idle
[12.11.22 19:58:39.812]                      userdata st.post_combat_idle.npc : (game_object): 000005CE46DED2E0
[12.11.22 19:58:39.813]                      number st.post_combat_idle.timer : 67067.000000
[12.11.22 19:58:39.813]                      string st.post_combat_idle.scheme : post_combat_idle
[12.11.22 19:58:39.813]              Table: st.pstor
[12.11.22 19:58:39.813]                      string st.pstor.wounded_sound : nil
[12.11.22 19:58:39.813]                      boolean st.pstor.kn_spawn : true
[12.11.22 19:58:39.813]                      string st.pstor.wounded_fight : true
[12.11.22 19:58:39.813]                      number st.pstor.kw_type : 2.000000
[12.11.22 19:58:39.813]                      string st.pstor.wounded_state : nil
[12.11.22 19:58:39.813]                      number st.pstor.courage : 47.000000
[12.11.22 19:58:39.813]                      string st.pstor.wounded_victim : nil
[12.11.22 19:58:39.813]              string st.loaded_active_section : walker
[12.11.22 19:58:39.813]              Userdata: st.move_mgr
[12.11.22 19:58:39.813]                      number st.move_mgr.syn_signal_set_tm : 88988.000000
[12.11.22 19:58:39.813]                      number st.move_mgr.pt_wait_time : 5000.000000
[12.11.22 19:58:39.813]                      number st.move_mgr.run_until : 72067.000000
[12.11.22 19:58:39.813]                      string st.move_mgr.default_state_moving1 : patrol
[12.11.22 19:58:39.813]                      userdata st.move_mgr.patrol_walk : (patrol): 000005CE46EE4F10
[12.11.22 19:58:39.813]                      string st.move_mgr.cur_state_moving : patrol
[12.11.22 19:58:39.813]                      string st.move_mgr.path_walk : bar_arena_zritel1_walk
[12.11.22 19:58:39.813]                      number st.move_mgr.last_look_index : 0.000000
[12.11.22 19:58:39.813]                      string st.move_mgr.default_state_standing : guard
[12.11.22 19:58:39.813]                      boolean st.move_mgr.can_use_get_current_point_index : false
[12.11.22 19:58:39.813]                      userdata st.move_mgr.object : (game_object): 000005CE46DED2E0
[12.11.22 19:58:39.813]                      number st.move_mgr.last_index : 0.000000
[12.11.22 19:58:39.813]                      number st.move_mgr.keep_state_until : 67067.000000
[12.11.22 19:58:39.813]                      userdata st.move_mgr.patrol_look : (patrol): 000005CE46EE8FF0
[12.11.22 19:58:39.813]                      string st.move_mgr.default_state_moving2 : rush
[12.11.22 19:58:39.813]                      table st.move_mgr.path_walk_info : [...]
[12.11.22 19:58:39.813]                      table st.move_mgr.suggested_state : [...]
[12.11.22 19:58:39.813]                      number st.move_mgr.walk_until : 70067.000000
[12.11.22 19:58:39.813]                      string st.move_mgr.path_look : bar_arena_zritel1_look
[12.11.22 19:58:39.813]                      string st.move_mgr.cur_state_standing : sit_ass
[12.11.22 19:58:39.813]                      number st.move_mgr.state : 2.000000
[12.11.22 19:58:39.813]                      boolean st.move_mgr.at_terminal_waypoint_flag : true
[12.11.22 19:58:39.813]                      table st.move_mgr.path_look_info : [...]
[12.11.22 19:58:39.813]                      string st.move_mgr.default_state_moving3 : sprint
[12.11.22 19:58:39.813]              Table: st.rx_knife
[12.11.22 19:58:39.813]                      string st.rx_knife.scheme : rx_knife
[12.11.22 19:58:39.813]                      number st.rx_knife.delay : 96252.000000
[12.11.22 19:58:39.813]                      string st.rx_knife.section : rx_knife
[12.11.22 19:58:39.813]                      Userdata: st.rx_knife.eva
[12.11.22 19:58:39.813]                              boolean st.rx_knife.eva.cmhunt : true
[12.11.22 19:58:39.813]                              number st.rx_knife.eva.check_timer : 0.000000
[12.11.22 19:58:39.813]                              number st.rx_knife.eva.courage : 47.000000
[12.11.22 19:58:39.813]                              table st.rx_knife.eva.st : [...]
[12.11.22 19:58:39.813]                      number st.rx_knife.timer : 0.000000
[12.11.22 19:58:39.813]              Table: st.danger
[12.11.22 19:58:39.813]                      number st.danger.danger_inertion_time_grenade : 20000.000000
[12.11.22 19:58:39.813]                      number st.danger.ignore_distance_grenade : 225.000000
[12.11.22 19:58:39.813]                      number st.danger.danger_inertion_time_sound : 15000.000000
[12.11.22 19:58:39.813]                      number st.danger.ignore_distance_sound : 2500.000000
[12.11.22 19:58:39.813]                      number st.danger.danger_inertion_time_hit : 60000.000000
[12.11.22 19:58:39.813]                      number st.danger.danger_inertion_time_ricochet : 30000.000000
[12.11.22 19:58:39.813]                      number st.danger.danger_inertion_time_corpse : 10000.000000
[12.11.22 19:58:39.813]                      table st.danger.ignore_types : [...]
[12.11.22 19:58:39.813]                      string st.danger.scheme : danger
[12.11.22 19:58:39.813]                      string st.danger.section : danger
[12.11.22 19:58:39.813]                      number st.danger.ignore_distance_corpse : 100.000000
[12.11.22 19:58:39.813]                      number st.danger.ignore_distance_hit : 22500.000000
[12.11.22 19:58:39.813]                      number st.danger.ignore_distance : 22500.000000
[12.11.22 19:58:39.813]              Table: st.rx_ai
[12.11.22 19:58:39.813]                      number st.rx_ai.armor_check_update : 98988.000000
[12.11.22 19:58:39.813]                      number st.rx_ai.addons_somev : 90988.000000
[12.11.22 19:58:39.813]                      number st.rx_ai.planner_action_id : 3734.000000
[12.11.22 19:58:39.813]                      boolean st.rx_ai.is_trader : false
[12.11.22 19:58:39.813]                      userdata st.rx_ai.planner : (action_planner): 000005CE46E04580
[12.11.22 19:58:39.813]                      number st.rx_ai.addons_time : 188300.000000
[12.11.22 19:58:39.813]              string st.active_section : walker
[12.11.22 19:58:39.813]              Table: st.walker
[12.11.22 19:58:39.813]                      table st.walker.path_look_info : [...]
[12.11.22 19:58:39.813]                      table st.walker.signals : [...]
[12.11.22 19:58:39.813]                      table st.walker.logic : [...]
[12.11.22 19:58:39.813]                      table st.walker.path_walk_info : [...]
[12.11.22 19:58:39.813]                      table st.walker.suggested_state : [...]
[12.11.22 19:58:39.813]                      string st.walker.path_look : bar_arena_zritel1_look
[12.11.22 19:58:39.813]                      string st.walker.path_walk : bar_arena_zritel1_walk
[12.11.22 19:58:39.813]                      string st.walker.scheme : walker
[12.11.22 19:58:39.813]                      table st.walker.actions : [...]
[12.11.22 19:58:39.813]                      string st.walker.section : walker
[12.11.22 19:58:39.814]              Table: st.meet
[12.11.22 19:58:39.814]                      table st.meet.victim : [...]
[12.11.22 19:58:39.814]                      string st.meet.precond : visibility
[12.11.22 19:58:39.814]                      string st.meet.meet_section : nil
[12.11.22 19:58:39.814]                      table st.meet.victim_wpn : [...]
[12.11.22 19:58:39.814]                      table st.meet.meet_state_wpn : [...]
[12.11.22 19:58:39.814]                      table st.meet.zone : [...]
[12.11.22 19:58:39.814]                      string st.meet.scheme : meet
[12.11.22 19:58:39.814]                      table st.meet.meet_state : [...]
[12.11.22 19:58:39.814]                      table st.meet.syndata : [...]
[12.11.22 19:58:39.814]                      boolean st.meet.meet_set : true
[12.11.22 19:58:39.814]                      table st.meet.use : [...]
[12.11.22 19:58:39.814]                      string st.meet.abuse : true
[12.11.22 19:58:39.814]                      table st.meet.meet_dialog : [...]
[12.11.22 19:58:39.814]                      Userdata: st.meet.meet_manager
[12.11.22 19:58:39.814]                              boolean st.meet.meet_manager.disable_talk_weapon : false
[12.11.22 19:58:39.814]                              boolean st.meet.meet_manager.emerg_state : false
[12.11.22 19:58:39.814]                              string st.meet.meet_manager.sound : nil
[12.11.22 19:58:39.814]                              table st.meet.meet_manager.a : [...]
[12.11.22 19:58:39.814]                              string st.meet.meet_manager.state : nil
[12.11.22 19:58:39.814]                      string st.meet.init_meet : 
[12.11.22 19:58:39.814]                      table st.meet.use_wpn : [...]
[12.11.22 19:58:39.814]              Table: st.reload
[12.11.22 19:58:39.814]                      string st.reload.scheme : reload
[12.11.22 19:58:39.814]                      string st.reload.section : reload
[12.11.22 19:58:39.814]              Table: st.launch_grenade
[12.11.22 19:58:39.814]                      boolean st.launch_grenade.gl_ready : false
[12.11.22 19:58:39.814]                      boolean st.launch_grenade.can_fire : false
[12.11.22 19:58:39.814]                      number st.launch_grenade.check_time : 69164.000000
[12.11.22 19:58:39.814]                      string st.launch_grenade.scheme : launch_grenade
[12.11.22 19:58:39.814]                      table st.launch_grenade.rs : [...]
[12.11.22 19:58:39.814]                      string st.launch_grenade.section : launch_grenade
[12.11.22 19:58:39.814]                      string st.launch_grenade.squad : 5-0-0
[12.11.22 19:58:39.814]                      boolean st.launch_grenade.charged : true
[12.11.22 19:58:39.814]              Table: st.grenadier
[12.11.22 19:58:39.814]                      number st.grenadier.next_check_time : 112331.000000
[12.11.22 19:58:39.814]                      boolean st.grenadier.throwing : false
[12.11.22 19:58:39.814]                      number st.grenadier.rank : 0.273333
[12.11.22 19:58:39.814]                      table st.grenadier.sets : [...]
[12.11.22 19:58:39.814]                      string st.grenadier.scheme : grenadier
[12.11.22 19:58:39.814]                      boolean st.grenadier.throw_enabled : true
[12.11.22 19:58:39.814]                      boolean st.grenadier.evasion_enabled : true
[12.11.22 19:58:39.814]                      string st.grenadier.section : grenadier
[12.11.22 19:58:39.814]                      string st.grenadier.current_profile : stalker
[12.11.22 19:58:39.814]              Table: st.help_wounded
[12.11.22 19:58:39.814]                      string st.help_wounded.scheme : help_wounded
[12.11.22 19:58:39.814]                      number st.help_wounded.dtimer : 96761.000000
[12.11.22 19:58:39.814]                      boolean st.help_wounded.help_wounded_enabled : true
[12.11.22 19:58:39.814]                      string st.help_wounded.section : help_wounded
[12.11.22 19:58:39.814]              string st.section_logic : logic
[12.11.22 19:58:39.814]              string st.loaded_section_logic : logic
[12.11.22 19:58:39.814]              Table: st.rx_combat
[12.11.22 19:58:39.814]                      string st.rx_combat.scheme : rx_combat
[12.11.22 19:58:39.814]                      string st.rx_combat.section : rx_combat
[12.11.22 19:58:39.814]              string st.loaded_ini_filename : <customdata>
[12.11.22 19:58:39.814]              boolean st.danger_flag : false
[12.11.22 19:58:39.814]              Table: st.bandage
[12.11.22 19:58:39.814]                      table st.bandage.pr : [...]
[12.11.22 19:58:39.814]                      string st.bandage.scheme : bandage
[12.11.22 19:58:39.814]                      number st.bandage.spawn_time_m : 161434.000000
[12.11.22 19:58:39.814]                      number st.bandage.spawn_time_b : 89850.000000
[12.11.22 19:58:39.814]                      string st.bandage.section : bandage
[12.11.22 19:58:39.814]                      string st.bandage.current_profile : stalker
[12.11.22 19:58:39.814]              string st.active_scheme : walker
[12.11.22 19:58:39.814]              userdata st.activation_game_time : (CTime): 000005CE4241DB08
[12.11.22 19:58:39.814]              string st.ini_filename : <customdata>
[12.11.22 19:58:39.814]              Table: st.rx_ff
[12.11.22 19:58:39.814]                      string st.rx_ff.scheme : rx_ff
[12.11.22 19:58:39.814]                      string st.rx_ff.section : rx_ff
[12.11.22 19:58:39.814]              Table: st.corpse_detection
[12.11.22 19:58:39.814]                      number st.corpse_detection.dtimer : 99991.000000
[12.11.22 19:58:39.814]                      boolean st.corpse_detection.corpse_detection_enabled : true
[12.11.22 19:58:39.814]                      table st.corpse_detection.obj_stor : [...]
[12.11.22 19:58:39.814]                      string st.corpse_detection.scheme : corpse_detection
[12.11.22 19:58:39.814]                      string st.corpse_detection.section : corpse_detection
[12.11.22 19:58:39.814]                      table st.corpse_detection.pr : [...]
[12.11.22 19:58:39.814]              Table: st.combat_ignore
[12.11.22 19:58:39.815]                      boolean st.combat_ignore.enabled : true
[12.11.22 19:58:39.815]                      string st.combat_ignore.scheme : combat_ignore
[12.11.22 19:58:39.815]                      string st.combat_ignore.section : combat_ignore
[12.11.22 19:58:39.815]                      Userdata: st.combat_ignore.action
[12.11.22 19:58:39.815]                              table st.combat_ignore.action.st : [...]
[12.11.22 19:58:39.815]                      table st.combat_ignore.actions : [...]
[12.11.22 19:58:39.815]                      table st.combat_ignore.ignore : [...]
[12.11.22 19:58:39.815]              number st.stype : 0.000000
[12.11.22 19:58:39.815]              Table: st.abuse
[12.11.22 19:58:39.815]                      string st.abuse.section : logic
[12.11.22 19:58:39.815]                      string st.abuse.scheme : abuse
[12.11.22 19:58:39.815]                      Userdata: st.abuse.abuse_manager
[12.11.22 19:58:39.815]                              boolean st.abuse.abuse_manager.enable : true
[12.11.22 19:58:39.815]                              number st.abuse.abuse_manager.abuse_threshold : 5.000000
[12.11.22 19:58:39.815]                              number st.abuse.abuse_manager.last_update : 94420.000000
[12.11.22 19:58:39.815]                              number st.abuse.abuse_manager.abuse_value : 0.000000
[12.11.22 19:58:39.815]                              number st.abuse.abuse_manager.abuse_rate : 1.000000
[12.11.22 19:58:39.815]                              table st.abuse.abuse_manager.a : [...]
[12.11.22 19:58:39.815]              Userdata: st.state_mgr
[12.11.22 19:58:39.815]                      Userdata: st.state_mgr.animstate
[12.11.22 19:58:39.815]                              userdata st.state_mgr.animstate.npc : (game_object): 000005CE46DED2E0
[12.11.22 19:58:39.815]                              string st.state_mgr.animstate.target_state : sit_ass
[12.11.22 19:58:39.815]                              string st.state_mgr.animstate.current_state : busy
[12.11.22 19:58:39.815]                      userdata st.state_mgr.look_position : (___VECTOR): 000005CE42CF9090
[12.11.22 19:58:39.815]                      boolean st.state_mgr.alife : false
[12.11.22 19:58:39.815]                      string st.state_mgr.target_state : sit_ass
[12.11.22 19:58:39.815]                      userdata st.state_mgr.planner : (action_planner): 000005CE464FCC40
[12.11.22 19:58:39.815]                      table st.state_mgr.properties : [...]
[12.11.22 19:58:39.815]                      Userdata: st.state_mgr.animation
[12.11.22 19:58:39.815]                              table st.state_mgr.animation.states : [...]
[12.11.22 19:58:39.815]                              number st.state_mgr.animation.clb_cnt : 0.000000
[12.11.22 19:58:39.815]                              table st.state_mgr.animation.clb_settings : [...]
[12.11.22 19:58:39.815]                              boolean st.state_mgr.animation.is_called : false
[12.11.22 19:58:39.815]                      number st.state_mgr.mgr_action_id : 3734.000000
[12.11.22 19:58:39.815]                      number st.state_mgr.look_position_type : 2.000000
[12.11.22 19:58:39.815]                      boolean st.state_mgr.combat : false
[12.11.22 19:58:39.815]                      userdata st.state_mgr.mgr : (action_planner): 000005CE46E04580
[12.11.22 19:58:39.815]                      boolean st.state_mgr.look_object_type : true
[12.11.22 19:58:39.815]                      boolean st.state_mgr.point_obj_dir : true
[12.11.22 19:58:39.815]                      boolean st.state_mgr.reset_state : false
[12.11.22 19:58:39.815]                      number st.state_mgr.subanim : 0.000000
[12.11.22 19:58:39.815]                      table st.state_mgr.callback : [...]
[12.11.22 19:58:39.815]                      table st.state_mgr.operators : [...]
[12.11.22 19:58:39.815]                      table st.state_mgr.emerg : [...]
[12.11.22 19:58:39.815]              Table: st.overrides
[12.11.22 19:58:39.815]                      table st.overrides.combat_ignore : [...]
[12.11.22 19:58:39.815]                      boolean st.overrides.combat_ignore_keep_when_attacked : false
[12.11.22 19:58:39.815]                      boolean st.overrides.companion_enabled : false
[12.11.22 19:58:39.815]              Table: st.facer
[12.11.22 19:58:39.815]                      number st.facer.abtime : 96252.000000
[12.11.22 19:58:39.815]                      number st.facer.check_time : 0.000000
[12.11.22 19:58:39.815]                      string st.facer.scheme : facer
[12.11.22 19:58:39.815]                      string st.facer.section : facer
[12.11.22 19:58:39.815]              Table: st.followers
[12.11.22 19:58:39.815]              Table: st.wounded
[12.11.22 19:58:39.815]                      table st.wounded.hp_fight : [...]
[12.11.22 19:58:39.815]                      boolean st.wounded.wounded_set : true
[12.11.22 19:58:39.815]                      boolean st.wounded.default : true
[12.11.22 19:58:39.815]                      string st.wounded.wounded_section : <nil>
[12.11.22 19:58:39.815]                      string st.wounded.scheme : wounded
[12.11.22 19:58:39.815]                      string st.wounded.help_dialog : dm_help_wounded_medkit_dialog
[12.11.22 19:58:39.815]                      table st.wounded.hp_cover : [...]
[12.11.22 19:58:39.815]                      table st.wounded.hp_state : [...]
[12.11.22 19:58:39.815]                      boolean st.wounded.use_medkit : true
[12.11.22 19:58:39.815]                      table st.wounded.hp_state_see : [...]
[12.11.22 19:58:39.815]                      Userdata: st.wounded.wound_manager
[12.11.22 19:58:39.815]                              string st.wounded.wound_manager.victim : nil
[12.11.22 19:58:39.815]                              boolean st.wounded.wound_manager.can_use_medkit : false
[12.11.22 19:58:39.815]                              boolean st.wounded.wound_manager.cover : false
[12.11.22 19:58:39.815]                              string st.wounded.wound_manager.state : nil
[12.11.22 19:58:39.815]                              string st.wounded.wound_manager.fight : true
[12.11.22 19:58:39.815]                              table st.wounded.wound_manager.a : [...]
[12.11.22 19:58:39.815]                              string st.wounded.wound_manager.sound : nil
[12.11.22 19:58:39.815]                      table st.wounded.syndata : [...]
[12.11.22 19:58:39.815]                      table st.wounded.hp_victim : [...]
[12.11.22 19:58:39.815]                      table st.wounded.psy_state : [...]
[12.11.22 19:58:39.815]              Table: st.death
[12.11.22 19:58:39.815]                      table st.death.actions : [...]
[12.11.22 19:58:39.815]                      string st.death.scheme : death
[12.11.22 19:58:39.815]              number st.activation_time : -41452.000000
[12.11.22 19:58:39.815]              Table: st.kill_wounded
[12.11.22 19:58:39.816]                      string st.kill_wounded.scheme : kill_wounded
[12.11.22 19:58:39.816]                      string st.kill_wounded.section : kill_wounded
[12.11.22 19:58:39.816]              Table: st.heli_hunter
[12.11.22 19:58:39.816]                      number st.heli_hunter.attack_dist_sqr : 1000000.000000
[12.11.22 19:58:39.816]                      string st.heli_hunter.scheme : heli_hunter
[12.11.22 19:58:39.816]                      boolean st.heli_hunter.enabled : true
[12.11.22 19:58:39.816]                      number st.heli_hunter.attack_actor_sqr : 400.000000
[12.11.22 19:58:39.816]     End
[12.11.22 19:58:39.816]     Locals: 
[12.11.22 19:58:39.816]      Userdata: self
[12.11.22 19:58:39.816]              boolean self.loaded : true
[12.11.22 19:58:39.816]              boolean self.first_update : true
[12.11.22 19:58:39.816]              number self.npc_script_version : 7.000000
[12.11.22 19:58:39.816]              number self.last_update : 93918.000000
[12.11.22 19:58:39.816]              Table: self.st
[12.11.22 19:58:39.816]                      string self.st.gulag_name : 
[12.11.22 19:58:39.816]                      table self.st.post_combat_idle : [...]
[12.11.22 19:58:39.816]                      table self.st.pstor : [...]
[12.11.22 19:58:39.816]                      string self.st.loaded_active_section : walker
[12.11.22 19:58:39.816]                      Userdata: self.st.move_mgr
[12.11.22 19:58:39.816]                              number self.st.move_mgr.syn_signal_set_tm : 88988.000000
[12.11.22 19:58:39.816]                              number self.st.move_mgr.pt_wait_time : 5000.000000
[12.11.22 19:58:39.816]                              number self.st.move_mgr.run_until : 72067.000000
[12.11.22 19:58:39.816]                              string self.st.move_mgr.default_state_moving1 : patrol
[12.11.22 19:58:39.816]                              userdata self.st.move_mgr.patrol_walk : (patrol): 000005CE46EE4F10
[12.11.22 19:58:39.816]                              string self.st.move_mgr.cur_state_moving : patrol
[12.11.22 19:58:39.816]                              string self.st.move_mgr.path_walk : bar_arena_zritel1_walk
[12.11.22 19:58:39.816]                              number self.st.move_mgr.last_look_index : 0.000000
[12.11.22 19:58:39.816]                              string self.st.move_mgr.default_state_standing : guard
[12.11.22 19:58:39.816]                              boolean self.st.move_mgr.can_use_get_current_point_index : false
[12.11.22 19:58:39.816]                              userdata self.st.move_mgr.object : (game_object): 000005CE46DED2E0
[12.11.22 19:58:39.816]                              number self.st.move_mgr.last_index : 0.000000
[12.11.22 19:58:39.816]                              number self.st.move_mgr.keep_state_until : 67067.000000
[12.11.22 19:58:39.816]                              userdata self.st.move_mgr.patrol_look : (patrol): 000005CE46EE8FF0
[12.11.22 19:58:39.816]                              string self.st.move_mgr.default_state_moving2 : rush
[12.11.22 19:58:39.816]                              table self.st.move_mgr.path_walk_info : [...]
[12.11.22 19:58:39.816]                              table self.st.move_mgr.suggested_state : [...]
[12.11.22 19:58:39.816]                              number self.st.move_mgr.walk_until : 70067.000000
[12.11.22 19:58:39.816]                              string self.st.move_mgr.path_look : bar_arena_zritel1_look
[12.11.22 19:58:39.816]                              string self.st.move_mgr.cur_state_standing : sit_ass
[12.11.22 19:58:39.816]                              number self.st.move_mgr.state : 2.000000
[12.11.22 19:58:39.816]                              boolean self.st.move_mgr.at_terminal_waypoint_flag : true
[12.11.22 19:58:39.816]                              table self.st.move_mgr.path_look_info : [...]
[12.11.22 19:58:39.816]                              string self.st.move_mgr.default_state_moving3 : sprint
[12.11.22 19:58:39.816]                      table self.st.rx_knife : [...]
[12.11.22 19:58:39.816]                      table self.st.danger : [...]
[12.11.22 19:58:39.816]                      table self.st.rx_ai : [...]
[12.11.22 19:58:39.816]                      string self.st.active_section : walker
[12.11.22 19:58:39.816]                      table self.st.walker : [...]
[12.11.22 19:58:39.816]                      table self.st.meet : [...]
[12.11.22 19:58:39.816]                      table self.st.reload : [...]
[12.11.22 19:58:39.816]                      table self.st.launch_grenade : [...]
[12.11.22 19:58:39.816]                      table self.st.grenadier : [...]
[12.11.22 19:58:39.816]                      table self.st.help_wounded : [...]
[12.11.22 19:58:39.816]                      string self.st.section_logic : logic
[12.11.22 19:58:39.816]                      string self.st.loaded_section_logic : logic
[12.11.22 19:58:39.816]                      userdata self.st.ini : (ini_file): 000005CE46B2CC80
[12.11.22 19:58:39.816]                      table self.st.rx_combat : [...]
[12.11.22 19:58:39.816]                      string self.st.loaded_ini_filename : <customdata>
[12.11.22 19:58:39.816]                      boolean self.st.danger_flag : false
[12.11.22 19:58:39.816]                      table self.st.bandage : [...]
[12.11.22 19:58:39.816]                      string self.st.active_scheme : walker
[12.11.22 19:58:39.816]                      userdata self.st.activation_game_time : (CTime): 000005CE4241DB08
[12.11.22 19:58:39.816]                      string self.st.ini_filename : <customdata>
[12.11.22 19:58:39.816]                      table self.st.rx_ff : [...]
[12.11.22 19:58:39.816]                      table self.st.corpse_detection : [...]
[12.11.22 19:58:39.816]                      table self.st.combat_ignore : [...]
[12.11.22 19:58:39.816]                      number self.st.stype : 0.000000
[12.11.22 19:58:39.816]                      table self.st.abuse : [...]
[12.11.22 19:58:39.816]                      Userdata: self.st.state_mgr
[12.11.22 19:58:39.816]                              Userdata: self.st.state_mgr.animstate
[12.11.22 19:58:39.816]                                      userdata self.st.state_mgr.animstate.npc : (game_object): 000005CE46DED2E0
[12.11.22 19:58:39.816]                                      string self.st.state_mgr.animstate.target_state : sit_ass
[12.11.22 19:58:39.816]                                      string self.st.state_mgr.animstate.current_state : busy
[12.11.22 19:58:39.816]                              userdata self.st.state_mgr.look_position : (___VECTOR): 000005CE42CF9090
[12.11.22 19:58:39.816]                              boolean self.st.state_mgr.alife : false
[12.11.22 19:58:39.816]                              string self.st.state_mgr.target_state : sit_ass
[12.11.22 19:58:39.816]                              userdata self.st.state_mgr.planner : (action_planner): 000005CE464FCC40
[12.11.22 19:58:39.816]                              table self.st.state_mgr.properties : [...]
[12.11.22 19:58:39.816]                              Userdata: self.st.state_mgr.animation
[12.11.22 19:58:39.816]                                      table self.st.state_mgr.animation.states : [...]
[12.11.22 19:58:39.816]                                      number self.st.state_mgr.animation.clb_cnt : 0.000000
[12.11.22 19:58:39.816]                                      table self.st.state_mgr.animation.clb_settings : [...]
[12.11.22 19:58:39.817]                                      boolean self.st.state_mgr.animation.is_called : false
[12.11.22 19:58:39.817]                              number self.st.state_mgr.mgr_action_id : 3734.000000
[12.11.22 19:58:39.817]                              number self.st.state_mgr.look_position_type : 2.000000
[12.11.22 19:58:39.817]                              boolean self.st.state_mgr.combat : false
[12.11.22 19:58:39.817]                              userdata self.st.state_mgr.mgr : (action_planner): 000005CE46E04580
[12.11.22 19:58:39.817]                              boolean self.st.state_mgr.look_object_type : true
[12.11.22 19:58:39.817]                              boolean self.st.state_mgr.point_obj_dir : true
[12.11.22 19:58:39.817]                              boolean self.st.state_mgr.reset_state : false
[12.11.22 19:58:39.817]                              number self.st.state_mgr.subanim : 0.000000
[12.11.22 19:58:39.817]                              table self.st.state_mgr.callback : [...]
[12.11.22 19:58:39.817]                              table self.st.state_mgr.operators : [...]
[12.11.22 19:58:39.817]                              table self.st.state_mgr.emerg : [...]
[12.11.22 19:58:39.817]                      table self.st.overrides : [...]
[12.11.22 19:58:39.817]                      table self.st.facer : [...]
[12.11.22 19:58:39.817]                      table self.st.followers : [...]
[12.11.22 19:58:39.817]                      table self.st.wounded : [...]
[12.11.22 19:58:39.817]                      table self.st.death : [...]
[12.11.22 19:58:39.817]                      number self.st.activation_time : -41452.000000
[12.11.22 19:58:39.817]                      table self.st.kill_wounded : [...]
[12.11.22 19:58:39.817]                      table self.st.heli_hunter : [...]
[12.11.22 19:58:39.817]              boolean self.treasure_processed : false
[12.11.22 19:58:39.817]     End
[12.11.22 19:58:39.817] *********************************************************************************
[12.11.22 19:58:39.817] ********************************************************************************
[12.11.22 19:58:39.817] !![LogStackTrace] Thread: [UNKNOWN]
[12.11.22 19:58:42.163] !!stack trace:
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000013F4B6289], Fun: [BuildStackTrace()] + [41 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xrCore\stacktrace_collector.cpp-->144]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000013F4A1E9D], Fun: [LogStackTrace()] + [65 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xrCore\xrDebugNew.cpp-->74] + [10 byte(s)]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000013F4A2313], Fun: [xrDebug::backend()] + [599 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xrCore\xrDebugNew.cpp-->182] + [426 byte(s)]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000013F4A254D], Fun: [xrDebug::fatal()] + [117 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xrCore\xrDebugNew.cpp-->247]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000013F81AD25], Fun: [CScriptEngine::lua_pcall_failed()] + [121 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\COMMON_AI\script_engine.cpp-->47]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\LuaJIT.dll], AddrPC.Offset: [000007FEE7FD54D0], Fun: [lj_BC_FUNCC()] + [66 byte(s)]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\LuaJIT.dll], AddrPC.Offset: [000007FEE801355C], Fun: [lj_err_run()] + [380 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\LuaJIT\src\lj_err.c-->849] + [33 byte(s)]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\LuaJIT.dll], AddrPC.Offset: [000007FEE8012606], Fun: [err_msgv()] + [118 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\LuaJIT\src\lj_err.c-->874] + [8 byte(s)]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\LuaJIT.dll], AddrPC.Offset: [000007FEE8013306], Fun: [lj_err_optype()] + [182 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\LuaJIT\src\lj_err.c-->908] + [34 byte(s)]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\LuaJIT.dll], AddrPC.Offset: [000007FEE8029910], Fun: [lj_meta_tget()] + [448 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\LuaJIT\src\lj_meta.c-->147] + [17 byte(s)]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\LuaJIT.dll], AddrPC.Offset: [000007FEE7FD59B7], Fun: [lj_vmeta_tgetv()] + [44 byte(s)]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\LuaJIT.dll], AddrPC.Offset: [000007FEE7FDF24A], Fun: [lua_pcall()] + [170 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\LuaJIT\src\lj_api.c-->1144]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000013F6F3880], Fun: [luabind::detail::pcall()] + [100 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\Luabind\src\pcall.cpp-->40] + [17 byte(s)]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000013FA0EAF6], Fun: [luabind::detail::proxy_member_void_caller<>::~proxy_member_void_caller<>()] + [50 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\Luabind\luabind\detail\call_member.hpp-->269] + [18 byte(s)]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000013FBBBD2C], Fun: [CScriptBinderObjectWrapper::net_Destroy()] + [44 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xrGame\script_binder_object_wrapper.cpp-->31] + [44 byte(s)]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000013F8D9F00], Fun: [CScriptBinder::net_Destroy()] + [28 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xrGame\script_binder.cpp-->96]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000013F771795], Fun: [CGameObject::net_Destroy()] + [297 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xrGame\GameObject.cpp-->144]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000013F80E6E5], Fun: [CPhysicsShellHolder::net_Destroy()] + [81 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xrGame\PhysicsShellHolder.cpp-->32]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000013F8EED23], Fun: [CCustomMonster::net_Destroy()] + [23 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xrGame\CustomMonster.cpp-->713]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000013F79B9BF], Fun: [CAI_Stalker::net_Destroy()] + [43 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xrGame\Ai\Stalker\ai_stalker.cpp-->447]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000013F456000], Fun: [CObjectList::ProcessDestroyQueue()] + [356 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xr_3da\xr_object_list.cpp-->224]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000013F451F2C], Fun: [IGame_Level::OnFrame()] + [24 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xr_3da\IGame_Level.cpp-->128]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000013F7229B2], Fun: [CLevel::OnFrame()] + [1066 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xrGame\Level.cpp-->408]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000013F4836F3], Fun: [CRegistrator<pureFrame>::Process()] + [87 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xr_3da\pure.h-->109]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000013F48317F], Fun: [CRenderDevice::FrameMove()] + [387 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xr_3da\device.cpp-->453]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000013F482316], Fun: [CRenderDevice::on_idle()] + [242 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xr_3da\device.cpp-->208]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000013F482E6B], Fun: [CRenderDevice::Run()] + [575 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xr_3da\device.cpp-->391] + [85 byte(s)]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000013F44D298], Fun: [Startup()] + [1348 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xr_3da\x_ray.cpp-->204]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000013F44D92B], Fun: [WinMain_impl()] + [503 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xr_3da\x_ray.cpp-->410]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000013F44DABB], Fun: [WinMain()] + [335 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xr_3da\x_ray.cpp-->431]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000013FC34112], Fun: [__scrt_common_main_seh()] + [262 byte(s)], File-->Line: [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl-->288] + [33 byte(s)]
! Module: [C:\Windows\system32\kernel32.dll], AddrPC.Offset: [0000000077A3651D], Fun: [BaseThreadInitThunk()] + [13 byte(s)]
! Module: [C:\Windows\SYSTEM32\ntdll.dll], AddrPC.Offset: [0000000077C6C201], Fun: [RtlUserThreadStart()] + [33 byte(s)]
[12.11.22 19:58:42.163] ********************************************************************************

 

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

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

Вылет "не найден NPC их заданного гулага" – видимо, это только что удаленные NPC.

Если с NPC можно поговорить, проверь через [xr_motivator.script] use_callback значения их clsid и запиши в таблицу.

 

По-хорошему, надо искать корень проблемы: как в таблицу self.saved_obj вообще попадают лишние NPC? Может, они одной пяткой стоят в рестрикторе арены, если на них срабатывает вызов arena_zone_binder:on_enter с сохранением их id в таблицу.

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

Шпаргалка

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

не найден NPC их заданного гулага

Вот только они в гулаге не состоят, там стоит:
[smart_terrains]
none = true

И это точно они, я смотрел их кастом дату выводом через log3 по npc_id.

 

1 час назад, Norman Eisenherz сказал:

Может, они одной пяткой стоят в рестрикторе арены

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

image.png


Как видишь - нет.

1 час назад, Norman Eisenherz сказал:

проверь через [xr_motivator.script] use_callback

Из моих знаний я лишь смог составить такое:
 

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

if obj:name() == "zavros_stalker_0028" then
    log3("%s", clsid)
end


После чего оно мне выбивает строчку:
[[USERDATA]]

Но это не то)

Да и если в целом брать, 

1 час назад, Norman Eisenherz сказал:

clsid

он у каждого разный что ли?

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

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

Для вывода в сообщение надо прочитать obj:clsid(), и результатом должно быть число, одинаковое для объектов одного типа. Я приводил значения из ТЧ; какие они в OGSR, как раз надо выяснить.

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

Шпаргалка

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

@Norman Eisenherz 33.
Спасибо.

Но с бочкой и ящиком поговорить уже не выйдет)

Но полагаю можно тем же способом выяснить при перетаскивании предмета...

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

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

 

    if type == "esc_blokpost" then
        return function (gulag)
            local actor = db.actor
            if not actor then
                return gulag.state
            elseif has_alife_info("dmb_karaul_arms") then
                return 3 
            elseif dont_has_alife_info("dmb_karaul_arms") then
                return 5 
            elseif dont_has_alife_info("dmb_karaul_arms") and dont_has_alife_info("dmb_first_karaul_task_start") and dont_has_alife_info("dmb_2_karaul_task_start") and dont_has_alife_info("dmb_3_karaul_task_start") and dont_has_alife_info("dmb_4_karaul_task_start") then
                return 4 -- всё гуд
            end

            for k,v in pairs(gulag.Object) do
                if v ~= true and v:best_enemy() ~= nil then
                    gulag.alarm_start = game.get_game_time()
                    actor:give_info_portion("esc_blockpost_alarm")
                    return 2 -- тревога
                end
            end

            if gulag.alarm_start == nil or
                game.get_game_time():diffSec(gulag.alarm_start) > 300 then
                if level.get_time_hours() >= 6 and level.get_time_hours() <= 22 then
                actor:give_info_portion("esc_blockpost_normal")
                    return 0  -- день
                else
                    return 1  -- ночь
                end
            else
                return 2
            end
        end

 

Подскажите, правильно ли написаны состояния для работ в гулагах? 

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

elseif has_alife_info("dmb_karaul_arms") then
                return 3 
            elseif dont_has_alife_info("dmb_karaul_arms") then
                return 5 

elseif not has_alife_info("dmb_karaul_arms") then

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

@gamв таком случае - синтаксическая ошибка, неписи выходят из гулага, и идут куда хотят. 

В общем старая песня о главном.. 

Надо, чтобы при получении инфы dmb_karaul_arms (прописанное как условие для работы под номером 3) все неписи бежали на работы (karaul1, 2, тд.). Для этого я установил им приоритет в 90+ единиц.

Получается инфа - они стоят никуда не идут. В чём дело? Ошибок в скрипте нема.  Прилагаю файлы.



 

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

 

[logic@esc_blokpost_ward1]
active = walker@esc_blokpost_ward1

[walker@esc_blokpost_ward1]
path_walk = ward_walk1
path_look = ward_look1
meet = meet@ward1

[meet@ward1]
use = true
use_wpn = true
victim = 15 | actor
victim_wpn 15 | actor

[logic@esc_blokpost_ward2]
active = walker@esc_blokpost_ward2

[walker@esc_blokpost_ward2]
path_walk = ward_walk2
path_look = ward_look2
meet = meet@ward2

[meet@ward2]
use = true
use_wpn = true
victim = 15 | actor
victim_wpn 15 | actor

[logic@esc_blokpost_ward3]
active = walker@esc_blokpost_ward3

[walker@esc_blokpost_ward3]
path_walk = ward_walk3
path_look = ward_look3
meet = meet@ward3

[meet@ward3]
use = true
use_wpn = true
victim = 15 | actor
victim_wpn 15 | actor

[logic@esc_blokpost_ward4]
active = walker@esc_blokpost_ward4

[walker@esc_blokpost_ward4]
path_walk = ward_walk4
path_look = ward_look4
meet = meet@ward4

[meet@ward4]
use = true
use_wpn = true
victim = 15 | actor
victim_wpn 15 | actor
meet_dialog = esc_ward_bustoff
target = actor

[logic@esc_blokpost_idle1]
active = walker@esc_blokpost_idle1

[walker@esc_blokpost_idle1]
path_walk = idle_walk1
path_look = idle_look1
meet = meet@look1

[meet@look1]
use = true
use_wpn = false
victim = 15 | actor
victim_wpn 15 | actor


[logic@esc_blokpost_idle2]
active = walker@esc_blokpost_idle2

[walker@esc_blokpost_idle2]
path_walk = idle_walk2
path_look = idle_look2
meet = meet@look2

[meet@look2]
use = true
use_wpn = true
victim = 15 | actor
victim_wpn 15 | actor

[logic@esc_blokpost_karaul1]
active = walker@esc_blokpost_karaul1

[walker@esc_blokpost_karaul1]
path_walk = karaul_walk1
path_look = karaul_look1
meet = no_meet
def_state_moving1 = assault
def_state_moving2 = assault
def_state_moving3 = assault
def_state_moving4 = assault

[logic@esc_blokpost_karaul2]
active = walker@esc_blokpost_karaul2

[walker@esc_blokpost_karaul2]
path_walk = karaul_walk2
path_look = karaul_look2
meet = no_meet

[logic@esc_blokpost_karaul3]
active = walker@esc_blokpost_karaul3

[walker@esc_blokpost_karaul3]
path_walk = karaul_walk3
path_look = karaul_look3
meet = no_meet

[logic@esc_blokpost_karaul4]
active = walker@esc_blokpost_karaul4

[walker@esc_blokpost_karaul4]
path_walk = karaul_walk4
path_look = karaul_look4
meet = no_meet

[logic@esc_blokpost_karaul5]
active = walker@esc_blokpost_karaul5

[walker@esc_blokpost_karaul5]
path_walk = karaul_walk5
path_look = karaul_look5
meet = no_meet
def_state_moving1 = sprint
def_state_moving2 = sprint
def_state_moving3 = sprint
def_state_moving4 = sprint

[logic@esc_blokpost_karaul6]
active = walker@esc_blokpost_karaul6

[walker@esc_blokpost_karaul6]
path_walk = karaul_walk6
path_look = karaul_look6
meet = no_meet

[logic@esc_blokpost_karaul7]
active = walker@esc_blokpost_karaul7

[walker@esc_blokpost_karaul7]
path_walk = karaul_walk7
path_look = karaul_look7
meet = no_meet

[logic@esc_blokpost_karaul8]
active = walker@esc_blokpost_karaul8

[walker@esc_blokpost_karaul8]
path_walk = karaul_walk8
path_look = karaul_look8
meet = no_meet

[logic@esc_blokpost_karaul9]
active = walker@esc_blokpost_karaul9

[walker@esc_blokpost_karaul9]
path_walk = karaul_walk9
path_look = karaul_look9
meet = no_meet

 



 

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

if type == "esc_blokpost" then
    t = { section = "logic@esc_blokpost_idle1",
        idle = 0,
        prior = 80, state = {0,1},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
    t = { section = "logic@esc_blockpost_watch_tv1",
        idle = 0,
        prior = 79, state = {0,1},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
    t = { section = "logic@esc_blockpost_watch_tv2",
        idle = 0,
        prior = 78, state = {0,1},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
    t = { section = "logic@esc_blockpost_kamp1",
        idle = 0,
        prior = 77, state = {0,1},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
    t = { section = "logic@esc_blokpost_idle2",
        idle = 0,
        prior = 76, state = {0,1},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
    t = { section = "logic@esc_blockpost_kamp2",
        idle = 0,
        prior = 75, state = {0,1},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone",
    }
    table.insert(sj, t)
    t = { section = "logic@esc_blokpost_ward1",
        idle = 0,
        prior = 55, state = {0,1},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
    t = { section = "logic@esc_blokpost_ward2",
        idle = 0,
        prior = 21, state = {0,1},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
    t = { section = "logic@esc_blokpost_ward3",
        idle = 0,
        prior = 72, state = {0,1},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
    t = { section = "logic@esc_blokpost_ward4",
        idle = 0,
        prior = 71, state = {0,1},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
    t = { section = "logic@esc_blokpost_karaul1",
        idle = 0,
        prior = 99, state = {3},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
    
        t = { section = "logic@esc_blokpost_karaul2",
        idle = 0,
        prior = 99, state = {3},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
            t = { section = "logic@esc_blokpost_karaul3",
        idle = 0,
        prior = 99, state = {3},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
                t = { section = "logic@esc_blokpost_karaul4",
        idle = 0,
        prior = 99, state = {3},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
                    t = { section = "logic@esc_blokpost_karaul5",
        idle = 0,
        prior = 99, state = {3},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
                        t = { section = "logic@esc_blokpost_karaul6",
        idle = 0,
        prior = 99, state = {3},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
                            t = { section = "logic@esc_blokpost_karaul7",
        idle = 0,
        prior = 99, state = {3},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
                            t = { section = "logic@esc_blokpost_karaul8",
        idle = 0,
        prior = 99, state = {3},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
    t = { section = "logic@esc_blokpost_karaul9",
        idle = 0,
        prior = 99, state = {3},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
end



 

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

 

function load_states(gname, type)

    if type == "esc_blokpost" then
        return function (gulag)
            local actor = db.actor
            if not actor then
                return gulag.state
            elseif has_alife_info("dmb_karaul_arms") then
                return 3 
            elseif dont_has_alife_info("dmb_karaul_arms") then
                return 5 
            end
            for k,v in pairs(gulag.Object) do
                if v ~= true and v:best_enemy() ~= nil then
                    gulag.alarm_start = game.get_game_time()
                    actor:give_info_portion("esc_blockpost_alarm")
                    return 2 -- тревога
                end
            end

            if gulag.alarm_start == nil or
                game.get_game_time():diffSec(gulag.alarm_start) > 300 then
                if level.get_time_hours() >= 6 and level.get_time_hours() <= 22 then
                actor:give_info_portion("esc_blockpost_normal")
                    return 0  -- день
                else
                    return 1  -- ночь
                end
            else
                return 2
            end
        end
    end

 

 

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

В чём может быть проблема?

Ситуация: спавню псевдособачек через консоль, на третьей ловлю вылет (как видим секции одинаковые):
 

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

[13.11.22 22:41:52.144] > g_spawn pseudodog_strong
[13.11.22 22:41:59.272] > g_spawn pseudodog_strong
[13.11.22 22:42:00.384] > g_spawn pseudodog_strong
[13.11.22 22:42:00.674] 
FATAL ERROR

[error]Expression    : FATAL ERROR
[error]Function      : dxRender_Visual::Load
[error]File          : D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\Layers\xrRender\FBasicVisual.cpp
[error]Line          : 110
[error]Description   : Invalid visual

[13.11.22 22:42:00.674] ***************************[ScriptCrashHandler]**********************************
[13.11.22 22:42:00.674] stack traceback:
[13.11.22 22:42:00.674] *********************************************************************************
[13.11.22 22:42:00.675] ********************************************************************************
[13.11.22 22:42:00.675] !![LogStackTrace] Thread: [UNKNOWN]
[13.11.22 22:42:02.834] !!stack trace:
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [0000000140046289], Fun: [BuildStackTrace()] + [41 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xrCore\stacktrace_collector.cpp-->144]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [0000000140031E9D], Fun: [LogStackTrace()] + [65 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xrCore\xrDebugNew.cpp-->74] + [10 byte(s)]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [0000000140032313], Fun: [xrDebug::backend()] + [599 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xrCore\xrDebugNew.cpp-->182] + [426 byte(s)]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000014003254D], Fun: [xrDebug::fatal()] + [117 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xrCore\xrDebugNew.cpp-->247]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [0000000140260816], Fun: [dxRender_Visual::Load()] + [882 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\Layers\xrRender\FBasicVisual.cpp-->114]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000014021434D], Fun: [Fvisual::Load()] + [45 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\Layers\xrRender\FVisual.cpp-->37]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000014007E3C8], Fun: [CModelPool::Instance_Load()] + [408 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\Layers\xrRender\ModelPool.cpp-->120]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000014007EE4F], Fun: [CModelPool::Create()] + [835 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\Layers\xrRender\ModelPool.cpp-->251]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000013FFE3914], Fun: [CObject::cNameVisual_set()] + [188 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xr_3da\xr_object.cpp-->36]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000013FFE46B3], Fun: [CObject::Load()] + [1787 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xr_3da\xr_object.cpp-->168]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [0000000140371298], Fun: [CInventoryItemObject::Load()] + [36 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xrGame\inventory_item_object.cpp-->25] + [5 byte(s)]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [00000001403BF546], Fun: [CLevel::g_sv_Spawn()] + [222 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xrGame\Level_network_spawn.cpp-->103] + [76 byte(s)]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [00000001403BF102], Fun: [CLevel::cl_Process_Spawn()] + [446 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xrGame\Level_network_spawn.cpp-->51]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [00000001402B2564], Fun: [CLevel::ProcessGameEvents()] + [352 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xrGame\Level.cpp-->381]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [00000001402B2836], Fun: [CLevel::OnFrame()] + [686 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xrGame\Level.cpp-->404]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [00000001400136F3], Fun: [CRegistrator<pureFrame>::Process()] + [87 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xr_3da\pure.h-->109]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000014001317F], Fun: [CRenderDevice::FrameMove()] + [387 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xr_3da\device.cpp-->453]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [0000000140012316], Fun: [CRenderDevice::on_idle()] + [242 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xr_3da\device.cpp-->208]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [0000000140012E6B], Fun: [CRenderDevice::Run()] + [575 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xr_3da\device.cpp-->391] + [85 byte(s)]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000013FFDD298], Fun: [Startup()] + [1348 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xr_3da\x_ray.cpp-->204]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000013FFDD92B], Fun: [WinMain_impl()] + [503 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xr_3da\x_ray.cpp-->410]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [000000013FFDDABB], Fun: [WinMain()] + [335 byte(s)], File-->Line: [D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xr_3da\x_ray.cpp-->431]
! Module: [D:\S.T.A.L.K.E.R. Shadow of Chernobymod\bin_x64\xrEngine.exe], AddrPC.Offset: [00000001407C4112], Fun: [__scrt_common_main_seh()] + [262 byte(s)], File-->Line: [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl-->288] + [33 byte(s)]
! Module: [C:\Windows\system32\kernel32.dll], AddrPC.Offset: [000000007706651D], Fun: [BaseThreadInitThunk()] + [13 byte(s)]
! Module: [C:\Windows\SYSTEM32\ntdll.dll], AddrPC.Offset: [000000007775C201], Fun: [RtlUserThreadStart()] + [33 byte(s)]
[13.11.22 22:42:02.834] ********************************************************************************

 

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

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

[error]Description   : Invalid visual

Игра не смогла прочитать чанки модели и возмутилась. И правильно, не надо для правки моделей использовать блокнот.

 

2 часа назад, imcrazyhoudini сказал:

D:\S.T.A.L.K.E.R. Shadow of Chernobymod\

И снова клятые точки с пробелами.

Ссылка на комментарий
10 часов назад, h0N0r сказал:

Игра не смогла прочитать чанки модели и возмутилась. И правильно, не надо для правки моделей использовать блокнот.

Я вообще не трогал модели - они оригинальные (для перепроверки качал с темы ресурсы с оригинальной трилогии).

 

10 часов назад, h0N0r сказал:

И снова клятые точки с пробелами.

Не замечал проблем из-за этого.

 

upd. поправочка - проблема исчезает когда вырезаю оружейный пак.

Как связано с собачкой - понятия не имею.

upd. ещё заметил - что даже если псевдособаке указать модель которая 100% работает (у меня есть секция с псевдособакой которая работает), то всё равно будет вылет.

Изменено пользователем imcrazyhoudini

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

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

Можно ли перенести анимации оружия из тч в зп оружейку, сохранив при этом зп систему рук? Движок OGSR.

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

@imcrazyhoudini

может найдёшь косячную модельку:

mixed-бины ТЧ 1.0007: https://drive.google.com/file/d/1HT4GBerQgL0BM3zRCgQcdi9-z7ETOdG1/view?usp=share_link

Перед вылетом Invalid visual, будет сообщение в лог, типа: ! Invalid visual: имя модели.

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

@h0N0r спасибо конечно, но я думаю модели ганслингера не переварит...

upd: дело было в хвосте псевдособаки.

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

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

Всем добра. У меня вопрос такого плана:

Как на чистом ТЧ 1.0006 сделать вот такую проверку, если это возможно без правок движка. (пример)
1. У актера есть N предмет
2. Актер получает хит от аномалии Электра
3. Если 1 и 2 имеет место, то выполняем действие.

Pir%40t%40s.gif

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

@Pir@t@s


1) if db.actor:object("bread") then -- если есть хлеб, то: НО это не будет работать для диалогов насколько я знаю.

2) вот тут не знаю.. Есть вариант зацепится за тип хита, сам так пробовал, но успехов не достиг. Но как ниточка - сойдет.
function nitka()
local h = hit()
if h.type = hit.shock then
db.actor.health = 0.5 -- отнимаем полхп актора
end
end

3) Не совсем понятна суть вопроса... ну, если я правильно понял - вот пример "если если то" с инфопоршнями:

function action()
if has_alife_info("esc_info") and has_alife_info("esc_info_2") then
db.actor.health = 0.5 -- отнимаем полхп актора
end
end


И везде надо ставить проверку (если надо лично тебе конечно, то есть проверка не будет вызываться какой то функцией) :guru:

Намутил функцию для маскировки

HUM.script ниже

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

function disguise()
local armor = db.actor:item_in_slot(7)  -- активна броня
if (string.find(armor, "soldier_outfit") and armor =~ nil) then -- если надета броня солдата и она НАДЕТА, тогда
npc:set_character_community("military", 0, 0) -- ставим гп актору военного
end
end


Поставил на апдейт, на стадии клиент: синхронизация, вылет с логом:
 

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

[error]Expression    : fatal error
[error]Function      : CScriptEngine::lua_error
[error]File          : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
[error]Line          : 73
[error]Description   : <no expression>
[error]Arguments     : LUA error: ....k.e.r. hum 1.1\gamedata\scripts\bind_stalker.script:273: attempt to index global 'HUM' (a nil value)


 

  • Спасибо 1
Ссылка на комментарий
3 часа назад, Hind сказал:

на стадии клиент: синхронизация, вылет с логом:

Нужно так:

if armor and string.find(armor, "soldier_outfit") then

 

  • Спасибо 1

S.T.A.L.K.E.R. CoP Objects (upd 11.03.24)

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

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

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

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

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

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

Войти

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

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

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

AMK-Team.ru

×
×
  • Создать...