jeffreymcdon
Ученик
Вообщем сделали сохранение здоровья при выходе, и что бы оно давалось при входе ( то есть вышел с 70 ХП, зашел и все равно 70 ХП)
А получается так что при регистрации дает 100 ХП, а когда перезашел дает 1 ХП. и все, как исправить?
Вот код:
А получается так что при регистрации дает 100 ХП, а когда перезашел дает 1 ХП. и все, как исправить?
Вот код:
Код:
enum pInfo
{
pName[MAX_PLAYER_NAME],
pLevel,
pPass[21],
pSex,
pSkin,
pMoney,
pAdmin,
pMail[61],
pAge[41],
Float: Health,
Float: Armour
}
Код:
new Float: healthh[MAX_PLAYERS], Float: armourr[MAX_PLAYERS];
Код:
public OnPlayerDisconnect(playerid, reason)
{
if(Login[playerid] == true)
{
static const ZSQL[] = "UPDATE `accounts` SET `Health` = '%f', `Armour` = '%f' WHERE `Name` = '%d'";
new Float: heal, Float: arm;
new sstring[sizeof(ZSQL) - 6 + 10 + MAX_PLAYER_NAME + 1];
healthh[playerid] = GetPlayerHealth(playerid, heal);
armourr[playerid] = GetPlayerArmour(playerid, arm);
format(sstring, sizeof(sstring), ZSQL, heal, arm, GN(playerid));
mysql_function_query(ConnectMySQL, sstring, false, "", "");
SavePlayer(playerid);
}
KillTimer(TimerReg[playerid]);
return true;
}
Код:
publics OnLogin(i)
{
new rows;
new rows2;
new string[200];
cache_get_data(rows, rows2);
if(rows)
{
cache_get_field_content(0, "Pass", Player[i][pPass], ConnectMySQL, 20);
cache_get_field_content(0, "Mail", Player[i][pMail], ConnectMySQL, 60);
cache_get_field_content(0, "Age", Player[i][pMail], ConnectMySQL, 40);
Player[i][pLevel] = cache_get_field_content_int(0, "Level");
Player[i][pSkin] = cache_get_field_content_int(0, "Skin");
Player[i][pSex] = cache_get_field_content_int(0, "Sex");
Player[i][pMoney] = cache_get_field_content_int(0, "Money");
Player[i][pAdmin] = cache_get_field_content_int(0, "Admin");
healthh[i] = cache_get_field_content_float(0, "Health");
armourr[i] = cache_get_field_content_float(0, "Armour");
Login[i] = true;
SpawnPlayer(i);
}
Код:
stock SetPlayerSpawn(playerid)
{
SetPlayerSkin(playerid, Player[playerid][pSkin]);
SetPlayerScore(playerid, Player[playerid][pLevel]);
SetPlayerHealth(playerid, healthh[playerid]);
SetPlayerArmour(playerid, armourr[playerid]);
if(Player[playerid][pLevel] > 0)
{
SetPlayerPos(playerid, 1062.1937, 2078.4087, 10.8203);
SetPlayerFacingAngle(playerid, 2.4830);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SetCameraBehindPlayer(playerid);
}
}
Код:
stock SavePlayer(i)
{
new scr[128];
new string[320];
f("UPDATE `accounts` SET ");
format(scr, sizeof(scr), "`Level` = '%d',", Player[i][pLevel]);
strcat(string, scr);
format(scr, sizeof(scr), "`Skin` = '%d',", Player[i][pSkin]);
strcat(string, scr);
format(scr, sizeof(scr), "`Sex` = '%d',", Player[i][pSex]);
strcat(string, scr);
format(scr, sizeof(scr), "`Money` = '%d',", Player[i][pMoney]);
strcat(string, scr);
format(scr, sizeof(scr), "`Health` = '%f',", healthh[i]);
strcat(string, scr);
format(scr, sizeof(scr), "`Armour` = '%f',", armourr[i]);
strcat(string, scr);
format(scr, sizeof(scr), "`Admin` = '%d',", Player[i][pAdmin]);
strcat(string, scr);
format(scr,sizeof(scr), "`Mail` = '%s',",Player[i][pMail]);
strcat(string,scr);
format(scr,sizeof(scr), "`Age` = '%d',",Player[i][pAge]);
strcat(string,scr);
format(scr,sizeof(scr), "`Pass` = '%s'",Player[i][pPass]);
strcat(string,scr);
format(scr, sizeof(scr), " WHERE `Name` = '%s'", Player[i][pName]);
strcat(string, scr, sizeof(string));
mysql_function_query(ConnectMySQL, string, false, "", "");
Player[i][pMoney] = Money(i);
mysql_function_query(ConnectMySQL, string, true, "", "");
}
