Jump to content


Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Posted Image Posted Image

Guest Message by DevFuse
 

PrintColorChat (z przejściem do nowych linii).Zawsze o tym marzyłeś.

cs:go printcolorchat sourcemod

  • You cannot start a new topic
  • You cannot reply to this topic
1 reply to this topic

#1 Droso

    Dawniej HubertTM

  • Support Team

  • Reputacja: 1,291
    Godlike

  • Postów:2,371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Posted 26.10.2015 17:27

stock PrintColorChat(id, String:string2[192], any:...)
{
    decl String:string[192]
    VFormat(string, 192, string2, 3);
    
    ReplaceString(string, sizeof(string), "{white}", " \x01");
    
    ReplaceString(string, sizeof(string), "{strongred}", " \x02");
    
    ReplaceString(string, sizeof(string), "{purple}", " \x03");
    
    ReplaceString(string, sizeof(string), "{red}", " \x0F");
    
    ReplaceString(string, sizeof(string), "{ct}", " \x0B");
    ReplaceString(string, sizeof(string), "{blue}", " \x0B");    

    ReplaceString(string, sizeof(string), "{darkblue}", " \x0C");
    
    ReplaceString(string, sizeof(string), "{grey}", " \x0A");
    
    ReplaceString(string, sizeof(string), "{green}", " \x04");
    
    ReplaceString(string, sizeof(string), "{yellow}", " \x10");
    
    ReplaceString(string, sizeof(string), "{tt}", " \x09");
    
    
    if(StrContains(string, " ", false) == 0)
    {            
        ReplaceStringEx(string, 192, " ", "", _, _, false);
    }
    
    if(id)
    PrintToChat(id, " \x01%s", string);
    else
    PrintToChatAll(" \x01%s", string);
}


stock PrintColorChat2(id, String:string2[512], any:...)
{
    decl String:string[512]
    VFormat(string, 512, string2, 3);
    
    ReplaceString(string, sizeof(string), "{white}", " \x01");
    
    ReplaceString(string, sizeof(string), "{strongred}", " \x02");
    
    ReplaceString(string, sizeof(string), "{purple}", " \x03");
    
    ReplaceString(string, sizeof(string), "{red}", " \x0F");
    
    ReplaceString(string, sizeof(string), "{blue}", " \x0B");
    ReplaceString(string, sizeof(string), "{ct}", " \x0B");
    
    ReplaceString(string, sizeof(string), "{darkblue}", " \x0C");
    
    ReplaceString(string, sizeof(string), "{grey}", " \x0A");
    
    ReplaceString(string, sizeof(string), "{green}", " \x04");
    
    ReplaceString(string, sizeof(string), "{tt}", " \x09");

    ReplaceString(string, sizeof(string), "{yellow}", " \x10");
    
    if(StrContains(string, " ", false) == 0)
    {            
        ReplaceStringEx(string, 192, " ", "", _, _, false);
    }
    
    
    new String:buffer[10][192];
    ExplodeString(string, "^n", buffer, 10, 192);
    
    for(new i=0; i<10; i++)
    {
        if(strlen(buffer[i]) > 1)
        {
            if(id)
            {
                PrintToChat(id, " \x01%s", buffer[i]);
            }
                else
            {
                PrintToChatAll(" \x01%s", buffer[i]);
            }
        }
    }
}



Okej teraz użycie:

Okej pierwszy parametr to ID. Jeżeli id == 0, wiadomość zostanie wysłana do wszystkich, jeżeli nie to do określonego przez ID gracza.

 

Drugi parametr to tekst. Aby tekst był w kolorze np. czerwonym robimy tak "{red}Tutaj jest tekst czerwony".

Co da nam wynik.

Tutaj jest tekst czerwony

Oczywiście kolory można mieszać, co trzeba wziąć pod uwagę? Każdy kolor {xxx} robi spację!

Więc tekst musi wyglądać tak "tekst{red}tekst2" inaczej miałbyś podwójne spacje :).

 

 

Kolejna sprawa to PrintColorChat2.

Funkcja jest prawie identyczna co PrintColorChat, ale ma wsparcie 'enterów'.

(rozbiłem to na 2 funkcje, żeby to było bardziej optymalne, bo przejście do następnej linii to jakby drukowanie kolejnej wiadomości).

Aby przejść do następnej linii należy użyć ^n

UWAGA: Tekst po ^n traci kolor! Wiec nalezy to robić tak: {red}tekst^n{red}tekst

Co da nam wynik:

tekst

tekst

 

 

Obie funkcje oczywiście wspierają formatowanie tekstu.

Więc używanie %s, %d, %f itd. i dopisywanie zmiennych w 3 parametrze oczywiście działa.

 

 

PS Czekam na pomysły jakby to można było jeszcze zooptymalizować :D

 


Edited by Droso, 12.03.2016 13:11.

  • +
  • -
  • 1

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#2 Linux'

    Pan Pomocny

  • Power User

  • Reputacja: 549
    Wszechwiedzący

  • Postów:1,501
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:AmxMod i SourceMod
Offline

Posted 26.10.2015 19:26

Nawet fajnie wymyślone :D


  • +
  • -
  • 0

b35020692_qesnxqa.png





  


1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users

Coinsy CSGOPolygon Za SMS, PSC , Przelew - CoinSell.pro
Skiny do CS:GO za SMS, PSC, Przelew - CSGOPaka.com
Automatyczny Bot Levelowania Steam - LVLUPSteam.com
CSGO Gambling Sites and Free Betting Codes - DreamCodes.gg

Sign In