Подскажите пожалуйста как запретить показ титула над головой когда в спектрах?

Тема в разделе "Программирование / Скриптинг", создана пользователем santazx, 27 июл 2015.

  1. santazx

    santazx

    Сообщения:
    19
    Симпатии:
    0
    Подскажите пожалуйста как запретить показ титула над головой игроков когда в спектрах?
    Привожу в пример код ниже.

    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_HANDLECloseHandle(g_hKv);
        
    g_hKv CreateKeyValues("admin_upstatus");
        
    BuildPath(Path_SMbuffer256"data/admin_status.ini");
        if (!
    FileToKeyValues(g_hKvbuffer)) SetFailState("Couldn't parse file %s"buffer);
        
    KvGetString(g_hKv"flag"upstatus_flagsizeof(upstatus_flag), "");
        
    KvGetString(g_hKv"status_sprite_vmt"upstatusPLATFORM_MAX_PATH);
        
    KvGetString(g_hKv"status_sprite_vtf"upstatus2PLATFORM_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.1Create_Modelclient);
            }
            else if(
    StrEqual(upstatus_flag"a") && GetAdminFlag(adminAdmin_ReservationAccess_Effective))
            {
                
    CreateTimer(0.1Create_Modelclient);
            }
            else if(
    StrEqual(upstatus_flag"b") && GetAdminFlag(adminAdmin_GenericAccess_Effective))
            {
                
    CreateTimer(0.1Create_Modelclient);
            }
            else if(
    StrEqual(upstatus_flag"c") && GetAdminFlag(adminAdmin_KickAccess_Effective))
            {
                
    CreateTimer(0.1Create_Modelclient);
            }
            else if(
    StrEqual(upstatus_flag"d") && GetAdminFlag(adminAdmin_BanAccess_Effective))
            {
                
    CreateTimer(0.1Create_Modelclient);
            }
            else if(
    StrEqual(upstatus_flag"e") && GetAdminFlag(adminAdmin_UnbanAccess_Effective))
            {
                
    CreateTimer(0.1Create_Modelclient);
            }
            else if(
    StrEqual(upstatus_flag"f") && GetAdminFlag(adminAdmin_SlayAccess_Effective))
            {
                
    CreateTimer(0.1Create_Modelclient);
            }            
            else if(
    StrEqual(upstatus_flag"g") && GetAdminFlag(adminAdmin_ChangemapAccess_Effective))
            {
                
    CreateTimer(0.1Create_Modelclient);
            }
            else if(
    StrEqual(upstatus_flag"h") && GetAdminFlag(adminAdmin_ConvarsAccess_Effective))
            {
                
    CreateTimer(0.1Create_Modelclient);
            }
            else if(
    StrEqual(upstatus_flag"i") && GetAdminFlag(adminAdmin_ConfigAccess_Effective))
            {
                
    CreateTimer(0.1Create_Modelclient);
            }
            else if(
    StrEqual(upstatus_flag"j") && GetAdminFlag(adminAdmin_ChatAccess_Effective))
            {
                
    CreateTimer(0.1Create_Modelclient);
            }
            else if(
    StrEqual(upstatus_flag"k") && GetAdminFlag(adminAdmin_VoteAccess_Effective))
            {
                
    CreateTimer(0.1Create_Modelclient);
            }
            else if(
    StrEqual(upstatus_flag"l") && GetAdminFlag(adminAdmin_PasswordAccess_Effective))
            {
                
    CreateTimer(0.1Create_Modelclient);
            }
            else if(
    StrEqual(upstatus_flag"m") && GetAdminFlag(adminAdmin_RCONAccess_Effective))
            {
                
    CreateTimer(0.1Create_Modelclient);
            }
            else if(
    StrEqual(upstatus_flag"n") && GetAdminFlag(adminAdmin_CheatsAccess_Effective))
            {
                
    CreateTimer(0.1Create_Modelclient);
            }
            else if(
    StrEqual(upstatus_flag"o") && GetAdminFlag(adminAdmin_Custom1Access_Effective))
            {
                
    CreateTimer(0.1Create_Modelclient);
            }
            else if(
    StrEqual(upstatus_flag"p") && GetAdminFlag(adminAdmin_Custom2Access_Effective))
            {
                
    CreateTimer(0.1Create_Modelclient);
            }
            else if(
    StrEqual(upstatus_flag"q") && GetAdminFlag(adminAdmin_Custom3Access_Effective))
            {
                
    CreateTimer(0.1Create_Modelclient);
            }
            else if(
    StrEqual(upstatus_flag"r") && GetAdminFlag(adminAdmin_Custom4Access_Effective))
            {
                
    CreateTimer(0.1Create_Modelclient);
            }
            else if(
    StrEqual(upstatus_flag"s") && GetAdminFlag(adminAdmin_Custom5Access_Effective))
            {
                
    CreateTimer(0.1Create_Modelclient);
            }            
            else if(
    StrEqual(upstatus_flag"t") && GetAdminFlag(adminAdmin_Custom6Access_Effective))
            {
                
    CreateTimer(0.1Create_Modelclient);
            }
            else if(
    StrEqual(upstatus_flag"z") && GetAdminFlag(adminAdmin_RootAccess_Effective))
            {
                
    CreateTimer(0.1Create_Modelclient);
            }
        }
    }

    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:iTimerany:client)
    {
        
    SafeDelete(g_Models[client]);
        
    g_Models[client] = CreateIcon();
        
    PlaceAndBindIcon(clientg_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(cliententity)
    {
        new 
    Float:origin[3];

        if(
    IsValidEntity(entity)) {
            
    GetClientAbsOrigin(clientorigin);
            
    origin[2] = origin[2] + 90.0;
            
    TeleportEntity(entityoriginNULL_VECTORNULL_VECTOR);

            
    SetVariantString("!activator");
            
    AcceptEntityInput(entity"SetParent"client);
        }
    }

    SafeDelete(entity)
    {
        if(
    IsValidEntity(entity)) {
            
    AcceptEntityInput(entity"Kill");
        }
     
    Последнее редактирование: 27 июл 2015
  2. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.586
    Симпатии:
    1.994
    После этого добавь просто с новой строчки: HookEvent("player_team", Event_PlayerDeath);
    Думаю, будет вполне достаточно и целесообразно.
     
    santazx нравится это.
  3. santazx

    santazx

    Сообщения:
    19
    Симпатии:
    0
    Спасибо попробую с этим :)

    Добавлено через 20 минут
    AlmazON, подскажите пожалуйста как сделать активацию звука 1 раз на карте даже если другой игрок активирует.

    Пример кода ниже заранее спасибо.
    PHP:
    for (new 1<= MaxClientsi++){
        if (
    IsClientInGame(i) && !IsFakeClient(i))
        {
            
    ClientCommand(i"play music/event.mp3");
        }
    }

    Сейчас работает не правильно, игрок активирует и другие повторно.
    А нужно активировать 1 раз одним игроком в раунде.
     
    Последнее редактирование: 27 июл 2015
  4. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.586
    Симпатии:
    1.994
    PHP:
    new bool:MapSoundON true;

    public 
    OnMapEnd() MapSoundON true;

    if (
    MapSoundON)
    {
        for (new 
    1<= MaxClientsi++){
        if (
    IsClientInGame(i) && !IsFakeClient(i))
        {
            
    ClientCommand(i"play music/event.mp3");
        }
        
    MapSoundON false;
    }
     
    santazx нравится это.
  5. santazx

    santazx

    Сообщения:
    19
    Симпатии:
    0
    Спасибо :beer: