AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   How to apply same function to SCOUT (https://forums.alliedmods.net/showthread.php?t=338080)

Ark_Procession 06-05-2022 10:13

How to apply same function to SCOUT
 
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;
}

Edit:
Solution was to use this plugin: https://forums.alliedmods.net/showthread.php?p=1193990


All times are GMT -4. The time now is 21:20.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.