One of my friend gave me this code but it doesn't make the player to go prone. i only see the hint message :
PHP Code:
#include <sourcemod>
#include <sdktools>
#include <sdkhooks>
bool ProneModeDisabled[MAXPLAYERS+1];
public void OnPluginStart()
{
AddCommandListener(OnProne, "+prone");
}
public void OnClientPostAdminCheck(int client)
{
ProneModeDisabled[client] = false;
HookEvent("player_spawn", Event_PlayerSpawn);
HookEvent("player_death", Event_PlayerDeath);
HookEvent("player_hurt", Event_PlayerHurt);
HookEvent("player_jump", Event_PlayerJump, EventHookMode_Pre);
}
public Action Event_PlayerSpawn(Event event, const char[] name, bool dontBroadcast)
{
int client = GetClientOfUserId(event.GetInt("userid"));
if(IsValidClient(client) && ProneModeDisabled[client])
{
ProneModeDisabled[client] = false;
}
return Plugin_Continue;
}
public Action Event_PlayerDeath(Event event, const char[] name, bool dontBroadcast)
{
int client = GetClientOfUserId(event.GetInt("userid"));
if(IsValidClient(client) && ProneModeDisabled[client])
{
ProneModeDisabled[client] = false;
}
return Plugin_Continue;
}
public Action Event_PlayerHurt(Event event, const char[] name, bool dontBroadcast)
{
int client = GetClientOfUserId(event.GetInt("userid"));
if(IsValidClient(client))
{
int hitgroup = GetEventInt(event, "hitgroup"); //Get hitgroup
if(hitgroup == 6 || hitgroup == 7) //If hitgroup 6 or 7
{
if(!ProneModeDisabled[client] && GetClientHealth(client) <= 25) //If not in prone and health is below 26
{
ClientCommand(client, "+prone");
ProneModeDisabled[client] = true; //activate +prone blocking
PrintHintText(client, "You have a broken leg! You can't walk!");
}
}
}
return Plugin_Continue;
}
public Action Event_PlayerJump(Event event, const char[] name, bool dontBroadcast)
{
int client = GetClientOfUserId(event.GetInt("userid"));
if(IsValidClient(client) && ProneModeDisabled[client])
return Plugin_Handled;
return Plugin_Continue;
}
public Action OnProne(int client, const char[] cmd, int argc)
{
if(ProneModeDisabled[client])
return Plugin_Handled;
return Plugin_Continue;
}
stock bool IsValidClient(int client)
{
return (1 <= client <= MaxClients && IsClientInGame(client));
}