[TUT] Kreiranje kapije sa automatski zatvaranjem

Započeo Jakisic, Decembar 10, 2015, 16:58:11 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Pozdrav svima u ovom tutorialu cu vam pokazati kako da na jednostavan nacin napravite komandu kojom cete otvarati vasu kapiju.

Pa da krenemo.
Korak 1. | Prvo moramo da definisemo kapiju

[pawn]new Kapija1;[/pawn]

Korak 2. | Kreiramo kapiju

[pawn]Kapija1= CreateDynamicObject(ID, X,Y,Z, R-X,R-Y,R-Z);[/pawn]

Korak 3. | Napravimo komandu kojom cemo otvarati kapiju
[pawn]CMD:otvorikapiju(playerid,params[])
{
if(IsPlayerInRangeOfPoint(playerid, 10.0, 971.73761, -816.68665, 97.10720)) //Pozcija igraca na kojoj moze da otvori kapiju
        {
                if (PI[playerid][pPhousekey] == 36) //Samo vlasnik kuce sa id 36 moze da otvara tu kapiju - Vi stavite naravno id koji je vama potreban.
                {
                SendClientMessage(playerid, 0xFFFFFFAA, "{0B83E6}[SERVER] {FFFFFF}Otvorio si kucnu kapiju,automatski ce se zatvoriti.");
                    MoveDynamicObject(Kapija1, 971.73761, -816.68665, 94.86437,1.5,0.00000, 0.00000, 295.35303);  //Kordinate otvorene kapije
                SetTimer("KZatvori1", 4000, 0);
                }
            else return SCM(playerid, -1, "Nisi vlasnik ove kuce");//Stavis tekst koji hoces
        }
   return 1;
}[/pawn]
Da Pojasnim malo u vezi ovog dela:  MoveDynamicObject(Kapija1, 971.73761, -816.68665, 94.86437,1.5,0.00000, 0.00000, 295.35303);
Kapija1 - To vam je kapija koju smo kreirali na pocetku i ovom funkcijom pozivamo objekata da se pomeri na postavljene kordinate.
Zatim upisujete kordinate (Kapija1,X,Y,Z,1.5,R-X,R-Y,-RZ)  || Ovo 1.5 morate obavezno da stavite.

Korak 4. | Pravimo funkciju automatskog zatvaranja kapije

[pawn]public KZatvori1()
{
    MoveDynamicObject(Kapija1, 971.73761, -816.68665, 97.10720,1.5,0.00000, 0.00000, 295.35303); //Stavljamo kordinate zatvorene kapije i obavezno dodati 1.5 kao i kod otvaranja kapije
    return 1;
}[/pawn]

Dodajte forward gde vam se nalaze i ostali.

[pawn]forward KZatvori1();[/pawn]




Evo kako da dodate jos kapija koje ce se otvarati istom komandom!


Uradicete sve isto kao na pocetku samo cete dodati na vec postojecu komandu sledece:
Naravno gde ste stavljali Kapija1 stavljacate Kapija2 itd. isto tako i za KZatvori1,KZatvori2,...itd.


[pawn]else if(IsPlayerInRangeOfPoint(playerid, 10.0, 971.73761, -816.68665, 97.10720)) //Pozcija igraca na kojoj moze da otvori kapiju
        {
                if (PI[playerid][pPhousekey] == 36) //Samo vlasnik kuce sa id 36 moze da otvara tu kapiju - Vi stavite naravno id koji je vama potreban.
                {
                SendClientMessage(playerid, 0xFFFFFFAA, "{0B83E6}[SERVER] {FFFFFF}Otvorio si kucnu kapiju,automatski ce se zatvoriti.");
                    MoveDynamicObject(Kapija2, 971.73761, -816.68665, 94.86437,1.5,0.00000, 0.00000, 295.35303);  //Kordinate otvorene kapije
                SetTimer("KZatvori2", 4000, 0);
                }
            else return SCM(playerid, -1, "Nisi vlasnik ove kuce");//Stavis tekst koji hoces
        }

    return 1;
}[/pawn]


AKO IMA NESTO NEJASNO ILI NEKO PITANA RECITE!

Cemo ovo if (PI[playerid][pPhousekey] == 36) mozda neki pocetnik bas nema to i tu mu baci errore... :)

Inace solidno objasnjeno

Citat: Z_!Proxy poslato Decembar 10, 2015, 17:04:11 POSLE PODNE
Cemo ovo if (PI[playerid][pPhousekey] == 36) mozda neki pocetnik bas nema to i tu mu baci errore... :)

Inace solidno objasnjeno
Slucajno mi je promaklo
PI vam je skracena za PlayerInfo | E sad sve zavisi od skripte do skripte negde se koristi PI negde PlayerInfo
pHousekey - Sam naziv vam govori da je rec o kljucu kucu kod nekoga je pHousekey kod nekoga pKljucakljuc i slicno uglavnom to staviti kako je kod vas u skripti


Inace hvala ovo mi je prvi tut da sam uradio,potrudio sam se da bude maximalo objasnjeno ;)

Trebo si samo dodat provjeru da li je otvorena, da se ne pojebu timeri, i univerzalnu public funkciju da možeš proslijedit id kapije u settimerex, i onda getdynamiyobjectpos u 3 varijable i onda z smanjiš za 3... Valjda kontaš šta ti pričam, treba malo optimizovat al sve u svemu nije loše

Citat: ElectricityBoy poslato Decembar 10, 2015, 18:09:01 POSLE PODNE
Trebo si samo dodat provjeru da li je otvorena, da se ne pojebu timeri, i univerzalnu public funkciju da možeš proslijedit id kapije u settimerex, i onda getdynamiyobjectpos u 3 varijable i onda z smanjiš za 3... Valjda kontaš šta ti pričam, treba malo optimizovat al sve u svemu nije loše
Da,da kontam te ali i ovako dobro sljaka ja sam koristio i koristim na svom modu,na serveru nikad nije bilo problema sto se tice toga.Inace hvala :)

Citat: Jakisic poslato Decembar 11, 2015, 00:34:08 PRE PODNE
Citat: ElectricityBoy poslato Decembar 10, 2015, 18:09:01 POSLE PODNE
Trebo si samo dodat provjeru da li je otvorena, da se ne pojebu timeri, i univerzalnu public funkciju da možeš proslijedit id kapije u settimerex, i onda getdynamiyobjectpos u 3 varijable i onda z smanjiš za 3... Valjda kontaš šta ti pričam, treba malo optimizovat al sve u svemu nije loše
Da,da kontam te ali i ovako dobro sljaka ja sam koristio i koristim na svom modu,na serveru nikad nije bilo problema sto se tice toga.Inace hvala :)

Covjek kaze samo da bi moglo doci do problema jer ako neko upise /otvorikapiju 2-3x sjebace se ali svi su lijeni da to urade a i mnogi nece ni pokusati :D