#1

Hello,
i need advice with this script
pawn Код:
enum house_shop
{
    house_item[128],//1st line
    house_waiting[64],//2nd line
    house_cost[256]//3rd line
}
new House[50][house_shop];

stock SaveHouseInfo(houseid)
{
    new string[16];
    new File:SaveFile = fopen("Houses.txt",io_write);
    for(new i;i<sizeof(House[]);i++)
    {
        format(string,sizeof(string),"%d\r\n",House[houseid][house_shop:i]);
        fwrite(SaveFile,string);
    }
    fclose(SaveFile);
    return 1;
}
Result is:
Код:
56//1st line
85//1st line
96//1st line
..
45//2nd line
12//2nd line
85//2nd line
..
63//3rd line
21//3rd line
58//3rd line
..
Bud I need write like this:
Код:
56 85 96 ...//1st line
45 12 85 ...//1st line
63 21 58 ...//3rd line
This is the bad way
pawn Код:
stock SaveHouseInfo(houseid)
{
    new string[16];
    new File:SaveFile = fopen("Houses.txt",io_write);
    for(new i;i<sizeof(House[]);i++)
    {
        format(string,sizeof(string),"%d ",House[houseid][house_shop:i]);
        fwrite(SaveFile,string);
        if(i == 128 || i == 128+64 || i == 128+64+256) fwrite(SaveFile,"\r\n");
    }
    fclose(SaveFile);
    return 1;
}
I do not want to write this. Is there any function that detects when the enum "line"?
Reply
#2

house_item[128], house_waiting[64],house_cost[256]

This ?
Reply
#3

Quote:
Originally Posted by Lajko1
Посмотреть сообщение
house_item[128], house_waiting[64],house_cost[256]

This ?
Yes, a function that determine the house_item ended and starts house_waiting
Reply
#4

Код:
stock SaveHouseInfo(houseid)
{
    new string[16];
    new k;
    k=0;
    new File:SaveFile = fopen("Houses.txt",io_write);
    for(new i;i<sizeof(House[]);i++)
    {
        format(string,sizeof(string),"%d ",House[houseid][house_shop:i]);
        fwrite(SaveFile,string);
        if(i == 128 || i == 128+64 || i == 128+64+256)
		{
			if(k!=3)
			{
				fwrite(SaveFile,"\r\n");
				k++;
			}
			else
			{
				fwrite(SaveFile,"\r");
				k=0;
			}
		}
    }
    fclose(SaveFile);
    return 1;
}
that should work , if you get error ,i mean one more saved house in the line , make k=1;
Reply
#5

For example, when I will have a very long enum
pawn Код:
enum house_shop
{
house_item[128],
house_waiting[64],
house_cost[256]
item[256]
car[23]
show[128]
owners[16]
colors[32]
weapon[46]
ammo[46]
//many many many items
}
it is very difficult to write:
pawn Код:
if(i == 128 || i == 128+64 || i == 128+64+256 ...)
I wonder if there is something like
pawn Код:
if(IsEnumNewLine(house_shop:i)) // true or false
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)