Ayuda por favor
#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
#2

lo que quieres es que al escribir esto:
Код:
/Mipass
se registre o se entre segъn sea el caso?
Reply
#3

NO QUISIERA QUE EN LUGAR DE APRETAR T Y LUEGO ESCRIBIR /INGRESO
ME APARESCA UN CUADRO DE DIALOGO QUE ME DIGA: TU NICK ESTA REGISTRADO INGRESA TU CONTRASEСA
Y SI NO ESTA REGISTRADO QUE APARESCA: TU NICK NO ESTA REGISTRADO, ESCRIBE UNA CONTRASEСA.
Reply
#4

para eso debes poner en uso el DIALOG, para el registro.
Buscarй algъn post y te lo posteo.

Saludos.
Reply
#5

Quote:
Originally Posted by GokuJahaziel
Посмотреть сообщение
NO QUISIERA QUE EN LUGAR DE APRETAR T Y LUEGO ESCRIBIR /INGRESO
ME APARESCA UN CUADRO DE DIALOGO QUE ME DIGA: TU NICK ESTA REGISTRADO INGRESA TU CONTRASEСA
Y SI NO ESTA REGISTRADO QUE APARESCA: TU NICK NO ESTA REGISTRADO, ESCRIBE UNA CONTRASEСA.
1- No hables con mayusculas activadas parece que nos gritas!
2- La proxima usa el buscador

Tutorial: https://sampforum.blast.hk/showthread.php?tid=136910
Reply
#6

Quote:
Originally Posted by The_Scope
Посмотреть сообщение
1- No hables con mayusculas activadas parece que nos gritas!
2- La proxima usa el buscador

Tutorial: https://sampforum.blast.hk/showthread.php?tid=136910
Perdon por escribir con mayusculas, veo que a ti no te gustan.

Lo que quiero es cambiarlo, no crear uno nuevo, quiero que se use el dialog y que Dini obtenga los datos de los players.
Osea que seria lo mismo, lo que cambiaria seria el ingreso y registro.
Reply
#7

Quote:
Originally Posted by GokuJahaziel
Посмотреть сообщение
Perdon por escribir con mayusculas, veo que a ti no te gustan.

Lo que quiero es cambiarlo, no crear uno nuevo, quiero que se use el dialog y que Dini obtenga los datos de los players.
Osea que seria lo mismo, lo que cambiaria seria el ingreso y registro.
Pues elimina el anterior y agrega el nuevo con Dialog basandote en ese tutorial
Reply
#8

Ese es el problema:
Quiero que alguien me ayude, ya que soy un poco nuevo en lo del Pawno Scripting,
Hace rato trate de hacerlo pero me salian errores,
por eso si me puedes ayudar seria mejor.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)