new logged[MAX_PLAYERS]; new adminlevel[MAX_PLAYERS]; new money[MAX_PLAYERS]; new playername[MAX_PLAYER_NAME];
public OnPlayerConnect(playerid) { logged[playerid] = 0; return 1; }
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; }
public OnPlayerSpawn(playerid) { if(logged[playerid] == 0) { SendClientMessage(playerid, COLOR_RED, "You are not logged in! Use /login [password]!"); } 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)) { SendClientMessage(playerid, COLOR_YELLOW, "USAGE: /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, "USAGE: /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 . You got admin level %d and have %d dollar", playername, adminlevel[playerid], money[playerid]); SendClientMessage(playerid, COLOR_GREEN, string); GivePlayerMoney(playerid, money[playerid]); } } else { format(string, sizeof(string), "You are not registerid Type /register [password] to create an account!", playername); SendClientMessage(playerid, COLOR_RED, string); } } return 1; } if(strcmp(cmd, "/makemeadmin", true) == 0) { if(IsPlayerAdmin(playerid)) { if(logged[playerid] == 1) { if(adminlevel[playerid] != 3) { adminlevel[playerid] = 5; SendClientMessage(playerid, COLOR_GREEN, "You are now maxlevel admin!"); } else { SendClientMessage(playerid, COLOR_RED, "You are already maxlevel admin!"); } } else { SendClientMessage(playerid, COLOR_RED, "Please, first login: /login [password]"); } } else { SendClientMessage(playerid, COLOR_RED, "You must first login with rcon! (/rcon login [rcon-pass])"); } return 1; } return 0; }
public OnPlayerConnect(playerid)
{
SetPlayerVirtualWorld(playerid,playerid+1);
logged[playerid] = 0;
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
money[playerid] = GetPlayerMoney(playerid);
dini_IntSet(udb_encode(playername), "money", money[playerid]);
dini_IntSet(udb_encode(playername), "adminlevel", adminlevel[playerid]);
dini_IntSet(udb_encode(playername), "level", GetPlayerScore(playerid));
logged[playerid] = 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))
{
SendClientMessage(playerid, COLOR_YELLOW, "USAGE: /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, "USAGE: /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 . You got admin level %d and have %d dollar", playername, adminlevel[playerid], money[playerid]);
SendClientMessage(playerid, COLOR_GREEN, string);
GivePlayerMoney(playerid, money[playerid]);
SetPlayerVirtualWorld(playerid,0);
}
}
else
{
format(string, sizeof(string), "You are not registerid Type /register [password] to create an account!", playername);
SendClientMessage(playerid, COLOR_RED, string);
}
}
return 1;
}
if(strcmp(cmd, "/makemeadmin", true) == 0)
{
if(IsPlayerAdmin(playerid))
{
if(logged[playerid] == 1)
{
if(adminlevel[playerid] != 3)
{
adminlevel[playerid] = 5;
SendClientMessage(playerid, COLOR_GREEN, "You are now maxlevel admin!");
}
else
{
SendClientMessage(playerid, COLOR_RED, "You are already maxlevel admin!");
}
}
else
{
SendClientMessage(playerid, COLOR_RED, "Please, first login: /login [password]");
}
}
else
{
SendClientMessage(playerid, COLOR_RED, "You must first login with rcon! (/rcon login [rcon-pass])");
}
return 1;
}
return 0;
}
Hello!
![]() Write it so, it should work: PHP код:
![]() |