Jednostavan system kurvi

Započeo realivchaa, Jul 24, 2022, 21:16:03 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 2 gostiju pregledaju ovu temu.

                              I pozdrav svima, danas cu vam pokazati kako da uradite jednostavan sistem kurvi, pa krenimo....

Prvo sto treba da uradimo jeste da napravimo varijablu preko koje provjeravamo da li je igrac stigao do neke odredjene pozicije koju mu aktor da, ako je stigao ugasi mu marker, a ako nije logicno da mu marker ostaje na mapi
[pawn]
new kurvagps[MAX_PLAYERS]; //kreiramo varijablu
[/pawn]

Drugo sta treba da uradimo jeste da kreiramo aktore i labele
[pawn]
CreateActor(12, 986.5523,-1385.7662,13.6088,213.0352); //kreiramo prvog aktora
Create3DTextLabel("/kurva", -1, 986.5523,-1385.7662,13.6088, 5.0, 0, 0); //kreiramo label za tog prvog aktora
CreateActor(12, 1365.7979,-1249.9248,13.5469,81.0680); //kreiramo drugog aktora
Create3DTextLabel("/kurva", -1, 1365.7979,-1249.9248,13.5469, 5.0, 0, 0); //kreiramo label za tog drugog aktora
[/pawn]

Trece sta treba da uradimo jeste da napravimo dialog
[pawn]
if(dialogid == dialog_KURVA) //kreiramo dialog u ondialogresponse
    {
        if(!response)
        {
            kurvagps[playerid] = 0; //seta mu varijablu na 0,znaci da je igrac odustao od odabira i kliknuo dugme odustani
            SendClientMessage(playerid, -1, "Odustali ste od koriscenja kurve");//poruka za igraca
        }
        if(response)
        {
            switch(listitem)
            {
                case 0:
                {
                    kurvagps[playerid] = 1; //seta mu varijablu na 1, znaci treba da prati checkpoint na mapi
                    SetPlayerCheckpoint(playerid, 2768.5776,-2444.7039,13.6432, 3.0); //postavljamo igracu koordinate od checkpointa koje treba da prati
                    SendClientMessage(playerid, -1, "Dala sam ti lokaciju hangara i to te kosta 1000$"); //postavljamo poruku igracu
                    GivePlayerMoney(playerid, -1000);//oduzimamo novac igracu
                }
                case 1:
                {
                    kurvagps[playerid] = 1; //seta mu varijablu na 1, znaci treba da prati checkpoint na mapi
                    SetPlayerCheckpoint(playerid, 1938.8022,-1989.5878,13.5469, 3.0);//postavljamo igracu koordinate od checkpointa koje treba da prati
                    SendClientMessage(playerid, -1, "Dala sam ti lokaciju kupovine semena droge i to te kosta 800$");//postavljamo poruku igracu
                    GivePlayerMoney(playerid, -800); //oduzimamo igracu novac
                }
                case 2:
                {
                    kurvagps[playerid] = 1; //seta mu varijablu na 1, znaci treba da prati checkpoint na mapi
                    SetPlayerCheckpoint(playerid, -1420.7401,-963.8834,200.7470, 3.0); //postavljamo igracu koordinate od checkpointa koje treba da prati
                    SendClientMessage(playerid, -1, "Dala sam ti lokaciju prerade droge i to te kosta 600$"); //postavljamo poruku igracu
                    GivePlayerMoney(playerid, -600); //oduzimamo novac igracu
                }
                case 3:
                {
                    kurvagps[playerid] = 1; //seta mu varijablu na 1, znaci treba da prati checkpoint na mapi
                    SetPlayerCheckpoint(playerid, 1720.3531,-1507.8191,13.4851, 3.0);  //postavljamo igracu koordinate od checkpointa koje treba da prati
                    SendClientMessage(playerid, -1, "Dala sam ti lokaciju crnog trzista i to te kosta 700$"); //postavljamo poruku igracu
                    GivePlayerMoney(playerid, -700); //oduzimamo novac igracu
                }
                case 4:
                {
                    //in next update
                    SendClientMessage(playerid, -1, "Ovo trenutno nije dostupno, bit ce zavrseno u iducem update-u"); //postavljamo poruku igracu
                }
            }
        }
    }
[/pawn]
Četvrto što treba jeste da pod onplayerentercheckpoint stavimo sljedece
[pawn]
if(kurvagps[playerid] == 1)
    {
        DisablePlayerCheckpoint(playerid); //ugasen chekpoint
        return 1;
    }
[/pawn]
Posljednja stvar koju treba da uradimo jeste sama komanda
[pawn]
CMD:kurva(playerid, params[])
{
    if(IsPlayerInRangeOfPoint(playerid, 2.0, 986.5523,-1385.7662,13.6088) || IsPlayerInRangeOfPoint(playerid, 2.0, 1365.7979,-1249.9248,13.5469)) //provjerava da li je igrac kod aktora
    {
        ShowPlayerDialog(playerid, dialog_KURVA, DIALOG_STYLE_LIST, "Kurva System", "Lokacija hangara\nLokacija kupovine semena droge\nLokacija prerade droge\nLokacija crnog trzista\nPusenje", "Odaberi", "Odustani"); //kreiramo dialog
        kurvagps[playerid] = 1; //postavlja varijablu na 1
    }
    else SendErrorMessage(playerid, "{DABB3E}Nisi u blizini kurve"); //izbacuje poruku ako igrac nije kod aktora
    return 1;
}
[/pawn]
I to je to od ovog tutorijala

[pawn]Kurvagps[playerid] = SetPlayerCheckpoint(playerid, 1720.3531,-1507.8191,13.4851, 3.0);[/pawn]

[pawn]if(Kurvagps[playerid] == 1) return DisablePlayerCheckpoint(playerid), Kurvagps[playerid] = 0, GameTextForPlayer(playerid, "~y~stigli ste na odrediste", 5000, 3);
  [/pawn]




Koristi switch i za dialoge, ovako nemam neke velike zamerke...

Strasno ovo je tako lose uz danasnje mogucnosti.. Easy dialog????????????

Dalje resetiranje aktora nemas uopce ???

di ti je deklarisan dialog
Citatdialog_KURVA

Neznam sa kojem moda ali ovo je cisti copy paste ...

sve u svemu lose veoma
CitatNe idite uokolo tumačeći kako vam svijet duguje život. Svijet vam ne duguje ništa. On je bio prvi ovdje.


ovo mi lici na AC mod ako mi se cini sve u svemuna dc si rekao kako 1 god "Skriptas" i ovo objavljujes sramota

Cekaj zar ne bi bilo lakse da si odradio neki save load, komandu za kreiranje i sl. Simple as that
SPEED HACK (C++) https://github.com/nouddy/samp-speed-hack
Reliant GameMode (open.mp) https://github.com/nouddy/reliant-omp
SA:MP Landing Page https://github.com/nouddy/samp-landing-page


Kolko drama ima u 7 grama