15.12.2010, 14:29
I need help adding admin level to this script, so that i can make admin commands
Код:
#include <a_samp> #include <dudb> #include <dutils> #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 //Colors// #define COLOR_SYSTEM 0xEFEFF7AA #define green 0x33FF33AA #define blue 0x00FFFFAA new PLAYERLIST_authed[MAX_PLAYERS]; #if defined FILTERSCRIPT public OnFilterScriptInit() { print("\n--------------------------------------"); print("Register / Login System"); print("--------------------------------------\n"); return 1; } public OnFilterScriptExit() { return 1; } #else main() { print("\n----------------------------------"); print("Register / Login System"); print("----------------------------------\n"); } #endif public OnPlayerRequestSpawn(playerid) { if (udb_Exists(PlayerName(playerid))){ if (!PLAYERLIST_authed[playerid]){ SendClientMessage(playerid,green,"You have already registered, use /login to log into your account."); return 0; } } return 1; } public OnPlayerDisconnect(playerid) { if (PLAYERLIST_authed[playerid]) { // If someone has logged in, it saves money and score. dUserSetINT(PlayerName(playerid)).("money",GetPlayerMoney(playerid)); dUserSetINT(PlayerName(playerid)).("score",GetPlayerScore(playerid)); } PLAYERLIST_authed[playerid]=false; return 1; } public OnPlayerConnect(playerid) { if (PLAYERLIST_authed[playerid]==0){ if (udb_Exists(PlayerName(playerid))){ SystemMsg(playerid,"You have already registered, please /login [password] to login."); } else{ SystemMsg(playerid,"You do not have an account, use /register [password] to register then /login [password] to login."); } return 0; } return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { dcmd(login,5,cmdtext); dcmd(register,8,cmdtext); return 0; } stock SystemMsg(playerid,msg[]) { if ((IsPlayerConnected(playerid))&&(strlen(msg)>0)) { SendClientMessage(playerid,COLOR_SYSTEM,msg); } return 1; } stock PlayerName(playerid) { new name[255]; GetPlayerName(playerid, name, 255); return name; } dcmd_register(playerid,params[]) { if (PLAYERLIST_authed[playerid]) return SystemMsg(playerid,"You have already had an account."); if (udb_Exists(PlayerName(playerid))) return SystemMsg(playerid,"You have already created an account, /login [password] to login."); if (strlen(params)==0) return SystemMsg(playerid,"USAGE: /register [password]"); if (udb_Create(PlayerName(playerid),params)) return SystemMsg(playerid,"You have successfully created your account, now use /login [password] to login."); return true; } dcmd_login(playerid,params[]) { if (PLAYERLIST_authed[playerid]) return SystemMsg(playerid,"You have already logined."); if (!udb_Exists(PlayerName(playerid))) return SystemMsg(playerid,"You do not have an account, please /register [password]"); if (strlen(params)==0) return SystemMsg(playerid,"USAGE: /login [password]"); if (udb_CheckLogin(PlayerName(playerid),params)) { SetPlayerScore(playerid,dUserINT(PlayerName(playerid)).("score")); SetPlayerMoney(playerid,dUserINT(PlayerName(playerid)).("money")); PLAYERLIST_authed[playerid]=true; return SystemMsg(playerid,"You have successfully logined."); } return SystemMsg(playerid,"Wrong password or nickname!"); }