Duda ¬¬
#1

Buenas.. hmm, anteriormente cuando creaba 1 casa en venta podía ingresar de 1 vez, o negocio ect.... pero ahora tengo que reiniciar el servidor para que se pueda ingresar a estas cosas dinámicas... entonces, el problema estará en el comando de casas o la función de ingresar? dejo ambas, +REP al que se tome el tiempo, gracias de antemano y saludos.

Код:
CMD:crearcasa(playerid, params[])
{
	if(InformacionJugador_[playerid][pAdmin] < 0) return 0;
	if(sscanf(params, "dddd", params[0], params[1], params[2], params[3])) return SendClientMessage(playerid, COLOR_PIEL, "* Debes indicar parámetros para el comando(/crearcasa), formato: /crearcasa [Interior(0-12)] [Nivel] [Precio] [Tipo: 0 = Dinero - 1 = Moneda]");
	if(!(0 <= params[0] <= 12)) return SendClientMessage(playerid, COLOR_ROJO, "* El interior tiene que ser entre el 0 y el 12(/interiorescasas).");
	if(!(3 <= params[1] <= 10)) return SendClientMessage(playerid, COLOR_ROJO, "* El nivel tiene que ser entre nivel 3 y nivel 10 máximo o no funcionará.");
	if(!(1 <= params[2] <= 1500000)) return SendClientMessage(playerid, COLOR_ROJO, "* El precio tiene que ser superior a 1$ dolar o no funcionará.");
	if(!(0 <= params[3] <= 1)) return SendClientMessage(playerid, COLOR_ROJO, "* El tipo de la casa tiene que ser entre 0 y 1.");
	TotalCasas++;

	switch(params[0])
	{
		case 0: InformacionCasa_[TotalCasas][cIntX] = 326.3081, InformacionCasa_[TotalCasas][cIntY] =  1456.2114, InformacionCasa_[TotalCasas][cIntZ] =  1084.5959, InformacionCasa_[TotalCasas][cInterior] = 15, InformacionCasa_[TotalCasas][cAngle] = 356.9800, InformacionCasa_[TotalCasas][cArmarioX] = 327.3282, InformacionCasa_[TotalCasas][cArmarioY] =  1469.5680, InformacionCasa_[TotalCasas][cArmarioZ] =  1084.4399;
		case 1: InformacionCasa_[TotalCasas][cIntX] = 223.4143, InformacionCasa_[TotalCasas][cIntY] =  1273.4320, InformacionCasa_[TotalCasas][cIntZ] =  1082.140, InformacionCasa_[TotalCasas][cInterior] = 1, InformacionCasa_[TotalCasas][cAngle] = 356.9796, InformacionCasa_[TotalCasas][cArmarioX] = 234.0683, InformacionCasa_[TotalCasas][cArmarioY] =  1276.2015, InformacionCasa_[TotalCasas][cArmarioZ] =  1082.1378;
		case 2: InformacionCasa_[TotalCasas][cIntX] = 275.7402, InformacionCasa_[TotalCasas][cIntY] =  1237.7184, InformacionCasa_[TotalCasas][cIntZ] =  1084.257812, InformacionCasa_[TotalCasas][cInterior] = 9, InformacionCasa_[TotalCasas][cAngle] = 356.9800, InformacionCasa_[TotalCasas][cArmarioX] = 272.1288, InformacionCasa_[TotalCasas][cArmarioY] =  1243.7748, InformacionCasa_[TotalCasas][cArmarioZ] =  1084.2596;
		case 3: InformacionCasa_[TotalCasas][cIntX] = 2365.263916, InformacionCasa_[TotalCasas][cIntY] =  -1134.603637, InformacionCasa_[TotalCasas][cIntZ] =  1050.672363, InformacionCasa_[TotalCasas][cInterior] = 8, InformacionCasa_[TotalCasas][cAngle] = 2.8535;
		case 4: InformacionCasa_[TotalCasas][cIntX] = 2196.836181, InformacionCasa_[TotalCasas][cIntY] =  -1204.180297, InformacionCasa_[TotalCasas][cIntZ] =  1049.023437, InformacionCasa_[TotalCasas][cInterior] = 6, InformacionCasa_[TotalCasas][cAngle] = 356.9796;
		case 5: InformacionCasa_[TotalCasas][cIntX] = 23.908735, InformacionCasa_[TotalCasas][cIntY] =  1320.530156, InformacionCasa_[TotalCasas][cIntZ] =  1084.375000, InformacionCasa_[TotalCasas][cInterior] = 10, InformacionCasa_[TotalCasas][cAngle] = 268.3559, InformacionCasa_[TotalCasas][cArmarioX] = 31.6842, InformacionCasa_[TotalCasas][cArmarioY] =  1325.5929, InformacionCasa_[TotalCasas][cArmarioZ] =  1088.8800;
		case 6: InformacionCasa_[TotalCasas][cIntX] = 2324.491455, InformacionCasa_[TotalCasas][cIntY] =  -1149.545410, InformacionCasa_[TotalCasas][cIntZ] =  1050.710083, InformacionCasa_[TotalCasas][cInterior] = 12, InformacionCasa_[TotalCasas][cAngle] = 3.7118;
		case 7: InformacionCasa_[TotalCasas][cIntX] = 235.558, InformacionCasa_[TotalCasas][cIntY] =  1127.5334, InformacionCasa_[TotalCasas][cIntZ] =  1080.6395, InformacionCasa_[TotalCasas][cInterior] = 5, InformacionCasa_[TotalCasas][cAngle] = 356.9796, InformacionCasa_[TotalCasas][cArmarioX] = 236.5527, InformacionCasa_[TotalCasas][cArmarioY] =  1134.9309, InformacionCasa_[TotalCasas][cArmarioZ] =  1080.9944;
		case 8: InformacionCasa_[TotalCasas][cIntX] = 250.4457,InformacionCasa_[TotalCasas][cIntY] =  995.3734, InformacionCasa_[TotalCasas][cIntZ] =  1084.726562, InformacionCasa_[TotalCasas][cInterior] = 7, InformacionCasa_[TotalCasas][cAngle] = 180.0491, InformacionCasa_[TotalCasas][cArmarioX] = 226.2514, InformacionCasa_[TotalCasas][cArmarioY] =  981.1691, InformacionCasa_[TotalCasas][cArmarioZ] =  1084.0155;
		case 9: InformacionCasa_[TotalCasas][cIntX] = 1299.058593, InformacionCasa_[TotalCasas][cIntY] =  -796.149597, InformacionCasa_[TotalCasas][cIntZ] =  1084.007812, InformacionCasa_[TotalCasas][cInterior] = 5, InformacionCasa_[TotalCasas][cAngle] = 273.8862, InformacionCasa_[TotalCasas][cArmarioX] = 1277.4458, InformacionCasa_[TotalCasas][cArmarioY] =  -785.5347, InformacionCasa_[TotalCasas][cArmarioZ] =  1089.9375;
		case 10: InformacionCasa_[TotalCasas][cIntX] = 268.5388, InformacionCasa_[TotalCasas][cIntY] =  1063.7770, InformacionCasa_[TotalCasas][cIntZ] =  1084.212280, InformacionCasa_[TotalCasas][cInterior] = 6, InformacionCasa_[TotalCasas][cAngle] = 273.8862, InformacionCasa_[TotalCasas][cArmarioX] = 269.5855, InformacionCasa_[TotalCasas][cArmarioY] =  1078.0608, InformacionCasa_[TotalCasas][cArmarioZ] =  1087.8163;
		case 11: InformacionCasa_[TotalCasas][cIntX] = 2272.3376, InformacionCasa_[TotalCasas][cIntY] =  -1125.6721, InformacionCasa_[TotalCasas][cIntZ] =  1050.9563, InformacionCasa_[TotalCasas][cInterior] = 11, InformacionCasa_[TotalCasas][cAngle] = 4.8725, InformacionCasa_[TotalCasas][cArmarioX] = 2275.2573, InformacionCasa_[TotalCasas][cArmarioY] =  -1122.9012, InformacionCasa_[TotalCasas][cArmarioZ] =  1050.9563;
		case 12: InformacionCasa_[TotalCasas][cIntX] = 2267.8928, InformacionCasa_[TotalCasas][cIntY] =  -1152.7859, InformacionCasa_[TotalCasas][cIntZ] =  1050.6328, InformacionCasa_[TotalCasas][cInterior] = 10, InformacionCasa_[TotalCasas][cAngle] = 178.1942, InformacionCasa_[TotalCasas][cArmarioX] = 2264.3589, InformacionCasa_[TotalCasas][cArmarioY] =  -1155.9729, InformacionCasa_[TotalCasas][cArmarioZ] =  1050.6403;
	}

	new
	    Float:PosX[MAX_PLAYERS], Float:PosY[MAX_PLAYERS], Float:PosZ[MAX_PLAYERS], Float:Angle[MAX_PLAYERS];
	GetPlayerPos(playerid, PosX[playerid], PosY[playerid], PosZ[playerid]);
	GetPlayerFacingAngle(playerid, Angle[playerid]);

	new
	    Query[120];
	format(Query, sizeof(Query), "INSERT INTO ev_casas (cSQLID, cPosX, cPosY, cPosZ) VALUES ('%d', '%f', '%f', '%f')", TotalCasas, PosX[playerid], PosY[playerid], PosZ[playerid]);
	mysql_function_query(MySQL, Query, true, "OnQueryFinish_", "ii", 0, playerid);

	new
	    ZonaCasa[MAX_ZONE_NAME];
	GetPlayer2DZone(playerid, ZonaCasa, MAX_ZONE_NAME);
	format(InformacionCasa_[TotalCasas][cDireccion], 30, ZonaCasa);

	InformacionCasa_[TotalCasas][cSQLID] = TotalCasas;
	InformacionCasa_[TotalCasas][cPosX] = PosX[playerid];
	InformacionCasa_[TotalCasas][cPosY] = PosY[playerid];
	InformacionCasa_[TotalCasas][cPosZ] = PosZ[playerid];
	InformacionCasa_[TotalCasas][cTipo] = params[3];

	if(InformacionCasa_[TotalCasas][cTipo] == 0)
	{
		InformacionCasa_[TotalCasas][cPrecio] = params[2];
	}
	else if(InformacionCasa_[TotalCasas][cTipo] == 1)
	{
		InformacionCasa_[TotalCasas][cMoneda] = params[2];
	}

	InformacionCasa_[TotalCasas][cNivel] = params[1];
	InformacionCasa_[TotalCasas][cVirtualWorld] = InformacionCasa_[TotalCasas][cSQLID];
	InformacionCasa_[TotalCasas][cPuerta] = 0;
	InformacionCasa_[TotalCasas][cEstado] = 0;

	new
	    Float:Mirilla[3];
	GetPlayerCameraPos(playerid, Mirilla[0], Mirilla[1], Mirilla[2]);

	InformacionCasa_[TotalCasas][cMirX] = Mirilla[0];
	InformacionCasa_[TotalCasas][cMirY] = Mirilla[1];
	InformacionCasa_[TotalCasas][cMirZ] = Mirilla[2];
	InformacionCasa_[TotalCasas][cMirA] = Angle[playerid];
	InformacionCasa_[TotalCasas][casArmario] = 0;

	for(new i = 0; i < 15; i++)
	{
	    InformacionCasa_[TotalCasas][casArmarioID][i] = 0;
		InformacionCasa_[TotalCasas][casArmarioTipo][i] = 0;
		InformacionCasa_[TotalCasas][casArmarioCant][i] = 0;
	}

	InformacionCasa_[TotalCasas][cTexto] = CreateDynamic3DTextLabel("", COLOR_BLANCO, PosX[playerid], PosY[playerid], PosZ[playerid], 5.0);
	InformacionCasa_[TotalCasas][cArmarioTexto] = CreateDynamic3DTextLabel("Armario\n\nPresione [Y]", COLOR_STAFF, InformacionCasa_[TotalCasas][cArmarioX], InformacionCasa_[TotalCasas][cArmarioY], InformacionCasa_[TotalCasas][cArmarioZ], 5.0);
	format(InformacionCasa_[TotalCasas][cPropietario], 32, "El Estado");
	format(InformacionCasa_[TotalCasas][cDescripcion], 32, "Sin descripción"), GuardarCasa_(TotalCasas);
	InformacionCasa_[TotalCasas][cPickup][1] = CreateDynamicPickup(1239, 1, InformacionCasa_[TotalCasas][cArmarioX], InformacionCasa_[TotalCasas][cArmarioY], InformacionCasa_[TotalCasas][cArmarioZ]);
	ActualizarTextoCasa(TotalCasas);
	return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
	if(newkeys & KEY_YES)
	{
		if(!IsPlayerInAnyVehicle(playerid))
		{
			for(new n = 0; n < sizeof(InformacionNegocio_); n++)
			{
				if(IsPlayerInRangeOfPoint(playerid, 1.5, InformacionNegocio_[n][nPosX], InformacionNegocio_[n][nPosY], InformacionNegocio_[n][nPosZ]))
				{
					if(!InformacionNegocio_[n][nPuerta]) return GameTextForPlayer(playerid, "~r~Cerrado", 500, 1);
					if(InformacionJugador_[playerid][pAdmin] != 0 || InformacionNegocio_[n][nSQLID] != InformacionJugador_[playerid][pNegocio][0] && InformacionNegocio_[n][nSQLID] != InformacionJugador_[playerid][pNegocio][1] && InformacionNegocio_[n][nSQLID] != InformacionJugador_[playerid][pNegocio][2] && InformacionNegocio_[n][nSQLID] != InformacionJugador_[playerid][pNegocio][3])
					{
						if(GetPlayerMoney(playerid) < InformacionNegocio_[n][nPrecioEntrada]){SendClientMessage(playerid, COLOR_ROJO, "* No tienes dinero suficiente para ingresar a este negocio."); return 1;}
						QuitarDineroPlayer_(playerid, InformacionNegocio_[n][nPrecioEntrada]);
					}
					if(InformacionNegocio_[n][nDinero] < 50000)
					{
						new
						    Query[60];
						format(Query, 60, "UPDATE ev_negocios SET nDinero = %d WHERE nSQLID = %d", InformacionNegocio_[n][nPrecioEntrada], InformacionNegocio_[n][nSQLID]);
						mysql_function_query(MySQL, Query, true, "OnQueryFinish_", "ii", 0, playerid);
					}

					CargarObjetos(playerid);

					_SetPlayerPosEx(playerid, InformacionNegocio_[n][nIntX], InformacionNegocio_[n][nIntY], InformacionNegocio_[n][nIntZ], 0, InformacionNegocio_[n][nInterior], InformacionNegocio_[n][nSQLID]);
					break;
				}
				else if(IsPlayerInRangeOfPoint(playerid, 2.0, InformacionNegocio_[n][nIntX], InformacionNegocio_[n][nIntY], InformacionNegocio_[n][nIntZ]) && InformacionNegocio_[n][nInterior] == GetPlayerInterior(playerid) && InformacionNegocio_[n][nSQLID] == GetPlayerVirtualWorld(playerid))
				{
					if(!InformacionNegocio_[n][nPuerta]) return GameTextForPlayer(playerid, "~r~Cerrado", 500, 1);

					CargarObjetos(playerid);

					_SetPlayerPosEx(playerid, InformacionNegocio_[n][nPosX], InformacionNegocio_[n][nPosY],InformacionNegocio_[n][nPosZ], 0, 0, 0);

					InformacionJugador_[playerid][pInterior] = 0, InformacionJugador_[playerid][pVirtualWorld] = 0;
					break;
				}
			}
			for(new c = 0; c < TotalCasas; c ++)
			{
		        if(CasaExistente_©)
		        {
					if(IsPlayerInRangeOfPoint(playerid, 1.5, InformacionCasa_[c][cPosX], InformacionCasa_[c][cPosY], InformacionCasa_[c][cPosZ]))
					{
						if(InformacionCasa_[c][cPuerta] == 0){GameTextForPlayer(playerid, "~r~Cerrada", 500, 1); return 1;}

						CargarObjetos(playerid), InformacionJugador_[playerid][pEnCasa] = c;

						_SetPlayerPosEx(playerid, InformacionCasa_[c][cIntX], InformacionCasa_[c][cIntY], InformacionCasa_[c][cIntZ], InformacionCasa_[c][cAngle], InformacionCasa_[c][cInterior], InformacionCasa_[c][cVirtualWorld]);

						new
						    Query[90];
						format(Query, 90, "UPDATE ev_cuentas SET EnCasa = %d WHERE SQLID = %d", InformacionJugador_[playerid][pEnCasa], InformacionJugador_[playerid][pSQLID]);
						mysql_function_query(MySQL, Query, true, "OnQueryFinish_", "ii", 0, playerid);
						break;
					}
					else if(IsPlayerInRangeOfPoint(playerid, 1.5, InformacionCasa_[c][cIntX], InformacionCasa_[c][cIntY], InformacionCasa_[c][cIntZ]) && InformacionCasa_[c][cInterior] == GetPlayerInterior(playerid) && InformacionCasa_[c][cVirtualWorld] == GetPlayerVirtualWorld(playerid))
					{
						CargarObjetos(playerid), InformacionJugador_[playerid][pEnCasa] = -1;

						_SetPlayerPosEx(playerid, InformacionCasa_[c][cPosX], InformacionCasa_[c][cPosY], InformacionCasa_[c][cPosZ], 0, 0, 0);

						new
						    Query[60];
						format(Query, 60, "UPDATE ev_cuentas SET EnCasa = -1 WHERE SQLID = %d", InformacionJugador_[playerid][pSQLID]);
						mysql_function_query(MySQL, Query, true, "OnQueryFinish_", "ii", 0, playerid);
						break;
					}
					else if(IsPlayerInRangeOfPoint(playerid, 2.0, InformacionCasa_[c][cArmarioX], InformacionCasa_[c][cArmarioY], InformacionCasa_[c][cArmarioZ]) && InformacionCasa_[c][cInterior] == GetPlayerInterior(playerid) && InformacionCasa_[c][cVirtualWorld] == GetPlayerVirtualWorld(playerid))
					{
						if(InformacionCasa_[c][casArmario] == 0){GameTextForPlayer(playerid, "~r~Cerrado", 500, 1);return 1;}

						CargarObjetos(playerid), InformacionJugador_[playerid][pEnRopero] = InformacionJugador_[playerid][pEnCasa];

						_SetPlayerPosEx(playerid, 254.1660, -41.7423, 1002.0308, 265.5274, 14, InformacionJugador_[playerid][pEnCasa]);

						new
						    Query[90];
						format(Query, 90, "UPDATE ev_cuentas SET EnRopero = %d WHERE SQLID = %d", InformacionJugador_[playerid][pEnRopero], InformacionJugador_[playerid][pSQLID]);
						mysql_function_query(MySQL, Query, true, "OnQueryFinish_", "ii", 0, playerid);
						break;
					}
				}
				if(InformacionJugador_[playerid][pEnRopero] > 0)
				{
					if(IsPlayerInRangeOfPoint(playerid, 2.0, 254.1660, -41.7423, 1002.0308))
					{
						CargarObjetos(playerid), InformacionJugador_[playerid][pEnRopero] = -1;

						_SetPlayerPosEx(playerid, InformacionCasa_[c][cArmarioX], InformacionCasa_[c][cArmarioY], InformacionCasa_[c][cArmarioZ], InformacionCasa_[c][cAngle], InformacionCasa_[c][cInterior], InformacionCasa_[c][cVirtualWorld]);

						new
						    Query[60];
						format(Query, 60, "UPDATE ev_cuentas SET EnRopero = -1 WHERE SQLID = %d", InformacionJugador_[playerid][pSQLID]);
						mysql_function_query(MySQL, Query, true, "OnQueryFinish_", "ii", 0, playerid);
						break;
					}
				}
			}
		}
	}
	return 1;
}
Reply
#2

Solucionado.
Reply


Forum Jump:


Users browsing this thread: