Pomoc oko timera, kradja


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

prethodna tema - sledeća tema

0 članova i 1 gost 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:
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;

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
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;
:)

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;
}


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