[Pomoc]Public AreaTimer

Započeo [NG | RP] Almir, Decembar 09, 2012, 17:42:35 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 2 gostiju pregledaju ovu temu.

Skripta: CLRP
Problem: Ovako, treba mi area ali ne na ovaj nacin SetPlayerWorldBounds nego na onaj koji je u Dio Skripte, al ovdje mi neke errore pokazuje, kako tacno da uradm
Dio skripte:
Ukomandu
SetTimer("Areatimer", 20000, 1);

onda

public Areatimer(playerid)
{

if(!PlayerToPoint(30, x, y, z) return SetPlayerPos(xyz)
Slike:

}
Poslednja Izmena: Decembar 09, 2012, 17:43:27 POSLE PODNE od BC Aldin Delic

Prije publica staviÅ¡ forward meÄ'u ostale forwarde
forward AreaTimer(playerid);

Jel mi mozes to ovdje sve napista gdje sta da stavim, u ono sto sam stavio DioSkritpe imaju mi neki errori, tako da bi bilo dobro da mi ti kazes gdje sta da stavim, sta u cmd , sta u public itd.. Hvala unaprijed :D

ovo stavis na vrh forward AreaTimer(playerid); public stavis na kraj skripte, a tajmer pod OnGameModeInit

Sta tacno u public stavit, ovaj sto sam naveo kao primjer ne valja, neki errori, jel mzoes ti napisat public

public ti je okej, samo umesti tako gde pise x,y,z ti tamo zapisi svoje koordinate

Pa zar bi uopste petljao oko aree da ne znam da treba umjesto x,y,z stavit koordinatu, Naravno da sam stavio, al vjerovatno je bio error sto nisam imao taj forward

Citat: BC Aldin Delic poslato Decembar 09, 2012, 17:55:38 POSLE PODNE
Pa zar bi uopste petljao oko aree da ne znam da treba umjesto x,y,z stavit koordinatu, Naravno da sam stavio, al vjerovatno je bio error sto nisam imao taj forward
Testiraj i javi da li ima errora, ne znam stvarno do cega ti je bio error.


Stari covek

Pa taj timer ti nece raditi stalno ce raditi na id-u 0
Ako ovo stavljas u komandu: SetTimer("Areatimer", 20000, 1); i hoces da to pokrene za igraca onda mora SetTimerEx ici
SetTimer("Areatimer", 20000, 1, "i",koja_je_varijabla_za_ID_koji_je_kucao_admin);//Samo stavis id igraca kojeg bacas u areu....
Iako je to relativno los sistem da pokreces toliko timer-a zbog toga...

Jel mozes ti napravit cu cmd, ne kontam bas :D


new area[MAX_PLAYERS];

public OnGameModeInit()
{
    SetTimer("AreaTimer", 40000, 1);
    return 1;
}

// NA MESTU GDE TI SE IGRAC STAVLJA U AREU, ZNACI ONO GDE JE SETPLAYERPOS ZA AREU, ISPOD TOGA SETPLAYERPOS DODAS:
area[playerid] = 1;

// NA MESTU GDE IGRAC IZLAZI IZ AREE, ZNACI SETPLAYERPOS ZA IZLAZ IZ AREE ISPOD TOG SETPLAYERPOSA OVO DODAS:
area[playerid] = 0;
////////////////////////////////////////////////
//NA KRAJ MODA:
forward AreaTimer(playerid);
public AreaTimer(playerid)
{
    if(area[playerid] == 1)
    {
        if(!PlayerToPoint(50.0, playerid, x, y, z)) return SetPlayerPos(playerid, x, y z,); //XYZ = koordinate aree
    }
    return 1;
}


Probaj ovako...

Edit: Nisam zatvorio zagradu samo, evo ispravka
if(!PlayerToPoint(50.0, playerid, x, y, z)) return SetPlayerPos(playerid, x, y z,); //XYZ = koordinate aree
Jebi ga, na brzinu sam, dešava se :)
Poslednja Izmena: Decembar 09, 2012, 20:54:23 POSLE PODNE od Nitro