Jump to content

Tutorial Scripting SA:MP


Andale
 Share

Recommended Posts

Salut buGGed! Poate din caterinca aveti cate un server si doriti sa il personalizati cat mai frumos. Voi reveni si cu mai multe tutoriale insa pentru explicatii mai exacte add skype: alexv96ro.

 

Bun, deci sa incepem.

 

Cand un jucator dintr-o anumita factiune scrie in chat, numele sau va aparea cu culoarea factiunii din care face parte.

De exemplu: Allex. este lider PD. Ce scrie Allex. apare asa: "Allex.: Salut"

 

Sau Ionel este lider taxi. Ce scrie Ionel pe chat apare asa: "Ionel: Salut si tie!"

 

Bun deci tot ce aveti voi de facut sunt urmatoarele:

 

1) Intram in GM, ctrl+f si cautam linia: forward ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5);

2) Sub ea adaugam forward culoarechat(Float:radi, playerid, string[],col1,col2,col3,col4,col5);

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

4) Dublam tot public-ul ProxDetector si inlocuim numele public-ului cu numele ales mai devreme cand l-am declarat, adica "culoarechat"

5) Creeam public-ul :

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)

                {

                    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;

}

 

6) In acelasi public pe care l-am creat mai devreme inlocuim toate functiile SendClientMessage cu SendPlayerMessageToPlayer

7) Mai exact... inlocuim 'SendClientMessage(i, col1, string);' cu 'SendPlayerMessageToPlayer(i,playerid,string);'

8) Inlocuiti toate functiile SendClientMessage din public-ul pe care l-ati creat, nu conteaza daca al 2-lea parametru e diferit.

9) Cautam linia(CTRL+F) if (realchat)

10) Mai jos vedem urmatoarele linii: 

format(string, sizeof(string), "%s Says: %s", sendername, text);

ProxDetector(20.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);

 

11) 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

12) Trebuie sa va iasa in genul:

format(string, sizeof(string), "%s", text);

culoarechat(20.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);

 

 

Asta este tot. Faceti totul corect, daca primti erori la compile inseamna ca ceva facut de voi nu corespunde cu ce v-am invatat eu. Numai bine !

 

 

 

 

 

 

 

 

  • Upvote 1
Link to comment
Share on other sites

@@Allex. aici te-ai complicat mai mult. Uite cum poti face mult, mult mai simplu, in 3 pasi.

 

1.Cauti o linie cu forward, si sub ea scrii

forward SetPlayerToTeamColor( playerid );

 

2.Dupaia la public OnPlayerSpawn bagi:

SetPlayerToTeam( playerid );

 

3. Te duci sub un public si formezi un public SetPlayertoTeamColor

Exemplu:

 

public SetPlayerToTeamColor(playerid)

   if(IsPlayerConnected(playerid))    // Verifici daca playerul este logat sa foloseasca comanda.

{

 if (IsACivil(playerid))
 SetPlayerColor(playerid, 0xFFFFFFFF);
// La civili o sa fie culoare ALBA.

 if (IsAPoliceDepartmentMember(playerid))
 SetPlayerColor(playerid, 0x4169E1FF);
//  La PD o sa fie culoarea albastra.

Link to comment
Share on other sites

@@Allex. aici te-ai complicat mai mult. Uite cum poti face mult, mult mai simplu, in 3 pasi. 1.Cauti o linie cu forward, si sub ea scriiforward SetPlayerToTeamColor( playerid ); 2.Dupaia la public OnPlayerSpawn bagi:SetPlayerToTeam( playerid ); 3. Te duci sub un public si formezi un public SetPlayertoTeamColorExemplu: public SetPlayerToTeamColor(playerid)   if(IsPlayerConnected(playerid))    // Verifici daca playerul este logat sa foloseasca comanda.{  if (IsACivil(playerid)) SetPlayerColor(playerid, 0xFFFFFFFF); // La civili o sa fie culoare ALBA. if (IsAPoliceDepartmentMember(playerid)) SetPlayerColor(playerid, 0x4169E1FF); //  La PD o sa fie culoarea albastra.

Eu l-am postat dupa ce am facut eu, nu m-am gandit ca ar fi foarte greu.

Link to comment
Share on other sites

Este facut de mine in intregime. Ce am invat sa fac am invatat si de pe samp.com si incercand pe propria piele modificarile in GM si daca pui suflet nu este deloc greu.

Este facut de tine in intregime ? Eu am facut tutorialul asta, nici macar nu ai dat copy-paste bine la tutorial.

 

Click, uitati-va la data de postare si o sa vedeti diferenta :))

 

Crazy, ceea ce i-ai spus tu nu e corect, nu poti sa schimbi asa de simplu, functia SetPlayerToTeamColor seteaza culoarea de pe TAB, tutorialul asta se refera la culoarea afisata cnad jucatorul scrie in chat.

 

Da, te folosesti de acea functie dar trebuiesc modificate putin functiile pentru a-ti reusii.

 

@@Allex. Data viitoare cand mai ai de gand sa copiezi ceva asigura-te ca acel jucator de la care ai copiat nu joaca pe aceasta comunitate :) Macar daca ai fi lasat sursa.

Link to comment
Share on other sites

Este facut de tine in intregime ? Eu am facut tutorialul asta, nici macar nu ai dat copy-paste bine la tutorial.

 

Click, uitati-va la data de postare si o sa vedeti diferenta :))

 

Crazy, ceea ce i-ai spus tu nu e corect, nu poti sa schimbi asa de simplu, functia SetPlayerToTeamColor seteaza culoarea de pe TAB, tutorialul asta se refera la culoarea afisata cnad jucatorul scrie in chat.

 

Da, te folosesti de acea functie dar trebuiesc modificate putin functiile pentru a-ti reusii.

 

@@Allex. Data viitoare cand mai ai de gand sa copiezi ceva asigura-te ca acel jucator de la care ai copiat nu joaca pe aceasta comunitate :) Macar daca ai fi lasat sursa.

Pe langa ca ai facut reclama , Allex e un scripter bun. Stiu ce poate, nu te compara cu el. Si ce daca a copiat ? Macar a fost in stare sa faca un tutorial cap-coada , si sa-l poti si intelege. Esti scripter ? Te pricepi mai bine ? Ce te bagi arata-ne ca poti face macar ce a facut Allex si dupa critici. Ia exemplul lui CraZy care si el a facut tutoriale si a demonstrat ca stie, l-a criticat. Nu iti mai da aere de mare scripter daca nu ne arati ce poti. Allex are propriul server scriptat de la 0 ca si CraZy in care zi de zi incearca sa faca ceva nou si sa-i ajute si pe ceilalti...

Link to comment
Share on other sites

Tu nu intelegi, tutorialul de pe comunitatea aceea e facut de mine deci Allex l-a copiat de la mine.

 

E asa de greu de inteles ? NU a fost in stare sa faca un tutorial de la cap la coada, n-a fost in stare nici macar  sa il copieze cum trebuie.

Link to comment
Share on other sites

Tu nu intelegi, tutorialul de pe comunitatea aceea e facut de mine deci Allex l-a copiat de la mine.

 

E asa de greu de inteles ? NU a fost in stare sa faca un tutorial de la cap la coada, n-a fost in stare nici macar  sa il copieze cum trebuie.

 

Na uite sti , si eu sunt admin pe nu stiu care server si m-a copiat nustiu care. DEMONSTREAZA ! Daca chiar erai "scripter" faceai tutorialele si aici. Si de unde sti ca a copiat ? "Nu a fost in stare nici sa copieze" POATE NICI NU A COPIAT si doar tu vrei sa te dai mare "scripter".Hai pa , ma plictisesti inutil , esti o cauza pierduta. Go afara, ia o gura de aer si revin-o.

Edited by ALEXBAWS
Link to comment
Share on other sites

Nu crezi ca eu am facut tutorialul ? Te invit sa te duci din nou pe link-ul ala si sa te uiti la ultimul post si in josul paginii ai o "dedicatie" :)

 

Nu ma dau mare scripter sa stii si tu, dar e aiurea sa te dai mare cu munca altuia, lucru pe care il face cu desavarsire Allex.

 

Nu am facut tutoriale aici pentru ca nu am avut timp si nici chef sa fiu sincer.Decat sa copiez mai bine nu postez deloc.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.