Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Carera poslato Avgust 13, 2018, 21:20:02 POSLE PODNE

Naslov: Zauzimanje teritorije
Poruka od: Carera poslato Avgust 13, 2018, 21:20:02 POSLE PODNE
Problem(error/warning): Kada pocne zauzimati teritoriju odmah pise da je napustio,ne znam do cega do neki dan je sve full radilo.
Dio skripte: [pawn]forward ZonaZauzmi( playerid );
public ZonaZauzmi( playerid )
{
   new string[ 128 ];
   if( IsPlayerInDynamicArea( playerid, gZoneInfo[ gZone_ID[ playerid ] ][ gZoneRectAngle ] ) )
   {

       if( gZone_Time[ playerid ] > 0 )
      {
           format( string, sizeof( string ), "~w~Ostanite u teritoriji jos ~r~%d ~w~sekundi", gZone_Time[ playerid ] );
           GameTextForPlayer( playerid, string, 1000, 4 ) ;
           gZone_Time[ playerid ]--;
       }
       else if( gZone_Time[ playerid ] == 0 )
      {
           GangZoneStopFlashForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ] );
           GangZoneHideForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ] );
           gZone_Time[ playerid ] = 0;
           Dimi_KillTimer( gZone_Timer[ playerid ] );

           OrgPoruka( PlayerInfo[ playerid ][ xClan ], 0xFFC801C8, "Vasa organizacija je prosirila svoju vladavinu na jos jednu teritoriju." );

           if( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneGangID ] != -1 )
         {
                format( string, sizeof( string ), "[TERITORIJA] Suparnicka organizacija %s je preuzela jednu od vasih teritorija.", OI[ PlayerInfo[ playerid ][ xClan ] ][ oName ] );
                OrgPoruka( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneGangID ], 0x95b4a2FF, string );
                format( string, sizeof( string ), "[TERITORIJA] Clan %s je zauzeo teritoriju koju je kontrolisala organizacija %s.", ImeIgraca( playerid ), OI[ gZoneInfo[ gZone_ID[ playerid ] ][ gZoneGangID ] ][ oName ] );
               OrgPoruka( PlayerInfo[ playerid ][ xClan ], 0x95b4a2FF, string );
         }
         else if( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneGangID ] == -1 )
         {
             format( string, sizeof( string ), "[TERITORIJA] Clan %s je zauzeo teritoriju koja je bila slboodna.", ImeIgraca( playerid ) );
               OrgPoruka( PlayerInfo[ playerid ][ xClan ], 0x95b4a2FF, string );
         }
         gZoneInfo[ gZone_ID[ playerid ] ][ gZoneGangID ] = PlayerInfo[ playerid ][ xClan ];
         gZoneInfo[ gZone_ID[ playerid ] ][ gZoneTaken ] = true;

         new stringic[ 24 ];
            format( stringic, sizeof( stringic ), "%s", OI[ PlayerInfo[ playerid ][ xClan ] ][ oColor ] );
            strmid( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneColor ], stringic, 0, strlen( stringic ), 255 );
         format( stringic, sizeof( stringic ), "0x%s66", gZoneInfo[ gZone_ID[ playerid ] ][ gZoneColor ] );
            GangZoneShowForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ], HexToInt( stringic ) );
         GZone_Refresh( gZone_ID[ playerid ] );
         gZoneInfo[ gZone_ID[ playerid ] ][ gZoneTime ] = 30;
         GZone_Save( gZone_ID[ playerid ] );
            PostaviWanted( playerid, "Zauzimanje Teritorija", "Nepoznati", 6 );
            gZone_ID[ playerid ] = -1;
      }
   }
   else
   {
        GameTextForPlayer( playerid, "~w~Otisli ste iz teritorije!", 1000, 4) ;
        GangZoneStopFlashForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ] );
       gZone_Time[ playerid ] = 0;
       Dimi_KillTimer( gZone_Timer[ playerid ] );
       PostaviWanted( playerid, "Zauzimanje Teritorija", "Nepoznati", 6 );
        if( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneGangID ] != -1 )
      {
          format( string, sizeof( string ), "[TERITORIJA] Suparnicka organizacija %s je napustila teritoriju i prestala sa preuzimanjem.", OI[ PlayerInfo[ playerid ][ xClan ] ][ oName ] );
            OrgPoruka( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneGangID ], 0x95b4a2FF, string );
      }
      format( string, sizeof( string ), "[TERITORIJA] Clan %s je napustio teritoriju i prestao sa zauzimanjem.", ImeIgraca( playerid ) );
        OrgPoruka( PlayerInfo[ playerid ][ xClan ], 0x95b4a2FF, string );
        gZoneInfo[ gZone_ID[ playerid ] ][ gZoneTime ] = 30;
        GZone_Save( gZone_ID[ playerid ] );
        gZone_ID[ playerid ] = -1;
   }
   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): //
Naslov: Odg: Zauzimanje teritorije
Poruka od: dazer poslato Avgust 13, 2018, 21:50:55 POSLE PODNE
Ovisi ti do tog kako veliku zonu napravis ako napravis tek tolko ce ti se to desavat ako napravis vecu onda probaj ovako

[pawn]forward ZonaZauzmi( playerid );
public ZonaZauzmi( playerid ) {

   new string[ 128 ];
   
   if( IsPlayerInDynamicArea( playerid, gZoneInfo[ gZone_ID[ playerid ] ][ gZoneRectAngle ] ) ) {
   
       if( gZone_Time[ playerid ] > 0 ) {

           format( string, sizeof( string ), "~w~Ostanite u teritoriji jos ~r~%d ~w~sekundi", gZone_Time[ playerid ] );
           GameTextForPlayer( playerid, string, 1000, 4 ) ;
          
           gZone_Time[ playerid ]--;
       }
       else if( gZone_Time[ playerid ] == 0 ) {
      
           GangZoneStopFlashForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ] );
           GangZoneHideForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ] );
           gZone_Time[ playerid ] = 0;
           Miki_KillTimer( gZone_Timer[ playerid ] );
      
           OrgPoruka( PlayerInfo[ playerid ][ xClan ], 0xFFC801C8, "Vasa organizacija je prosirila svoju vladavinu na jos jednu teritoriju." );
      
           if( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneGangID ] != -1 ) {

                format( string, sizeof( string ), "[TERITORIJA] Suparnicka banda %s je preuzela jednu od vasih teritorija.", OI[ PlayerInfo[ playerid ][ xClan ] ][ oName ] );
                OrgPoruka( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneGangID ], 0x95b4a2FF, string );

                format( string, sizeof( string ), "[TERITORIJA] Clan %s je zauzeo teritoriju koju je kontrolisala banda %s.", ImeIgraca( playerid ), OI[ gZoneInfo[ gZone_ID[ playerid ] ][ gZoneGangID ] ][ oName ] );
               OrgPoruka( PlayerInfo[ playerid ][ xClan ], 0x95b4a2FF, string );
                DajIgracuNovac( playerid, 5000 );
         }
         else if( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneGangID ] == -1 ) {
         
             format( string, sizeof( string ), "[TERITORIJA] Clan %s je zauzeo teritoriju koja je bila slobodna.", ImeIgraca( playerid ) );
               OrgPoruka( PlayerInfo[ playerid ][ xClan ], 0x95b4a2FF, string );
                DajIgracuNovac( playerid, 2000 );
         }
         
         
         gZoneInfo[ gZone_ID[ playerid ] ][ gZoneGangID ] = PlayerInfo[ playerid ][ xClan ];
         gZoneInfo[ gZone_ID[ playerid ] ][ gZoneTaken ] = true;
         
         new stringic[ 24 ];
            format( stringic, sizeof( stringic ), "%s", OI[ PlayerInfo[ playerid ][ xClan ] ][ oColor ] );
            strmid( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneColor ], stringic, 0, strlen( stringic ), 255 );
           
            if( PlayerInfo[ playerid ][ xClan ] == 2 ) GangZoneShowForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ], 0x000000AA );
            else if( PlayerInfo[ playerid ][ xClan ] == 7 ) GangZoneShowForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ], 0xA52A2AAA );
            else if( PlayerInfo[ playerid ][ xClan ] == 10 ) GangZoneShowForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ], 0xA52A2AAA );
            else if( PlayerInfo[ playerid ][ xClan ] == 3 ) GangZoneShowForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ], 0xDABB3EAA );
            else if( PlayerInfo[ playerid ][ xClan ] == 13 ) GangZoneShowForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ], 0x33CCFFAA );
            else if( PlayerInfo[ playerid ][ xClan ] == 5 ) GangZoneShowForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ], 0xFF6347AA );
            else if( PlayerInfo[ playerid ][ xClan ] == 8 ) GangZoneShowForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ], 0xFFFFFF00 );
            else if( PlayerInfo[ playerid ][ xClan ] == 17 ) GangZoneShowForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ], 0xFFFFFF00 );
            else if( PlayerInfo[ playerid ][ xClan ] == 9 ) GangZoneShowForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ], 0x8D8DFF00 );
            else if( PlayerInfo[ playerid ][ xClan ] == 12 ) GangZoneShowForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ], 0x8D8DFF00 );
            else if( PlayerInfo[ playerid ][ xClan ] == 11 ) GangZoneShowForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ], 0x000000FF );
            else
            {
            format( stringic, sizeof( stringic ), "0x%sAA", gZoneInfo[ gZone_ID[ playerid ] ][ gZoneColor ] );
               GangZoneShowForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ], HexToInt( stringic ) );
         }
         
         GZone_Refresh( gZone_ID[ playerid ] );
         
         gZoneInfo[ gZone_ID[ playerid ] ][ gZoneTime ] = 30;
         
         GZone_Save( gZone_ID[ playerid ] );
         
            PostaviWanted( playerid, "Zauzimanje Teritorija", "Nepoznati", 6 );

            gZone_ID[ playerid ] = -1;
      }
   }
   else {
   
        GameTextForPlayer( playerid, "~w~Otisli ste iz teritorije!", 1000, 4) ;
        GangZoneStopFlashForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ] );
       gZone_Time[ playerid ] = 0;
       Miki_KillTimer( gZone_Timer[ playerid ] );
      
       PostaviWanted( playerid, "Zauzimanje Teritorija", "Nepoznati", 6 );
       
        if( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneGangID ] != -1 ) {

          format( string, sizeof( string ), "[TERITORIJA] Suparnicka banda %s je napustila teritoriju i prestala sa preuzimanjem.", OI[ PlayerInfo[ playerid ][ xClan ] ][ oName ] );
            OrgPoruka( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneGangID ], 0x95b4a2FF, string );
      }
      
      format( string, sizeof( string ), "[TERITORIJA] Clan %s je napustio teritoriju i prestao sa zauzimanjem.", ImeIgraca( playerid ) );
        OrgPoruka( PlayerInfo[ playerid ][ xClan ], 0x95b4a2FF, string );
       
        gZoneInfo[ gZone_ID[ playerid ] ][ gZoneTime ] = 30;
       
        GZone_Save( gZone_ID[ playerid ] );
       
        gZone_ID[ playerid ] = -1;
   }
   return true;
}[/pawn]
Naslov: Odg: Zauzimanje teritorije
Poruka od: Carera poslato Avgust 13, 2018, 22:27:27 POSLE PODNE
Citat: Miki11 poslato Avgust 13, 2018, 21:50:55 POSLE PODNE
Ovisi ti do tog kako veliku zonu napravis ako napravis tek tolko ce ti se to desavat ako napravis vecu onda probaj ovako

[pawn]forward ZonaZauzmi( playerid );
public ZonaZauzmi( playerid ) {

   new string[ 128 ];
   
   if( IsPlayerInDynamicArea( playerid, gZoneInfo[ gZone_ID[ playerid ] ][ gZoneRectAngle ] ) ) {
   
       if( gZone_Time[ playerid ] > 0 ) {

           format( string, sizeof( string ), "~w~Ostanite u teritoriji jos ~r~%d ~w~sekundi", gZone_Time[ playerid ] );
           GameTextForPlayer( playerid, string, 1000, 4 ) ;
          
           gZone_Time[ playerid ]--;
       }
       else if( gZone_Time[ playerid ] == 0 ) {
      
           GangZoneStopFlashForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ] );
           GangZoneHideForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ] );
           gZone_Time[ playerid ] = 0;
           Miki_KillTimer( gZone_Timer[ playerid ] );
      
           OrgPoruka( PlayerInfo[ playerid ][ xClan ], 0xFFC801C8, "Vasa organizacija je prosirila svoju vladavinu na jos jednu teritoriju." );
      
           if( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneGangID ] != -1 ) {

                format( string, sizeof( string ), "[TERITORIJA] Suparnicka banda %s je preuzela jednu od vasih teritorija.", OI[ PlayerInfo[ playerid ][ xClan ] ][ oName ] );
                OrgPoruka( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneGangID ], 0x95b4a2FF, string );

                format( string, sizeof( string ), "[TERITORIJA] Clan %s je zauzeo teritoriju koju je kontrolisala banda %s.", ImeIgraca( playerid ), OI[ gZoneInfo[ gZone_ID[ playerid ] ][ gZoneGangID ] ][ oName ] );
               OrgPoruka( PlayerInfo[ playerid ][ xClan ], 0x95b4a2FF, string );
                DajIgracuNovac( playerid, 5000 );
         }
         else if( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneGangID ] == -1 ) {
         
             format( string, sizeof( string ), "[TERITORIJA] Clan %s je zauzeo teritoriju koja je bila slobodna.", ImeIgraca( playerid ) );
               OrgPoruka( PlayerInfo[ playerid ][ xClan ], 0x95b4a2FF, string );
                DajIgracuNovac( playerid, 2000 );
         }
         
         
         gZoneInfo[ gZone_ID[ playerid ] ][ gZoneGangID ] = PlayerInfo[ playerid ][ xClan ];
         gZoneInfo[ gZone_ID[ playerid ] ][ gZoneTaken ] = true;
         
         new stringic[ 24 ];
            format( stringic, sizeof( stringic ), "%s", OI[ PlayerInfo[ playerid ][ xClan ] ][ oColor ] );
            strmid( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneColor ], stringic, 0, strlen( stringic ), 255 );
           
            if( PlayerInfo[ playerid ][ xClan ] == 2 ) GangZoneShowForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ], 0x000000AA );
            else if( PlayerInfo[ playerid ][ xClan ] == 7 ) GangZoneShowForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ], 0xA52A2AAA );
            else if( PlayerInfo[ playerid ][ xClan ] == 10 ) GangZoneShowForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ], 0xA52A2AAA );
            else if( PlayerInfo[ playerid ][ xClan ] == 3 ) GangZoneShowForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ], 0xDABB3EAA );
            else if( PlayerInfo[ playerid ][ xClan ] == 13 ) GangZoneShowForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ], 0x33CCFFAA );
            else if( PlayerInfo[ playerid ][ xClan ] == 5 ) GangZoneShowForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ], 0xFF6347AA );
            else if( PlayerInfo[ playerid ][ xClan ] == 8 ) GangZoneShowForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ], 0xFFFFFF00 );
            else if( PlayerInfo[ playerid ][ xClan ] == 17 ) GangZoneShowForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ], 0xFFFFFF00 );
            else if( PlayerInfo[ playerid ][ xClan ] == 9 ) GangZoneShowForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ], 0x8D8DFF00 );
            else if( PlayerInfo[ playerid ][ xClan ] == 12 ) GangZoneShowForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ], 0x8D8DFF00 );
            else if( PlayerInfo[ playerid ][ xClan ] == 11 ) GangZoneShowForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ], 0x000000FF );
            else
            {
            format( stringic, sizeof( stringic ), "0x%sAA", gZoneInfo[ gZone_ID[ playerid ] ][ gZoneColor ] );
               GangZoneShowForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ], HexToInt( stringic ) );
         }
         
         GZone_Refresh( gZone_ID[ playerid ] );
         
         gZoneInfo[ gZone_ID[ playerid ] ][ gZoneTime ] = 30;
         
         GZone_Save( gZone_ID[ playerid ] );
         
            PostaviWanted( playerid, "Zauzimanje Teritorija", "Nepoznati", 6 );

            gZone_ID[ playerid ] = -1;
      }
   }
   else {
   
        GameTextForPlayer( playerid, "~w~Otisli ste iz teritorije!", 1000, 4) ;
        GangZoneStopFlashForAll( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneID ] );
       gZone_Time[ playerid ] = 0;
       Miki_KillTimer( gZone_Timer[ playerid ] );
      
       PostaviWanted( playerid, "Zauzimanje Teritorija", "Nepoznati", 6 );
       
        if( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneGangID ] != -1 ) {

          format( string, sizeof( string ), "[TERITORIJA] Suparnicka banda %s je napustila teritoriju i prestala sa preuzimanjem.", OI[ PlayerInfo[ playerid ][ xClan ] ][ oName ] );
            OrgPoruka( gZoneInfo[ gZone_ID[ playerid ] ][ gZoneGangID ], 0x95b4a2FF, string );
      }
      
      format( string, sizeof( string ), "[TERITORIJA] Clan %s je napustio teritoriju i prestao sa zauzimanjem.", ImeIgraca( playerid ) );
        OrgPoruka( PlayerInfo[ playerid ][ xClan ], 0x95b4a2FF, string );
       
        gZoneInfo[ gZone_ID[ playerid ] ][ gZoneTime ] = 30;
       
        GZone_Save( gZone_ID[ playerid ] );
       
        gZone_ID[ playerid ] = -1;
   }
   return true;
}[/pawn]
Ma radilo sve uvjek, i odjednom kada probas zauzimati zonu kaze da ste otisli daleko a na istom mjestu sam,probat cu to pa ti javim :)