Replaced ping implementaion with built-in. Improved connection status disaply.

DM1_temp_test
unfa 2021-11-28 19:16:46 +01:00
parent 06e3939688
commit ba61405ca3
4 changed files with 18 additions and 35 deletions

View File

@ -12,16 +12,26 @@ func _ready():
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
if not get_tree().multiplayer.has_multiplayer_peer():
text = "Offline"
elif get_tree().multiplayer.is_server():
text = "Hosting"
else:
if main.ping_time >= 0:
text = "Ping: " + str(round(main.ping_time * 1000)) + " ms"
text = "Hosting · "
var peers = get_tree().multiplayer.get_peers().size()
var word
if peers == 0:
text += "no peers"
elif peers == 1 :
text += "1 peer"
else:
text = "Ping unknown"
text += str(peers) + " peers"
else:
text = "Connected · "
var own_peer = get_tree().multiplayer.multiplayer_peer.get_peer(get_multiplayer_authority())
var ping = own_peer.get_statistic(ENetPacketPeer.PEER_ROUND_TRIP_TIME)
var packet_loss = own_peer.get_statistic(ENetPacketPeer.PEER_PACKET_LOSS)
text += str(ping) + " ms · " + str(packet_loss)
text += "\nFPS: " + str(Engine.get_frames_per_second())
text += "\nLiblast 0.1.1 pre-alpha"

View File

@ -23,7 +23,6 @@ rect_min_size = Vector2(0, 575)
size_flags_horizontal = 0
size_flags_vertical = 0
texture = ExtResource( "2_oueme" )
script = null
__meta__ = {
"_edit_use_anchors_": false
}

View File

@ -10,11 +10,6 @@ const NET_SERVER = "localhost"
var peer = ENetMultiplayerPeer.new()
var ping_time = -1
var ping_sent = 0
var ping_recieved = 0
var ping_token = 0
var role = MultiplayerRole.NONE:
set(new_role):
role = new_role
@ -27,23 +22,6 @@ var player_scene = preload("res://Assets/Characters/Player.tscn")
@onready var chat = hud.get_node("Chat")
var local_player: Node = null
@rpc(call_remote, any_peer, unreliable) func ping(token:int = -1):
if get_tree().multiplayer.is_server(): # we are the sever - reply to pinging client
# for i in range(0, 100):
# print(i)
rpc_id(get_tree().multiplayer.get_remote_sender_id(), &'ping', token)
else:
if get_tree().multiplayer.get_remote_sender_id() == 1: #recieve answer from server
if token == ping_token: # if the token is correct
ping_recieved = uptime
ping_time = ping_recieved - ping_sent
#else:
# ping_time = -1
elif token == -1: # send ping
ping_sent = uptime
ping_token = randi()
rpc_id(1, &'ping', ping_token)
class PlayerInfo:
var name: String
var team: int

View File

@ -3,7 +3,7 @@
[ext_resource type="PackedScene" uid="uid://b1078bn8gy2qf" path="res://Map.tscn" id="1"]
[ext_resource type="PackedScene" uid="uid://b856vwmg8a6o4" path="res://Assets/UI/GUI.tscn" id="2"]
[ext_resource type="Script" path="res://Main.gd" id="3"]
[ext_resource type="PackedScene" uid="uid://bff5uslrxesjx" path="res://Assets/HUD/HUD.tscn" id="4"]
[ext_resource type="PackedScene" uid="uid://bs80rhfpgh2m2" path="res://Assets/HUD/HUD.tscn" id="4"]
[ext_resource type="AudioStream" uid="uid://j42e203vte7h" path="res://Assets/Announcer/Go.wav" id="5_ilayd"]
[ext_resource type="Script" path="res://Assets/Announcer/Announcer.gd" id="6_gcsgr"]
@ -276,15 +276,11 @@ stream = ExtResource( "5_ilayd" )
bus = &"Announcer"
script = ExtResource( "6_gcsgr" )
[node name="PingTimer" type="Timer" parent="."]
autostart = true
[connection signal="toggled" from="NetworkTesting/CheckButton" to="." method="_on_CheckButton_toggled"]
[connection signal="pressed" from="NetworkTesting/Host" to="." method="_on_Host_pressed"]
[connection signal="pressed" from="NetworkTesting/Connect" to="." method="_on_Connect_pressed"]
[connection signal="text_submitted" from="NetworkTesting/TextEdit" to="." method="_on_TextEdit_text_submitted"]
[connection signal="color_changed" from="NetworkTesting/ColorPickerButton" to="." method="_on_ColorPickerButton_color_changed"]
[connection signal="pressed" from="NetworkTesting/Button" to="." method="_on_Button_pressed"]
[connection signal="timeout" from="PingTimer" to="." method="ping"]
[editable path="HUD"]