Why Scout is not applying the same draw delay as the AWP? it worked before some time ago but now i tried to recreated and it is not working
HTML Code:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <engine>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <orpheu>
#include <orpheu_memory>
#include <orpheu_advanced>
#define PLUGIN "Counter-Strike 1.3"
#define VERSION "0.11"
#define AUTHOR "dook"
#define WEAPON_C4 "weapon_c4"
#define WEAPON_AWP "weapon_awp"
#define WEAPON_SCOUT "weapon_scout"
#define CS13_C4_JUMP "cs13_c4_jump"
#define CS13_C4_MOVE "cs13_c4_move"
#define CS13_AWP_DELAY "cs13_awp_delay"
#define CS13_SCOUT_DELAY "cs13_scout_delay"
#define MAXSPEED_C4 250.0
#define DELAY_AWP "0.75"
#define DELAY_SCOUT "0.75"
#define DIFF_LINUX_ENT 4
#define DIFF_LINUX_PLAYER 5
#define m_pPlayer 41
#define m_flNextAttack 83
#define m_flNextPrimaryAttack 46
#define m_flNextSecondaryAttack 47
new cs13_c4_jump;
new cs13_c4_move;
new cs13_awp_delay;
new cs13_scout_delay;
new oldFlags;
new playerEntityId;
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
registerCVars();
// C4 Hooks
RegisterHam(Ham_Weapon_PrimaryAttack, WEAPON_C4, "onC4PrimaryAttackPre", 0);
RegisterHam(Ham_Weapon_PrimaryAttack, WEAPON_C4, "onC4PrimaryAttackPost", 1);
// AWP Hooks
RegisterHam(Ham_Item_Deploy, WEAPON_AWP, "onAWPDeployPost", 1);
OrpheuRegisterHook(OrpheuGetFunction("PM_Duck"), "onPMDuckPost", OrpheuHookPost);
OrpheuRegisterHook(OrpheuGetFunction("PM_Move"), "onPMMove");
OrpheuRegisterHook(OrpheuGetFunction("PM_Jump"), "onPMJumpPre", OrpheuHookPre);
OrpheuRegisterHook(OrpheuGetFunction("PM_Jump"), "onPMJumpPost", OrpheuHookPost);
OrpheuRegisterHook(OrpheuGetFunction("KickBack", "CBasePlayerWeapon"), "onKickBack");
// SCOUT Hooks
RegisterHam(Ham_Item_Deploy, WEAPON_SCOUT, "onSCOUTDeployPost", 1);
OrpheuRegisterHook(OrpheuGetFunction("PM_Duck"), "onPMDuckPost", OrpheuHookPost);
OrpheuRegisterHook(OrpheuGetFunction("PM_Move"), "onPMMove");
OrpheuRegisterHook(OrpheuGetFunction("PM_Jump"), "onPMJumpPre", OrpheuHookPre);
OrpheuRegisterHook(OrpheuGetFunction("PM_Jump"), "onPMJumpPost", OrpheuHookPost);
OrpheuRegisterHook(OrpheuGetFunction("KickBack", "CBasePlayerWeapon"), "onKickBack");
}
public OrpheuHookReturn:onKickBack(weaponId, Float:upBase, Float:latBase, Float:upMod, Float:latMod, Float:upMax, Float:latMax, dirChange) {
/*
client_print(0, print_chat, "upBase: %f, latBase: %f, upMod: %f, latMod: %f, upMax: %f, latMax: %f, dirChange: %d", upBase, latBase, upMod, latMod, upMax, latMax, dirChange);
OrpheuSetParam(2, 0.0);
OrpheuSetParam(3, 0.0);
OrpheuSetParam(4, 0.0);
OrpheuSetParam(5, 0.0);
OrpheuSetParam(6, 0.0);
OrpheuSetParam(7, 0.0);
*/
return OrpheuIgnored;
}
public registerCVars() {
cs13_c4_jump = register_cvar(CS13_C4_JUMP, "1", FCVAR_SERVER | FCVAR_ARCHIVE);
cs13_c4_move = register_cvar(CS13_C4_MOVE, "1", FCVAR_SERVER | FCVAR_ARCHIVE);
cs13_awp_delay = register_cvar(CS13_AWP_DELAY, DELAY_AWP, FCVAR_SERVER | FCVAR_ARCHIVE);
cs13_scout_delay = register_cvar(CS13_SCOUT_DELAY, DELAY_SCOUT, FCVAR_SERVER | FCVAR_ARCHIVE);
}
/* Planting */
public onC4PrimaryAttackPre(weaponId) {
playerEntityId = get_pdata_cbase(weaponId, m_pPlayer, DIFF_LINUX_ENT);
if (get_pcvar_num(cs13_c4_jump)) {
oldFlags = entity_get_int(playerEntityId, EV_INT_flags);
// Make the plant function think we're on the ground
entity_set_int(playerEntityId, EV_INT_flags, oldFlags | FL_ONGROUND);
return HAM_HANDLED;
}
return HAM_IGNORED;
}
public onC4PrimaryAttackPost(weaponId) {
if (get_pcvar_num(cs13_c4_jump)) {
// Restore old value
entity_set_int(playerEntityId, EV_INT_flags, oldFlags);
}
if (get_pcvar_num(cs13_c4_move)) {
// Allow player to move while planting
entity_set_float(playerEntityId, EV_FL_maxspeed, MAXSPEED_C4);
}
return HAM_HANDLED;
}
/* AWP */
public onAWPDeployPost(weaponId) {
static Float:delay;
delay = get_pcvar_float(cs13_awp_delay);
if (delay > 0.0) {
playerEntityId = get_pdata_cbase(weaponId, m_pPlayer, DIFF_LINUX_ENT);
// Decrease the awp delay
set_pdata_float(weaponId, m_flNextPrimaryAttack, delay + 0.01, DIFF_LINUX_ENT);
set_pdata_float(weaponId, m_flNextSecondaryAttack, delay, DIFF_LINUX_ENT);
set_pdata_float(playerEntityId, m_flNextAttack, delay, DIFF_LINUX_PLAYER);
}
return HAM_HANDLED;
}
/* SCOUT */
public onSCOUTDeployPost(weaponId) {
static Float:delay;
delay = get_pcvar_float(cs13_scout_delay);
if (delay > 0.0) {
playerEntityId = get_pdata_cbase(weaponId, m_pPlayer, DIFF_LINUX_ENT);
// Decrease the scout delay
set_pdata_float(weaponId, m_flNextPrimaryAttack, delay + 0.01, DIFF_LINUX_ENT);
set_pdata_float(weaponId, m_flNextSecondaryAttack, delay, DIFF_LINUX_ENT);
set_pdata_float(playerEntityId, m_flNextAttack, delay, DIFF_LINUX_PLAYER);
}
return HAM_HANDLED;
}