Raised This Month: $51 Target: $400
 12% 

How to apply same function to SCOUT


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Ark_Procession
Senior Member
Join Date: Jun 2020
Location: Argentina
Old 06-05-2022 , 10:13   How to apply same function to SCOUT
Reply With Quote #1

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

Last edited by Ark_Procession; 06-05-2022 at 13:22. Reason: Fix
Ark_Procession is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 12:08.


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