PHP код:
#include <a_samp>
#include <mxINI>
#define COLOR_RED 0xF60000AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_GREY 0xAFAFAFAA
forward SaveAccounts(playerid);
enum pInfo {
pName,
pSkin,
pLvl,
pMoney,
Float:pHeal,
Float:pArmour,
Kills,
Deaths
};
new PlayerInfo[MAX_PLAYERS][pInfo];
new logged[MAX_PLAYERS];
new saveacctimer;
main(){}
public OnGameModeInit()
{
//saveacctimer = SetTimer("SaveAccounts", 200000, 1);
return 1;
}
public OnGameModeExit()
{
KillTimer(saveacctimer);
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
return 1;
}
public OnPlayerConnect(playerid)
{
logged[playerid]=0;
GetPlayerName(playerid,PlayerInfo[playerid][pName],30);
new account[30+9+4];
format(account,sizeof(account),"accounts/%s.ini",PlayerInfo[playerid][pName]);
if(fexist(account))
{
new s[256];
format(s,sizeof(s),"{cccccc}________________________________________\n\n Добро пожаловать на сервер \n Этот аккаунт зарегистрирован\n\nВаш логин: {ffffff}%s\n{cccccc}Введите пароль:\n________________________________________",PlayerInfo[playerid][pName]);
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT, "Авторизация",s, "Войти", "Отмена");
}
else
{
/*new s[256];
format(s,sizeof(s),"{cccccc}________________________________________\n\n Добро пожаловать на сервер Aurum-RP\n Регистрация нового персонажа\n\nВаш логин: {ffffff}Anton_Hristovsky\n{cccccc}Придумайте пароль:\n________________________________________",PlayerName);
ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT, "Регистрация",s, "Войти", "Отмена");*/
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
logged[playerid]=0;
return 1;
}
public OnPlayerSpawn(playerid)
{
logged[playerid] = 1;
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
PlayerInfo[killerid][Kills]++;
PlayerInfo[playerid][Deaths]++;
return 1;
}
public OnVehicleSpawn(vehicleid)
{
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
public OnPlayerText(playerid, text[])
{
if(logged[playerid] == 0)
{
SendClientMessage(playerid, COLOR_RED, "Ошибка: Вам не доступен чат.");
return 0;
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/m", cmdtext, true, 10) == 0)
{
AddStaticVehicle(500,0,0,3, 82.2873, 0, 1);
return 1;
}
return 0;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}
public OnRconCommand(cmd[])
{
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
return 1;
}
public OnObjectMoved(objectid)
{
return 1;
}
public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}
public OnVehicleMod(playerid, vehicleid, componentid)
{
return 1;
}
public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
return 1;
}
public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}
public OnPlayerExitedMenu(playerid)
{
return 1;
}
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
return 1;
}
public OnRconLoginAttempt(ip[], password[], success)
{
return 1;
}
public OnPlayerUpdate(playerid)
{
return 1;
}
public OnPlayerStreamIn(playerid, forplayerid)
{
return 1;
}
public OnPlayerStreamOut(playerid, forplayerid)
{
return 1;
}
public OnVehicleStreamIn(vehicleid, forplayerid)
{
return 1;
}
public OnVehicleStreamOut(vehicleid, forplayerid)
{
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 1)
{
if(response)
{
if(!strlen(inputtext))
{
new s[256];
format(s,sizeof(s),"{cccccc}________________________________________\n\n Добро пожаловать на сервер \n Этот аккаунт зарегистрирован\n\nВаш логин: {ffffff}%s\n{cccccc}Введите пароль:\n________________________________________",PlayerInfo[playerid][pName]);
SendClientMessage(playerid, COLOR_GREY, "Ошибка {#111}: Поле не может быть пустым.");
return ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT, "Авторизация",s, "Войти", "Отмена");
}
new password[64],account[128];
format(account,sizeof(account),"accounts/%s.ini",PlayerInfo[playerid][pName]);
//if(IsPlayerNPC(playerid))return 1;
new iniFile = ini_openFile(account);
ini_getString(iniFile, "Password",password);
if(!strcmp(inputtext, password, true))
{
ini_getInteger(iniFile, "Skin", PlayerInfo[playerid][pSkin]);
ini_getInteger(iniFile, "Lvl", PlayerInfo[playerid][pLvl]);
ini_getInteger(iniFile, "Money", PlayerInfo[playerid][pMoney]);
SendClientMessage(playerid, COLOR_RED, PlayerInfo[playerid][pMoney]);
ini_getFloat(iniFile, "Heal", PlayerInfo[playerid][pHeal]);
ini_getFloat(iniFile, "Armour", PlayerInfo[playerid][pArmour]);
ini_getInteger(iniFile,"Kills", PlayerInfo[playerid][Kills]);
ini_getInteger(iniFile,"Deaths", PlayerInfo[playerid][Deaths]);
SetPlayerScore(playerid, PlayerInfo[playerid][pLvl]);
GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
SetPlayerHealth(playerid, PlayerInfo[playerid][pHeal]);
SetPlayerArmour(playerid, PlayerInfo[playerid][pArmour]);
SetSpawnInfo(playerid,0,PlayerInfo[playerid][pSkin],10.0000,-100.0000,5.0000,10.0000,0,0,0,0,0,0);
ini_closeFile(iniFile);
TogglePlayerSpectating(playerid, false);
SpawnPlayer(playerid);
return 1;
}
else
{
new s[256];
format(s,sizeof(s),"{cccccc}________________________________________\n\n Добро пожаловать на сервер \n Этот аккаунт зарегистрирован\n\nВаш логин: {ffffff}%s\n{cccccc}Введите пароль:\n________________________________________",PlayerInfo[playerid][pName]);
SendClientMessage(playerid, COLOR_GREY, "Ошибка {#112}: Вы ввели неверный пароль.");
return ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT, "Авторизация",s, "Войти", "Отмена");
}
}
else
{
new s[256];
format(s,sizeof(s),"{cccccc}________________________________________\n\n Добро пожаловать на сервер \n Этот аккаунт зарегистрирован\n\nВаш логин: {ffffff}%s\n{cccccc}Введите пароль:\n________________________________________",PlayerInfo[playerid][pName]);
return ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT, "Авторизация",s, "Войти", "Отмена");
}
}
/*if(dialogid == 2) //???????????
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "???????????", "?? ??????????????? ?? ???! \n?????? ????:", "??", "");
if(response)
{
new PlayerName[MAX_PLAYER_NAME];
GetPlayerName(playerid,PlayerName,sizeof(PlayerName)); //?????? ??? ??????
new account[128];
format(account,sizeof(account),"users/%s.ini",PlayerName);//?????????. ???? ?? ???? ??? ? ????? users
if(fexist(account)) return ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT, "???????????", "???????????! \n ?????? ????:", "?????", ""); //?????????? ???, ???? ???? ???
new iniFile = ini_createFile(account); //??????? ???
if(iniFile < 0) ini_openFile (account); //???? ???? ??????, ??
{
ini_setString(iniFile,"Password",inputtext); //??????
ini_setInteger(iniFile, "Skin", 206);
ini_setInteger(iniFile, "Money", 5000); // ??????? ???? ???????? ? ???-??? ????? 5000
ini_setFloat(iniFile, "Heal", 100.0); // ??????? ???? ???????? ? ???-??? ????????
ini_setFloat(iniFile, "Armour", 100.0); // ??????? ???? ???????? ? ???-??? ?????
ini_setInteger(iniFile, "Kills", 0); // ?? ??? ????????
ini_setInteger(iniFile, "Deaths", 0); // ??????
ini_closeFile(iniFile); //??????? ????
ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT, "???????????", "???????????:", "?????", "");
}
}
else //???? ???? ???? ??????? ?????? ???? ? ?????? ?? Esc, ?? ???? ??? ????? ??????
{
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "???????????", "?????????????, ?????:", "??", "");
}
}*/
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}
/*public SaveAccounts(playerid)
{
for(new i=0; i<MAX_PLAYERS; i++)
{
new PlayerName[MAX_PLAYER_NAME], account[128];
GetPlayerName(i,PlayerName,sizeof(PlayerName));
format(account,sizeof(account), "users/%s.ini", PlayerName);
new iniFile = ini_openFile(account);
ini_setInteger(iniFile, "Money", GetPlayerMoney(i));
ini_setInteger(iniFile,"Kills", PlayerInfo[i][Kills]);
ini_setInteger(iniFile,"Deaths", PlayerInfo[i][Deaths]);
GetPlayerHealth(i,PlayerInfo[i][pHeal]);
ini_setFloat(iniFile, "Heal", PlayerInfo[i][pHeal]);
GetPlayerArmour(i,PlayerInfo[i][pArmour]);
ini_setFloat(iniFile, "Armour", PlayerInfo[i][pArmour]);
ini_closeFile(iniFile);
SendClientMessage(i, COLOR_WHITE, "Аккаунт сохранён");// ??? ????? ???????
}
return 1;
}*/