John_Danilov
29.11.2016, 16:21
Добрый день , столкнулся с такой ситуацией что после рестарта не сохраняются координаты выхода.
Вот команда :
COMMAND:restart(playerid,params[])
{
new string[150];
if(AdminLog[playerid] != 1) return SendClientMessage(playerid,COLOR_FADE1,ADMINLOG);
if(Player[playerid][pAdmin] <= 5) return SendClientMessage(playerid, COLOR_WHITE, "Недостаточно прав");
format(string,sizeof(string),"Администратор %s сделал технический рестарт сервера",Names(playerid));
foreach(Player, i) { SaveAccount(i); }
SendClientMessageToAll(0xFF8C00,string); GameModeExit();
return true;
}
Вот Само сохранение :
function SaveAccount(playerid)
{
if(PlayerLogin[playerid] > 0)
{
CheckMySQLConnection();
new query[256], sqlname[MAX_PLAYER_NAME], sqlpass[64];
new Pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, Pname, sizeof(Pname));
mysql_real_escape_string(Pname, sqlname);
mysql_real_escape_string(Player[playerid][pPass], sqlpass);
new weapon,ammo;
GetPlayerWeaponData(playerid, 1, weapon, ammo);
Player[playerid][pSlot1] = weapon;
Player[playerid][pAmmo1] = ammo;
GetPlayerWeaponData(playerid, 2, weapon, ammo);
Player[playerid][pSlot2] = weapon;
Player[playerid][pAmmo2] = ammo;
GetPlayerWeaponData(playerid, 3, weapon, ammo);
Player[playerid][pSlot3] = weapon;
Player[playerid][pAmmo3] = ammo;
GetPlayerWeaponData(playerid, 4, weapon, ammo);
Player[playerid][pSlot4] = weapon;
Player[playerid][pAmmo4] = ammo;
GetPlayerWeaponData(playerid, 5, weapon, ammo);
Player[playerid][pSlot5] = weapon;
Player[playerid][pAmmo5] = ammo;
GetPlayerWeaponData(playerid, 6, weapon, ammo);
Player[playerid][pSlot6] = weapon;
Player[playerid][pAmmo6] = ammo;
GetPlayerWeaponData(playerid, 7, weapon, ammo);
Player[playerid][pSlot7] = weapon;
Player[playerid][pAmmo7] = ammo;
GetPlayerWeaponData(playerid, 8, weapon, ammo);
Player[playerid][pSlot8] = weapon;
Player[playerid][pAmmo8] = ammo;
GetPlayerWeaponData(playerid, 9, weapon, ammo);
Player[playerid][pSlot9] = weapon;
Player[playerid][pAmmo9] = ammo;
GetPlayerWeaponData(playerid, 10, weapon, ammo);
Player[playerid][pSlot10] = weapon;
Player[playerid][pAmmo10] = ammo;
GetPlayerWeaponData(playerid, 11, weapon, ammo);
Player[playerid][pSlot11] = weapon;
Player[playerid][pAmmo11] = ammo;
new Float:X;
new Float:Y;
new Float:Z;
new Float:R;
new Float:health;
new world = GetPlayerVirtualWorld(playerid);
GetPlayerHealth(playerid, health);
GetPlayerPos(playerid,X,Y,Z);
GetPlayerFacingAngle(playerid, R);
Player[playerid][pCorX] = X;
Player[playerid][pCorY] = Y;
Player[playerid][pCorZ] = Z;
Player[playerid][pCorR] = R;
Player[playerid][pInt] = GetPlayerInterior(playerid);
//
Player[playerid][pWorld] = world;
Player[playerid][p HP] = health;
Player[playerid][pMoney] = GetPlayerCash(playerid);
format(query, sizeof(query), "UPDATE `players` SET `Names` = '%s', `Pass` = '%s' WHERE `ID` = '%i'", sqlname, sqlpass, Player[playerid][pID]);
mysql_query(query);
format(query, sizeof(query), "UPDATE `players` SET `Money` = '%i', `Slot1` = '%i' WHERE `ID` = '%i'", Player[playerid][pMoney],Player[playerid][pSlot1], Player[playerid][pID]);
mysql_query(query);
format(query, sizeof(query), "UPDATE `players` SET `Ammo1` = '%i', `Slot2` = '%i' WHERE `ID` = '%i'", Player[playerid][pAmmo1], Player[playerid][pSlot2], Player[playerid][pID]);
mysql_query(query);
format(query, sizeof(query), "UPDATE `players` SET `Ammo2` = '%i', `Slot3` = '%i' WHERE `ID` = '%i'", Player[playerid][pAmmo2], Player[playerid][pSlot3], Player[playerid][pID]);
mysql_query(query);
format(query, sizeof(query), "UPDATE `players` SET `Ammo3` = '%i', `Slot4` = '%i' WHERE `ID` = '%i'", Player[playerid][pAmmo3], Player[playerid][pSlot4], Player[playerid][pID]);
mysql_query(query);
format(query, sizeof(query), "UPDATE `players` SET `Ammo4` = '%i', `Slot5` = '%i' WHERE `ID` = '%i'", Player[playerid][pAmmo4], Player[playerid][pSlot5], Player[playerid][pID]);
mysql_query(query);
format(query, sizeof(query), "UPDATE `players` SET `Ammo5` = '%i', `Slot6` = '%i' WHERE `ID` = '%i'", Player[playerid][pAmmo5], Player[playerid][pSlot6], Player[playerid][pID]);
mysql_query(query);
format(query, sizeof(query), "UPDATE `players` SET `Ammo6` = '%i', `Slot7` = '%i' WHERE `ID` = '%i'", Player[playerid][pAmmo6], Player[playerid][pSlot7], Player[playerid][pID]);
mysql_query(query);
format(query, sizeof(query), "UPDATE `players` SET `Ammo7` = '%i', `Slot8` = '%i' WHERE `ID` = '%i'", Player[playerid][pAmmo7], Player[playerid][pSlot8], Player[playerid][pID]);
mysql_query(query);
format(query, sizeof(query), "UPDATE `players` SET `Ammo8` = '%i', `Slot9` = '%i' WHERE `ID` = '%i'", Player[playerid][pAmmo8], Player[playerid][pSlot9], Player[playerid][pID]);
mysql_query(query);
format(query, sizeof(query), "UPDATE `players` SET `Ammo9` = '%i', `Slot10` = '%i' WHERE `ID` = '%i'", Player[playerid][pAmmo9], Player[playerid][pSlot10], Player[playerid][pID]);
mysql_query(query);
format(query, sizeof(query), "UPDATE `players` SET `Ammo10` = '%i', `Slot11` = '%i' WHERE `ID` = '%i'", Player[playerid][pAmmo10], Player[playerid][pSlot11], Player[playerid][pID]);
mysql_query(query);
format(query, sizeof(query), "UPDATE `players` SET `Ammo11` = '%i', `HP` = '%f' WHERE `ID` = '%i'", Player[playerid][pAmmo11], Player[playerid][p HP], Player[playerid][pID]);
mysql_query(query);
format(query, sizeof(query), "UPDATE `players` SET `CorX` = '%f', `Hunger` = '%i' WHERE `ID` = '%i'", Player[playerid][pCorX], Player[playerid][pHunger], Player[playerid][pID]);
mysql_query(query);
format(query, sizeof(query), "UPDATE `players` SET `CorY` = '%f', `CorZ` = '%f' WHERE `ID` = '%i'", Player[playerid][pCorY], Player[playerid][pCorZ], Player[playerid][pID]);
mysql_query(query);
format(query, sizeof(query), "UPDATE `players` SET `CorR` = '%f', `Int` = '%i' WHERE `ID` = '%i'", Player[playerid][pCorR], Player[playerid][pInt], Player[playerid][pID]);
mysql_query(query);
}
return 1;
}
Надеюсь на вашу помощь , за ранее спасибо .
Вот команда :
COMMAND:restart(playerid,params[])
{
new string[150];
if(AdminLog[playerid] != 1) return SendClientMessage(playerid,COLOR_FADE1,ADMINLOG);
if(Player[playerid][pAdmin] <= 5) return SendClientMessage(playerid, COLOR_WHITE, "Недостаточно прав");
format(string,sizeof(string),"Администратор %s сделал технический рестарт сервера",Names(playerid));
foreach(Player, i) { SaveAccount(i); }
SendClientMessageToAll(0xFF8C00,string); GameModeExit();
return true;
}
Вот Само сохранение :
function SaveAccount(playerid)
{
if(PlayerLogin[playerid] > 0)
{
CheckMySQLConnection();
new query[256], sqlname[MAX_PLAYER_NAME], sqlpass[64];
new Pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, Pname, sizeof(Pname));
mysql_real_escape_string(Pname, sqlname);
mysql_real_escape_string(Player[playerid][pPass], sqlpass);
new weapon,ammo;
GetPlayerWeaponData(playerid, 1, weapon, ammo);
Player[playerid][pSlot1] = weapon;
Player[playerid][pAmmo1] = ammo;
GetPlayerWeaponData(playerid, 2, weapon, ammo);
Player[playerid][pSlot2] = weapon;
Player[playerid][pAmmo2] = ammo;
GetPlayerWeaponData(playerid, 3, weapon, ammo);
Player[playerid][pSlot3] = weapon;
Player[playerid][pAmmo3] = ammo;
GetPlayerWeaponData(playerid, 4, weapon, ammo);
Player[playerid][pSlot4] = weapon;
Player[playerid][pAmmo4] = ammo;
GetPlayerWeaponData(playerid, 5, weapon, ammo);
Player[playerid][pSlot5] = weapon;
Player[playerid][pAmmo5] = ammo;
GetPlayerWeaponData(playerid, 6, weapon, ammo);
Player[playerid][pSlot6] = weapon;
Player[playerid][pAmmo6] = ammo;
GetPlayerWeaponData(playerid, 7, weapon, ammo);
Player[playerid][pSlot7] = weapon;
Player[playerid][pAmmo7] = ammo;
GetPlayerWeaponData(playerid, 8, weapon, ammo);
Player[playerid][pSlot8] = weapon;
Player[playerid][pAmmo8] = ammo;
GetPlayerWeaponData(playerid, 9, weapon, ammo);
Player[playerid][pSlot9] = weapon;
Player[playerid][pAmmo9] = ammo;
GetPlayerWeaponData(playerid, 10, weapon, ammo);
Player[playerid][pSlot10] = weapon;
Player[playerid][pAmmo10] = ammo;
GetPlayerWeaponData(playerid, 11, weapon, ammo);
Player[playerid][pSlot11] = weapon;
Player[playerid][pAmmo11] = ammo;
new Float:X;
new Float:Y;
new Float:Z;
new Float:R;
new Float:health;
new world = GetPlayerVirtualWorld(playerid);
GetPlayerHealth(playerid, health);
GetPlayerPos(playerid,X,Y,Z);
GetPlayerFacingAngle(playerid, R);
Player[playerid][pCorX] = X;
Player[playerid][pCorY] = Y;
Player[playerid][pCorZ] = Z;
Player[playerid][pCorR] = R;
Player[playerid][pInt] = GetPlayerInterior(playerid);
//
Player[playerid][pWorld] = world;
Player[playerid][p HP] = health;
Player[playerid][pMoney] = GetPlayerCash(playerid);
format(query, sizeof(query), "UPDATE `players` SET `Names` = '%s', `Pass` = '%s' WHERE `ID` = '%i'", sqlname, sqlpass, Player[playerid][pID]);
mysql_query(query);
format(query, sizeof(query), "UPDATE `players` SET `Money` = '%i', `Slot1` = '%i' WHERE `ID` = '%i'", Player[playerid][pMoney],Player[playerid][pSlot1], Player[playerid][pID]);
mysql_query(query);
format(query, sizeof(query), "UPDATE `players` SET `Ammo1` = '%i', `Slot2` = '%i' WHERE `ID` = '%i'", Player[playerid][pAmmo1], Player[playerid][pSlot2], Player[playerid][pID]);
mysql_query(query);
format(query, sizeof(query), "UPDATE `players` SET `Ammo2` = '%i', `Slot3` = '%i' WHERE `ID` = '%i'", Player[playerid][pAmmo2], Player[playerid][pSlot3], Player[playerid][pID]);
mysql_query(query);
format(query, sizeof(query), "UPDATE `players` SET `Ammo3` = '%i', `Slot4` = '%i' WHERE `ID` = '%i'", Player[playerid][pAmmo3], Player[playerid][pSlot4], Player[playerid][pID]);
mysql_query(query);
format(query, sizeof(query), "UPDATE `players` SET `Ammo4` = '%i', `Slot5` = '%i' WHERE `ID` = '%i'", Player[playerid][pAmmo4], Player[playerid][pSlot5], Player[playerid][pID]);
mysql_query(query);
format(query, sizeof(query), "UPDATE `players` SET `Ammo5` = '%i', `Slot6` = '%i' WHERE `ID` = '%i'", Player[playerid][pAmmo5], Player[playerid][pSlot6], Player[playerid][pID]);
mysql_query(query);
format(query, sizeof(query), "UPDATE `players` SET `Ammo6` = '%i', `Slot7` = '%i' WHERE `ID` = '%i'", Player[playerid][pAmmo6], Player[playerid][pSlot7], Player[playerid][pID]);
mysql_query(query);
format(query, sizeof(query), "UPDATE `players` SET `Ammo7` = '%i', `Slot8` = '%i' WHERE `ID` = '%i'", Player[playerid][pAmmo7], Player[playerid][pSlot8], Player[playerid][pID]);
mysql_query(query);
format(query, sizeof(query), "UPDATE `players` SET `Ammo8` = '%i', `Slot9` = '%i' WHERE `ID` = '%i'", Player[playerid][pAmmo8], Player[playerid][pSlot9], Player[playerid][pID]);
mysql_query(query);
format(query, sizeof(query), "UPDATE `players` SET `Ammo9` = '%i', `Slot10` = '%i' WHERE `ID` = '%i'", Player[playerid][pAmmo9], Player[playerid][pSlot10], Player[playerid][pID]);
mysql_query(query);
format(query, sizeof(query), "UPDATE `players` SET `Ammo10` = '%i', `Slot11` = '%i' WHERE `ID` = '%i'", Player[playerid][pAmmo10], Player[playerid][pSlot11], Player[playerid][pID]);
mysql_query(query);
format(query, sizeof(query), "UPDATE `players` SET `Ammo11` = '%i', `HP` = '%f' WHERE `ID` = '%i'", Player[playerid][pAmmo11], Player[playerid][p HP], Player[playerid][pID]);
mysql_query(query);
format(query, sizeof(query), "UPDATE `players` SET `CorX` = '%f', `Hunger` = '%i' WHERE `ID` = '%i'", Player[playerid][pCorX], Player[playerid][pHunger], Player[playerid][pID]);
mysql_query(query);
format(query, sizeof(query), "UPDATE `players` SET `CorY` = '%f', `CorZ` = '%f' WHERE `ID` = '%i'", Player[playerid][pCorY], Player[playerid][pCorZ], Player[playerid][pID]);
mysql_query(query);
format(query, sizeof(query), "UPDATE `players` SET `CorR` = '%f', `Int` = '%i' WHERE `ID` = '%i'", Player[playerid][pCorR], Player[playerid][pInt], Player[playerid][pID]);
mysql_query(query);
}
return 1;
}
Надеюсь на вашу помощь , за ранее спасибо .