ez már egy elég régi cucc, használd Gagi házrendszerét, ami sokkal jobb és könnyebben konfigurálható, vagy pedig válts át MySQL-re, aztán próbálkozz meg rootcause házrendszerével, de viszont ha te mindenáron ennél maradnál akkor
if(!response) return 1;
// Setup local variables
new UpgradeList[2000], HouseID, DialogTitle[200], Counter, UpgradePrice, Msg[128], CarSlot, VehicleClassList[1000], VehicleList[500];
// Get the HouseID of the house where the player is
HouseID = APlayerData[playerid][CurrentHouse];
// Select an option based on the selection in the list
switch(listitem)
{
case 0: // Change house name
{
// Only the house-owner can use this option
if (House_PlayerIsOwner(playerid, HouseID) == 1)
{
format(DialogTitle, 200, TXT_DialogOldHouseName, AHouseData[HouseID][HouseName]);
ShowPlayerDialog(playerid, DialogHouseNameChange, DIALOG_STYLE_INPUT, DialogTitle, TXT_DialogEnterNewHouseName, TXT_DialogButtonSelect, TXT_DialogButtonCancel);
}
else
SendClientMessage(playerid, 0xFFFFFFFF, \"{FF0000}Only the house-owner can use this option\");
}
case 1: // Upgrade the house
{
// Only the house-owner can use this option
if (House_PlayerIsOwner(playerid, HouseID) == 1)
{
// Check if it\'s possible to upgrade further
if (AHouseData[HouseID][HouseLevel] < AHouseData[HouseID][HouseMaxLevel])
{
// Add only the upgrades above the current house-level to the upgradelist
for (new i = AHouseData[HouseID][HouseLevel] + 1; i <= AHouseData[HouseID][HouseMaxLevel]; i++)
{
Counter++; // Add 1 to the counter each time an upgrade is added to the upgradelist
UpgradePrice = ((AHouseData[HouseID][HousePrice] * Counter) / 100) * HouseUpgradePercent;
// Add the upgrade-info in green if the player can afford it, and in red if he cannot afford it
if (APlayerData[playerid][PlayerMoney] >= UpgradePrice)
format(UpgradeList, 2000, \"%s{00FF00}%s (level %i)\\t\\t$%i\\n\", UpgradeList, AHouseInteriors[InteriorName], i, UpgradePrice);
else
format(UpgradeList, 2000, \"%s{FF0000}%s (level %i)\\t\\t$%i\\n\", UpgradeList, AHouseInteriors[InteriorName], i, UpgradePrice);
}
// Show another dialog to let the player select which upgrade he wants for his house
ShowPlayerDialog(playerid, DialogUpgradeHouse, DIALOG_STYLE_LIST, TXT_DialogSelectHouseUpgrade, UpgradeList, TXT_DialogButtonSelect, TXT_DialogButtonCancel);
}
else
SendClientMessage(playerid, 0xFFFFFFFF, TXT_HouseReachedMaxLevel);
}
else
SendClientMessage(playerid, 0xFFFFFFFF, \"{FF0000}Only the house-owner can use this option\");
}
case 2: // Buy house-car
{
// Only the house-owner can use this option
if (House_PlayerIsOwner(playerid, HouseID) == 1)
{
// Find a free carslot
CarSlot = House_GetFreeCarSlot(HouseID);
// Check if the carslot is valid
if (CarSlot != -1)
{
// Let the player choose a vehicle-class
format(VehicleClassList, 1000, \"%s{00FF00}%s{FFFFFF}\\n\", VehicleClassList, \"Bikes\");
format(VehicleClassList, 1000, \"%s{40FF00}%s{FFFFFF}\\n\", VehicleClassList, \"Boats\");
format(VehicleClassList, 1000, \"%s{80FF00}%s{FFFFFF}\\n\", VehicleClassList, \"Convertibles\");
format(VehicleClassList, 1000, \"%s{B0FF00}%s{FFFFFF}\\n\", VehicleClassList, \"Helicopters\");
format(VehicleClassList, 1000, \"%s{FFFF00}%s{FFFFFF}\\n\", VehicleClassList, \"Industrial vehicles\");
format(VehicleClassList, 1000, \"%s{B0FF40}%s{FFFFFF}\\n\", VehicleClassList, \"Low-riders\");
format(VehicleClassList, 1000, \"%s{80FF80}%s{FFFFFF}\\n\", VehicleClassList, \"Off-Road vehicles\");
format(VehicleClassList, 1000, \"%s{40FFB0}%s{FFFFFF}\\n\", VehicleClassList, \"Planes\");
format(VehicleClassList, 1000, \"%s{00FFFF}%s{FFFFFF}\\n\", VehicleClassList, \"Public Service vehicles\");
format(VehicleClassList, 1000, \"%s{00B0FF}%s{FFFFFF}\\n\", VehicleClassList, \"RC vehicles\");
format(VehicleClassList, 1000, \"%s{0080FF}%s{FFFFFF}\\n\", VehicleClassList, \"Saloon vehicles\");
format(VehicleClassList, 1000, \"%s{0040FF}%s{FFFFFF}\\n\", VehicleClassList, \"Sport vehicles\");
format(VehicleClassList, 1000, \"%s{0000FF}%s{FFFFFF}\\n\", VehicleClassList, \"Station wagons\");
format(VehicleClassList, 1000, \"%s{4000FF}%s{FFFFFF}\\n\", VehicleClassList, \"Trailers\");
format(VehicleClassList, 1000, \"%s{8000FF}%s{FFFFFF}\\n\", VehicleClassList, \"Unique vehicles\");
// Ask which vehicle class the player wants to see to buy a vehicle
ShowPlayerDialog(playerid, DialogBuyCarClass, DIALOG_STYLE_LIST, TXT_DialogBuyCarSelectClass, VehicleClassList, TXT_DialogButtonSelect, TXT_DialogButtonCancel);
}
else
SendClientMessage(playerid, 0xFFFFFFFF, TXT_HouseHasMaxVehicles);
}
else
SendClientMessage(playerid, 0xFFFFFFFF, \"{FF0000}Only the house-owner can use this option\");
}
case 3: // Buy house-car insurance
{
// Only the house-owner can use this option
if (House_PlayerIsOwner(playerid, HouseID) == 1)
{
new MsgInsurance[128];
// Check if this house doesn\'t have insurance yet
if (AHouseData[HouseID][Insurance] == 0)
{
// Check if the player can afford the insurance
if (APlayerData[playerid][PlayerMoney] >= (AHouseData[HouseID][HousePrice] / 10))
{
// Construct the message for the dialog, this includes the price for the insurance
format(MsgInsurance, 128, TXT_DialogBuyInsurance, AHouseData[HouseID][HousePrice] / 10);
// Ask the player if the wants to buy an insurance for this house\'s vehicles
ShowPlayerDialog(playerid, DialogBuyInsurance, DIALOG_STYLE_MSGBOX, TXT_DialogTitleBuyInsurance, MsgInsurance, TXT_DialogButtonYes, TXT_DialogButtonNo);
}
else
SendClientMessage(playerid, 0xFFFFFFFF, TXT_CannotAffordInsurance);
}
else
SendClientMessage(playerid, 0xFFFFFFFF, TXT_HouseAlreadyHasInsurance);
}
else
SendClientMessage(playerid, 0xFFFFFFFF, \"{FF0000}Only the house-owner can use this option\");
}
case 4: // Sell house-car
{
// Only the house-owner can use this option
if (House_PlayerIsOwner(playerid, HouseID) == 1)
{
new BuyableCarIndex, bool:HouseHasCars = false;
// Check if the house has any cars assigned to it
for (CarSlot = 0; CarSlot < 10; CarSlot++)
if (AHouseData[HouseID][VehicleIDs][CarSlot] != 0)
HouseHasCars = true;
// Check if the house has any cars assigned to it
if (HouseHasCars == true)
{
// Add all vehicles to the list
for (CarSlot = 0; CarSlot < 10; CarSlot++)
{
if (AHouseData[HouseID][VehicleIDs][CarSlot] != 0)
{
// Get the index where the first vehicle is found in the ABuyableVehicles array
BuyableCarIndex = VehicleBuyable_GetIndex(GetVehicleModel(AHouseData[HouseID][VehicleIDs][CarSlot]));
// Add the name of the vehicle to the list
format(VehicleList, 500, \"%s{00FF00}%s: $%i{FFFFFF}\\n\", VehicleList, ABuyableVehicles[BuyableCarIndex][CarName], ABuyableVehicles[BuyableCarIndex][Price] / 2);
}
else
format(VehicleList, 500, TXT_EmptyCarSlot, VehicleList);
}
// Ask which vehicle class the player wants to see to buy a vehicle
ShowPlayerDialog(playerid, DialogSellCar, DIALOG_STYLE_LIST, TXT_SelectVehicleToSell, VehicleList, TXT_DialogButtonSelect, TXT_DialogButtonCancel);
}
else
SendClientMessage(playerid, 0xFFFFFFFF, TXT_NoHouseVehicles);
}
else
SendClientMessage(playerid, 0xFFFFFFFF, \"{FF0000}Only the house-owner can use this option\");
}
case 5: // Sell house
{
// Only the house-owner can use this option
if (House_PlayerIsOwner(playerid, HouseID) == 1)
{
// Setup local variables
new bool:HouseHasCars = false;
// Check if the house has any cars assigned to it
for (CarSlot = 0; CarSlot < 10; CarSlot++)
if (AHouseData[HouseID][VehicleIDs][CarSlot] != 0)
HouseHasCars = true;
// Check if all house-cars have been sold (all slots are empty)
if (HouseHasCars == false)
{
format(Msg, 128, TXT_SureSellHouse, House_CalcSellPrice(HouseID));
ShowPlayerDialog(playerid, DialogSellHouse, DIALOG_STYLE_MSGBOX, TXT_AreYouSure, Msg, TXT_DialogButtonYes, TXT_DialogButtonNo);
}
else
SendClientMessage(playerid, 0xFFFFFFFF, TXT_CannotSellHouseWithCars);
}
else
SendClientMessage(playerid, 0xFFFFFFFF, \"{FF0000}Only the house-owner can use this option\");
}
case 6: // Open the house to the public (everyone can enter it)
{
// Only the house-owner can use this option
if (House_PlayerIsOwner(playerid, HouseID) == 1)
{
// Open the house to the public
AHouseData[HouseID][HouseOpened] = true;
// Let the player know he opened the house to the public
SendClientMessage(playerid, 0xFFFFFFFF, \"{00FF00}You\'ve opened the house to the public, anyone can enter it\");
}
else
SendClientMessage(playerid, 0xFFFFFFFF, \"{FF0000}Only the house-owner can use this option\");
}
case 7: // Close the house to the public (only the owner can enter it)
{
// Only the house-owner can use this option
if (House_PlayerIsOwner(playerid, HouseID) == 1)
{
// Close the house to the public
AHouseData[HouseID][HouseOpened] = false;
// Let the player know he closed the house to the public
SendClientMessage(playerid, 0xFFFFFFFF, \"{00FF00}You\'ve closed the house to the public, only you can enter it\");
}
else
SendClientMessage(playerid, 0xFFFFFFFF, \"{FF0000}Only the house-owner can use this option\");
}
case 8:
{
House_Exit(playerid, HouseID);
}
}
return 1;
}
csak simán ezt rakd be alá, nekem ez működött mikor próbáltam(7 éve kb. xD), és töröld a
Dialog_HouseMenu(playerid, response, listitem)
-et a
case DialogHouseMenu: Dialog_HouseMenu(playerid, response, listitem); // Process the main housemenu
-val együtt, ha nem működik írj ide vissza, bár szerintem fog mert nekem működött