From c7c577233bcb62c628c5f19421f457e0f64a0693 Mon Sep 17 00:00:00 2001 From: Nikolai Rodionov Date: Sun, 26 Jan 2025 21:57:09 +0100 Subject: [PATCH] WIP: Spawn bullets on the server and sync them --- scenes/characters/blue/dummy.gd | 8 ++++---- scenes/characters/placeholder.tscn | 2 +- scenes/maps/el_test.gd | 2 +- scenes/weapon/bullet.gd | 2 +- scripts/player/player_input_controller.gd | 3 ++- 5 files changed, 9 insertions(+), 8 deletions(-) diff --git a/scenes/characters/blue/dummy.gd b/scenes/characters/blue/dummy.gd index b83ba55..c41e057 100644 --- a/scenes/characters/blue/dummy.gd +++ b/scenes/characters/blue/dummy.gd @@ -15,10 +15,10 @@ func _process(delta: float) -> void: func _on_head_collision_body_part_hit(dam: Variant) -> void: - print("head is hit" + str(dam)) - print(owner_placeholder) - if owner_placeholder.has_method("take_damage"): - owner_placeholder.take_damage(dam) + #print("head is hit" + str(dam)) + #print(owner_placeholder) + #if owner_placeholder.has_method("take_damage"): + owner_placeholder.take_damage(dam) pass # Replace with function body. func _get_owner() -> CharacterBody3D: diff --git a/scenes/characters/placeholder.tscn b/scenes/characters/placeholder.tscn index bcf712f..6e70e9d 100644 --- a/scenes/characters/placeholder.tscn +++ b/scenes/characters/placeholder.tscn @@ -16,7 +16,7 @@ properties/1/spawn = true properties/1/replication_mode = 1 properties/2/path = NodePath(".:health") properties/2/spawn = true -properties/2/replication_mode = 1 +properties/2/replication_mode = 2 [sub_resource type="Animation" id="Animation_falg4"] length = 0.001 diff --git a/scenes/maps/el_test.gd b/scenes/maps/el_test.gd index 9366263..98a87aa 100644 --- a/scenes/maps/el_test.gd +++ b/scenes/maps/el_test.gd @@ -16,7 +16,7 @@ func _ready() -> void: if multiplayer.is_server(): for i in GameServerManager.players: char = ResourceLoader.load("res://scenes/characters/placeholder.tscn").instantiate() - char.name = "PlayerPlaceholder" + str(GameServerManager.players[i].name) + char.name = "PlayerPlaceholder_" + str(GameServerManager.players[i].name) char.global_position = position var my_random_number = RandomNumberGenerator.new().randf_range(0.0, 5.0) char.global_position = position diff --git a/scenes/weapon/bullet.gd b/scenes/weapon/bullet.gd index 09691ab..9430070 100644 --- a/scenes/weapon/bullet.gd +++ b/scenes/weapon/bullet.gd @@ -26,8 +26,8 @@ func _process(delta): if collider != null and collider.is_in_group("target"): ray.get_collider().take_damage() if collider != null and collider.is_in_group("body"): + print(collider) ray.get_collider().hit() - print("I got hit") rigid_body_3d.visible = false particles.emitting = true #if ray.get_collider().is_in_group("body"): diff --git a/scripts/player/player_input_controller.gd b/scripts/player/player_input_controller.gd index ca81ea9..84847ec 100644 --- a/scripts/player/player_input_controller.gd +++ b/scripts/player/player_input_controller.gd @@ -256,4 +256,5 @@ func _hit_scan_damage(Collider): func take_damage(dam: int): print("damage") - health =- dam + health -= dam + print(health)