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ć
Użytkownik Droso edytował ten post 12.03.2016 13:11