X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fg_hook.qc;h=90b91ad3d0880158f339c8c344e9985a4688592f;hb=d6e1aa437e7eb8e182053cf17231597e79df0f81;hp=0df6ba0aee59c4cc5a070ce9f20bdc6da263d50c;hpb=e0ac5f9f14e169a1e19d0e36b85cab061a74ed93;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/g_hook.qc b/qcsrc/server/g_hook.qc index 0df6ba0ae..90b91ad3d 100644 --- a/qcsrc/server/g_hook.qc +++ b/qcsrc/server/g_hook.qc @@ -335,7 +335,7 @@ void FireGrapplingHook (void) missile.state = 0; // not latched onto anything - W_SetupProjectileVelocityEx(missile, v_forward, v_up, autocvar_g_balance_grapplehook_speed_fly, 0, 0, 0, FALSE); + W_SetupProjVelocity_Explicit(missile, v_forward, v_up, autocvar_g_balance_grapplehook_speed_fly, 0, 0, 0, FALSE); missile.angles = vectoangles (missile.velocity); //missile.glow_color = 250; // 244, 250 @@ -383,7 +383,7 @@ void GrapplingHookFrame() // offhand hook controls if(self.BUTTON_HOOK) { - if (!(self.hook || (self.hook_state & HOOK_WAITING_FOR_RELEASE))) + if (!(self.hook || (self.hook_state & HOOK_WAITING_FOR_RELEASE)) && (time > self.hook_refire)) { self.hook_state |= HOOK_FIRING; self.hook_state |= HOOK_WAITING_FOR_RELEASE; @@ -426,6 +426,7 @@ void GrapplingHookFrame() RemoveGrapplingHook(self); FireGrapplingHook(); self.hook_state &= ~HOOK_FIRING; + self.hook_refire = max(self.hook_refire, time + autocvar_g_balance_grapplehook_refire * W_WeaponRateFactor()); } else if(self.hook_state & HOOK_REMOVING) { @@ -475,7 +476,7 @@ void GrappleHookInit() } else { - weapon_action(WEP_HOOK, WR_PRECACHE); + WEP_ACTION(WEP_HOOK, WR_INIT); hook_shotorigin[0] = shotorg_adjust_values(CL_Weapon_GetShotOrg(WEP_HOOK), FALSE, FALSE, 1); hook_shotorigin[1] = shotorg_adjust_values(CL_Weapon_GetShotOrg(WEP_HOOK), FALSE, FALSE, 2); hook_shotorigin[2] = shotorg_adjust_values(CL_Weapon_GetShotOrg(WEP_HOOK), FALSE, FALSE, 3);