1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- extends Node
- var net = NetworkedMultiplayerENet.new()
- var api = MultiplayerAPI.new()
- var port = 8081
- var maxplayer = 4
- export(NodePath) var database
- func _ready():
- print('listening to port: ' + str(port))
- net.create_server(port, maxplayer)
-
- self.set_custom_multiplayer(api)
- custom_multiplayer.set_root_node(self)
- custom_multiplayer.set_network_peer(net)
-
- net.connect("peer_disconnected",self,"disc")
- net.connect("peer_connected",self,"conn")
- pass # Replace with function body.
- func _process(_delta):
- custom_multiplayer.poll()
- var playerphsyics = preload('res://playerphysics.tscn')
- func conn(arg):
- print('client connected, id: ' + str(arg))
- yield(get_tree(),"physics_frame")
- rpc_id(0,'ping')
- print('clients connected: ' + str(custom_multiplayer.get_network_connected_peers().size()))
- var instance = playerphsyics.instance()
- instance.name = str(arg)
- $players.add_child(instance)
- func disc(arg):
- print('client disconnected, id: ' + str(arg))
- remote func latency(arg):
- var id = api.get_rpc_sender_id()
- rpc_id(id, 'returnping', arg)
- remote func input_handler(arg):
- var id = api.get_rpc_sender_id()
- if $players.has_node(str(id)):
- $players.get_node(str(id)).input = arg
- # rpc_id(id, 'returnping', arg)
- func _physics_process(delta):
- var position_datachunk = {}
- for i in $players.get_children():
- position_datachunk[i.name] = i.global_position
- rpc_id(0, 'player_position', position_datachunk)
-
- var animation_datachunk = {}
- for i in $players.get_children():
- animation_datachunk[i.name] = i.animation
- rpc_id(0, 'player_animation', animation_datachunk)
-
- var enemies_datachunk = {}
- for i in $enemies.get_children():
- enemies_datachunk[i.name] = [i.global_position, i.type]
- rpc_id(0, 'enemies_position', enemies_datachunk)
- remote func player_anim(attack,arg):
- rpc_id(int(name), 'attack_anim', attack)
|