I'm trying to make the charger's playback animation playback rate go really fast in left 4 dead 2
Solution
PHP Code:
#pragma semicolon 1
#include <sourcemod>
#include <sdktools>
#include <sdkhooks>
#define CHARGER_POUND_INCAP_MULTIPLYER 12.0
#define POUND_RATE 2.0
//cvar z_charger_pound_dmg
//change the cvar to the damage you want per pound
//meme name :)
public Plugin:myinfo =
{
name = "Pounding machine",
author = "Lux",
description = "-",
version = "ASSPOUNDER V9000",
url = "-"
}
public OnClientPutInServer(iClient)
{
SDKHook(iClient, SDKHook_PostThinkPost, Hook_OnPostThinkPost);
SDKHook(iClient, SDKHook_OnTakeDamage, eOnTakeDamage);
}
public OnClientDisconnect(iClient)
{
SDKUnhook(iClient, SDKHook_PostThinkPost, Hook_OnPostThinkPost);
SDKUnhook(iClient, SDKHook_OnTakeDamage, eOnTakeDamage);
}
public Hook_OnPostThinkPost(iClient)
{
if(!IsPlayerAlive(iClient))
return;
new iTeam = GetClientTeam(iClient);
if(iTeam < 3 || GetEntProp(iClient, Prop_Send, "m_zombieClass") != 6)
return;
if(GetEntPropEnt(iClient, Prop_Send, "m_pummelVictim") > 0)
SetEntPropFloat(iClient, Prop_Send, "m_flPlaybackRate", POUND_RATE);
}
public Action:eOnTakeDamage(iVictim, &iAttacker, &iInflictor, &Float:fDamage, &iDamagetype)
{
if(iAttacker < 1 || iAttacker > MaxClients || !IsClientInGame(iAttacker) || GetClientTeam(iAttacker) != 3 || GetEntProp(iAttacker, Prop_Send, "m_zombieClass") != 6)
return Plugin_Continue;
if(iVictim < 1 || iVictim > MaxClients || !IsClientInGame(iVictim) || GetClientTeam(iVictim) != 2 || !IsPlayerAlive(iVictim))
return Plugin_Continue;
if(GetEntPropEnt(iVictim, Prop_Send, "m_pummelAttacker") < 1)
return Plugin_Continue;
if(GetEntProp(iVictim, Prop_Send, "m_isIncapacitated", 1) < 1)
return Plugin_Continue;
fDamage = fDamage * CHARGER_POUND_INCAP_MULTIPLYER;
return Plugin_Changed;
}
Few years later enjoy!