←  Gotowe funkcje

AMXX.pl: Support AMX Mod X i SourceMod

»

ColorStatus - Kolorowe wiadomości z diablo...

  • +
  • -
DarkGL - zdjęcie DarkGL 26.09.2011

Standardowo wiadomości w lewym dolnym rogu w takich modach jak np. diablo czy bf2 mają kolor standardowy(żółty)

Ten include pozwala użyć nam 4 kolorów
  • Żółty





    zolty.jpg
  • Czerwony





    czerwony.jpg
  • Niebieski





    niebieski.jpg
  • Szary





    szary.jpg
Są jednak pewne ograniczenia
  • W wiadomości można użyć tylko jednego koloru tzn. jeden kolor dla całego tekstu
  • Maksymalnie 196 znaków (czyli tak jak było zawsze ;) )
  • Jeśli gracz podczas wysyłania kolorowej wiadomości będzie miał włączoną konsolę zobaczy błędny kolor przy modach które odświeżają statusbar bardzo szybko nie ma to większego znaczenia ;)
Użycie w pluginie :




Pod include modułów dodajemy
#include <colorstatus.inc>

np.
#include <amxmodx>
#include <amxmisc>
#include <colorstatus.inc>

do plugin_init musimy dodać wywołanie funkcji
initColorStatus()
bez tego kolorowe statusy nie zadziałają
np.
public plugin_init() {
		register_plugin(PLUGIN, VERSION, AUTHOR)
		initColorStatus();
}

Funkcja służącą do wyświetlania statusów jest
makeStatusText(id,COLOR_STATUS:color,Float:fTime = 0.0,const szText[] = "",any:...)
  • id - id gracza któremu wyświetlić tekst jeśli podamy 0 zostanie wyświetlony wszystkim
  • color - kolor tekstu 4 wartości
    • RED_STATUS - czerwony kolor tekstu
    • BLUE_STATUS - niebieski kolor tekstu
    • YELLOW_STATUS - żółty kolor tekstu
    • GREY_STATUS - szary kolor tekstu
  • fTime - czas wyświetlania tekstu ustawiając 0.0 tekst będzie widoczny cały czas
  • szText - tekst wyświetlany można używać w nim znaków formatujących tak jak w np. client_print czy colorchat w dalszych parametrach podajemy zmienne/tablice itp. do formatowanego tekstu
Dla osób które nie wiedzą jak formatować ciąg znaków polecam przeczytać to


Dokumentacja AMXX.pl: Core >> string > format

Przykłady:
  • makeStatusText(id,GREY_STATUS,0.0,"Szary statustext");


    Szary status o treści "Szary statustext" jednej osobie na zawsze
  • makeStatusText(0,RED_STATUS,0.0,"Czerwony statustext");


    Czerwony status o treści "Czerwony statustext" wszystkim na zawsze
  • makeStatusText(0,BLUE_STATUS,5.0,"Niebieski statustext");


    Niebieski status o treści "Niebieski statustext" wszystkim przez 5 sekund
  • makeStatusText(id,YELLOW_STATUS,5.0,"formatowany %d %s",1,"string");


    Żółty status o treści "formatowany 1 string" jednej osobie przez 5 sekund
Tutaj kod pluginu którego używałem do testowania funkcji:

Załączony plik  statustext_test.amxx   8,82 KB   6 Ilość pobrań
Załączony plik  statustext_test.sma   1,04 KB   251 Ilość pobrań

Wrzucamy do folderu include naszego kompilatora. Możemy normalnie kompilować pluginy z tą biblioteką na web kompilatorze amxx.pl :)
Hiroshima (26.09.2011 20:15):
Dodano do naszego kompilatora

Załączone pliki

Odpowiedz

  • +
  • -
Misiaczek ;c - zdjęcie Misiaczek ;c 28.09.2011

dark nie lepiej dodawać to tak:
#include <colorstatus>
?? po co dodawac te .inc na końcu
Odpowiedz

  • +
  • -
kapi10072 - zdjęcie kapi10072 28.09.2011

hmm.. a nie dało by się zrobić zielonego??
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 28.09.2011

misieq bo ładniej :F

hmm.. a nie dało by się zrobić zielonego??

nie
Odpowiedz

  • +
  • -
Misiaczek ;c - zdjęcie Misiaczek ;c 28.09.2011

misieq bo ładniej :F

hmm.. a nie dało by się zrobić zielonego??

nie


dark a zielony to nie:
write_byte(4);
albo
write_byte(5);
?? nie wiem czy ta funkcja obsługuje kolor zielony, ale tak tylko insynuuje ;P
Odpowiedz

  • +
  • -
Fili:P - zdjęcie Fili:P 29.09.2011

A czy to współpracuję z bf2/diablo, czy po prostu usuwa informację z tych modów i wyświetla tę ?
Odpowiedz

  • +
  • -
Misiaczek ;c - zdjęcie Misiaczek ;c 29.09.2011

jak dobrze za edytujesz pluginy to współpracuje ^^
Odpowiedz

  • +
  • -
Fili:P - zdjęcie Fili:P 29.09.2011

No ale to jest ten message ;/
Odpowiedz

  • +
  • -
Misiaczek ;c - zdjęcie Misiaczek ;c 29.09.2011

z BF2 na 100% współpracuje, a diablo nie wiem bo nie testowałem ;)
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 29.09.2011

misieq nie gdyby był zielony to bym go dodał

A czy to współpracuję z bf2/diablo, czy po prostu usuwa informację z tych modów i wyświetla tę ?

:facepalm: to jest tylko biblioteka musisz zedytować mody tak aby korzystały z niej do wyświetlania
Odpowiedz

  • +
  • -
Droso - zdjęcie Droso 29.09.2011

Coś jak <colorchat>?
Tylko w colorchat'cie można więcej niż jeden kolor użyć :D


@edit
Ok teraz wiem co to :)
Użytkownik HubertTM edytował ten post 29.09.2011 16:14
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 29.09.2011

colorchat jest dla say to jest dla statusbaru no ale można powiedzieć że coś ala to

Tylko w colorchat'cie można więcej niż jeden kolor użyć

a w statusbar nie
Odpowiedz

  • +
  • -
Na 5tyk - zdjęcie Na 5tyk 29.09.2011

Teraz wiem gdzie dać odznaki w cod :)

Łap +'ika :D
Odpowiedz

  • +
  • -
Fili:P - zdjęcie Fili:P 09.10.2011

misieq nie gdyby był zielony to bym go dodał

A czy to współpracuję z bf2/diablo, czy po prostu usuwa informację z tych modów i wyświetla tę ?

:facepalm: to jest tylko biblioteka musisz zedytować mody tak aby korzystały z niej do wyświetlania

Nie zrozumiałeś mnie, ponieważ mi chodziło, czy jeśli mam wyświetlony ten status bar w bf2 "Zabicia x/x Odznaki: x" i wyświetlę nową wiadomość twoją biblioteką, to czy ten status bar z bf2 zniknie ?
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 09.10.2011

zniknie
Odpowiedz

  • +
  • -
Jak się nazwać - zdjęcie Jak się nazwać 26.12.2011

Proponuję w colorstatus.inc dodać pod
/* ColorStatus
*
* by DarkGL
*
* This file is provided as is (no warranties).
*/
to
#if !defined _fakemeta_included
#include <fakemeta>
#endif

bo raczej się nie skompiluje (mi się nie kompilowało nawet jak zincludowałem fakemete w pluginie)
Odpowiedz

  • +
  • -
Rif1e - zdjęcie Rif1e 15.02.2012

Poza tym co napisał mój poprzednik znalazłem jeszcze jeden błąd. Przed moim Statusbarem wyswietla jeszcze %.

To przez tę linijkę w colorstatus.ini? - #define TO_NAME "%"

Być może to też przez to, że użyłem TAGU(zaraz sprawdzę). To mój statusbar:

makeStatusText(id,GREY_STATUS,0.0,"[CTF RANK] Poziom: %i | Doswiadczenie: %i XP",Level[id],PlayerXP[id]);

Jak to naprawić?
Odpowiedz

  • +
  • -
ParadisO - zdjęcie ParadisO 12.05.2012

dobrze by było napisać, że wymagany jest fakemeta
Odpowiedz

Gość_21977_* 31.05.2012

Co chwilę gracze są wywalani z takim oto komunikatem.
W niektórych rundach traci się uprawnienia administracyjne.
Co jakiś czas, któryś z graczy ma zmieniony nick na "%".
edit. Powyższe jest spowodowane domyślną konfiguracją HLGuard, można to skonfigurować, więc problem rozwiązany.

Pomimo zastosowania 0.0 jako czasu wyświetlania, znika ona po kilku(nastu?) sekundach.
edit. Tutaj moja pomyłka, taki błąd nie występuje.

edit. Te problemy pozostają mimo wszystko:
Przed wiadomościami pokazywany jest często znak %.
Wiadomość jest ucinana do wielkości zdecydowanie poniżej 196 (swoją drogą czemu nie 192 ?).
Odpowiedz

  • +
  • -
zryty - zdjęcie zryty 16.09.2012

Jak by to przerobić by działało na fakeplayerach to pewnie by te problemy znikły, ale oczywiście jeden slot by musiał być wolny... Taki mój wywód teoretyczny :P
Odpowiedz