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;
}