[Ajuda] Salvando posiзгo "MySql" banco de dados.
#1

Estou com um pequeno probleminha. E que quando salva a posiзгo do player de vez ir as float's "posiзхes" completas, ela fica cortada. Ex: normal assim. "1006.9761", e quando vai pro banco de dados fica assim "1006.98".
OBS: Jб defini as float's no banco de dados e no cod new Floatos[4]; "%f".
Cod
pawn Код:
public MP_OPCPTD(playerid, PlayerText:playertextid)
{
    if(_:playertextid != INVALID_TEXT_DRAW)
    {
        if(CitySelect[playerid] == 1)
        {
            if(playertextid == pCidadeSelect[playerid][0])
            {
                gPlayerCitySelection[playerid]--;
                if(gPlayerCitySelection[playerid] < CITY_LOS_SANTOS)
                {
                    gPlayerCitySelection[playerid] = CITY_LAS_VENTURAS;
                }
                ClassSel_SetupSelectedCity(playerid);
                return 1;
            }
            if(playertextid == pCidadeSelect[playerid][1])
            {
                gPlayerCitySelection[playerid]++;
                if(gPlayerCitySelection[playerid] > CITY_LAS_VENTURAS)
                {
                    gPlayerCitySelection[playerid] = CITY_LOS_SANTOS;
                }
                ClassSel_SetupSelectedCity(playerid);
                return 1;
            }
            if(playertextid == pCidadeSelect[playerid][2])
            {
                new Float:CasAPos[3];
                if(CITY_LOS_SANTOS == gPlayerCitySelection[playerid])
                {
                    CasAPos[0] = 2227.7061;
                    CasAPos[1] = -1262.3152;
                    CasAPos[2] = 23.9186;
                }
                if(CITY_SAN_FIERRO == gPlayerCitySelection[playerid])
                {
                    CasAPos[0] = -2014.1608;
                    CasAPos[1] = 152.9872;
                    CasAPos[2] = 27.6875;
                }
                if(CITY_LAS_VENTURAS == gPlayerCitySelection[playerid])
                {
                    CasAPos[0] = 2026.3300;
                    CasAPos[1] = 1006.9761;
                    CasAPos[2] = 10.8203;
                }
                CitySelect[playerid] = 0;
                mysql_format(mysql, query, sizeof(query), "UPDATE `contas` SET `Cidade` = '%d',`CasaX` = '%f', `CasaY` = '%f', `CasaZ` = '%f' WHERE `usuario` = '%s'",gPlayerCitySelection[playerid],CasAPos[0],CasAPos[1],CasAPos[2], GetName(playerid));
                mysql_function_query(mysql, query, false,"","");
                return 1;
            }
        }
    }
    return 0;
}
Reply
#2

O MySQL arredonda o valor do float pra nгo ter que salvar um monte de nъmeros pingados, pode ficar tranquilo que de 1006.9761 pra 1006.98 nгo vai mudar nada.
Reply
#3

Quote:
Originally Posted by Marlon307
Посмотреть сообщение
Estou com um pequeno probleminha. E que quando salva a posiзгo do player de vez ir as float's "posiзхes" completas, ela fica cortada. Ex: normal assim. "1006.9761", e quando vai pro banco de dados fica assim "1006.98".
OBS: Jб defini as float's no banco de dados e no cod new Floatos[4]; "%f".
Cod
pawn Код:
public MP_OPCPTD(playerid, PlayerText:playertextid)
{
    if(_:playertextid != INVALID_TEXT_DRAW)
    {
        if(CitySelect[playerid] == 1)
        {
            if(playertextid == pCidadeSelect[playerid][0])
            {
                gPlayerCitySelection[playerid]--;
                if(gPlayerCitySelection[playerid] < CITY_LOS_SANTOS)
                {
                    gPlayerCitySelection[playerid] = CITY_LAS_VENTURAS;
                }
                ClassSel_SetupSelectedCity(playerid);
                return 1;
            }
            if(playertextid == pCidadeSelect[playerid][1])
            {
                gPlayerCitySelection[playerid]++;
                if(gPlayerCitySelection[playerid] > CITY_LAS_VENTURAS)
                {
                    gPlayerCitySelection[playerid] = CITY_LOS_SANTOS;
                }
                ClassSel_SetupSelectedCity(playerid);
                return 1;
            }
            if(playertextid == pCidadeSelect[playerid][2])
            {
                new Float:CasAPos[3];
                if(CITY_LOS_SANTOS == gPlayerCitySelection[playerid])
                {
                    CasAPos[0] = 2227.7061;
                    CasAPos[1] = -1262.3152;
                    CasAPos[2] = 23.9186;
                }
                if(CITY_SAN_FIERRO == gPlayerCitySelection[playerid])
                {
                    CasAPos[0] = -2014.1608;
                    CasAPos[1] = 152.9872;
                    CasAPos[2] = 27.6875;
                }
                if(CITY_LAS_VENTURAS == gPlayerCitySelection[playerid])
                {
                    CasAPos[0] = 2026.3300;
                    CasAPos[1] = 1006.9761;
                    CasAPos[2] = 10.8203;
                }
                CitySelect[playerid] = 0;
                mysql_format(mysql, query, sizeof(query), "UPDATE `contas` SET `Cidade` = '%d',`CasaX` = '%f', `CasaY` = '%f', `CasaZ` = '%f' WHERE `usuario` = '%s'",gPlayerCitySelection[playerid],CasAPos[0],CasAPos[1],CasAPos[2], GetName(playerid));
                mysql_function_query(mysql, query, false,"","");
                return 1;
            }
        }
    }
    return 0;
}
Os erros nгo estгo nos cуdigos pawn... provavelmente estб na forma que vocк criou as tables no mysql
Reply
#4

Quote:
Originally Posted by n0minal
Посмотреть сообщение
O MySQL arredonda o valor do float pra nгo ter que salvar um monte de nъmeros pingados, pode ficar tranquilo que de 1006.9761 pra 1006.98 nгo vai mudar nada.
vlw, testei aki e deu certo com.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)