[SOLVED]My floats get nulled ... ?
#1

I have a house system (i taken it out from the Godfather GM) and i have a problem.

Evertytime when i use the callback PropertyUpdate my floats:

HouseInfo[idx][hOutsidex]
HouseInfo[idx][hOutsidey]
HouseInfo[idx][hOutsidez]


Look like this in a file:

1283.000000,-1066.000000,31.000000

Here's my callback:

pawn Code:
public PropertyUpdate()
{
    new idx;
    new File: file2;
    while (idx < sizeof(HouseInfo))
    {
        new coordsstring[256];
        format(coordsstring, sizeof(coordsstring), "%f,%f,%f,%f,%f,%f,%f,%f,%f,%d,%d,%d,%s,%s,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",
        HouseInfo[idx][hEntrancex],
        HouseInfo[idx][hEntrancey],
        HouseInfo[idx][hEntrancez],
        HouseInfo[idx][hExitx],
        HouseInfo[idx][hExity],
        HouseInfo[idx][hExitz],
        HouseInfo[idx][hOutsidex],
        HouseInfo[idx][hOutsidey],
        HouseInfo[idx][hOutsidez],
        HouseInfo[idx][hOrientx],
        HouseInfo[idx][hOrienty],
        HouseInfo[idx][hArmourz],
        HouseInfo[idx][hOwner],
        HouseInfo[idx][hDiscription],
        HouseInfo[idx][hValue],
        HouseInfo[idx][hHel],
        HouseInfo[idx][hArm],
        HouseInfo[idx][hInt],
        HouseInfo[idx][hLock],
        HouseInfo[idx][hOwned],
        HouseInfo[idx][hRooms],
        HouseInfo[idx][hRent],
        HouseInfo[idx][hRentabil],
        HouseInfo[idx][hTakings],
        HouseInfo[idx][hVec],
        HouseInfo[idx][hVcol1],
        HouseInfo[idx][hVcol2],
        HouseInfo[idx][hDate],
        HouseInfo[idx][hLevel],
        HouseInfo[idx][hWorld]);

        HouseInfo[idx][hWorld] = idx;
        if(idx == 0)
        {
            file2 = fopen("houses.cfg", io_write);
        }
        else
        {
            file2 = fopen("houses.cfg", io_append);
        }
        fwrite(file2, coordsstring);
        idx++;
        fclose(file2);
    }
    idx = 0;
    return 1;
}
Please help, thank you.
Reply
#2

What does your HouseInfo enum looks like?
Might be a problem with the way you have defined those three floats...
Reply
#3

use floatround.
Reply
#4

Quote:
Originally Posted by Miokie*
What does your HouseInfo enum looks like?
Might be a problem with the way you have defined those three floats...
Like this:

pawn Code:
enum hInfo
{
    Float:hEntrancex,
    Float:hEntrancey,
    Float:hEntrancez,
    Float:hExitx,
    Float:hExity,
    Float:hExitz,
    Float:hOutsidex,
    Float:hOutsidey,
    Float:hOutsidez,
    hOrientx,
    hOrienty,
    hArmourz,
    hOwner[MAX_PLAYER_NAME],
    hDiscription[MAX_PLAYER_NAME],
    hValue,
    hHel,
    hArm,
    hInt,
    hLock,
    hOwned,
    hRooms,
    hRent,
    hRentabil,
    hTakings,
    hVec,
    hVcol1,
    hVcol2,
    hDate,
    hLevel,
    hWorld,
};
Reply
#5

How do you assign
pawn Code:
HouseInfo[idx][hEntrancex],
HouseInfo[idx][hEntrancey],
HouseInfo[idx][hEntrancez],
their value
Reply
#6

Quote:
Originally Posted by [WsR
RyDeR ]
use floatround.
That's not the solution, that will just round to the nearest integer.
Reply
#7

Quote:
Originally Posted by dice7
How do you assign
pawn Code:
HouseInfo[idx][hEntrancex],
HouseInfo[idx][hEntrancey],
HouseInfo[idx][hEntrancez],
their value
I load them from a file in OnGameModeInit with this:

pawn Code:
public LoadHouses()
{
    new arrCoords[30][64];
    new strFromFile2[256];
    new File: file = fopen("houses.cfg", io_read);
    if (file)
    {
        new idx;
        while (idx < sizeof(HouseInfo))
        {
            fread(file, strFromFile2);
            split(strFromFile2, arrCoords, ',');
            HouseInfo[idx][hEntrancex] = floatstr(arrCoords[0]);
            HouseInfo[idx][hEntrancey] = floatstr(arrCoords[1]);
            HouseInfo[idx][hEntrancez] = floatstr(arrCoords[2]);
            HouseInfo[idx][hExitx] = floatstr(arrCoords[3]);
            HouseInfo[idx][hExity] = floatstr(arrCoords[4]);
            HouseInfo[idx][hExitz] = floatstr(arrCoords[5]);
            HouseInfo[idx][hOutsidex] = strval(arrCoords[6]);
            HouseInfo[idx][hOutsidey] = strval(arrCoords[7]);
            HouseInfo[idx][hOutsidez] = strval(arrCoords[8]);
            HouseInfo[idx][hOrientx] = strval(arrCoords[9]);
            HouseInfo[idx][hOrienty] = strval(arrCoords[10]);
            HouseInfo[idx][hArmourz] = strval(arrCoords[11]);
            strmid(HouseInfo[idx][hOwner], arrCoords[12], 0, strlen(arrCoords[12]), 255);
            strmid(HouseInfo[idx][hDiscription], arrCoords[13], 0, strlen(arrCoords[13]), 255);
            HouseInfo[idx][hValue] = strval(arrCoords[14]);
            HouseInfo[idx][hHel] = strval(arrCoords[15]);
            HouseInfo[idx][hArm] = strval(arrCoords[16]);
            HouseInfo[idx][hInt] = strval(arrCoords[17]);
            HouseInfo[idx][hLock] = strval(arrCoords[18]);
            HouseInfo[idx][hOwned] = strval(arrCoords[19]);
            HouseInfo[idx][hRooms] = strval(arrCoords[20]);
            HouseInfo[idx][hRent] = strval(arrCoords[21]);
            HouseInfo[idx][hRentabil] = strval(arrCoords[22]);
            HouseInfo[idx][hTakings] = strval(arrCoords[23]);
            HouseInfo[idx][hVec] = strval(arrCoords[24]);
            HouseInfo[idx][hVcol1] = strval(arrCoords[25]);
            HouseInfo[idx][hVcol2] = strval(arrCoords[26]);
            HouseInfo[idx][hDate] = strval(arrCoords[27]);
            HouseInfo[idx][hLevel] = strval(arrCoords[28]);
            HouseInfo[idx][hWorld] = strval(arrCoords[29]);
            printf("HouseInfo:%d Owner:%s hTakings %d hVec %d",idx,HouseInfo[idx][hOwner],HouseInfo[idx][hTakings],HouseInfo[idx][hVec]);
            idx++;
        }
        fclose(file);
    }
    return 1;
}
Reply
#8

Nevermind, solved...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)