19.03.2011, 15:00
Hey guys, 1 more time and i hope the last on this work i am doing, i need help! I think is the last hard part on my LONG work! I hope so.
Ok, I am making now a /makeadmin cmd... But i don't even know how to define the admin level and set it....
Here he cmd code:
And the whole code(with register/login system too)
Thanks and sorry for be allways asking help
Ok, I am making now a /makeadmin cmd... But i don't even know how to define the admin level and set it....
Here he cmd code:
pawn Code:
COMMAND:makeadmin(playerid, params[])
{
new id;
new AdminLevel;
if(IsPlayerConnected(id))
{
if(IsPlayerAdmin(playerid))
{
if(!sscanf(params, "ui", id, AdminLevel))
{
if(AdminLevel <= 101 || 102 || 103 || 104 || 105 || 106 || 1338)
{
new string[64];
new name[MAX_PLAYER_NAME], PlayerName[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
GetPlayerName(id, PlayerName, sizeof(PlayerName));
format(string, sizeof(string), "%s Has Given You %d Admin Level.", name, AdminLevel);
SendClientMessage(id, 0x0259EAAA, string);
format(string, sizeof(string), "You Gave %d Admin Level To %s .", AdminLevel, PlayerName);
SendClientMessage(playerid, 0x0259EAAA, string);
PlayerInfo[id][AdminLevel];
return 1;
}
else return SendClientMessage(playerid, 0x0259EAAA, "Avaliable Levels: 101, 102, 103, 104, 105, 106, 1338");
}
else return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /makeadmin [PlayerId/PartOfName] [AdminLevel]");
}
else return SendClientMessage(playerid, 0xFFFFFFFF, "You Need Rcon Admin To Use This Command!");
}
else return SendClientMessage(playerid, 0xFFFFFFFF, "Player Is Not Connected");
}
pawn Code:
#include <a_samp>
#include <dini>
#include <dudb>
#include <zcmd>
#include <sscanf>
#pragma unused ret_memcpy
new IsLogged[MAX_PLAYERS];
new file[256];
enum pInfo
{
AdminLevel,
Cash,
Score,
Color,
}
new PlayerInfo[MAX_PLAYERS][pInfo];
COMMAND:register(playerid, params[])
{
if(!strlen(params)) return SendClientMessage(playerid, 0xFFFFFFFF, "[Usage]: /register <password>");
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
{
format(file,sizeof(file),"/RicAdmin/users/%s.ini",name);
if(!fexist(file))
{
dini_Create(file);
dini_IntSet(file,"Password", udb_hash(params));
dini_IntSet(file,"AdminLevel", 0);
dini_IntSet(file,"Cash", 0);
dini_IntSet(file,"Score", 0);
dini_IntSet(file,"Color", 0);
SendClientMessage(playerid, 0xFFFFFFFF, "[System]: Account Created!");
PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
GetPlayerName(playerid, name, sizeof(name));
printf("%s has registered a account!", name);
return 1;
}
else
{
SendClientMessage(playerid, 0xFFFFFFFF, " Account Already Found In Database");
PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
return 1;
}
}
}
COMMAND:login(playerid, params[])
{
if(!strlen(params)) return SendClientMessage(playerid, 0xFFFFFFFF, "[Usage]: /login <password>");
new tmp2[256];
new PlayerName[24];
new name[MAX_PLAYER_NAME];
if(IsLogged[playerid] == 0)
{
GetPlayerName(playerid, name, sizeof(name));
format(file,sizeof(file),"/RicAdmin/users/%s.ini",name);
if(fexist(file))
{
tmp2 = dini_Get(file, "Password");
if(udb_hash(params) == strval(tmp2))
{
SendClientMessage(playerid, 0xFFFFFFFF, "Login Sucefull!");
GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
IsLogged[playerid] = 1;
SetPlayerMoney(playerid, dini_Int(file, "Cash"));
SetPlayerScore(playerid, dini_Int(file, "Score"));
SetPlayerColor(playerid, dini_Int(file, "Color"));
PlayerInfo[playerid][AdminLevel] = dini_Int(file, "AdminLevel");
}
else
{
SendClientMessage(playerid, 0xFFFFFFFF, "Login Failed");
}
}
}
else return SendClientMessage(playerid, 0xFFFFFFFF, "You already are logged in!");
return 1;
}
//-------------------------------Admin Commands---------------------------------
COMMAND:makeadmin(playerid, params[])
{
new id;
new AdminLevel;
if(IsPlayerConnected(id))
{
if(IsPlayerAdmin(playerid))
{
if(!sscanf(params, "ui", id, AdminLevel))
{
if(AdminLevel <= 101 || 102 || 103 || 104 || 105 || 106 || 1338)
{
new string[64];
new name[MAX_PLAYER_NAME], PlayerName[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
GetPlayerName(id, PlayerName, sizeof(PlayerName));
format(string, sizeof(string), "%s Has Given You %d Admin Level.", name, AdminLevel);
SendClientMessage(id, 0x0259EAAA, string);
format(string, sizeof(string), "You Gave %d Admin Level To %s .", AdminLevel, PlayerName);
SendClientMessage(playerid, 0x0259EAAA, string);
PlayerInfo[id][AdminLevel];
return 1;
}
else return SendClientMessage(playerid, 0x0259EAAA, "Avaliable Levels: 101, 102, 103, 104, 105, 106, 1338");
}
else return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /makeadmin [PlayerId/PartOfName] [AdminLevel]");
}
else return SendClientMessage(playerid, 0xFFFFFFFF, "You Need Rcon Admin To Use This Command!");
}
else return SendClientMessage(playerid, 0xFFFFFFFF, "Player Is Not Connected");
}
//------------------------------------------------------------------------------
public OnPlayerDisconnect(playerid)
{
new name[24];
GetPlayerName(playerid,name,24);
format(file,sizeof(file),"RicAdmin/users/%s.ini",name);
if(dini_Exists(file))
{
dini_IntSet(file,"Cash",GetPlayerMoney(playerid));
dini_IntSet(file,"Score",GetPlayerScore(playerid));
dini_IntSet(file,"Color",GetPlayerColor(playerid));
dini_IntSet(file,"AdminLevel",PlayerInfo[playerid][AdminLevel]);
IsLogged[playerid] = 0;
return 1;
}
return 1;
}
public OnPlayerSpawn(playerid)
{
return 1;
}
public OnPlayerConnect(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
format(file,sizeof(file),"/RicAdmin/users/%s.ini",name);
if(fexist(file))
{
SendClientMessage(playerid, 0xFFFFFFFF, "Use /login to join your account!");
}
else
{
SendClientMessage(playerid, 0xFFFFFFFF, "User /register to register your account!");
}
return 1;
}