03.02.2011, 13:34
hi i made a register system so long ago i cant remember and my friend said you should hash the passwords so i said ok and made a hasher and now i forgot how to remove the hash so can somebody plz remove it heres the code
thanks
Код:
///////////////////////////////////////////////////////////////
// LOGIN SYSTEM BY HADZX MADE 2020 JANUARY 2ND 8:39PM//////////
///////////////////////////////////////////////////////////////
#include <a_samp>
#include <dudb>
#define COLOR_RED 0xFF0000AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_GREEN 0x00FF00AA
new logged[MAX_PLAYERS];
new adminlevel[MAX_PLAYERS];
new money[MAX_PLAYERS];
new playername[MAX_PLAYER_NAME];
main()
{
print("===============================");
print("");
print("===============================");
}
public OnGameModeInit()
{
/*SetGameModeText("Blank Script");
AddPlayerClass(93, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);*/
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1968.3783, 1345.1572, 17.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}
public OnPlayerConnect(playerid)
{
logged[playerid] = 0;
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
if(IsPlayerNPC(playerid)) return 1;
if(!logged[playerid])
{
GameTextForPlayer(playerid,"~r~Register & Login To Spawn!", 3000, 3);
SendClientMessage(playerid, 0xFFFFFFAA, "{F81414}You Need To Register&Login To Spawn");
return 0;
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256],tmp[256], tmp2[256];
new idx;
new string[256];
cmd = strtok(cmdtext, idx);
GetPlayerName(playerid, playername, sizeof(playername));
if(strcmp(cmd, "/register", true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
if(logged[playerid] == 1)
{
SendClientMessage(playerid, COLOR_YELLOW, "{6EF83C}Your Already Logged In!");
return 1;
}
if(logged[playerid] == 0)
SendClientMessage(playerid, COLOR_YELLOW, "{6EF83C}USAGE: {0049FF}/register (password)");
}
else
{
if (!dini_Exists(udb_encode(playername)))
{
dini_Create(udb_encode(playername));
dini_IntSet(udb_encode(playername), "password", udb_hash(tmp));
dini_IntSet(udb_encode(playername), "adminlevel", 0);
dini_IntSet(udb_encode(playername), "money", 0);
format(string, sizeof(string), "Account %s created! You can now login with /login %s", playername, tmp);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
else
{
format(string, sizeof(string), "%s is already registered.", playername,tmp);
SendClientMessage(playerid, COLOR_RED, string);
}
}
return 1;
}
if(strcmp(cmd, "/login", true) == 0)
{
if(logged[playerid] == 1)
{
SendClientMessage(playerid, COLOR_RED, "You are already logged in!");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_YELLOW, "{6EF83C}USAGE: {0049FF}/login [password]");
}
else
{
if (dini_Exists(udb_encode(playername)))
{
tmp2 = dini_Get(udb_encode(playername), "password");
if (udb_hash(tmp) != strval(tmp2))
{
SendClientMessage(playerid, COLOR_RED, "Wrong/Invalid Password!");
}
else
{
logged[playerid] = 1;
money[playerid] = dini_Int(udb_encode(playername), "money");
adminlevel[playerid] = dini_Int(udb_encode(playername), "adminlevel");
format(string, sizeof(string), "%s, You Are Now Logged In!", playername, adminlevel[playerid], money[playerid]);
SendClientMessage(playerid, COLOR_GREEN, string);
GivePlayerMoney(playerid, money[playerid]);
}
}
else
{
format(string, sizeof(string), "You are not registered Type /register [password] to create a account", playername);
SendClientMessage(playerid, COLOR_RED, string);
}
}
return 1;
}
return 0;
}
public OnPlayerDisconnect(playerid, reason)
{
money[playerid] = GetPlayerMoney(playerid);
dini_IntSet(udb_encode(playername), "money", money[playerid]);
dini_IntSet(udb_encode(playername), "adminlevel", adminlevel[playerid]);
logged[playerid] = 0;
return 1;
}


