[RIJEÅ ENO] Athlone - Zbugani tajmeri


Započeo Tosic ツ, Avgust 21, 2016, 17:15:45 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim: Athlone
Detaljan opis problema: Svaki pun sat odnosno svaki payday server ubode na par sekundi.. Nzm do cega je i gledam funkciju synctime koja se obnavlja na svaki 1 min ili ti 60000 (tj ponavlja).. Uradio sam za svaki deo print i kasni uvek posle "Imanje Stalks Check Zavrsen" tj tamo gde treba da ispise tu poruku hvala sto igrate na servu i tako to.. ostale provere idu brzo (pratio sam server.exe) gledao sam ostale taskove (da tako kazem) i svugde je pogresno vreme napisano.. Ako neko zna vise o ovome nek pomaze :D NAPOMENA: Ovaj print za dynamic weather tek trebam testati.. i pogledajte ovo za petnaest minuta tajmer.. koliko ja znam to je 300000 a ne 420000 kao sto je pisalo :D

EDIT: U DynamicWeather nema sta da baga ali okacicu. Jedino sto se moglo promeniti je ovo sa if za zimski mod tj moglo je i na drugaciji nacin ali ja ovde ovako ne vidim nikakav propust..
Dio skripte:

task SyncTime[60000]()
{
	new tmphour,
	    	tmpminute,
	    		tmpsecond,
					year,
						month,
							day;
								//stringicc[ 30 ];

    getdate( year, month, day );
	gettimeEx( tmphour, tmpminute, tmpsecond );
	FixHour( tmphour );
	tmphour = shifthour;

	//format( stringicc, sizeof( stringicc ), "%s%d:%s%d:%s%d~n~~w~%d/%d/%d", (tmphour < 10) ? ("0") : (""), tmphour, (tmpminute < 10) ? ("0") : (""), tmpminute, (tmpsecond < 10) ? ("0") : (""), tmpsecond, day, month, year );
	//TextDrawSetString( ATHLINIJA[ 5 ], stringicc );
	printf("ATM Sistem");
    for( new i = 1; i < MAX_ATM; i++ ) {
        if( atmInfo[ i ][ atmExists ] == true ) {
			if( atmInfo[ i ][ atmVremeDoRoba ] != 0 ) {
		        atmInfo[ i ][ atmVremeDoRoba ]--;
		        if( atmInfo[ i ][ atmVremeDoRoba ] == 0 ) {
		            atmInfo[ i ][ atmPreseceneZice ] = false;
		            atmInfo[ i ][ atmProbijenBios ] = false;
		        }
			}
		}
	}
	printf("ATM Zavrsen");
	printf("Gang Zone Sistem");
	for( new i = 1; i < MAX_GZONE; i++ ) {
	
	    if( gZoneInfo[ i ][ gZoneTime ] != 0 ) {
	    
	        gZoneInfo[ i ][ gZoneTime ]--;
	    }
	}
	printf("Gang Zone Sistem Zavrsen");

	if( VremeZatvaranjaCelija > -1 ) {
	    VremeZatvaranjaCelija--;
		if( VremeZatvaranjaCelija == 0 ) {
			UpravljanjeCelijama( false );
		}
	}
	printf("Respawn Car Sistem");
	if( tmpminute == 30 || tmpminute == 0 ) {
	    SetTimer( "RespawnCallGlobal", 60000, false );
		SCMA( 0x86C6DBAA, "[RESPAWN] Server je automatski aktivirao respawn svih vozila!" );
		SCMA( 0x86C6DBAA, "[RESPAWN] Respawn ce biti pokrenut za 1 minut." );
	}
	printf("Respawn Car Sistem Zavrsen");
	printf("Imanje Stalks Check");
	if( tmpminute == 45 ) {

	    SetTimerEx( "StalksCheck", 10, false, "d", 0 );
	}
	printf("Imanje Stalks Check Zavrsen");
	if( ( tmphour > ghour ) || ( tmphour == 0 && ghour == 23 ) ) {


		format( globalstring, sizeof( globalstring ), "Hvala Vam sto igrate na Athlone Community, trenutno je "col_yelow"%d:00 sati", tmphour );
		OOCNews( BELA, globalstring );
		ghour = tmphour;

        if( tmphour == 21 ) {
			SetWeather( 10 );
		}

		if( realtime ) {
			SetWorldTime( tmphour );
			ServerInfo[ VremeInGame ] = tmphour;
		}
		printf("Dinamicno vreme start");
		DinamicWeather( );
		printf("Dinamicno vreme finish");
		printf("Gang Zone sistem 2");
		for( new i = 1; i < MAX_GZONE; i++ ) {

		    if( gZoneInfo[ i ][ gZoneGangID ] != -1 ) {

		        OI[ gZoneInfo[ i ][ gZoneGangID ] ][ oSafeMoney ] += 200;
				SaveOrganization( gZoneInfo[ i ][ gZoneGangID ] );

		    }
		}
		printf("Gang Zone sistem 2 Zavrsen");
		UpravljanjeCelijama( true );
		VremeZatvaranjaCelija = 10;
		printf("Lotto sistem zapocet");
		SetTimerEx( "IzvlacenjeKuglica", 3000, false, "d", 1 );
		printf("Lotto sistem zavrsen");
		printf("Drop gun sistem zapocet");
		for( new f = 0; f < MAX_GOBJ; f++ ) {
		
		    if( IsValidDynamicObject( dGunData[ f ][ gObjID ] ) )
	        	DestroyDynamicObject( dGunData[ f ][ gObjID ] );
	        	
			dGunData[ f ][ ObjPos ][ 0 ] = 0.0;
			dGunData[ f ][ ObjPos ][ 1 ] = 0.0;
			dGunData[ f ][ ObjPos ][ 2 ] = 0.0;
			dGunData[ f ][ gObjID ] = -1;
			dGunData[ f ][ ObjData ][ 0 ] = 0;
			dGunData[ f ][ ObjData ][ 1 ] = 0;
	    }
	    printf("Drop gun sistem zavrsen");
	    printf("Kladza sistem zapocet");
	    IzvuciRezultateKladionica( );
	    printf("Kladza sistem zavrsen");
	    printf("Provera kladze start");
	    foreach( Player, playerid ) {
	    
	        new bool:tiket = false;
	        if( KladionicaListic[ playerid ][ Uplaceno ] && !KladionicaListic[ playerid ][ Zavrseno ] ) {
	            
	            for(  new i = 0; i < 10; i++ ) {
	            
		            if( KladionicaListic[ playerid ][ keciksdva ][ i ] != -1 ) {

		            	if( Parovi[ KladionicaListic[ playerid ][ parID ][ i ] ][ Rezultat ][ 2 ] == KladionicaListic[ playerid ][ keciksdva ][ i ] ) {

							tiket = true;
						}
						else if( Parovi[ KladionicaListic[ playerid ][ parID ][ i ] ][ Rezultat ][ 2 ] != KladionicaListic[ playerid ][ keciksdva ][ i ] ) {

							tiket = false;
							break;
						}

					}
				}
	        }
	        if( tiket == true ) {
	        
	            KladionicaListic[ playerid ][ Status ] = true;
	            KladionicaListic[ playerid ][ Zavrseno ] = true;
				KladionicaListic[ playerid ][ Uplaceno ] = true;
				SaveKladionica( playerid );
	        }
	        else if( tiket == false ) {
	        
	            KladionicaListic[ playerid ][ Status ] = false;
	            /*for(  new i = 0; i < 10; i++ ) {
				  	KladionicaListic[ playerid ][ parID ][ i ] = -1;
				  	KladionicaListic[ playerid ][ keciksdva ][ i ] = -1;
				  	KladionicaListic[ playerid ][ Kvota ][ i ] = 0.0;
				}*/
				KladionicaListic[ playerid ][ Uplaceno ] = true;
				KladionicaListic[ playerid ][ Zavrseno ] = true;
				//KladionicaListic[ playerid ][ Uplata ] = 0;
			 	//KladionicaListic[ playerid ][ Dobitak ] = 0;
			 	SaveKladionica( playerid );
	        
	        }
	    }
	    printf("Provera kladze finish");
	    printf("Provera novi parovi start");
	    PostaviParoveKladionica( );
	    printf("Provera novi parovi finish");
	}
	foreach( Player, i ) {
	    AFKCheck( i );

	    PayCheck( i );

		CheckGas( i );

		OtherCheck( i );

		if( PlayerInfo[ i ][ xWanted ] != 0 && GetPlayerInterior( i ) == 0 && GetPlayerVirtualWorld( i ) == 0 ) {
		    MinutiIgraca[ i ]++;
			if( MinutiIgraca[ i ] == 6 ) {
			    MinutiIgraca[ i ] = 0;
				PlayerInfo[ i ][ xWanted ]--;
			    Dimi_SetPlayerWantedLevel( i, PlayerInfo[ i ][ xWanted ] );
			    if( PlayerInfo[ i ][ xWanted ] == 0 ) {
				    strmid( ZlocinInfo[ i ][ zPrijavio ], "Nema", 0, strlen("Nema"), 255 );
					strmid( ZlocinInfo[ i ][ zPocinio ], "Nema", 0, strlen("Nema"), 255 );
					strmid( ZlocinInfo[ i ][ zZlocin ], "Nema", 0, strlen("Nema"), 255 );
				}
			}
		}
		
		if( PlayerInfo[ i ][ xPljackaVreme ] != 0 ) {
		    PlayerInfo[ i ][ xPljackaVreme ]--;
		}
		
		if( PlayerInfo[ i ][ xHangarTime ] != 0 ) {
		
			PlayerInfo[ i ][ xHangarTime ]--;
		}

        if( PlayerInfo[ i ][ xZauzimanjeVreme ] != 0 ) {

			PlayerInfo[ i ][ xZauzimanjeVreme ]--;
		}
		
		if( PlayerInfo[ i ][ xSvercer ] != 0 ) {

			PlayerInfo[ i ][ xSvercer ]--;
		}

		if( PlayerInfo[ i ][ xZatvor ] == OBICAN_ZATVOR ) {
			if( VremeZatvaranjaCelija == 2 && OtvoreneCelije == true ) {
				SCM( i, SVETLOCRVENA, "ZATVOR | Celije se zatvaraju za 2 minuta, udjite u celije ili cete biti kaznjeni!");
			}
	    	else if( VremeZatvaranjaCelija == 1 && OtvoreneCelije == true ) {
				SCM( i, SVETLOCRVENA, "ZATVOR | Celije se zatvaraju za 1 minut, udjite u celije ili cete biti kaznjeni!");
			}
			else if( VremeZatvaranjaCelija == 0 && OtvoreneCelije == false ) {
				if( IsPlayerInCell( i ) ) {
					SCM( i, SVETLOCRVENA, "ZATVOR | Celije su se zatvorile!");
			    }
				else if( !IsPlayerInCell( i ) ) {
					SCM( i, SVETLOCRVENA, "ZATVOR | Celije su se zatvorile, ostali ste van celija i dobili 10 minuta dodatne kazne!");
					PlayerInfo[ i ][ xZatvorVreme ] += 10;
					new rand = random( sizeof( RandomZatvor ) );
					Dimi_SetPlayerPos( i, RandomZatvor[ rand ][ 0 ], RandomZatvor[ rand ][ 1 ],RandomZatvor[ rand ][ 2 ] );
					SetTimerEx( "SlobodnoSada", 4000, false, "i", i );
					GameTextForPlayer( i, "Ucitavanje ...", 1000, 4 );
					TogglePlayerControllable( i, false );
					SetCameraBehindPlayer( i );
					SetPlayerInterior( i, 0 );
					SetPlayerVirtualWorld( i, 0 );
			    }
			}
		}

	}
	return 1;
}



//task FiveMinutesTimer[420000]()
task FiveMinutesTimer[300000]()
{

    for( new plants = 1; plants < MAX_PLANTS; plants++ ) {

   		if( DrogaStab[ plants ][ wPlanted ] == 1 ) {

   		    DrogaStab[ plants ][ wHoursPassed ]++;

   		    if( DrogaStab[ plants ][ wHoursPassed ] <= 8 ) {
	   		    MoveDynamicObject( DrogaStab[ plants ][ wObjectID ], DrogaStab[ plants ][ Plantx ], DrogaStab[ plants ][Planty], DrogaStab[ plants ][Plantz]+0.2, 5 );
	   		    DrogaStab[ plants ][ Plantz ] += 0.2;
   		    }

   		    if( DrogaStab[ plants ][ wHoursPassed ] > 12 ) {

   		        DrogaStab[ plants ][ Plantx ] = 0;
				DrogaStab[ plants ][ Planty ] = 0;
			   	DrogaStab[ plants ][ Plantz ] = 0;
			   	DrogaStab[ plants ][ wType ] = 0;
				DrogaStab[ plants ][ wPlanted ] = 0;
				DrogaStab[ plants ][ wHoursPassed ] = 0;
				strmid( DrogaStab[ plants ][ wOwner ], "Niko", 0, strlen( "Niko" ), 255);
				DrogaStab[ plants ][ wViwo ] = 0;
			    DestroyDynamicObject( DrogaStab[ plants ][ wObjectID ] );
   		    }
		}
	}

    new Float:health;
	foreach( Player, i ) {
	
	    if( IsPlayerConnected( i ) ) {
	        if( !AdminDuty[ i ] && antiCheatCS[ i ][ AFKMinute ] == 0 && !IsPlayerPaused( i ) ) {
	        
				if( PlayerInfo[ i ][ xHunger ] > -50 )
			    	PlayerInfo[ i ][ xHunger ] -= 1;

				new Float:value;
				if( PlayerInfo[ i ][ xHunger ] > 0 ) value = PlayerInfo[ i ][ xHunger ];
				else if( PlayerInfo[ i ][ xHunger ] <= 0 ) value = 0;

                SetPlayerProgressBarValue( i, GladIgracaBar[ i ], value );

		        new stringic[ 20 ];
			    format( stringic, sizeof( stringic ), "%d", PlayerInfo[ i ][ xHunger ] );
			    PlayerTextDrawSetString( i, GladIgraca[ i ], stringic );

			    GetPlayerHealth( i, health );
			    if( PlayerInfo[ i ][ xHunger ] < 0 )
			        Dimi_SetPlayerHealth( i, health + PlayerInfo[ i ][ xHunger ] );
	        }
		}
	}
}



public DinamicWeather()
{
	new tmphour,
	    tmpminute,
		tmpsecond;

	gettimeEx(tmphour, tmpminute, tmpsecond);
	FixHour( tmphour );
	tmphour = shifthour;

    #if ZIMSKI_MOD == 1
    SetWeather( 38 );
    ServerInfo[ Prognozasys ] = 38;
    #else
	if(tmphour >= 6 && tmphour <= 20)
	{
    	new RandomWeather;
    	RandomWeather = random(10);
    	switch(RandomWeather)
    	{
         	case 0:
         	{
            	SetWeather(1);
            	SendClientMessageToAll( NARANDZASTA1, "  *VREMENSKA PROGNOZA: Vreme je suncano i ugodno." );
            	ServerInfo[ Prognozasys ] = 1;
	     	}
	     	case 1:
	     	{
            	SetWeather(7);
	        	SendClientMessageToAll(NARANDZASTA1, "  *VREMENSKA PROGNOZA: Vreme je tmurno i oblacno. ");
	        	ServerInfo[ Prognozasys ] = 7;
	     	}
	     	case 2:
	     	{
	        	SetWeather(8);
	        	SendClientMessageToAll(NARANDZASTA1, "  *VREMENSKA PROGNOZA: Kisa je pocela da pada. Upozoravaju se vozaci da opreznije voze radi skliskih kolnika.");
	        	ServerInfo[ Prognozasys ] = 8;
         	}
	     	case 3:
	     	{
	        	SetWeather(13);
	        	SendClientMessageToAll(NARANDZASTA1, "  *VREMENSKA PROGNOZA: Vreme je suncano i odlicno za odlazak na plazu. Temperatura vode je ugodnih 22C.");
	        	ServerInfo[ Prognozasys ] = 13;
	     	}
         	case 4:
	     	{
	        	SetWeather(15);
	        	SendClientMessageToAll(NARANDZASTA1, "  *VREMENSKA PROGNOZA: Vreme je oblacno i vjetrovito. Brzina vjetra iznosi 20km/h.");
	        	ServerInfo[ Prognozasys ] = 15;
	     	}
 	     	case 5:
         	{
	        	SetWeather(17);
	        	SendClientMessageToAll(NARANDZASTA1, "  *VREMENSKA PROGNOZA: Vreme je oblacno i ugodno za setnje prirodom.");
	        	ServerInfo[ Prognozasys ] = 17;
	    	}
 	     	case 6:
         	{
	        	SetWeather(24);
	        	SendClientMessageToAll(NARANDZASTA1, "  *VREMENSKA PROGNOZA: Vreme je suncano. Preporucuje se da se pije sto vise tekucine radi vrucina.");
	        	ServerInfo[ Prognozasys ] = 24;
	    	}
	     	case 7:
	     	{
	        	SetWeather(10);
	        	SendClientMessageToAll(NARANDZASTA1, "  *VREMENSKA PROGNOZA: Vreme je svjeze i suncano. Temperatura zraka iznosi 29C");
	        	ServerInfo[ Prognozasys ] = 10;
	     	}
	     	case 8:
	     	{
	        	SetWeather(43);
	        	SendClientMessageToAll(NARANDZASTA1, "  *VREMENSKA PROGNOZA: Vreme je maglovito i tmurno.");
	        	SendClientMessageToAll(NARANDZASTA1, "  *VREMENSKA PROGNOZA: Upozoravaju se vozaci da opreznije voze radi slabije vidljivosti na cestama.");
	        	ServerInfo[ Prognozasys ] = 43;
	    	}
	     	case 9:
         	{
	        	SetWeather(40);
	        	SendClientMessageToAll(NARANDZASTA1, "  *VREMENSKA PROGNOZA: Vreme je ugodno i suncano.");
	        	ServerInfo[ Prognozasys ] = 40;
	     	}
		}
	}
	else if( tmphour >= 21 && tmphour <= 5 )
	{
		SetWeather(10);
		ServerInfo[ Prognozasys ] = 10;
	}
	#endif
	return 1;
}


Neke slike/video za lakse dobivanje pomoci(neobavezno): Ako treba postavicu da vidite kako izgleda to :D
Poslednja Izmena: Avgust 22, 2016, 14:47:27 POSLE PODNE od MEDO

Riješiti ćemo mi ovo, i kod mene na IGu neki baguju... :D

Citat: [IG] Muma poslato Avgust 21, 2016, 23:39:09 POSLE PODNE
Riješiti ćemo mi ovo, i kod mene na IGu neki baguju... :D
Mozda je resenje sve prebaciti u obicne tajmere a umesto taskova napraviti stock/public i onda timeri u OnGameModeInit i povuci te publice..

Može biti i to, probati ću/ćemo ako hoćeš. :D

Citat: [IG] Muma poslato Avgust 21, 2016, 23:45:04 POSLE PODNE
Može biti i to, probati ću/ćemo ako hoćeš. :D
Pre svega napraviti backup hahahaha aj na fb da ne spamamo ovde