PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <colorchat>
#define PLUGIN "Shove Mod"
#define VERSION "1.2"
#define AUTHOR "Styles"
new cShove, cCooldown, cInUse
new gLastShove[32], bool:g_dontshove[33]
new const Prefix[] = "[Dz-Gamers]"
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /shove", "switchshove")
register_clcmd("say_team /shove", "switchshove")
cShove = register_cvar("shove_force", "7")
cCooldown = register_cvar("shove_cooldown", "10")
cInUse = register_cvar("shove_allow_inuse", "1")
register_forward(FM_PlayerPreThink, "Forward_PlayerPreThink")
}
public client_putinserver(id)
{
g_dontshove[id] = false
}
public Forward_PlayerPreThink(id)
{
if(!get_pcvar_num(cInUse))
return PLUGIN_HANDLED
if(pev( id, pev_button ) & IN_USE && !(pev( id, pev_oldbuttons ) & IN_USE ) & !is_user_bot(id))
shovePlayer(id)
return PLUGIN_CONTINUE
}
public switchshove(id)
{
if(g_dontshove[id] == true){
g_dontshove[id] = false
ColorChat(id, GREEN, "%s^1 You have successfully enabled shove^3!", Prefix)
}
else if(g_dontshove[id] == false){
g_dontshove[id] = true
ColorChat(id, GREEN, "%s^1 You have successfully disabled shove^3 !", Prefix)
}
}
public shovePlayer(id)
{
if(get_user_team(id) == 2){
if(!is_user_alive(id) || g_dontshove[id])
return PLUGIN_HANDLED
if(get_systime() - gLastShove[id] < get_pcvar_num(cCooldown))
{
ColorChat(id, GREEN, "%s^1 Your muscles are too weak to shove the player^4.^1 Wait^3 %d^1 more seconds^4!", Prefix, (get_pcvar_num(cCooldown) - (get_systime() - gLastShove[id])))
//client_print(id, print_chat, "%s Your muscles are weak from shoving the player. You must wait to do it again. (%i)", Prefix, (get_pcvar_num(cCooldown) - (get_systime() - gLastShove[id])))
return PLUGIN_HANDLED
}
new Index,Body, pName[64], tName[64]
get_user_aiming(id,Index,Body,200)
if(!Index || !is_user_alive(Index) || g_dontshove[Index])
return PLUGIN_HANDLED
new Float:size[3]
pev(id, pev_size, size)
if(size[2] < 72.0)
{
ColorChat(id, GREEN, "%s^1 You can't shove somebody while you do this^4!", Prefix)
//client_print(id, print_chat, "%s You can't shove somebody while doing that action.", Prefix)
return PLUGIN_HANDLED
}
get_user_name(id, pName, charsmax(pName))
get_user_name(Index, tName, charsmax(tName))
new Float:velocity[3], Float:shover[3], Float:shovee[3]
pev(id, pev_origin, shover)
pev(Index, pev_origin, shovee)
for(new Count;Count < 3;Count++)
velocity[Count] = (shovee[Count] - shover[Count]) * get_pcvar_float(cShove)
set_pev(Index, pev_velocity, velocity)
//client_print(id, print_chat, "%s You have just shoved %s!", Prefix, tName)
//client_print(Index, print_chat, "%s You have just been shoved by %s!", Prefix, pName)
gLastShove[id] = get_systime()
g_dontshove[id] = false
new players[32], num, others
get_players(players, num, "h")
for(new i; i < num; i++)
{
others = players[i]
if(others == id)
ColorChat(others, GREEN, "%s^1 You have just shoved^3 %s^4!", Prefix, tName)
else if(others == Index)
ColorChat(others, GREEN, "%s^1 You have been just shoved by^3 %s^4!", Prefix, pName)
else
ColorChat(others, GREEN, "%s^3 %s^1 has just shoved^3 %s^4!", Prefix, tName, pName)
}
}
ColorChat(id, GREEN, "^4Only CT's Can use that command")
return PLUGIN_HANDLED
}
public client_disconnect(id)
g_dontshove[id] = false
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1036\\ f0\\ fs16 \n\\ par }
*/