SA-MP Forums Archive
House Info Files Loading Not Working - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+---- Forum: Help Archive (https://sampforum.blast.hk/forumdisplay.php?fid=89)
+---- Thread: House Info Files Loading Not Working (/showthread.php?tid=98238)



House Info Files Loading Not Working - Badger(new) - 19.09.2009

Hi. I'm making a house script where you can buy houses and the information is saved into files.
The info is then loaded from the files when the server restarts, so restarting the server wont affect who owns a house or who rents a room in it.

For some reason, the loading doesn't work. I've check and NO information is loaded, but it is in the files.

Here is the loading part:
pawn Код:
//FUNCTION: Load Saved Houses
public OnHouseLoad(houseid)
{
    new loc[128],data[128],string[128],sdata[128];
    format(loc,128,"/Houses/%d.txt",houseid);
    if(fexist(loc))
    {
      new File:HFILE=fopen(loc,io_read);
      while(fread(HFILE,data,128))
      {
        format(string,sizeof(string),"Cost: ");{if(strfind(data,string,true)!=-1)strmid(sdata,data,strlen(string)+1,strlen(data)-1);HousePic[houseid][Cost]=strval(sdata);}
        format(string,sizeof(string),"Rent: ");{if(strfind(data,string,true)!=-1)strmid(sdata,data,strlen(string)+1,strlen(data)-1);HousePic[houseid][Rent]=strval(sdata);}
        format(string,sizeof(string),"PickupX: ");{if(strfind(data,string,true)!=-1)strmid(sdata,data,strlen(string)+1,strlen(data)-1);HousePic[houseid][PickupX]=floatstr(sdata);}
        format(string,sizeof(string),"PickupY: ");{if(strfind(data,string,true)!=-1)strmid(sdata,data,strlen(string)+1,strlen(data)-1);HousePic[houseid][PickupY]=floatstr(sdata);}
        format(string,sizeof(string),"PickupZ: ");{if(strfind(data,string,true)!=-1)strmid(sdata,data,strlen(string)+1,strlen(data)-1);HousePic[houseid][PickupZ]=floatstr(sdata);}
        format(string,sizeof(string),"InsideX: ");{if(strfind(data,string,true)!=-1)strmid(sdata,data,strlen(string)+1,strlen(data)-1);HousePic[houseid][InsideX]=floatstr(sdata);}
        format(string,sizeof(string),"InsideY: ");{if(strfind(data,string,true)!=-1)strmid(sdata,data,strlen(string)+1,strlen(data)-1);HousePic[houseid][InsideY]=floatstr(sdata);}
        format(string,sizeof(string),"InsideZ: ");{if(strfind(data,string,true)!=-1)strmid(sdata,data,strlen(string)+1,strlen(data)-1);HousePic[houseid][InsideZ]=floatstr(sdata);}
        format(string,sizeof(string),"Interior: ");{if(strfind(data,string,true)!=-1)strmid(sdata,data,strlen(string)+1,strlen(data)-1);HousePic[houseid][InteriorID]=strval(sdata);}
        format(string,sizeof(string),"OutsideX: ");{if(strfind(data,string,true)!=-1)strmid(sdata,data,strlen(string)+1,strlen(data)-1);HousePic[houseid][OutsideX]=floatstr(sdata);}
        format(string,sizeof(string),"OutsideY: ");{if(strfind(data,string,true)!=-1)strmid(sdata,data,strlen(string)+1,strlen(data)-1);HousePic[houseid][OutsideY]=floatstr(sdata);}
        format(string,sizeof(string),"OutsideZ: ");{if(strfind(data,string,true)!=-1)strmid(sdata,data,strlen(string)+1,strlen(data)-1);HousePic[houseid][OutsideZ]=floatstr(sdata);}
        format(string,sizeof(string),"Ownable: ");{if(strfind(data,string,true)!=-1)strmid(sdata,data,strlen(string)+1,strlen(data)-1);HousePic[houseid][Ownable]=strval(sdata);}
        format(string,sizeof(string),"Owned: ");{if(strfind(data,string,true)!=-1)strmid(sdata,data,strlen(string)+1,strlen(data)-1);HousePic[houseid][Owned]=strval(sdata);}
        format(string,sizeof(string),"OwnerName: ");{if(strfind(data,string,true)!=-1)strmid(sdata,data,strlen(string)+1,strlen(data)-1);strmid(HousePic[houseid][OwnerName],sdata,0,strlen(sdata));}
        format(string,sizeof(string),"GuestRooms: ");{if(strfind(data,string,true)!=-1)strmid(sdata,data,strlen(string)+1,strlen(data)-1);HousePic[houseid][GuestRooms]=strval(sdata);}
        format(string,sizeof(string),"Guest1: ");{if(strfind(data,string,true)!=-1)strmid(sdata,data,strlen(string)+1,strlen(data)-1);strmid(HousePic[houseid][Guest1],sdata,0,strlen(sdata));}
        format(string,sizeof(string),"Guest2: ");{if(strfind(data,string,true)!=-1)strmid(sdata,data,strlen(string)+1,strlen(data)-1);strmid(HousePic[houseid][Guest2],sdata,0,strlen(sdata));}
        format(string,sizeof(string),"Guest3: ");{if(strfind(data,string,true)!=-1)strmid(sdata,data,strlen(string)+1,strlen(data)-1);strmid(HousePic[houseid][Guest3],sdata,0,strlen(sdata));}
        format(string,sizeof(string),"Guest4: ");{if(strfind(data,string,true)!=-1)strmid(sdata,data,strlen(string)+1,strlen(data)-1);strmid(HousePic[houseid][Guest4],sdata,0,strlen(sdata));}
        format(string,sizeof(string),"Guest5: ");{if(strfind(data,string,true)!=-1)strmid(sdata,data,strlen(string)+1,strlen(data)-1);strmid(HousePic[houseid][Guest5],sdata,0,strlen(sdata));}
        format(string,sizeof(string),"Guest6: ");{if(strfind(data,string,true)!=-1)strmid(sdata,data,strlen(string)+1,strlen(data)-1);strmid(HousePic[houseid][Guest6],sdata,0,strlen(sdata));}
        format(string,sizeof(string),"Guest7: ");{if(strfind(data,string,true)!=-1)strmid(sdata,data,strlen(string)+1,strlen(data)-1);strmid(HousePic[houseid][Guest7],sdata,0,strlen(sdata));}
        format(string,sizeof(string),"Guest8: ");{if(strfind(data,string,true)!=-1)strmid(sdata,data,strlen(string)+1,strlen(data)-1);strmid(HousePic[houseid][Guest8],sdata,0,strlen(sdata));}
        format(string,sizeof(string),"Guest9: ");{if(strfind(data,string,true)!=-1)strmid(sdata,data,strlen(string)+1,strlen(data)-1);strmid(HousePic[houseid][Guest9],sdata,0,strlen(sdata));}
        format(string,sizeof(string),"Guest10: ");{if(strfind(data,string,true)!=-1)strmid(sdata,data,strlen(string)+1,strlen(data)-1);strmid(HousePic[houseid][Guest10],sdata,0,strlen(sdata));}
      }
      fclose(HFILE);
      DestroyPickup(HousePic[houseid][PickupID]);
      HousePic[houseid][PickupID]=CreatePickup(1272,1,HousePic[houseid][PickupX],HousePic[houseid][PickupY],HousePic[houseid][PickupZ]);
      if(HousePic[houseid][OwnerName]==0)format(HousePic[houseid][OwnerName],128,"None");
      if(HousePic[houseid][Guest1]==0)format(HousePic[houseid][Guest1],128,"None");
      if(HousePic[houseid][Guest2]==0)format(HousePic[houseid][Guest2],128,"None");
      if(HousePic[houseid][Guest3]==0)format(HousePic[houseid][Guest3],128,"None");
      if(HousePic[houseid][Guest4]==0)format(HousePic[houseid][Guest4],128,"None");
      if(HousePic[houseid][Guest5]==0)format(HousePic[houseid][Guest5],128,"None");
      if(HousePic[houseid][Guest6]==0)format(HousePic[houseid][Guest6],128,"None");
      if(HousePic[houseid][Guest7]==0)format(HousePic[houseid][Guest7],128,"None");
      if(HousePic[houseid][Guest8]==0)format(HousePic[houseid][Guest8],128,"None");
      if(HousePic[houseid][Guest9]==0)format(HousePic[houseid][Guest9],128,"None");
      if(HousePic[houseid][Guest10]==0)format(HousePic[houseid][Guest10],128,"None");
    }
    return 1;
}



Re: House Info Files Loading Not Working - Joe Staff - 19.09.2009

Why are you using format in the load?
You could just do 'strfind(data,"Cost: ", true)" or even better '!strcmp(data,"Cost:",true,5)'


Re: House Info Files Loading Not Working - MadeMan - 19.09.2009

When using strmid fill out the last parameter also. 255 for example.

pawn Код:
strmid(sdata,data,strlen(string)+1,strlen(data)-1, 255)



Re: House Info Files Loading Not Working - Badger(new) - 19.09.2009

I use format, so I get the lengh of "string" in strmid.

I added ",128" to the end of strmid, but it still loads no information.


Re: House Info Files Loading Not Working - MadeMan - 19.09.2009

Not sure if it helps, but this is how I would do it:

pawn Код:
if(strfind(data,"Cost: ",true)!=-1){strmid(sdata,data,6,strlen(data)-1,128);HousePic[houseid][Cost]=strval(sdata);}
You can count strlen yourself. For "Cost: " it's 6. So you don't need to format. And I put the "{" bracket after the if statement.


Re: House Info Files Loading Not Working - Annihalation - 19.09.2009

I use Dini, and all my stuff loads perfectly. I used it for my business FS and it all worked fine. get dini Here. It makes reading from and writing to files SO much easier :P


Re: House Info Files Loading Not Working - Joe Staff - 19.09.2009

Quote:
Originally Posted by Annihalation
I use Dini, and all my stuff loads perfectly. I used it for my business FS and it all worked fine. get dini Here. It makes reading from and writing to files SO much easier :P
But surprisingly inefficient, I always suggest making your own stuff, the One-Size-Fits-All Lazy scripts you find on this site are generally inefficient for the exact thing you want. Only issue is you're gonna need to know what you're doing.


Re: House Info Files Loading Not Working - Badger(new) - 19.09.2009

Exactly! I hate people telling me to just copy from scripts. If everyone did that, we'd all have the same servers. Besides, the only problem I have with making it myself is when it doesn't work, which CAN be fixed. It's also a great way to get experiance.

Also, I changed strlen(string)+1 for some of them to the lengh of the format e.g. "Cost: " +1, but still no information is loaded .


Re: House Info Files Loading Not Working - Annihalation - 19.09.2009

I brought up dini because I don't know how long he's been coding. I use dini because it saves me time from coding my own "fread" loops. Besides, I've never had a memory problem or anything with Dini... :P But yes, I do agree. If you know what you're doing, then make your own system.


Re: House Info Files Loading Not Working - Badger(new) - 19.09.2009

I wasn't talking about you as someone who tells me to copy scripts, incase you think I was.

But it still doesn't save any information. Which means me trying to change any information wont work, as everything but what I'm changing will be 0.