[HELP]setlevel using dcmd
#1

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-|");
    }
}
I already defined dcmd(setlevel, 8, cmdtext);
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)