30.07.2016, 01:02
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; }