From daa83ce96d27c753f3531bb4031eaed88ca77968 Mon Sep 17 00:00:00 2001 From: Rendo Date: Wed, 3 Dec 2025 13:14:47 +0500 Subject: [PATCH] reloading and interaction. Started cleaning up player --- scripts/multiplayer/player_input.gd | 35 +++++++++++++++++++++-------- scripts/player/player.gd | 24 -------------------- 2 files changed, 26 insertions(+), 33 deletions(-) diff --git a/scripts/multiplayer/player_input.gd b/scripts/multiplayer/player_input.gd index ccf5567..67eef7c 100644 --- a/scripts/multiplayer/player_input.gd +++ b/scripts/multiplayer/player_input.gd @@ -21,6 +21,8 @@ signal crouch_begin signal crouch_end signal walk_begin signal walk_end +signal interact_begin +signal interact_end func _ready() -> void: set_multiplayer_authority(int(get_parent().name)) @@ -60,37 +62,44 @@ func _input(event: InputEvent) -> void: if event.is_action_pressed("plr_crouch"): if ClientSettings.TOGGLE_CROUCH: - crouch_on_server(crouching) + crouch_on_server.rpc_id(1,crouching) crouching = not crouching elif not crouching: crouching = true - crouch_on_server(false) + crouch_on_server.rpc_id(1,false) if event.is_action_released("plr_crouch") and not ClientSettings.TOGGLE_CROUCH and crouching: crouching = false - crouch_on_server(false) + crouch_on_server.rpc_id(1,false) if event.is_action_pressed("plr_walk"): if ClientSettings.TOGGLE_WALK: - walk_on_server(walking) + walk_on_server.rpc_id(1,walking) walking = not walking elif not walking: walking = true - walk_on_server(false) + walk_on_server.rpc_id(1,false) if event.is_action_released("plr_walk") and not ClientSettings.TOGGLE_WALK and walking: walking = false - walk_on_server(false) + walk_on_server.rpc_id(1,false) if event.is_action_pressed("plr_scope"): if ClientSettings.TOGGLE_SCOPE: - scope_on_server(scoping) + scope_on_server.rpc_id(1,scoping) scoping = not scoping elif not scoping: scoping = true - scope_on_server(false) + scope_on_server.rpc_id(1,false) if event.is_action_released("plr_scope") and not ClientSettings.TOGGLE_SCOPE and scoping: scoping = false - scope_on_server(false) + scope_on_server.rpc_id(1,false) + if event.is_action_pressed("plr_reload"): + reload_on_server.rpc_id(1) + + if event.is_action_pressed("plr_interact"): + interact_on_server.rpc_id(1,false) + if event.is_action_released("plr_interact"): + interact_on_server.rpc_id(1,true) @rpc("authority","call_local","reliable") func switch_on_server(slot: StringName) -> void: @@ -148,3 +157,11 @@ func scope_on_server(end: bool) -> void: func reload_on_server() -> void: if not multiplayer.is_server(): return reload.emit() + +@rpc("authority","call_local","reliable") +func interact_on_server(end: bool) -> void: + if not multiplayer.is_server(): return + if end: + interact_end.emit() + else: + interact_begin.emit() diff --git a/scripts/player/player.gd b/scripts/player/player.gd index 679373c..649d11e 100644 --- a/scripts/player/player.gd +++ b/scripts/player/player.gd @@ -39,35 +39,11 @@ func die() -> void: died.emit() passived = true -@rpc("any_peer","call_local","reliable") func passive() -> void: passived = true -@rpc("any_peer","call_local","reliable") func depassive() -> void: passived = false -@rpc("any_peer","call_local","reliable") -func kill_request() -> void: - if multiplayer.get_remote_sender_id() != 1: - return - - die() - -@rpc("any_peer","call_local","reliable") -func set_after_spawn(start_position: Vector3,new_team: int): - global_position = start_position - team = new_team as Session.TEAMS - spawned.emit() - -@rpc("any_peer","call_local","reliable") func take_damage(damage: int): hp -= damage - -func _input(event: InputEvent) -> void: - if not is_multiplayer_authority(): - return - if event.is_action_pressed("plr_interact"): - Session.interact() - if event.is_action_released("plr_interact"): - Session.stop_interact()