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:
Код:
#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-|");
}
}