07.10.2012, 15:04
Hey guys, I started another admin script, but I don't know why i can't create a /setlevel for RCON, this is my entire script:
I already defined dcmd(setlevel, 8, cmdtext);
Код:
#include <a_samp> #include <dini> #include <dutils> #include <zcmd> #pragma unused ret_memcpy #pragma tabsize 0 #define FILTERSCRIPT #if defined FILTERSCRIPT #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 #define COLOUR_GREEN 0x33AA33AA #define COLOUR_RED 0xAA3333AA #define COLOUR_YELLOW 0xFFFF00AA #define COLOUR_LIGHTBLUE 0x33CCFFAA #define COLOUR_ORANGE 0xFF9900AA #define PlayerFile "adminsys/Users/%s.ini" #define SettingFile "adminsys/Settings/MainSettings.ini" #define CommandFile "adminsys/Settings/Commands.ini" public OnFilterScriptInit() { print("\n****************************************"); print("* Admin System by TheLorizz *"); print("****************************************\n"); return 1; } #endif enum PLAYER_MAIN { PLAYER_NAME[MAX_PLAYER_NAME], PLAYER_IP[16], PLAYER_REGGED, PLAYER_PASS, PLAYER_LOGGED, PLAYER_LEVEL, PLAYER_WIRED, PLAYER_JAILED } new gPlayerInfo[MAX_PLAYERS][PLAYER_MAIN]; public OnPlayerConnect(playerid) { new file[100],Name[MAX_PLAYER_NAME],Ip[16]; GetPlayerName(playerid,Name,sizeof(Name)); GetPlayerIp(playerid,Ip,sizeof(Ip)); format(file,sizeof(file),PlayerFile,Name); if(!dini_Exists(file)) { dini_Create(file); dini_Set(file,"Name",Name); dini_Set(file,"Ip",Ip); dini_IntSet(file,"Registered",-1); dini_IntSet(file,"Password",0); dini_IntSet(file,"Level",0); dini_IntSet(file,"Wired",0); dini_IntSet(file,"Jailed",0); SendClientMessage(playerid,COLOUR_ORANGE,"|-Sei nuovo in questo server, per favore usa /register per continuare-|"); } strcat(gPlayerInfo[playerid][PLAYER_NAME], dini_Get(file,"Name")); strcat(gPlayerInfo[playerid][PLAYER_IP], dini_Get(file,"Ip")); gPlayerInfo[playerid][PLAYER_REGGED] = dini_Int(file,"Registered"); gPlayerInfo[playerid][PLAYER_PASS] = dini_Int(file,"Password"); gPlayerInfo[playerid][PLAYER_LEVEL] = dini_Int(file,"Level"); gPlayerInfo[playerid][PLAYER_WIRED] = dini_Int(file,"Wired"); gPlayerInfo[playerid][PLAYER_JAILED] = dini_Int(file,"Jailed"); if(gPlayerInfo[playerid][PLAYER_REGGED] == 0) SendClientMessage(playerid,COLOUR_ORANGE,"|-Questo nick и stato riconosciuto, ma non и stato registrato, per favore usa /register-|"); else if(gPlayerInfo[playerid][PLAYER_REGGED] == 1) SendClientMessage(playerid,COLOUR_ORANGE,"|-Questo nick и stato riconosciuto, per favore usa /login per continuare-|"); gPlayerInfo[playerid][PLAYER_REGGED] = 0; return 1; } public OnPlayerDisconnect(playerid, reason) { new file[100]; format(file,sizeof(file),PlayerFile,gPlayerInfo[playerid][PLAYER_NAME]); dini_Set(file,"Name",gPlayerInfo[playerid][PLAYER_NAME]); dini_Set(file,"Ip",gPlayerInfo[playerid][PLAYER_IP]); dini_IntSet(file,"Registered",gPlayerInfo[playerid][PLAYER_REGGED]); dini_IntSet(file,"Password",gPlayerInfo[playerid][PLAYER_PASS]); dini_IntSet(file,"Level",gPlayerInfo[playerid][PLAYER_LEVEL]); dini_IntSet(file,"Wired",gPlayerInfo[playerid][PLAYER_WIRED]); dini_IntSet(file,"Jailed",gPlayerInfo[playerid][PLAYER_JAILED]); gPlayerInfo[playerid][PLAYER_NAME] = 0; gPlayerInfo[playerid][PLAYER_IP] = 0; gPlayerInfo[playerid][PLAYER_REGGED] = 0; gPlayerInfo[playerid][PLAYER_LOGGED] = 0; gPlayerInfo[playerid][PLAYER_PASS] = 0; gPlayerInfo[playerid][PLAYER_LEVEL] = 0; gPlayerInfo[playerid][PLAYER_WIRED] = 0; gPlayerInfo[playerid][PLAYER_JAILED] = 0; return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { dcmd(register, 8, cmdtext); dcmd(login, 5, cmdtext); dcmd(logout, 6, cmdtext); dcmd(setlevel, 8, cmdtext); return 0; } dcmd_register(playerid, params[]) { if(gPlayerInfo[playerid][PLAYER_REGGED] == 1) return SendClientMessage(playerid, COLOUR_ORANGE, "|-Sei giа registrato!-|"); else if(!params[0]) return SendClientMessage(playerid, COLOUR_ORANGE, "|-USO: /register [password]-|"); /*else if(strlen(params) < gSettings[PASS_MIN] || strlen(params) > gSettings[PASS_MAX]) { new string[128]; format(string, sizeof(string), "ERROR: Password must be between %d and %d characters long!", gSettings[PASS_MIN], gSettings[PASS_MAX]); return SendClientMessage(playerid, COLOUR_ORANGE, string); }*/ else { new password = num_hash(params); gPlayerInfo[playerid][PLAYER_PASS] = password; gPlayerInfo[playerid][PLAYER_REGGED] = 1; gPlayerInfo[playerid][PLAYER_LOGGED] = 1; GetPlayerIp(playerid, gPlayerInfo[playerid][PLAYER_IP], 16); new string[128]; format(string, sizeof(string), "|-Ti sei registrato con la password \'%s\'. Sei stato automaticamente loggato-|", params); return SendClientMessage(playerid, COLOUR_LIGHTBLUE, string); } } dcmd_login(playerid, params[]) { if(gPlayerInfo[playerid][PLAYER_REGGED] != 1) return SendClientMessage(playerid, COLOUR_ORANGE, "|-ERRORE: Devi essere registrato prima! Usa /register per registrati al server-|"); else if(gPlayerInfo[playerid][PLAYER_LOGGED] == 1) return SendClientMessage(playerid, COLOUR_ORANGE, "|-ERRORE: Sei giа loggato!-|"); else if(!params[0]) return SendClientMessage(playerid, COLOUR_ORANGE, "|-USO: /login [password]-|"); else { new password = num_hash(params); if(gPlayerInfo[playerid][PLAYER_PASS] == password) { gPlayerInfo[playerid][PLAYER_LOGGED] = 1; GetPlayerIp(playerid, gPlayerInfo[playerid][PLAYER_IP], 16); return SendClientMessage(playerid, COLOUR_LIGHTBLUE, "|-Ti sei loggato al server!-|"); } else return SendClientMessage(playerid, COLOUR_ORANGE, "|-ERRORE: Password sbagliata!-|"); } } dcmd_logout(playerid, params[]) { #pragma unused params if(gPlayerInfo[playerid][PLAYER_REGGED] != 1) return SendClientMessage(playerid, COLOUR_ORANGE, "|-ERRORE: Devi essere registrato prima! Usa /register per registrati al server-|"); else if(gPlayerInfo[playerid][PLAYER_LOGGED] == 0) return SendClientMessage(playerid, COLOUR_ORANGE, "|-ERRORE: Sei giа sloggato!-|"); else { gPlayerInfo[playerid][PLAYER_LOGGED] = 0; return SendClientMessage(playerid, COLOUR_LIGHTBLUE, "|-Ti sei sloggato dal server-|"); } }