Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Unkovic poslato Novembar 16, 2017, 21:38:51 POSLE PODNE

Naslov: AMX Backtrace
Poruka od: Unkovic poslato Novembar 16, 2017, 21:38:51 POSLE PODNE
Skripta koju koristim: ARP
Detaljan opis problema: Kad god ukucam komandu /kopaj crasha mi ceo client a na konzoli ispise ovo sto je na slici dole
Dio skripte: //
Neke slike/video za lakse dobivanje pomoci(neobavezno) : https://uploaduj.me/a/2WHBu-1510864695
Naslov: Odg: AMX Backtrace
Poruka od: .бутиган poslato Novembar 16, 2017, 21:41:26 POSLE PODNE
KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD KOD
Naslov: Odg: AMX Backtrace
Poruka od: Ino42O poslato Novembar 16, 2017, 21:41:58 POSLE PODNE
Array out of bounds, pokušavaš pristupiti indexu u nizu koji ne postoji!
Naslov: Odg: AMX Backtrace
Poruka od: Unkovic poslato Novembar 16, 2017, 21:52:55 POSLE PODNE
[pawn]
   else if( dialogid == dialog_RAZLOZI ) {
       if(response) {
           if(strlen(inputtext) > 6)
         {
            if(PraviLicnu[playerid]) return SPD(playerid, dialog_LICNA, DSMSG, D_NASLOV, "Da li ste sigurni da zelite kupiti licnu kartu?", "Da", "Ne");
            else if(PraviPasos[playerid]) return SPD(playerid, dialog_PASOS, DSMSG, D_NASLOV, "Da li ste sigurni da zelite kupiti pasos?", "Da", "Ne");
         }
         else return GRESKA(playerid, "Niste uneli ispravne podatke.");
      }
      else return false;
   }
   else if(dialogid == dialog_LICNA) {
       if(response) {
         PraviLicnu[playerid] = false;
         PlayerInfo[playerid][xLicna] = true;
         DajIgracuNovac(playerid, -5000);
         SendInfoMessage(playerid, "Uspesno ste izvadili licnu kartu.");
         SavePlayer(playerid);
      }
      else return false;
   }
   else if(dialogid == dialog_PASOS) {
      if(response) {
         PraviPasos[playerid] = false;
         PlayerInfo[playerid][xPasos] = true;
         DajIgracuNovac(playerid, -5000);
         SendInfoMessage(playerid, "Uspesno ste izvadili pasos.");
         SavePlayer(playerid);
      }
      else return false;
   }
[/pawn]

i ovo

[pawn]
   else if(dialogid == dialog_OPSTINA ) {
       if(response)
       {
           switch(listitem) {
            case 0: SCM(playerid, -1, ""col_bstorm"[SEKRETARICA] "col_white"Licnu kartu/Pasos mozete izvaditi u kancelariji levo od Vas.");
            case 1: SCM(playerid, -1, ""col_bstorm"[SEKRETARICA] "col_white"Sve oko vozila imate na drugom spratu");
            case 2: SCM(playerid, -1, ""col_bstorm"[SEKRETARICA] "col_white"Sve oko poslova mozete pogledati na trecem spratu");
            case 3: SCM(playerid, -1, ""col_bstorm"[SEKRETARICA] "col_white"Advokatske usluge mozete potraziti na trecem spratu");
         }
      }
      else return false;
   }
[/pawn]

i ovo

[pawn]

else if(dialogid == dialog_POL) {
       if(!response)
       {
           PlayerInfo[playerid][xPol] = 2;
           SendInfoMessage(playerid, "Vi ste zensko");
          
            PlayerInfo[ playerid ][ xRegistrovan ] = 1;
         PlayerInfo[ playerid ][ xPocetniTut ] = 0;
         PlayerInfo[ playerid ][ xSpawn ] = SetRandomSpawn( playerid );
         PlayerInfo[ playerid ][ xLevel ] = ServerInfo[ PocetniLevel ];
         PlayerInfo[ playerid ][ xSkin ] = SetSexSkin(playerid);

         TimerTutorial[ playerid ] = SetTimerEx( "PocetniTut", 10000, false, "ii", playerid, 1 );
         PocetniTutorialStartovan[ playerid ] = true;
         SavePlayer(playerid);
      }
      else
      {
          PlayerInfo[playerid][xPol] = 1;
           SendInfoMessage(playerid, "Vi ste musko");
          
           PlayerInfo[ playerid ][ xRegistrovan ] = 1;
         PlayerInfo[ playerid ][ xPocetniTut ] = 0;
         PlayerInfo[ playerid ][ xSpawn ] = SetRandomSpawn( playerid );
         PlayerInfo[ playerid ][ xLevel ] = ServerInfo[ PocetniLevel ];
         PlayerInfo[ playerid ][ xSkin ] = SetSexSkin(playerid);

         TimerTutorial[ playerid ] = SetTimerEx( "PocetniTut", 10000, false, "ii", playerid, 1 );
         PocetniTutorialStartovan[ playerid ] = true;
         SavePlayer(playerid);
      }
   }
   
[/pawn]

izvoli buti bebo
Naslov: Odg: AMX Backtrace
Poruka od: .бутиган poslato Novembar 16, 2017, 21:54:57 POSLE PODNE
/kopaj?
Naslov: Odg: AMX Backtrace
Poruka od: Łuk@ poslato Novembar 16, 2017, 21:58:50 POSLE PODNE
Citat: Butigan.MySql poslato Novembar 16, 2017, 21:54:57 POSLE PODNE
/kopaj?
taman ja krenuo da napisem,
daj usput i varijablu
Naslov: Odg: AMX Backtrace
Poruka od: .бутиган poslato Novembar 16, 2017, 22:00:16 POSLE PODNE
usput dodaj i -d3 u compiler
Naslov: Odg: AMX Backtrace
Poruka od: Unkovic poslato Novembar 16, 2017, 22:00:37 POSLE PODNE
[pawn]
CMD:kopaj(playerid, params[]) {
   if( GetFactionType( playerid ) == ORG_TIP_PD ) {
      GRESKA( playerid, "PD/FBI/CIA ne moze da radi poslove!");
      return 1;
   }

    if( ( PlayerInfo[ playerid ][ xAdmin ] > 0 && PlayerInfo[ playerid ][ xAdmin ] < 6 ) || PlayerInfo[ playerid ][ xHelper ] > 0 ) {

      new hour, minute, seconds;
      gettimeEx( hour, minute, seconds );
      FixHour( hour );
      hour = shifthour;
      if( ( hour >= 00 ) && ( hour <= 08 ) ) { }
      else {

         GRESKA( playerid, "Admini i Helperi mogu da rade poslove izmedju 00h i 08h." );
         return 1;
      }
   }

   if(PlayerInfo[playerid][xPosao] != POSAO_RUDARCINA) return GRESKA(playerid, "Morate biti rudar da bi koristili ovu komandu.");
   if(!UzeoOpremu[playerid]) return GRESKA(playerid, "Morate uzeti opremu da bi radili ovaj posao.");
   if( AccountVerified[ playerid ] == false ) return GRESKA( playerid, "Prvo morate verifikovati svoj nalog(/verifikacija).");

   if(IsPlayerInRangeOfPoint(playerid, 15.0, 607.1993, 866.9289, -40.2071))
   {
      AccountVerified[ playerid ] = false;

      SendJobMessage(playerid, "Uspesno ste krenuli sa kopanjem.");
      ApplyAnimation(playerid, "CHAINSHAW", "CSAW_1", 4.1, 1, 1, 1, 1, 0, 1);
      rudarcina[playerid][rRudarTajmer] = SetTimerEx("Rudarisanje", 25000, false, "i", playerid);
      rudarcina[playerid][rRadiRudara] = true;
      TogglePlayerControllable(playerid, false);
   }
   else return GRESKA(playerid, "Niste na mestu za kopanje.");
   
   return 1;
}

[/pawn]

to je ta
Naslov: Odg: AMX Backtrace
Poruka od: .бутиган poslato Novembar 16, 2017, 22:01:33 POSLE PODNE
public Rudarisanje
Naslov: Odg: AMX Backtrace
Poruka od: Unkovic poslato Novembar 16, 2017, 22:05:28 POSLE PODNE
[pawn]
forward Rudarisanje(playerid);
public Rudarisanje(playerid)
{
   new zlato = random(30);
   ClearAnimations(playerid);
   SendJobMessage(playerid, "Uspesno ste zavrsili s poslom i dobili %d", zlato);
   PlayerInfo[playerid][xZlato] += zlato;
   rudarcina[playerid][rRadiRudara] = false;
   TogglePlayerControllable(playerid, true);
   UpdateZlatoTD(playerid);
   return true;
}
[/pawn]
Naslov: Odg: AMX Backtrace
Poruka od: Łuk@ poslato Novembar 16, 2017, 22:06:11 POSLE PODNE
de

SendJobMessage
rudarcina
UpdateZlatoTD
Naslov: Odg: AMX Backtrace
Poruka od: // xunder poslato Novembar 16, 2017, 22:07:42 POSLE PODNE
http://prntscr.com/hbeztc Ocigledno je da ti je warn u dialog id 71 responseu...
Salji to
Naslov: Odg: AMX Backtrace
Poruka od: Łuk@ poslato Novembar 16, 2017, 22:09:13 POSLE PODNE
kako ti crasha ako ti je warning u dialogu a u /kopaj nemas nikako za dialog nista lol, daj i taj dialog i to sto sam ti rekao
Naslov: Odg: AMX Backtrace
Poruka od: .бутиган poslato Novembar 16, 2017, 22:10:54 POSLE PODNE
Citat: Łukmember=1996][/member] link=topic=116359.msg780767#msg780767 date=1510866371]
de

SendJobMessage
rudarcina
UpdateZlatoTD

zivot bi bio 2x laksi da koristi -d3

Dodaj i definisanje istih variabli kada budes pisao
Naslov: Odg: AMX Backtrace
Poruka od: // xunder poslato Novembar 16, 2017, 22:12:15 POSLE PODNE
Citat: Butigan.MySql poslato Novembar 16, 2017, 22:10:54 POSLE PODNE
Citat: Łukmember=1996][/member] link=topic=116359.msg780767#msg780767 date=1510866371]
de

SendJobMessage
rudarcina
UpdateZlatoTD

zivot bi bio 2x laksi da koristi -d3

Bitno je da ga ti zavlacis vec pola sata i trazis mu nepotrebno, zasto ne citas iz parametara... OnDialogResponse(playerid, dialog=71, response, list, input)
Naslov: Odg: AMX Backtrace
Poruka od: Slade poslato Novembar 16, 2017, 23:02:15 POSLE PODNE
Posalji dialog 71, imam osjecaj da je do rudarcina[, mislim da ti je on definisan na broj tih rudnika il sta vec dok treba biti na MAX_PLAYERS.
Naslov: Odg: AMX Backtrace
Poruka od: Unkovic poslato Novembar 17, 2017, 20:06:06 POSLE PODNE
[pawn]
   if( dialogid == dialog_LOGIN ) {
       if( !response ) return Kick( playerid );
      if( response ) {
         if( !strcmp( inputtext, PlayerInfo[ playerid ][ xLozinka ], false ) && !isnull( inputtext ) ) {
            INI_ParseFile( Korisnici( playerid ), "OcitajKorisnika", .bExtra = true, .extra = playerid );

                /*new aastring[64];
            format( aastring, sizeof( aastring ), A_FILE, ImeIgraca( playerid ) );
                if( PlayerInfo[ playerid ][ xAdmin ] == 0 && fexist( aastring ) ) {
                    SCM( playerid, -1, "Smenjen si sa pozicije Administratora." );
                fremove( aastring );
            }
            if( PlayerInfo[ playerid ][ xHelper ] == 0 && fexist( aastring ) ) {
                    SCM( playerid, -1, "Smenjen si sa pozicije helpera." );
                fremove( aastring );
            }*/

            if( fexist( Admini( playerid ) ) ) INI_ParseFile( Admini( playerid ), "OcitajAdmina", .bExtra = true, .extra = playerid );

            if( fexist( Inventory( playerid ) ) ) INI_ParseFile( Inventory( playerid ), "LoadInventory", .bExtra = true, .extra = playerid );

            INI_ParseFile( KladIme( playerid ), "LoadKladionica", .bExtra = true, .extra = playerid );
            LoginTDControl( playerid, false );

                new datum[ 64 ]; new year, month,day;
            getdate( year, month, day );
              new tmphour, tmpminute, tmpsecond;
            gettimeEx( tmphour, tmpminute, tmpsecond );
            FixHour( tmphour );
            tmphour = shifthour;
               format( datum, sizeof( datum ), "%02d/%02d/%d - %d/%d/%d", day, month, year, tmphour, tmpminute, tmpsecond );
              strmid( PlayerInfo[ playerid ][ xLastLogin ], datum, 0, strlen( datum ), 64 );

              if( PlayerInfo[ playerid ][ xFirmaID ] != -1 ) {

               BussinesInfo[ PlayerInfo[ playerid ][ xFirmaID ] ][ bNeaktivnost ] = 0;
               SaveBussines( PlayerInfo[ playerid ][ xFirmaID ] );
            }

            if( PlayerInfo[ playerid ][ xProperty ][ 0 ] != -1 ) {

               II[ PlayerInfo[ playerid ][ xProperty ][ 0 ] ][ iNeaktivnost ] = 0;
               SaveProperty( PlayerInfo[ playerid ][ xProperty ][ 0 ] );
            }
            if( PlayerInfo[ playerid ][ xProperty ][ 1 ] != -1 ) {

               II[ PlayerInfo[ playerid ][ xProperty ][ 1 ] ][ iNeaktivnost ] = 0;
               SaveProperty( PlayerInfo[ playerid ][ xProperty ][ 1 ] );
            }
            if( PlayerInfo[ playerid ][ xProperty ][ 2 ] != -1 ) {

               II[ PlayerInfo[ playerid ][ xProperty ][ 2 ] ][ iNeaktivnost ] = 0;
               SaveProperty( PlayerInfo[ playerid ][ xProperty ][ 2 ] );
            }

                if( PlayerInfo[ playerid ][ xVoziloID ][ 0 ] != -1 ) {

               VehicleInfo[ PlayerInfo[ playerid ][ xVoziloID ][ 0 ] ][ vNeaktivnost ] = 0;
               SaveVehicle( PlayerInfo[ playerid ][ xVoziloID ][ 0 ] );
            }
               if( PlayerInfo[ playerid ][ xVoziloID ][ 1 ] != -1 ) {

               VehicleInfo[ PlayerInfo[ playerid ][ xVoziloID ][ 1 ] ][ vNeaktivnost ] = 0;
               SaveVehicle( PlayerInfo[ playerid ][ xVoziloID ][ 1 ] );
            }
            if( PlayerInfo[ playerid ][ xVoziloID ][ 2 ] != -1 ) {

               VehicleInfo[ PlayerInfo[ playerid ][ xVoziloID ][ 2 ] ][ vNeaktivnost ] = 0;
               SaveVehicle( PlayerInfo[ playerid ][ xVoziloID ][ 2 ] );
            }
            if( PlayerInfo[ playerid ][ xVoziloID ][ 3 ] != -1 ) {

               VehicleInfo[ PlayerInfo[ playerid ][ xVoziloID ][ 3 ] ][ vNeaktivnost ] = 0;
               SaveVehicle( PlayerInfo[ playerid ][ xVoziloID ][ 3 ] );
            }

                new banfile[ 100 ]; format( banfile, sizeof( banfile ), FILE_BAN, ImeIgraca( playerid ) );
            if( fexist( banfile ) ) {
                new File: UserFile = fopen( banfile, io_read );
                new razlogbana[ 128 ] = "Nepoznat";
               new key[256];
               new Data[256];
               while ( fread( UserFile , Data, sizeof( Data ) ) ) {
                  key = ini_GetKey( Data );
                  if( strcmp( key , "Razlog" , true ) == 0 ) {
                      format( razlogbana, strlen( ini_GetValue ( Data ) ), "%s", ini_GetValue( Data ) );
                  }
               }
               fclose( UserFile );
               getdate( year, month, day );

               SendClientMessage( playerid, SVETLOCRVENA, "| BSG:AC | Vas acc je trenutno iskljucen sa servera! Izbaceni ste!" );
                 format( globalstring, sizeof( globalstring ), "Razlog bana: %s", razlogbana );
                 SendClientMessage( playerid, BELA, globalstring );
                 format( globalstring, sizeof( globalstring ), "Vas server nick: %s, Danasnji datum: %d.%d.%d", ImeIgraca( playerid ), day, month, year );
                 SendClientMessage( playerid, ZUTA, globalstring );
                 Unkovic_Kick( playerid );
               return 1;
            }

             if( PlayerInfo[ playerid ][ xPocetniTut ] == 0 ) {
                 TogglePlayerSpectating( playerid, 1 );
                InterpolateCameraPos( playerid, 1677.1746, -1303.1085, 481.0584, 1452.0430, -1314.4868, 176.0983, 50000, CAMERA_MOVE);
               InterpolateCameraLookAt( playerid, 1676.1766, -1312.1057, 479.6893, 1451.0450, -1314.4979, 174.7492, 50000, CAMERA_MOVE);
               SetPlayerInterior( playerid, 0 );
               SetPlayerVirtualWorld( playerid, 1 );
               Unkovic_SetPlayerPos( playerid, 1463.7633,-1041.4501,26.8281);
               SendClientMessage( playerid, SIVA," ");
               SendClientMessage( playerid, SIVA," ");
               SendClientMessage( playerid, SIVA," ");
               SendClientMessage( playerid, SIVA," ");
               SendClientMessage( playerid, SIVA," ");
               SendClientMessage( playerid, SIVA," ");
               SendClientMessage( playerid, ZELENA, "~ DOBRO DOSLI NA ATHLONE ~");
               SendClientMessage( playerid, SIVA," ");
                 SendClientMessage( playerid, BELA, "Pre svega zelimo vam pozeleti dobrodoslicu na nas server.");
                SendClientMessage( playerid, BELA, "Ovo je tutorijal u kojem cemo vam pokazati najvaznije lokacije na serveru.");
                SendClientMessage( playerid, BELA, "Objasnit cemo vam kako uspesno zapoceti igru i uciniti je zanimljivom.");
                SendClientMessage( playerid, BELA, "Verujem da znate da je ovo RP server i da je dosta tesko doci do novca.");
                SendClientMessage( playerid, BELA, "Na pocetku imate 500$ kod sebe, koje ce vam pomoci.");
                TimerTutorial[ playerid ] = SetTimerEx( "PocetniTut", 25000, false, "ii", playerid, 1 );
                PocetniTutorialStartovan[ playerid ] = true;
             }
             else
            {
                 aliasLogin( playerid );

                 if( fexist( Inventory( playerid ) ) ) ProveriInvOruzje[ playerid ] = SetTimerEx( "ProveraInvOruzja", 10, false, "dd", playerid, 0 );

               Unkovic_SetSpawnInfo( playerid );
                SpawnPlayer( playerid ); PlayerLogged[ playerid ] = true;
                antiCheatCS[ playerid ][ TeleportCheck ] = 4;
                antiCheatCS[ playerid ][ WeaponDetect ] = 4;

                    for( new i = 0; i < 6; i ++) {
                  TextDrawShowForPlayer( playerid, BSTORM[ i ] );
               }

               if( ServerInfo[ HappyHours ] == true ) {
                   TextDrawShowForPlayer( playerid, HappyHoursTD );
               }

               if( PlayerInfo[ playerid ][ xPol ] == 0 ) PlayerInfo[ playerid ][ xPol ] = 1;

               //CreatePlayerVehicles( playerid );
               SetPlayerVirtualWorld( playerid, 0 );

                DonatorBoja( playerid );

                ResetAllWeapons( playerid );

                new playersip[ 128 ];
                 GetPlayerIp( playerid, playersip, sizeof( playersip ) );

                format( globalstring, sizeof( globalstring ), "Igrac: %s | [ID:%d] | [LVL:%d] | [IP:%s] se ulogovao na server.", ImeIgraca( playerid ), playerid, PlayerInfo[ playerid ][ xLevel ], playersip );
               AdminPoruka( ZUTA, globalstring );
            }
         }
         else {
             if( PokusajLogina[ playerid ] == MAX_POKUSAJ_LOGINA - 1 ) {
               format( globalstring, sizeof( globalstring ), "Uneli ste krivu lozinku %d puta i dobili kick!", MAX_POKUSAJ_LOGINA );
                SCM( playerid, CRVENA, globalstring);
                Kick( playerid );
                return true;
            }
             PokusajLogina[ playerid ]++;
            SendClientMessage( playerid, CRVENA, "Kriva lozinka!" );
            format( sDStrg, sizeof( sDStrg ), DialogTekstovi[ 0 ], MAX_POKUSAJ_LOGINA );
             SPD( playerid, dialog_LOGIN, DSP, D_NASLOV, sDStrg, D_ODABERI, D_ODUSTANI );
         }
      }
      return true;
   }
[/pawn]

izvolite dialogid == 71