From a046ae5288eca9eccb2baa2fd6896e5db17834bf Mon Sep 17 00:00:00 2001 From: Rendo Date: Mon, 24 Nov 2025 05:25:31 +0500 Subject: [PATCH] Unsafe shootage --- project.godot | 1 + scenes/player.tscn | 12 ++++++++++-- scripts/multiplayer/session.gd | 1 + scripts/multiplayer/session.gd.uid | 1 + scripts/player/player.gd | 2 ++ scripts/player/player_raycast.gd | 5 +++++ scripts/player/player_raycast.gd.uid | 1 + scripts/weapon_system/gun.gd | 6 ++++++ 8 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 scripts/multiplayer/session.gd create mode 100644 scripts/multiplayer/session.gd.uid create mode 100644 scripts/player/player_raycast.gd create mode 100644 scripts/player/player_raycast.gd.uid diff --git a/project.godot b/project.godot index 5af4e67..4ce74a3 100644 --- a/project.godot +++ b/project.godot @@ -19,6 +19,7 @@ config/icon="res://icon.svg" PlayerGlobal="*res://scripts/player/player_global.gd" Lobby="*res://scripts/multiplayer/lobby.gd" +Session="*res://scripts/multiplayer/session.gd" [input] diff --git a/scenes/player.tscn b/scenes/player.tscn index c6ff29e..09818e3 100644 --- a/scenes/player.tscn +++ b/scenes/player.tscn @@ -1,9 +1,10 @@ -[gd_scene load_steps=14 format=3 uid="uid://dpsr6ug3pkb40"] +[gd_scene load_steps=15 format=3 uid="uid://dpsr6ug3pkb40"] [ext_resource type="Script" uid="uid://3dphlay25fih" path="res://scripts/player/player.gd" id="1_g2els"] [ext_resource type="Script" uid="uid://dalwlndejfdhm" path="res://scripts/player/crosshair.gd" id="3_dqkch"] [ext_resource type="Script" uid="uid://bjhbdh6xsjgnn" path="res://scripts/player/player_camera.gd" id="3_qhqgy"] [ext_resource type="PackedScene" uid="uid://c3hg4ux4j76j2" path="res://models/molikman_hands.glb" id="4_dqkch"] +[ext_resource type="Script" uid="uid://6c14qse4vnra" path="res://scripts/player/player_raycast.gd" id="4_fjrip"] [ext_resource type="Script" uid="uid://bmecgup3kcua7" path="res://scripts/weapon_system/system.gd" id="4_qlg0r"] [ext_resource type="Script" uid="uid://c76n6qgu6o4hn" path="res://scripts/weapon_system/gun.gd" id="6_tuyoq"] @@ -199,6 +200,11 @@ bones/0/position = Vector3(-0.22279283, 0.7100338, -0.19202478) bones/0/rotation = Quaternion(-0.006717509, 0.6971531, 0.71686494, -0.0060944925) bones/1/position = Vector3(5.972106e-08, 0.06469955, 0.06380712) +[node name="RayCast3D" type="RayCast3D" parent="Camera3D"] +target_position = Vector3(0, 0, -1000) +collision_mask = 2 +script = ExtResource("4_fjrip") + [node name="AnimationPlayer" type="AnimationPlayer" parent="."] libraries = { &"": SubResource("AnimationLibrary_qlg0r") @@ -247,11 +253,13 @@ script = ExtResource("4_qlg0r") default_pistol = NodePath("StartingPistol") animation_player = NodePath("../Camera3D/molikman_hands/AnimationPlayer") -[node name="StartingPistol" type="Node" parent="WeaponSystem"] +[node name="StartingPistol" type="Node" parent="WeaponSystem" node_paths=PackedStringArray("raycast")] script = ExtResource("6_tuyoq") max_ammo = 10 semi_auto = true +damage = 25 firerate = 0.1 prefix = "baked_sp" +raycast = NodePath("../../Camera3D/RayCast3D") [editable path="Camera3D/molikman_hands"] diff --git a/scripts/multiplayer/session.gd b/scripts/multiplayer/session.gd new file mode 100644 index 0000000..61510e1 --- /dev/null +++ b/scripts/multiplayer/session.gd @@ -0,0 +1 @@ +extends Node diff --git a/scripts/multiplayer/session.gd.uid b/scripts/multiplayer/session.gd.uid new file mode 100644 index 0000000..e74f236 --- /dev/null +++ b/scripts/multiplayer/session.gd.uid @@ -0,0 +1 @@ +uid://djmsesf818ovp diff --git a/scripts/player/player.gd b/scripts/player/player.gd index eebd65a..328c95c 100644 --- a/scripts/player/player.gd +++ b/scripts/player/player.gd @@ -1,5 +1,7 @@ extends CharacterBody3D +class_name Player + const MAX_HP = 100 @export var hp: int = 100: diff --git a/scripts/player/player_raycast.gd b/scripts/player/player_raycast.gd new file mode 100644 index 0000000..be9dc1f --- /dev/null +++ b/scripts/player/player_raycast.gd @@ -0,0 +1,5 @@ +extends RayCast3D + + +func _ready() -> void: + add_exception($"../..") diff --git a/scripts/player/player_raycast.gd.uid b/scripts/player/player_raycast.gd.uid new file mode 100644 index 0000000..018b661 --- /dev/null +++ b/scripts/player/player_raycast.gd.uid @@ -0,0 +1 @@ +uid://6c14qse4vnra diff --git a/scripts/weapon_system/gun.gd b/scripts/weapon_system/gun.gd index de0c1e7..4d4ff0f 100644 --- a/scripts/weapon_system/gun.gd +++ b/scripts/weapon_system/gun.gd @@ -9,6 +9,8 @@ extends Usable @export var prefix: String +@export var raycast: RayCast3D + var ammo_amount: int var fire_timer: Timer @@ -43,6 +45,10 @@ func fire() -> void: system.animation_player.stop() system.animation_player.play(prefix+"_shoot") system.animation_player.queue(prefix+"_idle") + + if raycast.is_colliding(): + raycast.get_collider().hp -= damage + func alternate_state() -> void: pass