sm-plugins/includes/entWatch.inc

151 lines
4.5 KiB
PHP
Raw Normal View History

#if defined _entWatch_include
#endinput
#endif
#define _entWatch_include
/**
* Checks if a client is currently banned, if an integer variable is referenced the time of unban will be assigned to it.
*
* @param client Client index to check for ban
* @param iTimeStamp Pass an integer variable by reference and it will contain the UNIX timestamp when the player will be unbanned
* @return True if user is banned, false otherwise
*
* On error/errors: Invalid client index/client is not in game or client cookies are not yet loaded
*/
native bool:entWatch_IsClientBanned(client, &iTimeStamp);
/**
* Bans a client from using special items.
*
* @param client Client index to ban
* @param IsTemporary If the ban should be temporary pass true here
* @param iLength Length of ban in minutes, pass 0 here for a permanent ban
* @return True on success, false otherwsie
*
* On error/errors: Invalid client index/client is not in game or client cookies are not yet loaded
*/
native bool:entWatch_BanClient(client, bool:bIsTemporary=false, iLength=0);
/**
* Unbans a previously ebanned Client.
*
* @param client Client index to unban
* @return True on success, false otherwsie
*
* On error/errors: Invalid client index/client is not in game or client cookies are not yet loaded
*/
native bool:entWatch_UnbanClient(client);
/**
* Checks if an entity is a special item.
*
* @param entity Entity index to check
* @return True if entity is a special item, false otherwsie
*/
native bool:entWatch_IsSpecialItem(entity);
/**
* Checks if a client has a special item.
*
* @param client Client index to check
* @return True if client has a special item, false otherwsie
*/
native bool:entWatch_HasSpecialItem(client);
/**
* Called when a client is e-banned by any means
*
* @param admin Admin index that issued the ban
* @param iLength Length of the ban in UNIX time
* @param client Client index that was banned
*
* @return None
*/
forward entWatch_OnClientBanned(admin, iLenght, client);
/**
* Called when a client is e-unbanned by any means
*
* @param admin Admin index that removed the ban
* @param client Client index that was unbanned
* @return None
*/
forward entWatch_OnClientUnbanned(admin, client);
//----------------------------------------------------------------------------------------------------
// Purpose: SMLib
//----------------------------------------------------------------------------------------------------
stock Entity_GetTargetName(entity, String:buffer[], size)
{
return GetEntPropString(entity, Prop_Data, "m_iName", buffer, size);
}
//----------------------------------------------------------------------------------------------------
// Purpose: SMLib
//----------------------------------------------------------------------------------------------------
stock Entity_GetParentName(entity, String:buffer[], size)
{
return GetEntPropString(entity, Prop_Data, "m_iParent", buffer, size);
}
//----------------------------------------------------------------------------------------------------
// Purpose: SMLib
//----------------------------------------------------------------------------------------------------
stock Entity_GetHammerID(entity)
{
return GetEntProp(entity, Prop_Data, "m_iHammerID");
}
//----------------------------------------------------------------------------------------------------
// Purpose: SMLib
//----------------------------------------------------------------------------------------------------
stock Entity_GetClassName(entity, String:buffer[], size)
{
GetEntPropString(entity, Prop_Data, "m_iClassname", buffer, size);
if (buffer[0] == '\0') {
return false;
}
return true;
}
//----------------------------------------------------------------------------------------------------
// Purpose: SMLib
//----------------------------------------------------------------------------------------------------
stock Entity_GetEntityFromHammerID(hammerID)
{
for (new i = 0; i < 4096; i++)
{
if (IsValidEntity(i) && Entity_GetHammerID(i) == hammerID)
{
if (IsValidEntity(i))
return i;
}
}
return -1;
}
public SharedPlugin:__pl_entWatch =
{
name = "entWatch",
file = "entWatch.smx",
#if defined REQUIRE_PLUGIN
required = 1
#else
required = 0
#endif
};
#if !defined REQUIRE_PLUGIN
public __pl_entWatch_SetNTVOptional()
{
MarkNativeAsOptional("entWatch_IsClientBanned");
MarkNativeAsOptional("entWatch_BanClient");
MarkNativeAsOptional("entWatch_UnbanClient");
MarkNativeAsOptional("entWatch_IsSpecialItem");
MarkNativeAsOptional("entWatch_HasSpecialItem");
}
#endif