santazx
Участник
- Сообщения
- 23
- Реакции
- 5
Подскажите пожалуйста как запретить показ титула над головой игроков когда в спектрах?
Привожу в пример код ниже.
Привожу в пример код ниже.
PHP:
#pragma semicolon 1
#include <sourcemod>
#include <sdktools>
#include <sdkhooks>
#include <clientprefs>
public Plugin:myinfo =
{
name = "Admin Status",
author = "1mpulse",
version = "0.1",
url = ""
};
new g_Models[MAXPLAYERS + 1] = {-1, ...};
new Handle:g_hKv;
new String:upstatus_flag[5];
new String:upstatus[PLATFORM_MAX_PATH], String:upstatus2[PLATFORM_MAX_PATH];
public OnPluginStart()
{
decl String:buffer[256];
if (g_hKv != INVALID_HANDLE) CloseHandle(g_hKv);
g_hKv = CreateKeyValues("admin_upstatus");
BuildPath(Path_SM, buffer, 256, "data/admin_status.ini");
if (!FileToKeyValues(g_hKv, buffer)) SetFailState("Couldn't parse file %s", buffer);
KvGetString(g_hKv, "flag", upstatus_flag, sizeof(upstatus_flag), "");
KvGetString(g_hKv, "status_sprite_vmt", upstatus, PLATFORM_MAX_PATH);
KvGetString(g_hKv, "status_sprite_vtf", upstatus2, PLATFORM_MAX_PATH);
HookEvent("player_spawn", Event_PlayerSpawn);
HookEvent("player_death", Event_PlayerDeath);
}
public OnMapStart()
{
PrecacheModel(upstatus);
PrecacheModel(upstatus2);
}
public Action:Event_PlayerSpawn(Handle:event, const String:name[], bool:dontbroadcast)
{
new client = GetClientOfUserId(GetEventInt(event, "userid"));
new AdminId:admin = GetUserAdmin(client);
if(IsClientInGame(client) && IsPlayerAlive(client) && admin != INVALID_ADMIN_ID)
{
if(StrEqual(upstatus_flag, ""))
{
CreateTimer(0.1, Create_Model, client);
}
else if(StrEqual(upstatus_flag, "a") && GetAdminFlag(admin, Admin_Reservation, Access_Effective))
{
CreateTimer(0.1, Create_Model, client);
}
else if(StrEqual(upstatus_flag, "b") && GetAdminFlag(admin, Admin_Generic, Access_Effective))
{
CreateTimer(0.1, Create_Model, client);
}
else if(StrEqual(upstatus_flag, "c") && GetAdminFlag(admin, Admin_Kick, Access_Effective))
{
CreateTimer(0.1, Create_Model, client);
}
else if(StrEqual(upstatus_flag, "d") && GetAdminFlag(admin, Admin_Ban, Access_Effective))
{
CreateTimer(0.1, Create_Model, client);
}
else if(StrEqual(upstatus_flag, "e") && GetAdminFlag(admin, Admin_Unban, Access_Effective))
{
CreateTimer(0.1, Create_Model, client);
}
else if(StrEqual(upstatus_flag, "f") && GetAdminFlag(admin, Admin_Slay, Access_Effective))
{
CreateTimer(0.1, Create_Model, client);
}
else if(StrEqual(upstatus_flag, "g") && GetAdminFlag(admin, Admin_Changemap, Access_Effective))
{
CreateTimer(0.1, Create_Model, client);
}
else if(StrEqual(upstatus_flag, "h") && GetAdminFlag(admin, Admin_Convars, Access_Effective))
{
CreateTimer(0.1, Create_Model, client);
}
else if(StrEqual(upstatus_flag, "i") && GetAdminFlag(admin, Admin_Config, Access_Effective))
{
CreateTimer(0.1, Create_Model, client);
}
else if(StrEqual(upstatus_flag, "j") && GetAdminFlag(admin, Admin_Chat, Access_Effective))
{
CreateTimer(0.1, Create_Model, client);
}
else if(StrEqual(upstatus_flag, "k") && GetAdminFlag(admin, Admin_Vote, Access_Effective))
{
CreateTimer(0.1, Create_Model, client);
}
else if(StrEqual(upstatus_flag, "l") && GetAdminFlag(admin, Admin_Password, Access_Effective))
{
CreateTimer(0.1, Create_Model, client);
}
else if(StrEqual(upstatus_flag, "m") && GetAdminFlag(admin, Admin_RCON, Access_Effective))
{
CreateTimer(0.1, Create_Model, client);
}
else if(StrEqual(upstatus_flag, "n") && GetAdminFlag(admin, Admin_Cheats, Access_Effective))
{
CreateTimer(0.1, Create_Model, client);
}
else if(StrEqual(upstatus_flag, "o") && GetAdminFlag(admin, Admin_Custom1, Access_Effective))
{
CreateTimer(0.1, Create_Model, client);
}
else if(StrEqual(upstatus_flag, "p") && GetAdminFlag(admin, Admin_Custom2, Access_Effective))
{
CreateTimer(0.1, Create_Model, client);
}
else if(StrEqual(upstatus_flag, "q") && GetAdminFlag(admin, Admin_Custom3, Access_Effective))
{
CreateTimer(0.1, Create_Model, client);
}
else if(StrEqual(upstatus_flag, "r") && GetAdminFlag(admin, Admin_Custom4, Access_Effective))
{
CreateTimer(0.1, Create_Model, client);
}
else if(StrEqual(upstatus_flag, "s") && GetAdminFlag(admin, Admin_Custom5, Access_Effective))
{
CreateTimer(0.1, Create_Model, client);
}
else if(StrEqual(upstatus_flag, "t") && GetAdminFlag(admin, Admin_Custom6, Access_Effective))
{
CreateTimer(0.1, Create_Model, client);
}
else if(StrEqual(upstatus_flag, "z") && GetAdminFlag(admin, Admin_Root, Access_Effective))
{
CreateTimer(0.1, Create_Model, client);
}
}
}
public Action:Event_PlayerDeath(Handle:event, const String:name[], bool:dontbroadcast)
{
new client = GetClientOfUserId(GetEventInt(event, "userid"));
SafeDelete(g_Models[client]);
g_Models[client] = -1;
return Plugin_Continue;
}
public Action:Create_Model(Handle:iTimer, any:client)
{
SafeDelete(g_Models[client]);
g_Models[client] = CreateIcon();
PlaceAndBindIcon(client, g_Models[client]);
}
CreateIcon()
{
new sprite = CreateEntityByName("env_sprite_oriented");
if(sprite == -1) return -1;
DispatchKeyValue(sprite, "classname", "env_sprite_oriented");
DispatchKeyValue(sprite, "spawnflags", "1");
DispatchKeyValue(sprite, "scale", "0.3");
DispatchKeyValue(sprite, "rendermode", "1");
DispatchKeyValue(sprite, "rendercolor", "255 255 255");
DispatchKeyValue(sprite, "model", upstatus);
if(DispatchSpawn(sprite)) return sprite;
return -1;
}
PlaceAndBindIcon(client, entity)
{
new Float:origin[3];
if(IsValidEntity(entity)) {
GetClientAbsOrigin(client, origin);
origin[2] = origin[2] + 90.0;
TeleportEntity(entity, origin, NULL_VECTOR, NULL_VECTOR);
SetVariantString("!activator");
AcceptEntityInput(entity, "SetParent", client);
}
}
SafeDelete(entity)
{
if(IsValidEntity(entity)) {
AcceptEntityInput(entity, "Kill");
}
}
Последнее редактирование: