NICK COLOR - Tutorijal
Pozdrav dragi moji, danas cu Vam pokazati kako napraviti colored nick, tj. obojeno ime u SA-MPu.
Ovo je jedna prosta verzija ovog 'sistema', da ga nazovem tako.
Mozemo poceti.
Pozdrav dragi moji, danas cu Vam pokazati kako napraviti colored nick, tj. obojeno ime u SA-MPu.
Ovo je jedna prosta verzija ovog 'sistema', da ga nazovem tako.
Mozemo poceti.
Prvo cemo dodati definicije boja, naravno, Vi mozete jos dodavati po zelji.
#define BOJANICKA_SPLAVA 0x33CCFFAA
#define BOJANICKA_ZELENA 0x33AA33AA
#define BOJANICKA_SZELENA 0x90EE90FF
#define BOJANICKA_ZUTA 0xFFFF00AA
#define BOJANICKA_LJUBICASTA 0x800080FF
#define BOJANICKA_PLAVA 0x0000BBAA
#define BOJANICKA_CRVENA 0xFF0000AA
#define BOJANICKA_ZLATNA 0xFFD700FF
#define BOJANICKA_BRAON 0xA52A2AFF
#define BOJANICKA_SIVA 0xAFAFAFAA
#define BOJANICKA_ROZA 0xFFC0CBAA
#define BOJANICKA_BELA 0xFFFFFFAA
Sada u Vas player enumator dodajemo
enum txt {
pBojaNicka
}Zatim, tu varijablu moramo ucitati. To mozete uraditi sami, ukoliko Vam je y_ini, citate pomocu tog procesa, u koliko sql, pomocu tog. U glavnom, znate kako to ide.Sada moramo dodati i definiciju dijaloga kog cemo posle koristiti u komandi.
#define DIALOG_NCOL (55)Ovo '(55)' Vam je ID dijaloga, sto znaci da ga mozete promeniti i prilagoditi svom modu. Ako dijaloge stavljate u enumator, onda dijalog definisete ovako:
enum {
DIALOG_NCOL
}Sada mozemo preci na komandu. Koristim ZCMD proces komandi, ukoliko koristite drugi proces, promenite.
CMD:color( playerid, params[ ] )
{
ShowPlayerDialog( playerid, DIALOG_NCOL, DIALOG_STYLE_LIST, "Boje", Svetloplava\nZelena\nSvetlozelena\nZuta\nLjubicasta\nPlava\nCrvena\nZlatna\nBraon\nSiva\nRoza\nBela, "Izaberi", "Izlaz" );
return 1;
}Komanda kao komanda, nemam sta govoriti o njoj. Sada mozemo preci na dijalog, da napravimo odabir boja.
Dijaloge kreiramo pod OnDialogResponse, sto je, verujem, svima jasno.
Ovako kreiramo odabire, case 0 Vam je prva boja, case 1 je druga, da ne duzim, tako ide redosled.
case 0:
{
PlayerInfo[ playerid ][ pBojaNicka ] = BOJANICKA_SPLAVA;
SetPlayerColor( playerid, PlayerInfo[ playerid ][ pBojaNicka ] );
SendClientMessage( playerid, BOJANICKA_SPLAVA, "Vas nick je sada prikazan ovom bojom." );
}Sada da pojasnim cemu sluzi sta. U Vasem modu ne mora biti isto upisana varijabla za igrace, PlayerInfo. To jednostavno promenite ako nije isto. 'pBojaNicka' to smo dodali u enumator i sada smo postavili da skripta automatski postavi tu boju igracu.
'[ pBojaNicka ] = BOJANICKA_SPLAVA;' - o tome govorim.
Mi smo definisali hex boje koje skripta pretvara u brojevne zapise.
'SetPlayerColor' sluzi da postavi tu boju igracu.
Sada mozemo da postavimo odabir svim bojama:
public OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] )
{
if( dialogid == DIALOG_NCOL ) {
if( !response ) return 1;
if( response ) {
switch( listitem ) {
case 0:
{
PlayerInfo[ playerid ][ pBojaNicka ] = BOJANICKA_SPLAVA;
SetPlayerColor( playerid, PlayerInfo[ playerid ][ pBojaNicka ] );
SendClientMessage( playerid, BOJANICKA_SPLAVA, "Vas nick je sada prikazan ovom bojom." );
}
case 1:
{
PlayerInfo[ playerid ][ pBojaNicka ] = BOJANICKA_ZELENA;
SetPlayerColor( playerid, PlayerInfo[ playerid ][ pBojaNicka ] );
SendClientMessage( playerid, BOJANICKA_ZELENA, "Vas nick je sada prikazan ovom bojom." );
}
case 2:
{
PlayerInfo[ playerid ][ pBojaNicka ] = BOJANICKA_SZELENA;
SetPlayerColor( playerid, PlayerInfo[ playerid ][ pBojaNicka ] );
SendClientMessage( playerid, BOJANICKA_SZELENA, "Vas nick je sada prikazan ovom bojom." );
}
case 3:
{
PlayerInfo[ playerid ][ pBojaNicka ] = BOJANICKA_ZUTA;
SetPlayerColor( playerid, PlayerInfo[ playerid ][ pBojaNicka ] );
SendClientMessage( playerid, BOJANICKA_ZUTA, "Vas nick je sada prikazan ovom bojom." );
}
case 4:
{
PlayerInfo[ playerid ][ pBojaNicka ] = BOJANICKA_LJUBICASTA;
SetPlayerColor( playerid, PlayerInfo[ playerid ][ pBojaNicka ] );
SendClientMessage( playerid, BOJANICKA_LJUBICASTA, "Vas nick je sada prikazan ovom bojom." );
}
case 5:
{
PlayerInfo[ playerid ][ pBojaNicka ] = BOJANICKA_PLAVA;
SetPlayerColor( playerid, PlayerInfo[ playerid ][ pBojaNicka ] );
SendClientMessage( playerid, BOJANICKA_PLAVA, "Vas nick je sada prikazan ovom bojom." );
}
case 6:
{
PlayerInfo[ playerid ][ pBojaNicka ] = BOJANICKA_CRVENA;
SetPlayerColor( playerid, PlayerInfo[ playerid ][ pBojaNicka ] );
SendClientMessage( playerid, BOJANICKA_CRVENA, "Vas nick je sada prikazan ovom bojom." );
}
case 7:
{
PlayerInfo[ playerid ][ pBojaNicka ] = BOJANICKA_ZLATNA;
SetPlayerColor( playerid, PlayerInfo[ playerid ][ pBojaNicka ] );
SendClientMessage( playerid, BOJANICKA_ZLATNA, "Vas nick je sada prikazan ovom bojom." );
}
case 8:
{
PlayerInfo[ playerid ][ pBojaNicka ] = BOJANICKA_BRAON;
SetPlayerColor( playerid, PlayerInfo[ playerid ][ pBojaNicka ] );
SendClientMessage( playerid, BOJANICKA_BRAON, "Vas nick je sada prikazan ovom bojom." );
}
case 9:
{
PlayerInfo[ playerid ][ pBojaNicka ] = BOJANICKA_SIVA;
SetPlayerColor( playerid, PlayerInfo[ playerid ][ pBojaNicka ] );
SendClientMessage( playerid, BOJANICKA_SIVA, "Vas nick je sada prikazan ovom bojom." );
}
case 10:
{
PlayerInfo[ playerid ][ pBojaNicka ] = BOJANICKA_ROZA;
SetPlayerColor( playerid, PlayerInfo[ playerid ][ pBojaNicka ] );
SendClientMessage( playerid, BOJANICKA_ROZA, "Vas nick je sada prikazan ovom bojom." );
}
case 11:
{
PlayerInfo[ playerid ][ pBojaNicka ] = BOJANICKA_BELA;
SetPlayerColor( playerid, PlayerInfo[ playerid ][ pBojaNicka ] );
SendClientMessage( playerid, BOJANICKA_BELA, "Vas nick je sada prikazan ovom bojom." );
}
}
}
}
return 1;
}Gde Vam se igrac loginuje na server, postavite da skripta stavi izabranu boju nicka igracu:
SetPlayerColor( playerid, PlayerInfo[ playerid ][ pBojaNicka ] );A gde se igrac registruje, postavite da mu default nick boja bude bela, ili druga koju zelite:
SetPlayerColor( playerid, BOJANICKA_BELA );Sada mozemo preci na OnPlayerText, gde cemo obojiti igracev nick dok pise neki tekst.
public OnPlayerText(playerid, text[])
{
new string[ 148 ], new ime[ MAX_PLAYER_NAME ];
GetPlayerName( playerid, ime, sizeof ime);
format( string, sizeof string, "%s {ffffff}(%d): %s", ime, playerid, text );
SendClientMessageToAll( PlayerInfo[ playerid ][ pBojaNicka ], string );
return 0;
}Formatujemo poruku i saljemo je svim igracima na serveru. "PlayerInfo[ playerid ][ pBojaNicka ]" u SendClientMessageToAll stavlja boju nicka u onu koju smo odabrali. {ffffff} valjda je svima jasno, to oznacava belu boju.
U sustini, to je to od tutorijala. Verovatno sam nesto propustio ili nesto nisam lepo napisao,
tj. nisam se lepo izrazio. Nemojte zameriti, jer sam skroz umoran 😄
Slobodno me ispravite gde sam pogresio, i ostavite neko Vase misljenje, hvala Vam 🙂

