04.03.2011, 13:34
pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
new name[MAX_PLAYER_NAME], file[128], Float:x, Float:y, Float:z;
GetPlayerName(playerid, name, sizeof(name));
format(file, sizeof(file), SERVER_USER_FILE, name);
if(gPlayerLogged[playerid] == 1)
{
dini_IntSet(file, "Score", PlayerInfo[playerid][pScore]);
dini_IntSet(file, "Money", PlayerInfo[playerid][pCash]);
dini_IntSet(file, "AdminLevel",PlayerInfo[playerid][pAdminLevel]);
dini_IntSet(file, "WantedLevel",GetPlayerWantedLevel(playerid));
dini_IntSet(file, "Skin", GetPlayerSkin(playerid));
dini_IntSet(file, "Cop", PlayerInfo[playerid][pCop]);
dini_IntSet(file, "Civilian", PlayerInfo[playerid][pCivilian]);
dini_IntSet(file, "FirstTime", PlayerInfo[playerid][pFirstTime] = 1);
GetPlayerPos(playerid, x, y, z);
dini_FloatSet(file, "posX", x);
dini_FloatSet(file, "posY", y);
dini_FloatSet(file, "posZ", z);
}
gPlayerLogged[playerid] = 0;
return 1;
}
public OnPlayerSpawn(playerid)
{
new name[MAX_PLAYER_NAME], file[128], Float:x, Float:y, Float:z;
GetPlayerName(playerid, name, sizeof(name));
format(file, sizeof(file), SERVER_USER_FILE, name);
if(PlayerInfo[playerid][pFirstTime] == 1)
{
PlayerInfo[playerid][pCop] = dini_Int(file, "Cop");
PlayerInfo[playerid][pCivilian] = dini_Int(file, "Civilian");
x = dini_Float(file, "posX");
y = dini_Float(file, "posY");
z = dini_Float(file, "posZ");
SetPlayerPos(playerid, x, y, z);
SetPlayerSkin(playerid,dini_Int(file,"Skin"));
SetPlayerScore(playerid, PlayerInfo[playerid][pScore]);
PlayerInfo[playerid][pAdminLevel] = dini_Int(file, "AdminLevel");
GivePlayerMoney(playerid, dini_Int(file, "Money")-GetPlayerMoney(playerid));
SetPlayerWantedLevel(playerid, dini_Int(file, "WantedLevel"));
SendClientMessage(playerid,COLOR_GREEN, "[SYSTEM]: Logged in.");
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if (dialogid == 1)
{
new name[MAX_PLAYER_NAME], file[128], string[128];
GetPlayerName(playerid, name, sizeof(name));
format(file, sizeof(file), SERVER_USER_FILE, name);
if(!response) return Kick(playerid);
if (!strlen(inputtext)) return
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Register:", "Register please.", "Register", "leave");
dini_Create(file);
dini_IntSet(file, "Password", udb_hash(inputtext));
dini_IntSet(file, "AdminLevel",PlayerInfo[playerid][pAdminLevel] = 0);
dini_IntSet(file, "Money",PlayerInfo[playerid][pCash] = 5000);
dini_IntSet(file, "Score",PlayerInfo[playerid][pScore] = 0);
dini_IntSet(file, "WantedLevel",PlayerInfo[playerid][pWanted] = 0);
dini_IntSet(file, "Skin",PlayerInfo[playerid][pSkin] = 0);
dini_IntSet(file, "Cop",PlayerInfo[playerid][pCop] = -1);
dini_IntSet(file, "Civilian",PlayerInfo[playerid][pCivilian] = -1);
dini_IntSet(file, "FirstTime",PlayerInfo[playerid][pFirstTime] = 0);
format(string, 128, "[SYSTEM]: Registered and logged in.", name, inputtext);
SendClientMessage(playerid, COLOR_YELLOW, string);
gPlayerLogged[playerid] = 1;
}
if (dialogid == 2)
{
new name[MAX_PLAYER_NAME], file[128];
GetPlayerName(playerid, name, sizeof(name));
format(file, sizeof(file), SERVER_USER_FILE, name);
if(!response) return Kick(playerid);
if (!strlen(inputtext)) return ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Login:", "Please login", "Login", "Leave);
new tmp;
tmp = dini_Int(file, "Password");
if(udb_hash(inputtext) != tmp) {
SendClientMessage(playerid, COLOR_RED, "Vale parool!");
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Login:", "Please login", "Login", "Leave);
}
else
{
gPlayerLogged[playerid] = 1;
PlayerInfo[playerid][pCop] = dini_Int(file, "Cop");
PlayerInfo[playerid][pCivilian] = dini_Int(file, "Civilian");
SetPlayerScore(playerid, PlayerInfo[playerid][pScore]);
PlayerInfo[playerid][pAdminLevel] = dini_Int(file, "AdminLevel");
GivePlayerMoney(playerid, dini_Int(file, "Money")-GetPlayerMoney(playerid));
SetPlayerWantedLevel(playerid, dini_Int(file, "WantedLevel"));
SetPlayerSkin(playerid,dini_Int(file,"Skin"));
SendClientMessage(playerid,COLOR_GREEN, "[SYSTEM]: You are logged.");
}
}
return 1;
}