Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: 6YuKiMuRo9 poslato Jul 08, 2018, 21:37:42 POSLE PODNE

Naslov: Potrebna pomoc oko COS
Poruka od: 6YuKiMuRo9 poslato Jul 08, 2018, 21:37:42 POSLE PODNE
Problem(error/warning): Znaci kao da ne ucitava dobro... Npr ja udjem u vozilo i treba da izadje ko je Vlasnik ono izadje samo prazno... vImaVlasnika uopste ne radi jer kad stavim proveru ako je == 1 ono detektuje iako je == 0 a sve je lepo u fajlu...
Dio skripte: [ pawn ]Evo ceo sistem:
[pawn]if(dialogid == DIALOG_KREIRAJ_PRIVATNO)
   {
      if(!response) return 1;
      if(response)
      {
         new modelvozila, cena, boja1, boja2, Float:PozX, Float: PozY, Float:PozZ, Float:angle;
         GetPlayerPos(playerid, PozX, PozY, PozZ);
         GetPlayerFacingAngle(playerid, angle);
         if(sscanf(inputtext, "iiii", modelvozila, cena, boja1, boja2)) return SPD(playerid, DIALOG_KREIRAJ_PRIVATNO, DSI, ""BELA"Kreiranje priv. vozila - "SERVER"Balkan Direct RP", ""BELA"Unesite model, cenu, boju 1 i boju 2.", "Potvrdi", "Otkazi");
         if(modelvozila < 400 || modelvozila > 611) return Error(playerid, "Model vozila mora biti broj izmedju 400 i 611!");
         if(cena < 1) return Error(playerid, "Vozilo mora da ima cenu!");
         if(boja1 < 0 || boja1 > 255) return Error(playerid, "Boja 1 mora biti izmedju 0 i 255!");
         if(boja2 < 0 || boja2 > 255) return Error(playerid, "Boja 2 mora biti izmedju 0 i 255!");
         for(new i=1; i<MAX_VOZILA; i++)
         {
            new vfile[40];
            format(vfile, sizeof(vfile), V_FILE, i);
            if(!fexist(vfile))
            {
               strmid(Vozilo[vVlasnik], "Nema", 0, strlen("Nema"), 32);
               Vozilo[vCena] = cena;
               Vozilo[vImaVlasnika] = 0;
               Vozilo[vID] = i;
               Vozilo[vModel] = modelvozila;
               Vozilo[vPozX] = PozX;
               Vozilo[vPozY] = PozY;
               Vozilo[vPozZ] = PozZ;
               Vozilo[vPozA] = angle;
               Vozilo[vTip] = V_TIP_PRIVATNO;
               Vozilo[vPosaoID] = -1;
               Vozilo[vOrgID] = -1;
               Vozilo[vZakljucano] = 0;
               Vozilo[vBoja1] = boja1;
               Vozilo[vBoja2] = boja2;
               Vozilo[vNeon] = -1;
               Vozilo[vID] = CreateVehicle(Vozilo[vModel], Vozilo[vPozX], Vozilo[vPozY], Vozilo[vPozZ], Vozilo[vPozA], Vozilo[vBoja1], Vozilo[vBoja2], 500000);
               SaveVehicle(i); UpdateVehicleLabel(i);
               Prefix(playerid, "Uspesno ste kreirali privatno vozilo!");
               Prefix(playerid, "Model: %d (%s) | Cena: %d | Boja 1: %d | Boja 2: %d", modelvozila, ImenaVozila[GetVehicleModel(Vozilo[vID]) - 400],cena, boja1, boja2);
               break;
            }
         }
      }

/////////////////////////////////////////
stock UpdateVehicleLabel(i)
{
   Delete3DTextLabel(VoziloLabel);
   if(Vozilo[PrivatnoVozilo(i)][vTip] == V_TIP_PRIVATNO)
   {
      if(Vozilo[PrivatnoVozilo(i)][vImaVlasnika] == 1)
      {
         VoziloLabel[PrivatnoVozilo(i)] = Create3DTextLabel(""SERVER"| "BELA"Privatno Vozilo "SERVER"|", 0xFFFFFFFF, 0.0, 0.0, 0.0, 30.0, GetVehicleVirtualWorld(i), 0);
         Attach3DTextLabelToVehicle(VoziloLabel[PrivatnoVozilo(i)], Vozilo[PrivatnoVozilo(i)][vID], 0.0, 0.0, 0.0);
      }
      else
      {
         VoziloLabel[PrivatnoVozilo(i)] = Create3DTextLabel(""SERVER"| "BELA"Pijaca Vozilo "SERVER"|", 0xFFFFFFFF, 0.0, 0.0, 0.0, 30.0, GetVehicleVirtualWorld(i), 0);
         Attach3DTextLabelToVehicle(VoziloLabel[PrivatnoVozilo(i)], Vozilo[PrivatnoVozilo(i)][vID], 0.0, 0.0, 0.0);
      }
   }
   return 1;
}
//
stock UcitajVozila()
{
   for(new i=0; i < MAX_VOZILA; i++)
   {
      Vozilo[vID] = -1;
      new vFile[50];
        format(vFile, sizeof(vFile), V_FILE, i);
        if(fexist(vFile))
        {
           INI_ParseFile( vFile, "LoadVehicle", .bExtra = true, .extra = i );
           if(Vozilo[vModel] != 0)
           {
              Vozilo[vID] = CreateVehicle(Vozilo[vModel], Vozilo[vPozX], Vozilo[vPozY], Vozilo[vPozZ], Vozilo[vPozA], Vozilo[vBoja1], Vozilo[vBoja2], 500000);
              SetVehicleParamsEx(Vozilo[vID], 0, 0, 0, Vozilo[vZakljucano], 0, 0, 0);
              if(VoziloJeBicikla(Vozilo[vID]))
              {
                 SetVehicleParamsEx(Vozilo[vID], 1, 0, 0, Vozilo[vZakljucano], 0, 0, 0);
              }
           }
           new br = Vozilo[vID], tablice[24];
           if(Vozilo[vRegistrovano] == 1)
           {
              if(10 > br)
            {
               format(tablice, sizeof(tablice), "BG 000%d.", br);
               SetVehicleNumberPlate(br, tablice);
            }
            else if(10 <= br && br < 100)
            {
               format(tablice, sizeof(tablice), "BG 00%d.", br);
               SetVehicleNumberPlate(br, tablice);
            }
            else if(100 <= br && br < 1000)
            {
               format(tablice, sizeof(tablice), "BG 0%d.", br);
               SetVehicleNumberPlate(br, tablice);
            }
            else if(1000 <= br && br < 2001)
            {
               format(tablice, sizeof(tablice), "BG %d.", br);
               SetVehicleNumberPlate(br, tablice);
            }
           }
           else
           {
              SetVehicleNumberPlate(br, "UNKNOWN");
           }
           UpdateVehicleLabel(i);
        }
   }
   return 1;
}
/////////////////////////////////////////////
#define V_FILE "Vozila/%i.ini"
#define V_TIP_PRIVATNO      1

enum veh
{
   vVlasnik[69],
   vCena,
   vImaVlasnika,
   vID,
   vModel,
   Float:vPozX,
   Float:vPozY,
   Float:vPozZ,
   Float:vPozA,
   vTip,
   vPosaoID,
   vOrgID,
   vZakljucano,
   vBoja1,
   vBoja2,
   vNeon,
   vRegistrovano,
   vPreostaloReg
}
new Vozilo[MAX_VOZILA][veh];

new Text3D:VoziloLabel[MAX_VOZILA];
//////////////////////////////////////////////
forward LoadVehicle(id,name[],value[]);
public LoadVehicle(id,name[],value[])
{
   INI_String("Vlasnik", Vozilo[id][vVlasnik]);
   INI_Int("Cena", Vozilo[id][vCena]);
   INI_Int("ImaVlasnika", Vozilo[id][vImaVlasnika]);
   INI_Int("ID", Vozilo[id][vID]);
   INI_Int("Model", Vozilo[id][vModel]);
   INI_Float("PozX", Vozilo[id][vPozX]);
   INI_Float("PozY", Vozilo[id][vPozY]);
   INI_Float("PozZ", Vozilo[id][vPozZ]);
   INI_Float("PozA", Vozilo[id][vPozA]);
   INI_Int("Tip", Vozilo[id][vTip]);
   INI_Int("PosaoID", Vozilo[id][vPosaoID]);
   INI_Int("OrgID", Vozilo[id][vOrgID]);
   INI_Int("Zakljucano", Vozilo[id][vZakljucano]);
   INI_Int("Boja1", Vozilo[id][vBoja1]);
   INI_Int("Boja2", Vozilo[id][vBoja2]);
   INI_Int("Neon", Vozilo[id][vNeon]);
   return 1;
}
///////////////
stock SaveVehicle(id)
{
   new file4[40]; //Ovu proveru sam kopirao iz ath da ne vidim da nije nesto oko cuvanja, ali nije...
   format(file4, sizeof(file4), V_FILE, id);
   new INI:File = INI_Open(file4);
   INI_SetTag(File, "data");
   INI_WriteString(File, "Vlasnik", Vozilo[id][vVlasnik]);
   INI_WriteInt(File, "Cena", Vozilo[id][vCena]);
   INI_WriteInt(File, "ImaVlasnika", Vozilo[id][vImaVlasnika]);
   INI_WriteInt(File, "ID", Vozilo[id][vID]);
   INI_WriteInt(File, "Model", Vozilo[id][vModel]);
   INI_WriteFloat(File, "PozX", Vozilo[id][vPozX]);
   INI_WriteFloat(File, "PozY", Vozilo[id][vPozY]);
   INI_WriteFloat(File, "PozZ", Vozilo[id][vPozZ]);
   INI_WriteFloat(File, "PozA", Vozilo[id][vPozA]);
   INI_WriteInt(File, "Tip", Vozilo[id][vTip]);
   INI_WriteInt(File, "PosaoID", Vozilo[id][vPosaoID]);
   INI_WriteInt(File, "OrgID", Vozilo[id][vOrgID]);
   INI_WriteInt(File, "Zakljucano", Vozilo[id][vZakljucano]);
   INI_WriteInt(File, "Boja1", Vozilo[id][vBoja1]);
   INI_WriteInt(File, "Boja2", Vozilo[id][vBoja2]);
   INI_WriteInt(File, "Neon", Vozilo[id][vNeon]);
   INI_Close(File);
   return 1;
}
[/pawn][ /pawn ]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): [ code ]vaš odgovor[ /code ]
Slika/video ingame problema(obavezno ako je ingame problem): link slike

EDIT: Ovo za labele je radilo pola sad uopce ne radi, pokusavao sam da fixam pa jos vise sjeb'o... Nzm ako neko nadje sta je problem :)

EDIT: inace kreira vozilo kako treba

EDIT: Inace, ako maknem proveru PrivatnoVozilo(vehid) tek tad nece radit :/
Naslov: Odg: Potrebna pomoc oko COS
Poruka od: Paul Castellano poslato Jul 08, 2018, 22:07:17 POSLE PODNE
Pa daj nam to kad udjes u vozilo.Najbolje je da napraviš debug poruke.
Naslov: Odg: Potrebna pomoc oko COS
Poruka od: 6YuKiMuRo9 poslato Jul 08, 2018, 22:09:21 POSLE PODNE
Mislio sam da sam vec stavio to...

[pawn]if(newstate == PLAYER_STATE_DRIVER)
   {
      new vehid = GetPlayerVehicleID(playerid);
      if(PrivatnoVozilo(vehid))
      {
         new VehID = PrivatnoVozilo(vehid);
         if(Vozilo[VehID][vImaVlasnika] == 0)
         {
            TogglePlayerControllable(playerid, false);
            SetCameraBehindPlayer(playerid);
            Prefix(playerid, "Pijaca | Model: %s | Cena: %d$", ImenaVozila[GetVehicleModel(GetPlayerVehicleID(playerid)) - 400], Vozilo[VehID][vCena]);
            Pomoc(playerid, "Ukoliko ne zelite da kupite vozilo, /izlaz!");
         }
         else if(Vozilo[VehID][vImaVlasnika] == 1)
         {
            Prefix(playerid, "Privatno Vozilo | Vlasnik: %s.", Vozilo[vehid][vVlasnik]);
         }
      }[/pawn]
[pawn]stock PrivatnoVozilo(vehid)
{
   for(new i = 0; i < sizeof(Vozilo); i++)
   {
      if(vehid == Vozilo[vID])   
      return 1;
   }
   return 0;
}[/pawn]

EDIT: Ova poruka za cenu i to mi izbaci lepo (dok nisam nesto cackao), sad mi za svako vozilo izbacuje kao da ima vlasnika... A za ovo sto ima vlasnika ne pise vlasnik: Nobody_Amx. nego Vlasnik: .
Naslov: Odg: Potrebna pomoc oko COS
Poruka od: Paul Castellano poslato Jul 08, 2018, 22:11:28 POSLE PODNE
[pawn]stock PrivatnoVozilo(vehid)
{
   for(new i = 0; i < sizeof(Vozilo); i++)
   {
      if(vehid == Vozilo[vID])   
      return i;
   }
   return 0;
}
[/pawn]
Naslov: Odg: Potrebna pomoc oko COS
Poruka od: 6YuKiMuRo9 poslato Jul 08, 2018, 22:12:45 POSLE PODNE
Citat: Paul Castellano poslato Jul 08, 2018, 22:11:28 POSLE PODNE
[pawn]stock PrivatnoVozilo(vehid)
{
   for(new i = 0; i < sizeof(Vozilo); i++)
   {
      if(vehid == Vozilo[vID])   
      return vehid;
   }
   return 0;
}
[/pawn]
Vidis... tacno sitnice ne gledam... Odma sam skuzio cim sam drugi put pogledao... Tacno bi pravio sve ispocetka radi toga,,, hvala puno brt <3
Naslov: Odg: Potrebna pomoc oko COS
Poruka od: Paul Castellano poslato Jul 08, 2018, 22:13:53 POSLE PODNE
Citat: 6YuKiMuRo9 poslato Jul 08, 2018, 22:12:45 POSLE PODNE
Vidis... tacno sitnice ne gledam... Odma sam skuzio cim sam drugi put pogledao... Tacno bi pravio sve ispocetka radi toga,,, hvala puno brt <3
Ispravio sam sada,ide i;

Jer vehid bi samo vratilo istu vrijednost koju gore svakako dobivaš.
Naslov: Odg: Potrebna pomoc oko COS
Poruka od: 6YuKiMuRo9 poslato Jul 08, 2018, 22:14:40 POSLE PODNE
Citat: Paul Castellano poslato Jul 08, 2018, 22:13:53 POSLE PODNE
Ispravio sam sada,ide i;

Jer vehid bi samo vratilo istu vrijednost koju gore svakako dobivaš.
Sam sam ispravio to, hvala svakako <3

Msm... Imam sertifikat iz C jezika nego vidis no lajfam skriptanje par dana dosta stvari sam uradio jos upis u srednju...slabo spavam i uopce nemam volje da idem sve red po red da gledam