Изменение цвета в чате

Статус
В этой теме нельзя размещать новые ответы.

Ðǿ¢

Участник
Сообщения
12
Реакции
0
Здраствуйте!
Я хочу что бы в чате писало красным цветом я уже только что не пробывал
Вот например это PrintToChatAll("\x03Admins online are: %s", buffer);

Все цыфры перебрал красного цвета нету \x03


PHP:
#include <sourcemod>
#include <colors>  

#pragma semicolon 1

new Handle:AdminListEnabled = INVALID_HANDLE;
new Handle:AdminListMode = INVALID_HANDLE;
new Handle:AdminListMenu = INVALID_HANDLE;

public Plugin:myinfo = 
{
    name = "Admin List",
    author = "Fredd",
    description = "prints admins to clients",
    version = "1.2",
    url = "www.sourcemod.net"
}

public OnPluginStart()
{
    CreateConVar("adminlist_version", "1.2", "Admin List Version", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY);
    
    AdminListEnabled        = CreateConVar("adminlist_on", "1", "turns on and off admin list, 1=on ,0=off");
    AdminListMode            = CreateConVar("adminlist_mode", "1", "mode that changes how the list appears..");
    
    RegConsoleCmd("say", SayHook);
    RegConsoleCmd("say_team", SayHook);
}
public Action:SayHook(client, args)
{
    if(GetConVarInt(AdminListEnabled) == 1)
    {   
        new String:text[192];
        GetCmdArgString(text, sizeof(text));
        
        new startidx = 0;
        if (text[0] == '"')
        {
            startidx = 1;
            
            new len = strlen(text);
            if (text[len-1] == '"')
            {
                text[len-1] = '\0';
            }
        }
        
        if(StrEqual(text[startidx], "!admins") || StrEqual(text[startidx], "/admins"))
        {
            switch(GetConVarInt(AdminListMode))
            {
                case 1:
                {
                    decl String:AdminNames[MAXPLAYERS+1][MAX_NAME_LENGTH+1];
                    new count = 0;
                    for(new i = 1 ; i <= GetMaxClients();i++)
                    {
                        if(IsClientInGame(i))
                        {
                            new AdminId:AdminID = GetUserAdmin(i);
                            if(AdminID != INVALID_ADMIN_ID)
                            {
                                GetClientName(i, AdminNames[count], sizeof(AdminNames[]));
                                count++;
                            }
                        } 
                    }
                    decl String:buffer[1024];
                    ImplodeStrings(AdminNames, count, ",", buffer, sizeof(buffer));
                    PrintToChatAll("\x03Admins online are: %s", buffer);
                }
                case 2:
                {
                    decl String:AdminName[MAX_NAME_LENGTH];
                    AdminListMenu = CreateMenu(MenuListHandler);
                    SetMenuTitle(AdminListMenu, "Admins Online:");
                                    
                    for(new i = 1; i <= GetMaxClients(); i++)
                    {
                        if(IsClientInGame(i))
                        {
                            new AdminId:AdminID = GetUserAdmin(i);
                            if(AdminID != INVALID_ADMIN_ID)
                            {
                                GetClientName(i, AdminName, sizeof(AdminName));
                                AddMenuItem(AdminListMenu, AdminName, AdminName);
                            }
                        } 
                    }
                    SetMenuExitButton(AdminListMenu, true);
                    DisplayMenu(AdminListMenu, client, 15);
                }
            }
        }
    }
    return Plugin_Continue;
}
public MenuListHandler(Handle:menu, MenuAction:action, param1, param2)
{
    if (action == MenuAction_Select)
    {
        CloseHandle(menu);
    }
    else if (action == MenuAction_Cancel)
    {
        CloseHandle(menu);
    }
    else if (action == MenuAction_End)
    {
        CloseHandle(menu);
    }
}
 
Последнее редактирование:

KapaT

Эгоист
Сообщения
1,988
Реакции
535
Сергей Королев, хочешь чтоб все писали или только админы?
 

Satan

Участник
Сообщения
159
Реакции
338
Сергей Королев, CPrintToChatAll("{red}Admins online are: %s", buffer);
 
Последнее редактирование:

Satan

Участник
Сообщения
159
Реакции
338
Вечно забываю про букву C там ^_^
 

Ðǿ¢

Участник
Сообщения
12
Реакции
0
Сергей Королев, PrintToChatAll("{red}Admins online are: %s", buffer);
Я побывал Не получается я уже много плагинов хотел сделать красным цветом но там везде
\x03 , \x01 , \x05

Добавлено через 41 минуту
Или вот я хочу красный цвет а там \x04[RPG Сервер] \x05Защита активирована на [\x04%i] \x05секунд", RoundToNearest(Time));
PHP:
#include <sourcemod>
#include <sdktools>

#define VERSION "1.5"
#pragma semicolon 1

new TeamSpec;
new TeamUna;
new bool:NoTeams = false;

new Handle:SpawnProtectionEnabled;
new Handle:SpawnProtectionTime;
new Handle:SpawnProtectionNotify;
new Handle:SpawnProtectionColor;

new RenderOffs;

enum FX
{
    FxNone = 0,
    FxPulseFast,
    FxPulseSlowWide,
    FxPulseFastWide,
    FxFadeSlow,
    FxFadeFast,
    FxSolidSlow,
    FxSolidFast,
    FxStrobeSlow,
    FxStrobeFast,
    FxStrobeFaster,
    FxFlickerSlow,
    FxFlickerFast,
    FxNoDissipation,
    FxDistort,               // Distort/scale/translate flicker
    FxHologram,              // kRenderFxDistort + distance fade
    FxExplode,               // Scale up really big!
    FxGlowShell,             // Glowing Shell
    FxClampMinScale,         // Keep this sprite from getting very small (SPRITES only!)
    FxEnvRain,               // for environmental rendermode, make rain
    FxEnvSnow,               //  "        "            "    , make snow
    FxSpotlight,     
    FxRagdoll,
    FxPulseFastWider,
};

enum Render
{
    Normal = 0,         // src
    TransColor,         // c*a+dest*(1-a)
    TransTexture,        // src*a+dest*(1-a)
    Glow,                // src*a+dest -- No Z buffer checks -- Fixed size in screen space
    TransAlpha,            // src*srca+dest*(1-srca)
    TransAdd,            // src*a+dest
    Environmental,        // not drawn, used for environmental effects
    TransAddFrameBlend,    // use a fractional frame value to blend between animation frames
    TransAlphaAdd,        // src + dest*(1-a)
    WorldGlow,            // Same as kRenderGlow but not fixed size in screen space
    None,                // Don't render.
};

public Plugin:myinfo = 
{
    name = "Spawn Protection",
    author = "Fredd",
    description = "Adds spawn protection",
    version = VERSION,
    url = "www.sourcemod.net"
}

public OnPluginStart()
{
    CreateConVar("spawnprotection_version", VERSION, "Spawn Protection Version", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY);
    
    SpawnProtectionEnabled        = CreateConVar("sp_on", "1");
    SpawnProtectionTime            = CreateConVar("sp_time", "10");
    SpawnProtectionNotify        = CreateConVar("sp_notify", "1");
    SpawnProtectionColor        = CreateConVar("sp_color", "0 255 0 120");
    
    AutoExecConfig(true, "spawn_protection");
    
    RenderOffs                    = FindSendPropOffs("CBasePlayer", "m_clrRender");
    
    decl String:ModName[21];
    GetGameFolderName(ModName, sizeof(ModName));
    
    if(StrEqual(ModName, "cstrike", false) || StrEqual(ModName, "dod", false) || StrEqual(ModName, "tf", false))
    {
        TeamSpec = 1;
        TeamUna = 0;
        NoTeams = false;
        
    } else if(StrEqual(ModName, "Insurgency", false))
    {
        TeamSpec = 3;
        TeamUna = 0;
        NoTeams = false;
    }
    else if(StrEqual(ModName, "hl2mp", false))
    {
        NoTeams = true;
    } else
    {
        SetFailState("%s is an unsupported mod", ModName);
    }
    HookEvent("player_spawn", OnPlayerSpawn);
}
public Action:OnPlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast)
{
    if(GetConVarInt(SpawnProtectionEnabled) == 1)
    {
        new client     = GetClientOfUserId(GetEventInt(event, "userid"));
        new Team     = GetClientTeam(client);
        
        if(NoTeams == false)
        {
            if(Team == TeamSpec || Team == TeamUna)
                return Plugin_Continue;
        }
        if(!IsPlayerAlive(client))
            return Plugin_Continue;
        
        decl String:SzColor[32];
        decl String:Colors[4][4];
        new Float:Time = float(GetConVarInt(SpawnProtectionTime));
        
        GetConVarString(SpawnProtectionColor, SzColor, sizeof(SzColor));
        ExplodeString(SzColor, " ", Colors, 4, 4);
            
        SetEntProp(client, Prop_Data, "m_takedamage", 0, 1);
        set_rendering(client, FX:FxDistort, StringToInt(Colors[0]),StringToInt(Colors[1]),StringToInt(Colors[2]), Render:RENDER_TRANSADD, StringToInt(Colors[3]));
        CreateTimer(Time, RemoveProtection, client);
        if(GetConVarInt(SpawnProtectionNotify) > 0)
            PrintToChat(client, "\x04[RPG Сервер] \x05Защита активирована на [\x04%i] \x05секунд", RoundToNearest(Time)); 
    }
    return Plugin_Continue;
}
public Action:RemoveProtection(Handle:timer, any:client)
{
    if(IsClientInGame(client))
    {
        SetEntProp(client, Prop_Data, "m_takedamage", 2, 1);
        set_rendering(client);
        if(GetConVarInt(SpawnProtectionNotify) > 0)
            PrintToChat(client, "\x04[RPG Сервер] \x05Защита отключена.");
    }
}
stock set_rendering(index, FX:fx=FxNone, r=255, g=255, b=255, Render:render=Normal, amount=255)
{
    SetEntProp(index, Prop_Send, "m_nRenderFX", _:fx, 1);
    SetEntProp(index, Prop_Send, "m_nRenderMode", _:render, 1);    
    SetEntData(index, RenderOffs, r, 1, true);
    SetEntData(index, RenderOffs + 1, g, 1, true);
    SetEntData(index, RenderOffs + 2, b, 1, true);
    SetEntData(index, RenderOffs + 3, amount, 1, true);    
}
 
Последнее редактирование модератором:

KapaT

Эгоист
Сообщения
1,988
Реакции
535
Сергей Королев, в начала плагина добовлял #include <colors> и вообще файл лежат на сервере с этого расширения?
 

rembo

Участник
Сообщения
12
Реакции
0
русские символы в названии папки Сергей
 

September

Участник
Сообщения
5,238
Реакции
2,742
  • Команда форума
  • #10
Не хватает расширения colors

И обнови SourceMod.
1.4.1 ломаннуть можно
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу