Timer ne radi kako treba

Započeo TufekcichX, Decembar 01, 2017, 21:38:12 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim: Underpoint kao baza..
Detaljan opis problema:Ovako , radim sistem tako da posle nekog vremena koje se podesi timerom se napravi pickup , kojeg kada igrac pokupi stvori se checkpoint do kojeg mora da dostavi (paket) da bi bio nagradjen drogom.. Sve sam napravio ali mi ne ide u glavu (dosta sam googlu po wiki i raznim sajtovima ali ne mogu da sebi razjasnim ovo pitanje , i ne vidim nigdje odgovor..). Zamislio sam tako da kada igrac uzme pickup da sve dok on ne dostavi taj paket na odrediste , drugi se pickup tjst paket ne kreira .. ili dok ga neko ne pokupi da se novi ne stvara, tek kada dostavi se taj paket drugi se kreira ali nakon neko vrmn (npr prvi se kreiro 1:00 i ako nije dostavljen ostat ce sve dok neko ga ne pokupi i ne dostavi tu na mjestu (logicno).. ali ako ga dostavi da se sledeci tek kreira u 2:00 naci razmak sat vrmn.. Nadam se da sam objasnio kako treba. Naci problem je sto mi se timer ne iskljucuje kada se prvi kreira nego nastavi stvarat pakete i kreiro sam da se random paketi kreiraju ali izgleda i to ne funkcionira dobro tjst kreiraju se dva u isto vrijeme sto ne bi smjelo nego jedan samo u tom trenutku..
Dio skripte:
[pawn]new paketpickup;
new timer1;
new bool:paketprovjera[MAX_PLAYERS];
timer1 = SetTimer("PaketTimer",50000,false); - timer sam seto naci sve radi kao sto sam objasnio bez erora ali samo je problem ovo sto sam iznio.. [/pawn]
[pawn]forward PaketTimer(playerid);
public PaketTimer()
{

            new randompaket = random(sizeof(PAKETSPAWN));
            paketpickup = CreateDynamicPickup(1575, 2, PAKETSPAWN[randompaket][0], PAKETSPAWN[randompaket][1], PAKETSPAWN[randompaket][2]);
            SendClientMessageToAll(-1, "Paket droge je stigao u gradsku luku!");
            return 1;

}[/pawn]
[pawn]else if (pickupid == paketpickup)
   {
      if(PlayerInfo[playerid][pClan] != 0 || PlayerInfo[playerid][pClan] != 1)
      {
      DestroyPickup(paketpickup);
      paketpickup = 0;
        SetPlayerCheckpoint(playerid, 2775.7129,-2474.7559,13.6366, 5.0);
        paketprovjera[playerid] = true;
        }
   }[/pawn]
[pawn]if(paketprovjera[playerid])
   {
       DisablePlayerCheckpoint(playerid);
       paketprovjera[playerid] = false;
       PlayerInfo[playerid][pDroga] = PlayerInfo[playerid][pDroga]+250;
       SCM(playerid, -1, ""ZELENA"[OVERTURE] "BELA"Cestitamo, dostavili ste paket i nagradjeni sa 250g droge.!");
       KillTimer(timer1);
    }[/pawn]
Dodo sam sve da bi vi imali bolji pregled. Hvala svima koji pokusaju da mi pojasne ove stvari..

E ovako, ako sam razumio dobro, ako se kreira jedan pickup, i ako igrac njega ne ispuni nece se kreirati drugi(?), ovako msm

[pawn]if(paketprovjera[playerid])
   {
       DisablePlayerCheckpoint(playerid);
       paketprovjera[playerid] = false;
       PlayerInfo[playerid][pDroga] = PlayerInfo[playerid][pDroga]+250;
       SCM(playerid, -1, ""ZELENA"[OVERTURE] "BELA"Cestitamo, dostavili ste paket i nagradjeni sa 250g droge.!");
       KillTimer(timer1);
                 //zovnes funkciju za drugi pickup
    }[/pawn]

a mozes i preko varijable al to ti je kompliciranije, ovako se nikada nece kreirati dok ne ispuni to
heroin rap - Moskri u kuci, od sledece lajne glava ce mi puci

Citat: Łukmember=1996][/member] link=topic=116866.msg787912#msg787912 date=1512164247]
E ovako, ako sam razumio dobro, ako se kreira jedan pickup, i ako igrac njega ne ispuni nece se kreirati drugi(?), ovako msm

[pawn]if(paketprovjera[playerid])
   {
       DisablePlayerCheckpoint(playerid);
       paketprovjera[playerid] = false;
       PlayerInfo[playerid][pDroga] = PlayerInfo[playerid][pDroga]+250;
       SCM(playerid, -1, ""ZELENA"[OVERTURE] "BELA"Cestitamo, dostavili ste paket i nagradjeni sa 250g droge.!");
       KillTimer(timer1);
                 //zovnes funkciju za drugi pickup
    }[/pawn]

a mozes i preko varijable al to ti je kompliciranije, ovako se nikada nece kreirati dok ne ispuni to
Fazon je kako da zovnem funkciju za drugi pickup kad se oni random kreiraju ?

Ovako , pozvao sam sa CallLocalFunction ali nema delay-a izmedju kreiranja. Odma cim dodjem na checkpoint kreira se odma drugi umjesto tek nakon sat .. To cu i nekako rijesit ali se nastavljaju kreirati pickuapovi random naci bez pracenja timera i funkcije ???

Citat: TufekcichX poslato Decembar 01, 2017, 22:47:20 POSLE PODNE
Citat: Łukmember=1996][/member] link=topic=116866.msg787912#msg787912 date=1512164247]
E ovako, ako sam razumio dobro, ako se kreira jedan pickup, i ako igrac njega ne ispuni nece se kreirati drugi(?), ovako msm

[pawn]if(paketprovjera[playerid])
   {
       DisablePlayerCheckpoint(playerid);
       paketprovjera[playerid] = false;
       PlayerInfo[playerid][pDroga] = PlayerInfo[playerid][pDroga]+250;
       SCM(playerid, -1, ""ZELENA"[OVERTURE] "BELA"Cestitamo, dostavili ste paket i nagradjeni sa 250g droge.!");
       KillTimer(timer1);
                 //zovnes funkciju za drugi pickup
    }[/pawn]

a mozes i preko varijable al to ti je kompliciranije, ovako se nikada nece kreirati dok ne ispuni to
Fazon je kako da zovnem funkciju za drugi pickup kad se oni random kreiraju ?
koristi taj tajmer samo jednom i to je to, i onda u toj funkciji isto zoves tajmer, i tako (nije najbolja mogucnost ali radilo bi)
heroin rap - Moskri u kuci, od sledece lajne glava ce mi puci

Sve sam pokusavao ali nikako da radi kako treba, jebeno je za implementaciju iako sam mislio da nije .. Problem je sto sam pocetnik i ne kontam ovaj pawn skroz .. Valjda ga kad implementiram i uspijem odradit kako treba :D

Citat: TufekcichX poslato Decembar 02, 2017, 15:50:38 POSLE PODNE
Sve sam pokusavao ali nikako da radi kako treba, jebeno je za implementaciju iako sam mislio da nije .. Problem je sto sam pocetnik i ne kontam ovaj pawn skroz .. Valjda ga kad implementiram i uspijem odradit kako treba :D
if(paketprovjera[playerid])
   {
       DisablePlayerCheckpoint(playerid);
       paketprovjera[playerid] = false;
       PlayerInfo[playerid][pDroga] = PlayerInfo[playerid][pDroga]+250;
       SCM(playerid, -1, ""ZELENA"[OVERTURE] "BELA"Cestitamo, dostavili ste paket i nagradjeni sa 250g droge.!");
       KillTimer(timer1);
                 new randompaket = random(sizeof(PAKETSPAWN));
                 paketpickup = CreateDynamicPickup(1575, 2, PAKETSPAWN[randompaket][0], PAKETSPAWN[randompaket][1], PAKETSPAWN[randompaket][2]);
                 SendClientMessageToAll(-1, "Paket droge je stigao u gradsku luku!");
    }
heroin rap - Moskri u kuci, od sledece lajne glava ce mi puci