[Pomoc] OnPlayerStateChange

Započeo ★ OneZero ★, Februar 28, 2016, 19:25:31 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim:0
Detaljan opis problema: Na localhostu imam ubaceni crashdetect istu verziju kao i na serveru. Na localhostu sve radi normalno i OnPlayerStateChange sve radi, izbacuje igraca ako nije clan te organizacije, a na serveru ne radi....
Dio skripte:
[pawn]
[19:32:08] [debug] Run time error 4: "Array index out of bounds"
[19:32:08] [debug]  Accessing element at negative index -1
[19:32:08] [debug] AMX backtrace:
[19:32:08] [debug] #0 002c9a34 in ?? (1, 2, 1) from purp.amx
[19:32:08] [debug] #1 0000dbb8 in public OnPlayerStateChange (1, 2, 1) from purp.amx
[/pawn]

Ovo je cijeli OnPlayerStateChange jer stvarno nemogu vise, s tim se mucim vec tjedan dana i nemogu nista napraviti
[pawn]public OnPlayerStateChange(playerid, newstate, oldstate)
{
    new vozilo = GetPlayerVehicleID(playerid);
   if(newstate == PLAYER_STATE_DRIVER)
   {
      Speedo(playerid, 1);
      new Float:vhelti; Zastita[playerid] = 1;
       GetVehicleHealth(vozilo, vhelti);
        AutoHelti[playerid] = vhelti;

      new idd = PI[playerid][pPosedovanjeAuta];
      if(vozilo == VoziloInfo[idd][vSadasnjiID])
      {
         SetVehicleModifications(idd, vozilo);
      }
      ///////////////////////////////////////////////////////////////////////////
      if(vozilo >= vmotosalon[0] && vozilo <= vmotosalon[9])
      {
           RemovePlayerFromVehicle(playerid);
          SCM(playerid,-1,""BIJELA"(PU) "CRVENA"Ne mozete uci u izlozbeno vozilo!");
      }
      if(vozilo == IzlozbenoAuto)
      {
          RemovePlayerFromVehicle(playerid);
          SCM(playerid,-1,""BIJELA"(PU) "CRVENA"Ne mozete uci u izlozbeno vozilo!");
      }
      if(AutoSalonVozila(vozilo))
      {
          RemovePlayerFromVehicle(playerid);
         SCM(playerid,-1,""BIJELA"(PU) "CRVENA"Ne mozete uci u izlozbeno vozilo!");
      }
      if(PolicijskaAuta(vozilo))
      {
         if(PI[playerid][pClan] == 7)
         {
             RemovePlayerFromVehicle(playerid);
             SCM(playerid, -1, ""PLAVA"Znao sam da nemogu voziti vozilo svojih kolega!");
         }
         else if(PI[playerid][pClan] != 1 && PI[playerid][pClan] != 7)
         {
            RemovePlayerFromVehicle(playerid);
            SCM(playerid, -1, ""PLAVA"Ne mozete ukrasti vozilo Los Santos Police Department!");
            PostaviWanted(playerid, "Pokusaj kradje Policijskog vozila", "Nepoznato");
         }
      }
      if(FBIAuta(vozilo))
      {
         if(PI[playerid][pClan] == 1)
         {
             RemovePlayerFromVehicle(playerid);
             SCM(playerid, -1, ""PLAVA"Znao sam da nemogu voziti vozilo svojih kolega!");
         }
         else if(PI[playerid][pClan] != 7 && PI[playerid][pClan] != 1)
         {
               RemovePlayerFromVehicle(playerid);
            SCM(playerid, -1, ""PLAVA"Ne mozete ukrasti vozilo FBI-a!");
            PostaviWanted(playerid, "Pokusaj kradje FBI vozila", "Nepoznato");
         }
      }
      if(HitmanAuta(vozilo))
      {
         if(PI[playerid][pClan] != 8)
         {
            RemovePlayerFromVehicle(playerid);
            SCM(playerid, -1, ""SIVA"Ne mozete ukrasti vozilo Hitman Agencije!");
         }
      }
      else if(BolnicarVozila(vozilo))
      {
          if(PI[playerid][pClan] != 9)
          {
              RemovePlayerFromVehicle(playerid);
              SCM(playerid, -1, ""SIVA"Ne mozete ukrasti vozilo Bolnicara!");
         }
      }
      else if(TVFAuta(vozilo))
      {
         if(PI[playerid][pClan] != 2)
         {
            RemovePlayerFromVehicle(playerid);
            SCM(playerid, -1, ""CRVENA"Ne mozete ukrasti vozilo The Columbian Cartel!");
         }
      }
        else if(GAuta(vozilo))
      {
         if(PI[playerid][pClan] != 11)
         {
            RemovePlayerFromVehicle(playerid);
            SCM(playerid, -1, ""SPLAVA"Nemozete ukrasti vozilo Gradonacelnika!");
         }
      }
        else if(SFAuta(vozilo))
      {
         if(PI[playerid][pClan] != 10)
         {
            RemovePlayerFromVehicle(playerid);
            SCM(playerid, -1, ""SPLAVA"Nemozete ukrasti vozilo Underground Racers!");
         }
      }
      else if(TBTVozila(vozilo))
      {
         if(PI[playerid][pClan] != 3)
         {
            RemovePlayerFromVehicle(playerid);
            SCM(playerid, -1, ""BIJELA"Nemozete ukrasti vozilo La Cosa Nostra!");
         }
      }
      else if(GroveVozila(vozilo))
      {
         if(PI[playerid][pClan] != 4)
         {
            RemovePlayerFromVehicle(playerid);
            SCM(playerid, -1, ""ZELENA"Nemozete ukrasti vozilo Grove Street Family!");
         }
      }
      else if(BallasVozila(vozilo))
      {
         if(PI[playerid][pClan] != 5)
         {
            RemovePlayerFromVehicle(playerid);
            SCM(playerid, -1, ""LJUB"Nemozete ukrasti vozilo Ballasa!");
         }
      }
      else if(NovinariVozila(vozilo))
      {
          if(PI[playerid][pClan] != 6)
         {
            RemovePlayerFromVehicle(playerid);
            SCM(playerid, -1, ""ZUTA"Nemozete ukrasti vozilo LS News!");
         }
      }
      if(vozilo >= vkarting[0] && vozilo <= vkarting[6])
      {
          if(Zeton[playerid] == 0)
          {
            SCM(playerid,-1,""BIJELA"(PU) "CRVENA"Morate kupiti zeton!"); RemovePlayerFromVehicle(playerid);
            return 1;
          }
          else if(Zeton[playerid] == 1)
         {
            SCM(playerid,-1,"(PU) "ZUTA"Srecno u voznji, zeton traje 4 minuta!");
            zeton[playerid] = SetTimerEx("KartingZeton", 240000, false, "i", playerid);
         }
      }
      if(vozilo >= askolavozila[0] && vozilo <= askolavozila[7])
      {
         if(Poligon[playerid] == 0)
         {
            SCM(playerid, -1, ""PPLAVA"[AS]: "ORANGE"Nemate uplaceno polaganje...");
            RemovePlayerFromVehicle(playerid);
            return 1;
         }
         if(Poligon[playerid] == 1)
         {
            SetPlayerCheckpoint(playerid, 1544.3151,-2243.0063,13.5469, 2.5);
            SCM(playerid, -1, ""PPLAVA"[AS]: "BIJELA"Krenuli ste sa polaganjem pratite crvene markere!");
         }
      }
      if(BiciklaRent(vozilo))
      {
          if (Rentano[playerid] != vozilo)
          {
            TogglePlayerControllable(playerid, 0);
            GameTextForPlayer(playerid,"~w~Mozete rentati ovo biciklo ~b~/rent ~w~ili ~b~/izlaz~n~~w~Cena Renta: ~g~30$",5000,3);
         }
      }
      if(MotoRent(vozilo))
      {
          if (Rentano[playerid] != vozilo)
          {
             TogglePlayerControllable(playerid, 0);
            GameTextForPlayer(playerid,"~w~Mozete rentati ovaj motor ~b~/rent ~w~ili ~b~/izlaz~n~~w~Cena Renta: ~g~80$",5000,3);
         }
      }
      if(AutaRent(vozilo))
      {
          if (Rentano[playerid] != vozilo)
          {
             TogglePlayerControllable(playerid, 0);
             GameTextForPlayer(playerid,"~w~Mozete rentati ovo vozilo ~b~/rent ~w~ili ~b~/izlaz~n~~w~Cena Renta: ~g~120$",5000,3);
         }
      }
        if(VoziloJeKamion(GetVehicleModel(GetPlayerVehicleID(playerid))))
       {
           if(PI[playerid][pKamionDozvola] <= 0)
          {
              SCM(playerid,-1,""ORANGE"(PU) "BIJELA"Nemate dozvolu za kamion, kupite je u auto skoli!");
          }
       }
       if(VoziloJeAvion(GetVehicleModel(GetPlayerVehicleID(playerid))))
       {
           if(PI[playerid][pAvionDozvola] <= 0)
          {
              SCM(playerid,-1,""ORANGE"(PU) "BIJELA"Nemate dozvolu za letjelicu, kupite je u auto skoli!");
              RemovePlayerFromVehicle(playerid);
          }
       }
       if(VoziloJeBrod(GetVehicleModel(GetPlayerVehicleID(playerid))))
       {
           if(PI[playerid][pBrodDozvola] <= 0)
           {
               SCM(playerid,-1,""ORANGE"(PU) "BIJELA"Nemate dozvolu za plovilo, kupite je u auto skoli!");
               RemovePlayerFromVehicle(playerid);
           }
       }
       if(VoziloJeMotor(GetVehicleModel(GetPlayerVehicleID(playerid))))
       {
           if(PI[playerid][pMotorDozvola] <= 0)
           {
               SCM(playerid,-1,""ORANGE"(PU) "BIJELA"Nemate dozvolu za motor, kupite je u auto skoli!");
           }
       }
      ////////////////////////////////////////////////////////////////////////////////////////////
      if(!VoziloJeBicikla(GetVehicleModel(GetPlayerVehicleID(playerid))) && !VoziloJeMotor(GetVehicleModel(GetPlayerVehicleID(playerid))))
       {
         if(PI[playerid][pADozvola] == 1) SCM(playerid, -1, ""CRVENA"| UPOZORENJE | {FF6347}Radi vlastite sigurnosti , trebate staviti pojas komandom /pojas !!");
         if(PI[playerid][pADozvola] == 0) SCM(playerid, -1, ""CRVENA"| UPOZORENJE | {FF6347}Nemate vozacku dozvolu, pazite se policije !! Obavezno svezite pojas komandom /pojas !!");
       }
       if(VoziloJeBicikla(GetVehicleModel(GetPlayerVehicleID(playerid))))
       {
          new engine, lights, alarm, doors, bonnet, boot, objective;
           GetVehicleParamsEx(GetPlayerVehicleID(playerid), engine, lights, alarm, doors, bonnet, boot, objective);
           SetVehicleParamsEx(GetPlayerVehicleID(playerid), 1, lights, alarm, doors, bonnet, boot, objective);
       }
       if(!VoziloJeBicikla(GetVehicleModel(GetPlayerVehicleID(playerid))))
       {
          new engine, lights, alarm, doors, bonnet, boot, objective;
          GetVehicleParamsEx(vozilo, engine, lights, alarm, doors, bonnet, boot, objective);
          if(engine == -1 && !VoziloJeBicikla(GetVehicleModel(GetPlayerVehicleID(playerid))))
         {
            SetVehicleParamsEx(vozilo, 0, 0, alarm, doors, bonnet, boot, objective);
         }
      }
      if(BusVozila(vozilo))
      {
          if(PI[playerid][pPosao] != POSAO_BUSVOZAC)
          {
              SCM(playerid, -1, ""ORANGE"(PU): "SIVA"Niste zaposleni kao bus vozac!");
              RemovePlayerFromVehicle(playerid);
         }
         else return SCM(playerid, -1, ""ORANGE"Komande posla: "BIJELA"/linija /prekiniposao");
      }
       if(KosenjeVozila(vozilo))
      {
          if(PI[playerid][pPosao] != POSAO_KOSACTRAVE)
          {
              SCM(playerid, -1, ""ORANGE"(PU): "SIVA"Niste zaposleni kao kosac trave!");
              RemovePlayerFromVehicle(playerid);
         }
         else return SCM(playerid, -1, ""ORANGE"Komande posla: "BIJELA"/kositravu /prekiniposao");
      }
      if(MehanicarVozila(vozilo))
      {
          if(PI[playerid][pPosao] != POSAO_MEHANICAR)
          {
              SCM(playerid, -1, ""ORANGE"(PU): "SIVA"Niste zaposleni kao mehanicar!");
              RemovePlayerFromVehicle(playerid);
         }
         else return SCM(playerid, -1, ""ORANGE"Komande posla: "BIJELA"CTRL da zakacite/otkacite vozilo | /popravi | /napuni");
      }
      if(PostaVozila(vozilo))
      {
          if(PI[playerid][pPosao] != POSAO_POSTAR)
          {
              SCM(playerid, -1, ""ORANGE"(PU): "SIVA"Niste zaposleni kao postar!");
              RemovePlayerFromVehicle(playerid);
         }
         else return SCM(playerid, -1, ""ORANGE"Komande posla: "BIJELA"/posta /prekiniposao");
      }
      if(RudarVozila(vozilo))
      {
          if(PI[playerid][pPosao] != POSAO_RUDAR)
          {
              SCM(playerid, -1, ""ORANGE"(PU): "SIVA"Niste zaposleni kao rudar!");
              RemovePlayerFromVehicle(playerid);
         }
         else return SCM(playerid, -1, ""CRVENA"Komande posla: "BIJELA"/kopaj /poluge /prekiniposao");
      }
      if(KomunalnoVozila(vozilo))
      {
          if(PI[playerid][pPosao] != POSAO_KOMUNALAC)
          {
              SCM(playerid, -1, ""ORANGE"(PU): "SIVA"Niste zaposleni kao komunalac!");
              RemovePlayerFromVehicle(playerid);
         }
         else return SCM(playerid, -1, ""ORANGE"Komande posla: "BIJELA"/komunalno /prekiniposao");
      }
      if(GradjevinarVozila(vozilo))
      {
          if(PI[playerid][pPosao] != POSAO_GRADJEVINAR)
          {
              SCM(playerid, -1, ""ORANGE"(PU): "SIVA"Niste zaposleni kao gradjevinar!");
              RemovePlayerFromVehicle(playerid);
         }
         else return SCM(playerid, -1, ""ORANGE"Komande posla: "BIJELA"/malter /poravnaj /prekiniposao");
      }
      if(GrobarVozila(vozilo))
      {
          if(PI[playerid][pPosao] != POSAO_GROBAR)
          {
              SCM(playerid, -1, ""ORANGE"(PU): "SIVA"Niste zaposleni kao grobar!");
              RemovePlayerFromVehicle(playerid);
         }
         else return SCM(playerid, -1, ""ORANGE"Komande posla: "BIJELA"/grobar /oprema");
      }
      if(FarmerVozila(vozilo))
      {
          if(PI[playerid][pPosao] != POSAO_FARMER)
          {
              SCM(playerid, -1, ""ORANGE"(PU): "SIVA"Niste zaposleni kao farmer!");
              RemovePlayerFromVehicle(playerid);
         }
         else return SCM(playerid, -1, ""ORANGE"Komande posla: "BIJELA"/mleko /oranje /vrsenje");
      }
      if(vozilo == VozVozilo)
      {
          if(PI[playerid][pPosao] != POSAO_MASINOVODJA)
          {
            new Float:Poz[3];
              SCM(playerid, -1, ""ORANGE"(PU): "SIVA"Niste zaposleni kao masinovodja!");
              GetPlayerPos(playerid, Poz[0], Poz[1], Poz[2]);
              g_SetPlayerPos(playerid, Poz[0], Poz[1], Poz[2]+0.5);
         }
         else return SCM(playerid, -1, ""ORANGE"Komande posla: "BIJELA"/voz");
      }
      if(DostavljacVozila(vozilo))
      {
          if(PI[playerid][pPosao] != POSAO_DOSTAVLJAC)
          {
              SCM(playerid, -1, ""ORANGE"(PU): "SIVA"Niste zaposleni kao dostavljac!");
              RemovePlayerFromVehicle(playerid);
         }
         else return SCM(playerid, -1, ""ORANGE"Komande posla: "BIJELA"/uzmikutiju /utovari /istovari");
      }
      if(KamiondzijaVozila(vozilo))
      {
          if(PI[playerid][pPosao] != POSAO_KAMIONDZIJA)
          {
              SCM(playerid, -1, ""ORANGE"(PU): "SIVA"Niste zaposleni kao kamiondzija!");
              RemovePlayerFromVehicle(playerid);
         }
         else return SCM(playerid, -1, ""ORANGE"Komande posla: "BIJELA"/tura /oprema");
      }
      if(PilotVozila(vozilo))
      {
          if(PI[playerid][pPosao] != POSAO_PILOT)
          {
              SCM(playerid, -1, ""ORANGE"(PU): "SIVA"Niste zaposleni kao pilot!");
              RemovePlayerFromVehicle(playerid);
         }
         else return SCM(playerid, -1, ""ORANGE"Komande posla: "BIJELA"/let /oprema");
      }
      if(ElektricarVozila(vozilo))
      {
          if(PI[playerid][pPosao] != POSAO_ELEKTRICAR)
          {
              SCM(playerid, -1, ""ORANGE"(PU): "SIVA"Niste zaposleni kao elektricar!");
              RemovePlayerFromVehicle(playerid);
         }
         else return SCM(playerid, -1, ""ORANGE"Komande posla: "BIJELA"/kvar /oprema");
      }
   }
   else
   {
      Speedo(playerid,0);
   }
   ///////////////////ANTI DEAGLE H////////////////////
   if(newstate==PLAYER_STATE_PASSENGER)
   {
      if(GetPlayerWeapon(playerid) == 24)
         {
           SetPlayerArmedWeapon(playerid, 0);
       }
         new Float:vhelti; Zastita[playerid] = 1;
       GetVehicleHealth(vozilo, vhelti);
        AutoHelti[playerid] = vhelti;
   }
   ///////////////////////////////////////////////////////
   return 1;
}[/pawn]
Neke slike/video za lakse dobivanje pomoci(neobavezno)://

Mislim da je "new idd = PI[playerid][pPosedovanjeAuta];" tu problem jer nisi napravio proveru da li on ima vozilo i tu stoji -1 zato gore izbacuje crashdetect -1.
You have enemies? Good. That means you've stood up for something, sometime in your life.

Citat: Mr. Letic poslato Februar 28, 2016, 19:38:41 POSLE PODNE
Mislim da je "new idd = PI[playerid][pPosedovanjeAuta];" tu problem jer nisi napravio proveru da li on ima vozilo i tu stoji -1 zato gore izbacuje crashdetect -1.

Probat cu ovo javim uskoro jel radi

Edit: Hvala ti, toliko sam dugo buljio u te kodove, ali provjeravao sam sve ispod, nisam uopce mislio da bi to izbacivalo error.... -.-
Poslednja Izmena: Februar 28, 2016, 20:01:38 POSLE PODNE od ★Manuel™★