Add multiplayer damage system and ragdolls

This commit is contained in:
2025-01-26 14:39:11 +01:00
parent 7da4a3d6bb
commit 06a1d28e42
53 changed files with 3969 additions and 61 deletions

View File

@ -10,7 +10,7 @@ signal server_disconnected
const PORT = 7000
const DEFAULT_SERVER_IP = "127.0.0.1" # IPv4 localhost
const MAX_CONNECTIONS = 20
@onready var address_input: TextEdit = $TextEdit
var players = {}
var my_random_number = RandomNumberGenerator.new().randf_range(-2.0, 2.0)
var player_info = {"name": str(my_random_number)}
@ -25,8 +25,7 @@ func _ready() -> void:
multiplayer.server_disconnected.connect(_on_server_disconnected)
func join_game(address = ""):
if address.is_empty():
address = DEFAULT_SERVER_IP
address = address_input.text
var peer = ENetMultiplayerPeer.new()
var error = peer.create_client(address, PORT)
if error:
@ -66,7 +65,7 @@ func player_loaded():
# When a peer connects, send them my player info.
# This allows transfer of all desired data for each player, not only the unique ID.
func _on_player_connected(id):
player_info = {"name": multiplayer.get_unique_id()}
player_info = {"name": multiplayer.get_unique_id(), "health": 100}
_register_player.rpc_id(1, multiplayer.get_unique_id(), player_info)
@rpc("any_peer", "reliable")
@ -104,7 +103,7 @@ func _on_server_disconnected():
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _on_host_pressed() -> void:
player_info = {"name": str(1)}
player_info = {"name": str(1), "health": 100}
_register_player(1, player_info)
create_game()