Sitni edit u komandi

Započeo Sinner.man, Maj 04, 2020, 23:47:09 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 5 gostiju pregledaju ovu temu.

Problem(error/warning): napravio sam ovo za kradju goriva, ali kada ukucam komandu odma se seta gorivo u inventory a ne poslije 5000 sekundi kao sto je napisano, i sacekam ne unfreezuje mi lika. Isto kada ukucam komandu animacija bomber traje samo sekundu, kako mogu to popraviti
Dio skripte: [pawn]CMD:kradigorivo( playerid, params[] ) {

      if( PlayerInfo[ playerid ][ xWanted ] > 0 ) return GRESKA( playerid, "Ne mozes kupovati kad imas Wanted Level." );
      if( PlayerInfo[ playerid ][ xClan ] < 1) return GRESKA( playerid, "Nisi clan nijedne organizacije.");
      if( KradjaGoriva[ playerid ] != 0 ) return GRESKA( playerid, "U toku je branje sacekajte 15 sekundi do sljedeceg branja!");
      if( GetFactionType( playerid ) == ORG_TIP_PD  ) {
      GRESKA( playerid, "Ti si u MUP organizaciji ne mozes ovo da radis!");
      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 Pumpe da bi ste krali gorivo !");

        GameTextForPlayer( playerid, "~w~Kradete gorivo, sacekajte malo...", 5000, 1);
       TogglePlayerControllable( playerid, false );
       ApplyAnimation( playerid, "BOMBER", "BOM_Plant_Loop",4.0,0,0,0,0,0,1 );
       SetTimer( "kradjagoriva", 5000, 0 );
       Inventory_Add( playerid, "Kantica", 1650 );
      SCM( playerid, ZUTA, "Ukrali ste kanticu goriva i stavili ste je u torbu - /torba\nCuvar vas je primjetio i prijavio policiji" );
        GRELLA_SetPlayerWantedLevel( playerid, 3 );
      PlayerInfo[ playerid ][ xWanted ] += 3;

    return true;
}[/pawn]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): [ code ][ /code ]
Slika/video ingame problema(obavezno ako je ingame problem): PS V0ID znam da sam smrarao  :D jebi ga samo trebam se malo ukljuciti
:)

Primjer kako tajmeri rade.

[pawn]

CMD:glupost( ... )
{
    print("za 5s ce se isprintat sve sto je u tajmeru");
    SetTimer("tajmer", 5000, 0); /* ovdje pozivas funkciju koja ce se odraditi za 5000ms, a to je 5s*/
    return true;
}

forward tajmer();
public tajmer()
{
    print("ovo je to sve u tajmeru");
    return true;
}
[/pawn]

[pawn]

Inventory_Add( playerid, "Kantica", 1650 );
SCM( playerid, ZUTA, "Ukrali ste kanticu goriva i stavili ste je u torbu - /torba\nCuvar vas je primjetio i prijavio policiji" );

/* ovo treba da ti ide u taj tajmer, a ne u samu komandu */
[/pawn]

Ne znam jel si me skapirao uglavnom

[pawn]SetTimer( "kradjagoriva", 5000, 0 );
       Inventory_Add( playerid, "Kantica", 1650 );
      SCM( playerid, ZUTA, "Ukrali ste kanticu goriva i stavili ste je u torbu - /torba\nCuvar vas je primjetio i prijavio policiji" );
        GRELLA_SetPlayerWantedLevel( playerid, 3 );
      PlayerInfo[ playerid ][ xWanted ] += 3;[/pawn]

Logika..

Pokrenuo si timer, zatim odmah nakon pokretanja si stavio da dobija gorivo..

Napravis poseban public i forward za timer:

[pawn]forward kradjagoriva(playerid);
public kradjagoriva(playerid)
{
   Inventory_Add( playerid, "Kantica", 1650 );
   SCM( playerid, ZUTA, "Ukrali ste kanticu goriva i stavili ste je u torbu - /torba\nCuvar vas je primjetio i prijavio policiji" );
   GRELLA_SetPlayerWantedLevel( playerid, 3 );
   PlayerInfo[ playerid ][ xWanted ] += 3;
   return 1;
}[/pawn]


treba mi za global tajmer, ako jedan opljacka ostali ne mogu pljackati, kao banka npr
:)


[pawn]
new bool:IsGasBeingRobbed, GasRobCooldown;

CMD:kradigorivo( playerid, params[] ) {
     new sad = gettime( );
      if( PlayerInfo[ playerid ][ xWanted ] > 0 ) return GRESKA( playerid, "Ne mozes kupovati kad imas Wanted Level." );
      if( PlayerInfo[ playerid ][ xClan ] < 1) return GRESKA( playerid, "Nisi clan nijedne organizacije.");
      if( KradjaGoriva[ playerid ] != 0 ) return GRESKA( playerid, "U toku je branje sacekajte 15 sekundi do sljedeceg branja!");
      if( GetFactionType( playerid ) == ORG_TIP_PD  ) {
      GRESKA( playerid, "Ti si u MUP organizaciji ne mozes ovo da radis!");
      return 1;
     }
     if( IsGasBeingRobbed ) return SendClientMessage( playerid, -1, "Ovu benzinsku trenutno netko roba");
     if( sad < GasRobCooldown+60*30 ) return SendClientMessage( playerid, -1, "Mozes rob benzinsku svakih 30 minuta");
        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 Pumpe da bi ste krali gorivo !");
        IsGasBeingRobbed = true;
        GameTextForPlayer( playerid, "~w~Kradete gorivo, sacekajte malo...", 5000, 1);
       TogglePlayerControllable( playerid, false );
       ApplyAnimation( playerid, "BOMBER", "BOM_Plant_Loop",4.0,0,0,0,0,0,1 );
       SetTimer( "kradjagoriva", 5000, 0 );

    return true;
}

forward kradjagoriva(playerid);
public kradjagoriva(playerid)
{
   IsGasBeingRobbed = false;
   GasRobCooldown = gettime( );
   Inventory_Add( playerid, "Kantica", 1650 );
   SCM( playerid, ZUTA, "Ukrali ste kanticu goriva i stavili ste je u torbu - /torba\nCuvar vas je primjetio i prijavio policiji" );
   GRELLA_SetPlayerWantedLevel( playerid, 3 );
   PlayerInfo[ playerid ][ xWanted ] += 3;
   return 1;
}[/pawn]
Probaj nabrzinu sam napravio.
Citat: CheezItFollow your heart and own style.
Citat: PottusThat is perfectly fine, I'm just pointing out where you made mistakes what does hearing "good job" get you? Absolutely nothing. You need to hear the problems otherwise you'll keep making the same mistakes :)

Citat: ShadowMortar poslato Maj 05, 2020, 19:47:45 POSLE PODNE
[pawn]
new bool:IsGasBeingRobbed, GasRobCooldown;

CMD:kradigorivo( playerid, params[] ) {
     new sad = gettime( );
      if( PlayerInfo[ playerid ][ xWanted ] > 0 ) return GRESKA( playerid, "Ne mozes kupovati kad imas Wanted Level." );
      if( PlayerInfo[ playerid ][ xClan ] < 1) return GRESKA( playerid, "Nisi clan nijedne organizacije.");
      if( KradjaGoriva[ playerid ] != 0 ) return GRESKA( playerid, "U toku je branje sacekajte 15 sekundi do sljedeceg branja!");
      if( GetFactionType( playerid ) == ORG_TIP_PD  ) {
      GRESKA( playerid, "Ti si u MUP organizaciji ne mozes ovo da radis!");
      return 1;
     }
     if( IsGasBeingRobbed ) return SendClientMessage( playerid, -1, "Ovu benzinsku trenutno netko roba");
     if( sad < GasRobCooldown+60*30 ) return SendClientMessage( playerid, -1, "Mozes rob benzinsku svakih 30 minuta");
        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 Pumpe da bi ste krali gorivo !");
        IsGasBeingRobbed = true;
        GameTextForPlayer( playerid, "~w~Kradete gorivo, sacekajte malo...", 5000, 1);
       TogglePlayerControllable( playerid, false );
       ApplyAnimation( playerid, "BOMBER", "BOM_Plant_Loop",4.0,0,0,0,0,0,1 );
       SetTimer( "kradjagoriva", 5000, 0 );

    return true;
}

forward kradjagoriva(playerid);
public kradjagoriva(playerid)
{
   IsGasBeingRobbed = false;
   GasRobCooldown = gettime( );
   Inventory_Add( playerid, "Kantica", 1650 );
   SCM( playerid, ZUTA, "Ukrali ste kanticu goriva i stavili ste je u torbu - /torba\nCuvar vas je primjetio i prijavio policiji" );
   GRELLA_SetPlayerWantedLevel( playerid, 3 );
   PlayerInfo[ playerid ][ xWanted ] += 3;
   return 1;
}[/pawn]
Probaj nabrzinu sam napravio.

sve pici kako treba, samo ne unfrezuje lika i jebana animacija traje 2,3 sekunde, da li to za anim trebam promjenut ili nzm
:)

Probaj ovako: [pawn]ApplyAnimation( playerid, "BOMBER", "BOM_Plant_Loop",4.1,0,0,0,0,5000,1 );[/pawn]

ako ne bude radilo dodaj samo pod public kradjagoriva ovo:

[pawn]ClearAnimations(playerid);
TogglePlayerControllable(playerid, true);[/pawn]

My Bike KTM 450 SXF 2008