Fixed multiplied shooting
parent
c5286fa173
commit
740bd67fea
|
@ -28,7 +28,6 @@ extends CharacterBody3D
|
|||
|
||||
var input_active = false
|
||||
|
||||
|
||||
var base_fov = 90
|
||||
var view_zoom_target := 1.0
|
||||
var view_zoom_direction = true
|
||||
|
@ -129,13 +128,14 @@ func _input(event) -> void:
|
|||
aim(event)
|
||||
|
||||
if Input.is_action_just_pressed("trigger_primary"):
|
||||
weapon.rpc(&'trigger', 0, true)
|
||||
weapon.trigger(0, true)
|
||||
elif Input.is_action_just_released("trigger_primary"):
|
||||
weapon.rpc(&'trigger', 0, false)
|
||||
weapon.trigger(0, false)
|
||||
if Input.is_action_just_pressed("trigger_secondary"):
|
||||
weapon.rpc(&'trigger', 1, true)
|
||||
weapon.trigger(1, true)
|
||||
elif Input.is_action_just_released("trigger_secondary"):
|
||||
weapon.rpc(&'trigger', 1, false)
|
||||
weapon.trigger(1, false)
|
||||
|
||||
|
||||
func _process(delta):
|
||||
if view_zoom_direction and view_zoom < view_zoom_target:
|
||||
|
@ -144,13 +144,13 @@ func _process(delta):
|
|||
view_zoom = max(view_zoom_target, view_zoom - delta * 4)
|
||||
|
||||
func damage(hp: int):
|
||||
main.player_list.players[get_tree().network_peer.get_unique_id()].health -= hp
|
||||
|
||||
if main.player_list.players[get_tree().network_peer.get_unique_id()].health <= 0:
|
||||
var target = main.player_list.players[self.get_network_master()]
|
||||
target.health -= hp
|
||||
if target.health <= 0: # int(name) is the player instance node name signifying owner's PID
|
||||
die()
|
||||
|
||||
|
||||
func die():
|
||||
main.chat.rpc(&'chat_notification', "Player " + main.player_list.players[get_tree().network_peer.get_unique_id()].name + " is dead")
|
||||
main.chat.rpc(&'chat_notification', "Player " + main.player_list.players[self.get_network_master()].name + " is dead")
|
||||
|
||||
func _physics_process(delta):
|
||||
# rpc_unreliable(&'set_global_transform', global_transform)
|
||||
|
|
|
@ -17,6 +17,7 @@ var impact_player = preload("res://Assets/Effects/ImpactPlayer.tscn")
|
|||
#enum Trigger {TRIGGER_PRIMARY, TRIGGER_SECONDARY}
|
||||
|
||||
@remotesync func shoot():
|
||||
print("SHOOT from PID ", get_tree().get_network_unique_id(), " controlled by ", player.get_network_master())
|
||||
var space_state = get_world_3d().direct_space_state
|
||||
|
||||
var from = camera.get_global_transform().origin
|
||||
|
@ -29,25 +30,27 @@ var impact_player = preload("res://Assets/Effects/ImpactPlayer.tscn")
|
|||
|
||||
if ray: # did we hit anything?
|
||||
if ray['collider'].has_method(&'damage'):
|
||||
if get_tree().network_peer.get_unique_id() == 1: # make sure this can only run on the server
|
||||
if get_tree().get_network_unique_id() == 1: # make sure this can only run on the server
|
||||
print("SHOT HIT ", ray['collider'])
|
||||
ray['collider'].damage(10)
|
||||
|
||||
impact_vfx = impact_player.instantiate()
|
||||
else:
|
||||
impact_vfx = impact_wall.instantiate()
|
||||
|
||||
impact_vfx.global_transform = impact_vfx.global_transform.looking_at(ray['normal'])
|
||||
impact_vfx.global_transform.origin = ray['position']
|
||||
get_tree().root.add_child(impact_vfx)
|
||||
if impact_vfx:
|
||||
impact_vfx.global_transform = impact_vfx.global_transform.looking_at(ray['normal'])
|
||||
impact_vfx.global_transform.origin = ray['position']
|
||||
get_tree().root.add_child(impact_vfx)
|
||||
|
||||
print(ray)
|
||||
#print(ray)
|
||||
|
||||
@puppetsync func trigger(index: int, active: bool) -> void:
|
||||
#print("Weapon " + str(name) + ", Trigger " + str(index) + ", active: " + str(active))
|
||||
|
||||
if index == 0 and active and $Handgun/AnimationPlayer.is_playing() == false:
|
||||
|
||||
rpc(&'shoot') # server will evaluate if I hit my target
|
||||
|
||||
rpc(&'shoot')
|
||||
|
||||
$Handgun/AnimationPlayer.play("Shoot", 0, 2.5)
|
||||
|
||||
|
|
|
@ -27,6 +27,9 @@ structured_text_bidi_override_options = []
|
|||
|
||||
[node name="Players" type="Node3D" parent="."]
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
|
||||
[node name="Map" parent="." instance=ExtResource( 1 )]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1)
|
||||
|
@ -38,6 +41,7 @@ offset_left = -166.0
|
|||
offset_bottom = 159.0
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_lock_": true,
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
|
|
Reference in New Issue