Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add basic fire extinguisher syncing #679

Closed
wants to merge 1 commit into from

Conversation

micaww
Copy link
Contributor

@micaww micaww commented Jan 28, 2019

Basic fire douse/extinguish syncing to nearby players w/ packet rate limiting.

This surely can be improved over time:

  • Player must have the fire streamed in in order to see the effects
  • Fire position is used instead of GUID as they're not synced (as far as I know). Fires don't move so this should be fine for most cases, especially those spawned as part of the map. Tested on Aurora.

Updating this to a GUID-based fire resolution would be trivial if that sort of system were in place.

@ScriptedAnar
Copy link

Keep in mind thow somebody is working on the Cyclops Syncing and he did sync the fire it may cause issues the way you may make it....

@micaww
Copy link
Contributor Author

micaww commented Jan 28, 2019

@NitroxPower this syncs the fire extinguisher used by the players. If the Cyclops fire object spawn points are synced, then these features will work fine together given the cyclops is still or moving slow.

@micaww
Copy link
Contributor Author

micaww commented Jan 28, 2019

Actually just noticed his douse syncing implementation. Pretty similar it seems, but won't work any fires except for Cyclops unless the server spawns them or syncs map fire GUIDs with clients.

@ScriptedAnar
Copy link

i am not a developer and i dont know how to script i just wanted to inform you just in case it may not work great work thow 👍

@Sunrunner37
Copy link
Member

I recently merged in the cyclops fire code. Should we use the Fires gamelogic class that he introduced? Any other refactoring we need to do?

@micaww
Copy link
Contributor Author

micaww commented Feb 2, 2019

@Sunrunner37 Awesome!

@RabidCrab 's fire dousing syncing is a great implementation and can mostly replace this PR. However, the only issue I can see is that the Aurora fires don't have synced GUIDs, so they won't be recognized on clients receiving the douse packet.

  1. Is there already a system in place for syncing map-spawned entities such as the Aurora fires? During my initial tests using GUIDs, they weren't synced, which is why I refactored to the positional method. Of course this method has its own caveats though. If we can somehow do that, his code should just work with the Aurora.

  2. If this is not possible yet, one option for a quick fix would be to alter the FireDoused packet to take in a GUID and position. Then on the client, try finding by GUID first, then position if that doesn't work. This should keep all of his functionality working, but also allow room for Aurora fires.

GUIDs would be a lot cleaner than the positional method, but it does work very well considering the map spawns them in the same place every single time. Somehow syncing map-spawned entities would be totally ideal. I'm also working on laser cutter sync so that would benefit greatly from this. Maybe I'm missing some system that you already have in place for this, but if not, I would love to brainstorm on that.

@Sunrunner37
Copy link
Member

Are the Aurora fires spawned by the client of the server? (I'm guessing they are client side). Is there a way for us to server-side spawn them so the GUIDs will be synced? Maybe they are virtual entities.

@micaww
Copy link
Contributor Author

micaww commented Feb 4, 2019

@Sunrunner37 yes, spawned by client. Is the Aurora and all of it's child entities part of the batch files that the server already parses? If so, why would the fires be excluded?

Should we close this PR as the code is unnecessary if we sync GUIDs? I would still like to continue discussion on syncing the rest of these unsynced map ents.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants