03.08.2013, 20:06
codigo identado e arrumado:
eu acho melhor usar stock
pawn Код:
//[NsF] Login System
//Feito por Lucas Cota (Brasileiro)
//Nгo retire os crйditos ou sofrerб uma morte bem lenta... '-'
#include <a_samp>
#include <DOF2>
#define DIALOG_REGISTRO 24
#define DIALOG_LOGIN 25
enum PlayerInfo
{
Level, Score, Money, Kill, Death
}
new PlayerData[MAX_PLAYERS][PlayerInfo], PlayerFile[64];
public OnFilterScriptInit()
{
print("--------------------------");
print("[NsF] Login System Loaded!");
print("--------------------------");
return 1;
}
public OnFilterScriptExit()
{
print("--------------------------");
print("[NsF] Login System Loaded!");
print("--------------------------");
DOF2_Exit();
return 1;
}
public OnPlayerConnect(playerid)
{
GetPlayerName(playerid, PlayerFile, sizeof(PlayerFile));
format(PlayerFile, sizeof(PlayerFile), DOF2_File(PlayerFile));
if(DOF2_FileExists(PlayerFile))
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Vocк jб й registrado(a) em nosso servidor, insira sua senha abaixo para continuar:", "Login", "Cancelar");
}
else
{
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Vocк nгo й registrado(a) em nosso servidor, insira uma senha abaixo para continuar:", "Registrar", "Cancelar");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
GetPlayerName(playerid, PlayerFile, sizeof(PlayerFile));
format(PlayerFile, sizeof(PlayerFile), DOF2_File(PlayerFile));
if(DOF2_FileExists(PlayerFile))
{
GetPlayerScore(PlayerData[playerid][Score]);
GetPlayerMoney(PlayerData[playerid][Money]);
DOF2_SetInt(PlayerFile, "Level", PlayerData[playerid][Level]);
DOF2_SetInt(PlayerFile, "Score", PlayerData[playerid][Score]);
DOF2_SetInt(PlayerFile, "Money", PlayerData[playerid][Money]);
DOF2_SetInt(PlayerFile, "Kill", PlayerData[playerid][Kill]);
DOF2_SetInt(PlayerFile, "Death", PlayerData[playerid][Death]);
DOF2_SaveFile();
}
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
PlayerData[killerid][Kill]++;
PlayerData[playerid][Death]++;
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_REGISTRO)
{
if(response == 0)
{
Kick(playerid);
}
if(!strlen(inputtext))
{
return ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Vocк nгo й registrado(a) em nosso servidor, insira uma senha abaixo para continuar:", "Registrar", "Cancelar");
}
if(response == 1)
{
GetPlayerName(playerid, PlayerFile, sizeof(PlayerFile));
format(PlayerFile, sizeof(PlayerFile), DOF2_File(PlayerFile));
DOF2_CreateFile(PlayerFile, inputtext);
DOF2_SetInt(PlayerFile, "Level", 0);
DOF2_SetInt(PlayerFile, "Score", 0);
DOF2_SetInt(PlayerFile, "Money", 0);
DOF2_SetInt(PlayerFile, "Kill", 0);
DOF2_SetInt(PlayerFile, "Death", 0);
DOF2_SaveFile();
}
}
if(dialogid == DIALOG_LOGIN)
{
if(response == 0)
{
Kick(playerid);
}
if(response == 1)
{
GetPlayerName(playerid, PlayerFile, sizeof(PlayerFile));
format(PlayerFile, sizeof(PlayerFile), DOF2_File(PlayerFile));
if(DOF2_FileExists(PlayerFile))
{
if(DOF2_CheckLogin(PlayerFile, inputtext))
{
PlayerData[playerid][Level] = DOF2_GetInt(PlayerFile, "Level");
PlayerData[playerid][Score] = DOF2_GetInt(PlayerFile, "Score");
PlayerData[playerid][Money] = DOF2_GetInt(PlayerFile, "Money");
PlayerData[playerid][Kill] = DOF2_GetInt(PlayerFile, "Kill");
PlayerData[playerid][Death] = DOF2_GetInt(PlayerFile, "Death");
SetPlayerScore(playerid, PlayerData[playerid][Score]);
GivePlayerMoney(playerid, PlayerData[playerid][Money]);
return 1;
}
else
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Senha incorreta, confira sua senha e a digite novamente abaixo para continuar:", "Login", "Cancelar");
return 1;
}
}
}
}
return 1;
}