Pomoc oko timera, kradja

Započeo Sinner.man, Maj 01, 2020, 01:18:18 PRE PODNE

prethodna tema - sledeća tema

0 članova i 3 gostiju pregledaju ovu temu.

Problem(error/warning): pravio sam sistem kradja neceg nebitno, i dodavao sam timere, kurce palce ugl nikad nije bez erora proslo, pa da li je moguce bez globalni timera, da se napravi komanda, dobijes 3 checkpointa kada dodjes na zadnji da dobijes to
Dio skripte: [pawn]CMD:kradi( playerid, params[] ) {

      //if( GetFactionType( playerid ) != ORG_TIP_BANDA ) return GRESKA( playerid, "Samo bande mogu koristiti ovu komandu." );
      //if( GetFactionType( playerid ) != ORG_TIP_PD || GetFactionType( playerid ) != ORG_TIP_HITM || GetFactionType( playerid ) != ORG_TIP_MD ) {
      if( KradjaGoriva[ playerid ] != 0 ) return GRESKA( playerid, "U toku je branje sacekajte 15 sekundi do sljedeceg branja!");
     // if( askqInfo[ playerid ][ askqSended ] == true ) return GRESKA( playerid, "Vec si poslao pitanje, nije vam odgovoreno ili nisi pogledao." );
      if( GetFactionType( playerid ) != ORG_TIP_BANDA || GetFactionType( playerid ) != ORG_TIP_HITM || GetFactionType( playerid ) != ORG_TIP_MAFIJA ) {
      GRESKA( playerid, "Samo bande i mafije !");
      return 1;
     }
        if( !IsPlayerInRangeOfPoint( playerid, 3.0, 1940.0424,-1774.7954,13.4302 ) &&
         !IsPlayerInRangeOfPoint( playerid, 3.0,  1004.9145,-935.5276,42.1796) &&
         !IsPlayerInRangeOfPoint( playerid, 3.0, 1004.9145,-935.5276,42.1796 ) ) return GRESKA( playerid, "Morate biti na tom mjestu da bi krali !");

        GameTextForPlayer( playerid, "~w~Kradete, sacekajte malo..", 5000, 1);
       TogglePlayerControllable( playerid, false );
       ApplyAnimation( playerid, "BOMBER", "BOM_Plant_Loop",4.0,0,0,0,0,0,1 );
       SetTimerEx( "Kradja", 15000, false, "d", playerid );
       KradjaGoriva[ playerid ] = SetTimerEx( "sekundikradja", 15000, false, "d", playerid );
    //   SetTimerEx( "SlobodnoSada", 15000, false, "i", playerid );
      //Marley_SetPlayerPos( playerid, RandomGrudvanje[ rand ][ 0 ], RandomGrudvanje[ rand ][ 1 ], RandomGrudvanje[ rand ][ 2 ] );

    return true;[/pawn]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): [ code ]vaš odgovor[ /code ]
Slika/video ingame problema(obavezno ako je ingame problem): // mod je ath
jel moze neko ako ima vremena npr na jednom checkpointu da se saceka 5 sec isto i na ostalim
mzd je slicno kao kod ovog posla
[pawn]if( PlayerInfo[ playerid ][ xPosao ] == POSAO_PILOT && ( GetVehicleModel( GetPlayerVehicleID( playerid ) ) == 519 || GetVehicleModel( GetPlayerVehicleID( playerid ) ) == 553 )  ) {
if( LetLV[ playerid ] == 1 && GetPlayerState( playerid ) == PLAYER_STATE_DRIVER ) {
if( IsPlayerInRangeOfPoint( playerid, 5.0, 1847.4221, -2414.0798, 13.5547 ) ) {
TogglePlayerControllable( playerid, false );
GameTextForPlayer( playerid, "~w~sacekajte, putnici se ukrcavaju...", 5000, 5);
PilotTimer[ playerid ] = SetTimerEx( "PilotUtovar", 5000, false, "d", playerid );
GRELLA_SetPlayerCheckpoint( playerid, 1477.5233, 1395.1841, 10.8203, 5.0 );
LetLV[ playerid ] = 2;
StaroVreme[ playerid ] = gettime();
NovoVreme[ playerid ] = 90;[/pawn]
:)

[pawn]static ProveraZaCheckpoint[MAX_PLAYERS char];

//Unutar necega, komande ili sta vec:
SetPlayerCheckpoint(playerid, Float:x, Float:y, Float:z, Float:size); //Stavimo checkpoint
ProveraZaCheckpoint{playerid} = 1;

//Ovo je OnplayerEnterCP
public OnPlayerEnterCheckpoint(playerid)
{
   if(ProveraZaCheckpoint{playerid} == 1) //Ako stane u nas checkpoint
   {
      DisablePlayerCheckpoint(playerid);
      TogglePlayerControllable(playerid, 0);
      GameTextForPlayer(playerid, "Sacekaj..", 5000, 2); //Ovde gde pise 5000, stavi isto kao i trajanje timera, najbolje tako
      defer TimerNeki(playerid);
      return 1;
   }
   if(ProveraZaCheckpoint{playerid})
   switch(ProveraZaCheckpoint{playerid})
   {
      case 1: //Ako stane u nas CP ovaj prvi
      {
         TogglePlayerControllable(playerid, 0);
         GameTextForPlayer(playerid, "Sacekaj..", 5000, 2); //Ovde gde pise 5000, stavi isto kao i trajanje timera, najbolje tako
         defer TimerNeki(playerid);
         return 1;
      }
      case 2: //Sada kada udje u drugi CP, ovaj sto smo postavili u timeru dole
      {
         SendClientMessage(playerid, -1, "Zavrsio si!");
         DisablePlayerCheckpoint(playerid);
         ProveraZaCheckpoint{playerid} = 0;
         return 1;
      }
   }
}

//Timer
timer TimerNeki[5000](playerid)
{
   TogglePlayerControllable(playerid, 1);
   GameTextForPlayer(playerid, "Nastavi dalje", 3000, 2);
   SetPlayerCheckpoint(playerid, Float:x, Float:y, Float:z, Float:size); //Opet mu postavimo CP
   ProveraZaCheckpoint{playerid} = 2;
   return 1;
}[/pawn]

Ne znam koliko puta treba ponoviti da niko nece raditi sisteme osim tebe, tako da, nauci osnove i pogledaj ovo, ako ti nesto nije jasno, pitaj, tu sam, takodje probaj nesto sam uraditi i nemoj toliko zavisiti od drugih, ovako nikada nista neces nauciti. Ovo ti je samo najosnovnije moguce, tako da pogledaj, ostavio sam komentare sa objasnjenjem