Me pueden ayudar a cambiar esto?
#1

Me pueden ayudar?
Quisiera cambiar la forma de ingreso y registro, en lugar de poner /ingreso [contraseсa] ponga solamente la contraseсa, y en lugar de poner /registro solamente ponga cual quiero que sea mi contraseсa.
Todo esto en forma de dialog, que me aparesca el cuadro y escriba la contraseсa.

Код:

//includes
#include <a_samp>
#include <dini.inc>

//colores
#define COLOR_ROJO 0xFF0000FF
#define COLOR_NARANJA 0xFF9600FF
#define COLOR_AMARILLO 0xFFC800FF
#define COLOR_DORADO 0x966400FF
#define COLOR_AZUL 0x0000FFFF
#define COLOR_CELESTE 0x0096FFFF
#define COLOR_AQUA 0x009696FF
#define COLOR_VERDE_OSCURO 0x00C800FF
#define COLOR_VERDE_CLARO 0x00FF00FF

//carpeta de las cuentas
#define ACCOUNTS_FOLDER "/Usuarios/%s.ini"

/* ------------------------> [Filterscript] <------------------------- */
#define FILTERSCRIPT

/* ------------------------> [Estados] <------------------------- */
new Ingreso[MAX_PLAYERS];
new NivelAdmin[MAX_PLAYERS];
new EsAdmin[MAX_PLAYERS];
new Espiando[MAX_PLAYERS];
new Dios[MAX_PLAYERS];
new VDios[MAX_PLAYERS];
new Callado[MAX_PLAYERS];
new Advertido[MAX_PLAYERS];
new Encarcelado[MAX_PLAYERS];
new Congelado[MAX_PLAYERS];

/* ------------------------> [Timers] <------------------------- */
forward tvdios(playerid);
forward tdescongelar(playerid);
forward tdesencarcelar(playerid);
forward pingcheck(playerid);


/* ------------------------> [KillTimers] <------------------------- */
new ktvdios;
new ktdescongelar;
new ktdesencarcelar;

/* ------------------------> [Vehiculos] <------------------------- */
new Vehiculos[212][] = {
	"Landstalker","Bravura","Buffalo","Linerunner","Pereniel","Sentinel","Dumper","Firetruck","Trashmaster","Stretch","Manana","Infernus",
	"Voodoo","Pony","Mule","Cheetah","Ambulance","Leviathan","Moonbeam","Esperanto","Taxi","Washington","Bobcat","Mr Whoopee","BF Injection",
	"Hunter","Premier","Enforcer","Securicar","Banshee","Predator","Bus","Rhino","Barracks","Hotknife","Trailer","Previon","Coach","Cabbie",
	"Stallion","Rumpo","RC Bandit","Romero","Packer","Monster","Admiral","Squalo","Seasparrow","Pizzaboy","Tram","Trailer","Turismo","Speeder",
	"Reefer","Tropic","Flatbed","Yankee","Caddy","Solair","Berkley's RC Van","Skimmer","PCJ-600","Faggio","Freeway","RC Baron","RC Raider",
	"Glendale","Oceanic","Sanchez","Sparrow","Patriot","Quad","Coastguard","Dinghy","Hermes","Sabre","Rustler","ZR3 50","Walton","Regina",
	"Comet","BMX","Burrito","Camper","Marquis","Baggage","Dozer","Maverick","News Chopper","Rancher","FBI Rancher","Virgo","Greenwood",
	"Jetmax","Hotring","Sandking","Blista Compact","Police Maverick","Boxville","Benson","Mesa","RC Goblin","Hotring Racer A","Hotring Racer B",
	"Bloodring Banger","Rancher","Super GT","Elegant","Journey","Bike","Mountain Bike","Beagle","Cropdust","Stunt","Tanker","RoadTrain",
	"Nebula","Majestic","Buccaneer","Shamal","Hydra","FCR-900","NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune","Cadrona","FBI Truck",
	"Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade","Freight","Streak","Vortex","Vincent","Bullet","Clover",
	"Sadler","Firetruck","Hustler","Intruder","Primo","Cargobob","Tampa","Sunrise","Merit","Utility","Nevada","Yosemite","Windsor","Monster A",
	"Monster B","Uranus","Jester","Sultan","Stratum","Elegy","Raindance","RC Tiger","Flash","Tahoma","Savanna","Bandito","Freight","Trailer",
	"Kart","Mower","Duneride","Sweeper","Broadway","Tornado","AT-400","DFT-30","Huntley","Stafford","BF-400","Newsvan","Tug","Trailer A","Emperor",
	"Wayfarer","Euros","Hotdog","Club","Trailer B","Trailer C","Andromada","Dodo","RC Cam","Launch","Police Car (LSPD)","Police Car (SFPD)",
	"Police Car (LVPD)","Police Ranger","Picador","S.W.A.T. Van","Alpha","Phoenix","Glendale","Sadler","Luggage Trailer A","Luggage Trailer B",
	"Stair Trailer","Boxville","Farm Plow","Utility Trailer"
};

////////////////////////////////////////////////////
public OnFilterScriptInit()
{
	print(" SISTEMA DE ADMINISTRACION");
	print("         JADMIN");
	print("        POR JAZI");
	return 1;
}
////////////////////////////////////////////////////
public OnFilterScriptExit()
{
	print(" SISTEMA DE ADMINISTRACION ");
	print("          JADMIN");
	print("         POR JAZI");
	print("         CERRADO");
	return 1;
}
////////////////////////////////////////////////////
public OnPlayerConnect(playerid)
{
	Ingreso[playerid] = 0;
	EsAdmin[playerid] = 0;
	Espiando[playerid] = 0;
	Dios[playerid] = 0;
	VDios[playerid] = 0;
	Callado[playerid] = 0;
	Advertido[playerid] = 0;
	SetTimerEx("pingcheck", 0, true, "d", playerid);
    new nombre[MAX_PLAYER_NAME], string[256];
	GetPlayerName(playerid, nombre, MAX_PLAYER_NAME);
	format(string, sizeof(string), "{FF0000}%s {FFFFFF}ha entrado al servidor.", nombre);
	SendClientMessageToAll(0xFFFFFFFF, string);
	new archivo[256], usuario[MAX_PLAYER_NAME];
	GetPlayerName(playerid, usuario, sizeof(usuario));
	format(archivo, sizeof(string), "JADMIN/Users/%s.ini", usuario);
	if (dini_Exists(archivo)) return SendClientMessage(playerid, 0xFFFFFFFF, "Tu nombre se encuentra registrado. Usa /ingreso [Contraseсa] para ingresar.");
	if (!dini_Exists(archivo)) return SendClientMessage(playerid, 0xFFFFFFFF, "Tu nombre no se encuentra registrado. Usa /registro [Contraseсa] para registrarte.");
	return 1;
}
////////////////////////////////////////////////////
public OnPlayerDisconnect(playerid, reason)
{
    new nombre[MAX_PLAYER_NAME], string[256];
	GetPlayerName(playerid, nombre, MAX_PLAYER_NAME);
	switch(reason)
	{
	    case 0: format(string, sizeof(string), "%s ha dejado el servidor. (Crash)", nombre);
	    case 1: format(string, sizeof(string), "%s ha dejado el servidor.", nombre);
	    case 2: format(string, sizeof(string), "%s ha dejado el servidor. (Kickeado/Baneado)", nombre);
    }
	SendClientMessageToAll(0xFFFFFFFF, string);
	new archivo[256], usuario[MAX_PLAYER_NAME];
	GetPlayerName(playerid, usuario, sizeof(usuario));
	format(archivo, sizeof(archivo), "JADMIN/Users/%s.ini", usuario);
	dini_IntSet(archivo, "Puntaje", GetPlayerScore(playerid));
	dini_IntSet(archivo, "Dinero", GetPlayerMoney(playerid));
	return 1;
}
////////////////////////////////////////////////////
public OnPlayerSpawn(playerid)
{
	if (Dios[playerid] == 1)
	{
	    SetPlayerHealth(playerid, 100000);
	}
	return 1;
}
////////////////////////////////////////////////////
public OnPlayerDeath(playerid, killerid, reason)
{
    new archivo1[256], archivo2[256], asesino[MAX_PLAYER_NAME], jugador[MAX_PLAYER_NAME];
    GetPlayerName(killerid, asesino, sizeof(asesino));
	GetPlayerName(playerid, jugador, sizeof(jugador));
	format(archivo1, sizeof(archivo1), "JADMIN/Usars/%s.ini", asesino);
	format(archivo2, sizeof(archivo2), "JADMIN/Users/%s.ini", jugador);
	dini_IntSet(archivo1, "Asesinatos", dini_Int(archivo1, "Asesinatos")+1);
	dini_IntSet(archivo2, "Muertes", dini_Int(archivo2, "Muertes")+1);
	return 1;
}
////////////////////////////////////////////////////
public OnPlayerText(playerid, text[])
{
	new archivo[256], usuario[MAX_PLAYER_NAME];
	GetPlayerName(playerid, usuario, sizeof(usuario));
    format(archivo, sizeof(archivo), "JADMIN/Users/%s.ini", usuario);
    if(dini_Exists(archivo))
    {
        if(Ingreso[playerid] == 0)
        {
     		SendClientMessage(playerid, 0xFFFFFFFF, "Debes ingresar para poder hablar. Usa /ingreso [Contraseсa].");
            return 0;
		}
	}
	else if(!dini_Exists(archivo))
	{
		SendClientMessage(playerid, 0xFFFFFFFF, "Debes ingresar para poder hablar. Como no estas registrado, primero usa /registro [Contraseсa].");
		return 0;
	}
	if(Callado[playerid] == 1)
	{
	    SendClientMessage(playerid, 0xFFFFFFFF, "No puedes hablar, ya que te han callado.");
	    return 0;
	}
	new string[256];
	format(string, sizeof(string), "[%d]: %s", playerid, text);
	SendPlayerMessageToAll(playerid, string);
	return 0;
}
////////////////////////////////////////////////////
public OnPlayerCommandText(playerid, cmdtext[])
{
	new cmd[256], idx;
	cmd = strtok(cmdtext, idx);

	/* ------------------------> [Comandos de usuarios] <------------------------- */
	if (strcmp("/ayuda", cmd, true) == 0)
	{
		new nombre[MAX_PLAYER_NAME], string[256];
		GetPlayerName(playerid, nombre, MAX_PLAYER_NAME);
		format(string, sizeof(string), "Bienvenido, %s!", nombre);
		SendClientMessage(playerid, 0xFFFFFFFF, string);
		SendClientMessage(playerid, 0xFFFFFFFF, "||---------------------------|JADMIN|---------------------------||");
		SendClientMessage(playerid, 0xFFFFFFFF, "Si Quieres registarte puedes usar /registro [contraseсa] (Seguramente ya estas registrado).");
		SendClientMessage(playerid, 0xFFFFFFFF, "Para ingresar, usa /ingreso [contraseсa].");
		SendClientMessage(playerid, 0xFFFFFFFF, "Para cambiar tu contraseсa, usa /cambiarPass [Otra contraseсa].");
		SendClientMessage(playerid, 0xFFFFFFFF, "Para ver tus estadisticas, usa /Stat.");
		SendClientMessage(playerid, 0xFFFFFFFF, "Si vez a un Cheater puedes usar /reportar [id] [razon].");
		SendClientMessage(playerid, 0xFFFFFFFF, "Para guardar una posicion usa /guardarpos, y luego Cuando Quieras /cargarpos para Ir hacia ella.");
		SendClientMessage(playerid, 0xFFFFFFFF, "Si quieres saber que admins estan conectados usa /Admins");
		SendClientMessage(playerid, 0xFFFFFFFF, "||----------------------------|Fin|-----------------------------||");
		return 1;
	}
	if (strcmp("/Stat", cmd, true) == 0)
	{
		new usuario[MAX_PLAYER_NAME], archivo[256], string1[256], string2[256], string3[256], string4[256], string5[256], string6[256], string7[256], string8[256];
		GetPlayerName(playerid, usuario, sizeof(usuario));
		format(archivo, sizeof(archivo), "JADMIN/Users/%s.ini", usuario);
		format(string1, sizeof(string1), "Tu usuario es {FF0000}%s y estos son los siguientes datos::", usuario);
		format(string2, sizeof(string2), "Contraseсa: {FF0000}%s", dini_Get(archivo, "Contraseсa"));
		format(string3, sizeof(string3), "Nivel Admin: {FF0000}%d", dini_Int(archivo, "NivelAdmin"));
		format(string4, sizeof(string4), "Asesinatos: {FF0000}%d", dini_Int(archivo, "Asesinatos"));
		format(string5, sizeof(string5), "Muertes: {FF0000}%d", dini_Int(archivo, "Muertes"));
		format(string6, sizeof(string6), "Puntos: {FF0000}%d", GetPlayerScore(playerid));
		format(string7, sizeof(string7), "Dinero: {FF0000}%d", GetPlayerMoney(playerid));
		format(string8, sizeof(string8), "Posicion guardada: {FF0000}%f, %f, %f, %f.", dini_Int(archivo, "PosGuardada(X)"), dini_Int(archivo, "PosGuardada(Y)"), dini_Int(archivo, "PosGuardada(Z)"), dini_Int(archivo, "PosGuardada(Angulo)"));
		SendClientMessage(playerid, 0xFFFFFFFF, string1);
		SendClientMessage(playerid, 0xFFFFFFFF, string2);
		SendClientMessage(playerid, 0xFFFFFFFF, string3);
		SendClientMessage(playerid, 0xFFFFFFFF, string4);
		SendClientMessage(playerid, 0xFFFFFFFF, string5);
		SendClientMessage(playerid, 0xFFFFFFFF, string6);
		SendClientMessage(playerid, 0xFFFFFFFF, string7);
		SendClientMessage(playerid, 0xFFFFFFFF, string8);
		return 1;
	}

	if (strcmp("/Creditos", cmd, true) == 0)
	{
	SendClientMessage(playerid, 0xFFFFFFFF, "||---------------------------|JADMIN|Creditos|---------------------------||");
	SendClientMessage(playerid, 0xFFFFFFFF, "Has entrado en la parte de creditos. A continuacion veremos los creadores:");
	SendClientMessage(playerid, 0xFFFFFFFF, "Bruunosoniico{FF0000} Fs Base");
	SendClientMessage(playerid, 0xFFFFFFFF, "AugustO Modificacion y correcion de Bug's");
	SendClientMessage(playerid, 0xFFFFFFFF, "||----------------------------|Fin|-----------------------------||");
	return 1;
	}
	if (strcmp("/reportar", cmd, true) == 0)
	{
	    new tmp1[256], tmp2[256], nombrejugador[MAX_PLAYER_NAME], nombrereportado[MAX_PLAYER_NAME], string[256], reportadoid;
	    {
	        tmp1 = strtok(cmdtext, idx);
	        tmp2 = strtok(cmdtext, idx);
	        reportadoid = strval(tmp1);
	        GetPlayerName(playerid, nombrejugador, sizeof(nombrejugador));
	        GetPlayerName(reportadoid, nombrereportado, sizeof(nombrereportado));
	        if (!strlen(tmp1) ||!strlen(tmp2)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /reportar [ID] [Razon]");
	        PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
	        format(string, sizeof(string), "El usuario %s [%d] ha reportado al usuario %s [%d] por %s.", nombrejugador, playerid, nombrereportado, reportadoid, cmdtext[10+strval(tmp1)]);
	        SendClientMessage(playerid, 0xFFFFFFFF, "Mensaje enviado a los administradores conectados.");
	        EnviarReporte(string);
	    }
	    return 1;
	}
	if (strcmp("/admins", cmd, true) == 0)
	{
		new cantidadadmins;
		for(new i=0; i < MAX_PLAYERS; i++)
		{
			if (EsAdmin[i] == 1) cantidadadmins++;
		}
		if (cantidadadmins == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "No hay administradores conectados.");
		SendClientMessage(playerid, 0xFFFFFFFF, "Administradores conectados:");
		for(new i=0; i < MAX_PLAYERS; i++)
		{
			if (EsAdmin[i] == 1)
			{
				new nombre[MAX_PLAYER_NAME], string[256];
				GetPlayerName(i, nombre, MAX_PLAYER_NAME);
				format(string, sizeof(string), "%s - Nivel %d", nombre, NivelAdmin);
				SendClientMessage(playerid, 0xFFFFFFFF, string);
			}
		}
		return 1;
	}
	if (strcmp("/guardarpos", cmd, true) == 0)
	{
	    if (Ingreso[playerid] == 1)
	    {
			new usuario[MAX_PLAYER_NAME], archivo[256], Float:x, Float:y, Float:z, Float:angulo;
			GetPlayerName(playerid, usuario, sizeof(usuario));
			GetPlayerPos(playerid, Float:x, Float:y, Float:z);
			GetPlayerFacingAngle(playerid, Float:angulo);
			format(archivo, sizeof(archivo), "JADMIN/Users/%s.ini", usuario);
			dini_FloatSet(archivo, "PosGuardada(X)", Float:x);
			dini_FloatSet(archivo, "PosGuardada(Y)", Float:y);
			dini_FloatSet(archivo, "PosGuardada(Z)", Float:z);
			dini_FloatSet(archivo, "PosGuardada(Angulo)", Float:angulo);
			SendClientMessage(playerid, 0xFFFFFFFF, "Posicion guardada exitosamente");
			PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Para guardar una posicion, debes estar registrado. Usa /registro [Contraseсa] para registrarte.");
		return 1;
	}
	if (strcmp("/cargarpos", cmd, true) == 0)
	{
	    if (Ingreso[playerid] == 1)
	    {
			new vehiculo, usuario[MAX_PLAYER_NAME], archivo[256];
			vehiculo = GetPlayerVehicleID(playerid);
			GetPlayerName(playerid, usuario, sizeof(usuario));
			format(archivo, sizeof(archivo), "JADMIN/Users/%s.ini", usuario);
			if (dini_Int(archivo, "PosGuardada(X)") == 0 || dini_Int(archivo, "PosGuardada(Y)") == 0 || dini_Int(archivo, "PosGuardada(Z)") == 0 || dini_Int(archivo, "PosGuardada(Angulo)") == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "No has guardado ninguna posicion aun. Para guardar una, usa /guardarpos");
			SetPlayerPos(playerid, dini_Int(archivo, "PosGuardada(X)"), dini_Int(archivo, "PosGuardada(Y)"), dini_Int(archivo, "PosGuardada(Z)")+1);
            if(IsPlayerInAnyVehicle(playerid))
			{
				SetVehiclePos(vehiculo, dini_Int(archivo, "PosGuardada(X)"), dini_Int(archivo, "PosGuardada(Y)"), dini_Int(archivo, "PosGuardada(Z)")+1);
				PutPlayerInVehicle(playerid, vehiculo, 0);
			}
			SetPlayerFacingAngle(playerid, dini_Int(archivo, "PosGuardada(Angulo)"));
			SetCameraBehindPlayer(playerid);
			SendClientMessage(playerid, 0xFFFFFFFF, "Posicion cargada exitosamente");
			PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Para cargar una posicion debes estar registrado. Usa /registro [Contraseсa] para registrarte.");
		return 1;
	}
	if (strcmp("/registro", cmd, true) == 0)
	{
		new tmp[256], usuario[MAX_PLAYER_NAME], archivo[256], string[256];
		tmp = strtok(cmdtext, idx);
		GetPlayerName(playerid, usuario, sizeof(usuario));
		format(archivo, sizeof(archivo), "JADMIN/Users/%s.ini", usuario);
        if (dini_Exists(archivo)) return SendClientMessage(playerid, 0xFFFFFFFF, "Tu nombre ya se encuentra registrado. Usa /ingreso [contraseсa] para ingresar.");
        if (!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /registro [Contraseсa].");
        if (strlen(tmp) < 4 || strlen(tmp) > 12) return SendClientMessage(playerid, 0xFFFFFFFF, "Su contraseсa debe contener entre 4 y 12 caracteres.");
		dini_Create(archivo);
		dini_Set(archivo, "Usuario", usuario);
		dini_Set(archivo, "Contraseсa", cmdtext[10]);
		dini_IntSet(archivo, "Baneado", 0);
		dini_IntSet(archivo, "NivelAdmin", 0);
		dini_IntSet(archivo, "Asesinatos", 0);
		dini_IntSet(archivo, "Muertes", 0);
		dini_IntSet(archivo, "Puntaje", GetPlayerScore(playerid));
		dini_IntSet(archivo, "Dinero", GetPlayerMoney(playerid));
		dini_IntSet(archivo, "PosGuardada(X)", 0);
		dini_IntSet(archivo, "PosGuardada(Y)", 0);
		dini_IntSet(archivo, "PosGuardada(Z)", 0);
		dini_IntSet(archivo, "PosGuardada(Angulo)", 0);
		format(string, sizeof(string), "Te has registrado correctamente. Usa /ingreso %s para ingresar.", cmdtext[10]);
		SendClientMessage(playerid, COLOR_VERDE_OSCURO, string);
		PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
		return 1;
	}
	if (strcmp("/ingreso", cmd, true) == 0)
	{
	    new tmp[256], archivo[256], usuario[MAX_PLAYER_NAME], comprobante1[256], comprobante2[256], string[256];
	    tmp = strtok(cmdtext, idx);
	    GetPlayerName(playerid, usuario, sizeof(usuario));
		format(archivo, sizeof(archivo), "JADMIN/Users/%s.ini", usuario);
		if (Ingreso[playerid] == 1) return SendClientMessage(playerid, 0xFFFFFFFF, "Ya te encuentras identificado.");
        if (!dini_Exists(archivo)) return SendClientMessage(playerid, 0xFFFFFFFF, "Tu nombre no se encuentra registrado. Usa /registro [contraseсa] para registrarte.");
        if (!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa /ingreso [Contraseсa].");
		format(comprobante1, sizeof(comprobante1), "%s", cmdtext[9]);
		format(comprobante2, sizeof(comprobante2), "%s", dini_Get(archivo, "Contraseсa"));
		if (!strcmp(comprobante1, comprobante2))
		{
			if (dini_Int(archivo, "Baneado") == 0)
			{
				Ingreso[playerid] = 1;
				NivelAdmin[playerid] = dini_Int(archivo, "NivelAdmin");
				SetPlayerScore(playerid, dini_Int(archivo, "Puntaje"));
				GivePlayerMoney(playerid, dini_Int(archivo, "Dinero")-GetPlayerMoney(playerid));
				SendClientMessage(playerid, 0xFFFFFFFF, "Has ingresado correctamente");
				PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
				if (NivelAdmin[playerid] == 1 || NivelAdmin[playerid] == 2 || NivelAdmin[playerid] == 3 || NivelAdmin[playerid] == 4 || NivelAdmin[playerid] == 5)
				{
				    EsAdmin[playerid] = 1;
				}
			}
			else
			{
				format(string, sizeof(string), "%s ha sido auto-kickeado. (Razon: Usuario baneado.)", usuario);
				SendClientMessageToAll(0xFFFFFFFF, string);
				Kick(playerid);
			}
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Contraseсa incorrecta.");
		return 1;
	}
	if (strcmp("/cambiarPass", cmd, true) == 0)
	{
	    if (Ingreso[playerid] == 1)
	    {
			new tmp[256], usuario[MAX_PLAYER_NAME], archivo[256], string[256];
			tmp = strtok(cmdtext, idx);
			GetPlayerName(playerid, usuario, sizeof(usuario));
			format(archivo, sizeof(archivo), "JADMIN/Users/%s.ini", usuario);
			if (!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: {FFFF00}/cambiarpass [Nueva contraseсa].");
        	if (strlen(tmp) < 4 || strlen(tmp) > 12) return SendClientMessage(playerid, 0xFFFFFFFF, "Su contraseсa debe contener entre 4 y 12 caracteres.");
			dini_Set(archivo, "Contraseсa", cmdtext[15]);
			Ingreso[playerid] = 0;
			format(string, sizeof(string), "Tu contraseсa a sido cambiada con exito. Usa /ingreso %s para ingresar nuevamente.", cmdtext[15]);
			SendClientMessage(playerid, COLOR_VERDE_OSCURO, string);
			PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  }
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Para cambiar tu contraseсa, debes estar registrado. Usa /registro [contraseсa] para registrarte.");
		return 1;
	}
	/* ------------------------> [Comandos de administradores] <------------------------- */
	if (strcmp(cmd, "/acomandos", true) == 0)
	{
		if (NivelAdmin[playerid] == 1)
		{
			SendClientMessage(playerid, 0xFFFFFFFF, "Comandos de administrador:");
			SendClientMessage(playerid, 0xFFFFFFFF, "Moderador nivel 1: /adecir /color /anuncio /limpiar /vcolor /espiar /kick");
		}
		else if (NivelAdmin[playerid] == 2)
		{
			SendClientMessage(playerid, 0xFFFFFFFF, "Comandos de administrador:");
			SendClientMessage(playerid, 0xFFFFFFFF, "Moderador Lider nivel 2: /adecir /color /anuncio /limpiar /vcolor /espiar /kick.");
			SendClientMessage(playerid, 0xFFFFFFFF, "Moderador Lider nivel 2: /ir /traer /encarcelar / desencarcelar /congelar /descongelar /advertir.");
		}
		else if (NivelAdmin[playerid] == 3)
		{
			SendClientMessage(playerid, 0xFFFFFFFF, "Comandos de administrador:");
			SendClientMessage(playerid, 0xFFFFFFFF, "Administrador nivel 3: /adecir /color /anuncio /limpiar /vcolor /espiar /kick.");
			SendClientMessage(playerid, 0xFFFFFFFF, "Administrador nivel 3: /ir /traer /encarcelar / desencarcelar /congelar /descongelar /advertir.");
			SendClientMessage(playerid, 0xFFFFFFFF, "Administrador nivel 3: /Darvida /dardinero /dararma /blindaje /Autovida /Autoreparar /Autodestruir /askin.");
		}
		else if (NivelAdmin[playerid] == 4)
		{
			SendClientMessage(playerid, 0xFFFFFFFF, "Comandos de administrador:");
			SendClientMessage(playerid, 0xFFFFFFFF, "Administrador Lider nivel 4: /adecir /color /anuncio /limpiar /vcolor /espiar /kick.");
			SendClientMessage(playerid, 0xFFFFFFFF, "Administrador Lider nivel 4: /ir /traer /encarcelar / desencarcelar /congelar /descongelar /advertir.");
			SendClientMessage(playerid, 0xFFFFFFFF, "Administrador Lider nivel 4: /Darvida /dardinero /dararma /blindaje /Autovida /Autoreparar /Autodestruir /askin.");
			SendClientMessage(playerid, 0xFFFFFFFF, "Administrador Lider nivel 4: /callar /hora /clima /ban /mundo /cambiarinterior /vnitro /adminV /puntaje.");
		}
		else if (NivelAdmin[playerid] == 5)
		{
			SendClientMessage(playerid, 0xFFFFFFFF, "Comandos de administrador:");
			SendClientMessage(playerid, 0xFFFFFFFF, "Administrador Dueсo nivel 5: /adecir /color /anuncio /limpiar /vcolor /espiar /kick.");
			SendClientMessage(playerid, 0xFFFFFFFF, "Administrador Dueсo nivel 5: /ir /traer /encarcelar / desencarcelar /congelar /descongelar /advertir.");
			SendClientMessage(playerid, 0xFFFFFFFF, "Administrador Dueсo nivel 5: /Darvida /dardinero /dararma /blindaje /Autovida /Autoreparar /Autodestruir /askin.");
			SendClientMessage(playerid, 0xFFFFFFFF, "Administrador Dueсo nivel 5: /callar /hora /clima /ban /mundo /cambiarinterior /vnitro /adminV /puntaje.");
			SendClientMessage(playerid, 0xFFFFFFFF, "Administrador Dueсo nivel 5: /niveladmin /dios /vdios /nombre.");
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/adecir", true) == 0)
	{
		if (NivelAdmin[playerid] == 1 || NivelAdmin[playerid] == 2 || NivelAdmin[playerid] == 3 || NivelAdmin[playerid] == 4 || NivelAdmin[playerid] == 5)
		{
			new tmp[256], string[256], nombre[MAX_PLAYER_NAME];
			tmp = strtok(cmdtext, idx);
			if (!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /adecir [Texto].");
			GetPlayerName(playerid, nombre, MAX_PLAYER_NAME);
			format(string, sizeof(string), "{FF0000}[%s]: %s", nombre, cmdtext[7]);
			SendClientMessageToAll(0xFFFFFFFF, string);
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 1 para usar este comando.");
		return 1;
	}
if(!strcmp(cmdtext, "/color", true, 19))
    {
    if(!strlen(cmdtext[45]))return Mensaje(jugador, rojo, "Uso: /color [Nombre del Color]");
    if(!strcmp(cmdtext[20], "verde", true))
    {
        SetPlayerColor(jugador, verde);
        return Mensaje(jugador, verde, "-= Tu nick ahora es verde!! =-");
    }
    else if(!strcmp(cmdtext[20], "blanco", true))
    {
        SetPlayerColor(jugador, blanco);
        return Mensaje(jugador, blanco, "-= Tu nick ahora es blanco!! =-");
    }
    else if(!strcmp(cmdtext[20], "rojo", true))
    {
        SetPlayerColor(jugador, rojo);
        return Mensaje(jugador, rojo, "-= Tu nick ahora es rojo!! =-");
    }
    else if(!strcmp(cmdtext[20], "amarillo", true))
    {
        SetPlayerColor(jugador, amarillo);
        return Mensaje(jugador, amarillo, "-= Tu nick ahora es blanco!! =-");
    }
    else if(!strcmp(cmdtext[20], "azul", true))
    {
        SetPlayerColor(jugador, azul);
        return Mensaje(jugador, azul, "-= Tu nick ahora es blanco!! =-");
    }
    else if(!strcmp(cmdtext[20], "naranja", true))
    {
        SetPlayerColor(jugador, naranja);
        return Mensaje(jugador, naranja, "-= Tu nick ahora es blanco!! =-");
    }
    else if(!strcmp(cmdtext[20], "celeste", true))
    {
        SetPlayerColor(jugador, celeste);
        return Mensaje(jugador, celeste, "-= Tu nick ahora es blanco!! =-");
    }
    else if(!strcmp(cmdtext[20], "rosa", true))
    {
        SetPlayerColor(jugador, rosa);
        return Mensaje(jugador, rosa, "-= Tu nick ahora es blanco!! =-");
    }
    else if(!strcmp(cmdtext[20], "negro", true))
    {
        SetPlayerColor(jugador, negro);
        return Mensaje(jugador, negro, "-= Tu nick ahora es blanco!! =-");
    }
    else if(!strcmp(cmdtext[20], "morado", true))
    {
        SetPlayerColor(jugador, morado);
        return Mensaje(jugador, morado, "-= Tu nick ahora es blanco!! =-");
    }return Mensaje(jugador, rojo, "-= El color que intentas obtener no existe =-");
}
	if (strcmp(cmd, "/anuncio", true) == 0)
	{
		if (NivelAdmin[playerid] == 1 || NivelAdmin[playerid] == 2 || NivelAdmin[playerid] == 3 || NivelAdmin[playerid] == 4 || NivelAdmin[playerid] == 5)
		{
			new tmp[256];
			tmp = strtok(cmdtext, idx);
			if (!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /anuncio [Texto].");
			GameTextForAll(cmdtext[9], 5000, 5);
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 1 para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/limpiar", true) == 0)
	{
	    if (NivelAdmin[playerid] == 1 || NivelAdmin[playerid] == 2 || NivelAdmin[playerid] == 3 || NivelAdmin[playerid] == 4 || NivelAdmin[playerid] == 5)
	    {
	 	   new nombre[MAX_PLAYER_NAME], string[256];
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
           SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   SendClientMessageToAll(0xFFFFFFFF, " ");
	 	   GetPlayerName(playerid, nombre, sizeof(nombre));
	 	   format(string, sizeof(string), "%s ha limpiado el chat.", nombre);
	 	   SendClientMessageToAll(COLOR_VERDE_CLARO, string);
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 1 para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/vcolor", true) == 0)
	{
		if (NivelAdmin[playerid] == 1 || NivelAdmin[playerid] == 2 || NivelAdmin[playerid] == 3 || NivelAdmin[playerid] == 4 || NivelAdmin[playerid] == 5)
		{
			new tmp1[256], tmp2[256], tmp3[256], jugador, admin, string1[256], string2[256], nombrejugador[MAX_PLAYER_NAME], nombreadmin[MAX_PLAYER_NAME], vehiculo, color1, color2;
			tmp1 = strtok(cmdtext, idx);
			tmp2 = strtok(cmdtext, idx);
			tmp3 = strtok(cmdtext, idx);
			if (!strlen(tmp1) || !strlen(tmp2) || strlen(tmp3)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /vcolor [ID] [Color1] [Color2].");
			jugador = strval(tmp1);
			admin = playerid;
			GetPlayerName(jugador, nombrejugador, sizeof(nombrejugador));
			GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
			vehiculo = GetVehicleModel(GetPlayerVehicleID(jugador));
			color1 = strval(tmp2);
			color2 = strval(tmp3);
			if (IsPlayerConnected(jugador))
			{
			    if (IsPlayerInAnyVehicle(jugador))
			    {
					format(string1, sizeof(string1), "Has cambiado el color del vehiculo de %s. (Color 1: %d Color 2: %d)", nombrejugador, color1, color2);
					format(string2, sizeof(string2), "%s ha cambiado el color de tu vehiculo. (Color 1: %d Color 2: %d)", nombreadmin, color1, color2);
					SendClientMessage(admin, COLOR_AZUL, string1);
					SendClientMessage(jugador, COLOR_VERDE_CLARO, string2);
					PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
					PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
					ChangeVehicleColor(vehiculo, color1, color2);
				}
				else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra en un vehiculo.");
			}
			else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 1 para usar este comando.");
		return 1;
	}
    if (strcmp(cmd, "/espiar", true) == 0)
	{
		if (NivelAdmin[playerid] == 1 || NivelAdmin[playerid] == 2 || NivelAdmin[playerid] == 3 || NivelAdmin[playerid] == 4 || NivelAdmin[playerid] == 5)
		{
			new tmp[256], jugador, admin, Float:x, Float:y, Float:z, Float:angulo;
		    if (Espiando[playerid] == 0)
		    {
				tmp = strtok(cmdtext, idx);
				if (!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /espiar [ID]. Para dejar de espiar usa /espiar nuevamente.");
				jugador = strval(tmp);
				admin = playerid;
				if (strval(tmp) == admin) return SendClientMessage(playerid, 0xFFFFFFFF, "No puedes espiarte a ti mismo.");
				if (IsPlayerConnected(jugador))
				{
				    Espiando[playerid] = 1;
					PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
					TogglePlayerSpectating(admin, true);
					PlayerSpectatePlayer(admin, jugador, SPECTATE_MODE_NORMAL);
					GetPlayerPos(admin, Float:x, Float:y, Float:z);
					GetPlayerFacingAngle(admin, Float:angulo);
				}
				else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");
			}
			else if (Espiando[playerid] == 1)
			{
			    if (strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /espiar para dejar de espiar.");
			    Espiando[admin] = 0;
			    TogglePlayerSpectating(admin, false);
			    SetPlayerPos(admin, Float:x, Float:y, Float:z);
				SetPlayerFacingAngle(admin, Float:angulo);
				SetCameraBehindPlayer(admin);
			    PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
			}
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 1 para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/kick", true) == 0)
	{
		if (NivelAdmin[playerid] == 1 || NivelAdmin[playerid] == 2 || NivelAdmin[playerid] == 3 || NivelAdmin[playerid] == 4 || NivelAdmin[playerid] == 5)
		{
			new tmp1[256], tmp2[256], jugador, admin, string1[256], string2[256], string3[256], nombrejugador[MAX_PLAYER_NAME], nombreadmin[MAX_PLAYER_NAME];
			tmp1 = strtok(cmdtext, idx);
			tmp2 = strtok(cmdtext, idx);
			jugador = strval(tmp1);
			admin = playerid;
			if (!strlen(tmp1) || !strlen(tmp2)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /kick [ID] [Razon].");
        	if (strval(tmp1) == admin) return SendClientMessage(playerid, 0xFFFFFFFF, "No puedes kickearte a ti mismo.");
			GetPlayerName(jugador, nombrejugador, sizeof(nombrejugador));
			GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
			if (IsPlayerConnected(jugador))
			{
				format(string1, sizeof(string1), "%s ha sido kickeado. (Razon: %s.)", nombrejugador, cmdtext[7+strlen(tmp1)]);
				format(string2, sizeof(string2), "Has sido kickeado por %s. (Razon: %s.)", nombreadmin, cmdtext[7+strlen(tmp1)]);
				format(string3, sizeof(string3), "%s ha sido kickeado por %s. (Razon: %s.)", nombrejugador, nombreadmin, cmdtext[7+strlen(tmp1)]);
				SendClientMessage(admin, COLOR_AZUL, string1);
			    SendClientMessage(jugador, COLOR_VERDE_CLARO, string2);
			    SendClientMessageToAll(0xFFFFFFFF, string3);
				PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
				PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
				Kick(jugador);
			}
			else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 1 para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/ir", true) == 0)
	{
		if (NivelAdmin[playerid] == 2 || NivelAdmin[playerid] == 3 || NivelAdmin[playerid] == 4 || NivelAdmin[playerid] == 5)
		{
			new tmp[256], jugador, admin, vehiculo, string1[256], string2[256], nombrejugador[MAX_PLAYER_NAME], nombreadmin[MAX_PLAYER_NAME], Float:x, Float:y, Float:z, Float:angulo;
			tmp = strtok(cmdtext, idx);
			if (!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /ir [ID].");
			jugador = strval(tmp);
			admin = playerid;
			vehiculo = GetPlayerVehicleID(admin);
			if (strval(tmp) == admin) return SendClientMessage(playerid, 0xFFFFFFFF, "No puedes ir hacia ti mismo.");
			GetPlayerName(jugador, nombrejugador, sizeof(nombrejugador));
			GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
			GetPlayerPos(jugador, Float:x, Float:y, Float:z);
			GetPlayerFacingAngle(jugador, Float:angulo);
			if (IsPlayerConnected(jugador))
			{
				format(string1, sizeof(string1), "Has ido a la posicion de %s.", nombrejugador);
				format(string2, sizeof(string2), "%s ha ido a tu posicion.", nombreadmin);
				SendClientMessage(admin, COLOR_AZUL, string1);
				SendClientMessage(jugador, COLOR_VERDE_CLARO, string2);
				PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
				PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
				SetPlayerPos(admin, Float:x+2, Float:y, Float:z);
				SetPlayerInterior(admin, GetPlayerInterior(jugador));
				if (IsPlayerInAnyVehicle(admin))
				{
					SetVehiclePos(vehiculo, Float:x+2, Float:y, Float:z);
					PutPlayerInVehicle(admin, vehiculo, 0);
				}
				SetPlayerFacingAngle(admin, Float:angulo);
			}
			else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 2 para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/traer", true) == 0)
	{
		if (NivelAdmin[playerid] == 2 || NivelAdmin[playerid] == 3 || NivelAdmin[playerid] == 4 || NivelAdmin[playerid] == 5)
		{
			new tmp[256], jugador, admin, vehiculo, string1[256], string2[256], nombrejugador[MAX_PLAYER_NAME], nombreadmin[MAX_PLAYER_NAME], Float:x, Float:y, Float:z, Float:angulo;
			tmp = strtok(cmdtext, idx);
			if (!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /traer [ID].");
			jugador = strval(tmp);
			admin = playerid;
			vehiculo = GetPlayerVehicleID(jugador);
			if (strval(tmp) == admin) return SendClientMessage(playerid, 0xFFFFFFFF, "No puedes traerte a ti mismo.");
			GetPlayerName(jugador, nombrejugador, sizeof(nombrejugador));
			GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
			GetPlayerPos(admin, Float:x, Float:y, Float:z);
			GetPlayerFacingAngle(admin, Float:angulo);
			if (IsPlayerConnected(jugador))
			{
				format(string1, sizeof(string1), "Has traido a %s a tu posicion.", nombrejugador);
				format(string2, sizeof(string2), "Has sido traido a la posicion de %s.", nombreadmin);
				SendClientMessage(admin, COLOR_AZUL, string1);
				SendClientMessage(jugador, COLOR_VERDE_CLARO, string2);
				PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
				PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
				SetPlayerPos(jugador, Float:x+2, Float:y, Float:z);
				SetPlayerInterior(jugador, GetPlayerInterior(admin));
				if(IsPlayerInAnyVehicle(jugador))
				{
					SetVehiclePos(vehiculo, Float:x+2, Float:y, Float:z);
					PutPlayerInVehicle(jugador, vehiculo, 0);
				}
				SetPlayerFacingAngle(jugador, Float:angulo);
			}
			else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 2 para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/encarcelar", true) == 0)
	{
		if (NivelAdmin[playerid] == 2 || NivelAdmin[playerid] == 3 || NivelAdmin[playerid] == 4 || NivelAdmin[playerid] == 5)
		{
			new tmp1[256], tmp2[256], tmp3[256], jugador, admin, string1[256], string2[256], string3[256], nombrejugador[MAX_PLAYER_NAME], nombreadmin[MAX_PLAYER_NAME], minutos;
			tmp1 = strtok(cmdtext, idx);
			tmp2 = strtok(cmdtext, idx);
			tmp3 = strtok(cmdtext, idx);
			jugador = strval(tmp1);
			admin = playerid;
			if (!strlen(tmp1) || !strlen(tmp2) || !strlen(tmp3)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /encarcelar [ID] [Minutos] [Razon].");
        	if (strval(tmp1) == admin) return SendClientMessage(playerid, 0xFFFFFFFF, "No puedes encarcelarte a ti mismo.");
			GetPlayerName(jugador, nombrejugador, sizeof(nombrejugador));
			GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
			minutos = strval(tmp2);
			if (IsPlayerConnected(jugador))
			{
			    if (Encarcelado[jugador] == 1) return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador se encuentra encarcelado.");
			    Encarcelado[jugador] = 1;
				format(string1, sizeof(string1), "%s ha sido encarcelado durante %d minutos. (Razon: %s.)", nombrejugador, minutos, cmdtext[14+strlen(tmp1)+strlen(tmp2)]);
				format(string2, sizeof(string2), "Has sido encarcelado por %s durante %d minutos. (Razon: %s.)", nombreadmin, minutos, cmdtext[14+strlen(tmp1)+strlen(tmp2)]);
				format(string3, sizeof(string3), "%s ha sido encarcelado por %s durante %d minutos. (Razon: %s.)", nombrejugador, nombreadmin, minutos, cmdtext[14+strlen(tmp1)+strlen(tmp2)]);
				SendClientMessage(admin, COLOR_AZUL, string1);
			    SendClientMessage(jugador, COLOR_VERDE_CLARO, string2);
			    SendClientMessageToAll(0xFFFFFFFF, string3);
			    SetPlayerPos(jugador, 264.3726, 77.2826, 1001.0391);
			    SetPlayerFacingAngle(jugador, 269.9999);
			    SetPlayerInterior(jugador, 6);
			    SetCameraBehindPlayer(jugador);
				PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
				PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
				ktdesencarcelar = SetTimerEx("tdesencarcelar", minutos*60000, false, "d", jugador);
			}
			else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 2 para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/desencarcelar", true) == 0)
	{
		if (NivelAdmin[playerid] == 2 || NivelAdmin[playerid] == 3 || NivelAdmin[playerid] == 4 || NivelAdmin[playerid] == 5)
		{
			new tmp[256], jugador, admin, string1[256], string2[256], string3[256], nombrejugador[MAX_PLAYER_NAME], nombreadmin[MAX_PLAYER_NAME];
			tmp = strtok(cmdtext, idx);
			jugador = strval(tmp);
			admin = playerid;
			if (!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /desencarcelar [ID].");
			GetPlayerName(jugador, nombrejugador, sizeof(nombrejugador));
			GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
			if (IsPlayerConnected(jugador))
			{
			    if (Encarcelado[jugador] == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra encarcelado.");
			    Encarcelado[jugador] = 0;
				format(string1, sizeof(string1), "%s ha sido desencarcelado.", nombrejugador);
				format(string2, sizeof(string2), "Has sido desencarcelado por %s.", nombreadmin);
				format(string3, sizeof(string3), "%s ha sido desencarcelado por %s.", nombrejugador, nombreadmin);
				SendClientMessage(admin, COLOR_AZUL, string1);
			    SendClientMessage(jugador, COLOR_VERDE_CLARO, string2);
			    SendClientMessageToAll(0xFFFFFFFF, string3);
				PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
				PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
			    SetPlayerPos(jugador, 264.1163, 82.0803, 1001.0391);
				SetPlayerFacingAngle(jugador, 269.0000);
				SetPlayerInterior(jugador, 6);
				SetCameraBehindPlayer(jugador);
				KillTimer(ktdesencarcelar);
			}
			else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 2 para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/congelar", true) == 0)
	{
		if (NivelAdmin[playerid] == 2 || NivelAdmin[playerid] == 3 || NivelAdmin[playerid] == 4 || NivelAdmin[playerid] == 5)
		{
			new tmp1[256], tmp2[256], tmp3[256], jugador, admin, string1[256], string2[256], string3[256], nombrejugador[MAX_PLAYER_NAME], nombreadmin[MAX_PLAYER_NAME], minutos;
			tmp1 = strtok(cmdtext, idx);
			tmp2 = strtok(cmdtext, idx);
			tmp3 = strtok(cmdtext, idx);
			jugador = strval(tmp1);
			admin = playerid;
			if (!strlen(tmp1) || !strlen(tmp2) || !strlen(tmp3)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /congelar [ID] [Minutos] [Razon].");
        	if (strval(tmp1) == admin) return SendClientMessage(playerid, 0xFFFFFFFF, "No puedes congelarte a ti mismo.");
			GetPlayerName(jugador, nombrejugador, sizeof(nombrejugador));
			GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
			minutos = strval(tmp2);
			if (IsPlayerConnected(jugador))
			{
			    if (Congelado[jugador] == 1) return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador se encuentra congelado.");
			    Congelado[jugador] = 1;
				format(string1, sizeof(string1), "%s ha sido congelado durante %d minutos. (Razon: %s.)", nombrejugador, minutos, cmdtext[12+strlen(tmp1)+strlen(tmp2)]);
				format(string2, sizeof(string2), "Has sido congelado por %s durante %d minutos. (Razon: %s.)", nombreadmin, minutos, cmdtext[12+strlen(tmp1)+strlen(tmp2)]);
				format(string3, sizeof(string3), "%s ha sido congelado por %s durante %d minutos. (Razon: %s.)", nombrejugador, nombreadmin, minutos, cmdtext[12+strlen(tmp1)+strlen(tmp2)]);
				SendClientMessage(admin, COLOR_AZUL, string1);
			    SendClientMessage(jugador, COLOR_VERDE_CLARO, string2);
			    SendClientMessageToAll(0xFFFFFFFF, string3);
				TogglePlayerControllable(jugador, false);
			    SetCameraBehindPlayer(jugador);
				PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
				PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
				ktdescongelar = SetTimerEx("tdescongelar", minutos*60000, false, "d", jugador);
			}
			else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 2 para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/descongelar", true) == 0)
	{
		if (NivelAdmin[playerid] == 2 || NivelAdmin[playerid] == 3 || NivelAdmin[playerid] == 4 || NivelAdmin[playerid] == 5)
		{
			new tmp[256], jugador, admin, string1[256], string2[256], string3[256], nombrejugador[MAX_PLAYER_NAME], nombreadmin[MAX_PLAYER_NAME];
			tmp = strtok(cmdtext, idx);
			jugador = strval(tmp);
			admin = playerid;
			if (!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /descongelar [ID].");
			GetPlayerName(jugador, nombrejugador, sizeof(nombrejugador));
			GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
			if (IsPlayerConnected(jugador))
			{
			    if (Congelado[jugador] == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra congelado.");
			    Congelado[jugador] = 0;
				format(string1, sizeof(string1), "%s ha sido descongelado.", nombrejugador);
				format(string2, sizeof(string2), "Has sido descongelado por %s.", nombreadmin);
				format(string3, sizeof(string3), "%s ha sido descongelado por %s.", nombrejugador, nombreadmin);
				SendClientMessage(admin, COLOR_AZUL, string1);
			    SendClientMessage(jugador, COLOR_VERDE_CLARO, string2);
			    SendClientMessageToAll(0xFFFFFFFF, string3);
				PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
				PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
			    TogglePlayerControllable(jugador, true);
				SetCameraBehindPlayer(jugador);
				KillTimer(ktdescongelar);
			}
			else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 2 para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/advertir", true) == 0)
	{
		if (NivelAdmin[playerid] == 2 || NivelAdmin[playerid] == 3 || NivelAdmin[playerid] == 4 || NivelAdmin[playerid] == 5)
		{
			new tmp1[256], tmp2[256], jugador, admin, string1[256], string2[256], string3[256], nombrejugador[MAX_PLAYER_NAME], nombreadmin[MAX_PLAYER_NAME];
			tmp1 = strtok(cmdtext, idx);
			tmp2 = strtok(cmdtext, idx);
			if (!strlen(tmp1) || !strlen(tmp2)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /advertir [ID] [Razon].");
			jugador = strval(tmp1);
			admin = playerid;
			if (strval(tmp1) == admin) return SendClientMessage(playerid, 0xFFFFFFFF, "No puedes advertirte a ti mismo.");
			GetPlayerName(jugador, nombrejugador, sizeof(nombrejugador));
			GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
			if (IsPlayerConnected(jugador))
			{
			    if (Advertido[jugador] == 0)
			    {
			        Advertido[jugador] = 1;
					format(string1, sizeof(string1), "%s ha sido advertido. (Razon: %s.) (1/3)", nombrejugador, cmdtext[11+strlen(tmp1)]);
					format(string2, sizeof(string2), "Has sido advertido por %s. (Razon: %s.) (1/3)", nombreadmin, cmdtext[11+strlen(tmp1)]);
					format(string3, sizeof(string3), "%s ha sido advertido por %s. (Razon: %s.) (1/3)", nombrejugador, nombreadmin, cmdtext[11+strlen(tmp1)]);
					SendClientMessage(admin, COLOR_AZUL, string1);
					SendClientMessage(jugador, COLOR_VERDE_CLARO, string2);
					SendClientMessageToAll(0xFFFFFFFF, string3);
    				PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
    				PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
				}
				else if (Advertido[jugador] == 1)
				{
				    Advertido[jugador] = 2;
				    format(string1, sizeof(string1), "%s ha sido advertido. (Razon: %s.) (2/3)", nombrejugador, cmdtext[11+strlen(tmp1)]);
					format(string2, sizeof(string2), "Has sido advertido por %s. (Razon: %s.) (2/3)", nombreadmin, cmdtext[11+strlen(tmp1)]);
					format(string3, sizeof(string3), "%s ha sido advertido por %s. (Razon: %s.) (2/3)", nombrejugador, nombreadmin, cmdtext[11+strlen(tmp1)]);
					SendClientMessage(admin, COLOR_AZUL, string1);
					SendClientMessage(jugador, COLOR_VERDE_CLARO, string2);
					SendClientMessageToAll(0xFFFFFFFF, string3);
    				PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
    				PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
				}
				else if (Advertido[jugador] == 2)
				{
				    format(string1, sizeof(string1), "%s ha sido advertido. (Razon: %s.) (3/3)", nombrejugador, cmdtext[11+strlen(tmp1)]);
					format(string2, sizeof(string2), "Has sido advertido por %s. (Razon: %s.) (3/3)", nombreadmin, cmdtext[11+strlen(tmp1)]);
					format(string3, sizeof(string3), "%s ha sido advertido por %s. (Razon: %s.) (3/3)", nombrejugador, nombreadmin, cmdtext[11+strlen(tmp1)]);
					SendClientMessage(admin, COLOR_AZUL, string1);
					SendClientMessage(jugador, COLOR_VERDE_CLARO, string2);
					SendClientMessageToAll(0xFFFFFFFF, string3);
    				PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
    				PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
    				Kick(jugador);
				}
			}
			else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 2 para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/DarVida", true) == 0)
	{
		if (NivelAdmin[playerid] == 3 || NivelAdmin[playerid] == 4 || NivelAdmin[playerid] == 5)
		{
			new tmp1[256], tmp2[256], jugador, admin, string1[256], string2[256], nombrejugador[MAX_PLAYER_NAME], nombreadmin[MAX_PLAYER_NAME], Float:vida;
			tmp1 = strtok(cmdtext, idx);
			tmp2 = strtok(cmdtext, idx);
			if (!strlen(tmp1) || !strlen(tmp2)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /Darvida [ID] [Cantidad].");
			jugador = strval(tmp1);
			admin = playerid;
			GetPlayerName(jugador, nombrejugador, sizeof(nombrejugador));
			GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
			vida = float(strval(tmp2));
			if (IsPlayerConnected(jugador))
			{
				format(string1, sizeof(string1), "Has puesto la vida de %s en %f.", nombrejugador, vida);
				format(string2, sizeof(string2), "%s ha puesto tu vida en %f.", nombreadmin, vida);
				SendClientMessage(admin, 0xFFFFFFFF, string1);
				SendClientMessage(jugador, 0xFFFFFFFF, string2);
				PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
				PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
				SetPlayerHealth(jugador, vida);
			}
			else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 3 para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/dardinero", true) == 0)
	{
		if (NivelAdmin[playerid] == 3 || NivelAdmin[playerid] == 4 || NivelAdmin[playerid] == 5)
		{
			new tmp1[256], tmp2[256], jugador, admin, string1[256], string2[256], nombrejugador[MAX_PLAYER_NAME], nombreadmin[MAX_PLAYER_NAME], dinero;
			tmp1 = strtok(cmdtext, idx);
			tmp2 = strtok(cmdtext, idx);
			if (!strlen(tmp1) || !strlen(tmp2)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /dardinero [ID] [Cantidad].");
			if (strval(tmp2) < 100 || strval(tmp2) > 1000000) return SendClientMessage(playerid, 0xFFFFFFFF, "Debes dar entre $100 y $1000000.");
			jugador = strval(tmp1);
			admin = playerid;
			GetPlayerName(jugador, nombrejugador, sizeof(nombrejugador));
			GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
			dinero = strval(tmp2);
			if (IsPlayerConnected(jugador))
			{
				format(string1, sizeof(string1), "Le has dado $%d a %s.", dinero, nombrejugador);
				format(string2, sizeof(string2), "%s te ha dado $%d.", nombreadmin, dinero);
				SendClientMessage(admin, 0xFFFFFFFF, string1);
				SendClientMessage(jugador, COLOR_VERDE_CLARO, string2);
				PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
				PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
				GivePlayerMoney(jugador, dinero);
			}
			else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 3 para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/dararma", true) == 0)
	{
		if (NivelAdmin[playerid] == 3 || NivelAdmin[playerid] == 4 || NivelAdmin[playerid] == 5)
		{
			new tmp1[256], tmp2[256], tmp3[256], jugador, admin, string1[256], string2[256], nombrejugador[MAX_PLAYER_NAME], nombreadmin[MAX_PLAYER_NAME], arma, municion;
			tmp1 = strtok(cmdtext, idx);
			tmp2 = strtok(cmdtext, idx);
			tmp3 = strtok(cmdtext, idx);
			if (!strlen(tmp1) || !strlen(tmp2) || !strlen(tmp3)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /dararma [ID] [Arma] [Municion].");
			jugador = strval(tmp1);
			admin = playerid;
			GetPlayerName(jugador, nombrejugador, sizeof(nombrejugador));
			GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
			arma = strval(tmp2);
			municion = strval(tmp3);
			if (IsPlayerConnected(jugador))
			{
				format(string1, sizeof(string1), "Le has dado a %s un arma. (ID: %d - Municion: %d)", nombrejugador, arma, municion);
				format(string2, sizeof(string2), "%s te ha dado un arma. (ID: %d - Municion: %d)", nombreadmin, arma, municion);
				SendClientMessage(admin, 0xFFFFFFFF, string1);
				SendClientMessage(jugador, COLOR_VERDE_CLARO, string2);
				PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
				PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
				GivePlayerWeapon(jugador, arma, municion);
			}
			else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 3 para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/blindaje", true) == 0)
	{
		if (NivelAdmin[playerid] == 3 || NivelAdmin[playerid] == 4 || NivelAdmin[playerid] == 5)
		{
			new tmp1[256], tmp2[256], jugador, admin, string1[256], string2[256], nombrejugador[MAX_PLAYER_NAME], nombreadmin[MAX_PLAYER_NAME], Float:blindaje;
			tmp1 = strtok(cmdtext, idx);
			tmp2 = strtok(cmdtext, idx);
			if (!strlen(tmp1) || !strlen(tmp2)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /blindaje [ID] [Cantidad].");
			jugador = strval(tmp1);
			admin = playerid;
			GetPlayerName(jugador, nombrejugador, sizeof(nombrejugador));
			GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
			blindaje = float(strval(tmp2));
			if (IsPlayerConnected(jugador))
			{
				format(string1, sizeof(string1), "Has puesto el blindaje de %s en %f.", nombrejugador, blindaje);
				format(string2, sizeof(string2), "%s ha puesto tu blindaje en %f.", nombreadmin, blindaje);
				SendClientMessage(admin, 0xFFFFFFFF, string1);
				SendClientMessage(jugador, COLOR_VERDE_CLARO, string2);
				PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
				PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
				SetPlayerArmour(jugador, blindaje);
			}
			else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 3 para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/Autovida", true) == 0)
	{
		if (NivelAdmin[playerid] == 3 || NivelAdmin[playerid] == 4 || NivelAdmin[playerid] == 5)
		{
			new tmp1[256], tmp2[256], jugador, admin, string1[256], string2[256], nombrejugador[MAX_PLAYER_NAME], nombreadmin[MAX_PLAYER_NAME], Float:vvida;
			tmp1 = strtok(cmdtext, idx);
			tmp2 = strtok(cmdtext, idx);
			if (!strlen(tmp1) || !strlen(tmp2)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: {00FFFF}/Autovida [ID] [Cantidad].");
			jugador = strval(tmp1);
			admin = playerid;
			GetPlayerName(jugador, nombrejugador, sizeof(nombrejugador));
			GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
			vvida = float(strval(tmp2));
			if (IsPlayerConnected(jugador))
			{
				format(string1, sizeof(string1), "Has puesto la vida del vehiculo de %s en %f.", nombrejugador, vvida);
				format(string2, sizeof(string2), "%s ha puesto la vida de tu vehiculo en %f.", nombreadmin, vvida);
				SendClientMessage(admin, 0xFFFFFFFF, string1);
				SendClientMessage(jugador, COLOR_VERDE_CLARO, string2);
				PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
				PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
				SetVehicleHealth(GetPlayerVehicleID(jugador), vvida);
			}
			else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 3 para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/AutoReparar", true) == 0)
	{
		if (NivelAdmin[playerid] == 3 || NivelAdmin[playerid] == 4 || NivelAdmin[playerid] == 5)
		{
			new tmp[256], jugador, admin, string1[256], string2[256], nombrejugador[MAX_PLAYER_NAME], nombreadmin[MAX_PLAYER_NAME];
			tmp = strtok(cmdtext, idx);
			if (!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /Autoreparar [ID].");
			jugador = strval(tmp);
			admin = playerid;
			GetPlayerName(jugador, nombrejugador, sizeof(nombrejugador));
			GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
			if (IsPlayerConnected(jugador))
			{
			    if (IsPlayerInAnyVehicle(jugador))
			    {
					format(string1, sizeof(string1), "Has reparado el vehiculo de %s.", nombrejugador);
					format(string2, sizeof(string2), "%s ha reparado tu vehiculo.", nombreadmin);
					SendClientMessage(admin, COLOR_AZUL, string1);
					SendClientMessage(jugador, COLOR_VERDE_CLARO, string2);
					PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
					PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
					RepairVehicle(GetPlayerVehicleID(jugador));
				}
				else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra en un vehiculo.");
			}
			else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 3 para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/Autodestruir", true) == 0)
	{
		if (NivelAdmin[playerid] == 3 || NivelAdmin[playerid] == 4 || NivelAdmin[playerid] == 5)
		{
			new tmp1[256], jugador, admin, string1[256], string2[256], nombrejugador[MAX_PLAYER_NAME], nombreadmin[MAX_PLAYER_NAME];
			tmp1 = strtok(cmdtext, idx);
			if (!strlen(tmp1)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /Autodestruir [ID].");
			jugador = strval(tmp1);
			admin = playerid;
			GetPlayerName(jugador, nombrejugador, sizeof(nombrejugador));
			GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
			if (IsPlayerConnected(jugador))
			{
			    if (IsPlayerInAnyVehicle(jugador))
			    {
					format(string1, sizeof(string1), "Has destruido el vehiculo de %s.", nombrejugador);
					format(string2, sizeof(string2), "%s ha destruido tu vehiculo.", nombreadmin);
					SendClientMessage(admin, COLOR_AZUL, string1);
					SendClientMessage(jugador, COLOR_VERDE_CLARO, string2);
					PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
					PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
					DestroyVehicle(GetPlayerVehicleID(jugador));
				}
				else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra en un vehiculo.");
			}
			else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nviel 3 para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/askin", true) == 0)
	{
		if (NivelAdmin[playerid] == 3 || NivelAdmin[playerid] == 4 || NivelAdmin[playerid] == 5)
		{
			new tmp1[256], tmp2[256], jugador, admin, string1[256], string2[256], nombrejugador[MAX_PLAYER_NAME], nombreadmin[MAX_PLAYER_NAME], skin;
			tmp1 = strtok(cmdtext, idx);
			tmp2 = strtok(cmdtext, idx);
			if (!strlen(tmp1) || !strlen(tmp2)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /askin [ID] [Skin].");
			jugador = strval(tmp1);
			admin = playerid;
			GetPlayerName(jugador, nombrejugador, sizeof(nombrejugador));
			GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
			skin = strval(tmp2);
			if (IsPlayerConnected(jugador))
			{
				format(string1, sizeof(string1), "Has cambiado el skin de %s. (ID: %d)", nombrejugador, skin);
				format(string2, sizeof(string2), "%s ha cambiado tu skin. (ID: %d)", nombreadmin, skin);
				SendClientMessage(admin, COLOR_AZUL, string1);
				SendClientMessage(jugador, COLOR_VERDE_CLARO, string2);
				PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
				PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
				SetPlayerSkin(jugador, skin);
			}
			else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 3 para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/callar", true) == 0)
	{
		if (NivelAdmin[playerid] == 4 || NivelAdmin[playerid] == 5)
		{
			new tmp1[256], tmp2[256], jugador, admin, string1[256], string2[256], string3[256], string4[256], string5[256], string6[256], nombrejugador[MAX_PLAYER_NAME], nombreadmin[MAX_PLAYER_NAME];
			tmp1 = strtok(cmdtext, idx);
			tmp2 = strtok(cmdtext, idx);
			if (!strlen(tmp1) || !strlen(tmp2)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /callar [ID] [Razon]. Para que deje de estar callado, usa /callar [ID].");
			jugador = strval(tmp1);
			admin = playerid;
			if (strval(tmp1) == admin) return SendClientMessage(playerid, 0xFFFFFFFF, "No puedes callarte a ti mismo.");
			GetPlayerName(jugador, nombrejugador, sizeof(nombrejugador));
			GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
			if (IsPlayerConnected(jugador))
			{
			    if (Callado[jugador] == 0)
			    {
					format(string4, 256, "%s ha sido callado. (Razon: %s.)", nombrejugador, cmdtext[9+strlen(tmp1)]);
					format(string5, 256, "Has sido callado por %s. (Razon: %s.)", nombreadmin, cmdtext[9+strlen(tmp1)]);
					format(string6, 256, "%s ha sido callado por %s. (Razon: %s.)", nombrejugador, nombreadmin, cmdtext[9+strlen(tmp1)]);
					SendClientMessage(admin, COLOR_AZUL, string4);
					SendClientMessage(jugador, COLOR_VERDE_CLARO, string5);
					SendClientMessageToAll(0xFFFFFFFF, string6);
    				PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
    				PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
    				Callado[jugador] = 1;
				}
				else if (Callado[jugador] == 1)
				{
				    format(string1, sizeof(string1), "%s ha dejado de ser callado.", nombrejugador, cmdtext[9+strlen(tmp1)]);
					format(string2, sizeof(string2), "Has dejado de estar callado por %s.", nombreadmin, cmdtext[9+strlen(tmp1)]);
					format(string3, sizeof(string3), "%s ha dejado de estar callado por %s.", nombrejugador, nombreadmin, cmdtext[9+strlen(tmp1)]);
					SendClientMessage(admin, COLOR_AZUL, string1);
					SendClientMessage(jugador, COLOR_VERDE_CLARO, string2);
					SendClientMessageToAll(0xFFFFFFFF, string3);
    				PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
    				PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
    				Callado[jugador] = 0;
				}
			}
			else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 4 para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/hora", true) == 0)
	{
		if (NivelAdmin[playerid] == 4 || NivelAdmin[playerid] == 5)
		{
			new tmp1[256], tmp2[256], admin, string[256], nombreadmin[MAX_PLAYER_NAME], hora, minuto;
			tmp1 = strtok(cmdtext, idx);
			tmp2 = strtok(cmdtext, idx);
			if (!strlen(tmp1) || !strlen(tmp2)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /hora [Hora] [Minuto].");
			admin = playerid;
			GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
			hora = strval(tmp1);
			minuto = strval(tmp2);
			format(string, sizeof(string), "%s ha puesto la hora en %d:%d.", nombreadmin, hora, minuto);
			SendClientMessageToAll(0xFFFFFFFF, string);
			PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
			for(new i=0; i < MAX_PLAYERS; i++)
			{
				SetPlayerTime(i, hora, minuto);
			}
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 4 para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/clima", true) == 0)
	{
		if (NivelAdmin[playerid] == 4 || NivelAdmin[playerid] == 5)
		{
			new tmp[256], admin, string[256], nombreadmin[MAX_PLAYER_NAME], clima;
			tmp = strtok(cmdtext, idx);
			if (!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /clima [ID de Clima].");
			admin = playerid;
			GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
			clima = strval(tmp);
			format(string, sizeof(string), "%s ha cambiado el clima. (ID: %d.)", nombreadmin, clima);
			SendClientMessageToAll(0xFFFFFFFF, string);
			PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
			for(new i=0; i < MAX_PLAYERS; i++)
			{
				SetPlayerWeather(i, clima);
			}
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 4 para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/ban", true) == 0)
	{
		if (NivelAdmin[playerid] == 4 || NivelAdmin[playerid] == 5)
		{
			new tmp1[256], tmp2[256], jugador, admin, string1[256], string2[256], string3[256], nombrejugador[MAX_PLAYER_NAME], nombreadmin[MAX_PLAYER_NAME], archivo[256];
			tmp1 = strtok(cmdtext, idx);
			tmp2 = strtok(cmdtext, idx);
			jugador = strval(tmp1);
			admin = playerid;
			if (!strlen(tmp1) || !strlen(tmp2)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /ban [ID] [Razon].");
			if (strval(tmp1) == admin) return SendClientMessage(playerid, 0xFFFFFFFF, "No puedes banearte a ti mismo.");
			GetPlayerName(jugador, nombrejugador, sizeof(nombrejugador));
			GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
			if (IsPlayerConnected(jugador))
			{
				format(string1, sizeof(string1), "%s ha sido baneado. (Razon: %s.)", nombrejugador, cmdtext[6+strlen(tmp1)]);
				format(string2, sizeof(string2), "Has sido baneado por %s. (Razon: %s.)", nombreadmin, cmdtext[6+strlen(tmp1)]);
				format(string3, sizeof(string3), "%s ha sido baneado por %s. (Razon: %s.)", nombrejugador, nombreadmin, cmdtext[6+strlen(tmp1)]);
				SendClientMessage(admin, COLOR_AZUL, string1);
			    SendClientMessage(jugador, COLOR_VERDE_CLARO, string2);
			    SendClientMessageToAll(0xFFFFFFFF, string3);
				PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
				PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
				Ban(jugador);
				format(archivo, sizeof(archivo), "%s.ini", nombrejugador);
				dini_IntSet(archivo, "Baneado", 1);
			}
			else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 4 para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/mundo", true) == 0)
	{
		if (NivelAdmin[playerid] == 4 || NivelAdmin[playerid] == 5)
		{
			new tmp1[256], tmp2[256], jugador, admin, string1[256], string2[256], nombrejugador[MAX_PLAYER_NAME], nombreadmin[MAX_PLAYER_NAME], mundo;
			tmp1 = strtok(cmdtext, idx);
			tmp2 = strtok(cmdtext, idx);
			if (!strlen(tmp1) || !strlen(tmp2)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /mundo [ID] [Mundo].");
			jugador = strval(tmp1);
			admin = playerid;
			GetPlayerName(jugador, nombrejugador, sizeof(nombrejugador));
			GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
			mundo = strval(tmp2);
			if (IsPlayerConnected(jugador))
			{
				format(string1, sizeof(string1), "Has puesto a %s en el mundo %d.", nombrejugador, mundo);
				format(string2, sizeof(string2), "%s te ha puesto en el mundo %d.", nombreadmin, mundo);
				SendClientMessage(admin, COLOR_AZUL, string1);
				SendClientMessage(jugador, COLOR_VERDE_CLARO, string2);
				PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
				PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
				SetPlayerVirtualWorld(jugador, mundo);
			}
			else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 4 para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/cambiarinterior", true) == 0)
	{
		if (NivelAdmin[playerid] == 4 || NivelAdmin[playerid] == 5)
		{
			new tmp1[256], tmp2[256], jugador, admin, string1[256], string2[256], nombrejugador[MAX_PLAYER_NAME], nombreadmin[MAX_PLAYER_NAME], interior;
			tmp1 = strtok(cmdtext, idx);
			tmp2 = strtok(cmdtext, idx);
			if (!strlen(tmp1) || !strlen(tmp2)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /cambiarinterior [ID] [Interior].");
			jugador = strval(tmp1);
			admin = playerid;
			GetPlayerName(jugador, nombrejugador, sizeof(nombrejugador));
			GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
			interior = strval(tmp2);
			if (IsPlayerConnected(jugador))
			{
				format(string1, sizeof(string1), "Has puesto a %s en el interior %d.", nombrejugador, interior);
				format(string2, sizeof(string2), "%s  te ha puesto en el interior %d.", nombreadmin, interior);
				SendClientMessage(admin, COLOR_AZUL, string1);
				SendClientMessage(jugador, COLOR_VERDE_CLARO, string2);
				PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
				PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
				SetPlayerInterior(jugador, interior);
			}
			else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 4 para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/vnitro", true) == 0)
	{
		if (NivelAdmin[playerid] == 4 || NivelAdmin[playerid] == 5)
		{
			new tmp[256], jugador, admin, string1[256], string2[256], nombrejugador[MAX_PLAYER_NAME], nombreadmin[MAX_PLAYER_NAME];
			tmp = strtok(cmdtext, idx);
			if (!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /vnitro [ID].");
			jugador = strval(tmp);
			admin = playerid;
			GetPlayerName(jugador, nombrejugador, sizeof(nombrejugador));
			GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
			if (IsPlayerConnected(jugador))
			{
			    if (IsPlayerInAnyVehicle(jugador))
			    {
					format(string1, sizeof(string1), "Le has aсadido nitro al vehiculo de %s.", nombrejugador);
					format(string2, sizeof(string2), "%s le ha aсadido nitro a tu vehiculo.", nombreadmin);
					SendClientMessage(admin, COLOR_AZUL, string1);
					SendClientMessage(jugador, COLOR_VERDE_CLARO, string2);
					PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
					PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
					AddVehicleComponent(GetPlayerVehicleID(jugador), 1010);
				}
				else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra en un vehiculo.");
			}
			else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 4 para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/AdminV", true) == 0)
	{
		if (NivelAdmin[playerid] == 4 || NivelAdmin[playerid] == 5)
		{
			new tmp1[256], tmp2[256], tmp3[256], tmp4[256], jugador, admin, string1[256], string2[256], nombrejugador[MAX_PLAYER_NAME], nombreadmin[MAX_PLAYER_NAME], Float:x, Float:y, Float:z, Float:angulo, vehiculo, color1, color2, idvehiculo;
			tmp1 = strtok(cmdtext, idx);
			tmp2 = strtok(cmdtext, idx);
			tmp3 = strtok(cmdtext, idx);
			tmp4 = strtok(cmdtext, idx);
			if (!strlen(tmp1)) return SendClientMessage(playerid, 0xFFFFFFFF, "Debes especificar un jugador.");
			if (!strlen(tmp2)) return SendClientMessage(playerid, 0xFFFFFFFF, "Debes especificar un vehiculo.");
			jugador = strval(tmp1);
			admin = playerid;
			if (IsPlayerInAnyVehicle(jugador)) return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador se encuentra en un vehiculo.");
			GetPlayerName(jugador, nombrejugador, sizeof(nombrejugador));
			GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
			GetPlayerPos(jugador, Float:x, Float:y, Float:z);
			GetPlayerFacingAngle(jugador, Float:angulo);
			vehiculo = strval(tmp2);
			color1 = strval(tmp3);
			color2 = strval(tmp4);
			if (!IsNumeric(tmp2)) vehiculo = GetVehicleModelIDFromName(tmp2);
			//if (strval(tmp2) < 400 || strval(tmp2) > 611) return SendClientMessage(playerid, 0xFFFFFFFF, "Vehiculo invalido. Elige entre 400 y 611.");
			if (!strlen(tmp3)) color1 = random(126); else color1 = strval(tmp3);
			if (!strlen(tmp4)) color2 = random(126); else color2 = strval(tmp4);
			if (IsPlayerConnected(jugador))
			{
				format(string1, sizeof(string1), "Le has dado a %s un vehiculo. (ID: %d - Color 1: %d - Color 2: %d)", nombrejugador, vehiculo, color1, color2);
				format(string2, sizeof(string2), "%s te ha dado un vehiculo. (ID: %d - Color 1: %d - Color 2: %d)", nombreadmin, vehiculo, color1, color2);
				SendClientMessage(admin, COLOR_AZUL, string1);
				SendClientMessage(jugador, COLOR_VERDE_CLARO, string2);
				PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
				PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
				idvehiculo = CreateVehicle(vehiculo, Float:x, Float:y, Float:z, Float:angulo, color1, color2, 0);
				PutPlayerInVehicle(jugador, idvehiculo, 0);
			}
			else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 4 para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/puntaje", true) == 0)
	{
		if (NivelAdmin[playerid] == 4 || NivelAdmin[playerid] == 5)
		{
			new tmp1[256], tmp2[256], jugador, admin, string1[256], string2[256], nombrejugador[MAX_PLAYER_NAME], nombreadmin[MAX_PLAYER_NAME], puntos;
			tmp1 = strtok(cmdtext, idx);
			tmp2 = strtok(cmdtext, idx);
			if (!strlen(tmp1) || !strlen(tmp2)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /puntaje [ID] [Cantidad].");
			jugador = strval(tmp1);
			admin = playerid;
			GetPlayerName(jugador, nombrejugador, sizeof(nombrejugador));
			GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
			puntos = strval(tmp2);
			if (IsPlayerConnected(jugador))
			{
				format(string1, sizeof(string1), "Has puesto los puntos de %s en %d.", nombrejugador, puntos);
				format(string2, sizeof(string2), "%s ha puesto tus puntos en %d.", nombreadmin, puntos);
				SendClientMessage(admin, 0xFFFFFFFF, string1);
				SendClientMessage(jugador, COLOR_VERDE_CLARO, string2);
				PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
				PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
				SetPlayerScore(jugador, puntos);
			}
			else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 4 para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/niveladmin", true) == 0)
	{
		if (NivelAdmin[playerid] == 5)
		{
			new tmp1[256], tmp2[256], jugador, admin, string1[256], string2[256], nombrejugador[MAX_PLAYER_NAME], nombreadmin[MAX_PLAYER_NAME], nivel, archivo[256];
			tmp1 = strtok(cmdtext, idx);
			tmp2 = strtok(cmdtext, idx);
			if (!strlen(tmp1) || !strlen(tmp2)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /niveladmin [ID] [Nivel].");
			if (strval(tmp2) < 0 || strval(tmp2) > 5) return SendClientMessage(playerid, 0xFFFFFFFF, "Debes elegir un nivel de 0 a 5.");
			if (strval(tmp1) == admin) return SendClientMessage(playerid, 0xFFFFFFFF, "No puedes cambiar tu propio nivel.");
			jugador = strval(tmp1);
			admin = playerid;
			GetPlayerName(jugador, nombrejugador, sizeof(nombrejugador));
			GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
			nivel = strval(tmp2);
			if (IsPlayerConnected(jugador))
			{
			    NivelAdmin[jugador] = nivel;
			    EsAdmin[jugador] = 1;
				format(string1, sizeof(string1), "Has puesto el nivel de administrador de %s en %d.", nombrejugador, nivel);
				format(string2, sizeof(string2), "%s ha puesto tu nivel de administrador en %d.", nombreadmin, nivel);
				SendClientMessage(admin, COLOR_AZUL, string1);
				SendClientMessage(jugador, COLOR_VERDE_CLARO, string2);
				PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
				PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
				format(archivo, sizeof(archivo), "JADMIN/Users/%s.ini", nombrejugador);
				if (dini_Exists(archivo))
				{
					dini_IntSet(archivo, "NivelAdmin", nivel);
				}
			}
			else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 5 para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/dios", true) == 0)
	{
	    if (NivelAdmin[playerid] == 5)
	    {
	        new tmp[256], jugador, admin, string1[256], string2[256], string3[256], string4[256], nombrejugador[MAX_PLAYER_NAME], nombreadmin[MAX_PLAYER_NAME], Float:vida;
	        tmp = strtok(cmdtext, idx);
	        if (!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /dios [ID]. Para desactivar el modo dios, usa /dios [ID] nuevamente.");
	        jugador = strval(tmp);
			admin = playerid;
			GetPlayerName(jugador, nombrejugador, sizeof(nombrejugador));
			GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
	        GetPlayerHealth(jugador, vida);
	        if (IsPlayerConnected(jugador))
	        {
	    		if (Dios[jugador] == 0)
	    		{
	    			Dios[jugador] = 1;
                    format(string1, sizeof(string1), "Has hecho inmortal a %s.", nombrejugador);
					format(string2, sizeof(string2), "%s te ha hecho inmortal.", nombreadmin);
					SendClientMessage(admin, COLOR_AZUL, string1);
					SendClientMessage(jugador, COLOR_VERDE_CLARO, string2);
					PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
					PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
					SetPlayerHealth(jugador, 100000);
				}
				else if (Dios[jugador] == 1)
				{
				    Dios[jugador] = 0;
				    format(string3, sizeof(string3), "Le has quitado la inmortalidad a %s.", nombrejugador);
					format(string4, 256, "%s te ha quitado la inmortalidad.", nombreadmin);
					SendClientMessage(admin, COLOR_AZUL, string3);
					SendClientMessage(jugador, COLOR_VERDE_CLARO, string4);
					PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
					PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
					SetPlayerHealth(jugador, vida);
			    }
			}
            else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 5 para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/vdios", true) == 0)
	{
	    if (NivelAdmin[playerid] == 5)
	    {
	        new tmp[256], jugador, admin, string1[256], string2[256], string3[256], string4[256], nombrejugador[MAX_PLAYER_NAME], nombreadmin[MAX_PLAYER_NAME], Float:vida;
	        tmp = strtok(cmdtext, idx);
	        if (!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /vdios [ID]. Para desactivar el modo dios, usa /vdios [ID] nuevamente.");
	        jugador = strval(tmp);
			admin = playerid;
			GetPlayerName(jugador, nombrejugador, sizeof(nombrejugador));
			GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
	        GetVehicleHealth(GetPlayerVehicleID(jugador), vida);
	        if (IsPlayerConnected(jugador))
	        {
	    		if (VDios[jugador] == 0)
	    		{
	    			VDios[jugador] = 1;
                    format(string1, sizeof(string1), "Has hecho indestructibles los vehiculos de %s.", nombrejugador);
					format(string2, sizeof(string2), "%s ha hecho que tus vehiculos sean indestructibles.", nombreadmin);
					SendClientMessage(admin, COLOR_AZUL, string1);
					SendClientMessage(jugador, COLOR_VERDE_CLARO, string2);
					PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
					PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
					ktvdios = SetTimerEx("tvdios", 0, true, "d", jugador);
				}
				else if (VDios[jugador] == 1)
				{
				    VDios[jugador] = 0;
				    format(string3, sizeof(string3), "Le has quitado la idestructibilidad de vehiculos a %s.", nombrejugador);
					format(string4, 256, "%s te ha quitado la indestructibilidad de vehiculos.", nombreadmin);
					SendClientMessage(admin, COLOR_AZUL, string3);
					SendClientMessage(jugador, COLOR_VERDE_CLARO, string4);
					PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
					PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
					KillTimer(ktvdios);
			    }
			}
            else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 5 para usar este comando.");
		return 1;
	}
	if (strcmp(cmd, "/nombre", true) == 0)
	{
		if (NivelAdmin[playerid] == 5)
		{
			new tmp1[256], tmp2[256], jugador, admin, string1[256], string2[256], nombrejugador[MAX_PLAYER_NAME], nombreadmin[MAX_PLAYER_NAME], archivo[256];
			tmp1 = strtok(cmdtext, idx);
			tmp2 = strtok(cmdtext, idx);
			if (!strlen(tmp1) || !strlen(tmp2)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: /nombre [ID] [Nombre].");
			jugador = strval(tmp1);
			admin = playerid;
			GetPlayerName(jugador, nombrejugador, sizeof(nombrejugador));
			GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
			if (IsPlayerConnected(jugador))
			{
				format(string1, sizeof(string1), "Has cambiado el nombre de de %s a %s.", nombrejugador, cmdtext[9+strlen(tmp1)]);
				format(string2, sizeof(string2), "%s ha cambiado tu nombre a %s.", nombreadmin, cmdtext[9+strlen(tmp1)]);
				SendClientMessage(admin, 0xFFFFFFFF, string1);
				SendClientMessage(jugador, 0xFFFFFFFF, string2);
				PlayerPlaySound(admin, 1057, 0.0, 0.0, 0.0);
				PlayerPlaySound(jugador, 1057, 0.0, 0.0, 0.0);
				SetPlayerName(jugador, cmdtext[9+strlen(tmp1)]);
				ForceClassSelection(jugador);
				SetPlayerHealth(jugador, 0.0);
				Ingreso[jugador] = 0;
				format(archivo, sizeof(archivo), "JADMIN/Users/%s.ini", cmdtext[9+strlen(tmp1)]);
				if (dini_Exists(archivo)) return SendClientMessage(playerid, 0xFFFFFFFF, "Tu nombre se encuentra registrado. Usa /ingreso [contraseсa] para ingresar.");
				if (!dini_Exists(archivo)) return SendClientMessage(playerid, 0xFFFFFFFF, "Tu nombre no se encuentra registrado. Usa /registro [contraseсa] para registrarte.");
			}
			else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");
		}
		else return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 5 para usar este comando.");
		return 1;
	}
	return 0;
}

public OnPlayerRequestSpawn(playerid)
{
    new archivo[256], usuario[MAX_PLAYER_NAME];
	GetPlayerName(playerid, usuario, sizeof(usuario));
    format(archivo, sizeof(archivo), "JADMIN/Users/%s.ini", usuario);
    if(dini_Exists(archivo))
    {
        if(Ingreso[playerid] == 0)
        {
     		SendClientMessage(playerid, 0xFFFFFFFF, "Debes ingresar antes de spawnear. Usa /ingreso [Contraseсa].");
            return 0;
		}
	}
	else if(!dini_Exists(archivo))
	{
		SendClientMessage(playerid, 0xFFFFFFFF, "Debes ingresar antes de spawnear. Como no estas registrado, primero usa /registro [Contraseсa].");
		return 0;
	}
	return 1;
}
////////////////////////////////////////////////////
public tvdios(playerid)
{
	if (IsPlayerInAnyVehicle(playerid))
	{
	    RepairVehicle(GetPlayerVehicleID(playerid));
	}
	return 1;
}
////////////////////////////////////////////////////
public tdescongelar(playerid)
{
    Congelado[playerid] = 0;
    PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
    TogglePlayerControllable(playerid, true);
	SetCameraBehindPlayer(playerid);
	return 1;
}
////////////////////////////////////////////////////
public tdesencarcelar(playerid)
{
    Encarcelado[playerid] = 0;
    PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
    SetPlayerPos(playerid, 264.1163, 82.0803, 1001.0391);
	SetPlayerFacingAngle(playerid, 269.0000);
	SetPlayerInterior(playerid, 6);
	SetCameraBehindPlayer(playerid);
	return 1;
}
////////////////////////////////////////////////////
public pingcheck(playerid)
{
	new archivo[256];
	format(archivo, sizeof(archivo), "JADMIN/config.ini");
	if (dini_Int(archivo, "PingCheck") == 1)
	{
	    if (GetPlayerPing(playerid) > dini_Int(archivo, "PingMaximo"))
	    {
	        new nombre[MAX_PLAYER_NAME], string[256];
			GetPlayerName(playerid, nombre, sizeof(nombre));
			format(string, sizeof(string), "%s ha sido auto-kickeado. (Razon: PING ALTO (%s).)", nombre, GetPlayerPing(playerid));
			SendClientMessageToAll(0xFFFFFFFF, string);
	        Kick(playerid);
		}
	}
	return 1;
}
////////////////////////////////////////////////////
stock EnviarReporte(const string[])
{
	for(new adminid=0; adminid <MAX_PLAYERS; adminid++)
	{
		if (EsAdmin[adminid] == 1)
		{
			SendClientMessage(adminid, 0xFFFFFFFF, string);
		}
	}
	return 1;
}
////////////////////////////////////////////////////
stock GetVehicleModelIDFromName(vname[])
{
	for(new i = 0; i < 211; i++)
	{
		if ( strfind(Vehiculos[i], vname, true) != -1 )
			return i + 400;
	}
	return -1;
}
////////////////////////////////////////////////////
stock IsNumeric(const string[])
{
	new length=strlen(string);
	if(length==0)
	{
		return 0;
	}
	for (new i=0; i<length; i++)
	{
		if (!((string[i] <= '9' && string[i] >= '0') || (i==0 && (string[i]=='-' || string[i]=='+'))))
		{
			return false;
		}
	}
	return 0;
}
////////////////////////////////////////////////////
strtok(const string[], &index)
{
	new length = strlen(string);
	while ((index < length) && (string[index] <= ' '))
	{
		index++;
	}
	new offset = index;
	new result[20];
	while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
	{
		result[index - offset] = string[index];
		index++;
	}
	result[index - offset] = EOS;
	return result;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)