Start of rewind system

This commit is contained in:
Rendo 2025-12-21 02:22:41 +05:00
commit 42c95820d7
16 changed files with 55 additions and 33 deletions

View file

@ -12472,7 +12472,7 @@ properties/1/path = NodePath("PlayerInput:compressed_states")
properties/1/spawn = true
properties/1/replication_mode = 1
[node name="Player" type="CharacterBody3D" node_paths=PackedStringArray("weapon_models")]
[node name="Player" type="CharacterBody3D" node_paths=PackedStringArray("weapon_models") groups=["Player"]]
collision_layer = 2
collision_mask = 3
script = ExtResource("1_l07l8")
@ -13675,6 +13675,7 @@ offset_top = -0.2800293
offset_right = -0.32000732
grow_vertical = 0
mouse_filter = 2
theme_type_variation = &"HPBar"
step = 1.0
value = 100.0
fill_mode = 3

View file

@ -14,8 +14,8 @@ const WALK: int = 0b100
signal jumped
signal drop
signal switch_weapon(to_slot: StringName)
signal fire_begin
signal fire_end
signal fire_begin(timestamp: float)
signal fire_end(timestamp: float)
signal alternate_state
signal switch_firemode
signal reload
@ -53,9 +53,9 @@ func _unhandled_input(event: InputEvent) -> void:
switch_on_server.rpc_id(1,"knife")
if event.is_action_pressed("plr_fire"):
fire_on_server.rpc_id(1,false)
fire_on_server.rpc_id(1,false,Rewind.timestamp)
if event.is_action_released("plr_fire"):
fire_on_server.rpc_id(1,true)
fire_on_server.rpc_id(1,true,Rewind.timestamp)
if event.is_action_pressed("plr_scope"):
alternate_state_on_server.rpc_id(1)
if event.is_action_pressed("plr_firemode"):
@ -126,12 +126,12 @@ func drop_on_server() -> void:
drop.emit()
@rpc("authority","call_local","reliable")
func fire_on_server(end: bool) -> void:
func fire_on_server(end: bool, timestamp: float) -> void:
if not multiplayer.is_server(): return
if end:
fire_end.emit()
fire_end.emit(timestamp)
else:
fire_begin.emit()
fire_begin.emit(timestamp)
@rpc("authority","call_local","reliable")
func alternate_state_on_server() -> void: