TEMPEST.114 Posted February 28, 2024 Posted February 28, 2024 (edited) Surely it should trigger S_EVENT_BIRTH or S_EVENT_PLAYER_ENTER_UNIT or even S_EVENT_TOOK_CONTROL? When did this break/change? This is just running a single player mission on my own PC - NO SERVER or MULTIPLAYER is involved. I'm SURE this used to be working a year ago, right? Edited February 28, 2024 by Elphaba clarification
ED Team BIGNEWY Posted February 29, 2024 ED Team Posted February 29, 2024 please include an example of what you think is wrong so it can be checked. We have no reports currently for these Forum rules - DCS Crashing? Try this first - Cleanup and Repair - Discord BIGNEWY#8703 - Youtube - Patch Status Windows 11, NVIDIA MSI RTX 3090, Intel® i9-10900K 3.70GHz, 5.30GHz Turbo, Corsair Hydro Series H150i Pro, 64GB DDR @3200, ASUS ROG Strix Z490-F Gaming, PIMAX Crystal
TEMPEST.114 Posted February 29, 2024 Author Posted February 29, 2024 Just now, BIGNEWY said: please include an example of what you think is wrong so it can be checked. We have no reports currently for these What I think is wrong is that there are no events firing when a PLAYER skill level human player joins the mission (that is not a MP mission or running on a dedicated server.) ? I don't know what else or other information you need? I included 3 events that should have fired that never did.
ED Team BIGNEWY Posted February 29, 2024 ED Team Posted February 29, 2024 with a bug report we will need a track replay example or mission example to check. It would be helpful. I can ask the team to check anyway but it would be easier for you to show an example of it not working. Forum rules - DCS Crashing? Try this first - Cleanup and Repair - Discord BIGNEWY#8703 - Youtube - Patch Status Windows 11, NVIDIA MSI RTX 3090, Intel® i9-10900K 3.70GHz, 5.30GHz Turbo, Corsair Hydro Series H150i Pro, 64GB DDR @3200, ASUS ROG Strix Z490-F Gaming, PIMAX Crystal
TEMPEST.114 Posted February 29, 2024 Author Posted February 29, 2024 1 minute ago, BIGNEWY said: with a bug report we will need a track replay example or mission example to check. It would be helpful. I can ask the team to check anyway but it would be easier for you to show an example of it not working. With all due respect, I can't prove a negative. There are no events firing when a single player starts the mission that the scripting engine can use to do stuff with i.e. ON_BIRTH. If you change the player skill to CLIENT - then you get events firing. Change back to PLAYER and those same events never fire. What would a track or mission show you if the events aren't being fired? 2024-02-29 12:55:35.192 INFO EDTERRAINGRAPHICS41 (21512): surface5 clean up LOD 1: left 1 released 0 2024-02-29 12:55:35.192 INFO EDTERRAINGRAPHICS41 (21512): surface5 clean up 0.023900 ms 2024-02-29 12:55:36.653 WARNING BACKENDCOMMON (4888): Need to reprocess [DDS] image '/textures/F18C_1_DIFF_STAY_nm.dds' 2024-02-29 12:55:39.357 WARNING LOG (21488): 1 duplicate message(s) skipped. 2024-02-29 12:55:39.357 INFO VISUALIZER (Main): Preload() finished 2024-02-29 12:55:39.470 INFO Dispatcher (Main): precache units resources in slots 2024-02-29 12:55:39.470 INFO OpenKneeboard (Main): onSimulationStart 2024-02-29 12:55:39.470 INFO OpenKneeboard (Main): Aircraft: FA-18C_hornet 2024-02-29 12:55:39.484 INFO TLC (Main): ******* S_EVENT_SIMULATION_START ******* 2024-02-29 12:55:39.484 INFO LUA (Main): Lua: States: 679, CPU load: 2.5%, Mem: 417.7 MB 2024-02-29 12:55:39.485 INFO EDCORE (Main): Created game pool: h:2 n:3 l:2 2024-02-29 12:55:39.485 INFO Dispatcher (Main): loadMission Done: Сontrol passed to the player 2024-02-29 12:55:43.858 INFO WWT (Main): FA-18C_hornet 2024-02-29 12:55:43.873 INFO DCS-DTC (Main): Opened connection See the event S_EVENT_SIMULATION_START ? function TLC:onEvent(event) if event.id == world.event.S_EVENT_SHOT then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_SHOT *******") elseif event.id == world.event.S_EVENT_HIT then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_HIT *******") elseif event.id == world.event.S_EVENT_TAKEOFF then -- TODO api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_TAKEOFF *******") TLC.OnBirthOrEnterUnitFor(event) TLC.OnTakeoff(event) elseif event.id == world.event.S_EVENT_LAND then -- TODO api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_LAND *******") -- TODO ADD TO CARRIER ON DECK TABLE -- TODO ADD TO AWACS & TANKER REMOVE FROM LISTS elseif event.id == world.event.S_EVENT_CRASH then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_CRASH *******") elseif event.id == world.event.S_EVENT_EJECTION then -- TODO api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_EJECTION *******") -- TODO IF OVER WATER, SPAWN PILOT MODEL AND LIFERAFT AND TRIGGER SAR / PLAYER TO FIND elseif event.id == world.event.S_EVENT_REFUELING then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_REFUELING *******") elseif event.id == world.event.S_EVENT_DEAD then -- TODO api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_DEAD *******") TLC.OnDeathOrShutdownUnitFor(event) elseif event.id == world.event.S_EVENT_PILOT_DEAD then -- TODO api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_PILOT_DEAD *******") TLC.OnDeathOrShutdownUnitFor(event) elseif event.id == world.event.S_EVENT_BASE_CAPTURED then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_BASE_CAPTURED *******") elseif event.id == world.event.S_EVENT_MISSION_START then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_MISSION_START *******") elseif event.id == world.event.S_EVENT_MISSION_END then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_MISSION_END *******") elseif event.id == world.event.S_EVENT_TOOK_CONTROL then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_TOOK_CONTROL *******") TLC.OnBirthOrEnterUnitFor(event) elseif event.id == world.event.S_EVENT_REFUELING_STOP then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_REFUELING_STOP *******") elseif event.id == world.event.S_EVENT_BIRTH then -- TODO api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_BIRTH *******") TLC.OnBirthOrEnterUnitFor(event) elseif event.id == world.event.S_EVENT_HUMAN_FAILURE then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_HUMAN_FAILURE *******") elseif event.id == world.event.S_EVENT_DETAILED_FAILURE then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_DETAILED_FAILURE *******") elseif event.id == world.event.S_EVENT_ENGINE_STARTUP then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_ENGINE_STARTUP *******") elseif event.id == world.event.S_EVENT_ENGINE_SHUTDOWN then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_ENGINE_SHUTDOWN *******") TLC.OnDeathOrShutdownUnitFor(event) elseif event.id == world.event.S_EVENT_PLAYER_ENTER_UNIT then -- TODO api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_PLAYER_ENTER_UNIT *******") -- TLC.OnBirthOrEnterUnitFor(event) elseif event.id == world.event.S_EVENT_PLAYER_LEAVE_UNIT then -- TODO api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_PLAYER_LEAVE_UNIT *******") TLC.OnDeathOrShutdownUnitFor(event) elseif event.id == world.event.S_EVENT_PLAYER_COMMENT then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_PLAYER_COMMENT *******") elseif event.id == world.event.S_EVENT_SHOOTING_START then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_SHOOTING_START *******") elseif event.id == world.event.S_EVENT_SHOOTING_END then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_SHOOTING_END *******") elseif event.id == world.event.S_EVENT_MARK_ADDED then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_MARK_ADDED *******") elseif event.id == world.event.S_EVENT_MARK_CHANGE then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_MARK_CHANGE *******") elseif event.id == world.event.S_EVENT_MARK_REMOVED then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_MARK_REMOVED *******") elseif event.id == world.event.S_EVENT_KILL then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_KILL *******") elseif event.id == world.event.S_EVENT_SCORE then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_SCORE *******") elseif event.id == world.event.S_EVENT_UNIT_LOST then -- TODO api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_UNIT_LOST *******") TLC.OnDeathOrShutdownUnitFor(event) elseif event.id == world.event.S_EVENT_LANDING_AFTER_EJECTION then -- TODO api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_LANDING_AFTER_EJECTION *******") elseif event.id == world.event.S_EVENT_PARATROOPER_LENDING then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_PARATROOPER_LENDING *******") elseif event.id == world.event.S_EVENT_DISCARD_CHAIR_AFTER_EJECTION then -- TODO api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_DISCARD_CHAIR_AFTER_EJECTION *******") elseif event.id == world.event.S_EVENT_WEAPON_ADD then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_WEAPON_ADD *******") elseif event.id == world.event.S_EVENT_TRIGGER_ZONE then -- TODO api.TLO.LogWrite("TLC", "INFO", "******** S_EVENT_TRIGGER_ZONE *******") api.TLO.LogWrite("TLC", "INFO", "*** S_EVENT_TRIGGER_ZONE ***") api.TLO.LogWrite("TLC", "INFO", "******** S_EVENT_TRIGGER_ZONE *******") elseif event.id == world.event.S_EVENT_LANDING_QUALITY_MARK then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_LANDING_QUALITY_MARK *******") elseif event.id == world.event.S_EVENT_BDA then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_BDA *******") elseif event.id == world.event.S_EVENT_AI_ABORT_MISSION then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_AI_ABORT_MISSION *******") elseif event.id == world.event.S_EVENT_DAYNIGHT then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_DAYNIGHT *******") elseif event.id == world.event.S_EVENT_FLIGHT_TIME then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_FLIGHT_TIME *******") elseif event.id == world.event.S_EVENT_PLAYER_SELF_KILL_PILOT then -- TODO api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_PLAYER_SELF_KILL_PILOT *******") elseif event.id == world.event.S_EVENT_PLAYER_CAPTURE_AIRFIELD then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_PLAYER_CAPTURE_AIRFIELD *******") elseif event.id == world.event.S_EVENT_EMERGENCY_LANDING then -- TODO api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_EMERGENCY_LANDING *******") elseif event.id == world.event.S_EVENT_UNIT_CREATE_TASK then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_UNIT_CREATE_TASK *******") elseif event.id == world.event.S_EVENT_UNIT_DELETE_TASK then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_UNIT_DELETE_TASK *******") elseif event.id == world.event.S_EVENT_SIMULATION_START then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_SIMULATION_START *******") elseif event.id == world.event.S_EVENT_WEAPON_REARM then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_WEAPON_REARM *******") elseif event.id == world.event.S_EVENT_WEAPON_DROP then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_WEAPON_DROP *******") elseif event.id == world.event.S_EVENT_UNIT_TASK_TIMEOUT then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_UNIT_TASK_TIMEOUT *******") elseif event.id == world.event.S_EVENT_UNIT_TASK_STAGE then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_UNIT_TASK_STAGE *******") elseif event.id == world.event.S_EVENT_MAC_SUBTASK_SCORE then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_MAC_SUBTASK_SCORE *******") elseif event.id == world.event.S_EVENT_MISSION_RESTART then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_MISSION_RESTART *******") elseif event.id == world.event.S_EVENT_MISSION_WINNER then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_MISSION_WINNER *******") elseif event.id == world.event.S_EVENT_POSTPONED_TAKEOFF then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_POSTPONED_TAKEOFF *******") elseif event.id == world.event.S_EVENT_POSTPONED_LAND then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_POSTPONED_LAND *******") elseif event.id == world.event.S_EVENT_MAX then api.TLO.LogWrite("TLC", "INFO", "******* S_EVENT_MAX *******") end end I have a script that will log out to DCS.log when any of these events fire. NONE fire. IF I change the player skill to CLIENT, they fire correctly. As a SINGLE PLAYER with a player skill of PLAYER loading into a mission on my pc that I created as a SINGLE PLAYER mission, I expect to get the same events firing i.e. S_EVENT_PLAYER_ENTER_UNIT or S_EVENT_BIRTH So if they're not firing, surely that's a bug? But I can't give you a track that doesn't show anything. 2024-02-29 12:55:35.057 INFO VISUALIZER (Main): Preload() radius: 150000.000000 2024-02-29 12:55:35.060 INFO EDTERRAINGRAPHICS41 (Main): ITerrainGraphicsImpl4::forceLoading(): pos=(-316282, 1998.75, 521714), radius=150000 2024-02-29 12:55:35.192 INFO EDTERRAINGRAPHICS41 (21512): surface5 clean up LOD 0: left 1 released 0 2024-02-29 12:55:35.192 INFO EDTERRAINGRAPHICS41 (21512): surface5 clean up LOD 1: left 1 released 0 2024-02-29 12:55:35.192 INFO EDTERRAINGRAPHICS41 (21512): surface5 clean up 0.023900 ms 2024-02-29 12:55:36.653 WARNING BACKENDCOMMON (4888): Need to reprocess [DDS] image '/textures/F18C_1_DIFF_STAY_nm.dds' 2024-02-29 12:55:39.357 WARNING LOG (21488): 1 duplicate message(s) skipped. 2024-02-29 12:55:39.357 INFO VISUALIZER (Main): Preload() finished 2024-02-29 12:55:39.470 INFO Dispatcher (Main): precache units resources in slots 2024-02-29 12:55:39.470 INFO OpenKneeboard (Main): onSimulationStart 2024-02-29 12:55:39.470 INFO OpenKneeboard (Main): Aircraft: FA-18C_hornet 2024-02-29 12:55:39.484 INFO TLC (Main): ******* S_EVENT_SIMULATION_START ******* 2024-02-29 12:55:39.484 INFO LUA (Main): Lua: States: 679, CPU load: 2.5%, Mem: 417.7 MB 2024-02-29 12:55:39.485 INFO EDCORE (Main): Created game pool: h:2 n:3 l:2 2024-02-29 12:55:39.485 INFO Dispatcher (Main): loadMission Done: Сontrol passed to the player 2024-02-29 12:55:43.858 INFO WWT (Main): FA-18C_hornet 2024-02-29 12:55:43.873 INFO DCS-DTC (Main): Opened connection 2024-02-29 13:00:33.037 INFO LUA (Main): Lua: States: 679, CPU load: 1.7%, Mem: 479.1 MB 2024-02-29 13:00:34.620 INFO Dispatcher (Main): Stop 2024-02-29 13:00:34.641 INFO TLC (Main): ******* S_EVENT_MISSION_END ******* 2024-02-29 13:00:34.684 INFO WWT (Main): Export stop! 2024-02-29 13:00:34.993 INFO TERRAIN (Main): lSystem::CleanScenes() 2024-02-29 13:00:35.023 INFO VISUALIZER (21512): Stopped collection of statistic. 2024-02-29 12:49:48.000 ERROR_ONCE (): 2024-02-29 13:00:35.118 ERROR_ONCE DX11BACKEND (21512): render target 'uiTargetColor' not found 2024-02-29 13:00:35.118 ERROR_ONCE DX11BACKEND (21512): render target 'uiTargetDepth' not found 2024-02-29 13:00:35.118 INFO VISUALIZER (21512): DCSSceneRenderer initialized 2024-02-29 13:00:35.149 INFO EDCORE (Main): Created boot pool: n:12 2024-02-29 13:00:35.149 INFO EDCORE (Main): (dDispatcher)enterToState_:3 2024-02-29 13:00:35.152 INFO Dispatcher (Main): load terrain from ./Mods/terrains/Caucasus\terrain.cfg.lua 2024-02-29 13:00:35.176 INFO SECURITYCONTROL (Main): Loaded mods/terrains/caucasus/terrain.cfg.lua.pak.crypt 2024-02-29 13:00:35.177 INFO TERRAIN (Main): lSystem::load(./Mods/terrains/Caucasus\terrain.cfg.lua) 2024-02-29 13:00:35.177 INFO TERRAIN (Main): lSystem::openSession(./Mods/terrains/Caucasus\terrain.cfg.lua) 2024-02-29 13:00:35.188 INFO EDCORE (Main): 0.000 s terrain references 2024-02-29 13:00:35.236 INFO EDCORE (Main): 0.000 s terrain models 2024-02-29 13:00:35.247 INFO EDCORE (Main): 0.000 s terrain assets 2024-02-29 13:00:35.261 INFO EDCORE (Main): 0.000 s terrain assets2 2024-02-29 13:00:35.276 INFO EDCORE (Main): 0.000 s terrain landfile 2024-02-29 13:00:35.290 INFO EDCORE (Main): 0.000 s terrain surfaceTile 2024-02-29 13:00:35.304 INFO EDCORE (Main): 0.000 s terrain vfstextures 2024-02-29 13:00:35.318 INFO EDCORE (Main): 0.000 s terrain scene 2024-02-29 13:00:35.333 INFO EDCORE (Main): 0.000 s terrain roaddetails 2024-02-29 13:00:35.347 INFO EDCORE (Main): 0.000 s terrain forest 2024-02-29 13:00:35.361 INFO EDCORE (Main): 0.000 s terrain routes 2024-02-29 13:00:35.376 INFO EDCORE (Main): 0.000 s terrain surfacedetails 2024-02-29 13:00:35.389 INFO EDCORE (Main): 0.000 s terrain blocks 2024-02-29 13:00:35.403 INFO EDCORE (Main): 0.000 s terrain superficials 2024-02-29 13:00:35.417 INFO EDCORE (Main): 0.000 s terrain lma 2024-02-29 13:00:35.432 INFO EDCORE (Main): 0.000 s terrain vectordatasettings 2024-02-29 13:00:35.446 INFO EDCORE (Main): 0.000 s terrain navgraph 2024-02-29 13:00:35.460 INFO EDCORE (Main): 0.000 s terrain vti 2024-02-29 13:00:35.460 INFO EDTERRAIN4 (Main): terrain time: 0.282377 s 2024-02-29 13:00:35.465 INFO TERRAIN (Main): lSystem::InitScenes() 2024-02-29 13:00:35.476 INFO EDTERRAIN4 (Main): ITerrainContextImpl4::setTrafficDecimation(1) 2024-02-29 13:00:35.477 INFO EDTERRAIN4 (Main): ITerrainContextImpl4::setDate( day=21, month=6) 2024-02-29 13:00:35.477 INFO EDTERRAIN4 (Main): ITerrainContextImpl4::setTextureMode(full=1) 2024-02-29 13:00:35.478 INFO Dispatcher (Main): load terrain done 2024-02-29 13:00:35.478 INFO LUA-TERRAIN (Main): Init done 2024-02-29 13:00:35.490 INFO EDTERRAIN4 (21512): ITerrainContextImpl4::setTrafficDecimation(1) 2024-02-29 13:00:35.490 INFO EDTERRAIN4 (21512): ITerrainContextImpl4::setDate( day=21, month=6) 2024-02-29 13:00:35.490 INFO EDTERRAIN4 (21512): ITerrainContextImpl4::setTextureMode(full=1) So you can see from the DEBRIEFING screen there was supposedly an event 'took control' but there is nothing in the log, and the script hooked onEvent S_EVENT_TOOK_CONTROL never fired either.
ED Team BIGNEWY Posted February 29, 2024 ED Team Posted February 29, 2024 that is helpful, now we have some data to work with. Supplying the related mission may also help as I can ask our team to take a look thank you Forum rules - DCS Crashing? Try this first - Cleanup and Repair - Discord BIGNEWY#8703 - Youtube - Patch Status Windows 11, NVIDIA MSI RTX 3090, Intel® i9-10900K 3.70GHz, 5.30GHz Turbo, Corsair Hydro Series H150i Pro, 64GB DDR @3200, ASUS ROG Strix Z490-F Gaming, PIMAX Crystal
TEMPEST.114 Posted February 29, 2024 Author Posted February 29, 2024 So I'm getting the S_EVENT_MISSION_START and S_EVENT_MISSION_END events caught and logged. but nothing about the player coming alive, or entering unit or anything I can use about the player joining the mission.
Night Owl Posted February 29, 2024 Posted February 29, 2024 Check your debrief.log please. In single player events are saved there and not in the DCS.log
TEMPEST.114 Posted February 29, 2024 Author Posted February 29, 2024 4 minutes ago, BIGNEWY said: that is helpful, now we have some data to work with. Supplying the related mission may also help as I can ask our team to take a look thank you The mission is completely empty apart from a PLAYER aircraft dropped on the map and a DO SCRIPT on MISSION START to load my script that has the hooking into 'onEvent'. As I know you don't want my custom scripts, there is no point in giving the mission. Literally drop an F18 anywhere on the map, set player skill to PLAYER 1 minute ago, Night Owl said: Check your debrief.log please. In single player events are saved there and not in the DCS.log That's not what I'm talking about, yes the 'events' listed on the debrief screen are in debrief.log, but that's irrelevant to this bug.
Night Owl Posted February 29, 2024 Posted February 29, 2024 So the event is there, but you can't access it through the scripting environment. Is that the issue?
Night Owl Posted February 29, 2024 Posted February 29, 2024 (edited) I can't find where you add the event handler in your script. world.addEventHandler(TLC) Edited February 29, 2024 by Night Owl
ED Team BIGNEWY Posted February 29, 2024 ED Team Posted February 29, 2024 this is why we ask for the track replay or the mission example it can be checked, many here willing to check it out. Forum rules - DCS Crashing? Try this first - Cleanup and Repair - Discord BIGNEWY#8703 - Youtube - Patch Status Windows 11, NVIDIA MSI RTX 3090, Intel® i9-10900K 3.70GHz, 5.30GHz Turbo, Corsair Hydro Series H150i Pro, 64GB DDR @3200, ASUS ROG Strix Z490-F Gaming, PIMAX Crystal
TEMPEST.114 Posted February 29, 2024 Author Posted February 29, 2024 46 minutes ago, Night Owl said: I can't find where you add the event handler in your script. world.addEventHandler(TLC) I haven’t given you my whole script. I included only the logging event function. I keep repeating but it doesn’t get through - everything works if player skill is CLIENT but not if PLAYER. SO OBVIOUSLY I’m hooking in correctly.
ED Team BIGNEWY Posted February 29, 2024 ED Team Posted February 29, 2024 Ok I have some information Both S_EVENT_PLAYER_ENTER_UNIT and S_EVENT_PLAYER_LEAVE_UNIT are reported issues for MP. Forum rules - DCS Crashing? Try this first - Cleanup and Repair - Discord BIGNEWY#8703 - Youtube - Patch Status Windows 11, NVIDIA MSI RTX 3090, Intel® i9-10900K 3.70GHz, 5.30GHz Turbo, Corsair Hydro Series H150i Pro, 64GB DDR @3200, ASUS ROG Strix Z490-F Gaming, PIMAX Crystal
Night Owl Posted February 29, 2024 Posted February 29, 2024 OBVIOUSLY it would make more sense for you to include all the necessary parts of the script instead. As well as an example log of it working for client and not for player units.
Night Owl Posted February 29, 2024 Posted February 29, 2024 When you run a SP mission with a player slot, the simulation starts at the same time as the player spawns, so you won't get an ENTER_UNIT event. There is also no point in having them since they will always be at the exact same time the simulation starts. But with client slots, the mission starts before you select a spawn, so you will get these events. 1
Pikey Posted February 29, 2024 Posted February 29, 2024 I've verified S_EVENT_PLAYER_ENTER_UNIT and S_EVENT_PLAYER_LEAVE_UNIT on the current public build. From Mission Editor, as client or player slot, both work. From MP, both work as the host only. From MP as a client, both fail to fire, as already reported. S_EVENT_BIRTH was fine in all circumstances S_EVENT_TOOK_CONTROL, I have never seen work.Never used it an dnot sure how its supposed to work. We did see that you can additionally not get the S_EVENT_PLAYER_ENTER_UNIT to trigger if the script is launched in a single player mission with no other slots (true player experience) but this is due to a timing issue as the script and player begin running at the same time. It's expected. It would have saved a lot of time if the script or mission had been supplied in a working state. ___________________________________________________________________________ SIMPLE SCENERY SAVING * SIMPLE GROUP SAVING * SIMPLE STATIC SAVING *
TEMPEST.114 Posted February 29, 2024 Author Posted February 29, 2024 2 hours ago, BIGNEWY said: Ok I have some information Both S_EVENT_PLAYER_ENTER_UNIT and S_EVENT_PLAYER_LEAVE_UNIT are reported issues for MP. I know they are. I'm failing to understand how what I've written is confusing everyone. They are NOT WOKRING IN SINGLE PLAYER (I.E. No 'Dedicated Server', No Multiplayer server). I said this in the first post These are NOT firing for SINGLE PLAYER where pilot skill level is PLAYER running on a single normal PC running DCS NOT DCS SERVER. 7 minutes ago, Pikey said: I've verified S_EVENT_PLAYER_ENTER_UNIT and S_EVENT_PLAYER_LEAVE_UNIT on the current public build. From Mission Editor, as client or player slot, both work. From MP, both work as the host only. From MP as a client, both fail to fire, as already reported. S_EVENT_BIRTH was fine in all circumstances S_EVENT_TOOK_CONTROL, I have never seen work.Never used it an dnot sure how its supposed to work. We did see that you can additionally not get the S_EVENT_PLAYER_ENTER_UNIT to trigger if the script is launched in a single player mission with no other slots (true player experience) but this is due to a timing issue as the script and player begin running at the same time. It's expected. It would have saved a lot of time if the script or mission had been supplied in a working state. Every time I've previously reported a bug that I've found using my scripts, you lot have always told me 'DON'T SUPPLY YOUR SCRIPTS OR A MISSION WITH YOUR SCRIPTS'. And if you scroll up you can see the DCS.log that shows that NO BIRTH OR ENTER UNIT are firing.
Pikey Posted February 29, 2024 Posted February 29, 2024 8 minutes ago, Elphaba said: I know they are. I'm failing to understand how what I've written is confusing everyone. They are NOT WOKRING IN SINGLE PLAYER (I.E. No 'Dedicated Server', No Multiplayer server). I said this in the first post These are NOT firing for SINGLE PLAYER where pilot skill level is PLAYER running on a single normal PC running DCS NOT DCS SERVER. Every time I've previously reported a bug that I've found using my scripts, you lot have always told me 'DON'T SUPPLY YOUR SCRIPTS OR A MISSION WITH YOUR SCRIPTS'. And if you scroll up you can see the DCS.log that shows that NO BIRTH OR ENTER UNIT are firing. I tested it, its working. ___________________________________________________________________________ SIMPLE SCENERY SAVING * SIMPLE GROUP SAVING * SIMPLE STATIC SAVING *
TEMPEST.114 Posted February 29, 2024 Author Posted February 29, 2024 Okay, just to prove it again: Same mission file, same script. This time the player skill level is CLIENT Here's the log: 2024-02-29 17:02:39.063 INFO COCKPITBASE (Main): WebRTC VOIP init: registered radio receiver "ARC-210 Guard Receiver" with id - 3 2024-02-29 17:02:39.063 INFO COCKPITBASE (Main): WebRTC VOIP init: added guard receiver - ARC-210 Guard Receiver 2024-02-29 17:02:41.883 WARNING WORLD (Main): ModelTimeQuantizer: ANTIFREEZE ENABLED 2024-02-29 17:02:41.883 INFO DCS-DTC (Main): Opened connection 2024-02-29 17:02:41.911 INFO COCKPITBASE (Main): WebRTC VOIP init: registered radio receiver "Base TACAN receiver" with id - 4 2024-02-29 17:02:41.911 INFO COCKPITBASE (Main): lua state still active MACROS, 55 (status undefined) 2024-02-29 17:02:41.912 INFO COCKPITBASE (Main): lua state still active TGP_INTERFACE, 62 (status undefined) 2024-02-29 17:02:41.924 INFO SCRIPTING (Main): ******* S_EVENT_BIRTH ******* 2024-02-29 17:02:41.925 INFO SCRIPTING (Main): ******* S_EVENT_PLAYER_ENTER_UNIT ******* 2024-02-29 17:02:41.925 INFO WORLDGENERAL (Main): loaded from mission Scripts/World/birds.lua 2024-02-29 17:02:41.925 INFO APP (Main): dbox not found , skip 2024-02-29 17:02:41.959 INFO LUA (Main): Lua: States: 679, CPU load: 4.0%, Mem: 437.9 MB 2024-02-29 17:02:41.960 INFO EDTERRAINGRAPHICS41 (6316): surface5 gc() LOD 0 4 squares 2024-02-29 17:02:41.960 INFO EDTERRAINGRAPHICS41 (6316): surface5 gc() LOD 1 8 squares 2024-02-29 17:02:41.961 INFO EDTERRAINGRAPHICS41 (6316): surface5 gc() LOD 2 8 squares 2024-02-29 17:02:41.961 INFO EDTERRAINGRAPHICS41 (6316): surface5 gc() LOD 3 27 squares 2024-02-29 17:02:41.961 INFO EDTERRAINGRAPHICS41 (6316): surface5 gc() 1.711100 ms 2024-02-29 17:02:43.372 INFO WWT (Main): FA-18C_hornet 2024-02-29 17:02:44.642 WARNING BACKENDCOMMON (5448): Need to reprocess [DDS] image '/textures/F18C_1_DIFF_STAY_nm.dds' And here is the log when player skill is set to PLAYER 2024-02-29 17:05:18.934 INFO COCKPITBASE (Main): WebRTC VOIP init: registered radio receiver "ARC-210 Guard Receiver" with id - 3 2024-02-29 17:05:18.934 INFO COCKPITBASE (Main): WebRTC VOIP init: added guard receiver - ARC-210 Guard Receiver 2024-02-29 17:05:21.559 INFO COCKPITBASE (Main): WebRTC VOIP init: registered radio receiver "Base TACAN receiver" with id - 4 2024-02-29 17:05:21.559 INFO COCKPITBASE (Main): lua state still active MACROS, 55 (status undefined) 2024-02-29 17:05:21.560 INFO COCKPITBASE (Main): lua state still active TGP_INTERFACE, 62 (status undefined) 2024-02-29 17:05:21.570 INFO WORLDGENERAL (Main): loaded from mission Scripts/World/birds.lua 2024-02-29 17:05:21.596 INFO WWT (Main): Winwing export installed! 2024-02-29 17:05:21.596 INFO WWT (Main): Export start! 2024-02-29 17:05:21.596 INFO DCS-DTC (Main): Initialized DTC 2024-02-29 17:05:21.623 INFO VISUALIZER (Main): Preload() radius: 150000.000000 2024-02-29 17:05:21.626 INFO EDTERRAINGRAPHICS41 (Main): ITerrainGraphicsImpl4::forceLoading(): pos=(-316282, 1998.75, 521714), radius=150000 2024-02-29 17:05:21.751 INFO EDTERRAINGRAPHICS41 (6316): surface5 clean up LOD 0: left 1 released 0 2024-02-29 17:05:21.751 INFO EDTERRAINGRAPHICS41 (6316): surface5 clean up LOD 1: left 1 released 0 2024-02-29 17:05:21.751 INFO EDTERRAINGRAPHICS41 (6316): surface5 clean up 0.031700 ms 2024-02-29 17:05:23.286 WARNING BACKENDCOMMON (3388): Need to reprocess [DDS] image '/textures/F18C_1_DIFF_STAY_nm.dds' 2024-02-29 17:05:25.983 WARNING LOG (2172): 1 duplicate message(s) skipped. 2024-02-29 17:05:25.983 INFO VISUALIZER (Main): Preload() finished 2024-02-29 17:05:26.102 INFO Dispatcher (Main): precache units resources in slots 2024-02-29 17:05:26.102 INFO OpenKneeboard (Main): onSimulationStart 2024-02-29 17:05:26.102 INFO OpenKneeboard (Main): Aircraft: FA-18C_hornet 2024-02-29 17:05:26.113 INFO SCRIPTING (Main): ******* S_EVENT_SIMULATION_START ******* 2024-02-29 17:05:26.113 INFO LUA (Main): Lua: States: 679, CPU load: 2.0%, Mem: 445.2 MB 2024-02-29 17:05:26.114 INFO EDCORE (Main): Created game pool: h:2 n:3 l:2 2024-02-29 17:05:26.114 INFO Dispatcher (Main): loadMission Done: Сontrol passed to the player 2024-02-29 17:05:26.140 INFO DXGUI_WIN_ADAPTER (Main): resize main window to [1920, 1080] 2024-02-29 17:06:25.478 INFO WWT (Main): FA-18C_hornet 2024-02-29 17:06:25.493 INFO DCS-DTC (Main): Opened connection NOTICE THERE ARE NO BIRTH OR ENTER UNIT LOGS. Here is the mission file emptyMissionBarPlayerAircraft.miz Here is the script EventFailureDemo.lua 40 minutes ago, Night Owl said: When you run a SP mission with a player slot, the simulation starts at the same time as the player spawns, so you won't get an ENTER_UNIT event. There is also no point in having them since they will always be at the exact same time the simulation starts. But with client slots, the mission starts before you select a spawn, so you will get these events. Shouldn't you still get a birth event?
Solution Pikey Posted February 29, 2024 Solution Posted February 29, 2024 30 minutes ago, Pikey said: We did see that you can additionally not get the S_EVENT_PLAYER_ENTER_UNIT to trigger if the script is launched in a single player mission with no other slots (true player experience) but this is due to a timing issue as the script and player begin running at the same time. It's expected. If there's nothing else playable, Player enter unit wont fire at the same time as the mission starts. You can see this happen if you add anything else playable. In this circumstance player enter unit is the same as mission start. It fires whenever the player is in the game but hasn't taken a slot. Same as birth. There's several of these events that have never been implemented properly and/or have quirky interactions in SP/MP as host/MP as client. Is there something you are trying to achieve (rather than testing the events) let me know. ___________________________________________________________________________ SIMPLE SCENERY SAVING * SIMPLE GROUP SAVING * SIMPLE STATIC SAVING *
TEMPEST.114 Posted February 29, 2024 Author Posted February 29, 2024 (edited) 7 minutes ago, Pikey said: If there's nothing else playable, Player enter unit wont fire at the same time as the mission starts. You can see this happen if you add anything else playable. In this circumstance player enter unit is the same as mission start. It fires whenever the player is in the game but hasn't taken a slot. Same as birth. There's several of these events that have never been implemented properly and/or have quirky interactions in SP/MP as host/MP as client. Is there something you are trying to achieve (rather than testing the events) let me know. So Birth doesn't mean birth in single player... Sigh, okay. So now I'm going to need to determine from just 'MISSION_START' if the mission is running Single Player or Multiplayer. :? But yeah, this is a problem. Because when a player loads into an aircraft, I run a whole slew of scripts (Carrier Control, Airbase and Diversions, ATIS, Asset Control, Tanker and AWACS controllers, Interception Engine, etc etc etc.) But for all those scripts to work I need the players UNIT. I normally get the unit from the Birth or Enter Unit events. But now, in single player, with nothing firing, my scripts now have to somehow 'KNOW' that the mission is running single player AND find the players UNIT all from the MISSION START event - but when in Multiplayer, I won't do any of that and I'll wait for the proper events to fire... <head in hands> That's what I'm now trying to achieve. And because the Mission Start event has no useful information in the initiator (https://wiki.hoggitworld.com/view/DCS_event_mission_start) then I'm kinda buggered. Edited February 29, 2024 by Elphaba
Night Owl Posted February 29, 2024 Posted February 29, 2024 You can just set the slots to client, even if used as single player, and it will give you the desired event. By selecting player you define that there is just one player which spawns at exactly mission start, so any birth event is pointless. But in general you can't expect to have the same scripts work both in single player and multiplayer. Several things work differently in multiplayer
TEMPEST.114 Posted February 29, 2024 Author Posted February 29, 2024 1 minute ago, Night Owl said: You can just set the slots to client, even if used as single player, and it will give you the desired event. By selecting player you define that there is just one player which spawns at exactly mission start, so any birth event is pointless. But in general you can't expect to have the same scripts work both in single player and multiplayer. Several things work differently in multiplayer I can do that if I'm in control of the missions, but not if they're out in the wild. I was trying to cover all eventualities in my scripts so no matter what the end users did, it would cope.
Pikey Posted February 29, 2024 Posted February 29, 2024 Hmm, thats a tough one. I had a quesiton before how does the script know if it is running on a server or not. WIthout anything else, only in the mission environment im not sure it is possible without either the plugin environment or some other check. Basically seems like you need to know that so you can write the script to cope with the differences in MP or SP (or host/client). I don't know how to do that in only the mission scripting off the top of my head. Anyone have an idea? It might be easiest to put a client down for a TF-51 that no one will use to just get all the right birth and enter unit events. ___________________________________________________________________________ SIMPLE SCENERY SAVING * SIMPLE GROUP SAVING * SIMPLE STATIC SAVING *
Recommended Posts