09.11.2016, 20:36
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.
Код:
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; }