jpcsupplies / Lobby

Gateway world Lobby Mod
0 stars 0 forks source link

Piloted ship transport mechanism #9

Open jpcsupplies opened 8 years ago

jpcsupplies commented 8 years ago

A method has been found that allows ships to travel with players to other servers. Limitations;

  1. Ownership on arrival automatically changes to the player piloting the ship due to players having unique IDs on each server world which become meaningless on the new server.
  2. Players can only depart alone. (although other players can depart from the same debarkation point, they have to trigger the process individually.) This is because the type of subs that trigger the event only seem to work from a message command. This appears to be some odd glitch with the server connect modapi function. Area events (including all players) don't seem to be compatible.
  3. Both servers must be running the Lobby Gateway mod.
  4. Optionally -each server must use a shared authentication key to authenticate that a player is allowed to take his ship there.

Tech summary:

jpcsupplies commented 8 years ago

Basic coding tech summary:

decoding is the reverse of the process, except dividing not multiplying

\ if the secure/crypto library includes are available in modapi it may also be possible to use full public/private key md5 system, or it could be manually implemented in full which is similar to the above but makes greater use of factorial pairs for the multiplication divs and mod calculations to form public/private key pairs - ie refer http://doctrina.org/How-RSA-Works-With-Examples.html

jpcsupplies commented 8 years ago

Suggested Admin requirement:

  1. Install mod
  2. On first boot of server run a command like /password your_server_password_here
  3. create a departure LCD to another server that uses that same password
  4. Optional - create an "arrival zone" or simply randomise it.

Thats pretty much it. A player flies into a departure point hits the /depart command and off they go ship and all to the new server. Could treat it like long range jump points..

jpcsupplies commented 7 years ago

For reference: (from chat)

If we skip the security layer (as its proof of concept) all the mod needs to do is: 1: Have a definable region where the mod detects a player entering in a piloted ship (eg a super gate, jump point, or simply a lcd etc) 2: This definable area notifies the player they could type /travel to jump to this server 3: game breaks down the ship to an xml file (client side) stored in global storage and deletes it (server side) ideally it doesnt delete client side so a player isnt booted into space; (breaks immersion) but no longer exists if any other player flies past. 4: game uses existing connect to other server modapi call to send player to new server 5: after connect the mod checks for the client side global file with the ship in it 6: if it exists it tells the server side version of the mod and passes it across 7: server spawns the ship and teleports the player into it 8: client side copy of file is deleted on confirmation of sucess spawning ship(edited) something like that

jpcsupplies commented 7 years ago

see also #11

jpcsupplies commented 6 years ago

Rexxar build a mod that implements our client side discussion aspects of ship transfer between servers here: http://steamcommunity.com/sharedfiles/filedetails/?id=912773575

He put it up on git here : https://github.com/rexxar-tc/ServerLinkMod