Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Bandit234 poslato Septembar 26, 2021, 13:30:05 POSLE PODNE

Naslov: Ucitavanje kuca
Poruka od: Bandit234 poslato Septembar 26, 2021, 13:30:05 POSLE PODNE
Problem(error/warning): Postoji bug kojeg ne mogu rijesiti. U ocitavanju sve radi bez erora ili warninga ali kuca se ne pojavi(ne ocita).
Deo skripte: [pawn]enum hInfo
{
   hOwned,
   hOwnerName[MAX_PLAYER_NAME],
   hCijena,
   hLevel,
   Float:hUlazX,
   Float:hUlazY,
   Float:hUlazZ,
   Float:hIzlazX,
   Float:hIzlazY,
   Float:hIzlazZ,
   hSef,
   hMoney,
   hDroga,
   hMaterijali,
   hNeaktivnost,
   hVW,
   hInt,
   hLock,
   hRentCijena
};
new HouseInfo[MAX_HOUSES][hInfo];
new hPickup[MAX_HOUSES];
new Text3D:hText[MAX_HOUSES];
stock SaveHouse(id)
{
  new hfile[128];
  format(hfile,sizeof(hfile),HPATH,id);
  new INI:File = INI_Open(hfile);
  INI_WriteInt(File,"Owned",HouseInfo[id][hOwned]);
  INI_WriteString(File,"OwnerName",HouseInfo[id][hOwnerName]);
  INI_WriteInt(File,"Cijena",HouseInfo[id][hCijena]);
  INI_WriteInt(File,"Level",HouseInfo[id][hLevel]);
  INI_WriteFloat(File,"UlazX",HouseInfo[id][hUlazX]);
  INI_WriteFloat(File,"UlazY",HouseInfo[id][hUlazY]);
  INI_WriteFloat(File,"UlazZ",HouseInfo[id][hUlazZ]);
  INI_WriteFloat(File,"IzlazX",HouseInfo[id][hIzlazX]);
  INI_WriteFloat(File,"IzlazY",HouseInfo[id][hIzlazY]);
  INI_WriteFloat(File,"IzlazZ",HouseInfo[id][hIzlazZ]);
  INI_WriteInt(File,"Sef",HouseInfo[id][hSef]);
  INI_WriteInt(File,"Money",HouseInfo[id][hMoney]);
  INI_WriteInt(File,"Materijali",HouseInfo[id][hMaterijali]);
  INI_WriteInt(File,"Int",HouseInfo[id][hInt]);
  INI_WriteInt(File,"VW",HouseInfo[id][hVW]);
  INI_WriteInt(File,"Lock",HouseInfo[id][hLock]);
  INI_WriteInt(File,"RentCijena",HouseInfo[id][hRentCijena]);
  INI_Close(File);
  return 1;
}YCMD:kreirajkucu(playerid,params[],help)
{
   new id,level,cijena,vrsta,Float:x,Float:y,Float:z, niko[MAX_PLAYER_NAME];
   format(niko, sizeof(niko),"Niko");
   if(PlayerInfo[playerid][pAdmin] >= 5 && Aduty[playerid] == 1 || IsPlayerAdmin(playerid))
   {
       if(sscanf(params,"dddd",id,cijena,level,vrsta))return SCM(playerid,plava,"/kreirajkucu: [ id ] [ cijena ] [ level ] [ vrsta ]");
      {
         SCM(playerid,plava,"Vrsta 1 - Mala kuca | Vrsta 2 - Srednja kuca | Vrsta 3 - Velika kuca | Vrsta 4 - Vila");
          if(cijena < 1)return SCM(playerid,crvena,"Cijena ne moze biti manja od 1$");
         else if (level < 1)return SCM(playerid,crvena,"Level ne moze biti manji od 1!");
         else if(vrsta < 1 || vrsta > 1)return SCM(playerid,crvena,"Vrsta moze biti samo 1 do 4");
         else if(id < 0 )return SCM(playerid,crvena,"ID kuce ne moze biti manji od 1!");
         GetPlayerPos(playerid,x,y,z);
         HouseInfo[id][hUlazX] = x;
         HouseInfo[id][hUlazY] = y;
         HouseInfo[id][hUlazZ] = z;
         HouseInfo[id][hCijena] = cijena;
         HouseInfo[id][hLevel] = level;
         HouseInfo[id][hOwned] = 0;
         HouseInfo[id][hOwnerName] = niko;
         HouseInfo[id][hSef] = 0;
         HouseInfo[id][hMoney] = 0;
         HouseInfo[id][hMaterijali] = 0;
         HouseInfo[id][hNeaktivnost] = 0;
         HouseInfo[id][hLock] = 1;
         HouseInfo[id][hRentCijena] = 0;
         HouseInfo[id][hVW] = id;
         if(vrsta == 1)
         {
          HouseInfo[id][hInt] = 1;
          HouseInfo[id][hIzlazX] = 244.411987;
          HouseInfo[id][hIzlazY] = 305.032989;
          HouseInfo[id][hIzlazZ] = 999.148437;
         }
         else if(vrsta == 2)
         {
           HouseInfo[id][hInt] = 2;
          HouseInfo[id][hIzlazX] = 225.756989;
          HouseInfo[id][hIzlazY] = 1240.000000;
          HouseInfo[id][hIzlazZ] = 1082.149902;
         }
         else if(vrsta == 3)
         {
           HouseInfo[id][hInt] = 7;
          HouseInfo[id][hIzlazX] = 225.630997;
          HouseInfo[id][hIzlazY] = 1022.479980;
          HouseInfo[id][hIzlazZ] = 1084.069946;
         }
         else if(vrsta == 4)
         {
           HouseInfo[id][hInt] = 5;
          HouseInfo[id][hIzlazX] = 1299.14;
          HouseInfo[id][hIzlazY] = -794.77;
          HouseInfo[id][hIzlazZ] = 1084.00;
         }
           SaveHouse(id);
           new str[128]; format(str,sizeof(str),"Kuca na prodaju\nVlasnik: Niko\nCijena: %d\nLevel: %d\nAdresa: %d",HouseInfo[id][hCijena],HouseInfo[id][hLevel],id);
         hPickup[id] = CreateDynamicPickup(1273,0,HouseInfo[id][hUlazX],HouseInfo[id][hUlazY],HouseInfo[id][hUlazZ],0);
            hText[id] = Create3DTextLabel(str,plava,HouseInfo[id][hUlazX],HouseInfo[id][hUlazY],HouseInfo[id][hUlazZ],3.0,0,0);
      }


   }
   else
   {
    SCM(playerid,crvena,"Niste ovlasteni da korstite ovu komandu!");

   }
   
   return 1;
}

YCMD:kupikucu(playerid,params[],help)
{
   new ime[MAX_PLAYER_NAME];
   for(new id = 0; id < MAX_HOUSES; id++)
   {
     if(IsPlayerInRangeOfPoint(playerid,2.0,HouseInfo[id][hUlazX],HouseInfo[id][hUlazY],HouseInfo[id][hUlazZ]))
     {
        if(PlayerInfo[playerid][pKuca] != -1)return SCM(playerid,crvena,"Vec imate kucu!");
        if(GetPlayerMoney(playerid) < HouseInfo[id][hCijena])return SCM(playerid,crvena,"Nemate dovoljno novca ne mozete kupiti ovu kucu!");
        if(PlayerInfo[playerid][pLevel] < HouseInfo[id][hLevel])return SCM(playerid,crvena,"Ne mozete kupiti kucu nemate dovoljan level!");
        GetPlayerName(playerid,ime,sizeof(ime));
        GivePlayerMoney(playerid,-HouseInfo[id][hCijena]);
        HouseInfo[id][hOwned] = 1;
        HouseInfo[id][hOwnerName] = ime;
        Delete3DTextLabel(hText[id]);
        DestroyDynamicPickup(hPickup[id]);
        PlayerInfo[playerid][pKuca] = id;
        new str[128]; format(str,sizeof(str),"Vlasnik: %s\nCijena: %d\nLevel: %d\nAdresa: %d",HouseInfo[id][hOwnerName],HouseInfo[id][hCijena],HouseInfo[id][hLevel],id);
        hText[id] = Create3DTextLabel(str,plava,HouseInfo[id][hUlazX],HouseInfo[id][hUlazY],HouseInfo[id][hUlazZ],3.0,0,0);
        hPickup[id] = CreateDynamicPickup(1272,0,HouseInfo[id][hUlazX],HouseInfo[id][hUlazY],HouseInfo[id][hUlazZ],0);
        SaveHouse(id);
       
     }
   }
   return 1;
}
for(new i = 0; i < MAX_HOUSES; i++)
   {
       new hfile[128];
       format(hfile,sizeof(hfile),HPATH,i);
       if(fexist(hfile))
       {
             INI_ParseFile(hfile,"LoadHouse_data",.bExtra = true, .extra = i);
          if(HouseInfo[hOwned] == 0)
          {
            new str[128]; format(str,sizeof(str),"Kuca na prodaju\nVlasnik: Niko\nCijena: %d\nLevel: %d\nAdresa: %d",HouseInfo[hCijena],HouseInfo[hLevel],i);
            hText = Create3DTextLabel(str,plava,HouseInfo[hUlazX],HouseInfo[hUlazY],HouseInfo[hUlazZ],3.0,0,0);
            hPickup = CreateDynamicPickup(1273,0,HouseInfo[hUlazX],HouseInfo[hUlazY],HouseInfo[hUlazZ],0);
          }
          if(HouseInfo[hOwned] == 1)
          {
                  new str[128]; format(str,sizeof(str),"Vlasnik: %s\nCijena: %d\nLevel: %d\nAdresa: %d",HouseInfo[hOwnerName],HouseInfo[hCijena],HouseInfo[hLevel],i);
            hText = Create3DTextLabel(str,plava,HouseInfo[hUlazX],HouseInfo[hUlazY],HouseInfo[hUlazZ],3.0,0,0);
            hPickup = CreateDynamicPickup(1272,0,HouseInfo[hUlazX],HouseInfo[hUlazY],HouseInfo[hUlazZ],0);
          }
      
       }

   }[/pawn]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
Vaš odgovor
Naslov: Odg: Ucitavanje kuca
Poruka od: Fergosonn poslato Septembar 26, 2021, 17:09:08 POSLE PODNE
Kako ces da ti loada kucu kad u ovom kodu to nepostoi???
Naslov: Odg: Ucitavanje kuca
Poruka od: Bandit234 poslato Septembar 26, 2021, 17:56:23 POSLE PODNE
[pawn]for(new i = 0; i < MAX_HOUSES; i++)
   {
       new hfile[128];
       format(hfile,sizeof(hfile),HPATH,i);
       if(fexist(hfile))
       {
             INI_ParseFile(hfile,"LoadHouse_data",.bExtra = true, .extra = i);
          if(HouseInfo[hOwned] == 0)
          {
            new str[128]; format(str,sizeof(str),"Kuca na prodaju\nVlasnik: Niko\nCijena: %d\nLevel: %d\nAdresa: %d",HouseInfo[hCijena],HouseInfo[hLevel],i);
            hText = Create3DTextLabel(str,plava,HouseInfo[hUlazX],HouseInfo[hUlazY],HouseInfo[hUlazZ],3.0,0,0);
            hPickup = CreateDynamicPickup(1273,0,HouseInfo[hUlazX],HouseInfo[hUlazY],HouseInfo[hUlazZ],0);
          }
          if(HouseInfo[hOwned] == 1)
          {
                  new str[128]; format(str,sizeof(str),"Vlasnik: %s\nCijena: %d\nLevel: %d\nAdresa: %d",HouseInfo[hOwnerName],HouseInfo[hCijena],HouseInfo[hLevel],i);
            hText = Create3DTextLabel(str,plava,HouseInfo[hUlazX],HouseInfo[hUlazY],HouseInfo[hUlazZ],3.0,0,0);
            hPickup = CreateDynamicPickup(1272,0,HouseInfo[hUlazX],HouseInfo[hUlazY],HouseInfo[hUlazZ],0);
          }
      
       }

   }[/pawn]
Naslov: Odg: Ucitavanje kuca
Poruka od: Bandit234 poslato Septembar 26, 2021, 18:16:39 POSLE PODNE
Rijeseno LOCK!