INSIDE RESURSE

Resurse pentru toate jocurile online! samp, csgo, mape, muzica, filme, ps, divertisment, geforce, fzarea, muzica, clan, coduri, cfg, inside, resurse, servere, gata, facute, war, zone, pgl, long, nvid


Nu sunteti conectat. Conectati-va sau inregistrati-va

[Tutorial/SA:MP] Schimba culoare numelui din chat dupa factiunea jucatorului

Por favor, faça o login para responder

Vezi subiectul anterior Vezi subiectul urmator In jos  Mesaj [Pagina 1 din 1]

#1vendME 

la data de Joi Mai 04, 2017 12:13 am

avatar

Fondator
Fondator
In acest tutorial vom invata cum sa modificam chatul astfel incat, atunci cand un jucator dintr-o anumita factiune scrie in chat, numele sau va aparea cu culoarea factiunii din care face parte.
 
De exemplu: Gigel din LCN scrie pe chat, o sa apara: Gigel:Salut iar daca Gigica din PD o sa scrie pe chat, va aparea asa: Gigica:Salut
 
Pasul 1:
 
Cautam linia:

Cod:
forward ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5);




O dublam, prin dublare ma refer la faptul ca ii dam copy si paste din nou sub ea.Dupa aceea, schimbam numele celei de-a 2 functii in altceva ca de exemplu "culoarechat"

 
In final, sub linia ProxDetector vom avea aceasta linie:

Cod:
forward culoarechat(Float:radi, playerid, string[],col1,col2,col3,col4,col5);



Pasul 2:
 
Cautam linia:

Cod:
public ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)



Dublam tot public-ul ProxDetector si inlocuim numele public-ului cu numele ales mai devreme cand l-am declarat, la mine este "culoarechat"
 
Public-ul ar trebui sa arate asa:
 


Cod:
public culoarechat(Float:radi, playerid, string[],col1,col2,col3,col4,col5)

{

    if(IsPlayerConnected(playerid))

    {

        new Float:posx, Float:posy, Float:posz;

        new Float:oldposx, Float:oldposy, Float:oldposz;

        new Float:tempposx, Float:tempposy, Float:tempposz;

        GetPlayerPos(playerid, oldposx, oldposy, oldposz);

        //radi = 2.0; //Trigger Radius

        for(new i = 0; i < MAX_PLAYERS; i++)

        {

            if(IsPlayerConnected(i))

            {

                if(!BigEar[i])

                {

                    GetPlayerPos(i, posx, posy, posz);

                    tempposx = (oldposx -posx);

                    tempposy = (oldposy -posy);

                    tempposz = (oldposz -posz);

                    //printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);

                    if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))

                    {

                        SendClientMessage(i, col1, string);

                    }

                    else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))

                    {

                        SendClientMessage(i, col2, string);

                    }

                    else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))

                    {

                        SendClientMessage(i, col3, string);

                    }

                    else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))

                    {

                        SendClientMessage(i, col4, string);

                    }

                    else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))

                    {

                        SendClientMessage(i, col5, string);

                    }

                }

                else

                {

                    SendClientMessage(i, col1, string);

                }

            }

        }

    }//not connected

    return 1;

}



Pasul 3:
In acelasi public pe care l-am creat mai devreme inlocuim toate functiile SendClientMessage cu SendPlayerMessageToPlayer
 
Adica, in loc de

Cod:
SendClientMessage(i, col1, string);



vom pune sub toate if-urile aceasta functie:

Cod:
SendPlayerMessageToPlayer(i,playerid,string);



!!!ATENTIE: Inlocuiti toate functiile SendClientMessage din public-ul pe care l-ati creat, nu conteaza daca al 2-lea parametru e diferit fata de functia pe care am copiat-o pentru a va demonstra.
 
Pasul 4:
 
Acesta este pasul final, acum vom face o mica modificare la sistemul de scriere in chat de pe GF.
Cautam linia:

Cod:
if (realchat)



Vom vedea putin mai jos urmatoarele doua linii:

Cod:
format(string, sizeof(string), "%s Says: %s", sendername, text);
ProxDetector(20.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);



Pentru inceput, din prima linie scoatem parametrul "sendername" pentru ca nu ne mai trebuie acum deoarece functia SendPlayerMessageToPlayer arata si numele celui care trimite mesajul.
Din a 2-a linie, modificam numele din ProxDetector in numele ales de noi mai devreme cand am creat publicul, si anume: culoarechat
 
In final, cele 2 linii vor arata asa:


Cod:
format(string, sizeof(string), "%s", text);
culoarechat(20.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);


_________________

INSIDE RESURSE











http://resurseinside.forumgratuit.ro

Vezi subiectul anterior Vezi subiectul urmator Sus  Mesaj [Pagina 1 din 1]

Por favor, faça o login para responder

Permisiunile acestui forum:
Nu puteti raspunde la subiectele acestui forum