Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Tosic ツ poslato Avgust 21, 2016, 17:15:45 POSLE PODNE

Naslov: [RIJEÅ ENO] Athlone - Zbugani tajmeri
Poruka od: Tosic ツ poslato Avgust 21, 2016, 17:15:45 POSLE PODNE
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:

[pawn]
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;
}
[/pawn]


[pawn]
//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 ] );
           }
      }
   }
}
[/pawn]


[pawn]
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;
}
[/pawn]

Neke slike/video za lakse dobivanje pomoci(neobavezno): Ako treba postavicu da vidite kako izgleda to :D
Naslov: Odg: [Pomoc] Athlone - Zbugani tajmeri
Poruka od: Muma poslato Avgust 21, 2016, 23:39:09 POSLE PODNE
Riješiti ćemo mi ovo, i kod mene na IGu neki baguju... :D
Naslov: Odg: [Pomoc] Athlone - Zbugani tajmeri
Poruka od: Tosic ツ poslato Avgust 21, 2016, 23:41:56 POSLE PODNE
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..
Naslov: Odg: [Pomoc] Athlone - Zbugani tajmeri
Poruka od: Muma poslato Avgust 21, 2016, 23:45:04 POSLE PODNE
Može biti i to, probati ću/ćemo ako hoćeš. :D
Naslov: Odg: [Pomoc] Athlone - Zbugani tajmeri
Poruka od: Tosic ツ poslato Avgust 21, 2016, 23:46:40 POSLE PODNE
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
Naslov: Odg: [Pomoc] Athlone - Zbugani tajmeri
Poruka od: Muma poslato Avgust 21, 2016, 23:48:00 POSLE PODNE
Znaš da ja volim spamat.. :3
Naslov: Odg: [Pomoc] Athlone - Zbugani tajmeri
Poruka od: Tosic ツ poslato Avgust 21, 2016, 23:51:27 POSLE PODNE
Citat: [IG] Muma poslato Avgust 21, 2016, 23:48:00 POSLE PODNE
Znaš da ja volim spamat.. :3
Masina bree hahaha