Code:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
public plugin_init()
{
register_plugin("[ZP] Addon: Custom Anim", "1.0", "xyUnicorn");
RegisterHam(Ham_Player_Jump, "player", "Fwd_JumpCount", 1)
}
stock UTIL_PlayerAnimation(const iPlayer, const szAnim[])
{
// Linux extra offsets
#define linux_diff_animating 4
#define linux_diff_player 5
#define ACT_HOP 1
// CBaseAnimating
#define m_flFrameRate 36
#define m_flGroundSpeed 37
#define m_flLastEventCheck 38
#define m_fSequenceFinished 39
#define m_fSequenceLoops 40
// CBaseMonster
#define m_Activity 73
#define m_IdealActivity 74
new iAnimDesired, Float: flFrameRate, Float: flGroundSpeed, bool: bLoops;
if((iAnimDesired = lookup_sequence(iPlayer, szAnim, flFrameRate, bLoops, flGroundSpeed)) == -1)
{
iAnimDesired = 0;
}
new Float: flGameTime = get_gametime();
set_pev(iPlayer, pev_frame, 0.0);
set_pev(iPlayer, pev_framerate, 1.0);
set_pev(iPlayer, pev_animtime, flGameTime);
set_pev(iPlayer, pev_sequence, iAnimDesired);
set_pdata_int(iPlayer, m_fSequenceLoops, bLoops, linux_diff_animating);
set_pdata_int(iPlayer, m_fSequenceFinished, 0, linux_diff_animating);
set_pdata_float(iPlayer, m_flFrameRate, flFrameRate, linux_diff_animating);
set_pdata_float(iPlayer, m_flGroundSpeed, flGroundSpeed, linux_diff_animating);
set_pdata_float(iPlayer, m_flLastEventCheck, flGameTime , linux_diff_animating);
set_pdata_int(iPlayer, m_Activity, ACT_HOP, linux_diff_player);
set_pdata_int(iPlayer, m_IdealActivity, ACT_HOP, linux_diff_player);
}
public Fwd_JumpCount(id,iPlayer)
{
// Linux extra offsets
#define linux_diff_weapon 4
#define linux_diff_animating 4
#define linux_diff_player 5
// CBasePlayer
#define m_szAnimExtention 492
UTIL_PlayerAnimation(iPlayer,"jump3")
set_pdata_string(iPlayer, m_szAnimExtention * 4, "jump3", -1, linux_diff_player * linux_diff_animating);
}