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

AI additions


Bak

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

(изменено)

Попробовал накатить версию 2.0f4 на движок  OGSR ->
 

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

[05.02.19 21:18:14.315] [print_output([CScriptEngine::lua_pcall_failed])] SCRIPT RUNTIME ERROR:
....a.l.k.e.r. Тень Чернобыля\gamedata\scripts\rx_ai.script:792: attempt to call global 'enabled_evaluator' (a nil value)
stack traceback:
	[C]: in function 'enabled_evaluator'
	....a.l.k.e.r. Тень Чернобыля\gamedata\scripts\rx_ai.script:792: in function 'common_planner_pair'
	....a.l.k.e.r. Тень Чернобыля\gamedata\scripts\rx_ai.script:141: in function 'npc_net_spawn'
	...e.r. Тень Чернобыля\gamedata\scripts\xr_motivator.script:117: in function <...e.r. Тень Чернобыля\gamedata\scripts\xr_motivator.script:65>
[05.02.19 21:18:14.315] *********************************************************************************
[05.02.19 21:18:14.315] 
FATAL ERROR

[error]Expression    : FATAL ERROR
[error]Function      : CScriptEngine::lua_pcall_failed
[error]File          : c:\projects\ogsr-engine\ogsr_engine\common_ai\script_engine.cpp
[error]Line          : 52
[error]Description   : [CScriptEngine::lua_pcall_failed]: ....a.l.k.e.r. Тень Чернобыля\gamedata\scripts\rx_ai.script:792: attempt to call global 'enabled_evaluator' (a nil value)

[05.02.19 21:18:14.315] ***************************[ScriptCrashHandler]**********************************
[05.02.19 21:18:14.315] stack traceback:
	[C]: in function 'enabled_evaluator'
	....a.l.k.e.r. Тень Чернобыля\gamedata\scripts\rx_ai.script:792: in function 'common_planner_pair'
	....a.l.k.e.r. Тень Чернобыля\gamedata\scripts\rx_ai.script:141: in function 'npc_net_spawn'
	...e.r. Тень Чернобыля\gamedata\scripts\xr_motivator.script:117: in function <...e.r. Тень Чернобыля\gamedata\scripts\xr_motivator.script:65>
[05.02.19 21:18:14.315] 	Locals: 
[05.02.19 21:18:14.315] 	 string (*temporary) : ....a.l.k.e.r. Тень Чернобыля\gamedata\scripts\rx_ai.script:792: attempt to call global 'enabled_evaluator' (a nil value)
[05.02.19 21:18:14.315] 	End
[05.02.19 21:18:14.315] 	Locals: 
[05.02.19 21:18:14.315] 	 userdata npc : (game_object): 000000002A021C80
[05.02.19 21:18:14.315] 	 Table: st
[05.02.19 21:18:14.315] 			 Table: st.events
[05.02.19 21:18:14.316] 					 boolean st.events.(null) : true
[05.02.19 21:18:14.316] 					 boolean st.events.(null) : true
[05.02.19 21:18:14.316] 					 boolean st.events.(null) : true
[05.02.19 21:18:14.316] 					 boolean st.events.(null) : true
[05.02.19 21:18:14.316] 					 boolean st.events.(null) : true
[05.02.19 21:18:14.316] 					 boolean st.events.(null) : true
[05.02.19 21:18:14.316] 			 userdata st.planner : (action_planner): 000000002CCF2300
[05.02.19 21:18:14.316] 	 Userdata: action
[05.02.19 21:18:14.316] 			 boolean action.enabled : false
[05.02.19 21:18:14.316] 	 function (*temporary) : [[function]]
[05.02.19 21:18:14.316] 	 number (*temporary) : 0.000000
[05.02.19 21:18:14.316] 	 number (*temporary) : 18799.000000
[05.02.19 21:18:14.316] 	 nil (*temporary) : [not available]
[05.02.19 21:18:14.316] 	 function (*temporary) : [[function]]
[05.02.19 21:18:14.316] 	 string (*temporary) : eva_animation_player
[05.02.19 21:18:14.316] 	 string (*temporary) : attempt to call global 'enabled_evaluator' (a nil value)
[05.02.19 21:18:14.316] 	End
[05.02.19 21:18:14.316] 	Locals: 
[05.02.19 21:18:14.316] 	 userdata npc : (game_object): 000000002A021C80
[05.02.19 21:18:14.316] 	 Table: st
[05.02.19 21:18:14.316] 			 Table: st.events
[05.02.19 21:18:14.316] 					 boolean st.events.(null) : true
[05.02.19 21:18:14.316] 					 boolean st.events.(null) : true
[05.02.19 21:18:14.316] 					 boolean st.events.(null) : true
[05.02.19 21:18:14.316] 					 boolean st.events.(null) : true
[05.02.19 21:18:14.316] 					 boolean st.events.(null) : true
[05.02.19 21:18:14.316] 					 boolean st.events.(null) : true
[05.02.19 21:18:14.316] 			 userdata st.planner : (action_planner): 000000002CCF2300
[05.02.19 21:18:14.316] 	End
[05.02.19 21:18:14.316] 	Locals: 
[05.02.19 21:18:14.316] 	 Userdata: self
[05.02.19 21:18:14.316] 			 boolean self.loaded : false
[05.02.19 21:18:14.316] 			 boolean self.first_update : false
[05.02.19 21:18:14.316] 			 number self.last_update : 0.000000
[05.02.19 21:18:14.316] 			 Table: self.st
[05.02.19 21:18:14.316] 					 string self.st.gulag_name : pre_bar
[05.02.19 21:18:14.316] 					 table self.st.post_combat_idle : [...]
[05.02.19 21:18:14.316] 					 table self.st.pstor : [...]
[05.02.19 21:18:14.316] 					 Userdata: self.st.move_mgr
[05.02.19 21:18:14.316] 							 number self.st.move_mgr.syn_signal_set_tm : 28893.000000
[05.02.19 21:18:14.316] 							 number self.st.move_mgr.pt_wait_time : 5000.000000
[05.02.19 21:18:14.316] 							 number self.st.move_mgr.run_until : 32893.000000
[05.02.19 21:18:14.316] 							 string self.st.move_mgr.default_state_moving1 : patrol
[05.02.19 21:18:14.316] 							 userdata self.st.move_mgr.patrol_walk : (patrol): 000000002A26DA30
[05.02.19 21:18:14.316] 							 string self.st.move_mgr.cur_state_moving : patrol
[05.02.19 21:18:14.316] 							 string self.st.move_mgr.path_walk : pre_bar_visitor_3_walk
[05.02.19 21:18:14.316] 							 string self.st.move_mgr.default_state_standing : guard
[05.02.19 21:18:14.316] 							 boolean self.st.move_mgr.can_use_get_current_point_index : false
[05.02.19 21:18:14.316] 							 userdata self.st.move_mgr.object : (game_object): 000000002A021C80
[05.02.19 21:18:14.316] 							 number self.st.move_mgr.keep_state_until : 27893.000000
[05.02.19 21:18:14.316] 							 userdata self.st.move_mgr.patrol_look : (patrol): 000000002A26DA70
[05.02.19 21:18:14.316] 							 string self.st.move_mgr.default_state_moving2 : rush
[05.02.19 21:18:14.316] 							 table self.st.move_mgr.path_walk_info : [...]
[05.02.19 21:18:14.316] 							 table self.st.move_mgr.suggested_state : [...]
[05.02.19 21:18:14.316] 							 number self.st.move_mgr.walk_until : 30893.000000
[05.02.19 21:18:14.316] 							 string self.st.move_mgr.path_look : pre_bar_visitor_3_look
[05.02.19 21:18:14.316] 							 string self.st.move_mgr.cur_state_standing : guard
[05.02.19 21:18:14.316] 							 number self.st.move_mgr.state : 1.000000
[05.02.19 21:18:14.316] 							 boolean self.st.move_mgr.at_terminal_waypoint_flag : false
[05.02.19 21:18:14.316] 							 table self.st.move_mgr.path_look_info : [...]
[05.02.19 21:18:14.316] 							 string self.st.move_mgr.default_state_moving3 : sprint
[05.02.19 21:18:14.316] 					 table self.st.rx_knife : [...]
[05.02.19 21:18:14.316] 					 table self.st.danger : [...]
[05.02.19 21:18:14.316] 					 table self.st.rx_ai : [...]
[05.02.19 21:18:14.316] 					 string self.st.active_section : walker@pre_bar_visitor_3
[05.02.19 21:18:14.316] 					 table self.st.walker : [...]
[05.02.19 21:18:14.316] 					 Userdata: self.st.state_mgr
[05.02.19 21:18:14.316] 							 Userdata: self.st.state_mgr.animstate
[05.02.19 21:18:14.316] 									 userdata self.st.state_mgr.animstate.npc : (game_object): 000000002A021C80
[05.02.19 21:18:14.316] 									 string self.st.state_mgr.animstate.target_state : stand
[05.02.19 21:18:14.316] 									 string self.st.state_mgr.animstate.current_state : stand
[05.02.19 21:18:14.316] 							 boolean self.st.state_mgr.combat : false
[05.02.19 21:18:14.316] 							 boolean self.st.state_mgr.alife : true
[05.02.19 21:18:14.316] 							 userdata self.st.state_mgr.mgr : (action_planner): 000000002CCF2300
[05.02.19 21:18:14.316] 							 string self.st.state_mgr.target_state : patrol
[05.02.19 21:18:14.316] 							 userdata self.st.state_mgr.planner : (action_planner): 000000002B4C2200
[05.02.19 21:18:14.316] 							 table self.st.state_mgr.properties : [...]
[05.02.19 21:18:14.317] 							 table self.st.state_mgr.operators : [...]
[05.02.19 21:18:14.317] 							 number self.st.state_mgr.subanim : 0.000000
[05.02.19 21:18:14.317] 							 number self.st.state_mgr.look_position_type : 1.000000
[05.02.19 21:18:14.317] 							 Userdata: self.st.state_mgr.animation
[05.02.19 21:18:14.317] 									 table self.st.state_mgr.animation.states : [...]
[05.02.19 21:18:14.317] 									 table self.st.state_mgr.animation.clb_settings : [...]
[05.02.19 21:18:14.317] 									 number self.st.state_mgr.animation.clb_cnt : 0.000000
[05.02.19 21:18:14.317] 							 boolean self.st.state_mgr.reset_state : false
[05.02.19 21:18:14.317] 							 table self.st.state_mgr.emerg : [...]
[05.02.19 21:18:14.317] 					 table self.st.reload : [...]
[05.02.19 21:18:14.317] 					 table self.st.launch_grenade : [...]
[05.02.19 21:18:14.317] 					 table self.st.grenadier : [...]
[05.02.19 21:18:14.317] 					 table self.st.help_wounded : [...]
[05.02.19 21:18:14.317] 					 string self.st.section_logic : logic@pre_bar_visitor_3
[05.02.19 21:18:14.317] 					 table self.st.bandage : [...]
[05.02.19 21:18:14.317] 					 userdata self.st.ini : (ini_file): 000000000FB46BA0
[05.02.19 21:18:14.317] 					 table self.st.rx_combat : [...]
[05.02.19 21:18:14.317] 					 string self.st.active_scheme : walker
[05.02.19 21:18:14.317] 					 userdata self.st.activation_game_time : (CTime): 000000002A14C1A0
[05.02.19 21:18:14.317] 					 string self.st.ini_filename : misc\gulag_tasks.ltx
[05.02.19 21:18:14.317] 					 table self.st.wounded : [...]
[05.02.19 21:18:14.317] 					 number self.st.activation_time : 27893.000000
[05.02.19 21:18:14.317] 					 number self.st.stype : 0.000000
[05.02.19 21:18:14.317] 					 table self.st.abuse : [...]
[05.02.19 21:18:14.317] 					 table self.st.followers : [...]
[05.02.19 21:18:14.317] 					 table self.st.overrides : [...]
[05.02.19 21:18:14.317] 					 table self.st.meet : [...]
[05.02.19 21:18:14.317] 					 table self.st.facer : [...]
[05.02.19 21:18:14.317] 					 table self.st.death : [...]
[05.02.19 21:18:14.317] 					 table self.st.corpse_detection : [...]
[05.02.19 21:18:14.317] 					 table self.st.rx_ff : [...]
[05.02.19 21:18:14.317] 					 table self.st.kill_wounded : [...]
[05.02.19 21:18:14.317] 					 table self.st.heli_hunter : [...]
[05.02.19 21:18:14.317] 			 boolean self.treasure_processed : false
[05.02.19 21:18:14.317] 	 Userdata: sobject
[05.02.19 21:18:14.317] 			 boolean sobject.ini_initialized : false
[05.02.19 21:18:14.317] 			 boolean sobject.death_droped : false
[05.02.19 21:18:14.317] 			 boolean sobject.dont_spawn_online : false
[05.02.19 21:18:14.317] 			 boolean sobject.job_online : true
[05.02.19 21:18:14.317] 			 boolean sobject.smart_terrain_conditions_initialized : false
[05.02.19 21:18:14.317] 			 boolean sobject.spawner_present : false
[05.02.19 21:18:14.317] 			 boolean sobject.was_in_smart_terrain : true
[05.02.19 21:18:14.317] 	 userdata manager : (action_planner): 000000002CCF2300
[05.02.19 21:18:14.317] 	End
[05.02.19 21:18:14.317] *********************************************************************************
[05.02.19 21:18:14.317] ********************************************************************************
[05.02.19 21:18:15.046] !!stack trace:

 

В подобном не шибко силен, может кто уже пробовал адаптировать ? 

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

Поделиться этим сообщением


Ссылка на сообщение
(изменено)
30.05.2020 в 06:31, Rudolf2725 сказал:

@ted.80, при попытке сохранится иногда может произойти вылет. Ставил на OGSM v2.3.1, адаптация соответствующая.

Вот лог.

Expression    : e_entity->ID_Parent == id_parent
Function      : xrServer::Process_event_reject
File          : E:\stalker\sources\trunk\xr_3da\xrGame\xrServer_process_event_reject.cpp
Line          : 23
Description   : wpn_bm161746
Arguments     : rx_wmgr_box6382

Спустя почти полгода , но да и ладно))) Может быть кому-то пригодиться. 

Вылет связан с тем, что скорее всего при адаптации в bind_stalker метод save переписали с OGSM'овского.

Вот этот кусок кода:

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

function actor_binder:save(packet)
    local pk1 = fake_net_packet.fake_net_packet()
    self:save_old(pk1)
    --get_console():execute("Packet_size_is_"..pk1:w_tell())
    if pk1:w_tell()>7500 then
        ogsm_debug.clean_pstor()
    end
    self:save_old(packet)
end 

function actor_binder:save_old(packet)

    if rx_ai then rx_ai.actor_save(packet) end
    local save_treasure_manager = true

    printf("actor_binder:save(): self.object:name()='%s'", self.object:name())
    object_binder.save(self, packet)

    --' Сохраняем уровень сложности
    if save_treasure_manager == true then
        packet:w_u8(level.get_game_difficulty() + 128)
    else
        packet:w_u8(level.get_game_difficulty())
    end


    --' Сохраняем данные об отключенном вводе
    if self.st.disable_input_time == nil then
        packet:w_bool(false)
    else
        packer:w_bool(true)
        utils.w_CTime(packet, self.st.disable_input_time)
    end

    xr_logic.pstor_save_all(self.object, packet)
    self.weather_manager:save(packet)

    sr_psy_antenna.save( packet )

    if save_treasure_manager == true then
        treasure_manager.save(packet)
    end

    task_manager.save(packet)
    self.actor_detector:save(packet)    
end

 

Возвращаем на оригинальный:

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

function actor_binder:save(packet)
    local pk1 = fake_net_packet.fake_net_packet()
    if pk1:w_tell()>7500 then
        ogsm_debug.clean_pstor()
    end

    if rx_ai then rx_ai.actor_save(packet) end
    local save_treasure_manager = true

    printf("actor_binder:save(): self.object:name()='%s'", self.object:name())
    object_binder.save(self, packet)

    --' Сохраняем уровень сложности
    if save_treasure_manager == true then
        packet:w_u8(level.get_game_difficulty() + 128)
    else
        packet:w_u8(level.get_game_difficulty())
    end


    --' Сохраняем данные об отключенном вводе
    if self.st.disable_input_time == nil then
        packet:w_bool(false)
    else
        packer:w_bool(true)
        utils.w_CTime(packet, self.st.disable_input_time)
    end

    xr_logic.pstor_save_all(self.object, packet)
    self.weather_manager:save(packet)

    sr_psy_antenna.save( packet )

    if save_treasure_manager == true then
        treasure_manager.save(packet)
    end

    task_manager.save(packet)
    self.actor_detector:save(packet)    
end

После этого вылет должен исчезнуть.

P.S. Если кто-то знает зачем этот метод изменяли как показано под первым спойлером - буду благодарен если расскажите)

 

Изменено пользователем TomlnFerno
  • Сомнительно 1

Поделиться этим сообщением


Ссылка на сообщение
(изменено)
13 часов назад, ted.80 сказал:

 

:dash2:

 

 

Ну наверно потому что это адаптация для OGSM?

Ну так надо же с умом делать) 

Из-за использования ОГСМ-ного варианта метода происходит тот вылет, а вот если взять вариант из моего предыдущего поста, то все в порядке, хотя я не претендую на то, что это является единственно верным решением, я просто предлагаю рабочие варианты, которые помогли мне и могут помочь ещё кому-то(кстати я там случайно вставил одинаковый код под оба спойлера и не могу повторно отредактировать пост,косяк)

Может быть мои формулировки не совсем точно отражают мысль, которую я пытаюсь донести, но все же не стоит так возмущаться ) 

 

 

 

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

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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

AMK-Team.ru

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