FlightControl Posted April 27, 2017 Share Posted April 27, 2017 (edited) A scripting engine issue... In a multi player setup (MPS), when a player enters any unit from a client connected PC, the event S_EVENT_PLAYER_ENTER_UNIT is not fired on the server! When a player enters a slot (a plane) from a client connected PC, the S_EVENT_BIRTH is fired on the server, which is okay. But again, no S_EVENT_PLAYER_ENTER_UNIT is fired on the server. When a player enters an already alive unit using the CA module (so on the map, select a unit and press ALT-J) on a client connected PC, the S_EVENT_PLAYER_ENTER_UNIT is not fired on the server. This is a problem, because there is no CPU efficient way to know when a player enters a unit in a MPS. The event S_EVENT_PLAYER_ENTER_UNIT is correctly working in a SP setup though. As a workaround, the only way now for me to know if a player is in a unit or not, is to iterate through the set of units and check the player name, and do this continuously. This is not ideal ... I will leave it up to DCS developer team to evaluate the urgency of this issue. I can imagine that testing and fixing this may require some effort. FC Edited May 2, 2017 by BIGNEWY TITLE [TABLE][sIGPIC][/sIGPIC]| Join MOOSE community on: DISCORD :thumbup: Website of the MOOSE LUA Framework. MOOSE framework Downloads. Check out Example Missions to try out and learn. MOOSE YouTube Channel for live demonstrations and tutorials. [/TABLE] Link to comment Share on other sites More sharing options...
Pikey Posted April 27, 2017 Share Posted April 27, 2017 So we had a conversation after this on slack and working around the problem is possible with some game overhead. But I wanted to lead the discussion into where the design is going with DCS, because we, as second guessers are quite blind in this regard. To develop a framework without having access to the specific product direction can just be hit or miss and wasteful because tomorrow some things might just be... GONE. And HAS occurred in DCS history (hello/goodbye client:destroy()), welcome API net.kick(id, message). I saw this 18 months ago: https://forums.eagle.ru/showthread.php?t=158634 Let's talk about Dedicated server, the API introduced in 1.5 and ED's design direction here. "Product manager hat goes on." WISH: "I want to build a product that is better suited to managing server side operations, that handles players in a multiplayer environment and provides tools for admins to control missions without there being risk to player experience. This is to satisfy my multiplayer community, which is important to me for growth of the more complex areas of the sim." COUNTER: "Dedicated server is expensive in dev time to do and has less impact on my target market, the single player experience." PROPOSAL: "Give the community a set of tools they can do it themselves with...saves money." What have we seen? 2015, release of 1.5 from 1.2 - a set of API tools appear that allow management to the server specifically giving access to slots, connections, players now with UIDs. Ciribob made part of this completely accessible to non skilled mission designers and customisable. Yet look at the post reads? 3-400? That's your bog standard forum reader bumping into it. You can tell from the forums what sells and where your market is. "A-10C has a graphical defect with the rivets under the number 1 pylon." 1000's of views. "Multiplayer arguments over balancing in PvP" a lot of views, but not as many. "Single player missions" high, "Multiplayer how to scripting for admins that make MP better" bleh....several hundreds of views. representatively, theres how you spend your budget, it's oversimplified but the figures are there. So where is DCS headed? Wherever it is in the case of Multiplayer, history says it's going slow. I've been here 10 years and my hair is starting to go grey and not just on my head. The events firing for entering on multiplayer sit somewhere between, "Pointless, because the API supports what the community has asked for, with MP" and "Legacy because we are developing something the enhance it more server side, just very, very slowly". I don't see it being fixed because the point is from ED's side, "Who needs to assess and count clients outside of managing entrance and exit to the server from the server side?" And that subset of people number dozens worldwide. Rhetorical question to ED here, "Do you see the consumer benefit to fixing this and what is the effort level required?" Our question: "Has ED developed server tools with the API to replace many of the traditional functions in the game?" Answer is, we CAN see where this is headed. Look at the development of the API and documentation since November 2015. Look at the number of GameGui.lua scripts we can see populating servers now. I just checked the API again for the first time in ages and it's pretty much a tutorial. Someone payed for that effort in dev time and that's the only development that's really active at this time. Unfortunately our problem exists in communicating with the two different LUA environments. As it says in the API, that environment can only see "states". The design of it is for server management, but there's not much taking into account doing more clever things with it and putting them into games bar moving flags around, which seems almost archaic. Now we CAN workaround being unable to detect the event of a player being in a unit inside the game only, but I expect it to fall into decay for the historical explanation above and the direction ED has already taken in design. But my advice would be to build a moose connector for the player activities that can manage the information between the states, rather than rely on these MP events which are clearly being deprecated. Until then, Players will have to have less than optimal scripting that may impact their performance if they want dynamic content based on what slot they jump to on a server. As a side note, ED, the question above, about benefits to the end user, the answer is that we want players to join a multiplayer server and have content tuned for the slot they take. We don't want fighters spawning when they take an A-10C slot, we want ships for Viggens, low threat vehicles and transport for helicopters, fighters for Mirages and so on. But not at once, since the engine can't handle that.and neither can players. A scripting engine issue... In a multi player setup (MPS), when a player enters any unit from a client connected PC, the event S_EVENT_PLAYER_ENTER_UNIT is not fired on the server! When a player enters a slot (a plane) from a client connected PC, the S_EVENT_BIRTH is fired on the server, which is okay. But again, no S_EVENT_PLAYER_ENTER_UNIT is fired on the server. When a player enters an already alive unit using the CA module (so on the map, select a unit and press ALT-J) on a client connected PC, the S_EVENT_PLAYER_ENTER_UNIT is not fired on the server. This is a problem, because there is no CPU efficient way to know when a player enters a unit in a MPS. The event S_EVENT_PLAYER_ENTER_UNIT is correctly working in a SP setup though. As a workaround, the only way now for me to know if a player is in a unit or not, is to iterate through the set of units and check the player name, and do this continuously. This is not ideal ... I will leave it up to DCS developer team to evaluate the urgency of this issue. I can imagine that testing and fixing this may require some effort. FC ___________________________________________________________________________ SIMPLE SCENERY SAVING * SIMPLE GROUP SAVING * SIMPLE STATIC SAVING * Link to comment Share on other sites More sharing options...
FlightControl Posted May 2, 2017 Author Share Posted May 2, 2017 (edited) Find the following VIDEO showing what the error is about and how to simulate it. The demonstration missions to re-simulate this error can be found here: https://github.com/FlightControl-Master/BUG_REPORT_MISSIONS/tree/master/BUG-001%20-%20S_EVENT_PLAYER_ENTER_UNIT We hope that feedback can be given what is the root cause of this, and if this can be fixed soon. Sven Edited May 2, 2017 by FlightControl [TABLE][sIGPIC][/sIGPIC]| Join MOOSE community on: DISCORD :thumbup: Website of the MOOSE LUA Framework. MOOSE framework Downloads. Check out Example Missions to try out and learn. MOOSE YouTube Channel for live demonstrations and tutorials. [/TABLE] Link to comment Share on other sites More sharing options...
Pikey Posted May 2, 2017 Share Posted May 2, 2017 (edited) Steps to reproduce: 1. Run the attached mission as a server-host in multiplayer. 2. Enter a unit and shoot and leave a unit. Regard messaging and logs. 3. Observe the S_EVENT_PLAYER_ENTER_UNIT event is fired and recorded by the ED event handler 4. Connect to the same server as a second client only. 5. Repeat the tests. Notice that this different client no longer fires the enter unit event, but continues to show birth, death and other events as normal. Also present on 2.0 live.BUG-001 - S_EVENT_PLAYER_ENTER_UNIT - DCS 1.5.6.4818.miz Edited May 2, 2017 by Pikey numbering. can't count :) ___________________________________________________________________________ SIMPLE SCENERY SAVING * SIMPLE GROUP SAVING * SIMPLE STATIC SAVING * Link to comment Share on other sites More sharing options...
ED Team BIGNEWY Posted May 2, 2017 ED Team Share Posted May 2, 2017 Hi guys and thanks for the effort and PM. This one is reported internally already, I will see what I can do, but no promises #0026597 1 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, HP Reverb G2 Link to comment Share on other sites More sharing options...
ED Team NineLine Posted May 2, 2017 ED Team Share Posted May 2, 2017 Find the following VIDEO showing what the error is about and how to simulate it. The demonstration missions to re-simulate this error can be found here: https://github.com/FlightControl-Master/BUG_REPORT_MISSIONS/tree/master/BUG-001%20-%20S_EVENT_PLAYER_ENTER_UNIT We hope that feedback can be given what is the root cause of this, and if this can be fixed soon. Sven I have added your youtube video to the report, BN is looking into more info as well. Its been around for quite a while, will see if we can poke the hive :D Forum Rules • My YouTube • My Discord - NineLine#0440• **How to Report a Bug** Link to comment Share on other sites More sharing options...
Whiplash Posted May 2, 2017 Share Posted May 2, 2017 (edited) I did some testing with your test mission FS and it appears to me that it might be a unit based bug. I am testing in DCS 2.0.5.3889, I am a single server client and when I jump into a CA unit I get the same results that you show in your video where the get user name is a blank string. Then I edited your mission to include a spit, mustang, f86, and gazelle. In those units my client name appears. This might explain why it was believed to be fixed in previous versions. I am not sure what this means, I'll continue to host this mission if anyone else wants to log in and test for themselves as I do not own another machine to log into the server so I can not test it as an isolated client at the moment. Server name: DoW Test Server Password: dow Edited May 2, 2017 by Whiplash [sIGPIC][/sIGPIC] "Adulthood is like looking both ways before you cross the street and then getting hit by an airplane." Dogs of War Dedicated WWII Server Thread Link to comment Share on other sites More sharing options...
FlightControl Posted May 2, 2017 Author Share Posted May 2, 2017 All this is directly on the server, no clients involved. I know. Try now to connect a client to the machine. No event is fired. [TABLE][sIGPIC][/sIGPIC]| Join MOOSE community on: DISCORD :thumbup: Website of the MOOSE LUA Framework. MOOSE framework Downloads. Check out Example Missions to try out and learn. MOOSE YouTube Channel for live demonstrations and tutorials. [/TABLE] Link to comment Share on other sites More sharing options...
FlightControl Posted May 15, 2017 Author Share Posted May 15, 2017 Is there an update on this issue from the dev team, anybody knows? [TABLE][sIGPIC][/sIGPIC]| Join MOOSE community on: DISCORD :thumbup: Website of the MOOSE LUA Framework. MOOSE framework Downloads. Check out Example Missions to try out and learn. MOOSE YouTube Channel for live demonstrations and tutorials. [/TABLE] Link to comment Share on other sites More sharing options...
sunski34 Posted May 16, 2017 Share Posted May 16, 2017 (edited) Yes I noticed such a problem on that event a few month ago when writing the very early version of ATME ; same for S_EVENT_PLAYER_LEAVE_UNIT in last 2016 but now fixed by ED. So I think the best way is to have another approach than using thoses events. Here is my thread : https://forums.eagle.ru/showthread.php?t=173505 Edited May 16, 2017 by sunski34 Link to comment Share on other sites More sharing options...
sunski34 Posted May 16, 2017 Share Posted May 16, 2017 A good workaround is to use getPlayers scripting function combined with S_EVENT_BIRTH and a players adjust function when a player leaves a mission Link to comment Share on other sites More sharing options...
FlightControl Posted May 16, 2017 Author Share Posted May 16, 2017 Yes I noticed such a problem on that event a few month ago when writing the very early version of ATME ; same for S_EVENT_PLAYER_LEAVE_UNIT in last 2016 but now fixed by ED. So I think the best way is to have another approach than using thoses events. Here is my thread : https://forums.eagle.ru/showthread.php?t=173505 No avail for the the other approach. For ground units, the Unit:getPlayerName() returns a blank string ... [TABLE][sIGPIC][/sIGPIC]| Join MOOSE community on: DISCORD :thumbup: Website of the MOOSE LUA Framework. MOOSE framework Downloads. Check out Example Missions to try out and learn. MOOSE YouTube Channel for live demonstrations and tutorials. [/TABLE] Link to comment Share on other sites More sharing options...
sunski34 Posted May 16, 2017 Share Posted May 16, 2017 (edited) Just use coalition.getPlayers(...) to have all players in a mission when needed. After, a basic logic has to be written to manage that combined with S_EVEN_BIRTH That's working. As you can see, I reported such a same problem in Sept 2016 so ... wait and see Edited May 16, 2017 by sunski34 Link to comment Share on other sites More sharing options...
FlightControl Posted May 16, 2017 Author Share Posted May 16, 2017 (edited) sunki34, thanks for the suggestion by the way. Edited May 16, 2017 by FlightControl [TABLE][sIGPIC][/sIGPIC]| Join MOOSE community on: DISCORD :thumbup: Website of the MOOSE LUA Framework. MOOSE framework Downloads. Check out Example Missions to try out and learn. MOOSE YouTube Channel for live demonstrations and tutorials. [/TABLE] Link to comment Share on other sites More sharing options...
sunski34 Posted May 16, 2017 Share Posted May 16, 2017 you're welcome Link to comment Share on other sites More sharing options...
FlightControl Posted May 16, 2017 Author Share Posted May 16, 2017 Just use coalition.getPlayers(...) to have all players in a mission when needed. After, a basic logic has to be written to manage that combined with S_EVEN_BIRTH That's working. As you can see, I reported such a same problem in Sept 2016 so ... wait and see Wait, spare the work. Tanks DO have an event birth, but you cannot use the event birth to detect if a person entered a tank... [TABLE][sIGPIC][/sIGPIC]| Join MOOSE community on: DISCORD :thumbup: Website of the MOOSE LUA Framework. MOOSE framework Downloads. Check out Example Missions to try out and learn. MOOSE YouTube Channel for live demonstrations and tutorials. [/TABLE] Link to comment Share on other sites More sharing options...
sunski34 Posted May 16, 2017 Share Posted May 16, 2017 I didn't test that with CA. So actually, I never know if a player took the control of a AI unit. But of course, S_EVENT_BIRTH is not good in that case. Did S_EVENT_PLAYER_ENTER_UNIT work in that case in the past, before DCS 1.5.4 or that event was already limited to aircrafts ? Link to comment Share on other sites More sharing options...
FlightControl Posted May 16, 2017 Author Share Posted May 16, 2017 I didn't test that with CA. So actually, I never know if a player took the control of a AI unit. But of course, S_EVENT_BIRTH is not good in that case. Did S_EVENT_PLAYER_ENTER_UNIT work in that case in the past, before DCS 1.5.4 or that event was already limited to aircrafts ? Since the release of 1.5.0, this event stopped working, which now about .... 2 years? Sven [TABLE][sIGPIC][/sIGPIC]| Join MOOSE community on: DISCORD :thumbup: Website of the MOOSE LUA Framework. MOOSE framework Downloads. Check out Example Missions to try out and learn. MOOSE YouTube Channel for live demonstrations and tutorials. [/TABLE] Link to comment Share on other sites More sharing options...
FlightControl Posted September 14, 2017 Author Share Posted September 14, 2017 Is there an update on this item from ED? [TABLE][sIGPIC][/sIGPIC]| Join MOOSE community on: DISCORD :thumbup: Website of the MOOSE LUA Framework. MOOSE framework Downloads. Check out Example Missions to try out and learn. MOOSE YouTube Channel for live demonstrations and tutorials. [/TABLE] Link to comment Share on other sites More sharing options...
FlightControl Posted October 6, 2017 Author Share Posted October 6, 2017 So this is the answer: From BIGNEWY: https://forums.eagle.ru/showthread.php?p=3260553#post3260553 Reported already 0026597 It is on the list but has a lower priority then other issues currently Please do not make new threads for the same issue https://forums.eagle.ru/showthread.p...YER_ENTER_UNIT thanks Okay, is there a good understanding what is the impact of this error at ED? [TABLE][sIGPIC][/sIGPIC]| Join MOOSE community on: DISCORD :thumbup: Website of the MOOSE LUA Framework. MOOSE framework Downloads. Check out Example Missions to try out and learn. MOOSE YouTube Channel for live demonstrations and tutorials. [/TABLE] Link to comment Share on other sites More sharing options...
ED Team BIGNEWY Posted October 6, 2017 ED Team Share Posted October 6, 2017 So this is the answer: From BIGNEWY: https://forums.eagle.ru/showthread.php?p=3260553#post3260553 Okay, is there a good understanding what is the impact of this error at ED? We have a large bug list, blocks / crashes come first then major issues, these are dealt with before minor issues, and this is currently a minor issue. ED a fully aware of the impact, but it does not stop users from enjoying MP currently. I understand your frustration however your favourite bugs are in a queue like all the other bugs. 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, HP Reverb G2 Link to comment Share on other sites More sharing options...
FlightControl Posted October 6, 2017 Author Share Posted October 6, 2017 It never worked actually. It never did. On top: getPlayerName() is returning a blank string for CA units in MP. So you don't know WHO is in the CA unit. I will post a test mission to resimulate this problem in MP. One that clearly demonstrates why this is needed, which is: 1. One cannot detect which player is in which CA unit, which impact the scoring. 2. Menus and other settings are generated upon the S_EVENT_PLAYER_ENTER_UNIT event, which is not detected, and therefore, no menus are generated. I have tried every workaround imaginable that i could think off. And it just is not doable to work around this issue. 1. BIRTH events are working for planes, but are not valid for CA units, as they are already alive. 2. getPlayer returns a blank string, which means that you can detect that there IS a player in the CA unit, but you don't know WHO. 3. coalition.getPlayers() is neither returning the player. So, in a nuttshell. Until this issue is fixed, ground operations support in MOOSE will be very limited... - No scoring for players hitting and destroying CA units. - No group menus set for players entering a CA unit. - No messages upon specific events directed to CA groups where the player is in. In other words, tasking for CA units is simply not working and is not functional. Only for planes and helicopters. ... [TABLE][sIGPIC][/sIGPIC]| Join MOOSE community on: DISCORD :thumbup: Website of the MOOSE LUA Framework. MOOSE framework Downloads. Check out Example Missions to try out and learn. MOOSE YouTube Channel for live demonstrations and tutorials. [/TABLE] Link to comment Share on other sites More sharing options...
ED Team BIGNEWY Posted October 6, 2017 ED Team Share Posted October 6, 2017 It never worked actually. It never did. I understand, I did not say it did work. On top: getPlayerName() is returning a blank string for CA units in MP. So you don't know WHO is in the CA unit. I will post a test mission to resimulate this problem in MP. One that clearly demonstrates why this is needed, which is: 1. One cannot detect which player is in which CA unit, which impact the scoring. 2. Menus and other settings are generated upon the S_EVENT_PLAYER_ENTER_UNIT event, which is not detected, and therefore, no menus are generated. I have tried every workaround imaginable that i could think off. And it just is not doable to work around this issue. 1. BIRTH events are working for planes, but are not valid for CA units, as they are already alive. 2. getPlayer returns a blank string, which means that you can detect that there IS a player in the CA unit, but you don't know WHO. 3. coalition.getPlayers() is neither returning the player. So, in a nuttshell. Until this issue is fixed, ground operations support in MOOSE will be very limited... - No scoring for players hitting and destroying CA units. - No group menus set for players entering a CA unit. - No messages upon specific events directed to CA groups where the player is in. In other words, tasking for CA units is simply not working and is not functional. Only for planes and helicopters. ... Scoring for CA is a known issue and will be addressed in the future. As mentioned the S_EVENT_PLAYER_ENTER_UNIT event is reported, I can not do a lot more. 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, HP Reverb G2 Link to comment Share on other sites More sharing options...
Johnny_Rico Posted October 23, 2017 Share Posted October 23, 2017 fingers crossed this gets resolved soon METAR weather for DCS World missions Guide to help out new DCS MOOSE Users -> HERE Havoc Company Dedicated server info Connect IP: 94.23.215.203 SRS enabled - freqs - Main = 243, A2A = 244, A2G = 245 Please contact me HERE if you have any server feedback or METAR issues/requests Link to comment Share on other sites More sharing options...
Wingthor Posted October 23, 2017 Share Posted October 23, 2017 Lack of priority regarding S_EVENT_PLAYER_ENTER_UNIT bug So I have noticed ED is aware of the issue covered in this thread , and I assume they have knowledge to fix it. So its "boiling down" to priority. Many of us is developing missions in a multiplayer environment, and want to make task oriented missions due to dynamic attendance. Its hard to predict how many players are joining into a mission. Having a way to determine if a player is present in a multi player environment, is essential to make missions scaled to current presentation of players. I do realize this bug is not directly seen by the common players, but for mission makers its quite frustrating. However it is in all interests that dedicate mission makers have their tools intact in order to make good missions for the common multiplayer. The bug has been around for some time, and I now think it is proper to address my concern about this, with hope ED is listening, and gives this issue an other priority. Regards... :) Moose framework contributor Link to comment Share on other sites More sharing options...
Recommended Posts