132 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			SourcePawn
		
	
	
	
	
	
			
		
		
	
	
			132 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			SourcePawn
		
	
	
	
	
	
| #if defined entWatch_helpers_included
 | |
| 	#endinput
 | |
| #endif
 | |
| 
 | |
| #define entWatch_helpers_included
 | |
| 
 | |
| /**
 | |
|  * Converts the whole String to lower case.
 | |
|  * Only works with alphabetical characters (not ײִ) because Sourcemod suxx !
 | |
|  * The Output String can be the same as the Input String.
 | |
|  *
 | |
|  * @param input				Input String.
 | |
|  * @param output			Output String.
 | |
|  * @param size				Max Size of the Output string
 | |
|  * @noreturn
 | |
|  */
 | |
| stock void String_ToLower(const char[] input, char[] output, int size)
 | |
| {
 | |
| 	size--;
 | |
| 
 | |
| 	int x;
 | |
| 	while (input[x] != '\0' || x < size) {
 | |
| 
 | |
| 		if (IsCharUpper(input[x])) {
 | |
| 			output[x] = CharToLower(input[x]);
 | |
| 		}
 | |
| 		else {
 | |
| 			output[x] = input[x];
 | |
| 		}
 | |
| 
 | |
| 		x++;
 | |
| 	}
 | |
| 
 | |
| 	output[x] = '\0';
 | |
| }
 | |
| 
 | |
| /**
 | |
| * Checks if the specified index is a player and connected.
 | |
| *
 | |
| * @param entity				An entity index.
 | |
| * @param checkConnected		Set to false to skip the IsClientConnected check
 | |
| * @return					Returns true if the specified entity index is a player connected, false otherwise.
 | |
| */
 | |
| stock bool Client_IsValid(int client, bool checkConnected=true)
 | |
| {
 | |
| 	if (client > 4096) {
 | |
| 		client = EntRefToEntIndex(client);
 | |
| 	}
 | |
| 
 | |
| 	if (client < 1 || client > MaxClients) {
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	if (checkConnected && !IsClientConnected(client)) {
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	return true;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Gets the client's current observer target entity.
 | |
|  *
 | |
|  * @param client		Client Index.
 | |
|  * @return				Observed Entity Index.
 | |
|  */
 | |
| stock int Client_GetObserverTarget(int client)
 | |
| {
 | |
| 	return GetEntPropEnt(client, Prop_Send, "m_hObserverTarget");
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * Checks if an entity is valid and exists.
 | |
|  *
 | |
|  * @param entity		Entity Index.
 | |
|  * @return				True if the entity is valid, false otherwise.
 | |
|  */
 | |
| stock bool Entity_IsValid(int entity)
 | |
| {
 | |
| 	return IsValidEntity(entity);
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Gets the Hammer-ID of an entity.
 | |
|  * The Hammer Editor gives every entity a unique ID.
 | |
|  * Note: Old maps don't have Hammer-ID's set for entities
 | |
|  *
 | |
|  * @param entity			Entity index.
 | |
|  * @return					Hammer ID.
 | |
|  */
 | |
| stock int Entity_GetHammerID(int entity)
 | |
| {
 | |
| 	return GetEntProp(entity, Prop_Data, "m_iHammerID");
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Gets the owner of an entity.
 | |
|  * For example the owner of a weapon entity.
 | |
|  *
 | |
|  * @param entity		Entity index.
 | |
|  * @return				Ground Entity or -1
 | |
|  */
 | |
| stock int Entity_GetOwner(int entity)
 | |
| {
 | |
| 	return GetEntPropEnt(entity, Prop_Data, "m_hOwnerEntity");
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * Gets the parent entity of an entity.
 | |
|  *
 | |
|  * @param entity		Entity Index.
 | |
|  * @return				Entity Index of the parent.
 | |
|  */
 | |
| stock int Entity_GetParent(int entity)
 | |
| {
 | |
| 	return GetEntPropEnt(entity, Prop_Data, "m_pParent");
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Sets the Name of an entity.
 | |
|  *
 | |
|  * @param entity			Entity index.
 | |
|  * @param name				The name you want to give.
 | |
|  * @noreturn
 | |
|  */
 | |
| stock void Entity_SetName(int entity, const char[] name, any ...)
 | |
| {
 | |
| 	char format[128];
 | |
| 	VFormat(format, sizeof(format), name, 3);
 | |
| 
 | |
| 	DispatchKeyValue(entity, "targetname", format);
 | |
| } |