Приступим к написанию.
Система довольно таки простая, ничего сложного я в работе не увидел. В начале мода вписываем:
#include <mxINI>
Потом переходим в самый конец мода, и вписываем:
stock GetMoney(playerid) { new money = GetPlayerMoney(playerid); if(PlayerInfo[playerid][pCash] > money) { ResetPlayerMoney(playerid); GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]); return true; } else if(PlayerInfo[playerid][pCash] < money) { ResetPlayerMoney(playerid); GivePlayerMoney(playerid,PlayerInfo[playerid][pCash]); return true; } }
Далее ищем enum с функциями игрока. Как обычно, enum'ы располагаются в начале мода для удобства поиска и смены переменных параметров игрока. У меня он обьявлен, как "pInfo":
enum pInfo { pKey[32], pLevel } new PlayerInfo[MAX_PLAYERS][pInfo];
Ищем такой-же, или похожий enum, и вписываем туда:
pCash,
Если у вас его все еще нету, мы должны создать его. Для этого вписываем в начало мода:
enum pInfo { pCash } new PlayerInfo[MAX_PLAYERS][pInfo];
Теперь мы должны создать функцию загрузки, сохранение и обновления параметров игрока. Для этого идем в конец мода и вписываем:
stock LoadAccount(playerid) { new name[MAX_PLAYER_NAME]; new string; GetPlayerName(playerid, name, sizeof(name)); format(string, sizeof(string), "%s.ini", name); if(fexist(string)) { format(string, sizeof(string), "Files/Players/%s.ini", name); new File = ini_openFile(string); ini_getInteger(File,"Cash",PlayerInfo[playerid][pCash]); ini_closeFile(File); } else if(!fexist(string)) { format(string, sizeof(string), "%s.ini", name); new File = ini_createFile(string); ini_setInteger(File,"Cash",0); ini_closeFile(File); } SpawnPlayer(playerid); } stock SaveAccount(playerid) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); format(string2, sizeof(string2), "%s.ini", name); new File = ini_openFile(string2); ini_setInteger(File,"Cash",PlayerInfo[playerid][pCash]); ini_closeFile (File); }
В public OnPlayerUpdate(playerid) вписываем:
GetMoney(playerid);
Если у вас уже есть паблик с загрузкой аккаунта, вписываем туда:
ini_getInteger(File,"Cash",PlayerInfo[playerid][pCash] );
И в паблик с сохранением вписываем:
ini_setInteger(File,"Cash",PlayerInfo[playerid][pCash] );
Ах да, чуть не забыл. В public OnPlayerRequestClass:
LoadAccount(playerid);
В public OnPlayerDisconnect:
SaveAccount(playerid);
Автор: Неизвестен.