SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Español/Spanish

 
 
Thread Tools Display Modes
Old 09/11/2016, 09:36 PM   #1
Fagrinht
Gangsta
 
Join Date: Dec 2013
Posts: 600
Reputation: 18
Default Comando dejó de funcionar.

Buenas, en vez de definir las variables en el comando ejemplo new opcion; etc lo puse todo con params, y desde ahí dejó de funcionar el comando, que estoy haciendo mal? pongo por ejemplo /comprara vehiculo 112 1 1 y como ven puse en dicha sección del comando prints, pues el print("1"); lo marca pero no pasa a print("2"); ni al prinft, por qué? que tiene de malo el comando.

Code:
CMD:comprara(playerid, params[])
{
	if(sscanf(params, "s[10]", params[0]))
	{
		SendInfoMessage(playerid, 4, "/comprar [Opción]");
		SendClientMessage(playerid, AzulClaro, "Opciones: Propiedad, Vehículo.");
		return 1;
	}
	if(strcmp(params[0], "propiedad", true) == 0)
	{
		for(new h = 0; h < TotalCasas; h++)
		{
			if(PlayerToPoint(2.0, playerid, CasaInfo[h][hEx], CasaInfo[h][hEy], CasaInfo[h][hEz]) && CasaInfo[h][hVw] == GetPlayerVirtualWorld(playerid) && CasaInfo[h][hOwned] != -1)
			{
				if(CasaInfo[h][hOwned] == 1 && CasaInfo[h][hVendible] == 0) return SendInfoMessage(playerid, 0, "Esta casa no está en venta para usar este comando.");
				if(PlayerInfo[playerid][pDocumentacion] == 0) return SendInfoMessage(playerid, 0, "Necesitas tener la documentación en regla para comprar una propiedad.");
				if(GetPlayerLevel(playerid) < CasaInfo[h][hLevel])
				{
					format(string, sizeof(string), "* Necesitas nivel %d para comprar la casa.", CasaInfo[h][hLevel]);
					SendClientMessage(playerid, AzulClaro, string);
					return 1;
				}
				if(PlayerInfo[playerid][pPhousekey] != -1)
				{
					new casa = GetHouseFromId(PlayerInfo[playerid][pPhousekey]);
					if(strcmp(PlayerInfo[playerid][pNombre], CasaInfo[casa][hOwner], true) == 0) SendInfoMessage(playerid, 0, "Ya tienes actualmente una casa, escribe /vender propiedad para venderla.");
					else SendClientMessage(playerid, Naranja, "* Ya tienes alquilada una propiedad, escribe /noalquilar para dejarla.");
					return 1;
				}
				if(CasaInfo[h][hOwned] == 0)
				{
					if(SafeGetPlayerMoney(playerid) >= CasaInfo[h][hValue])
					{
						SafeGivePlayerMoney(playerid, -CasaInfo[h][hValue]);
						PlayerInfo[playerid][pPhousekey] = CasaInfo[h][hId], CasaInfo[h][hOwned] = 1;
						format(CasaInfo[h][hOwner], MAX_PLAYER_NAME, PlayerInfo[playerid][pNombre]);
						SetPlayerInterior(playerid, CasaInfo[h][hInterior]);
						SetPlayerPos(playerid, CasaInfo[h][hSx], CasaInfo[h][hSy], CasaInfo[h][hSz]);
						SetPlayerVirtualWorld(playerid, CasaInfo[h][hId]);
						PlayerInfo[playerid][pInt] = CasaInfo[h][hInterior];
						PlayerInfo[playerid][pVw] = CasaInfo[h][hId];
						SendClientMessage(playerid, Verde, "* Bienvenido a tu nueva casa. Escribe /ayuda casas para ver todos los comandos.");
					}
					else SendInfoMessage(playerid, 0, "No tienes el dinero suficiente para comprar esta propiedad.");
				}
				else
				{
					if(SafeGetPlayerMoney(playerid) >= CasaInfo[h][hVendible])
					{
						new jugador = ReturnUser(CasaInfo[h][hOwner]);
						if(jugador != INVALID_PLAYER_ID)
						{
							SafeGivePlayerMoneyEx(jugador, playerid, CasaInfo[h][hVendible]);
							format(string, sizeof(string), "[SMS inmobiliaria]: Hemos conseguido vender tu casa por %d$.", CasaInfo[h][hVendible]);
							SendClientMessage(jugador, Amarillo, string);
							PlayerInfo[jugador][pPhousekey] = -1;
							SaveValue(jugador, "Casa", PlayerInfo[jugador][pPhousekey]);
						}
						else
						{
							new sql[256];
							format(sql, sizeof(sql), "UPDATE players SET Banco = Banco + %d, Casa = -1 WHERE Nombre = '%s' LIMIT 1", CasaInfo[h][hVendible], CasaInfo[h][hOwner]);
							mysql_function_query(conectorBD, sql, false, "", "");
							SafeGivePlayerMoney(playerid, -CasaInfo[h][hVendible]);
						}
						CasaInfo[h][hVendible] = 0;
						format(CasaInfo[h][hOwner], MAX_PLAYER_NAME, PlayerInfo[playerid][pNombre]);
						PlayerInfo[playerid][pPhousekey] = CasaInfo[h][hId];
						SetPlayerInterior(playerid, CasaInfo[h][hInterior]);
						SetPlayerPos(playerid, CasaInfo[h][hSx], CasaInfo[h][hSy], CasaInfo[h][hSz]);
						SetPlayerVirtualWorld(playerid, CasaInfo[h][hId]);
						PlayerInfo[playerid][pInt] = CasaInfo[h][hInterior];
						PlayerInfo[playerid][pVw] = CasaInfo[h][hId];
						DestroyDynamicObject(CasaInfo[h][hCartel]);
						SendClientMessage(playerid, Verde, "* Bienvenido a tu nueva casa. Escribe /ayuda casas para ver todos los comandos.");
					}
					else SendInfoMessage(playerid, 0, "No tienes el dinero suficiente para comprar esta propiedad.");
				}
				SaveCasa(h), UpdateHouseLabel(h);
				SaveValue(playerid, "Casa", PlayerInfo[playerid][pPhousekey]);
				return 1;
			}
		}
	}
	else if(strcmp(params[0], "vehiculo", true) == 0)
	{
        print("1");
		if(sscanf(params, "ddd", params[0], params[1], params[2])) return SendInfoMessage(playerid, 0, "/comprarveh [IdVehículo] [ColorPrimario] [ColorSecundario]");
		if(EnCatalogoVeh[playerid] != -1) return SendInfoMessage(playerid, 0, "Sal del catálogo para comprar un vehículo.");
		if(PlayerInfo[playerid][pDocumentacion] == 0) return SendInfoMessage(playerid, 0, "Necesitas tener la documentación en regla para comprar un vehículo.");
		GetPlayerPos(playerid, PlayerInfo[playerid][pPos_x], PlayerInfo[playerid][pPos_y], PlayerInfo[playerid][pPos_z]);
		SetPlayerFacingAngle(playerid, 212.2497), SetCameraBehindPlayer(playerid);
        print("2");
        printf("%d %d %d.",params[0], params[1], params[2]);
		if((PlayerInfo[playerid][pMember] == datacar[params[0]][dcComprador]) || (datacar[params[0]][dcMember] == 0))
		{
			if(datacar[params[0]][dcIDModel] == 438 || datacar[params[0]][dcIDModel] == 420)
			{
				if(PlayerInfo[playerid][pTaxiLic] == 0) return SendInfoMessage(playerid, 0, "No tienes licencia de taxista para usar este comando.");
			}
			if(datacar[params[0]][dcNivel] > GetPlayerLevel(playerid)) return SendInfoMessage(playerid, 0, "No tienes el nivel necesario para comprar este vehículo.");
			if(PlayerInfo[playerid][pPCarKey][0] != -1 && PlayerInfo[playerid][pPCarKey][1] != -1 && PlayerInfo[playerid][pPCarKey][2] != -1 && PlayerInfo[playerid][pPCarKey][3] != -1 && PlayerInfo[playerid][pPCarKey][4] != -1)
			{
				SendClientMessage(playerid, Naranja, "* Ya tienes todos los slots de llaves propias ocupados.");
				return 1;
			}
			if(datacar[params[0]][dcConcesionario] == GetPlayerConcesionario(playerid))
			{
				new Conce = GetPlayerConcesionarioEx(playerid);
				for(new i = 0; i < TotalVeh; i++)
				{
					if(VehicleToPoint(5.0, i, Concesionarios[Conce][ctX], Concesionarios[Conce][ctY], Concesionarios[Conce][ctZ]) && CarInfo[i][cVw] == 0)
					{
						SendInfoMessage(playerid, 0, "Hay un vehículo en el punto de entrega, imposible entregar.");
						return 1;
					}
				}
			}
			else return SendInfoMessage(playerid, 0, "No disponemos de ese modelo, deberás buscar en otro concesionario.");
			if(SafeGetPlayerMoney(playerid) < datacar[params[0]][dcPrecio])
			{
				SendInfoMessage(playerid, 0, "No llevas dinero suficiente, vuelve en otro momento.");
				return 1;
			}
			for(new i; i < MAX_PROPIOS; i++)
			{
				if(PlayerInfo[playerid][pPCarKey][i] == -1)
				{
					PlayerInfo[playerid][pPCarKey][i] = CodigoLlave;
					break;
				}
			}
			print("3");
			SendClientMessage(playerid, Verde, "* Has comprado un nuevo vehículo.");
			SendClientMessage(playerid, Naranja, "* El vendedor te ha entregado las llaves (mira en /stats)");
			new Conce = datacar[params[0]][dcConcesionario] -1;
			CreateLLLCar(playerid, params[0], Concesionarios[Conce][ctX], Concesionarios[Conce][ctY], Concesionarios[Conce][ctZ], Concesionarios[Conce][ctA], params[1], params[2]);
			new coste = datacar[params[0]][dcPrecio] - floatround(datacar[params[0]][dcPrecio] * (GetPlayerPremium(playerid) * 5) / 100);
			SafeGivePlayerMoney(playerid, -coste);
			SaveValues(playerid, "Coches"), SaveValues(playerid, "CochesPrestados");
		}
		else SendInfoMessage(playerid, 0, "No puedes comprar este tipo de vehículo.");
	}
	return 1;
}
Fagrinht is offline  
Old 10/11/2016, 01:28 AM   #2
Swedky
Banned
 
Join Date: Jun 2013
Location: Argentina.
Posts: 2,097
Reputation: 827
Default Respuesta: Comando dejó de funcionar.

En dónde exactamente se detiene el comando?

Puede que SendInfoMessage esté retornando 0, fíjate.
Swedky is offline  
Old 10/11/2016, 02:15 AM   #3
JeffreyG
Big Clucker
 
JeffreyG's Avatar
 
Join Date: Jul 2014
Location: Uruguay
Posts: 154
Reputation: 11
Default Respuesta: Comando dejó de funcionar.

Fijate ahora

Code:
CMD:comprara(playerid, params[])
{
	if(sscanf(params, "s[10]", params[0]))
	{
		SendInfoMessage(playerid, 4, "/comprar [Opción]");
		SendClientMessage(playerid, AzulClaro, "Opciones: Propiedad, Vehículo.");
		return 1;
	}
	if(strcmp(params[0], "propiedad", true) == 0)
	{
		for(new h = 0; h < TotalCasas; h++)
		{
			if(PlayerToPoint(2.0, playerid, CasaInfo[h][hEx], CasaInfo[h][hEy], CasaInfo[h][hEz]) && CasaInfo[h][hVw] == GetPlayerVirtualWorld(playerid) && CasaInfo[h][hOwned] != -1)
			{
				if(CasaInfo[h][hOwned] == 1 && CasaInfo[h][hVendible] == 0) return SendInfoMessage(playerid, 0, "Esta casa no está en venta para usar este comando.");
				if(PlayerInfo[playerid][pDocumentacion] == 0) return SendInfoMessage(playerid, 0, "Necesitas tener la documentación en regla para comprar una propiedad.");
				if(GetPlayerLevel(playerid) < CasaInfo[h][hLevel])
				{
					format(string, sizeof(string), "* Necesitas nivel %d para comprar la casa.", CasaInfo[h][hLevel]);
					SendClientMessage(playerid, AzulClaro, string);
					return 1;
				}
				if(PlayerInfo[playerid][pPhousekey] != -1)
				{
					new casa = GetHouseFromId(PlayerInfo[playerid][pPhousekey]);
					if(strcmp(PlayerInfo[playerid][pNombre], CasaInfo[casa][hOwner], true) == 0) SendInfoMessage(playerid, 0, "Ya tienes actualmente una casa, escribe /vender propiedad para venderla.");
					else SendClientMessage(playerid, Naranja, "* Ya tienes alquilada una propiedad, escribe /noalquilar para dejarla.");
					return 1;
				}
				if(CasaInfo[h][hOwned] == 0)
				{
					if(SafeGetPlayerMoney(playerid) >= CasaInfo[h][hValue])
					{
						SafeGivePlayerMoney(playerid, -CasaInfo[h][hValue]);
						PlayerInfo[playerid][pPhousekey] = CasaInfo[h][hId], CasaInfo[h][hOwned] = 1;
						format(CasaInfo[h][hOwner], MAX_PLAYER_NAME, PlayerInfo[playerid][pNombre]);
						SetPlayerInterior(playerid, CasaInfo[h][hInterior]);
						SetPlayerPos(playerid, CasaInfo[h][hSx], CasaInfo[h][hSy], CasaInfo[h][hSz]);
						SetPlayerVirtualWorld(playerid, CasaInfo[h][hId]);
						PlayerInfo[playerid][pInt] = CasaInfo[h][hInterior];
						PlayerInfo[playerid][pVw] = CasaInfo[h][hId];
						SendClientMessage(playerid, Verde, "* Bienvenido a tu nueva casa. Escribe /ayuda casas para ver todos los comandos.");
					}
					else SendInfoMessage(playerid, 0, "No tienes el dinero suficiente para comprar esta propiedad.");
				}
				else
				{
					if(SafeGetPlayerMoney(playerid) >= CasaInfo[h][hVendible])
					{
						new jugador = ReturnUser(CasaInfo[h][hOwner]);
						if(jugador != INVALID_PLAYER_ID)
						{
							SafeGivePlayerMoneyEx(jugador, playerid, CasaInfo[h][hVendible]);
							format(string, sizeof(string), "[SMS inmobiliaria]: Hemos conseguido vender tu casa por %d$.", CasaInfo[h][hVendible]);
							SendClientMessage(jugador, Amarillo, string);
							PlayerInfo[jugador][pPhousekey] = -1;
							SaveValue(jugador, "Casa", PlayerInfo[jugador][pPhousekey]);
						}
						else
						{
							new sql[256];
							format(sql, sizeof(sql), "UPDATE players SET Banco = Banco + %d, Casa = -1 WHERE Nombre = '%s' LIMIT 1", CasaInfo[h][hVendible], CasaInfo[h][hOwner]);
							mysql_function_query(conectorBD, sql, false, "", "");
							SafeGivePlayerMoney(playerid, -CasaInfo[h][hVendible]);
						}
						CasaInfo[h][hVendible] = 0;
						format(CasaInfo[h][hOwner], MAX_PLAYER_NAME, PlayerInfo[playerid][pNombre]);
						PlayerInfo[playerid][pPhousekey] = CasaInfo[h][hId];
						SetPlayerInterior(playerid, CasaInfo[h][hInterior]);
						SetPlayerPos(playerid, CasaInfo[h][hSx], CasaInfo[h][hSy], CasaInfo[h][hSz]);
						SetPlayerVirtualWorld(playerid, CasaInfo[h][hId]);
						PlayerInfo[playerid][pInt] = CasaInfo[h][hInterior];
						PlayerInfo[playerid][pVw] = CasaInfo[h][hId];
						DestroyDynamicObject(CasaInfo[h][hCartel]);
						SendClientMessage(playerid, Verde, "* Bienvenido a tu nueva casa. Escribe /ayuda casas para ver todos los comandos.");
					}
					else SendInfoMessage(playerid, 0, "No tienes el dinero suficiente para comprar esta propiedad.");
				}
				SaveCasa(h), UpdateHouseLabel(h);
				SaveValue(playerid, "Casa", PlayerInfo[playerid][pPhousekey]);
				return 1;
			}
		}
	}
	else if(strcmp(params[0], "vehiculo", true) == 0)
	{
        print("1");
		if(sscanf(params, "ddd", params[1], params[2], params[3])) return SendInfoMessage(playerid, 0, "/comprarveh [IdVehículo] [ColorPrimario] [ColorSecundario]");
		if(EnCatalogoVeh[playerid] != -1) return SendInfoMessage(playerid, 0, "Sal del catálogo para comprar un vehículo.");
		if(PlayerInfo[playerid][pDocumentacion] == 0) return SendInfoMessage(playerid, 0, "Necesitas tener la documentación en regla para comprar un vehículo.");
		GetPlayerPos(playerid, PlayerInfo[playerid][pPos_x], PlayerInfo[playerid][pPos_y], PlayerInfo[playerid][pPos_z]);
		SetPlayerFacingAngle(playerid, 212.2497), SetCameraBehindPlayer(playerid);
        print("2");
        printf("%d %d %d.",params[1], params[2], params[3]);
		if((PlayerInfo[playerid][pMember] == datacar[params[1]][dcComprador]) || (datacar[params[1]][dcMember] == 0))
		{
			if(datacar[params[1]][dcIDModel] == 438 || datacar[params[1]][dcIDModel] == 420)
			{
				if(PlayerInfo[playerid][pTaxiLic] == 0) return SendInfoMessage(playerid, 0, "No tienes licencia de taxista para usar este comando.");
			}
			if(datacar[params[1]][dcNivel] > GetPlayerLevel(playerid)) return SendInfoMessage(playerid, 0, "No tienes el nivel necesario para comprar este vehículo.");
			if(PlayerInfo[playerid][pPCarKey][0] != -1 && PlayerInfo[playerid][pPCarKey][1] != -1 && PlayerInfo[playerid][pPCarKey][2] != -1 && PlayerInfo[playerid][pPCarKey][3] != -1 && PlayerInfo[playerid][pPCarKey][4] != -1)
			{
				SendClientMessage(playerid, Naranja, "* Ya tienes todos los slots de llaves propias ocupados.");
				return 1;
			}
			if(datacar[params[1]][dcConcesionario] == GetPlayerConcesionario(playerid))
			{
				new Conce = GetPlayerConcesionarioEx(playerid);
				for(new i = 0; i < TotalVeh; i++)
				{
					if(VehicleToPoint(5.0, i, Concesionarios[Conce][ctX], Concesionarios[Conce][ctY], Concesionarios[Conce][ctZ]) && CarInfo[i][cVw] == 0)
					{
						SendInfoMessage(playerid, 0, "Hay un vehículo en el punto de entrega, imposible entregar.");
						return 1;
					}
				}
			}
			else return SendInfoMessage(playerid, 0, "No disponemos de ese modelo, deberás buscar en otro concesionario.");
			if(SafeGetPlayerMoney(playerid) < datacar[params[1]][dcPrecio])
			{
				SendInfoMessage(playerid, 0, "No llevas dinero suficiente, vuelve en otro momento.");
				return 1;
			}
			for(new i; i < MAX_PROPIOS; i++)
			{
				if(PlayerInfo[playerid][pPCarKey][i] == -1)
				{
					PlayerInfo[playerid][pPCarKey][i] = CodigoLlave;
					break;
				}
			}
			print("3");
			SendClientMessage(playerid, Verde, "* Has comprado un nuevo vehículo.");
			SendClientMessage(playerid, Naranja, "* El vendedor te ha entregado las llaves (mira en /stats)");
			new Conce = datacar[params[1]][dcConcesionario] -1;
			CreateLLLCar(playerid, params[1], Concesionarios[Conce][ctX], Concesionarios[Conce][ctY], Concesionarios[Conce][ctZ], Concesionarios[Conce][ctA], params[1], params[2]);
			new coste = datacar[params[1]][dcPrecio] - floatround(datacar[params[1]][dcPrecio] * (GetPlayerPremium(playerid) * 5) / 100);
			SafeGivePlayerMoney(playerid, -coste);
			SaveValues(playerid, "Coches"), SaveValues(playerid, "CochesPrestados");
		}
		else SendInfoMessage(playerid, 0, "No puedes comprar este tipo de vehículo.");
	}
	return 1;
}
JeffreyG is offline  
Old 10/11/2016, 04:06 PM   #4
Fagrinht
Gangsta
 
Join Date: Dec 2013
Posts: 600
Reputation: 18
Default Respuesta: Comando dejó de funcionar.

Quote:
Originally Posted by EnzoMetlc View Post
En dónde exactamente se detiene el comando?

Puede que SendInfoMessage esté retornando 0, fíjate.
Se detiene en print("1");, abajo del print hay otros y no dice nada en la consola, ni con la solución de JeffreyG, sigue sin funcionar.

osea que el error estaría en
Code:
if(sscanf(params, "ddd", params[1], params[2], params[3])) return SendInfoMessage(playerid, 0, "/comprarveh [IdVehículo] [ColorPrimario] [ColorSecundario]");
si pongo /comprara vehiculo me dice que ponga la id y los colores, cuando pongo todo bien no pasa nada y no marca nada en la consola, solo el número 1...y no returna a 0, ese 0 es un tipo de mensaje ejemplo

Code:
CALLBACK: SendInfoMessage(playerid, type, message[])
{
	new MsgInfo[MAX_TEXT_CHAT-70],
    _col[7] =
	{
		0xAA3333AA,
		0x33CCFFFF,
		0xFF4949FF,
		0xBFC0C2FF,
		0xFFCD00FF,
		0xfdfe8bFF,
	};
	switch(type)
	{
		case 0: format(MsgInfo, sizeof(MsgInfo), "* %s", message);
		case 1: format(MsgInfo, sizeof(MsgInfo), "* Información: %s", message);
		case 2: format(MsgInfo, sizeof(MsgInfo), "* Importante: %s", message);
		case 3: format(MsgInfo, sizeof(MsgInfo), "Info: %s", message);
		case 4: format(MsgInfo, sizeof(MsgInfo), "* Debe indicar parámetros para el comando, formato: %s.", message);
		case 5: format(MsgInfo, sizeof(MsgInfo), "Nota: %s.", message);
	}
	SendClientMessage(playerid, _col[type], MsgInfo);
	return 1;
}
Fagrinht is offline  
 

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Ajuda] 2x comando pra funcionar ? Lucas_Rocha Português/Portuguese 0 01/05/2016 09:55 PM
[Pedido] Comando para funcionar Blitz22 Português/Portuguese 3 21/09/2013 04:01 PM
[Ajuda] Comando a não funcionar caoraivoso3 Português/Portuguese 1 08/08/2013 04:37 PM


All times are GMT. The time now is 09:59 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.