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
ping pong
[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: 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]