Advertisement
losnato

[FilterScript] LHouse v2.1.x

Jul 10th, 2014
679
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 229.64 KB | None | 0 0
  1. /*-----------------------------------------------------------------------------------------------------------------
  2. |             ESTE PROJETO É PROTEGIDO POR DIREITOS AUTORAIS CONCEDIDOS ATRAVÉS DA CREATIVE COMMONS               |
  3. |                       http://creativecommons.org/licenses/by-nd/3.0/br/                                         |
  4. |------------------------------------------------------------------------------------------------------------------*/
  5. #include        <       a_samp      >
  6. #include        <       zcmd        >
  7. #include        <       dof2        >
  8. #include        <       sscanf2     >
  9. #include        <       streamer    >
  10. #include        <       Losgs       >
  11.  
  12. #define         TIMER_FIX_PERFORMANCE_CHECKS        false
  13. #include        <       timerfix    >
  14.  
  15. /*-----------------------------------------------------------------------------------------------------------------
  16. |             1 - Los Santos                                                                                      |
  17. |             2 - San Fierro                                                                                      |
  18. |             3 - Las Venturas                                                                                    |
  19. |------------------------------------------------------------------------------------------------------------------*/
  20. #define         LHOUSE_CITY                     1
  21.  
  22. /*-----------------------------------------------------------------------------------------------------------------
  23. |             1 - Teletransporta o player quando comprar o carro                                                  |
  24. |             2 - Envia mensagem com a localização do carro                                                       |
  25. |------------------------------------------------------------------------------------------------------------------*/
  26. #define         LHOUSE_DELIVERY_METHOD          1
  27.  
  28. /*-----------------------------------------------------------------------------------------------------------------
  29. |             ID da tecla que ao ser pressionada perto do carro, irá ativar/desativar o alarme                    |
  30. |                               Por padrão a tecla é Y (65536)                                                    |
  31. |------------------------------------------------------------------------------------------------------------------*/
  32. #define         ALARM_KEY                       65536
  33.  
  34. /*-----------------------------------------------------------------------------------------------------------------
  35. |             Número máximo de coletes que podem ser armazenados em cada casa                                     |
  36. |                               Por padrão: 5                                                                     |
  37. |------------------------------------------------------------------------------------------------------------------*/
  38. #define         MAX_ARMOUR                      5
  39.  
  40. //=====================  [DIALOGS] ==========================//
  41. #define         DIALOG_CREATE_HOUSE             1335
  42. #define         DIALOG_CAR_MODELS_CHANGE        1336
  43. #define         DIALOG_CAR_MENU                 1337
  44. #define         DIALOG_CAR_PARK                 1338
  45. #define         DIALOG_CAR_COLOR_1              1339
  46. #define         DIALOG_VEHICLES_MODELS          1340
  47. #define         DIALOG_SELL_CAR                 1341
  48. #define         DIALOG_HOUSE_STATUS             1342
  49. #define         DIALOG_SELL_HOUSE               1343
  50. #define         DIALOG_CHANGE_HOUSE_SPAWN       1344
  51. #define         DIALOG_EDIT_HOUSE               1345
  52. #define         DIALOG_EDIT_HOUSE_PRICE         1346
  53. #define         DIALOG_EDIT_HOUSE_RENT_PRICE    1347
  54. #define         DIALOG_EDIT_HOUSE_INT           1348
  55. #define         DIALOG_EDIT_HOUSE_ID            1349
  56. #define         DIALOG_HOUSE_TENANT_MENU        1350
  57. #define         DIALOG_HOUSE_RENT_MENU          1351
  58. #define         DIALOG_HOUSE_OWNER_MENU         1352
  59. #define         DIALOG_HOUSE_SELL_MENU          1353
  60. #define         DIALOG_RENT                     1354
  61. #define         DIALOG_RENT_PRICE               1355
  62. #define         DIALOG_HOUSE_SELL_PLAYER        1356
  63. #define         DIALOG_HOUSE_SELL_PLAYER2       1357
  64. #define         DIALOG_HOUSE_SELL_PLAYER3       1358
  65. #define         DIALOG_SELLING_CONFIRM          1359
  66. #define         DIALOG_CHANGE_PLATE             1360
  67. #define         DIALOG_STORAGE_HOUSE            1361
  68. #define         DIALOG_DELETE_HOUSE             1362
  69. #define         DIALOG_CHANGE_OWNER             1363
  70. #define         DIALOG_CHANGE_OWNER2            1364
  71. #define         DIALOG_ADMIN                    1365
  72. #define         DIALOG_SELL_HOUSE_ADMIN         1366
  73. #define         DIALOG_GUEST                    1367
  74. #define         DIALOG_CAR_MODELS_CREATED       1368
  75. #define         DIALOG_RENT_CONFIRM             1369
  76. #define         DIALOG_DUMP_TENANT              1370
  77. #define         DIALOG_UNRENT_CONFIRM           1371
  78. #define         DIALOG_RENTING_GUEST            1372
  79. #define         DIALOG_HOUSE_TITLE              1373
  80. #define         DIALOG_HOUSE_TITLE_ADMIN        1374
  81. #define         DIALOG_CAR_COLOR_2              1375
  82. #define         DIALOG_STORAGE_ARMOUR           1376
  83.  
  84. //======================== [CORES] ==============================//
  85. #define         COLOR_ERROR                     0xFF0000AA
  86.  
  87. //======================== [DEFINES] ===========================//
  88. #define         TEXT_SELLING_HOUSE              "- {5CFFC8} CASA A VENDA {FFFFFF} -\n{FFFF5C}Preço: {F6F6F6}$%d\n{FFFF5C}Número: {F6F6F6}%d"
  89. #define         TEXT_HOUSE                      "{46FE00}%s\n\n{FFFF5C}Dono da Casa: {F6F6F6}%s\n{FFFF5C}Aluguel: {F6F6F6}%s\n{FFFF5C}Status: {F6F6F6}%s\n{FFFF5C}Número: {F6F6F6}%d"
  90. #define         TEXT_RENT_HOUSE                 "{46FE00}%s\n\n{FFFF5C}Dono da Casa: {F6F6F6}%s\n{FFFF5C}Locador: {F6F6F6}%s\n{FFFF5C}Preço Aluguel: {F6F6F6}$%d\n{FFFF5C}Status: {F6F6F6}%s\n{FFFF5C}Número: {F6F6F6}%d"
  91.  
  92. #define         MAX_HOUSES                      500
  93.  
  94. #define         LOG_HOUSES                      "LHouse/Logs/Casas.log"
  95. #define         LOG_VEHICLES                    "LHouse/Logs/Carros.log"
  96. #define         LOG_ADMIN                       "LHouse/Logs/Administração.log"
  97. #define         LOG_SYSTEM                      "LHouse/Logs/Sistema.log"
  98.  
  99. #define         LHOUSE_VERSION                  "2.1.7"
  100. #define         LHOUSE_RELEASE_DATE             "10/07/2014"
  101.  
  102. enum H_DATA
  103. {
  104.     houseOwner[MAX_PLAYER_NAME],
  105.     houseTitle[32],
  106.     Float:houseX,
  107.     Float:houseY,
  108.     Float:houseZ,
  109.     Float:houseIntX,
  110.     Float:houseIntY,
  111.     Float:houseIntZ,
  112.     Float:houseIntFA,
  113.     housePrice,
  114.     houseRentable,
  115.     houseRentPrice,
  116.     houseTenant[MAX_PLAYER_NAME],
  117.     houseInterior,
  118.     houseVirtualWorld,
  119.     houseOutcoming,
  120.     houseIncoming,
  121.     houseStatus,
  122.     Float: houseArmourStored[MAX_ARMOUR]
  123. };
  124.  
  125. new
  126.     houseData[MAX_HOUSES][H_DATA];
  127.  
  128. enum V_DATA
  129. {
  130.     vehicleHouse,
  131.     vehicleModel,
  132.     Float:vehicleX,
  133.     Float:vehicleY,
  134.     Float:vehicleZ,
  135.     Float:vehicleAngle,
  136.     vehicleColor1,
  137.     vehicleColor2,
  138.     vehiclePrice,
  139.     vehicleStatus,
  140.     vehiclePlate[9],
  141.     vehicleRespawnTime
  142. };
  143.  
  144. new
  145.     houseVehicle[MAX_HOUSES][V_DATA];
  146.  
  147. new Float:vehicleRandomSpawnLS[5][4] =
  148. {
  149.     {562.1305, -1289.1633, 17.2482, 8.3140},
  150.     {555.0199, -1289.7725, 17.2482, 8.3140},
  151.     {545.4489, -1290.3143, 17.2422, 5.4940},
  152.     {537.9535, -1290.5930, 17.2422, 5.4940},
  153.     {531.6931, -1289.9067, 17.2422, 5.4940}
  154. };
  155.  
  156. new Float:vehicleRandomSpawnLV[5][4] =
  157. {
  158.     {2148.9365, 1408.1271, 10.8203, 357.5897},
  159.     {2142.3223, 1408.1522, 10.8203, 0.4097},
  160.     {2135.7615, 1408.5500, 10.8203, 0.4097},
  161.     {2129.6689, 1408.9573, 10.8203, 0.4097},
  162.     {2122.9722, 1408.7527, 10.8125, 0.4097}
  163. };
  164.  
  165. new Float:vehicleRandomSpawnSF[5][4] =
  166. {
  167.     {-1660.8989, 1214.8601, 6.8225, 254.6284},
  168.     {-1662.4044, 1220.4973, 13.2328, 244.6268},
  169.     {-1658.1219, 1211.8868, 13.2439, 253.0740},
  170.     {-1665.8286, 1206.1846, 20.7260, 297.6071},
  171.     {-1656.9680, 1214.9564, 20.7159, 214.0509}
  172. };
  173.  
  174. #pragma unused vehicleRandomSpawnLV
  175. #pragma unused vehicleRandomSpawnSF
  176.  
  177. new
  178.     houseIDReceiveCar,
  179.     carSell,
  180.     housePickupIn[MAX_HOUSES],
  181.     housePickupOut[MAX_HOUSES],
  182.     houseMapIcon[MAX_HOUSES],
  183.     Text3D:houseLabel[MAX_HOUSES],
  184.     Float:houseInteriorX[MAX_PLAYERS],
  185.     Float:houseInteriorY[MAX_PLAYERS],
  186.     Float:houseInteriorZ[MAX_PLAYERS],
  187.     Float:houseInteriorFA[MAX_PLAYERS],
  188.     houseIntPrice[MAX_PLAYERS],
  189.     houseInteriorInt[MAX_PLAYERS],
  190.     carSet[MAX_PLAYERS],
  191.     bool: houseCarSet[MAX_PLAYERS],
  192.     bool: counting[MAX_PLAYERS] = false,
  193.     houseCarSetPos[MAX_PLAYERS],
  194.     carSetted[MAX_PLAYERS],
  195.     playerReceiveHouse,
  196.     priceReceiveHouse,
  197.     timerC[MAX_PLAYERS],
  198.     houseSellingID,
  199.     playerIDOffer,
  200.     timeHour, timeMinute, timeSecond,
  201.     towRequired[MAX_HOUSES],
  202.     vehicleHouseCarDefined[MAX_HOUSES],
  203.     newOwnerID,
  204.     bool: adminCreatingVehicle[MAX_PLAYERS],
  205.     playerName[MAX_PLAYER_NAME],
  206.     globalColor1,
  207.     globalColor2,
  208.     Float: oldArmour;
  209.  
  210. new
  211.     PlayerText:houseLocked[MAX_PLAYERS],
  212.     PlayerText:houseUnlocked[MAX_PLAYERS],
  213.     PlayerText:vehicleLocked[MAX_PLAYERS],
  214.     PlayerText:vehicleUnlocked[MAX_PLAYERS],
  215.     PlayerText:rentDisabled[MAX_PLAYERS],
  216.     PlayerText:rentEnabled[MAX_PLAYERS],
  217.     PlayerText:vehicleSold[MAX_PLAYERS],
  218.     PlayerText:houseSold[MAX_PLAYERS],
  219.     PlayerText:houseEdited[MAX_PLAYERS],
  220.     PlayerText:welcome[MAX_PLAYERS],
  221.     PlayerText:comeBackSoon[MAX_PLAYERS],
  222.     PlayerText:houseCreated[MAX_PLAYERS],
  223.     PlayerText:noAutorization[MAX_PLAYERS],
  224.     PlayerText:vehicleCreated[MAX_PLAYERS],
  225.     PlayerText:houseDeleted[MAX_PLAYERS],
  226.     PlayerText:vehicleBought[MAX_PLAYERS],
  227.     PlayerText:vehicleModified[MAX_PLAYERS];
  228.  
  229. //============================= [FORWARDS] ============================//
  230. TowVehicles();
  231. HideTextdraws(playerid);
  232. CreateHouseVehicleToPark(playerid);
  233. RentalCharge();
  234. CreateLogs();
  235. SaveHouses();
  236. SaveHouse(house);
  237. SpawnInHome(playerid);
  238. DestroySetVehicle(playerid);
  239.  
  240. //============================= [PUBLICS] ============================//
  241. public OnPlayerDisconnect(playerid)
  242. {
  243.     new
  244.         house = GetHouseByOwner(playerid);
  245.  
  246.     if(houseCarSet[playerid])
  247.     {
  248.         new
  249.             logString[400];
  250.  
  251.         GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  252.         format(logString, sizeof logString, "O jogador %s[%d], se desconectou e estava definindo o carro da casa %d", playerName, playerid, house);
  253.         WriteLog(LOG_SYSTEM, logString);
  254.         DestroyVehicle(vehicleHouseCarDefined[house]);
  255.         adminCreatingVehicle[playerid] = false;
  256.     }
  257.  
  258.     return 1;
  259. }
  260.  
  261. public SpawnInHome(playerid)
  262. {
  263.     GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  264.  
  265.     new
  266.         house,
  267.         tenantHouseID,
  268.         tenantFile[200],
  269.         houseFile[200],
  270.         houseFile2[200],
  271.         ownerFile[200],
  272.         logString[700];
  273.  
  274.     format(ownerFile, sizeof ownerFile, "LHouse/Donos/%s.txt", playerName);
  275.     format(tenantFile, sizeof tenantFile, "LHouse/Locadores/%s.txt", playerName);
  276.  
  277.     house = DOF2_GetInt(ownerFile, "houseID");
  278.     tenantHouseID = DOF2_GetInt(tenantFile, "houseID");
  279.  
  280.     format(houseFile, sizeof houseFile, "LHouse/Casas/Casa %d.txt", house);
  281.     format(houseFile2, sizeof houseFile2, "LHouse/Casas/Casa %d.txt", tenantHouseID);
  282.  
  283.     if(DOF2_FileExists(ownerFile))
  284.     {
  285.         new
  286.             value = DOF2_GetInt(ownerFile, "ValorAreceber");
  287.  
  288.         SetPlayerVirtualWorld(playerid, houseData[house][houseVirtualWorld]);
  289.         SetPlayerPos(playerid, houseData[house][houseIntX], houseData[house][houseIntY], houseData[house][houseIntZ]);
  290.         SetPlayerFacingAngle(playerid, houseData[house][houseIntFA]);
  291.         SetPlayerInterior(playerid, houseData[house][houseInterior]);
  292.  
  293.         format(logString, sizeof logString, "O jogador %s[%d], foi spawnado na casa %d.", playerName, playerid, house);
  294.         WriteLog(LOG_HOUSES, logString);
  295.  
  296.         if(value != 0)
  297.         {
  298.             format(logString, sizeof logString, "O jogador %s[%d], foi spawnado na casa %d, e coletou o aluguel de $%d.", playerName, playerid, house, houseData[house][houseIncoming]);
  299.             WriteLog(LOG_HOUSES, logString);
  300.             GivePlayerMoney(playerid, houseData[house][houseIncoming]);
  301.             houseData[house][houseIncoming] = 0;
  302.             DOF2_SetInt(ownerFile, "ValorAreceber", houseData[house][houseIncoming]);
  303.             return 1;
  304.         }
  305.  
  306.         return 1;
  307.     }
  308.  
  309.     else if(DOF2_FileExists(tenantFile))
  310.     {
  311.         new
  312.             value = DOF2_GetInt(tenantFile, "ValorApagar");
  313.  
  314.         SetPlayerVirtualWorld(playerid, houseData[tenantHouseID][houseVirtualWorld]);
  315.         SetPlayerPos(playerid, houseData[tenantHouseID][houseIntX], houseData[tenantHouseID][houseIntY], houseData[tenantHouseID][houseIntZ]);
  316.         SetPlayerFacingAngle(playerid, houseData[tenantHouseID][houseIntFA]);
  317.         SetPlayerInterior(playerid, houseData[tenantHouseID][houseInterior]);
  318.  
  319.         format(logString, sizeof logString, "O jogador %s[%d], foi spawnado na casa %d.", playerName, playerid, tenantHouseID);
  320.         WriteLog(LOG_HOUSES, logString);
  321.  
  322.         if(value != 0)
  323.         {
  324.             if(GetPlayerMoney(playerid) < value)
  325.             {
  326.                 new
  327.                     Float: X, Float: Y, Float: Z;
  328.  
  329.                 GetPlayerPos(playerid, X, Y, Z);
  330.                 PlayerPlaySound(playerid, 1085, X, Y, Z);
  331.                 SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Você não tem dinheiro o suficiente para pagar o aluguel e foi despejado.");
  332.  
  333.                 format(houseData[tenantHouseID][houseTenant], 255, "Ninguem");
  334.                 DOF2_SetString(houseFile2, "Locador", "Ninguem", "Aluguel");
  335.                 DOF2_RemoveFile(tenantFile);
  336.                 Update3DText(tenantHouseID);
  337.  
  338.                 format(logString, sizeof logString, "O jogador %s[%d], não tinha dinheiro o suficiente para pagar o aluguel da casa %d e foi despejado.", playerName, playerid, tenantHouseID);
  339.                 WriteLog(LOG_HOUSES, logString);
  340.  
  341.                 return 1;
  342.             }
  343.  
  344.             format(logString, sizeof logString, "O jogador %s[%d], foi spawnado na casa %d e pagou $%d de aluguel.", playerName, playerid, tenantHouseID, value);
  345.             WriteLog(LOG_HOUSES, logString);
  346.  
  347.             GivePlayerMoney(playerid, -value);
  348.             houseData[tenantHouseID][houseOutcoming] = 0;
  349.  
  350.             DOF2_SetInt(tenantFile, "ValorApagar", houseData[tenantHouseID][houseOutcoming]);
  351.             return 1;
  352.         }
  353.  
  354.         return 1;
  355.     }
  356.  
  357.     return 1;
  358. }
  359.  
  360. public OnPlayerSpawn(playerid)
  361. {
  362.     SetTimerEx("SpawnInHome", 500, false, "i", playerid);
  363.     return 1;
  364. }
  365.  
  366. public OnPlayerStateChange(playerid, newstate, oldstate)
  367. {
  368.     new vehicleid = GetPlayerVehicleID(playerid);
  369.     new house = GetHouseByOwner(playerid);
  370.     if(oldstate == PLAYER_STATE_DRIVER && newstate == PLAYER_STATE_ONFOOT)
  371.     {
  372.         if(houseCarSet[playerid])
  373.         {
  374.             counting[playerid] = true;
  375.             SendClientMessage(playerid, -1, "[{FFEC00}LHouse{FFFFFF}] Você saiu do veículo que você comprou para sua casa e estava definindo.");
  376.             SendClientMessage(playerid, -1, "[{FFEC00}LHouse{FFFFFF}] Você tem {FF0000}50 {FFFFFF}segundos para voltar para o veículo, caso contrário ele vai ser destruído.");
  377.             SendClientMessage(playerid, -1, "[{FFEC00}LHouse{FFFFFF}] Se o tempo for esgotado você não vai ter seu dinheiro de volta.");
  378.             timerC[playerid] = SetTimerEx("DestroySetVehicle", 50000, false, "i", playerid);
  379.         }
  380.         return 1;
  381.     }
  382.     else if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER)
  383.     {
  384.         if(vehicleid == vehicleHouseCarDefined[house])
  385.         {
  386.             if(counting[playerid])
  387.             {
  388.                 SendClientMessage(playerid, -1, "[{FFEC00}LHouse{FFFFFF}] Você entrou no veículo a tempo e pode continuar definindo normalmente.");
  389.                 KillTimer(timerC[playerid]);
  390.             }
  391.         }
  392.         return 1;
  393.     }
  394.     return 1;
  395. }
  396.  
  397. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  398. {
  399.     new
  400.         Float: X, Float: Y, Float: Z;
  401.  
  402.     if(newkeys == KEY_SECONDARY_ATTACK)
  403.     {
  404.         for(new house = 1; house < MAX_HOUSES; house++)
  405.         {
  406.             if(IsPlayerInRangeOfPoint(playerid, 1, houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ]))
  407.             {
  408.                 if(IsPlayerAdmin(playerid))
  409.                 {
  410.                     TogglePlayerControllable(playerid, 0);
  411.                     ShowPlayerDialog(playerid, DIALOG_ADMIN, DIALOG_STYLE_MSGBOX, "{00F2FC}Escolha um menu.", "{FFFFFF}Qual menu você gostaria de ter acesso desta casa?", "Normal", "Admin.");
  412.                     return 1;
  413.                 }
  414.  
  415.                 ShowHouseMenu(playerid);
  416.                 GetPlayerPos(playerid, X, Y, Z);
  417.                 PlayerPlaySound(playerid, 1083, X, Y, Z);
  418.             }
  419.  
  420.             else if(IsPlayerInRangeOfPoint(playerid, 1, houseData[house][houseIntX], houseData[house][houseIntY], houseData[house][houseIntZ]))
  421.             {
  422.                 if(GetPlayerVirtualWorld(playerid) == houseData[house][houseVirtualWorld])
  423.                 {
  424.                     SetPlayerPos(playerid, houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ]);
  425.                     SetPlayerVirtualWorld(playerid, 0);
  426.                     SetPlayerInterior(playerid, 0);
  427.  
  428.                     PlayerTextDrawShow(playerid, comeBackSoon[playerid]);
  429.                     SetTimerEx("HideTextdraws", 2000, false, "i", playerid);
  430.  
  431.                     new
  432.                         logString[400];
  433.  
  434.                     GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  435.                     format(logString, sizeof logString, "O jogador %s[%d], saiu da casa %d", playerName, playerid, house);
  436.                     WriteLog(LOG_SYSTEM, logString);
  437.                 }
  438.             }
  439.         }
  440.     }
  441.  
  442.     if(newkeys == ALARM_KEY)
  443.     {
  444.         for(new house = 1; house < MAX_HOUSES; house++)
  445.         {
  446.             new
  447.                 housePath[200],
  448.                 Float:Pos[3],
  449.                 engine, lights, alarm, doors, bonnet, boot, objective;
  450.  
  451.             GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  452.             GetVehicleParamsEx(houseVehicle[house][vehicleHouse], engine, lights, alarm, doors, bonnet, boot, objective);
  453.             GetVehiclePos(houseVehicle[house][vehicleHouse], Pos[0], Pos[1], Pos[2]);
  454.  
  455.             if(!IsPlayerInVehicle(playerid, houseVehicle[house][vehicleHouse]))
  456.             {
  457.                 if((!strcmp(houseData[house][houseOwner], playerName, false)) || (!strcmp(houseData[house][houseTenant], playerName, false)))
  458.                 {
  459.                     if(IsPlayerInRangeOfPoint(playerid, 30.0, Pos[0], Pos[1], Pos[2]))
  460.                     {
  461.                         if(houseVehicle[house][vehicleStatus] == 1)
  462.                         {
  463.                             houseVehicle[house][vehicleStatus] = 0;
  464.  
  465.                             DOF2_SetInt(housePath, "Status do Carro", 0, "Veículo");
  466.                             DOF2_SaveFile();
  467.  
  468.                             PlayerTextDrawShow(playerid, vehicleUnlocked[playerid]);
  469.  
  470.                             SetTimerEx("HideTextdraws", 2000, false, "i", playerid);
  471.                             SetVehicleParamsEx(houseVehicle[house][vehicleHouse], engine, lights, alarm, 0, bonnet, boot, objective);
  472.  
  473.                             new
  474.                                 logString[128];
  475.  
  476.                             GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  477.                             GetPlayerPos(playerid, X, Y, Z);
  478.  
  479.                             format(logString, sizeof logString, "O jogador %s[%d], trancou o carro da casa %d ", playerName, playerid, house);
  480.                             WriteLog(LOG_VEHICLES, logString);
  481.  
  482.                             for(new s = GetMaxPlayers(), i; i < s; i++)
  483.                             {
  484.                                 if(IsPlayerInRangeOfPoint(i, 20.0, X, Y, Z))
  485.                                 {
  486.                                     PlayerPlaySound(i, 1145, X, Y, Z);
  487.                                     PlayAudioStreamForPlayer(i, "https://dl.dropboxusercontent.com/u/70544925/LHouse/Alarme.mp3", Pos[0], Pos[1], Pos[2], 20.0);
  488.                                 }
  489.                             }
  490.                         }
  491.  
  492.                         else
  493.                         {
  494.                             houseVehicle[house][vehicleStatus] = 1;
  495.  
  496.                             DOF2_SetInt(housePath, "Status do Carro", 1, "Veículo");
  497.                             DOF2_SaveFile();
  498.  
  499.                             PlayerTextDrawShow(playerid, vehicleLocked[playerid]);
  500.  
  501.                             SetTimerEx("HideTextdraws", 2000, false, "i", playerid);
  502.                             SetVehicleParamsEx(houseVehicle[house][vehicleHouse], engine, lights, alarm, 1, bonnet, boot, objective);
  503.  
  504.                             new
  505.                                 logString[128];
  506.  
  507.                             GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  508.                             GetPlayerPos(playerid, X, Y, Z);
  509.  
  510.                             format(logString, sizeof logString, "O jogador %s[%d], destrancou o carro da casa %d", playerName, playerid, house);
  511.                             WriteLog(LOG_VEHICLES, logString);
  512.  
  513.                             for(new s = GetMaxPlayers(), i; i < s; i++)
  514.                             {
  515.                                 if(IsPlayerInRangeOfPoint(i, 20.0, X, Y, Z))
  516.                                 {
  517.                                     PlayerPlaySound(i, 1145, X, Y, Z);
  518.                                     PlayAudioStreamForPlayer(i, "https://dl.dropboxusercontent.com/u/70544925/LHouse/Alarme.mp3", Pos[0], Pos[1], Pos[2], 20.0);
  519.                                 }
  520.                             }
  521.                         }
  522.                     }
  523.                 }
  524.             }
  525.         }
  526.     }
  527.     return 1;
  528. }
  529.  
  530. public OnFilterScriptInit()
  531. {
  532.     CreateAllHouses();
  533.     CreateAllHousesVehicles();
  534.     CreateLogs();
  535.  
  536.     for(new house = 1; house < MAX_HOUSES; house++)
  537.         if(houseVehicle[house][vehicleModel] != 0)
  538.             SetVehicleNumberPlate(houseVehicle[house][vehicleHouse], houseVehicle[house][vehiclePlate]);
  539.  
  540.     print("\t========================= LHOUSE ========================");
  541.     printf("\t LHouse v%s                ", LHOUSE_VERSION);
  542.     printf("\t Última atualização: %s         ", LHOUSE_RELEASE_DATE);
  543.     print("\t Autor: Lós                     ");
  544.     print("\t========================= LHOUSE ========================\n\n");
  545.  
  546.     new
  547.         logString[128];
  548.  
  549.     format(logString, sizeof logString, "----------- SISTEMA INICIADO -----------");
  550.     WriteLog(LOG_SYSTEM, logString);
  551.  
  552.     SetTimer("TowVehicles", 60000*3, true);
  553.     SetTimer("RentalCharge", 1000, true);
  554.     SetTimer("SaveHouses", 60000*10, true);
  555.  
  556.     return 1;
  557. }
  558.  
  559. public OnFilterScriptExit()
  560. {
  561.     SaveHouses();
  562.     DOF2_Exit();
  563.  
  564.     new
  565.         logString[128];
  566.  
  567.     format(logString, sizeof logString, "----------- SISTEMA FINALIZADO -----------");
  568.     WriteLog(LOG_SYSTEM, logString);
  569.  
  570.     for(new house = 1; house < MAX_HOUSES; house++)
  571.         if(houseVehicle[house][vehicleModel] != 0)
  572.             DestroyVehicle(houseVehicle[house][vehicleHouse]);
  573.  
  574.     return 1;
  575. }
  576.  
  577. public OnPlayerConnect(playerid)
  578. {
  579.     houseLocked[playerid] = CreatePlayerTextDraw(playerid, 445.000000, 306.000000, "Casa Trancada!");
  580.     PlayerTextDrawBackgroundColor(playerid, houseLocked[playerid], 255);
  581.     PlayerTextDrawFont(playerid,  houseLocked[playerid], 1);
  582.     PlayerTextDrawLetterSize(playerid, houseLocked[playerid], 0.789999, 3.599998);
  583.     PlayerTextDrawColor(playerid, houseLocked[playerid], -16776961);
  584.     PlayerTextDrawSetOutline(playerid, houseLocked[playerid], 0);
  585.     PlayerTextDrawSetProportional(playerid, houseLocked[playerid], 1);
  586.     PlayerTextDrawSetShadow(playerid, houseLocked[playerid], 1);
  587.  
  588.     houseUnlocked[playerid] = CreatePlayerTextDraw(playerid, 404.000000, 306.000000, "Casa Destrancada!");
  589.     PlayerTextDrawBackgroundColor(playerid, houseUnlocked[playerid], 255);
  590.     PlayerTextDrawFont(playerid, houseUnlocked[playerid], 1);
  591.     PlayerTextDrawLetterSize(playerid, houseUnlocked[playerid], 0.789999, 3.599998);
  592.     PlayerTextDrawColor(playerid, houseUnlocked[playerid], 16711935);
  593.     PlayerTextDrawSetOutline(playerid, houseUnlocked[playerid], 0);
  594.     PlayerTextDrawSetProportional(playerid, houseUnlocked[playerid], 1);
  595.     PlayerTextDrawSetShadow(playerid, houseUnlocked[playerid], 1);
  596.  
  597.     vehicleLocked[playerid] = CreatePlayerTextDraw(playerid, 430.000000, 306.000000, "Carro Trancado!");
  598.     PlayerTextDrawBackgroundColor(playerid, vehicleLocked[playerid], 255);
  599.     PlayerTextDrawFont(playerid, vehicleLocked[playerid], 1);
  600.     PlayerTextDrawLetterSize(playerid, vehicleLocked[playerid], 0.789999, 3.599998);
  601.     PlayerTextDrawColor(playerid, vehicleLocked[playerid], -16776961);
  602.     PlayerTextDrawSetOutline(playerid, vehicleLocked[playerid], 0);
  603.     PlayerTextDrawSetProportional(playerid, vehicleLocked[playerid], 1);
  604.     PlayerTextDrawSetShadow(playerid, vehicleLocked[playerid], 1);
  605.  
  606.     vehicleUnlocked[playerid] = CreatePlayerTextDraw(playerid, 389.000000, 306.000000, "Carro Destrancado!");
  607.     PlayerTextDrawBackgroundColor(playerid, vehicleUnlocked[playerid], 255);
  608.     PlayerTextDrawFont(playerid, vehicleUnlocked[playerid], 1);
  609.     PlayerTextDrawLetterSize(playerid, vehicleUnlocked[playerid], 0.789999, 3.599998);
  610.     PlayerTextDrawColor(playerid, vehicleUnlocked[playerid], 16711935);
  611.     PlayerTextDrawSetOutline(playerid, vehicleUnlocked[playerid], 0);
  612.     PlayerTextDrawSetProportional(playerid, vehicleUnlocked[playerid], 1);
  613.     PlayerTextDrawSetShadow(playerid, vehicleUnlocked[playerid], 1);
  614.  
  615.     rentDisabled[playerid] = CreatePlayerTextDraw(playerid, 384.000000, 306.000000, "Aluguel Desativado!");
  616.     PlayerTextDrawBackgroundColor(playerid, rentDisabled[playerid], 255);
  617.     PlayerTextDrawFont(playerid, rentDisabled[playerid], 1);
  618.     PlayerTextDrawLetterSize(playerid, rentDisabled[playerid], 0.789999, 3.599998);
  619.     PlayerTextDrawColor(playerid, rentDisabled[playerid], -16776961);
  620.     PlayerTextDrawSetOutline(playerid, rentDisabled[playerid], 0);
  621.     PlayerTextDrawSetProportional(playerid, rentDisabled[playerid], 1);
  622.     PlayerTextDrawSetShadow(playerid, rentDisabled[playerid], 1);
  623.  
  624.     rentEnabled[playerid] = CreatePlayerTextDraw(playerid, 426.000000, 306.000000, "Aluguel Ativado!");
  625.     PlayerTextDrawBackgroundColor(playerid, rentEnabled[playerid], 255);
  626.     PlayerTextDrawFont(playerid, rentEnabled[playerid], 1);
  627.     PlayerTextDrawLetterSize(playerid, rentEnabled[playerid], 0.789999, 3.599998);
  628.     PlayerTextDrawColor(playerid, rentEnabled[playerid], 16711935);
  629.     PlayerTextDrawSetOutline(playerid, rentEnabled[playerid], 0);
  630.     PlayerTextDrawSetProportional(playerid, rentEnabled[playerid], 1);
  631.     PlayerTextDrawSetShadow(playerid, rentEnabled[playerid], 1);
  632.  
  633.     vehicleSold[playerid] = CreatePlayerTextDraw(playerid, 441.000000, 306.000000, "Carro Vendido!");
  634.     PlayerTextDrawBackgroundColor(playerid, vehicleSold[playerid], 255);
  635.     PlayerTextDrawFont(playerid, vehicleSold[playerid], 1);
  636.     PlayerTextDrawLetterSize(playerid, vehicleSold[playerid], 0.789999, 3.599998);
  637.     PlayerTextDrawColor(playerid, vehicleSold[playerid], -16776961);
  638.     PlayerTextDrawSetOutline(playerid, vehicleSold[playerid], 0);
  639.     PlayerTextDrawSetProportional(playerid, vehicleSold[playerid], 1);
  640.     PlayerTextDrawSetShadow(playerid, vehicleSold[playerid], 1);
  641.  
  642.     houseSold[playerid] = CreatePlayerTextDraw(playerid, 456.000000, 306.000000, "Casa Vendida!");
  643.     PlayerTextDrawBackgroundColor(playerid, houseSold[playerid], 255);
  644.     PlayerTextDrawFont(playerid, houseSold[playerid], 1);
  645.     PlayerTextDrawLetterSize(playerid, houseSold[playerid], 0.789999, 3.599998);
  646.     PlayerTextDrawColor(playerid, houseSold[playerid], -16776961);
  647.     PlayerTextDrawSetOutline(playerid, houseSold[playerid], 0);
  648.     PlayerTextDrawSetProportional(playerid, houseSold[playerid], 1);
  649.     PlayerTextDrawSetShadow(playerid, houseSold[playerid], 1);
  650.  
  651.     houseEdited[playerid] = CreatePlayerTextDraw(playerid, 465.000000, 306.000000, "Casa Editada!");
  652.     PlayerTextDrawBackgroundColor(playerid, houseEdited[playerid], 255);
  653.     PlayerTextDrawFont(playerid, houseEdited[playerid], 1);
  654.     PlayerTextDrawLetterSize(playerid, houseEdited[playerid], 0.789999, 3.599998);
  655.     PlayerTextDrawColor(playerid, houseEdited[playerid], 16711935);
  656.     PlayerTextDrawSetOutline(playerid, houseEdited[playerid], 0);
  657.     PlayerTextDrawSetProportional(playerid, houseEdited[playerid], 1);
  658.     PlayerTextDrawSetShadow(playerid, houseEdited[playerid], 1);
  659.  
  660.     welcome[playerid] = CreatePlayerTextDraw(playerid, 489.000000, 306.000000, "Bem Vindo!");
  661.     PlayerTextDrawBackgroundColor(playerid, welcome[playerid], 255);
  662.     PlayerTextDrawFont(playerid, welcome[playerid], 1);
  663.     PlayerTextDrawLetterSize(playerid, welcome[playerid], 0.789999, 3.599998);
  664.     PlayerTextDrawColor(playerid, welcome[playerid], 16711935);
  665.     PlayerTextDrawSetOutline(playerid, welcome[playerid], 0);
  666.     PlayerTextDrawSetProportional(playerid, welcome[playerid], 1);
  667.     PlayerTextDrawSetShadow(playerid, welcome[playerid], 1);
  668.  
  669.     comeBackSoon[playerid] = CreatePlayerTextDraw(playerid, 452.000000, 306.000000, "Volte Sempre!");
  670.     PlayerTextDrawBackgroundColor(playerid, comeBackSoon[playerid], 255);
  671.     PlayerTextDrawFont(playerid, comeBackSoon[playerid], 1);
  672.     PlayerTextDrawLetterSize(playerid, comeBackSoon[playerid], 0.789999, 3.599998);
  673.     PlayerTextDrawColor(playerid, comeBackSoon[playerid], 16711935);
  674.     PlayerTextDrawSetOutline(playerid, comeBackSoon[playerid], 0);
  675.     PlayerTextDrawSetProportional(playerid, comeBackSoon[playerid], 1);
  676.     PlayerTextDrawSetShadow(playerid, comeBackSoon[playerid], 1);
  677.  
  678.     houseCreated[playerid] = CreatePlayerTextDraw(playerid, 478.000000, 306.000000, "Casa Criada!");
  679.     PlayerTextDrawBackgroundColor(playerid, houseCreated[playerid], 255);
  680.     PlayerTextDrawFont(playerid, houseCreated[playerid], 1);
  681.     PlayerTextDrawLetterSize(playerid, houseCreated[playerid], 0.789999, 3.599998);
  682.     PlayerTextDrawColor(playerid, houseCreated[playerid], 16711935);
  683.     PlayerTextDrawSetOutline(playerid, houseCreated[playerid], 0);
  684.     PlayerTextDrawSetProportional(playerid, houseCreated[playerid], 1);
  685.     PlayerTextDrawSetShadow(playerid, houseCreated[playerid], 1);
  686.  
  687.     noAutorization[playerid] = CreatePlayerTextDraw(playerid, 412.000000, 306.000000, "Sem Autorizacao!");
  688.     PlayerTextDrawBackgroundColor(playerid, noAutorization[playerid], 255);
  689.     PlayerTextDrawFont(playerid, noAutorization[playerid], 1);
  690.     PlayerTextDrawLetterSize(playerid, noAutorization[playerid], 0.789999, 3.599998);
  691.     PlayerTextDrawColor(playerid, noAutorization[playerid], -16776961);
  692.     PlayerTextDrawSetOutline(playerid, noAutorization[playerid], 0);
  693.     PlayerTextDrawSetProportional(playerid, noAutorization[playerid], 1);
  694.     PlayerTextDrawSetShadow(playerid, noAutorization[playerid], 1);
  695.  
  696.     vehicleCreated[playerid] = CreatePlayerTextDraw(playerid, 463.000000, 306.000000, "Carro Criado!");
  697.     PlayerTextDrawBackgroundColor(playerid, vehicleCreated[playerid], 255);
  698.     PlayerTextDrawFont(playerid, vehicleCreated[playerid], 1);
  699.     PlayerTextDrawLetterSize(playerid, vehicleCreated[playerid], 0.789999, 3.599997);
  700.     PlayerTextDrawColor(playerid, vehicleCreated[playerid], 16711935);
  701.     PlayerTextDrawSetOutline(playerid, vehicleCreated[playerid], 0);
  702.     PlayerTextDrawSetProportional(playerid, vehicleCreated[playerid], 1);
  703.     PlayerTextDrawSetShadow(playerid, vehicleCreated[playerid], 1);
  704.  
  705.     houseDeleted[playerid] = CreatePlayerTextDraw(playerid, 446.000000, 306.000000, "Casa Deletada!");
  706.     PlayerTextDrawBackgroundColor(playerid, houseDeleted[playerid], 255);
  707.     PlayerTextDrawFont(playerid, houseDeleted[playerid], 1);
  708.     PlayerTextDrawLetterSize(playerid, houseDeleted[playerid], 0.789999, 3.599997);
  709.     PlayerTextDrawColor(playerid, houseDeleted[playerid], -16776961);
  710.     PlayerTextDrawSetOutline(playerid, houseDeleted[playerid], 0);
  711.     PlayerTextDrawSetProportional(playerid, houseDeleted[playerid], 1);
  712.     PlayerTextDrawSetShadow(playerid, houseDeleted[playerid], 1);
  713.  
  714.     vehicleBought[playerid] = CreatePlayerTextDraw(playerid, 415.000000, 306.000000, "Carro Comprado!");
  715.     PlayerTextDrawBackgroundColor(playerid, vehicleBought[playerid], 255);
  716.     PlayerTextDrawFont(playerid, vehicleBought[playerid], 1);
  717.     PlayerTextDrawLetterSize(playerid, vehicleBought[playerid], 0.789999, 3.599997);
  718.     PlayerTextDrawColor(playerid, vehicleBought[playerid], 16711935);
  719.     PlayerTextDrawSetOutline(playerid, vehicleBought[playerid], 0);
  720.     PlayerTextDrawSetProportional(playerid, vehicleBought[playerid], 1);
  721.     PlayerTextDrawSetShadow(playerid, vehicleBought[playerid], 1);
  722.  
  723.     vehicleModified[playerid] = CreatePlayerTextDraw(playerid, 407.000000, 306.000000, "Carro Modificado!");
  724.     PlayerTextDrawBackgroundColor(playerid, vehicleModified[playerid], 255);
  725.     PlayerTextDrawFont(playerid, vehicleModified[playerid], 1);
  726.     PlayerTextDrawLetterSize(playerid, vehicleModified[playerid], 0.789999, 3.599997);
  727.     PlayerTextDrawColor(playerid, vehicleModified[playerid], 16711935);
  728.     PlayerTextDrawSetOutline(playerid, vehicleModified[playerid], 0);
  729.     PlayerTextDrawSetProportional(playerid, vehicleModified[playerid], 1);
  730.     PlayerTextDrawSetShadow(playerid, vehicleModified[playerid], 1);
  731.  
  732.     return 1;
  733. }
  734.  
  735. public TowVehicles()
  736. {
  737.     new
  738.         string[128], houseTows;
  739.  
  740.     for(new houses = 1; houses < MAX_HOUSES; houses++)
  741.     {
  742.         if(towRequired[houses] == 1)
  743.         {
  744.             houseTows++;
  745.             SetVehicleToRespawn(houseVehicle[houses][vehicleHouse]);
  746.             towRequired[houses] = 0;
  747.             format(string, sizeof string, "O guincho acabou de entregar os carros solicitados!");
  748.         }
  749.     }
  750.  
  751.     if(houseTows == 0)
  752.         return 1;
  753.  
  754.     SendClientMessageToAll(-1, string);
  755.     return 1;
  756. }
  757.  
  758. public HideTextdraws(playerid)
  759. {
  760.     PlayerTextDrawHide(playerid, houseLocked[playerid]);
  761.     PlayerTextDrawHide(playerid, houseUnlocked[playerid]);
  762.     PlayerTextDrawHide(playerid, vehicleLocked[playerid]);
  763.     PlayerTextDrawHide(playerid, vehicleUnlocked[playerid]);
  764.     PlayerTextDrawHide(playerid, rentDisabled[playerid]);
  765.     PlayerTextDrawHide(playerid, rentEnabled[playerid]);
  766.     PlayerTextDrawHide(playerid, vehicleSold[playerid]);
  767.     PlayerTextDrawHide(playerid, houseSold[playerid]);
  768.     PlayerTextDrawHide(playerid, houseEdited[playerid]);
  769.     PlayerTextDrawHide(playerid, welcome[playerid]);
  770.     PlayerTextDrawHide(playerid, comeBackSoon[playerid]);
  771.     PlayerTextDrawHide(playerid, houseCreated[playerid]);
  772.     PlayerTextDrawHide(playerid, noAutorization[playerid]);
  773.     PlayerTextDrawHide(playerid, vehicleCreated[playerid]);
  774.     PlayerTextDrawHide(playerid, houseDeleted[playerid]);
  775.     PlayerTextDrawHide(playerid, vehicleBought[playerid]);
  776.     PlayerTextDrawHide(playerid, vehicleModified[playerid]);
  777.     return 1;
  778. }
  779.  
  780. public DestroySetVehicle(playerid)
  781. {
  782.     SendClientMessage(playerid, -1, "[{FFEC00}LHouse{FFFFFF}] Você não voltou para o veículo a tempo.");
  783.     SendClientMessage(playerid, -1, "[{FFEC00}LHouse{FFFFFF}] O veículo foi destruído.");
  784.     new house = GetHouseByOwner(playerid);
  785.     DestroyVehicle(vehicleHouseCarDefined[house]);
  786.     houseCarSet[playerid] = false;
  787.     return 1;
  788. }
  789.  
  790. public CreateLogs()
  791. {
  792.     if(!LogExists(LOG_HOUSES))
  793.     {
  794.         CreateLog(LOG_HOUSES);
  795.         WriteLog(LOG_HOUSES, "Log de casas criado.");
  796.         print("\n\t Log de casas criado.");
  797.     }
  798.     if(!LogExists(LOG_VEHICLES))
  799.     {
  800.         CreateLog(LOG_VEHICLES);
  801.         WriteLog(LOG_VEHICLES, "Log de veículos das casas criado.");
  802.         print("\t Log de veículos das casas criado.");
  803.     }
  804.     if(!LogExists(LOG_ADMIN))
  805.     {
  806.         CreateLog(LOG_ADMIN);
  807.         WriteLog(LOG_ADMIN, "Log de administração das casas criado.");
  808.         print("\t Log de administração das casas criado.");
  809.     }
  810.     if(!LogExists(LOG_SYSTEM))
  811.     {
  812.         CreateLog(LOG_SYSTEM);
  813.         WriteLog(LOG_SYSTEM, "Log do sistema criado.");
  814.         print("\t Log do sistema criado.");
  815.     }
  816.     return 1;
  817. }
  818.  
  819. public CreateHouseVehicleToPark(playerid)
  820. {
  821.     new
  822.         Float: X, Float: Y, Float: Z,
  823.         Float: facingAngle;
  824.  
  825.     SendClientMessage(playerid, -1, "[{FFEC00}LHouse{FFFFFF}] Agora estacione e digite {46FE00}/estacionar{FFFFFF}.");
  826.  
  827.     GetPlayerPos(playerid, X, Y, Z);
  828.     GetPlayerFacingAngle(playerid, facingAngle);
  829.  
  830.     carSet[playerid] = 1;
  831.     carSetted[playerid] = CreateVehicle(542, X, Y, Z, facingAngle, 0, 0, 90000);
  832.  
  833.     PutPlayerInVehicle(playerid, carSetted[playerid], 0);
  834.     PlayerTextDrawShow(playerid, vehicleCreated[playerid]);
  835.     SetTimerEx("HideTextdraws", 2000, false, "i", playerid);
  836.  
  837.     return 1;
  838. }
  839.  
  840. public RentalCharge()
  841. {
  842.     new
  843.         Float: X, Float: Y, Float: Z,
  844.         housesCharged,
  845.         playersDumped,
  846.         ownerID,
  847.         tenantID,
  848.         logString[700],
  849.         playerName2[MAX_PLAYER_NAME],
  850.         playerName3[MAX_PLAYER_NAME],
  851.         ownerFile[200],
  852.         tenantFile[200],
  853.         houseFile[200],
  854.         string[128];
  855.  
  856.     gettime(timeHour, timeMinute, timeSecond);
  857.  
  858.     for(new i = 1; i < MAX_HOUSES; i++)
  859.     {
  860.         format(ownerFile, sizeof ownerFile, "LHouse/Donos/%s.txt", houseData[i][houseOwner]);
  861.         format(tenantFile, sizeof tenantFile, "LHouse/Locadores/%s.txt", houseData[i][houseTenant]);
  862.         format(houseFile, sizeof houseFile, "LHouse/Casas/Casa %d.txt", i);
  863.  
  864.         if(DOF2_FileExists(ownerFile) || DOF2_FileExists(tenantFile))
  865.         {
  866.             for(new ids = 0; ids < MAX_PLAYERS; ids++)
  867.             {
  868.                 if(IsPlayerConnected(ids))
  869.                 {
  870.                     GetPlayerName(ids, playerName, MAX_PLAYER_NAME);
  871.  
  872.                     if(!strcmp(houseData[i][houseOwner], playerName, true))
  873.                     {
  874.                        ownerID = ids;
  875.                        GetPlayerName(ownerID, playerName2, MAX_PLAYER_NAME);
  876.                     }
  877.  
  878.                     if(!strcmp(houseData[i][houseTenant], playerName, true))
  879.                     {
  880.                        tenantID = ids;
  881.                        GetPlayerName(tenantID, playerName3, MAX_PLAYER_NAME);
  882.                     }
  883.                 }
  884.             }
  885.         }
  886.         if(timeHour == 15)
  887.         {
  888.             if(timeMinute == 43)
  889.             {
  890.                 if(timeSecond == 00)
  891.                 {
  892.                     if(strcmp(houseData[i][houseTenant], "Ninguem", true))
  893.                     {
  894.                         housesCharged++;
  895.                         houseData[i][houseOutcoming] += houseData[i][houseRentPrice];
  896.                         houseData[i][houseIncoming] += houseData[i][houseRentPrice];
  897.                         DOF2_SetInt(ownerFile, "ValorAreceber", houseData[i][houseIncoming]);
  898.                         DOF2_SetInt(tenantFile, "ValorApagar", houseData[i][houseOutcoming]);
  899.  
  900.                         if(IsPlayerConnected(ownerID))
  901.                         {
  902.                             format(string, sizeof string, "[{FFEC00}LHouse{FFFFFF}] Hora de receber o aluguel! Você recebeu {FFFFFF}$%d {FFFFFF}do locador.", houseData[i][houseIncoming]);
  903.                             SendClientMessage(ownerID, -1, string);
  904.                             GivePlayerMoney(ownerID, houseData[i][houseIncoming]);
  905.                             houseData[i][houseIncoming] = 0;
  906.                             DOF2_SetInt(ownerFile, "ValorAreceber", houseData[i][houseIncoming]);
  907.                         }
  908.  
  909.                         if(IsPlayerConnected(tenantID))
  910.                         {
  911.                             if(GetPlayerMoney(tenantID) < houseData[i][houseOutcoming])
  912.                             {
  913.                                 playersDumped++;
  914.                                 GetPlayerPos(tenantID, X, Y, Z);
  915.                                 PlayerPlaySound(tenantID, 1085, X, Y, Z);
  916.                                 SendClientMessage(tenantID, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Você não tem dinheiro o suficiente para pagar o aluguel. Você foi despejado.");
  917.                                 format(houseData[i][houseTenant], 255, "Ninguem");
  918.                                 DOF2_SetString(houseFile, "Locador", "Ninguem", "Aluguel");
  919.                                 DOF2_RemoveFile(tenantFile);
  920.                                 Update3DText(i);
  921.                                 return 1;
  922.                             }
  923.  
  924.                             format(string, sizeof string, "[{FFEC00}LHouse{FFFFFF}] Hora de pagar o aluguel! Você pagou {FFFFFF}$%d {FFFFFF}de aluguel.", houseData[i][houseOutcoming]);
  925.                             SendClientMessage(tenantID, -1, string);
  926.                             GivePlayerMoney(tenantID, -houseData[i][houseOutcoming]);
  927.                             houseData[i][houseOutcoming] = 0;
  928.                             DOF2_SetInt(tenantFile, "ValorApagar", houseData[i][houseOutcoming]);
  929.                         }
  930.                     }
  931.                 }
  932.             }
  933.         }
  934.     }
  935.  
  936.     if(housesCharged != 0)
  937.     {
  938.         format(logString, sizeof logString, "Foram cobrado os alugueis de %d casas, %d jogadores que não tinham dinheiro para pagar aluguel estavam conectados e foram despejados.", housesCharged, playersDumped);
  939.         return WriteLog(LOG_SYSTEM, logString);
  940.     }
  941.  
  942.     return 1;
  943. }
  944.  
  945. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  946. {
  947.     new
  948.         Float: X, Float: Y, Float: Z;
  949.  
  950.     GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  951.  
  952.     switch(dialogid)
  953.     {
  954.         case DIALOG_ADMIN:
  955.         {
  956.             if(response)
  957.             {
  958.                 ShowHouseMenu(playerid);
  959.                 TogglePlayerControllable(playerid, 1);
  960.                 return 1;
  961.             }
  962.  
  963.             if(!response)
  964.             {
  965.                 ShowAdminMenu(playerid);
  966.                 TogglePlayerControllable(playerid, 1);
  967.                 return 1;
  968.             }
  969.         }
  970.         case DIALOG_GUEST:
  971.         {
  972.             if (!response)
  973.                 return TogglePlayerControllable(playerid, 1);
  974.  
  975.             new
  976.                 house = GetProxHouse(playerid);
  977.  
  978.             if(houseData[house][houseStatus] == 1)
  979.             {
  980.                 PlayerTextDrawShow(playerid, houseLocked[playerid]);
  981.                 SetTimerEx("HideTextdraws", 2000, false, "i", playerid);
  982.                 TogglePlayerControllable(playerid, 1);
  983.  
  984.                 new
  985.                     logString[700];
  986.  
  987.                 format(logString, sizeof logString, "O jogador %s[%d], tentou entrar na casa %d, mais ela estava trancada.", playerName, playerid, house);
  988.                 WriteLog(LOG_HOUSES, logString);
  989.  
  990.                 return 1;
  991.             }
  992.  
  993.             else
  994.             {
  995.                 if(IsPlayerInRangeOfPoint(playerid, 5.0, houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ]))
  996.                 {
  997.                     SetPlayerPos(playerid, houseData[house][houseIntX], houseData[house][houseIntY], houseData[house][houseIntZ]);
  998.                     SetPlayerVirtualWorld(playerid, houseData[house][houseVirtualWorld]);
  999.                     SetPlayerInterior(playerid, houseData[house][houseInterior]);
  1000.  
  1001.                     TogglePlayerControllable(playerid, 1);
  1002.                     PlayerTextDrawShow(playerid, welcome[playerid]);
  1003.  
  1004.                     new
  1005.                         logString[700];
  1006.  
  1007.                     format(logString, sizeof logString, "O jogador %s[%d], entrou na casa %d como visitante.", playerName, playerid, house);
  1008.                     WriteLog(LOG_HOUSES, logString);
  1009.                     SetTimerEx("HideTextdraws", 2000, false, "i", playerid);
  1010.                 }
  1011.             }
  1012.         }
  1013.         case DIALOG_RENTING_GUEST:
  1014.         {
  1015.             if(!response)
  1016.                 return TogglePlayerControllable(playerid, 1);
  1017.  
  1018.             new
  1019.                 house = GetProxHouse(playerid);
  1020.  
  1021.             switch(listitem)
  1022.             {
  1023.                 case 0:
  1024.                 {
  1025.                     if(houseData[house][houseStatus] == 1)
  1026.                     {
  1027.                         PlayerTextDrawShow(playerid, houseLocked[playerid]);
  1028.                         SetTimerEx("HideTextdraws", 2000, false, "i", playerid);
  1029.                         TogglePlayerControllable(playerid, 1);
  1030.  
  1031.                         new
  1032.                             logString[256];
  1033.  
  1034.                         format(logString, sizeof logString, "O jogador %s[%d], tentou entrar na casa %d, mais ela estava trancada.", playerName, playerid, house);
  1035.                         WriteLog(LOG_HOUSES, logString);
  1036.                         return 1;
  1037.                     }
  1038.  
  1039.                     else
  1040.                     {
  1041.                         if(IsPlayerInRangeOfPoint(playerid, 5.0, houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ]))
  1042.                         {
  1043.                             SetPlayerPos(playerid, houseData[house][houseIntX], houseData[house][houseIntY], houseData[house][houseIntZ]);
  1044.                             SetPlayerVirtualWorld(playerid, houseData[house][houseVirtualWorld]);
  1045.                             SetPlayerInterior(playerid, houseData[house][houseInterior]);
  1046.  
  1047.                             TogglePlayerControllable(playerid, 1);
  1048.                             PlayerTextDrawShow(playerid, welcome[playerid]);
  1049.                             SetTimerEx("HideTextdraws", 2000, false, "i", playerid);
  1050.  
  1051.                             new
  1052.                                 logString[128];
  1053.  
  1054.                             format(logString, sizeof logString, "O jogador %s[%d], entrou na casa %d como visitante.", playerName, playerid, house);
  1055.                             WriteLog(LOG_HOUSES, logString);
  1056.                         }
  1057.                     }
  1058.                 }
  1059.                 case 1:
  1060.                 {
  1061.                     new
  1062.                         ownerFile[200];
  1063.  
  1064.                     format(ownerFile, sizeof ownerFile, "LHouse/Donos/%s.txt", playerName);
  1065.  
  1066.                     if(DOF2_FileExists(ownerFile))
  1067.                     {
  1068.                         new
  1069.                             alreadyOwner = DOF2_GetInt(ownerFile, "houseID"),
  1070.                             string[128];
  1071.  
  1072.                         GetPlayerPos(playerid, X, Y, Z);
  1073.                         PlayerPlaySound(playerid, 1085, X, Y, Z);
  1074.  
  1075.                         format(string, sizeof string, "{F90700}Erro: {FFFFFF}Você já é dono da casa %d! Não pode alugar uma casa.!", alreadyOwner);
  1076.                         SendClientMessage(playerid, COLOR_ERROR, string);
  1077.  
  1078.                         TogglePlayerControllable(playerid, 1);
  1079.                         new
  1080.                             logString[700];
  1081.  
  1082.                         format(logString, sizeof logString, "O jogador %s[%d], tentou alugar a casa %d, mais ele já é dono da casa %d.", playerName, playerid, house, alreadyOwner);
  1083.                         WriteLog(LOG_HOUSES, logString);
  1084.  
  1085.                         return 1;
  1086.                     }
  1087.  
  1088.                     new
  1089.                         stringCat[600],
  1090.                         string[100],
  1091.                         string2[100],
  1092.                         string3[100];
  1093.  
  1094.                     GetPlayerName(playerIDOffer, playerName, MAX_PLAYER_NAME);
  1095.                     TogglePlayerControllable(playerIDOffer, 1);
  1096.  
  1097.                     format(string, sizeof string, "{00F2FC}Dono da casa a ser alugada: {46FE00}%s\n\n", houseData[house][houseOwner]);
  1098.                     format(string2, sizeof string2, "{00F2FC}Valor a ser pago pelo aluguel da casa: {FFFFFF}$%d\n", houseData[house][houseRentPrice]);
  1099.                     format(string3, sizeof string3, "{00F2FC}ID da casa a ser alugada: {FFFFFF}%d\n", house);
  1100.  
  1101.                     strcat(stringCat, "{00F2FC}Após alugar a casa, o aluguel será cobrado todo dia 00:00! Se você não estiver online\n");
  1102.                     strcat(stringCat, "o aluguel será cobrado quando você entrar novamente no servidor.\n\n");
  1103.                     strcat(stringCat, string);
  1104.                     strcat(stringCat, string2);
  1105.                     strcat(stringCat, string3);
  1106.                     strcat(stringCat, "{FD0900}ATENÇÃO:{FFFFFF} A casa dita acima vai ser alugada por você e você poderá trancar e destrancar a casa, tanto como nascerá nela.\nVocê também vai poder trancar e destrancar o carro caso ela tiver, caso não tiver você pode ajudar o dono a comprar um\npagando seu aluguel regurlamente.\n");
  1107.                     strcat(stringCat, "Você deseja alugar a casa, baseada nas informações acima descritas?\n");
  1108.  
  1109.                     ShowPlayerDialog(playerid, DIALOG_RENT_CONFIRM, DIALOG_STYLE_MSGBOX, "Venda de casa", stringCat, "Alugar", "Negar");
  1110.                     TogglePlayerControllable(playerid, 1);
  1111.                 }
  1112.             }
  1113.         }
  1114.         case DIALOG_UNRENT_CONFIRM:
  1115.         {
  1116.             if (!response)
  1117.                 return SendClientMessage(playerid, -1, "Você optou por não desalugar a casa.");
  1118.             new
  1119.                 tenantFile[200],
  1120.                 houseFile[200],
  1121.                 house = GetProxHouse(playerid),
  1122.                 logString[128];
  1123.  
  1124.             format(tenantFile, sizeof tenantFile, "LHouse/Locadores/%s.txt", houseData[house][houseTenant]);
  1125.             format(houseFile, sizeof houseFile, "LHouse/Casas/Casa %d.txt", house);
  1126.             format(houseData[house][houseTenant], 24, "Ninguem");
  1127.  
  1128.             DOF2_RemoveFile(tenantFile);
  1129.             DOF2_SetString(houseFile, "Locador", "Ninguem", "Aluguel");
  1130.  
  1131.             TogglePlayerControllable(playerid, 1);
  1132.             GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  1133.  
  1134.             format(logString, sizeof logString, "O jogador %s[%d], desalugou a casa %d.", playerName, playerid, house);
  1135.             WriteLog(LOG_HOUSES, logString);
  1136.  
  1137.             return 1;
  1138.         }
  1139.         case DIALOG_RENT_CONFIRM:
  1140.         {
  1141.             if(!response)
  1142.                 return 1;
  1143.  
  1144.             new
  1145.                 house = GetProxHouse(playerid),
  1146.                 tenantFile[200],
  1147.                 houseFile[200],
  1148.                 logString[128];
  1149.  
  1150.             GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  1151.  
  1152.             format(tenantFile, sizeof tenantFile, "LHouse/Locadores/%s.txt", playerName);
  1153.             format(houseFile, sizeof houseFile, "LHouse/Casas/Casa %d.txt", house);
  1154.  
  1155.             if(DOF2_FileExists(tenantFile))
  1156.             {
  1157.                 new
  1158.                     alreadyTenant = DOF2_GetInt(tenantFile, "houseID"),
  1159.                     string[128];
  1160.  
  1161.                 GetPlayerPos(playerid, X, Y, Z);
  1162.                 PlayerPlaySound(playerid, 1085, X, Y, Z);
  1163.  
  1164.                 format(string, sizeof string, "{F90700}Erro: {FFFFFF}Você já é locador da casa %d! Você só pode ter 1 casa alugada!", alreadyTenant);
  1165.                 SendClientMessage(playerid, COLOR_ERROR, string);
  1166.  
  1167.                 TogglePlayerControllable(playerid, 1);
  1168.  
  1169.                 format(logString, sizeof logString, "O jogador %s[%d], tentou alugar a casa %d, mas ele já é locador da casa %d.", playerName, playerid, house, alreadyTenant);
  1170.                 WriteLog(LOG_HOUSES, logString);
  1171.                 return 1;
  1172.             }
  1173.  
  1174.             format(houseData[house][houseTenant], 24, playerName);
  1175.  
  1176.             DOF2_CreateFile(tenantFile);
  1177.             DOF2_SetInt(tenantFile, "houseID", house);
  1178.             DOF2_SetString(houseFile, "Locador", houseData[house][houseTenant], "Aluguel");
  1179.  
  1180.             SetPlayerPos(playerid, houseData[house][houseIntX], houseData[house][houseIntY], houseData[house][houseIntZ]);
  1181.             SetPlayerVirtualWorld(playerid, houseData[house][houseVirtualWorld]);
  1182.             SetPlayerInterior(playerid, houseData[house][houseInterior]);
  1183.  
  1184.             DOF2_SaveFile();
  1185.             Update3DText(house);
  1186.  
  1187.             format(logString, sizeof logString, "O jogador %s[%d], alugou a casa %d.", playerName, playerid, house);
  1188.             WriteLog(LOG_HOUSES, logString);
  1189.         }
  1190.         case DIALOG_EDIT_HOUSE:
  1191.         {
  1192.             if(!response)
  1193.                 return TogglePlayerControllable(playerid, 1);
  1194.  
  1195.             new
  1196.                 house = GetProxHouse(playerid);
  1197.  
  1198.             GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  1199.  
  1200.             switch(listitem)
  1201.             {
  1202.                 case 0:
  1203.                 {
  1204.                     if(IsPlayerInRangeOfPoint(playerid, 5.0, houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ]))
  1205.                     {
  1206.                         SetPlayerPos(playerid, houseData[house][houseIntX], houseData[house][houseIntY], houseData[house][houseIntZ]);
  1207.                         SetPlayerVirtualWorld(playerid, houseData[house][houseVirtualWorld]);
  1208.                         SetPlayerInterior(playerid, houseData[house][houseInterior]);
  1209.  
  1210.                         TogglePlayerControllable(playerid, 1);
  1211.                         PlayerTextDrawShow(playerid, welcome[playerid]);
  1212.  
  1213.                         new
  1214.                             logString[128];
  1215.  
  1216.                         format(logString, sizeof logString, "O administrador %s[%d], entrou na casa %d como administrador.", playerName, playerid, house);
  1217.                         WriteLog(LOG_HOUSES, logString);
  1218.                         WriteLog(LOG_ADMIN, logString);
  1219.  
  1220.                         SetTimerEx("HideTextdraws", 2000, false, "i", playerid);
  1221.                     }
  1222.                 }
  1223.                 case 1:
  1224.                 {
  1225.                     if(strcmp(houseData[house][houseOwner], "Ninguem", true))
  1226.                     {
  1227.                         GetPlayerPos(playerid, X, Y, Z);
  1228.                         PlayerPlaySound(playerid, 1085, X, Y, Z);
  1229.  
  1230.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Não é possível alterar o preço de uma casa que não está a venda.");
  1231.  
  1232.                         new
  1233.                             logString[128];
  1234.  
  1235.                         format(logString, sizeof logString, "O administrador %s[%d], tentou alterar o preço da casa %d, mas ela não está a venda.", playerName, playerid, house);
  1236.                         WriteLog(LOG_ADMIN, logString);
  1237.  
  1238.                         ShowAdminMenu(playerid);
  1239.                         return 1;
  1240.                     }
  1241.  
  1242.                     ShowPlayerDialog(playerid, DIALOG_EDIT_HOUSE_PRICE, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu alterar o preço da casa.", "{FFFFFF}Digite o novo preço que você quer abaixo\n{FFFFFF}Use somente números.\n", "Alterar", "Voltar");
  1243.                     TogglePlayerControllable(playerid, 1);
  1244.                 }
  1245.                 case 2:
  1246.                 {
  1247.                     if(houseData[house][houseRentable] == 0)
  1248.                     {
  1249.                         GetPlayerPos(playerid, X, Y, Z);
  1250.                         PlayerPlaySound(playerid, 1085, X, Y, Z);
  1251.  
  1252.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Não é possível alterar o preço do aluguel de uma casa que não está sendo alugada.");
  1253.  
  1254.                         new
  1255.                             logString[700];
  1256.  
  1257.                         format(logString, sizeof logString, "O administrador %s[%d], tentou alterar o preço de aluguel da casa %d, mas ela não está sendo alugada.", playerName, playerid, house);
  1258.                         WriteLog(LOG_ADMIN, logString);
  1259.  
  1260.                         ShowAdminMenu(playerid);
  1261.                         return 1;
  1262.                     }
  1263.  
  1264.                     ShowPlayerDialog(playerid, DIALOG_EDIT_HOUSE_RENT_PRICE, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu alterar o preço do aluguel.", "{FFFFFF}Digite o novo preço que você quer abaixo\n{FFFFFF}Use somente números.\n", "Alterar", "Voltar");
  1265.                     TogglePlayerControllable(playerid, 1);
  1266.                 }
  1267.                 case 3:
  1268.                 {
  1269.                     new
  1270.                         stringCat[1200];
  1271.  
  1272.                     strcat(stringCat, "Interior {FB1300}1 \t{FCEC00}6 {FFFFFF}Comodos\n");
  1273.                     strcat(stringCat, "Interior {FB1300}2 \t{FCEC00}3 {FFFFFF}Comodos\n");
  1274.                     strcat(stringCat, "Interior {FB1300}3 \t{FCEC00}3 {FFFFFF}Comodos\n");
  1275.                     strcat(stringCat, "Interior {FB1300}4 \t{FCEC00}1 {FFFFFF}Comodo\n");
  1276.                     strcat(stringCat, "Interior {FB1300}5 \t{FCEC00}1 {FFFFFF}Comodo\n");
  1277.                     strcat(stringCat, "Interior {FB1300}6 \t{FCEC00}3 {FFFFFF}Comodos \t{FFFFFF}(Casa do CJ)\n");
  1278.                     strcat(stringCat, "Interior {FB1300}7 \t{FCEC00}5 {FFFFFF}Comodos\n");
  1279.                     strcat(stringCat, "Interior {FB1300}8 \t{FCEC00}7 {FFFFFF}Comodos\n");
  1280.                     strcat(stringCat, "Interior {FB1300}9 \t{FCEC00}4 {FFFFFF}Comodos\n");
  1281.                     strcat(stringCat, "Interior {FB1300}10 \t{FCEC00}Muitos {FFFFFF}Comodos \t{FFFFFF} (Casa do Madd Dog)\n");
  1282.                     strcat(stringCat, "Interior {FB1300}11 \t{FCEC00}7 {FFFFFF}Comodos\n");
  1283.  
  1284.                     ShowPlayerDialog(playerid, DIALOG_EDIT_HOUSE_INT, DIALOG_STYLE_LIST,"{00F2FC}Você escolheu alterar o interior da casa.", stringCat, "Continuar", "Voltar");
  1285.                     TogglePlayerControllable(playerid, 1);
  1286.                 }
  1287.                 case 4:
  1288.                 {
  1289.                     ShowPlayerDialog(playerid, DIALOG_HOUSE_STATUS, DIALOG_STYLE_MSGBOX, "{00F2FC}Você escolheu mudar o status dessa casa.", "{FFFFFF}Oque você gostaria de fazer com o status atual da casa?\n", "Trancar", "Destrancar");
  1290.                     TogglePlayerControllable(playerid, 1);
  1291.                 }
  1292.                 case 5:
  1293.                 {
  1294.                     new
  1295.                         stringMessage[128];
  1296.  
  1297.                     if (strlen(houseData[house][houseTitle]) > 0)
  1298.                     {
  1299.                         format(stringMessage, sizeof stringMessage, "{FFFFFF}Digite o novo título da casa.\n\nTítulo anterior: %s\n", houseData[house][houseTitle]);
  1300.                         ShowPlayerDialog(playerid, DIALOG_HOUSE_TITLE_ADMIN, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu mudar o título da casa.", stringMessage, "Alterar", "Voltar");
  1301.                     }
  1302.                     else
  1303.                         ShowPlayerDialog(playerid, DIALOG_HOUSE_TITLE_ADMIN, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu mudar o título da casa.", "{FFFFFF}Digite o novo título da casa.\n\nTítulo anterior: {FFFFFF}Título ainda não definido\n", "Alterar", "Voltar");
  1304.  
  1305.                     TogglePlayerControllable(playerid, 1);
  1306.                 }
  1307.                 case 6:
  1308.                 {
  1309.                     ShowPlayerDialog(playerid, DIALOG_CHANGE_OWNER, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu alterar o dono da casa.", "{FFFFFF}Digite o {FFFFFF}ID {FFFFFF}ou {FFFFFF}nickname {FFFFFF}do novo dono", "Continuar", "Voltar");
  1310.                     TogglePlayerControllable(playerid, 1);
  1311.                 }
  1312.                 case 7:
  1313.                 {
  1314.                     if(houseVehicle[house][vehicleModel] != 0)
  1315.                     {
  1316.                         GetPlayerPos(playerid, X, Y, Z);
  1317.                         PlayerPlaySound(playerid, 1085, X, Y, Z);
  1318.  
  1319.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Essa casa já tem carro.");
  1320.                         ShowAdminMenu(playerid);
  1321.  
  1322.                         new
  1323.                             logString[128];
  1324.  
  1325.                         format(logString, sizeof logString, "O administrador %s[%d], tentou criar um carro para a casa %d, mas ela já tem carro.", playerName, playerid, house);
  1326.                         WriteLog(LOG_ADMIN, logString);
  1327.  
  1328.                         return 1;
  1329.                     }
  1330.  
  1331.                     houseIDReceiveCar = house;
  1332.                     adminCreatingVehicle[playerid] = true;
  1333.                     SendClientMessage(playerid, -1, "[{FFEC00}LHouse{FFFFFF}] Vá aonde você quer criar o carro (em uma rua de preferência) e digite {46FE00}/criaraqui.");
  1334.                     SendClientMessage(playerid, -1, "[{FFEC00}LHouse{FFFFFF}] Depois disso você poderá estacionar o veículo.");
  1335.                     TogglePlayerControllable(playerid, 1);
  1336.                 }
  1337.                 case 8:
  1338.                 {
  1339.                     if(!strcmp(houseData[house][houseOwner], "Ninguem", true))
  1340.                     {
  1341.                         GetPlayerPos(playerid, X, Y, Z);
  1342.                         PlayerPlaySound(playerid, 1085, X, Y, Z);
  1343.  
  1344.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Não é possível vender uma casa que já está a venda.");
  1345.                         ShowAdminMenu(playerid);
  1346.  
  1347.                         new
  1348.                             logString[128];
  1349.  
  1350.                         format(logString, sizeof logString, "O administrador %s[%d], tentou vender a casa %d, mas ela já está à venda.", playerName, playerid, house);
  1351.                         WriteLog(LOG_ADMIN, logString);
  1352.  
  1353.                         return 1;
  1354.                     }
  1355.  
  1356.                     ShowPlayerDialog(playerid, DIALOG_SELL_HOUSE_ADMIN, DIALOG_STYLE_MSGBOX, "{00F2FC}Você escolheu botar essa casa a venda", "{FFFFFF}Você tem certeza que deseja botar essa casa a venda?", "Sim", "Não");
  1357.                     TogglePlayerControllable(playerid, 1);
  1358.                 }
  1359.                 case 9:
  1360.                 {
  1361.                     ShowPlayerDialog(playerid, DIALOG_DELETE_HOUSE, DIALOG_STYLE_MSGBOX, "{00F2FC}Você escolheu deletar casa.", "{FFFFFF}Se a casa ter dono, ele não vai ter o dinheiro que gastou na casa novamente.\n{FFFFFF}Você confirma essa ação?", "Deletar", "Voltar");
  1362.                     TogglePlayerControllable(playerid, 1);
  1363.                 }
  1364.             }
  1365.         }
  1366.         case DIALOG_SELL_HOUSE_ADMIN:
  1367.         {
  1368.             if(!response)
  1369.                 return ShowAdminMenu(playerid);
  1370.  
  1371.             new
  1372.                 house = GetProxHouse(playerid),
  1373.                 filePath[200],
  1374.                 ownerFile[200],
  1375.                 tenantFile[200];
  1376.  
  1377.             format(filePath, sizeof filePath, "LHouse/Casas/Casa %d.txt", house);
  1378.             format(tenantFile, sizeof tenantFile, "LHouse/Locadores/%s.txt", houseData[house][houseTenant]);
  1379.             GetPlayerName(houseData[house][houseOwner], playerName, MAX_PLAYER_NAME);
  1380.             format(ownerFile, sizeof ownerFile, "LHouse/Donos/%s.txt", playerName);
  1381.  
  1382.             if(DOF2_FileExists(ownerFile))
  1383.                 return DOF2_RemoveFile(ownerFile);
  1384.  
  1385.             if(DOF2_FileExists(tenantFile))
  1386.                 return DOF2_RemoveFile(tenantFile);
  1387.  
  1388.             format(houseData[house][houseOwner], 255, "Ninguem");
  1389.             format(houseData[house][houseTenant], 255, "Ninguem");
  1390.  
  1391.             DOF2_SetString(filePath, "Dono", "Ninguem", "Informações");
  1392.             DOF2_SetString(filePath, "Locador", "Ninguem", "Aluguel");
  1393.             DOF2_RemoveFile(ownerFile);
  1394.             DOF2_SaveFile();
  1395.  
  1396.             DestroyDynamicPickup(housePickupIn[house]);
  1397.             DestroyDynamicMapIcon(houseMapIcon[house]);
  1398.  
  1399.             Update3DText(house);
  1400.             PlayerTextDrawShow(playerid, houseSold[playerid]);
  1401.  
  1402.             SetTimerEx("HideTextdraws", 2000, false, "i", playerid);
  1403.  
  1404.             new
  1405.                 logString[128];
  1406.  
  1407.             GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  1408.  
  1409.             format(logString, sizeof logString, "O administrador %s[%d], botou a casa %d, à venda.", playerName, playerid, house);
  1410.             WriteLog(LOG_ADMIN, logString);
  1411.  
  1412.             houseMapIcon[house] = CreateDynamicMapIcon(houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ], 31, -1, -1, 0, -1, 100.0);
  1413.             housePickupIn[house] = CreateDynamicPickup(1273, 23, houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ]);
  1414.         }
  1415.         case DIALOG_CHANGE_OWNER:
  1416.         {
  1417.             if(!response)
  1418.                 return ShowAdminMenu(playerid);
  1419.  
  1420.             GetPlayerPos(playerid, X, Y, Z);
  1421.  
  1422.             if(sscanf(inputtext, "u", newOwnerID))
  1423.             {
  1424.                 PlayerPlaySound(playerid, 1085, X, Y, Z);
  1425.                 SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}ID ou nome inválido!");
  1426.                 ShowPlayerDialog(playerid, DIALOG_CHANGE_OWNER, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu alterar o dono da casa.", "{FFFFFF}Digite o {FFFFFF}ID {FFFFFF}ou {FFFFFF}nickname {FFFFFF}do novo dono", "Continuar", "Cancelar");
  1427.                 return 1;
  1428.             }
  1429.  
  1430.             if(!IsPlayerConnected(newOwnerID) || newOwnerID == INVALID_PLAYER_ID)
  1431.             {
  1432.                 PlayerPlaySound(playerid, 1085, X, Y, Z);
  1433.                 SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Player desconectado!");
  1434.                 ShowPlayerDialog(playerid, DIALOG_CHANGE_OWNER, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu alterar o dono da casa.", "{FFFFFF}Digite o {FFFFFF}ID {FFFFFF}ou {FFFFFF}nickname {FFFFFF}do novo dono", "Continuar", "Cancelar");
  1435.                 return 1;
  1436.             }
  1437.  
  1438.             new
  1439.                 ownerFile[200];
  1440.  
  1441.             GetPlayerName(newOwnerID, playerName, MAX_PLAYER_NAME);
  1442.             format(ownerFile, sizeof ownerFile, "LHouse/Donos/%s.txt", playerName);
  1443.  
  1444.             if(DOF2_FileExists(ownerFile))
  1445.             {
  1446.                 PlayerPlaySound(playerid, 1085, X, Y, Z);
  1447.                 SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Esse jogador já tem uma casa!");
  1448.                 ShowPlayerDialog(playerid, DIALOG_CHANGE_OWNER, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu alterar o dono da casa.", "{FFFFFF}Digite o {FFFFFF}ID {FFFFFF}ou {FFFFFF}nickname {FFFFFF}do novo dono", "Continuar", "Cancelar");
  1449.                 return 1;
  1450.             }
  1451.  
  1452.             new
  1453.                 dialogString[200],
  1454.                 house;
  1455.  
  1456.             house = GetProxHouse(playerid);
  1457.             GetPlayerName(newOwnerID, playerName, MAX_PLAYER_NAME);
  1458.  
  1459.             format(dialogString, sizeof dialogString, "{00F2FC}Dono Atual: {46FE00}%s\n{00F2FC}Novo Dono: {46FE00}%s\n\n{FFFFFF}Você confirma está ação?", houseData[house][houseOwner], playerName);
  1460.             ShowPlayerDialog(playerid, DIALOG_CHANGE_OWNER2, DIALOG_STYLE_MSGBOX, "{00F2FC}Você escolheu alterar o dono da casa.", dialogString, "Sim", "Não");
  1461.         }
  1462.         case DIALOG_CHANGE_OWNER2:
  1463.         {
  1464.             if(!response)
  1465.                 return ShowAdminMenu(playerid);
  1466.  
  1467.             new
  1468.                 house = GetProxHouse(playerid),
  1469.                 filePath[200],
  1470.                 playerName2[MAX_PLAYER_NAME],
  1471.                 playerName3[MAX_PLAYER_NAME],
  1472.                 logString[128],
  1473.                 ownerFile[200],
  1474.                 newOwnerFile[200];
  1475.  
  1476.             GetPlayerName(newOwnerID, playerName, MAX_PLAYER_NAME);
  1477.             GetPlayerName(houseData[house][houseOwner], playerName2, MAX_PLAYER_NAME);
  1478.             GetPlayerName(playerid, playerName3, MAX_PLAYER_NAME);
  1479.  
  1480.             format(filePath, sizeof filePath, "LHouse/Casas/Casa %d.txt", house);
  1481.             format(ownerFile, sizeof ownerFile, "LHouse/Donos/%s.txt", playerName2);
  1482.             format(newOwnerFile, sizeof newOwnerFile, "LHouse/Donos/%s.txt", playerName);
  1483.  
  1484.             if (!strcmp(playerName2, "Ninguem", true))
  1485.             {
  1486.                 DOF2_CreateFile(newOwnerFile);
  1487.                 DOF2_SetInt(newOwnerFile, "houseID", house);
  1488.                 DOF2_SetString(filePath, "Dono", playerName, "Informações");
  1489.                 DOF2_SaveFile();
  1490.  
  1491.                 format(houseData[house][houseOwner], 24, playerName);
  1492.                 houseData[house][houseStatus] = DOF2_SetInt(filePath,"Status", 0, "Informações");
  1493.  
  1494.                 DestroyDynamicPickup(housePickupIn[house]);
  1495.                 DestroyDynamicMapIcon(houseMapIcon[house]);
  1496.                 housePickupIn[house] = CreateDynamicPickup(1272, 23, houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ]);
  1497.                 houseMapIcon[house] = CreateDynamicMapIcon(houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ], 32, -1, -1, 0, -1, 100.0);
  1498.  
  1499.                 Update3DText(house);
  1500.                 return 1;
  1501.             }
  1502.  
  1503.             format(logString, sizeof logString, "O administrador %s[%d], alterou o dono da casa %d, de %s para %s.", playerName3, playerid, house, playerName2, playerName);
  1504.             WriteLog(LOG_ADMIN, logString);
  1505.  
  1506.             DOF2_RenameFile(ownerFile, newOwnerFile);
  1507.             DOF2_RemoveFile(ownerFile);
  1508.             DOF2_SetString(filePath, "Dono", playerName);
  1509.             DOF2_SaveFile();
  1510.  
  1511.             format(houseData[house][houseOwner], 255, playerName);
  1512.  
  1513.             PlayerTextDrawShow(playerid, houseEdited[playerid]);
  1514.             SetTimerEx("HideTextdraws", 2000, false, "i", playerid);
  1515.  
  1516.             Update3DText(house);
  1517.  
  1518.             SendClientMessage(playerid, -1, "{00F2FC}Feito!");
  1519.  
  1520.             return 1;
  1521.         }
  1522.         case DIALOG_DELETE_HOUSE:
  1523.         {
  1524.             if(!response)
  1525.                 return ShowAdminMenu(playerid);
  1526.  
  1527.             new
  1528.                 house = GetProxHouse(playerid),
  1529.                 filePath[150],
  1530.                 houseAtual[200],
  1531.                 checkID[200],
  1532.                 logString[128],
  1533.                 ownerFile[200],
  1534.                 tenantFile[200],
  1535.                 playerName2[MAX_PLAYER_NAME],
  1536.                 playerName3[MAX_PLAYER_NAME];
  1537.  
  1538.             GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  1539.             GetPlayerName(houseData[house][houseOwner], playerName2, MAX_PLAYER_NAME);
  1540.             GetPlayerName(houseData[house][houseTenant], playerName3, MAX_PLAYER_NAME);
  1541.  
  1542.             format(tenantFile, sizeof tenantFile, "LHouse/Locadores/%s.txt", playerName3);
  1543.             format(ownerFile, sizeof ownerFile, "LHouse/Donos/%s.txt", playerName2);
  1544.             format(logString, sizeof logString, "O administrador %s[%d], deletou a casa %d.", playerName, playerid, house);
  1545.  
  1546.             WriteLog(LOG_ADMIN, logString);
  1547.  
  1548.             if(DOF2_FileExists(ownerFile))
  1549.                 return DOF2_RemoveFile(ownerFile);
  1550.  
  1551.             if(DOF2_FileExists(tenantFile))
  1552.                 return DOF2_RemoveFile(tenantFile);
  1553.  
  1554.             DestroyDynamicPickup(housePickupIn[house]);
  1555.             DestroyDynamicMapIcon(houseMapIcon[house]);
  1556.             DestroyDynamic3DTextLabel(houseLabel[house]);
  1557.  
  1558.             if(houseVehicle[house][vehicleModel] != 0)
  1559.                 DestroyVehicle(houseVehicle[house][vehicleHouse]);
  1560.  
  1561.             DOF2_RemoveFile(filePath);
  1562.             PlayerTextDrawShow(playerid, houseDeleted[playerid]);
  1563.  
  1564.             SetTimerEx("HideTextdraws", 2000, false, "i", playerid);
  1565.             format(houseAtual, sizeof houseAtual, "LHouse/CasaAtual.txt");
  1566.  
  1567.             for(new i = 1; i < MAX_HOUSES; i++)
  1568.             {
  1569.                 format(checkID, sizeof checkID, "LHouse/Casas/Casa %d.txt", i);
  1570.                 if(!DOF2_FileExists(checkID))
  1571.                 {
  1572.                     DOF2_SetInt(houseAtual, "IDAtual", i);
  1573.                     break;
  1574.                 }
  1575.             }
  1576.  
  1577.             DOF2_SaveFile();
  1578.             return 1;
  1579.         }
  1580.         case DIALOG_EDIT_HOUSE_PRICE:
  1581.         {
  1582.             if(!response)
  1583.                 return ShowAdminMenu(playerid);
  1584.  
  1585.             GetPlayerPos(playerid, X, Y, Z);
  1586.  
  1587.             if(!IsNumeric(inputtext))
  1588.             {
  1589.                 PlayerPlaySound(playerid, 1085, X, Y, Z);
  1590.                 SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Digite apenas números!");
  1591.                 ShowPlayerDialog(playerid, DIALOG_EDIT_HOUSE_RENT_PRICE, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu alterar o preço do aluguel.", "{FFFFFF}Digite o novo preço que você quer abaixo\n{FFFFFF}Use somente números.\n", "Alterar", "Cancelar");
  1592.                 return 1;
  1593.             }
  1594.  
  1595.             if(!strlen(inputtext))
  1596.             {
  1597.                 PlayerPlaySound(playerid, 1085, X, Y, Z);
  1598.                 SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Digite algo no campo ou cancele!");
  1599.                 ShowPlayerDialog(playerid, DIALOG_EDIT_HOUSE_RENT_PRICE, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu alterar o preço do aluguel.", "{FFFFFF}Digite o novo preço que você quer abaixo\n{FFFFFF}Use somente números.\n", "Alterar", "Cancelar");
  1600.                 return 1;
  1601.             }
  1602.  
  1603.             new
  1604.                 house = GetProxHouse(playerid),
  1605.                 file[100],
  1606.                 logString[128];
  1607.  
  1608.             format(file, sizeof file, "LHouse/Casas/Casa %d.txt", house);
  1609.  
  1610.             houseData[house][housePrice] = strval(inputtext);
  1611.             DOF2_SetInt(file, "Preço", houseData[house][housePrice], "Informações");
  1612.             DOF2_SaveFile();
  1613.  
  1614.             GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  1615.  
  1616.             format(logString, sizeof logString, "O administrador %s[%d], alterou o preço da casa %d.", playerName, playerid, house);
  1617.             WriteLog(LOG_ADMIN, logString);
  1618.  
  1619.             PlayerTextDrawShow(playerid, houseEdited[playerid]);
  1620.             SetTimerEx("HideTextdraws", 2000, false, "i", playerid);
  1621.             Update3DText(house);
  1622.         }
  1623.         case DIALOG_HOUSE_TITLE_ADMIN:
  1624.         {
  1625.             if(!response)
  1626.                 return ShowAdminMenu(playerid);
  1627.  
  1628.             new
  1629.                 house = GetProxHouse(playerid);
  1630.  
  1631.             if (!strlen(inputtext) && strlen(houseData[house][houseTitle]) > 0)
  1632.             {
  1633.                 SendClientMessage(playerid, -1, "Você removeu o título da casa.");
  1634.                 format(houseData[house][houseTitle], 32, "%s", inputtext);
  1635.                 Update3DText(house);
  1636.                 return 1;
  1637.             }
  1638.  
  1639.             else if (!strlen(inputtext) && strlen(houseData[house][houseTitle]) == 0)
  1640.             {
  1641.                 SendClientMessage(playerid, -1, "A casa ainda não tem um título, portanto não é possível remove-lo.");
  1642.                 ShowPlayerDialog(playerid, DIALOG_HOUSE_TITLE_ADMIN, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu mudar o título dessa casa.", "{FFFFFF}Digite o novo título da casa.\n\nTítulo anterior: {FFFFFF}SEM TÍTULO\n", "Alterar", "Voltar");
  1643.                 return 1;
  1644.             }
  1645.  
  1646.             format(houseData[house][houseTitle], 32, "%s", inputtext);
  1647.             Update3DText(house);
  1648.  
  1649.             new
  1650.                 file[100],
  1651.                 logString[160];
  1652.  
  1653.             format(file, sizeof file, "LHouse/Casas/Casa %d.txt", house);
  1654.  
  1655.             DOF2_SetString(file, "Título", houseData[house][houseTitle], "Informações");
  1656.             DOF2_SaveFile();
  1657.  
  1658.             SendClientMessage(playerid, -1, "Título alterado com sucesso.");
  1659.  
  1660.             format(logString, sizeof logString, "O jogador/administrador %s[%d], alterou o título da casa %d para %s.", playerName, playerid, house, houseData[house][houseTitle]);
  1661.             WriteLog(LOG_ADMIN, logString);
  1662.             WriteLog(LOG_HOUSES, logString);
  1663.         }
  1664.         case DIALOG_HOUSE_TITLE:
  1665.         {
  1666.             if(!response)
  1667.                 return ShowHouseMenu(playerid);
  1668.  
  1669.             new
  1670.                 house = GetProxHouse(playerid);
  1671.  
  1672.             if (!strlen(inputtext) && strlen(houseData[house][houseTitle]) > 0)
  1673.             {
  1674.                 SendClientMessage(playerid, -1, "Você removeu o título da casa.");
  1675.                 format(houseData[house][houseTitle], 32, "%s", inputtext);
  1676.                 Update3DText(house);
  1677.                 return 1;
  1678.             }
  1679.  
  1680.             else if (!strlen(inputtext) && strlen(houseData[house][houseTitle]) == 0)
  1681.             {
  1682.                 SendClientMessage(playerid, -1, "A casa ainda não tem um título, portanto não é possível remove-lo.");
  1683.                 ShowPlayerDialog(playerid, DIALOG_HOUSE_TITLE_ADMIN, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu mudar o título dessa casa.", "{FFFFFF}Digite o novo título da casa.\n\nTítulo anterior: {FFFFFF}SEM TÍTULO\n", "Alterar", "Voltar");
  1684.                 return 1;
  1685.             }
  1686.  
  1687.             format(houseData[house][houseTitle], 32, "%s", inputtext);
  1688.             Update3DText(house);
  1689.  
  1690.             new
  1691.                 file[100],
  1692.                 logString[160];
  1693.  
  1694.             format(file, sizeof file, "LHouse/Casas/Casa %d.txt", house);
  1695.  
  1696.             DOF2_SetString(file, "Título", houseData[house][houseTitle], "Informações");
  1697.             DOF2_SaveFile();
  1698.  
  1699.             SendClientMessage(playerid, -1, "Título alterado com sucesso.");
  1700.  
  1701.             format(logString, sizeof logString, "O jogador/administrador %s[%d], alterou o título da casa %d para %s.", playerName, playerid, house, houseData[house][houseTitle]);
  1702.             WriteLog(LOG_ADMIN, logString);
  1703.             WriteLog(LOG_HOUSES, logString);
  1704.         }
  1705.         case DIALOG_EDIT_HOUSE_RENT_PRICE:
  1706.         {
  1707.             if(!response)
  1708.                 return ShowAdminMenu(playerid);
  1709.  
  1710.             GetPlayerPos(playerid, X, Y, Z);
  1711.  
  1712.             if(!IsNumeric(inputtext))
  1713.             {
  1714.                 PlayerPlaySound(playerid, 1085, X, Y, Z);
  1715.                 SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Digite apenas números!");
  1716.                 ShowPlayerDialog(playerid, DIALOG_EDIT_HOUSE_PRICE, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu alterar o preço da casa.", "{FFFFFF}Digite o novo preço que você quer abaixo\n{FFFFFF}Use somente números.\n", "Alterar", "Cancelar");
  1717.                 return 1;
  1718.             }
  1719.  
  1720.             if(!strlen(inputtext))
  1721.             {
  1722.                 GetPlayerPos(playerid, X, Y, Z);
  1723.                 PlayerPlaySound(playerid, 1085, X, Y, Z);
  1724.                 SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Digite algo no campo ou cancele!");
  1725.                 ShowPlayerDialog(playerid, DIALOG_EDIT_HOUSE_PRICE, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu alterar o preço da casa.", "{FFFFFF}Digite o novo preço que você quer abaixo\n{FFFFFF}Use somente números.\n", "Alterar", "Cancelar");
  1726.                 return 1;
  1727.             }
  1728.  
  1729.             new
  1730.                 house = GetProxHouse(playerid),
  1731.                 file[100],
  1732.                 logString[128];
  1733.  
  1734.             format(file, sizeof file, "LHouse/Casas/Casa %d.txt", house);
  1735.  
  1736.             houseData[house][houseRentPrice] = strval(inputtext);
  1737.             DOF2_SetInt(file, "Preço do Aluguel", houseData[house][houseRentPrice], "Informações");
  1738.             DOF2_SaveFile();
  1739.  
  1740.             format(logString, sizeof logString, "O administrador %s[%d], alterou o preço de aluguel da casa %d.", playerName, playerid, house);
  1741.             WriteLog(LOG_ADMIN, logString);
  1742.  
  1743.             Update3DText(house);
  1744.             PlayerTextDrawShow(playerid, houseEdited[playerid]);
  1745.             SetTimerEx("HideTextdraws", 2000, false, "i", playerid);
  1746.         }
  1747.         case DIALOG_EDIT_HOUSE_INT:
  1748.         {
  1749.             if(!response)
  1750.                 return ShowAdminMenu(playerid);
  1751.  
  1752.             switch(listitem)
  1753.             {
  1754.                 case 0:
  1755.                 {
  1756.                     houseInteriorX[playerid] = 2196.84;
  1757.                     houseInteriorY[playerid] = -1204.36;
  1758.                     houseInteriorZ[playerid] = 1049.02;
  1759.                     houseInteriorFA[playerid] = 94.0010;
  1760.                     houseInteriorInt[playerid] = 6;
  1761.                 }
  1762.                 case 1:
  1763.                 {
  1764.                     houseInteriorX[playerid] = 2259.38;
  1765.                     houseInteriorY[playerid] = -1135.89;
  1766.                     houseInteriorZ[playerid] = 1050.64;
  1767.                     houseInteriorFA[playerid] = 275.3992;
  1768.                     houseInteriorInt[playerid] = 10;
  1769.                 }
  1770.                 case 2:
  1771.                 {
  1772.                     houseInteriorX[playerid] = 2282.99;
  1773.                     houseInteriorY[playerid] = -1140.28;
  1774.                     houseInteriorZ[playerid] = 1050.89;
  1775.                     houseInteriorFA[playerid] = 358.4660;
  1776.                     houseInteriorInt[playerid] = 11;
  1777.                 }
  1778.                 case 3:
  1779.                 {
  1780.                     houseInteriorX[playerid] = 2233.69;
  1781.                     houseInteriorY[playerid] = -1115.26;
  1782.                     houseInteriorZ[playerid] = 1050.88;
  1783.                     houseInteriorFA[playerid] = 358.4660;
  1784.                     houseInteriorInt[playerid] = 5;
  1785.                 }
  1786.                 case 4:
  1787.                 {
  1788.                     houseInteriorX[playerid] = 2218.39;
  1789.                     houseInteriorY[playerid] = -1076.21;
  1790.                     houseInteriorZ[playerid] = 1050.48;
  1791.                     houseInteriorFA[playerid] = 95.2635;
  1792.                     houseInteriorInt[playerid] = 1;
  1793.                 }
  1794.                 case 5:
  1795.                 {
  1796.                     houseInteriorX[playerid] = 2496.00;
  1797.                     houseInteriorY[playerid] = -1692.08;
  1798.                     houseInteriorZ[playerid] = 1014.74;
  1799.                     houseInteriorFA[playerid] = 177.8159;
  1800.                     houseInteriorInt[playerid] = 3;
  1801.                 }
  1802.                 case 6:
  1803.                 {
  1804.                     houseInteriorX[playerid] = 2365.25;
  1805.                     houseInteriorY[playerid] = -1135.58;
  1806.                     houseInteriorZ[playerid] = 1050.88;
  1807.                     houseInteriorFA[playerid] = 359.0367;
  1808.                     houseInteriorInt[playerid] = 8;
  1809.                 }
  1810.                 case 7:
  1811.                 {
  1812.                     houseInteriorX[playerid] = 2317.77;
  1813.                     houseInteriorY[playerid] = -1026.76;
  1814.                     houseInteriorZ[playerid] = 1050.21;
  1815.                     houseInteriorFA[playerid] = 359.0367;
  1816.                     houseInteriorInt[playerid] = 9;
  1817.                 }
  1818.                 case 8:
  1819.                 {
  1820.                     houseInteriorX[playerid] = 2324.41;
  1821.                     houseInteriorY[playerid] = -1149.54;
  1822.                     houseInteriorZ[playerid] = 1050.71;
  1823.                     houseInteriorFA[playerid] = 359.0367;
  1824.                     houseInteriorInt[playerid] = 12;
  1825.                 }
  1826.                 case 9:
  1827.                 {
  1828.                     houseInteriorX[playerid] = 1260.6603;
  1829.                     houseInteriorY[playerid] = -785.4005;
  1830.                     houseInteriorZ[playerid] = 1091.9063;
  1831.                     houseInteriorFA[playerid] = 270.9891;
  1832.                     houseInteriorInt[playerid] = 5;
  1833.                 }
  1834.                 case 10:
  1835.                 {
  1836.                     houseInteriorX[playerid] = 140.28;
  1837.                     houseInteriorY[playerid] = 1365.92;
  1838.                     houseInteriorZ[playerid] = 1083.85;
  1839.                     houseInteriorFA[playerid] = 9.6901;
  1840.                     houseInteriorInt[playerid] = 5;
  1841.                 }
  1842.             }
  1843.  
  1844.             new
  1845.                 house = GetProxHouse(playerid),
  1846.                 file[100];
  1847.  
  1848.             format(file, sizeof file, "LHouse/Casas/Casa %d.txt", house);
  1849.  
  1850.             houseData[house][houseIntX] = houseInteriorX[playerid];
  1851.             houseData[house][houseIntY] = houseInteriorY[playerid];
  1852.             houseData[house][houseIntZ] = houseInteriorZ[playerid];
  1853.             houseData[house][houseIntFA] = houseInteriorFA[playerid];
  1854.             houseData[house][houseInterior] = houseInteriorInt[playerid];
  1855.  
  1856.             DOF2_SetFloat(file, "Interior X", houseInteriorX[playerid], "Coordenadas");
  1857.             DOF2_SetFloat(file, "Interior Y", houseInteriorY[playerid], "Coordenadas");
  1858.             DOF2_SetFloat(file, "Interior Z", houseInteriorZ[playerid], "Coordenadas");
  1859.             DOF2_SetFloat(file, "Interior Facing Angle", houseInteriorFA[playerid], "Coordenadas");
  1860.             DOF2_SetInt(file, "Interior", houseInteriorInt[playerid], "Coordenadas");
  1861.             DOF2_SaveFile();
  1862.  
  1863.             PlayerTextDrawShow(playerid, houseEdited[playerid]);
  1864.             SetTimerEx("HideTextdraws", 2000, false, "i", playerid);
  1865.  
  1866.             SendClientMessage(playerid, -1, "[{FFEC00}LHouse{FFFFFF}] Interior alterado com sucesso");
  1867.  
  1868.             DestroyDynamicPickup(housePickupOut[house]);
  1869.             housePickupOut[house] = CreateDynamicPickup(1318, 1, houseData[house][houseIntX], houseData[house][houseIntY], houseData[house][houseIntZ]);
  1870.  
  1871.             GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  1872.  
  1873.             new
  1874.                 logString[128];
  1875.  
  1876.             format(logString, sizeof logString, "O administrador %s[%d], alterou o interior da casa %d.", playerName, playerid, house);
  1877.             WriteLog(LOG_ADMIN, logString);
  1878.         }
  1879.         case DIALOG_HOUSE_SELL_MENU:
  1880.         {
  1881.             if(!response)
  1882.                 return TogglePlayerControllable(playerid, 1);
  1883.  
  1884.             switch(listitem)
  1885.             {
  1886.                 case 0:
  1887.                 {
  1888.                     new
  1889.                         string[260],
  1890.                         filePath[200],
  1891.                         house = GetProxHouse(playerid),
  1892.                         alreadyOwner,
  1893.                         ownerFile[200],
  1894.                         tenantFile[200],
  1895.                         logString[128];
  1896.  
  1897.                     GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  1898.                     format(ownerFile, sizeof ownerFile, "LHouse/Donos/%s.txt", playerName);
  1899.                     format(tenantFile, sizeof tenantFile, "LHouse/Locadores/%s.txt", playerName);
  1900.                     format(filePath, sizeof filePath, "LHouse/Casas/Casa %d.txt", house);
  1901.  
  1902.                     if(DOF2_FileExists(ownerFile))
  1903.                     {
  1904.                         alreadyOwner = DOF2_GetInt(ownerFile, "houseID");
  1905.                         GetPlayerPos(playerid, X, Y, Z);
  1906.                         PlayerPlaySound(playerid, 1085, X, Y, Z);
  1907.                         format(string, sizeof string, "{F90700}Erro: {FFFFFF}Você já é dono da casa %d! Você só pode ter 1 casa!", alreadyOwner);
  1908.                         SendClientMessage(playerid, COLOR_ERROR, string);
  1909.                         TogglePlayerControllable(playerid, 1);
  1910.                         return 1;
  1911.                     }
  1912.  
  1913.                     else if(DOF2_FileExists(tenantFile))
  1914.                     {
  1915.                         alreadyOwner = DOF2_GetInt(tenantFile, "houseID");
  1916.                         GetPlayerPos(playerid, X, Y, Z);
  1917.                         PlayerPlaySound(playerid, 1085, X, Y, Z);
  1918.                         format(string, sizeof string, "{F90700}Erro: {FFFFFF}Você já é locador da casa %d! Você só pode ter 1 casa!", alreadyOwner);
  1919.                         SendClientMessage(playerid, COLOR_ERROR, string);
  1920.                         return 1;
  1921.                     }
  1922.  
  1923.                     else if(GetPlayerMoney(playerid) < houseData[house][housePrice])
  1924.                     {
  1925.                         GetPlayerPos(playerid, X, Y, Z);
  1926.                         PlayerPlaySound(playerid, 1085, X, Y, Z);
  1927.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Você não tem dinheiro o suficiente.");
  1928.                         TogglePlayerControllable(playerid, 1);
  1929.                         return 1;
  1930.                     }
  1931.  
  1932.                     format(string, sizeof string, "%s comprou a casa de id %d", playerName, house);
  1933.                     print(string);
  1934.                     WriteLog(LOG_HOUSES, string);
  1935.  
  1936.                     DOF2_CreateFile(ownerFile);
  1937.                     DOF2_SetInt(ownerFile, "houseID", house);
  1938.                     DOF2_SetString(filePath, "Dono", playerName, "Informações");
  1939.                     DOF2_SaveFile();
  1940.  
  1941.                     format(houseData[house][houseOwner], 24, playerName);
  1942.                     houseData[house][houseStatus] = DOF2_SetInt(filePath, "Status", 0, "Informações");
  1943.  
  1944.                     GivePlayerMoney(playerid, -houseData[house][housePrice]);
  1945.                     SetPlayerPos(playerid, houseData[house][houseIntX], houseData[house][houseIntY], houseData[house][houseIntZ]);
  1946.                     SetPlayerVirtualWorld(playerid, houseData[house][houseVirtualWorld]);
  1947.                     SetPlayerInterior(playerid, houseData[house][houseInterior]);
  1948.  
  1949.                     DestroyDynamicPickup(housePickupIn[house]);
  1950.                     DestroyDynamicMapIcon(houseMapIcon[house]);
  1951.                     housePickupIn[house] = CreateDynamicPickup(1272, 23, houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ]);
  1952.                     houseMapIcon[house] = CreateDynamicMapIcon(houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ], 32, -1, -1, 0, -1, 100.0);
  1953.  
  1954.                     Update3DText(house);
  1955.                     PlayerTextDrawShow(playerid, welcome[playerid]);
  1956.                     SetTimerEx("HideTextdraws", 2000, false, "i", playerid);
  1957.  
  1958.                     format(logString, sizeof logString, "O jogador %s[%d], comprou a casa %d.", playerName, playerid, house);
  1959.                     WriteLog(LOG_HOUSES, logString);
  1960.                 }
  1961.                 case 1:
  1962.                 {
  1963.                     ShowAdminMenu(playerid);
  1964.                     TogglePlayerControllable(playerid, 1);
  1965.                 }
  1966.             }
  1967.         }
  1968.         case DIALOG_HOUSE_TENANT_MENU:
  1969.         {
  1970.             if(!response)
  1971.                 return TogglePlayerControllable(playerid, 1);
  1972.  
  1973.             new
  1974.                 house = GetProxHouse(playerid),
  1975.                 logString[128],
  1976.                 string[200];
  1977.  
  1978.             switch(listitem)
  1979.             {
  1980.                 case 0:
  1981.                 {
  1982.                     if(IsPlayerInRangeOfPoint(playerid, 5.0, houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ]))
  1983.                     {
  1984.                         SetPlayerPos(playerid, houseData[house][houseIntX], houseData[house][houseIntY], houseData[house][houseIntZ]);
  1985.                         SetPlayerVirtualWorld(playerid, houseData[house][houseVirtualWorld]);
  1986.                         SetPlayerInterior(playerid, houseData[house][houseInterior]);
  1987.  
  1988.                         TogglePlayerControllable(playerid, 1);
  1989.                         PlayerTextDrawShow(playerid, welcome[playerid]);
  1990.                         SetTimerEx("HideTextdraws", 2000, false, "i", playerid);
  1991.  
  1992.                         GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  1993.                         format(logString, sizeof logString, "O jogador %s[%d], entrou na casa %d como locador.", playerName, playerid, house);
  1994.                         WriteLog(LOG_HOUSES, logString);
  1995.                     }
  1996.                 }
  1997.                 case 1:
  1998.                 {
  1999.                     TogglePlayerControllable(playerid, 1);
  2000.                     ShowPlayerDialog(playerid, DIALOG_HOUSE_STATUS, DIALOG_STYLE_MSGBOX, "{00F2FC}Você escolheu mudar o status da casa.", "{FFFFFF}Oque você gostaria de fazer com o status atual da casa?\n", "Trancar", "Destrancar");
  2001.                     return 1;
  2002.                 }
  2003.                 case 2:
  2004.                 {
  2005.                     format(string, sizeof string, "{FFFFFF}Você deseja desalugar essa casa? {FFFFFF}(%d)\n", house);
  2006.                     ShowPlayerDialog(playerid, DIALOG_UNRENT_CONFIRM, DIALOG_STYLE_MSGBOX, "{00F2FC}Você escolheu desalugar a casa.", string, "Sim", "Não");
  2007.                 }
  2008.             }
  2009.         }
  2010.         case DIALOG_HOUSE_OWNER_MENU:
  2011.         {
  2012.             if(!response)
  2013.                 return TogglePlayerControllable(playerid, 1);
  2014.  
  2015.             new
  2016.                 house = GetProxHouse(playerid);
  2017.  
  2018.             GetPlayerPos(playerid, X, Y, Z);
  2019.  
  2020.             switch(listitem)
  2021.             {
  2022.                 case 0:
  2023.                 {
  2024.                     if(IsPlayerInRangeOfPoint(playerid, 5.0, houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ]))
  2025.                     {
  2026.                         SetPlayerPos(playerid, houseData[house][houseIntX], houseData[house][houseIntY], houseData[house][houseIntZ]);
  2027.                         SetPlayerVirtualWorld(playerid, houseData[house][houseVirtualWorld]);
  2028.                         SetPlayerInterior(playerid, houseData[house][houseInterior]);
  2029.  
  2030.                         TogglePlayerControllable(playerid, 1);
  2031.                         PlayerTextDrawShow(playerid, welcome[playerid]);
  2032.                         SetTimerEx("HideTextdraws", 2000, false, "i", playerid);
  2033.  
  2034.                         new
  2035.                             logString[128];
  2036.  
  2037.                         GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  2038.                         format(logString, sizeof logString, "O jogador %s[%d], entrou na casa %d como dono da casa.", playerName, playerid, house);
  2039.                         WriteLog(LOG_HOUSES, logString);
  2040.                     }
  2041.                 }
  2042.                 case 1:
  2043.                 {
  2044.                     TogglePlayerControllable(playerid, 1);
  2045.                     ShowPlayerDialog(playerid, DIALOG_RENT, DIALOG_STYLE_MSGBOX, "{00F2FC}Aluguel.", "{FFFFFF}Oque você gostaria de fazer com o aluguel da sua casa?\n", "Ativar", "Desativar");
  2046.                     return 1;
  2047.                 }
  2048.                 case 2:
  2049.                 {
  2050.                     TogglePlayerControllable(playerid, 1);
  2051.                     ShowPlayerDialog(playerid, DIALOG_HOUSE_STATUS, DIALOG_STYLE_MSGBOX, "{00F2FC}Você escolheu mudar o status da sua casa.", "{FFFFFF}Oque você gostaria de fazer com o status atual da sua casa?\n", "Trancar", "Destrancar");
  2052.                     return 1;
  2053.                 }
  2054.                 case 3:
  2055.                 {
  2056.                     if(houseVehicle[house][vehicleModel] != 0)
  2057.                     {
  2058.                         PlayerPlaySound(playerid, 1085, X, Y, Z);
  2059.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Sua casa já tem um carro. Venda-o antes.");
  2060.                         TogglePlayerControllable(playerid, 1);
  2061.                         return 1;
  2062.                     }
  2063.  
  2064.                     new
  2065.                         stringCat[2500];
  2066.  
  2067.                     strcat(stringCat, "Modelo {FB1300}475 \t{FCEC00}Sabre       \t\t{00EAFA}R$ 19.000,00 \n");
  2068.                     strcat(stringCat, "Modelo {FB1300}496 \t{FCEC00}Blista      \t\t{00EAFA}R$ 25.000,00 \n");
  2069.                     strcat(stringCat, "Modelo {FB1300}560 \t{FCEC00}Sultan      \t\t{00EAFA}R$ 26.000,00 \n");
  2070.                     strcat(stringCat, "Modelo {FB1300}401 \t{FCEC00}Bravura     \t\t{00EAFA}R$ 27.000,00 \n");
  2071.                     strcat(stringCat, "Modelo {FB1300}404 \t{FCEC00}Perenniel   \t\t{00EAFA}R$ 28.000,00 \n");
  2072.                     strcat(stringCat, "Modelo {FB1300}559 \t{FCEC00}Jester      \t\t{00EAFA}R$ 29.000,00 \n");
  2073.                     strcat(stringCat, "Modelo {FB1300}402 \t{FCEC00}Buffalo     \t\t{00EAFA}R$ 32.000,00 \n");
  2074.                     strcat(stringCat, "Modelo {FB1300}562 \t{FCEC00}Elegy       \t\t{00EAFA}R$ 35.000,00 \n");
  2075.                     strcat(stringCat, "Modelo {FB1300}589 \t{FCEC00}Club        \t\t{00EAFA}R$ 38.000,00 \n");
  2076.                     strcat(stringCat, "Modelo {FB1300}603 \t{FCEC00}Phoenix     \t\t{00EAFA}R$ 42.000,00 \n");
  2077.                     strcat(stringCat, "Modelo {FB1300}400 \t{FCEC00}Landstalker \t\t{00EAFA}R$ 65.000,00 \n");
  2078.                     strcat(stringCat, "Modelo {FB1300}429 \t{FCEC00}Banshee     \t\t{00EAFA}R$ 131.000,00 \n");
  2079.                     strcat(stringCat, "Modelo {FB1300}415 \t{FCEC00}Cheetah     \t\t{00EAFA}R$ 145.000,00 \n");
  2080.                     strcat(stringCat, "Modelo {FB1300}411 \t{FCEC00}Infernus    \t\t{00EAFA}R$ 150.000,00 \n");
  2081.                     strcat(stringCat, "Modelo {FB1300}409 \t{FCEC00}Limosine    \t\t{00EAFA}R$ 230.000,00 \n");
  2082.                     strcat(stringCat, "Modelo {FB1300}477 \t{FCEC00}ZR-350      \t\t{00EAFA}R$ 250.000,00 \n");
  2083.                     strcat(stringCat, "Modelo {FB1300}506 \t{FCEC00}Super GT    \t\t{00EAFA}R$ 500.000,00 \n");
  2084.                     strcat(stringCat, "Modelo {FB1300}541 \t{FCEC00}Bullet      \t\t{00EAFA}R$ 700.000,00 \n");
  2085.                     strcat(stringCat, "Modelo {FB1300}451 \t{FCEC00}Turismo     \t\t{00EAFA}R$ 850.000,00 \n");
  2086.                     strcat(stringCat, "Modelo {FB1300}468 \t{FCEC00}Sanchez     \t\t{00EAFA}R$ 40.000,00 {FFFFFF} - MOTO\n");
  2087.                     strcat(stringCat, "Modelo {FB1300}461 \t{FCEC00}PCJ-600     \t\t{00EAFA}R$ 55.000,00 {FFFFFF} - MOTO\n");
  2088.                     strcat(stringCat, "Modelo {FB1300}521 \t{FCEC00}FCR-900     \t\t{00EAFA}R$ 60.000,00 {FFFFFF} - MOTO\n");
  2089.                     strcat(stringCat, "Modelo {FB1300}463 \t{FCEC00}Freeway     \t\t{00EAFA}R$ 80.000,00 {FFFFFF} - MOTO\n");
  2090.                     strcat(stringCat, "Modelo {FB1300}522 \t{FCEC00}NRG-500     \t\t{00EAFA}R$ 150.000,00 {FFFFFF} - MOTO\n");
  2091.                     ShowPlayerDialog(playerid, DIALOG_VEHICLES_MODELS, DIALOG_STYLE_LIST, "{FFFFFF}Escolha um modelo e clique em continuar.", stringCat, "Continuar", "Voltar");
  2092.                     TogglePlayerControllable(playerid, 1);
  2093.                 }
  2094.                 case 4:
  2095.                 {
  2096.                     new
  2097.                         string[250];
  2098.  
  2099.                     if(houseVehicle[house][vehicleModel] != 0)
  2100.                     {
  2101.                         PlayerPlaySound(playerid, 1085, X, Y, Z);
  2102.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Sua casa casa tem um carro. Venda-o antes de vender sua casa.");
  2103.                         TogglePlayerControllable(playerid, 1);
  2104.                         return 1;
  2105.                     }
  2106.  
  2107.                     format(string, sizeof string, "{FFFFFF}Você deseja vender sua casa por {FFFFFF}R$%d{FFFFFF}?\n", houseData[house][housePrice]/2);
  2108.                     ShowPlayerDialog(playerid, DIALOG_SELL_HOUSE, DIALOG_STYLE_MSGBOX, "{00F2FC}Você escolheu vender sua casa.", string, "Sim", "Não");
  2109.                     TogglePlayerControllable(playerid, 1);
  2110.                     return 1;
  2111.                 }
  2112.                 case 5:
  2113.                 {
  2114.                     ShowPlayerDialog(playerid, DIALOG_HOUSE_SELL_PLAYER, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu vender sua casa para um player.", "{FFFFFF}Digite o ID/playerName do player abaixo, é possível utilizar parte do nick quanto ID do player\n", "Próximo", "Voltar");
  2115.                     TogglePlayerControllable(playerid, 1);
  2116.                     return 1;
  2117.                 }
  2118.                 case 6:
  2119.                 {
  2120.                     new
  2121.                         string[250];
  2122.  
  2123.                     if(houseData[house][houseRentable] == 0)
  2124.                     {
  2125.                         PlayerPlaySound(playerid, 1085, X, Y, Z);
  2126.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Sua casa casa não está sendo alugada. Ative o aluguel antes.");
  2127.                         TogglePlayerControllable(playerid, 1);
  2128.                         return 1;
  2129.                     }
  2130.  
  2131.                     if(!strcmp(houseData[house][houseTenant], "Ninguem", false))
  2132.                     {
  2133.                         PlayerPlaySound(playerid, 1085, X, Y, Z);
  2134.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Não tem ninguém alugando sua casa no momento.");
  2135.                         TogglePlayerControllable(playerid, 1);
  2136.                         return 1;
  2137.                     }
  2138.  
  2139.                     format(string, sizeof string, "{FFFFFF}Você deseja despejar o locador {46FE00}%s{FFFFFF}, da sua casa?\n", houseData[house][houseTenant]);
  2140.                     ShowPlayerDialog(playerid, DIALOG_DUMP_TENANT, DIALOG_STYLE_MSGBOX, "{00F2FC}Você escolheu despejar o locador da sua casa.", string, "Sim", "Não");
  2141.                     TogglePlayerControllable(playerid, 1);
  2142.                 }
  2143.                 case 7:
  2144.                 {
  2145.                     new
  2146.                         stringMessage[128];
  2147.  
  2148.                     if (strlen(houseData[house][houseTitle]) > 0)
  2149.                     {
  2150.                         format(stringMessage, sizeof stringMessage, "{FFFFFF}Digite o novo título da casa.\n\nTítulo anterior: {46FE00}%s\n", houseData[house][houseTitle]);
  2151.                         ShowPlayerDialog(playerid, DIALOG_HOUSE_TITLE, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu mudar o título da casa.", stringMessage, "Alterar", "Voltar");
  2152.                     }
  2153.                     else
  2154.                         ShowPlayerDialog(playerid, DIALOG_HOUSE_TITLE, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu mudar o título da casa.", "{FFFFFF}Digite o novo título da casa.\n\nTítulo anterior: {FFFFFF}SEM TÍTULO\n", "Alterar", "Voltar");
  2155.  
  2156.                     TogglePlayerControllable(playerid, 1);
  2157.                 }
  2158.                 case 8:
  2159.                 {
  2160.                     ShowPlayerDialog(playerid, DIALOG_STORAGE_HOUSE, DIALOG_STYLE_LIST, "{00F2FC}Você escolheu acessar o armazamento.", "{FFFFFF}Coletes a prova de bala", "Acessar", "Voltar");
  2161.                     return 1;
  2162.                 }
  2163.             }
  2164.         }
  2165.         case DIALOG_STORAGE_HOUSE:
  2166.         {
  2167.             if(!response)
  2168.                 return ShowHouseMenu(playerid);
  2169.  
  2170.             switch(listitem)
  2171.             {
  2172.                 case 0: return ShowStorageMenu(playerid, 1);
  2173.             }
  2174.         }
  2175.         case DIALOG_STORAGE_ARMOUR:
  2176.         {
  2177.             if(!response)
  2178.                 return ShowPlayerDialog(playerid, DIALOG_STORAGE_HOUSE, DIALOG_STYLE_LIST, "{00F2FC}Você escolheu acessar o armazamento.", "{FFFFFF}Coletes a prova de bala", "Acessar", "Voltar");
  2179.  
  2180.             new
  2181.                 storageFile[100],
  2182.                 slotStorageID[20],
  2183.                 house = GetProxHouse(playerid);
  2184.  
  2185.             PlayerPlaySound(playerid, 1085, X, Y, Z);
  2186.             GetPlayerArmour(playerid, oldArmour);
  2187.  
  2188.             format(storageFile, sizeof storageFile, "LHouse/Armazenamento/Casa %d.txt", house);
  2189.  
  2190.             for(new s; s < MAX_ARMOUR; s++)
  2191.             {
  2192.                 if (listitem == s)
  2193.                 {
  2194.                     if(houseData[house][houseArmourStored][s] > 0)
  2195.                     {
  2196.                         if(oldArmour > 0)
  2197.                         {
  2198.                             PlayerPlaySound(playerid, 1085, X, Y, Z);
  2199.                             SendClientMessage(playerid, -1, "{F90700}Erro: {FFFFFF}Você só pode pegar um colete quando você não estiver usando um.");
  2200.                             ShowStorageMenu(playerid, 1);
  2201.                             printf("debug: oldArmour = %f, error 00245", oldArmour);
  2202.                             return 1;
  2203.                         }
  2204.  
  2205.                         SetPlayerArmour(playerid, houseData[house][houseArmourStored][s]);
  2206.                         houseData[house][houseArmourStored][s] = 0;
  2207.                         ShowStorageMenu(playerid, 1);
  2208.  
  2209.                         SendClientMessage(playerid, -1, "[{FFEC00}LHouse{FFFFFF}] Você vestiu o colete com sucesso.");
  2210.  
  2211.                         if(!DOF2_FileExists(storageFile))
  2212.                             DOF2_CreateFile(storageFile);
  2213.  
  2214.                         format(slotStorageID, sizeof slotStorageID, "SLOT %d", s);
  2215.                         DOF2_SetFloat(storageFile, slotStorageID, 0, "Colete");
  2216.                         DOF2_SaveFile();
  2217.  
  2218.                         return 1;
  2219.                     }
  2220.                     else if(houseData[house][houseArmourStored][s] == 0)
  2221.                     {
  2222.                         if(oldArmour == 0)
  2223.                         {
  2224.                             PlayerPlaySound(playerid, 1085, X, Y, Z);
  2225.                             SendClientMessage(playerid, -1, "{F90700}Erro: {FFFFFF}Você não tem colete para armazenar.");
  2226.                             ShowStorageMenu(playerid, 1);
  2227.                             return 1;
  2228.                         }
  2229.                         else if(oldArmour >= 1 && oldArmour <= 99)
  2230.                         {
  2231.                             PlayerPlaySound(playerid, 1085, X, Y, Z);
  2232.                             SendClientMessage(playerid, -1, "{F90700}Erro: {FFFFFF}É necessário que o seu colete esteja totalmente cheio para que possa ser armazenado.");
  2233.                             ShowStorageMenu(playerid, 1);
  2234.                             return 1;
  2235.                         }
  2236.  
  2237.                         houseData[house][houseArmourStored][s] = 100;
  2238.                         SetPlayerArmour(playerid, 0);
  2239.                         ShowStorageMenu(playerid, 1);
  2240.  
  2241.                         SendClientMessage(playerid, -1, "[{FFEC00}LHouse{FFFFFF}] Colete armazenado com sucesso.");
  2242.  
  2243.                         if(!DOF2_FileExists(storageFile))
  2244.                             DOF2_CreateFile(storageFile);
  2245.  
  2246.                         format(slotStorageID, sizeof slotStorageID, "SLOT %d", s);
  2247.                         DOF2_SetFloat(storageFile, slotStorageID, 100, "Colete");
  2248.                         DOF2_SaveFile();
  2249.  
  2250.                         return 1;
  2251.                     }
  2252.                 }
  2253.             }
  2254.             return 1;
  2255.         }
  2256.  
  2257.         case DIALOG_DUMP_TENANT:
  2258.         {
  2259.             if(!response)
  2260.                 return ShowHouseMenu(playerid);
  2261.  
  2262.             new
  2263.                 house = GetProxHouse(playerid),
  2264.                 tenantFile[200],
  2265.                 houseFile[200],
  2266.                 string[128],
  2267.                 string2[128],
  2268.                 playerName2[MAX_PLAYER_NAME],
  2269.                 logString[128],
  2270.                 tenantID = GetTenantID(house);
  2271.  
  2272.             if(tenantID != -255)
  2273.             {
  2274.                 if(GetPlayerVirtualWorld(tenantID) == house)
  2275.                 {
  2276.                     SetPlayerPos(tenantID, houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ]);
  2277.                     SetPlayerInterior(tenantID, 0);
  2278.                     SetPlayerVirtualWorld(tenantID, 0);
  2279.                 }
  2280.             }
  2281.  
  2282.             format(string, sizeof string, "[{FFEC00}LHouse{FFFFFF}] Você foi despejado. Procure {46FE00}%s {FFFFFF}para saber o motivo.", houseData[house][houseOwner]);
  2283.             format(string2, sizeof string2, "[{FFEC00}LHouse{FFFFFF}] Você despejou {46FE00}%s {FFFFFF}com sucesso, ele deve te procurar para saber o motivo.", houseData[house][houseTenant]);
  2284.  
  2285.             format(tenantFile, sizeof tenantFile, "LHouse/Locadores/%s.txt", houseData[house][houseTenant]);
  2286.             format(houseFile, sizeof houseFile, "LHouse/Casas/Casa %d.txt", house);
  2287.  
  2288.             SendClientMessage(houseData[house][houseTenant], -1, string);
  2289.             SendClientMessage(playerid, -1, string2);
  2290.  
  2291.             GetPlayerName(houseData[house][houseTenant], playerName2, MAX_PLAYER_NAME);
  2292.             GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  2293.  
  2294.             format(logString, sizeof logString, "O jogador %s[%d], despejou o locador %s da casa %d.", playerName, playerid, playerName2, house);
  2295.             WriteLog(LOG_HOUSES, logString);
  2296.  
  2297.  
  2298.             DOF2_RemoveFile(tenantFile);
  2299.             format(houseData[house][houseTenant], 24, "Ninguem");
  2300.             DOF2_SetString(houseFile, "Locador", "Ninguem", "Aluguel");
  2301.  
  2302.             return 1;
  2303.         }
  2304.         case DIALOG_HOUSE_SELL_PLAYER:
  2305.         {
  2306.             if(!response)
  2307.                 return ShowHouseMenu(playerid);
  2308.  
  2309.             new
  2310.                 targetID,
  2311.                 tenantFile[200],
  2312.                 ownerFile[200];
  2313.  
  2314.             GetPlayerPos(playerid, X, Y, Z);
  2315.  
  2316.             if(sscanf(inputtext, "u", targetID))
  2317.             {
  2318.                 PlayerPlaySound(playerid, 1085, X, Y, Z);
  2319.                 ShowPlayerDialog(playerid, DIALOG_HOUSE_SELL_PLAYER, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu vender sua casa para um player.", "{FFFFFF}Digite o ID/playerName do player abaixo, é possível utilizar parte do nick quanto ID do player\n", "Próximo", "Cancelar");
  2320.                 return 1;
  2321.             }
  2322.  
  2323.             else if(!IsPlayerConnected(targetID) || targetID == INVALID_PLAYER_ID)
  2324.             {
  2325.                 PlayerPlaySound(playerid, 1085, X, Y, Z);
  2326.                 SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Jogador não conectado!");
  2327.                 ShowPlayerDialog(playerid, DIALOG_HOUSE_SELL_PLAYER, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu vender sua casa para um player.", "{FFFFFF}Digite o ID/playerName do player abaixo, é possível utilizar parte do nick quanto ID do player\n", "Próximo", "Cancelar");
  2328.                 return 1;
  2329.             }
  2330.  
  2331.             GetPlayerName(targetID, playerName, MAX_PLAYER_NAME);
  2332.  
  2333.             format(tenantFile, sizeof tenantFile, "LHouse/Locadores/%s.txt", playerName);
  2334.             format(ownerFile, sizeof ownerFile, "LHouse/Donos/%s.txt", playerName);
  2335.  
  2336.             if(DOF2_FileExists(tenantFile))
  2337.             {
  2338.                 PlayerPlaySound(playerid, 1085, X, Y, Z);
  2339.                 SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Este player já é locador de uma casa!");
  2340.                 ShowPlayerDialog(playerid, DIALOG_HOUSE_SELL_PLAYER, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu vender sua casa para um player.", "{FFFFFF}Digite o ID/playerName do player abaixo, é possível utilizar parte do nick quanto ID do player\n", "Próximo", "Cancelar");
  2341.                 return 1;
  2342.             }
  2343.  
  2344.             else if(DOF2_FileExists(ownerFile))
  2345.             {
  2346.                 PlayerPlaySound(playerid, 1085, X, Y, Z);
  2347.                 SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Este player já é dono de uma casa!");
  2348.                 ShowPlayerDialog(playerid, DIALOG_HOUSE_SELL_PLAYER, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu vender sua casa para um player.", "{FFFFFF}Digite o ID/playerName do player abaixo, é possível utilizar parte do nick quanto ID do player\n", "Próximo", "Cancelar");
  2349.                 return 1;
  2350.             }
  2351.  
  2352.             else if(playerid == targetID)
  2353.             {
  2354.                 PlayerPlaySound(playerid, 1085, X, Y, Z);
  2355.                 SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Você não pode vender a casa para você mesmo!");
  2356.                 ShowPlayerDialog(playerid, DIALOG_HOUSE_SELL_PLAYER, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu vender sua casa para um player.", "{FFFFFF}Digite o ID/playerName do player abaixo, é possível utilizar parte do nick quanto ID do player\n", "Próximo", "Cancelar");
  2357.                 return 1;
  2358.             }
  2359.  
  2360.             playerReceiveHouse = targetID;
  2361.             ShowPlayerDialog(playerid, DIALOG_HOUSE_SELL_PLAYER2, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu vender sua casa para um player.", "{FFFFFF}Agora digite o preço abaixo e aguarde a confirmação\n{FFFFFF}Use somente números.\n", "Próximo", "Cancelar");
  2362.         }
  2363.         case DIALOG_HOUSE_SELL_PLAYER2:
  2364.         {
  2365.             if(!response)
  2366.                 return ShowHouseMenu(playerid);
  2367.  
  2368.             new
  2369.                 sellingHousePrice;
  2370.  
  2371.             if(sscanf(inputtext, "d", sellingHousePrice))
  2372.             {
  2373.                 GetPlayerPos(playerid, X, Y, Z);
  2374.                 PlayerPlaySound(playerid, 1085, X, Y, Z);
  2375.                 ShowPlayerDialog(playerid, DIALOG_HOUSE_SELL_PLAYER2, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu vender sua casa para um player.", "{FFFFFF}Agora digite o preço abaixo\n{FFFFFF}Use somente números.\n", "Próximo", "Cancelar");
  2376.                 return 1;
  2377.             }
  2378.  
  2379.             priceReceiveHouse = sellingHousePrice;
  2380.  
  2381.             new
  2382.                 stringCat[600],
  2383.                 string[100],
  2384.                 string2[100],
  2385.                 string3[100],
  2386.                 string4[100],
  2387.                 playerName2[MAX_PLAYER_NAME],
  2388.                 ownerFile[200];
  2389.  
  2390.             GetPlayerName(playerReceiveHouse, playerName, MAX_PLAYER_NAME);
  2391.             GetPlayerName(playerid, playerName2, MAX_PLAYER_NAME);
  2392.  
  2393.             format(ownerFile, sizeof ownerFile, "LHouse/Donos/%s.txt", playerName2);
  2394.  
  2395.             houseSellingID = DOF2_GetInt(ownerFile, "houseID");
  2396.             playerIDOffer = playerid;
  2397.  
  2398.             format(string, sizeof string, "{00F2FC}Quem vai receber a casa: {46FE00}%s\n", playerName);
  2399.             format(string2, sizeof string2, "{00F2FC}Valor a ser pago pela casa: {FFFFFF}$%d\n", sellingHousePrice);
  2400.             format(string3, sizeof string3, "{00F2FC}ID da casa a ser vendida: {FFFFFF}%d\n", houseSellingID);
  2401.             format(string4, sizeof string4, "{00F2FC}Dono da casa a ser vendida: {46FE00}%s\n\n", houseData[houseSellingID][houseOwner]);
  2402.  
  2403.             strcat(stringCat, string);
  2404.             strcat(stringCat, string2);
  2405.             strcat(stringCat, string3);
  2406.             strcat(stringCat, string4);
  2407.             strcat(stringCat, "{FD0900}ATENÇÃO:{FFFFFF} A casa dita acima vai ser do player para o qual a casa vai ser vendida, isso não pode ser desfeito,\nA menos que você a compre do player novamente.\n");
  2408.             strcat(stringCat, "Você deseja confirmar essa ação, baseada nas informações acima descritas?\n");
  2409.  
  2410.             ShowPlayerDialog(playerid, DIALOG_SELLING_CONFIRM, DIALOG_STYLE_MSGBOX, "Venda de casa para player", stringCat, "CONFIRMAR", "Cancelar");
  2411.         }
  2412.         case DIALOG_SELLING_CONFIRM:
  2413.         {
  2414.             if(!response)
  2415.                 return ShowHouseMenu(playerid);
  2416.  
  2417.             if (!IsPlayerConnected(playerReceiveHouse) || playerReceiveHouse == INVALID_PLAYER_ID)
  2418.             {
  2419.                 SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}O jogador se desconectou!");
  2420.                 playerReceiveHouse = 0;
  2421.                 return 1;
  2422.             }
  2423.  
  2424.             new
  2425.                 stringCat[600],
  2426.                 string[100],
  2427.                 string2[100],
  2428.                 string3[100];
  2429.  
  2430.             GetPlayerName(playerIDOffer, playerName, MAX_PLAYER_NAME);
  2431.             TogglePlayerControllable(playerIDOffer, 1);
  2432.  
  2433.             strcat(stringCat, "{00F2FC}Há uma oferta para venda de uma casa para você!\n\n\n");
  2434.  
  2435.             format(string, sizeof string, "{00F2FC}Dono da casa a ser vendida: {46FE00}%s\n\n", houseData[houseSellingID][houseOwner]);
  2436.             format(string2, sizeof string2, "{00F2FC}Valor a ser pago pela casa: {FFFFFF}$%d\n", priceReceiveHouse);
  2437.             format(string3, sizeof string3, "{00F2FC}ID da casa a ser vendida: {FFFFFF}%d\n", houseSellingID);
  2438.  
  2439.             strcat(stringCat, string);
  2440.             strcat(stringCat, string2);
  2441.             strcat(stringCat, string3);
  2442.             strcat(stringCat, "{FD0900}ATENÇÃO:{FFFFFF} A casa dita acima vai ser sua e isso não pode ser desfeito,\nA menos que você a venda para o player do qual você comprou.\n");
  2443.             strcat(stringCat, "Você deseja comprar a casa, baseada nas informações acima descritas?\n");
  2444.  
  2445.             ShowPlayerDialog(playerReceiveHouse, DIALOG_HOUSE_SELL_PLAYER3, DIALOG_STYLE_MSGBOX, "Venda de casa", stringCat, "Comprar", "Negar");
  2446.         }
  2447.         case DIALOG_HOUSE_SELL_PLAYER3:
  2448.         {
  2449.             GetPlayerPos(playerid, X, Y, Z);
  2450.             GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  2451.  
  2452.             if(!response)
  2453.             {
  2454.                 PlayerPlaySound(playerid, 1085, X, Y, Z);
  2455.                 TogglePlayerControllable(playerid, 1);
  2456.  
  2457.                 new
  2458.                     string[128];
  2459.  
  2460.                 format(string, sizeof string, "O jogador {00F2FC}%s {FFFFFF}negou a sua oferta de comprar a casa número {00F2FC}%d {FFFFFF}por {00F2FC}$%d", playerName, houseSellingID, priceReceiveHouse);
  2461.                 SendClientMessage(playerIDOffer, -1, string);
  2462.                 return 1;
  2463.             }
  2464.  
  2465.             if(GetPlayerMoney(playerid) < priceReceiveHouse)
  2466.             {
  2467.                 PlayerPlaySound(playerid, 1085, X, Y, Z);
  2468.                 TogglePlayerControllable(playerid, 1);
  2469.  
  2470.                 new
  2471.                     string[150];
  2472.  
  2473.                 format(string, sizeof string, "O jogador {00F2FC}%s {FFFFFF}não tem dinheiro o suficiente para comprar a casa número {00F2FC}%d {FFFFFF}por {00F2FC}$%d", playerName, houseSellingID, priceReceiveHouse);
  2474.                 SendClientMessage(playerIDOffer, -1, string);
  2475.                 SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Você não tem dinheiro o suficiente!");
  2476.                 return 1;
  2477.             }
  2478.  
  2479.             new
  2480.                 housePath2[200],
  2481.                 playerName2[MAX_PLAYER_NAME],
  2482.                 house = houseSellingID,
  2483.                 ownerFile[200],
  2484.                 ownerFile2[200];
  2485.  
  2486.             GivePlayerMoney(playerid, -priceReceiveHouse);
  2487.             GivePlayerMoney(playerIDOffer, priceReceiveHouse);
  2488.  
  2489.             SendClientMessage(playerid, -1, "{00F2FC}Negócio fechado! {FFFFFF}Divirta-se!");
  2490.             SendClientMessage(playerIDOffer, -1, "{00F2FC}Negócio fechado! {FFFFFF}Divirta-se!");
  2491.  
  2492.             GetPlayerName(playerIDOffer, playerName2, 24);
  2493.  
  2494.             format(ownerFile, sizeof ownerFile, "LHouse/Donos/%s.txt", playerName2);
  2495.             format(ownerFile2, sizeof ownerFile2, "LHouse/Donos/%s.txt", playerName);
  2496.             DOF2_RenameFile(ownerFile, ownerFile2);
  2497.  
  2498.             format(housePath2, sizeof housePath2, "LHouse/Casas/Casa %d.txt", house);
  2499.             format(houseData[house][houseOwner], 255, playerName2);
  2500.  
  2501.             DOF2_SetString(housePath2, "Dono", playerName2);
  2502.             DOF2_SaveFile();
  2503.  
  2504.             SetPlayerPos(playerid, houseData[house][houseIntX], houseData[house][houseIntY], houseData[house][houseIntZ]);
  2505.             SetPlayerVirtualWorld(playerid, house);
  2506.             SetPlayerInterior(playerid, houseData[house][houseInterior]);
  2507.  
  2508.             TogglePlayerControllable(playerid, 1);
  2509.             TogglePlayerControllable(playerIDOffer, 1);
  2510.  
  2511.             PlayerTextDrawShow(playerid, welcome[playerid]);
  2512.  
  2513.             new
  2514.                 logString[128];
  2515.  
  2516.             format(logString, sizeof logString, "O jogador %s[%d], vendeu a casa %d para o jogador %s[%d] por $%d.", playerName2, playerIDOffer, house, playerName, playerid, priceReceiveHouse);
  2517.             WriteLog(LOG_HOUSES, logString);
  2518.             SetTimerEx("HideTextdraws", 2000, false, "i", playerid);
  2519.             Update3DText(house);
  2520.         }
  2521.         case DIALOG_RENT:
  2522.         {
  2523.             new
  2524.                 house = GetProxHouse(playerid);
  2525.  
  2526.             GetPlayerPos(playerid, X, Y, Z);
  2527.  
  2528.             if(response)
  2529.             {
  2530.                 if(houseData[house][houseRentable] == 1)
  2531.                 {
  2532.                     SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}O aluguel da sua casa já está ativado!");
  2533.                     PlayerPlaySound(playerid, 1085, X, Y, Z);
  2534.                     return 1;
  2535.                 }
  2536.                 ShowPlayerDialog(playerid, DIALOG_RENT_PRICE, DIALOG_STYLE_INPUT, "{00F2FC}Insira o valor do aluguel.", "{FFFFFF}Insira o valor do aluguel que você quer.\nEsse valor vai ser entregue na sua casa a cada 24 horas se haver um locador na sua casa\n{FFFFFF}Use somente números.\n", "Alugar!", "Cancelar");
  2537.             }
  2538.             else
  2539.             {
  2540.                 if(houseData[house][houseRentable] == 0)
  2541.                 {
  2542.                     SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}O aluguel da sua casa já está desativado!");
  2543.                     PlayerPlaySound(playerid, 1085, X, Y, Z);
  2544.                     return 1;
  2545.                 }
  2546.  
  2547.                 if(strcmp(houseData[house][houseTenant], "Ninguem", false))
  2548.                 {
  2549.                     GetPlayerPos(playerid, X, Y, Z);
  2550.                     PlayerPlaySound(playerid, 1085, X, Y, Z);
  2551.                     SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Não é possível desativar o aluguel com alguém alugando sua casa.");
  2552.                     TogglePlayerControllable(playerid, 1);
  2553.                     return 1;
  2554.                 }
  2555.  
  2556.                 houseData[house][houseRentable] = 0;
  2557.                 Update3DText(house);
  2558.                 PlayerTextDrawShow(playerid, rentDisabled[playerid]);
  2559.                 SetTimerEx("HideTextdraws", 2000, false, "i", playerid);
  2560.  
  2561.                 new
  2562.                     logString[128];
  2563.  
  2564.                 GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  2565.                 format(logString, sizeof logString, "O jogador %s[%d], desativou o aluguel da casa %d.", playerName, playerid, house);
  2566.                 WriteLog(LOG_HOUSES, logString);
  2567.             }
  2568.         }
  2569.         case DIALOG_RENT_PRICE:
  2570.         {
  2571.             if(!response)
  2572.                 return ShowHouseMenu(playerid);
  2573.  
  2574.             GetPlayerPos(playerid, X, Y, Z);
  2575.  
  2576.             if(!IsNumeric(inputtext))
  2577.             {
  2578.                 PlayerPlaySound(playerid, 1085, X, Y, Z);
  2579.                 SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Digite apenas números!");
  2580.                 ShowPlayerDialog(playerid, DIALOG_RENT_PRICE, DIALOG_STYLE_INPUT, "{00F2FC}Insira o valor do aluguel.", "{FFFFFF}Insira o valor do aluguel que você quer.\nEsse valor vai ser entregue na sua casa a cada 24 horas se haver um locador na sua casa\n{FFFFFF}Use somente números.\n", "Alugar!", "Cancelar");
  2581.                 return 1;
  2582.             }
  2583.  
  2584.             if(!strlen(inputtext))
  2585.             {
  2586.                 PlayerPlaySound(playerid, 1085, X, Y, Z);
  2587.                 SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Digite algo no campo ou cancele!");
  2588.                 ShowPlayerDialog(playerid, DIALOG_RENT_PRICE, DIALOG_STYLE_INPUT, "{00F2FC}Insira o valor do aluguel.", "{FFFFFF}Insira o valor do aluguel que você quer.\nEsse valor vai ser entregue na sua casa a cada 24 horas se haver um locador na sua casa\n{FFFFFF}Use somente números.\n", "Alugar!", "Cancelar");
  2589.                 return 1;
  2590.             }
  2591.  
  2592.             new
  2593.                 house = GetProxHouse(playerid),
  2594.                 logString[128],
  2595.                 file[200];
  2596.  
  2597.             format(file, sizeof file, "LHouse/Casas/Casa %d.txt", house);
  2598.  
  2599.             houseData[house][houseRentable] = 1;
  2600.             houseData[house][houseRentPrice] = strval(inputtext);
  2601.  
  2602.             DOF2_SetInt(file, "Aluguel Ativado", houseData[house][houseRentable], "Aluguel");
  2603.             DOF2_SetInt(file, "Preço do Aluguel", houseData[house][houseRentPrice], "Aluguel");
  2604.             DOF2_SaveFile();
  2605.  
  2606.             Update3DText(house);
  2607.             PlayerTextDrawShow(playerid, rentEnabled[playerid]);
  2608.             SetTimerEx("HideTextdraws", 2000, false, "i", playerid);
  2609.  
  2610.             GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  2611.             format(logString, sizeof logString, "O jogador %s[%d], ativou o aluguel da casa %d por $%d.", playerName, playerid, house, houseData[house][houseRentPrice]);
  2612.             WriteLog(LOG_HOUSES, logString);
  2613.  
  2614.             return 1;
  2615.         }
  2616.         case DIALOG_CREATE_HOUSE:
  2617.         {
  2618.             if(!response)
  2619.                 return 1;
  2620.  
  2621.             switch(listitem)
  2622.             {
  2623.                 case 0:
  2624.                 {
  2625.                     houseInteriorX[playerid] = 2196.84;
  2626.                     houseInteriorY[playerid] = -1204.36;
  2627.                     houseInteriorZ[playerid] = 1049.02;
  2628.                     houseInteriorFA[playerid] = 94.0010;
  2629.                     houseInteriorInt[playerid] = 6;
  2630.                     houseIntPrice[playerid] = 65000;
  2631.                 }
  2632.                 case 1:
  2633.                 {
  2634.                     houseInteriorX[playerid] = 2259.38;
  2635.                     houseInteriorY[playerid] = -1135.89;
  2636.                     houseInteriorZ[playerid] = 1050.64;
  2637.                     houseInteriorFA[playerid] = 275.3992;
  2638.                     houseInteriorInt[playerid] = 10;
  2639.                     houseIntPrice[playerid] = 37000;
  2640.                 }
  2641.                 case 2:
  2642.                 {
  2643.                     houseInteriorX[playerid] = 2282.99;
  2644.                     houseInteriorY[playerid] = -1140.28;
  2645.                     houseInteriorZ[playerid] = 1050.89;
  2646.                     houseInteriorFA[playerid] = 358.4660;
  2647.                     houseInteriorInt[playerid] = 11;
  2648.                     houseIntPrice[playerid] = 37000;
  2649.                 }
  2650.                 case 3:
  2651.                 {
  2652.                     houseInteriorX[playerid] = 2233.69;
  2653.                     houseInteriorY[playerid] = -1115.26;
  2654.                     houseInteriorZ[playerid] = 1050.88;
  2655.                     houseInteriorFA[playerid] = 358.4660;
  2656.                     houseInteriorInt[playerid] = 5;
  2657.                     houseIntPrice[playerid] = 20000;
  2658.                 }
  2659.                 case 4:
  2660.                 {
  2661.                     houseInteriorX[playerid] = 2218.39;
  2662.                     houseInteriorY[playerid] = -1076.21;
  2663.                     houseInteriorZ[playerid] = 1050.48;
  2664.                     houseInteriorFA[playerid] = 95.2635;
  2665.                     houseInteriorInt[playerid] = 1;
  2666.                     houseIntPrice[playerid] = 20000;
  2667.                 }
  2668.                 case 5:
  2669.                 {
  2670.                     houseInteriorX[playerid] = 2496.00;
  2671.                     houseInteriorY[playerid] = -1692.08;
  2672.                     houseInteriorZ[playerid] = 1014.74;
  2673.                     houseInteriorFA[playerid] = 177.8159;
  2674.                     houseInteriorInt[playerid] = 3;
  2675.                     houseIntPrice[playerid] = 150000;
  2676.                 }
  2677.                 case 6:
  2678.                 {
  2679.                     houseInteriorX[playerid] = 2365.25;
  2680.                     houseInteriorY[playerid] = -1135.58;
  2681.                     houseInteriorZ[playerid] = 1050.88;
  2682.                     houseInteriorFA[playerid] = 359.0367;
  2683.                     houseInteriorInt[playerid] = 8;
  2684.                     houseIntPrice[playerid] = 320000;
  2685.                 }
  2686.                 case 7:
  2687.                 {
  2688.                     houseInteriorX[playerid] = 2317.77;
  2689.                     houseInteriorY[playerid] = -1026.76;
  2690.                     houseInteriorZ[playerid] = 1050.21;
  2691.                     houseInteriorFA[playerid] = 359.0367;
  2692.                     houseInteriorInt[playerid] = 9;
  2693.                     houseIntPrice[playerid] = 120000;
  2694.                 }
  2695.                 case 8:
  2696.                 {
  2697.                     houseInteriorX[playerid] = 2324.41;
  2698.                     houseInteriorY[playerid] = -1149.54;
  2699.                     houseInteriorZ[playerid] = 1050.71;
  2700.                     houseInteriorFA[playerid] = 359.0367;
  2701.                     houseInteriorInt[playerid] = 12;
  2702.                     houseIntPrice[playerid] = 95000;
  2703.                 }
  2704.                 case 9:
  2705.                 {
  2706.                     houseInteriorX[playerid] = 1260.6603;
  2707.                     houseInteriorY[playerid] = -785.4005;
  2708.                     houseInteriorZ[playerid] = 1091.9063;
  2709.                     houseInteriorFA[playerid] = 270.9891;
  2710.                     houseInteriorInt[playerid] = 5;
  2711.                     houseIntPrice[playerid] = 1200000;
  2712.                 }
  2713.                 case 10:
  2714.                 {
  2715.                     houseInteriorX[playerid] = 140.28;
  2716.                     houseInteriorY[playerid] = 1365.92;
  2717.                     houseInteriorZ[playerid] = 1083.85;
  2718.                     houseInteriorFA[playerid] = 9.6901;
  2719.                     houseInteriorInt[playerid] = 5;
  2720.                     houseIntPrice[playerid] = 660000;
  2721.                 }
  2722.             }
  2723.  
  2724.             new
  2725.                 house,
  2726.                 houseAtual[200],
  2727.                 checkID[200],
  2728.                 logString[128];
  2729.  
  2730.             GetPlayerPos(playerid, X, Y, Z);
  2731.             format(houseAtual, sizeof houseAtual, "LHouse/CasaAtual.txt");
  2732.  
  2733.             if(!DOF2_FileExists(houseAtual))
  2734.             {
  2735.                 DOF2_CreateFile(houseAtual);
  2736.                 DOF2_SetInt(houseAtual, "IDAtual", 1);
  2737.                 DOF2_SaveFile();
  2738.                 house = 1;
  2739.             }
  2740.  
  2741.             else
  2742.             {
  2743.                 for(new i = 1; i < MAX_HOUSES; i++)
  2744.                 {
  2745.                     format(checkID, sizeof checkID, "LHouse/Casas/Casa %d.txt", i);
  2746.                     if(!DOF2_FileExists(checkID))
  2747.                     {
  2748.                         DOF2_SetInt(houseAtual, "IDAtual", i);
  2749.                         DOF2_SaveFile();
  2750.                         house = i;
  2751.                         break;
  2752.                     }
  2753.                 }
  2754.             }
  2755.  
  2756.             CreateHouse(house, X, Y, Z, houseInteriorX[playerid], houseInteriorY[playerid], houseInteriorZ[playerid], houseInteriorFA[playerid], houseIntPrice[playerid], houseInteriorInt[playerid]);
  2757.             PlayerTextDrawShow(playerid, houseCreated[playerid]);
  2758.             GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  2759.  
  2760.             format(logString, sizeof logString, "O administrador %s[%d], criou a casa %d.", playerName, playerid, house);
  2761.             WriteLog(LOG_ADMIN, logString);
  2762.             SetTimerEx("HideTextdraws", 2000, false, "i", playerid);
  2763.         }
  2764.         case DIALOG_CAR_MENU:
  2765.         {
  2766.             if(!response)
  2767.                 return 1;
  2768.  
  2769.             switch(listitem)
  2770.             {
  2771.                 case 0:
  2772.                 {
  2773.                     GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  2774.  
  2775.                     new
  2776.                         ownerFile[200];
  2777.  
  2778.                     format(ownerFile, sizeof ownerFile, "LHouse/Donos/%s.txt", playerName);
  2779.  
  2780.                     new
  2781.                         house = DOF2_GetInt(ownerFile, "houseID");
  2782.  
  2783.                     houseCarSet[playerid] = true;
  2784.  
  2785.                     if(!IsPlayerInVehicle(playerid, houseVehicle[house][vehicleHouse]))
  2786.                         return SendClientMessage(playerid, -1, "[{FFEC00}LHouse{FFFFFF}] Entre no carro, estacione em um local e digite {46FE00}/estacionar{FFFFFF}.");
  2787.  
  2788.                     SendClientMessage(playerid, -1, "[{FFEC00}LHouse{FFFFFF}] Estacione em um local e digite {46FE00}/estacionar{FFFFFF}.");
  2789.                 }
  2790.                 case 1:
  2791.                 {
  2792.                     ShowPlayerDialog(playerid, DIALOG_CAR_COLOR_1, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu mudar a cor do seu carro.", "{FFFFFF}Insira a cor 1 do carro.\n{FFFFFF}Utilize somente números de 0 a 255!", "Continuar", "Voltar");
  2793.                 }
  2794.                 case 2:
  2795.                 {
  2796.                     new
  2797.                         stringCat[2500];
  2798.  
  2799.                     strcat(stringCat, "Modelo {FB1300}475 \t{FCEC00}Sabre       \t\t{00EAFA}R$ 19.000,00 \n");
  2800.                     strcat(stringCat, "Modelo {FB1300}496 \t{FCEC00}Blista      \t\t{00EAFA}R$ 25.000,00 \n");
  2801.                     strcat(stringCat, "Modelo {FB1300}560 \t{FCEC00}Sultan      \t\t{00EAFA}R$ 26.000,00 \n");
  2802.                     strcat(stringCat, "Modelo {FB1300}401 \t{FCEC00}Bravura     \t\t{00EAFA}R$ 27.000,00 \n");
  2803.                     strcat(stringCat, "Modelo {FB1300}404 \t{FCEC00}Perenniel   \t\t{00EAFA}R$ 28.000,00 \n");
  2804.                     strcat(stringCat, "Modelo {FB1300}559 \t{FCEC00}Jester      \t\t{00EAFA}R$ 29.000,00 \n");
  2805.                     strcat(stringCat, "Modelo {FB1300}402 \t{FCEC00}Buffalo     \t\t{00EAFA}R$ 32.000,00 \n");
  2806.                     strcat(stringCat, "Modelo {FB1300}562 \t{FCEC00}Elegy       \t\t{00EAFA}R$ 35.000,00 \n");
  2807.                     strcat(stringCat, "Modelo {FB1300}589 \t{FCEC00}Club        \t\t{00EAFA}R$ 38.000,00 \n");
  2808.                     strcat(stringCat, "Modelo {FB1300}603 \t{FCEC00}Phoenix     \t\t{00EAFA}R$ 42.000,00 \n");
  2809.                     strcat(stringCat, "Modelo {FB1300}400 \t{FCEC00}Landstalker \t\t{00EAFA}R$ 65.000,00 \n");
  2810.                     strcat(stringCat, "Modelo {FB1300}429 \t{FCEC00}Banshee     \t\t{00EAFA}R$ 131.000,00 \n");
  2811.                     strcat(stringCat, "Modelo {FB1300}415 \t{FCEC00}Cheetah     \t\t{00EAFA}R$ 145.000,00 \n");
  2812.                     strcat(stringCat, "Modelo {FB1300}411 \t{FCEC00}Infernus    \t\t{00EAFA}R$ 150.000,00 \n");
  2813.                     strcat(stringCat, "Modelo {FB1300}409 \t{FCEC00}Limosine    \t\t{00EAFA}R$ 230.000,00 \n");
  2814.                     strcat(stringCat, "Modelo {FB1300}477 \t{FCEC00}ZR-350      \t\t{00EAFA}R$ 250.000,00 \n");
  2815.                     strcat(stringCat, "Modelo {FB1300}506 \t{FCEC00}Super GT    \t\t{00EAFA}R$ 500.000,00 \n");
  2816.                     strcat(stringCat, "Modelo {FB1300}541 \t{FCEC00}Bullet      \t\t{00EAFA}R$ 700.000,00 \n");
  2817.                     strcat(stringCat, "Modelo {FB1300}451 \t{FCEC00}Turismo     \t\t{00EAFA}R$ 850.000,00 \n");
  2818.                     strcat(stringCat, "Modelo {FB1300}468 \t{FCEC00}Sanchez     \t\t{00EAFA}R$ 40.000,00 {FFFFFF} - MOTO\n");
  2819.                     strcat(stringCat, "Modelo {FB1300}461 \t{FCEC00}PCJ-600     \t\t{00EAFA}R$ 55.000,00 {FFFFFF} - MOTO\n");
  2820.                     strcat(stringCat, "Modelo {FB1300}521 \t{FCEC00}FCR-900     \t\t{00EAFA}R$ 60.000,00 {FFFFFF} - MOTO\n");
  2821.                     strcat(stringCat, "Modelo {FB1300}463 \t{FCEC00}Freeway     \t\t{00EAFA}R$ 80.000,00 {FFFFFF} - MOTO\n");
  2822.                     strcat(stringCat, "Modelo {FB1300}522 \t{FCEC00}NRG-500     \t\t{00EAFA}R$ 150.000,00 {FFFFFF} - MOTO\n");
  2823.  
  2824.                     ShowPlayerDialog(playerid, DIALOG_CAR_MODELS_CHANGE, DIALOG_STYLE_LIST, "{FFFFFF}Escolha um modelo e clique em continuar.", stringCat, "Continuar", "Voltar");
  2825.                 }
  2826.                 case 3:
  2827.                 {
  2828.                     ShowPlayerDialog(playerid, DIALOG_CHANGE_PLATE, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu alterar a placa do seu carro.", "{FFFFFF}Digite a nova placa.\n{FFFFFF}O número máximo de caracteres é 8!", "Alterar", "Voltar");
  2829.                 }
  2830.                 case 4:
  2831.                 {
  2832.                     GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  2833.  
  2834.                     new
  2835.                         ownerFile[200],
  2836.                         string[200];
  2837.  
  2838.                     format(ownerFile, sizeof ownerFile, "LHouse/Donos/%s.txt", playerName);
  2839.  
  2840.                     new
  2841.                         house = DOF2_GetInt(ownerFile, "houseID");
  2842.  
  2843.                     GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  2844.                     format(string, sizeof string, "{FFFFFF}Tem certeza que deseja vender seu carro por {FFFFFF}$%d {FFFFFF}?\n{FFFFFF}Essa ação não pode ser desfeita", houseVehicle[house][vehiclePrice]/2);
  2845.                     ShowPlayerDialog(playerid, DIALOG_SELL_CAR, DIALOG_STYLE_MSGBOX, "{00F2FC}Você escolheu vender o seu carro.", string, "Sim", "Não");
  2846.                 }
  2847.             }
  2848.         }
  2849.         case DIALOG_CAR_MODELS_CREATED:
  2850.         {
  2851.             new
  2852.                 vehiclePath2[200];
  2853.  
  2854.             format(vehiclePath2, sizeof vehiclePath2, "LHouse/Casas/Casa %d.txt", houseIDReceiveCar);
  2855.  
  2856.             if(!response)
  2857.             {
  2858.                 SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Você cancelou!");
  2859.  
  2860.                 DestroyVehicle(carSetted[playerid]);
  2861.  
  2862.                 houseVehicle[houseIDReceiveCar][vehicleX] = 0.0;
  2863.                 houseVehicle[houseIDReceiveCar][vehicleY] = 0.0;
  2864.                 houseVehicle[houseIDReceiveCar][vehicleZ] = 0.0;
  2865.                 houseVehicle[houseIDReceiveCar][vehicleAngle] = 0.0;
  2866.                 houseVehicle[houseIDReceiveCar][vehicleColor1] = 0;
  2867.                 houseVehicle[houseIDReceiveCar][vehicleColor2] = 0;
  2868.                 houseVehicle[houseIDReceiveCar][vehicleRespawnTime] = 0;
  2869.                 houseVehicle[houseIDReceiveCar][vehiclePrice] = 0;
  2870.                 houseVehicle[houseIDReceiveCar][vehicleModel] = 0;
  2871.  
  2872.                 DOF2_SetInt(vehiclePath2, "Modelo do Carro", houseVehicle[houseIDReceiveCar][vehicleModel], "Veículo");
  2873.                 DOF2_SetFloat(vehiclePath2, "Coordenada do Veículo X", houseVehicle[houseIDReceiveCar][vehicleX], "Veículo");
  2874.                 DOF2_SetFloat(vehiclePath2, "Coordenada do Veículo Y", houseVehicle[houseIDReceiveCar][vehicleY], "Veículo");
  2875.                 DOF2_SetFloat(vehiclePath2, "Coordenada do Veículo Z", houseVehicle[houseIDReceiveCar][vehicleZ], "Veículo");
  2876.                 DOF2_SetFloat(vehiclePath2, "Angulo", houseVehicle[houseIDReceiveCar][vehicleAngle], "Veículo");
  2877.                 DOF2_SetInt(vehiclePath2, "Cor 1", houseVehicle[houseIDReceiveCar][vehicleColor1], "Veículo");
  2878.                 DOF2_SetInt(vehiclePath2, "Cor 2", houseVehicle[houseIDReceiveCar][vehicleColor2], "Veículo");
  2879.                 DOF2_SetInt(vehiclePath2, "Valor", houseVehicle[houseIDReceiveCar][vehiclePrice], "Veículo");
  2880.                 DOF2_SetInt(vehiclePath2, "Tempo de Respawn", houseVehicle[houseIDReceiveCar][vehicleRespawnTime], "Veículo");
  2881.  
  2882.                 DOF2_SaveFile();
  2883.                 return 1;
  2884.             }
  2885.  
  2886.             switch(listitem)
  2887.             {
  2888.                 case 0:
  2889.                 {
  2890.                     houseVehicle[houseIDReceiveCar][vehicleModel] = 475;
  2891.                     houseVehicle[houseIDReceiveCar][vehiclePrice] = 19000;
  2892.                     CreateHouseVehicleBought(playerid, houseIDReceiveCar);
  2893.                 }
  2894.                 case 1:
  2895.                 {
  2896.                     houseVehicle[houseIDReceiveCar][vehicleModel] = 496;
  2897.                     houseVehicle[houseIDReceiveCar][vehiclePrice] = 25000;
  2898.                     CreateHouseVehicleBought(playerid, houseIDReceiveCar);
  2899.                 }
  2900.                 case 2:
  2901.                 {
  2902.                     houseVehicle[houseIDReceiveCar][vehicleModel] = 560;
  2903.                     houseVehicle[houseIDReceiveCar][vehiclePrice] = 26000;
  2904.                     CreateHouseVehicleBought(playerid, houseIDReceiveCar);
  2905.                 }
  2906.                 case 3:
  2907.                 {
  2908.                     houseVehicle[houseIDReceiveCar][vehicleModel] = 401;
  2909.                     houseVehicle[houseIDReceiveCar][vehiclePrice] = 27000;
  2910.                     CreateHouseVehicleBought(playerid, houseIDReceiveCar);
  2911.                 }
  2912.                 case 4:
  2913.                 {
  2914.                     houseVehicle[houseIDReceiveCar][vehicleModel] = 404;
  2915.                     houseVehicle[houseIDReceiveCar][vehiclePrice] = 28000;
  2916.                     CreateHouseVehicleBought(playerid, houseIDReceiveCar);
  2917.                 }
  2918.                 case 5:
  2919.                 {
  2920.                     houseVehicle[houseIDReceiveCar][vehicleModel] = 559;
  2921.                     houseVehicle[houseIDReceiveCar][vehiclePrice] = 29000;
  2922.                     CreateHouseVehicleBought(playerid, houseIDReceiveCar);
  2923.                 }
  2924.                 case 6:
  2925.                 {
  2926.                     houseVehicle[houseIDReceiveCar][vehicleModel] = 402;
  2927.                     houseVehicle[houseIDReceiveCar][vehiclePrice] = 32000;
  2928.                     CreateHouseVehicleBought(playerid, houseIDReceiveCar);
  2929.                 }
  2930.                 case 7:
  2931.                 {
  2932.                     houseVehicle[houseIDReceiveCar][vehicleModel] = 562;
  2933.                     houseVehicle[houseIDReceiveCar][vehiclePrice] = 35000;
  2934.                     CreateHouseVehicleBought(playerid, houseIDReceiveCar);
  2935.                 }
  2936.                 case 8:
  2937.                 {
  2938.                     houseVehicle[houseIDReceiveCar][vehicleModel] = 589;
  2939.                     houseVehicle[houseIDReceiveCar][vehiclePrice] = 38000;
  2940.                     CreateHouseVehicleBought(playerid, houseIDReceiveCar);
  2941.                 }
  2942.                 case 9:
  2943.                 {
  2944.                     houseVehicle[houseIDReceiveCar][vehicleModel] = 603;
  2945.                     houseVehicle[houseIDReceiveCar][vehiclePrice] = 42000;
  2946.                     CreateHouseVehicleBought(playerid, houseIDReceiveCar);
  2947.                 }
  2948.                 case 10:
  2949.                 {
  2950.                     houseVehicle[houseIDReceiveCar][vehicleModel] = 400;
  2951.                     houseVehicle[houseIDReceiveCar][vehiclePrice] = 65000;
  2952.                     CreateHouseVehicleBought(playerid, houseIDReceiveCar);
  2953.                 }
  2954.                 case 11:
  2955.                 {
  2956.                     houseVehicle[houseIDReceiveCar][vehicleModel] = 429;
  2957.                     houseVehicle[houseIDReceiveCar][vehiclePrice] = 131000;
  2958.                     CreateHouseVehicleBought(playerid, houseIDReceiveCar);
  2959.                 }
  2960.                 case 12:
  2961.                 {
  2962.                     houseVehicle[houseIDReceiveCar][vehicleModel] = 415;
  2963.                     houseVehicle[houseIDReceiveCar][vehiclePrice] = 145000;
  2964.                     CreateHouseVehicleBought(playerid, houseIDReceiveCar);
  2965.                 }
  2966.                 case 13:
  2967.                 {
  2968.                     houseVehicle[houseIDReceiveCar][vehicleModel] = 411;
  2969.                     houseVehicle[houseIDReceiveCar][vehiclePrice] = 150000;
  2970.                     CreateHouseVehicleBought(playerid, houseIDReceiveCar);
  2971.                 }
  2972.                 case 14:
  2973.                 {
  2974.                     houseVehicle[houseIDReceiveCar][vehicleModel] = 409;
  2975.                     houseVehicle[houseIDReceiveCar][vehiclePrice] = 230000;
  2976.                     CreateHouseVehicleBought(playerid, houseIDReceiveCar);
  2977.                 }
  2978.                 case 15:
  2979.                 {
  2980.                     houseVehicle[houseIDReceiveCar][vehicleModel] = 477;
  2981.                     houseVehicle[houseIDReceiveCar][vehiclePrice] = 250000;
  2982.                     CreateHouseVehicleBought(playerid, houseIDReceiveCar);
  2983.                 }
  2984.                 case 16:
  2985.                 {
  2986.                     houseVehicle[houseIDReceiveCar][vehicleModel] = 506;
  2987.                     houseVehicle[houseIDReceiveCar][vehiclePrice] = 500000;
  2988.                     CreateHouseVehicleBought(playerid, houseIDReceiveCar);
  2989.                 }
  2990.                 case 17:
  2991.                 {
  2992.                     houseVehicle[houseIDReceiveCar][vehicleModel] = 541;
  2993.                     houseVehicle[houseIDReceiveCar][vehiclePrice] = 700000;
  2994.                     CreateHouseVehicleBought(playerid, houseIDReceiveCar);
  2995.                 }
  2996.                 case 18:
  2997.                 {
  2998.                     houseVehicle[houseIDReceiveCar][vehicleModel] = 451;
  2999.                     houseVehicle[houseIDReceiveCar][vehiclePrice] = 850000;
  3000.                     CreateHouseVehicleBought(playerid, houseIDReceiveCar);
  3001.                 }
  3002.                 case 19:
  3003.                 {
  3004.                     houseVehicle[houseIDReceiveCar][vehicleModel] = 468;
  3005.                     houseVehicle[houseIDReceiveCar][vehiclePrice] = 40000;
  3006.                     CreateHouseVehicleBought(playerid, houseIDReceiveCar);
  3007.                 }
  3008.                 case 20:
  3009.                 {
  3010.                     houseVehicle[houseIDReceiveCar][vehicleModel] = 461;
  3011.                     houseVehicle[houseIDReceiveCar][vehiclePrice] = 55000;
  3012.                     CreateHouseVehicleBought(playerid, houseIDReceiveCar);
  3013.                 }
  3014.                 case 21:
  3015.                 {
  3016.                     houseVehicle[houseIDReceiveCar][vehicleModel] = 521;
  3017.                     houseVehicle[houseIDReceiveCar][vehiclePrice] = 60000;
  3018.                     CreateHouseVehicleBought(playerid, houseIDReceiveCar);
  3019.                 }
  3020.                 case 22:
  3021.                 {
  3022.                     houseVehicle[houseIDReceiveCar][vehicleModel] = 463;
  3023.                     houseVehicle[houseIDReceiveCar][vehiclePrice] = 80000;
  3024.                     CreateHouseVehicleBought(playerid, houseIDReceiveCar);
  3025.                 }
  3026.                 case 23:
  3027.                 {
  3028.                     houseVehicle[houseIDReceiveCar][vehicleModel] = 522;
  3029.                     houseVehicle[houseIDReceiveCar][vehiclePrice] = 150000;
  3030.                     CreateHouseVehicleBought(playerid, houseIDReceiveCar);
  3031.                 }
  3032.             }
  3033.         }
  3034.  
  3035.         case DIALOG_CHANGE_PLATE:
  3036.         {
  3037.             if(!response)
  3038.                 return ShowHouseVehicleMenu(playerid);
  3039.  
  3040.             if(!strlen(inputtext) || strlen(inputtext) > 8)
  3041.             {
  3042.                 GetPlayerPos(playerid, X, Y, Z);
  3043.                 PlayerPlaySound(playerid, 1085, X, Y, Z);
  3044.                 SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Você não digitou nada ou digitou mais do que 8 caracteres!");
  3045.  
  3046.                 ShowPlayerDialog(playerid, DIALOG_CHANGE_PLATE, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu alterar a placa do seu carro.", "{FFFFFF}Digite a nova placa.\n{FFFFFF}O número máximo de caracteres é 8!", "Alterar", "Voltar");
  3047.                 return 1;
  3048.             }
  3049.  
  3050.             new
  3051.                 housePath[200],
  3052.                 plate[9],
  3053.                 ownerFile[200],
  3054.                 logString[128];
  3055.  
  3056.             GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  3057.  
  3058.             format(ownerFile, sizeof ownerFile, "LHouse/Donos/%s.txt", playerName);
  3059.  
  3060.             new
  3061.                 house = DOF2_GetInt(ownerFile, "houseID");
  3062.  
  3063.             format(housePath, sizeof housePath, "LHouse/Casas/Casa %d.txt", house);
  3064.             format(plate, sizeof plate, "%s", inputtext);
  3065.  
  3066.             houseVehicle[house][vehiclePlate] = plate;
  3067.  
  3068.             DestroyVehicle(houseVehicle[house][vehicleHouse]);
  3069.             houseVehicle[house][vehicleHouse] = CreateVehicle(houseVehicle[house][vehicleModel], houseVehicle[house][vehicleX], houseVehicle[house][vehicleY], houseVehicle[house][vehicleZ], houseVehicle[house][vehicleAngle], houseVehicle[house][vehicleColor1], houseVehicle[house][vehicleColor2], houseVehicle[house][vehicleRespawnTime]);
  3070.             SetVehicleNumberPlate(houseVehicle[house][vehicleHouse], plate);
  3071.  
  3072.             DOF2_SetString(housePath, "Placa", houseVehicle[house][vehiclePlate], "Veículo");
  3073.             DOF2_SaveFile();
  3074.  
  3075.             PlayerTextDrawShow(playerid, vehicleModified[playerid]);
  3076.  
  3077.             SetTimerEx("HideTextdraws", 2000, false, "i", playerid);
  3078.  
  3079.             format(logString, sizeof logString, "O jogador %s[%d], mudou a placa do carro da casa %d para %s.", playerName, playerid, house, plate);
  3080.             WriteLog(LOG_VEHICLES, logString);
  3081.  
  3082.             return 1;
  3083.         }
  3084.         case DIALOG_CAR_COLOR_1:
  3085.         {
  3086.             if(!response)
  3087.                 return ShowHouseVehicleMenu(playerid);
  3088.  
  3089.             if (!strval(inputtext))
  3090.             {
  3091.                 SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Utilize somente números.");
  3092.                 ShowPlayerDialog(playerid, DIALOG_CAR_COLOR_1, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu mudar a cor do seu carro.", "{FFFFFF}Insira a cor 1 do carro.\n{FFFFFF}Utilize somente números de 0 a 255!", "Continuar", "Voltar");
  3093.                 return 1;
  3094.             }
  3095.  
  3096.             else if (!strlen(inputtext))
  3097.             {
  3098.                 SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Nâo deixe o campo vazio.");
  3099.                 ShowPlayerDialog(playerid, DIALOG_CAR_COLOR_1, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu mudar a cor do seu carro.", "{FFFFFF}Insira a cor 1 do carro.\n{FFFFFF}Utilize somente números de 0 a 255!", "Continuar", "Voltar");
  3100.                 return 1;
  3101.             }
  3102.  
  3103.             else if (0 > strval(inputtext) || strval(inputtext) > 255)
  3104.             {
  3105.                 SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Use somente IDs entre 0 e 255.");
  3106.                 ShowPlayerDialog(playerid, DIALOG_CAR_COLOR_1, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu mudar a cor do seu carro.", "{FFFFFF}Insira a cor 1 do carro.\n{FFFFFF}Utilize somente números de 0 a 255!", "Continuar", "Voltar");
  3107.                 return 1;
  3108.             }
  3109.  
  3110.             globalColor1 = strval(inputtext);
  3111.  
  3112.             ShowPlayerDialog(playerid, DIALOG_CAR_COLOR_2, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu mudar a cor do seu carro.", "{FFFFFF}Agora insira a cor 2 do carro.\n{FFFFFF}Utilize somente números de 0 a 255!", "Continuar", "Voltar");
  3113.         }
  3114.         case DIALOG_CAR_COLOR_2:
  3115.         {
  3116.             if(!response)
  3117.             {
  3118.                 ShowPlayerDialog(playerid, DIALOG_CAR_COLOR_1, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu mudar a cor do seu carro.", "{FFFFFF}Insira a cor 1 do carro.\n{FFFFFF}Utilize somente números de 0 a 255!", "Continuar", "Voltar");
  3119.                 return 1;
  3120.             }
  3121.  
  3122.             if (!strval(inputtext))
  3123.             {
  3124.                 SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Utilize somente números.");
  3125.                 ShowPlayerDialog(playerid, DIALOG_CAR_COLOR_2, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu mudar a cor do seu carro.", "{FFFFFF}Agora insira a cor 2 do carro.\n{FFFFFF}Utilize somente números de 0 a 255!", "Continuar", "Voltar");
  3126.                 return 1;
  3127.             }
  3128.  
  3129.             else if (!strlen(inputtext))
  3130.             {
  3131.                 SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Nâo deixe o campo vazio.");
  3132.                 ShowPlayerDialog(playerid, DIALOG_CAR_COLOR_2, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu mudar a cor do seu carro.", "{FFFFFF}Agora insira a cor 2 do carro.\n{FFFFFF}Utilize somente números de 0 a 255!", "Continuar", "Voltar");
  3133.                 return 1;
  3134.             }
  3135.  
  3136.             else if (0 > strval(inputtext) || strval(inputtext) > 255)
  3137.             {
  3138.                 SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Use somente IDs entre 0 e 255.");
  3139.                 ShowPlayerDialog(playerid, DIALOG_CAR_COLOR_2, DIALOG_STYLE_INPUT, "{00F2FC}Você escolheu mudar a cor do seu carro.", "{FFFFFF}Agora insira a cor 2 do carro.\n{FFFFFF}Utilize somente números de 0 a 255!", "Continuar", "Voltar");
  3140.                 return 1;
  3141.             }
  3142.  
  3143.             globalColor2 = strval(inputtext);
  3144.  
  3145.             new
  3146.                 ownerFile[200];
  3147.  
  3148.             GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  3149.  
  3150.             format(ownerFile, sizeof ownerFile, "LHouse/Donos/%s.txt", playerName);
  3151.  
  3152.             new
  3153.                 house = DOF2_GetInt(ownerFile, "houseID");
  3154.  
  3155.             ChangeHouseVehicleColor(house, globalColor1, globalColor2);
  3156.  
  3157.             new
  3158.                 logString[128];
  3159.  
  3160.             format(logString, sizeof logString, "O jogador %s[%d], alterou a cor do carro da casa %d.", playerName, playerid, house);
  3161.             WriteLog(LOG_VEHICLES, logString);
  3162.  
  3163.             SendClientMessage(playerid, -1, "[{FFEC00}LHouse{FFFFFF}] Cores atualizadas com sucesso!");
  3164.             PlayerTextDrawShow(playerid, vehicleModified[playerid]);
  3165.  
  3166.             SetTimerEx("HideTextdraws", 2000, false, "i", playerid);
  3167.         }
  3168.         case DIALOG_CAR_MODELS_CHANGE:
  3169.         {
  3170.             if(!response)
  3171.                 return TogglePlayerControllable(playerid, 1);
  3172.  
  3173.             new
  3174.                 filePath[200],
  3175.                 ownerFile[200];
  3176.  
  3177.             GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  3178.  
  3179.             format(ownerFile, sizeof ownerFile, "LHouse/Donos/%s.txt", playerName);
  3180.  
  3181.             new
  3182.                 house = DOF2_GetInt(ownerFile, "houseID");
  3183.  
  3184.             format(filePath, sizeof filePath, "LHouse/Casas/Casa %d.txt", house);
  3185.  
  3186.             switch(listitem)
  3187.             {
  3188.                 case 0:
  3189.                 {
  3190.                     if(GetPlayerMoney(playerid) < 19000)
  3191.                     {
  3192.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3193.                         TogglePlayerControllable(playerid, 1);
  3194.                         return 1;
  3195.                     }
  3196.  
  3197.                     ChangeHouseVehicleModel(house, 475, 19000, 0);
  3198.                     GivePlayerMoney(playerid, -19000);
  3199.                 }
  3200.                 case 1:
  3201.                 {
  3202.                     if(GetPlayerMoney(playerid) < 25000)
  3203.                     {
  3204.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3205.                         TogglePlayerControllable(playerid, 1);
  3206.                         return 1;
  3207.                     }
  3208.  
  3209.                     ChangeHouseVehicleModel(house, 496, 25000, 1);
  3210.                     GivePlayerMoney(playerid, -25000);
  3211.                 }
  3212.                 case 2:
  3213.                 {
  3214.                     if(GetPlayerMoney(playerid) < 26000)
  3215.                     {
  3216.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3217.                         TogglePlayerControllable(playerid, 1);
  3218.                         return 1;
  3219.                     }
  3220.  
  3221.                     ChangeHouseVehicleModel(house, 560, 26000, 1);
  3222.                     GivePlayerMoney(playerid, -26000);
  3223.                 }
  3224.                 case 3:
  3225.                 {
  3226.                     if(GetPlayerMoney(playerid) < 27000)
  3227.                     {
  3228.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3229.                         TogglePlayerControllable(playerid, 1);
  3230.                         return 1;
  3231.                     }
  3232.  
  3233.                     ChangeHouseVehicleModel(house, 401, 27000, 1);
  3234.                     GivePlayerMoney(playerid, -27000);
  3235.                 }
  3236.                 case 4:
  3237.                 {
  3238.                     if(GetPlayerMoney(playerid) < 28000)
  3239.                     {
  3240.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3241.                         TogglePlayerControllable(playerid, 1);
  3242.                         return 1;
  3243.                     }
  3244.  
  3245.                     ChangeHouseVehicleModel(house, 404, 28000, 1);
  3246.                     GivePlayerMoney(playerid, -28000);
  3247.                 }
  3248.                 case 5:
  3249.                 {
  3250.                     if(GetPlayerMoney(playerid) < 29000)
  3251.                     {
  3252.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3253.                         TogglePlayerControllable(playerid, 1);
  3254.                         return 1;
  3255.                     }
  3256.  
  3257.                     ChangeHouseVehicleModel(house, 559, 29000, 1);
  3258.                     GivePlayerMoney(playerid, -29000);
  3259.                 }
  3260.                 case 6:
  3261.                 {
  3262.                     if(GetPlayerMoney(playerid) < 32000)
  3263.                     {
  3264.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3265.                         TogglePlayerControllable(playerid, 1);
  3266.                         return 1;
  3267.                     }
  3268.  
  3269.                     ChangeHouseVehicleModel(house, 402, 32000, 1);
  3270.                     GivePlayerMoney(playerid, -32000);
  3271.                 }
  3272.                 case 7:
  3273.                 {
  3274.                     if(GetPlayerMoney(playerid) < 35000)
  3275.                     {
  3276.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3277.                         TogglePlayerControllable(playerid, 1);
  3278.                         return 1;
  3279.                     }
  3280.  
  3281.                     ChangeHouseVehicleModel(house, 562, 35000, 1);
  3282.                     GivePlayerMoney(playerid, -35000);
  3283.                 }
  3284.                 case 8:
  3285.                 {
  3286.                     if(GetPlayerMoney(playerid) < 38000)
  3287.                     {
  3288.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3289.                         TogglePlayerControllable(playerid, 1);
  3290.                         return 1;
  3291.                     }
  3292.  
  3293.                     ChangeHouseVehicleModel(house, 589, 38000, 1);
  3294.                     GivePlayerMoney(playerid, -38000);
  3295.                 }
  3296.                 case 9:
  3297.                 {
  3298.                     if(GetPlayerMoney(playerid) < 42000)
  3299.                     {
  3300.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3301.                         TogglePlayerControllable(playerid, 1);
  3302.                         return 1;
  3303.                     }
  3304.  
  3305.                     ChangeHouseVehicleModel(house, 603, 42000, 1);
  3306.                     GivePlayerMoney(playerid, -42000);
  3307.                 }
  3308.                 case 10:
  3309.                 {
  3310.                     if(GetPlayerMoney(playerid) < 65000)
  3311.                     {
  3312.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3313.                         TogglePlayerControllable(playerid, 1);
  3314.                         return 1;
  3315.                     }
  3316.  
  3317.                     ChangeHouseVehicleModel(house, 400, 65000, 1);
  3318.                     GivePlayerMoney(playerid, -65000);
  3319.                 }
  3320.                 case 11:
  3321.                 {
  3322.                     if(GetPlayerMoney(playerid) < 131000)
  3323.                     {
  3324.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3325.                         TogglePlayerControllable(playerid, 1);
  3326.                         return 1;
  3327.                     }
  3328.  
  3329.                     ChangeHouseVehicleModel(house, 429, 131000, 1);
  3330.                     GivePlayerMoney(playerid, -131000);
  3331.                 }
  3332.                 case 12:
  3333.                 {
  3334.                     if(GetPlayerMoney(playerid) < 145000)
  3335.                     {
  3336.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3337.                         TogglePlayerControllable(playerid, 1);
  3338.                         return 1;
  3339.                     }
  3340.  
  3341.                     ChangeHouseVehicleModel(house, 415, 145000, 1);
  3342.                     GivePlayerMoney(playerid, -145000);
  3343.                 }
  3344.                 case 13:
  3345.                 {
  3346.                     if(GetPlayerMoney(playerid) < 150000)
  3347.                     {
  3348.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3349.                         TogglePlayerControllable(playerid, 1);
  3350.                         return 1;
  3351.                     }
  3352.  
  3353.                     ChangeHouseVehicleModel(house, 411, 150000, 1);
  3354.                     GivePlayerMoney(playerid, -150000);
  3355.                 }
  3356.                 case 14:
  3357.                 {
  3358.                     if(GetPlayerMoney(playerid) < 230000)
  3359.                     {
  3360.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3361.                         TogglePlayerControllable(playerid, 1);
  3362.                         return 1;
  3363.                     }
  3364.  
  3365.                     ChangeHouseVehicleModel(house, 409, 230000, 1);
  3366.                     GivePlayerMoney(playerid, -230000);
  3367.                 }
  3368.                 case 15:
  3369.                 {
  3370.                     if(GetPlayerMoney(playerid) < 250000)
  3371.                     {
  3372.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3373.                         TogglePlayerControllable(playerid, 1);
  3374.                         return 1;
  3375.                     }
  3376.  
  3377.                     ChangeHouseVehicleModel(house, 477, 250000, 1);
  3378.                     GivePlayerMoney(playerid, -250000);
  3379.                 }
  3380.                 case 16:
  3381.                 {
  3382.                     if(GetPlayerMoney(playerid) < 500000)
  3383.                     {
  3384.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3385.                         TogglePlayerControllable(playerid, 1);
  3386.                         return 1;
  3387.                     }
  3388.  
  3389.                     ChangeHouseVehicleModel(house, 506, 500000, 1);
  3390.                     GivePlayerMoney(playerid, -500000);
  3391.                 }
  3392.                 case 17:
  3393.                 {
  3394.                     if(GetPlayerMoney(playerid) < 700000)
  3395.                     {
  3396.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3397.                         TogglePlayerControllable(playerid, 1);
  3398.                         return 1;
  3399.                     }
  3400.  
  3401.                     ChangeHouseVehicleModel(house, 541, 700000, 1);
  3402.                     GivePlayerMoney(playerid, -700000);
  3403.                 }
  3404.                 case 18:
  3405.                 {
  3406.                     if(GetPlayerMoney(playerid) < 850000)
  3407.                     {
  3408.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3409.                         TogglePlayerControllable(playerid, 1);
  3410.                         return 1;
  3411.                     }
  3412.  
  3413.                     ChangeHouseVehicleModel(house, 451, 850000, 1);
  3414.                     GivePlayerMoney(playerid, -850000);
  3415.                 }
  3416.                 case 19:
  3417.                 {
  3418.                     if(GetPlayerMoney(playerid) < 40000)
  3419.                     {
  3420.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3421.                         TogglePlayerControllable(playerid, 1);
  3422.                         return 1;
  3423.                     }
  3424.  
  3425.                     ChangeHouseVehicleModel(house, 468, 40000, 1);
  3426.                     GivePlayerMoney(playerid, -40000);
  3427.                 }
  3428.                 case 20:
  3429.                 {
  3430.                     if(GetPlayerMoney(playerid) < 55000)
  3431.                     {
  3432.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3433.                         TogglePlayerControllable(playerid, 1);
  3434.                         return 1;
  3435.                     }
  3436.  
  3437.                     ChangeHouseVehicleModel(house, 461, 55000, 1);
  3438.                     GivePlayerMoney(playerid, -55000);
  3439.                 }
  3440.                 case 21:
  3441.                 {
  3442.                     if(GetPlayerMoney(playerid) < 60000)
  3443.                     {
  3444.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3445.                         TogglePlayerControllable(playerid, 1);
  3446.                         return 1;
  3447.                     }
  3448.  
  3449.                     ChangeHouseVehicleModel(house, 521, 60000, 1);
  3450.                     GivePlayerMoney(playerid, -60000);
  3451.                 }
  3452.                 case 22:
  3453.                 {
  3454.                     if(GetPlayerMoney(playerid) < 80000)
  3455.                     {
  3456.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3457.                         TogglePlayerControllable(playerid, 1);
  3458.                         return 1;
  3459.                     }
  3460.  
  3461.                     ChangeHouseVehicleModel(house, 463, 80000, 1);
  3462.                     GivePlayerMoney(playerid, -80000);
  3463.                 }
  3464.                 case 23:
  3465.                 {
  3466.                     if(GetPlayerMoney(playerid) < 150000)
  3467.                     {
  3468.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3469.                         TogglePlayerControllable(playerid, 1);
  3470.                         return 1;
  3471.                     }
  3472.  
  3473.                     ChangeHouseVehicleModel(house, 522, 150000, 1);
  3474.                     GivePlayerMoney(playerid, -150000);
  3475.                 }
  3476.             }
  3477.         }
  3478.         case DIALOG_VEHICLES_MODELS:
  3479.         {
  3480.             if(!response)
  3481.             {
  3482.                 TogglePlayerControllable(playerid, 1);
  3483.                 return 1;
  3484.             }
  3485.             new filePath[200];
  3486.             GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  3487.             new ownerFile[200];
  3488.             format(ownerFile, sizeof ownerFile, "LHouse/Donos/%s.txt", playerName);
  3489.             new house = DOF2_GetInt(ownerFile, "houseID");
  3490.             format(filePath, sizeof filePath, "LHouse/Casas/Casa %d.txt", house);
  3491.             switch(listitem)
  3492.             {
  3493.                 case 0:
  3494.                 {
  3495.                     if(GetPlayerMoney(playerid) < 19000)
  3496.                     {
  3497.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3498.                         TogglePlayerControllable(playerid, 1);
  3499.                         return 1;
  3500.                     }
  3501.  
  3502.                     ChangeHouseVehicleModel(house, 475, 19000, 0);
  3503.                     GivePlayerMoney(playerid, -19000);
  3504.                     HouseVehicleDelivery(playerid);
  3505.                 }
  3506.                 case 1:
  3507.                 {
  3508.                     if(GetPlayerMoney(playerid) < 25000)
  3509.                     {
  3510.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3511.                         TogglePlayerControllable(playerid, 1);
  3512.                         return 1;
  3513.                     }
  3514.  
  3515.                     ChangeHouseVehicleModel(house, 496, 25000, 0);
  3516.                     GivePlayerMoney(playerid, -25000);
  3517.                     HouseVehicleDelivery(playerid);
  3518.                 }
  3519.                 case 2:
  3520.                 {
  3521.                     if(GetPlayerMoney(playerid) < 26000)
  3522.                     {
  3523.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3524.                         TogglePlayerControllable(playerid, 1);
  3525.                         return 1;
  3526.                     }
  3527.  
  3528.                     ChangeHouseVehicleModel(house, 560, 26000, 0);
  3529.                     GivePlayerMoney(playerid, -26000);
  3530.                     HouseVehicleDelivery(playerid);
  3531.                 }
  3532.                 case 3:
  3533.                 {
  3534.                     if(GetPlayerMoney(playerid) < 27000)
  3535.                     {
  3536.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3537.                         TogglePlayerControllable(playerid, 1);
  3538.                         return 1;
  3539.                     }
  3540.  
  3541.                     ChangeHouseVehicleModel(house, 401, 27000, 0);
  3542.                     GivePlayerMoney(playerid, -27000);
  3543.                     HouseVehicleDelivery(playerid);
  3544.                 }
  3545.                 case 4:
  3546.                 {
  3547.                     if(GetPlayerMoney(playerid) < 28000)
  3548.                     {
  3549.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3550.                         TogglePlayerControllable(playerid, 1);
  3551.                         return 1;
  3552.                     }
  3553.  
  3554.                     ChangeHouseVehicleModel(house, 404, 28000, 0);
  3555.                     GivePlayerMoney(playerid, -28000);
  3556.                     HouseVehicleDelivery(playerid);
  3557.                 }
  3558.                 case 5:
  3559.                 {
  3560.                     if(GetPlayerMoney(playerid) < 29000)
  3561.                     {
  3562.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3563.                         TogglePlayerControllable(playerid, 1);
  3564.                         return 1;
  3565.                     }
  3566.  
  3567.                     ChangeHouseVehicleModel(house, 559, 28000, 0);
  3568.                     GivePlayerMoney(playerid, -29000);
  3569.                     HouseVehicleDelivery(playerid);
  3570.                 }
  3571.                 case 6:
  3572.                 {
  3573.                     if(GetPlayerMoney(playerid) < 32000)
  3574.                     {
  3575.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3576.                         TogglePlayerControllable(playerid, 1);
  3577.                         return 1;
  3578.                     }
  3579.  
  3580.                     ChangeHouseVehicleModel(house, 402, 32000, 0);
  3581.                     GivePlayerMoney(playerid, -32000);
  3582.                     HouseVehicleDelivery(playerid);
  3583.                 }
  3584.                 case 7:
  3585.                 {
  3586.                     if(GetPlayerMoney(playerid) < 35000)
  3587.                     {
  3588.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3589.                         TogglePlayerControllable(playerid, 1);
  3590.                         return 1;
  3591.                     }
  3592.  
  3593.                     ChangeHouseVehicleModel(house, 562, 35000, 0);
  3594.                     GivePlayerMoney(playerid, -35000);
  3595.                     HouseVehicleDelivery(playerid);
  3596.                 }
  3597.                 case 8:
  3598.                 {
  3599.                     if(GetPlayerMoney(playerid) < 38000)
  3600.                     {
  3601.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3602.                         TogglePlayerControllable(playerid, 1);
  3603.                         return 1;
  3604.                     }
  3605.  
  3606.                     ChangeHouseVehicleModel(house, 589, 38000, 0);
  3607.                     GivePlayerMoney(playerid, -38000);
  3608.                     HouseVehicleDelivery(playerid);
  3609.                 }
  3610.                 case 9:
  3611.                 {
  3612.                     if(GetPlayerMoney(playerid) < 42000)
  3613.                     {
  3614.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3615.                         TogglePlayerControllable(playerid, 1);
  3616.                         return 1;
  3617.                     }
  3618.  
  3619.                     ChangeHouseVehicleModel(house, 603, 42000, 0);
  3620.                     GivePlayerMoney(playerid, -42000);
  3621.                     HouseVehicleDelivery(playerid);
  3622.                 }
  3623.                 case 10:
  3624.                 {
  3625.                     if(GetPlayerMoney(playerid) < 65000)
  3626.                     {
  3627.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3628.                         TogglePlayerControllable(playerid, 1);
  3629.                         return 1;
  3630.                     }
  3631.  
  3632.                     ChangeHouseVehicleModel(house, 400, 65000, 0);
  3633.                     GivePlayerMoney(playerid, -65000);
  3634.                     HouseVehicleDelivery(playerid);
  3635.                 }
  3636.                 case 11:
  3637.                 {
  3638.                     if(GetPlayerMoney(playerid) < 131000)
  3639.                     {
  3640.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3641.                         TogglePlayerControllable(playerid, 1);
  3642.                         return 1;
  3643.                     }
  3644.  
  3645.                     ChangeHouseVehicleModel(house, 429, 131000, 0);
  3646.                     GivePlayerMoney(playerid, -131000);
  3647.                     HouseVehicleDelivery(playerid);
  3648.                 }
  3649.                 case 12:
  3650.                 {
  3651.                     if(GetPlayerMoney(playerid) < 145000)
  3652.                     {
  3653.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3654.                         TogglePlayerControllable(playerid, 1);
  3655.                         return 1;
  3656.                     }
  3657.  
  3658.                     ChangeHouseVehicleModel(house, 415, 145000, 0);
  3659.                     GivePlayerMoney(playerid, -145000);
  3660.                     HouseVehicleDelivery(playerid);
  3661.                 }
  3662.                 case 13:
  3663.                 {
  3664.                     if(GetPlayerMoney(playerid) < 150000)
  3665.                     {
  3666.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3667.                         TogglePlayerControllable(playerid, 1);
  3668.                         return 1;
  3669.                     }
  3670.  
  3671.                     ChangeHouseVehicleModel(house, 411, 150000, 0);
  3672.                     GivePlayerMoney(playerid, -145000);
  3673.                     HouseVehicleDelivery(playerid);
  3674.                 }
  3675.                 case 14:
  3676.                 {
  3677.                     if(GetPlayerMoney(playerid) < 230000)
  3678.                     {
  3679.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3680.                         TogglePlayerControllable(playerid, 1);
  3681.                         return 1;
  3682.                     }
  3683.  
  3684.                     ChangeHouseVehicleModel(house, 409, 230000, 0);
  3685.                     GivePlayerMoney(playerid, -230000);
  3686.                     HouseVehicleDelivery(playerid);
  3687.                 }
  3688.                 case 15:
  3689.                 {
  3690.                     if(GetPlayerMoney(playerid) < 250000)
  3691.                     {
  3692.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3693.                         TogglePlayerControllable(playerid, 1);
  3694.                         return 1;
  3695.                     }
  3696.  
  3697.                     ChangeHouseVehicleModel(house, 477, 250000, 0);
  3698.                     GivePlayerMoney(playerid, -250000);
  3699.                     HouseVehicleDelivery(playerid);
  3700.                 }
  3701.                 case 16:
  3702.                 {
  3703.                     if(GetPlayerMoney(playerid) < 500000)
  3704.                     {
  3705.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3706.                         TogglePlayerControllable(playerid, 1);
  3707.                         return 1;
  3708.                     }
  3709.  
  3710.                     ChangeHouseVehicleModel(house, 506, 500000, 0);
  3711.                     GivePlayerMoney(playerid, -500000);
  3712.                     HouseVehicleDelivery(playerid);
  3713.                 }
  3714.                 case 17:
  3715.                 {
  3716.                     if(GetPlayerMoney(playerid) < 700000)
  3717.                     {
  3718.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3719.                         TogglePlayerControllable(playerid, 1);
  3720.                         return 1;
  3721.                     }
  3722.  
  3723.                     ChangeHouseVehicleModel(house, 541, 700000, 0);
  3724.                     GivePlayerMoney(playerid, -700000);
  3725.                     HouseVehicleDelivery(playerid);
  3726.                 }
  3727.                 case 18:
  3728.                 {
  3729.                     if(GetPlayerMoney(playerid) < 850000)
  3730.                     {
  3731.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3732.                         TogglePlayerControllable(playerid, 1);
  3733.                         return 1;
  3734.                     }
  3735.  
  3736.                     ChangeHouseVehicleModel(house, 451, 850000, 0);
  3737.                     GivePlayerMoney(playerid, -850000);
  3738.                     HouseVehicleDelivery(playerid);
  3739.                 }
  3740.                 case 19:
  3741.                 {
  3742.                     if(GetPlayerMoney(playerid) < 40000)
  3743.                     {
  3744.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3745.                         TogglePlayerControllable(playerid, 1);
  3746.                         return 1;
  3747.                     }
  3748.  
  3749.                     ChangeHouseVehicleModel(house, 468, 40000, 0);
  3750.                     GivePlayerMoney(playerid, -40000);
  3751.                     HouseVehicleDelivery(playerid);
  3752.                 }
  3753.                 case 20:
  3754.                 {
  3755.                     if(GetPlayerMoney(playerid) < 55000)
  3756.                     {
  3757.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3758.                         TogglePlayerControllable(playerid, 1);
  3759.                         return 1;
  3760.                     }
  3761.  
  3762.                     ChangeHouseVehicleModel(house, 461, 55000, 0);
  3763.                     GivePlayerMoney(playerid, -55000);
  3764.                     HouseVehicleDelivery(playerid);
  3765.                 }
  3766.                 case 21:
  3767.                 {
  3768.                     if(GetPlayerMoney(playerid) < 60000)
  3769.                     {
  3770.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3771.                         TogglePlayerControllable(playerid, 1);
  3772.                         return 1;
  3773.                     }
  3774.  
  3775.                     ChangeHouseVehicleModel(house, 521, 60000, 0);
  3776.                     GivePlayerMoney(playerid, -60000);
  3777.                     HouseVehicleDelivery(playerid);
  3778.                 }
  3779.                 case 22:
  3780.                 {
  3781.                     if(GetPlayerMoney(playerid) < 80000)
  3782.                     {
  3783.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3784.                         TogglePlayerControllable(playerid, 1);
  3785.                         return 1;
  3786.                     }
  3787.  
  3788.                     ChangeHouseVehicleModel(house, 463, 80000, 0);
  3789.                     GivePlayerMoney(playerid, -80000);
  3790.                     HouseVehicleDelivery(playerid);
  3791.                 }
  3792.                 case 23:
  3793.                 {
  3794.                     if(GetPlayerMoney(playerid) < 150000)
  3795.                     {
  3796.                         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro insuficiente.");
  3797.                         TogglePlayerControllable(playerid, 1);
  3798.                         return 1;
  3799.                     }
  3800.  
  3801.                     ChangeHouseVehicleModel(house, 522, 150000, 0);
  3802.                     GivePlayerMoney(playerid, -150000);
  3803.                     HouseVehicleDelivery(playerid);
  3804.                 }
  3805.             }
  3806.         }
  3807.         case DIALOG_SELL_CAR:
  3808.         {
  3809.             if(!response)
  3810.                 return ShowHouseVehicleMenu(playerid);
  3811.  
  3812.             new
  3813.                 string[200],
  3814.                 filePath[200],
  3815.                 ownerFile[200],
  3816.                 logString[128];
  3817.  
  3818.             GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  3819.  
  3820.             format(ownerFile, sizeof ownerFile, "LHouse/Donos/%s.txt", playerName);
  3821.             new
  3822.                 house = DOF2_GetInt(ownerFile, "houseID");
  3823.  
  3824.             format(filePath, sizeof filePath, "LHouse/Casas/Casa %d.txt", house);
  3825.  
  3826.             DestroyVehicle(houseVehicle[house][vehicleHouse]);
  3827.             DestroyVehicle(vehicleHouseCarDefined[house]);
  3828.  
  3829.             houseVehicle[house][vehicleHouse] = 0;
  3830.             houseVehicle[house][vehicleModel] = 0;
  3831.             houseVehicle[house][vehicleX] = 0;
  3832.             houseVehicle[house][vehicleY] = 0;
  3833.             houseVehicle[house][vehicleZ] = 0;
  3834.             houseVehicle[house][vehicleColor1] = 0;
  3835.             houseVehicle[house][vehicleColor2] = 0;
  3836.  
  3837.             DOF2_SetInt(filePath, "Carro", 0, "Veículo");
  3838.             DOF2_SetInt(filePath, "Modelo do Carro", 0, "Veículo");
  3839.             DOF2_SetFloat(filePath, "Coordenada do Veículo X", 0.0, "Veículo");
  3840.             DOF2_SetFloat(filePath, "Coordenada do Veículo Y", 0.0, "Veículo");
  3841.             DOF2_SetFloat(filePath, "Coordenada do Veículo Z", 0.0, "Veículo");
  3842.             DOF2_SetFloat(filePath, "Angulo", 0.0, "Veículo");
  3843.             DOF2_SetInt(filePath, "Cor 1", 0, "Veículo");
  3844.             DOF2_SetInt(filePath, "Cor 2", 0, "Veículo");
  3845.             DOF2_SetInt(filePath, "Status", 0, "Veículo");
  3846.             DOF2_SetString(filePath, "Placa", "LHouse S", "Veículo");
  3847.             DOF2_SaveFile();
  3848.  
  3849.             carSell = houseVehicle[house][vehiclePrice]/2;
  3850.             GivePlayerMoney(playerid, carSell);
  3851.  
  3852.             format(string, sizeof string, "[{FFEC00}LHouse{FFFFFF}] Você vendeu seu carro por: {00EAFA}$%d", carSell);
  3853.             SendClientMessage(playerid, -1, string);
  3854.  
  3855.             PlayerTextDrawShow(playerid, vehicleSold[playerid]);
  3856.  
  3857.             format(logString, sizeof logString, "O jogador %s[%d], vendeu o carro da casa %d.", playerName, playerid, house);
  3858.             WriteLog(LOG_VEHICLES, logString);
  3859.             SetTimerEx("HideTextdraws", 2000, false, "i", playerid);
  3860.         }
  3861.         case DIALOG_HOUSE_STATUS:
  3862.         {
  3863.             new
  3864.                 filePath[200],
  3865.                 house = GetProxHouse(playerid);
  3866.  
  3867.             format(filePath, sizeof filePath, "LHouse/Casas/Casa %d.txt", house);
  3868.  
  3869.             GetPlayerPos(playerid, X, Y, Z);
  3870.             GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  3871.  
  3872.             if(!response)
  3873.             {
  3874.                 if(houseData[house][houseStatus] == 0)
  3875.                 {
  3876.                     SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}A casa já está destrancada!");
  3877.                     PlayerPlaySound(playerid, 1085, X, Y, Z);
  3878.                     return 1;
  3879.                 }
  3880.  
  3881.                 houseData[house][houseStatus] = 0;
  3882.  
  3883.                 DOF2_SetInt(filePath, "Status", 0, "Informações");
  3884.                 DOF2_SaveFile();
  3885.  
  3886.                 PlayerTextDrawShow(playerid, houseUnlocked[playerid]);
  3887.                 SetTimerEx("HideTextdraws", 2000, false, "i", playerid);
  3888.  
  3889.                 new
  3890.                     logString[128];
  3891.  
  3892.                 format(logString, sizeof logString, "O jogador %s[%d], destrancou a casa %d.", playerName, playerid, house);
  3893.                 WriteLog(LOG_HOUSES, logString);
  3894.                 Update3DText(house);
  3895.             }
  3896.             else
  3897.             {
  3898.                 if(houseData[house][houseStatus] == 1)
  3899.                 {
  3900.                     PlayerPlaySound(playerid, 1085, X, Y, Z);
  3901.                     SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}A casa já está trancada!");
  3902.                     return 1;
  3903.                 }
  3904.  
  3905.                 houseData[house][houseStatus] = 1;
  3906.  
  3907.                 DOF2_SetInt(filePath, "Status", 1, "Informações");
  3908.                 DOF2_SaveFile();
  3909.  
  3910.                 PlayerTextDrawShow(playerid, houseLocked[playerid]);
  3911.                 SetTimerEx("HideTextdraws", 2000, false, "i", playerid);
  3912.  
  3913.                 new
  3914.                     logString[128];
  3915.  
  3916.                 format(logString, sizeof logString, "O jogador %s[%d], destrancou a casa %d.", playerName, playerid, house);
  3917.                 WriteLog(LOG_HOUSES, logString);
  3918.                 Update3DText(house);
  3919.             }
  3920.         }
  3921.         case DIALOG_SELL_HOUSE:
  3922.         {
  3923.             if(!response)
  3924.                 return ShowHouseMenu(playerid);
  3925.  
  3926.             new
  3927.                 housePath[200],
  3928.                 ownerFile[200],
  3929.                 tenantFile[200],
  3930.                 annMessage[128],
  3931.                 logString[128],
  3932.                 totalPrice;
  3933.  
  3934.             GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  3935.  
  3936.             format(ownerFile, sizeof ownerFile, "LHouse/Donos/%s.txt",playerName);
  3937.  
  3938.             new
  3939.                 house = DOF2_GetInt(ownerFile, "houseID");
  3940.  
  3941.             format(tenantFile, sizeof tenantFile, "LHouse/Locadores/%s.txt", houseData[house][houseTenant]);
  3942.             format(housePath, sizeof housePath, "LHouse/Casas/Casa %d.txt", house);
  3943.  
  3944.             totalPrice = houseData[house][housePrice]/2;
  3945.  
  3946.             format(annMessage, sizeof annMessage, "[{FFEC00}LHouse{FFFFFF}] Você vendeu sua casa por $%d", totalPrice);
  3947.             SendClientMessage(playerid, -1, annMessage);
  3948.  
  3949.             GivePlayerMoney(playerid, totalPrice);
  3950.  
  3951.             houseData[house][houseStatus] = DOF2_SetInt(housePath, "Status", 1, "Informações");
  3952.             format(houseData[house][houseOwner], 255, "Ninguem");
  3953.             format(houseData[house][houseTenant], 255, "Ninguem");
  3954.  
  3955.             DOF2_SetString(housePath, "Dono", "Ninguem", "Informações");
  3956.             DOF2_SetString(housePath, "Locador", "Ninguem", "Aluguel");
  3957.             DOF2_RemoveFile(ownerFile);
  3958.  
  3959.             if(DOF2_FileExists(tenantFile))
  3960.                 return DOF2_RemoveFile(tenantFile);
  3961.  
  3962.             DestroyDynamicPickup(housePickupIn[house]);
  3963.             DestroyDynamicMapIcon(houseMapIcon[house]);
  3964.  
  3965.             SetPlayerPos(playerid, houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ]);
  3966.             SetPlayerInterior(playerid, 0);
  3967.             SetPlayerVirtualWorld(playerid, 0);
  3968.  
  3969.             Update3DText(house);
  3970.             DOF2_SaveFile();
  3971.  
  3972.             houseMapIcon[house] = CreateDynamicMapIcon(houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ], 31, -1, -1, 0, -1, 100.0);
  3973.             housePickupIn[house] = CreateDynamicPickup(1273, 23, houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ]);
  3974.             PlayerTextDrawShow(playerid, houseSold[playerid]);
  3975.  
  3976.             format(logString, sizeof logString, "O jogador %s[%d], vendeu a casa %d.", playerName, playerid, house);
  3977.             WriteLog(LOG_HOUSES, logString);
  3978.             SetTimerEx("HideTextdraws", 2000, false, "i", playerid);
  3979.         }
  3980.     }
  3981.     return 0;
  3982. }
  3983.  
  3984. //================= [COMANDOS CASAS] ==================//
  3985. CMD:menucarro(playerid)
  3986. {
  3987.     GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  3988.  
  3989.     new
  3990.         Float: X, Float: Y, Float: Z,
  3991.         house,
  3992.         ownerFile[200];
  3993.  
  3994.     format(ownerFile, sizeof ownerFile, "LHouse/Donos/%s.txt", playerName);
  3995.  
  3996.     house = DOF2_GetInt(ownerFile, "houseID");
  3997.  
  3998.     if(!DOF2_FileExists(ownerFile))
  3999.     {
  4000.         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Você não tem casa!");
  4001.         PlayerPlaySound(playerid, 1085, X, Y, Z);
  4002.         return 1;
  4003.     }
  4004.  
  4005.     if(houseVehicle[house][vehicleModel] == 0)
  4006.     {
  4007.         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Sua casa não tem um veículo!");
  4008.         PlayerPlaySound(playerid, 1085, X, Y, Z);
  4009.         return 1;
  4010.     }
  4011.  
  4012.     new
  4013.         Float: vehiclePos[3];
  4014.  
  4015.     GetVehiclePos(houseVehicle[house][vehicleHouse], vehiclePos[0], vehiclePos[1], vehiclePos[2]);
  4016.  
  4017.     if(!IsPlayerInRangeOfPoint(playerid, 20, vehiclePos[0], vehiclePos[1], vehiclePos[2]))
  4018.     {
  4019.         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}O veículo está muito longe!");
  4020.         PlayerPlaySound(playerid, 1085, X, Y, Z);
  4021.         return 1;
  4022.     }
  4023.  
  4024.     ShowHouseVehicleMenu(playerid);
  4025.     return 1;
  4026. }
  4027.  
  4028. CMD:rebocarcarro(playerid)
  4029. {
  4030.     GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  4031.  
  4032.     new
  4033.         Float: X, Float: Y, Float: Z,
  4034.         house,
  4035.         ownerFile[200];
  4036.  
  4037.     format(ownerFile, sizeof ownerFile, "LHouse/Donos/%s.txt", playerName);
  4038.  
  4039.     house = DOF2_GetInt(ownerFile, "houseID");
  4040.  
  4041.     if(!DOF2_FileExists(ownerFile))
  4042.     {
  4043.         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Você não tem casa!");
  4044.         PlayerPlaySound(playerid, 1085, X, Y, Z);
  4045.         return 1;
  4046.     }
  4047.  
  4048.     if(houseVehicle[house][vehicleModel] == 0)
  4049.     {
  4050.         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Sua casa não tem um veículo!");
  4051.         PlayerPlaySound(playerid, 1085, X, Y, Z);
  4052.         return 1;
  4053.     }
  4054.  
  4055.     if(GetPlayerMoney(playerid) < houseVehicle[house][vehiclePrice]/20)
  4056.     {
  4057.         GetPlayerPos(playerid, X, Y, Z);
  4058.         PlayerPlaySound(playerid, 1085, X, Y, Z);
  4059.         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Dinheiro Insuficiente!");
  4060.         TogglePlayerControllable(playerid, 1);
  4061.  
  4062.         return 1;
  4063.     }
  4064.  
  4065.     new
  4066.         string[128];
  4067.  
  4068.     format(string, 128, "Você solicitou o reboque do seu veículo por $%d.", houseVehicle[house][vehiclePrice]/20);
  4069.  
  4070.     towRequired[house] = 1;
  4071.     SendClientMessage(playerid, -1, string);
  4072.     SendClientMessage(playerid, -1, "Ele será entregue na sua casa em até 3 minutos nas condições em que for encontrado");
  4073.     GivePlayerMoney(playerid, -houseVehicle[house][vehiclePrice]/20);
  4074.  
  4075.     new
  4076.         logString[128];
  4077.  
  4078.     format(logString, sizeof logString, "O jogador %s[%d], solicitou o reboque do carro da casa %d.", playerName, playerid, house);
  4079.     WriteLog(LOG_VEHICLES, logString);
  4080.  
  4081.     return 1;
  4082. }
  4083.  
  4084. CMD:estacionar(playerid)
  4085. {
  4086.     new
  4087.         Float: X, Float: Y, Float: Z;
  4088.  
  4089.     GetPlayerPos(playerid, X, Y, Z);
  4090.  
  4091.     if(!IsPlayerInAnyVehicle(playerid))
  4092.     {
  4093.         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Você não está em nenhum veículo!");
  4094.         PlayerPlaySound(playerid, 1085, X, Y, Z);
  4095.         return 1;
  4096.     }
  4097.  
  4098.     else if(carSet[playerid] == 0 && !houseCarSet[playerid] && houseCarSetPos[playerid] == 0)
  4099.         return false;
  4100.  
  4101.     TogglePlayerControllable(playerid, 1);
  4102.  
  4103.     new
  4104.         housePath[200],
  4105.         vehiclePath[200],
  4106.         house,
  4107.         vehiclePath2[200],
  4108.         vehicleid = GetPlayerVehicleID(playerid);
  4109.  
  4110.     GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  4111.  
  4112.     new
  4113.         ownerFile[200];
  4114.  
  4115.     format(ownerFile, sizeof ownerFile, "LHouse/Donos/%s.txt", playerName);
  4116.  
  4117.     house = DOF2_GetInt(ownerFile, "houseID");
  4118.  
  4119.     format(vehiclePath, sizeof vehiclePath, "LHouse/Casas/Casa %d.txt", house);
  4120.  
  4121.     if(vehicleid == carSetted[playerid])
  4122.     {
  4123.         if(carSet[playerid] == 1)
  4124.         {
  4125.             format(vehiclePath2, sizeof vehiclePath2, "LHouse/Casas/Casa %d.txt", houseIDReceiveCar);
  4126.  
  4127.             new
  4128.                 Float:PlayerFA;
  4129.  
  4130.             GetVehiclePos(carSetted[playerid], X, Y, Z);
  4131.             GetVehicleZAngle(carSetted[playerid], PlayerFA);
  4132.  
  4133.             carSet[playerid] = 0;
  4134.  
  4135.             new
  4136.                 stringCat[2500];
  4137.  
  4138.             strcat(stringCat, "Modelo {FB1300}475 \t{FCEC00}Sabre                      \n");
  4139.             strcat(stringCat, "Modelo {FB1300}496 \t{FCEC00}Blista                     \n");
  4140.             strcat(stringCat, "Modelo {FB1300}560 \t{FCEC00}Sultan                     \n");
  4141.             strcat(stringCat, "Modelo {FB1300}401 \t{FCEC00}Bravura                    \n");
  4142.             strcat(stringCat, "Modelo {FB1300}404 \t{FCEC00}Perenniel                  \n");
  4143.             strcat(stringCat, "Modelo {FB1300}559 \t{FCEC00}Jester                     \n");
  4144.             strcat(stringCat, "Modelo {FB1300}402 \t{FCEC00}Buffalo                    \n");
  4145.             strcat(stringCat, "Modelo {FB1300}562 \t{FCEC00}Elegy                      \n");
  4146.             strcat(stringCat, "Modelo {FB1300}589 \t{FCEC00}Club                       \n");
  4147.             strcat(stringCat, "Modelo {FB1300}603 \t{FCEC00}Phoenix                    \n");
  4148.             strcat(stringCat, "Modelo {FB1300}400 \t{FCEC00}Landstalker                \n");
  4149.             strcat(stringCat, "Modelo {FB1300}429 \t{FCEC00}Banshee                    \n");
  4150.             strcat(stringCat, "Modelo {FB1300}415 \t{FCEC00}Cheetah                    \n");
  4151.             strcat(stringCat, "Modelo {FB1300}411 \t{FCEC00}Infernus                   \n");
  4152.             strcat(stringCat, "Modelo {FB1300}409 \t{FCEC00}Limosine                   \n");
  4153.             strcat(stringCat, "Modelo {FB1300}477 \t{FCEC00}ZR-350                     \n");
  4154.             strcat(stringCat, "Modelo {FB1300}506 \t{FCEC00}Super GT                   \n");
  4155.             strcat(stringCat, "Modelo {FB1300}541 \t{FCEC00}Bullet                     \n");
  4156.             strcat(stringCat, "Modelo {FB1300}451 \t{FCEC00}Turismo                    \n");
  4157.             strcat(stringCat, "Modelo {FB1300}468 \t{FCEC00}Sanchez     {FFFFFF} - MOTO\n");
  4158.             strcat(stringCat, "Modelo {FB1300}461 \t{FCEC00}PCJ-600     {FFFFFF} - MOTO\n");
  4159.             strcat(stringCat, "Modelo {FB1300}521 \t{FCEC00}FCR-900     {FFFFFF} - MOTO\n");
  4160.             strcat(stringCat, "Modelo {FB1300}463 \t{FCEC00}Freeway     {FFFFFF} - MOTO\n");
  4161.             strcat(stringCat, "Modelo {FB1300}522 \t{FCEC00}NRG-50      {FFFFFF} - MOTO\n");
  4162.             ShowPlayerDialog(playerid, DIALOG_CAR_MODELS_CREATED, DIALOG_STYLE_LIST, "{FFFFFF}Escolha um modelo e clique em continuar.", stringCat, "Continuar", "Cancelar");
  4163.  
  4164.             houseCarSet[playerid] = false;
  4165.             houseVehicle[houseIDReceiveCar][vehicleX] = X;
  4166.             houseVehicle[houseIDReceiveCar][vehicleY] = Y;
  4167.             houseVehicle[houseIDReceiveCar][vehicleZ] = Z;
  4168.             houseVehicle[houseIDReceiveCar][vehicleAngle] = PlayerFA;
  4169.             houseVehicle[houseIDReceiveCar][vehicleColor1] = random(255);
  4170.             houseVehicle[houseIDReceiveCar][vehicleColor2] = random(255);
  4171.             houseVehicle[houseIDReceiveCar][vehicleRespawnTime] = 60*5;
  4172.             houseVehicle[houseIDReceiveCar][vehiclePrice] = 15000;
  4173.  
  4174.             DOF2_SetFloat(vehiclePath2, "Coordenada do Veículo X", houseVehicle[houseIDReceiveCar][vehicleX], "Veículo");
  4175.             DOF2_SetFloat(vehiclePath2, "Coordenada do Veículo Y", houseVehicle[houseIDReceiveCar][vehicleY], "Veículo");
  4176.             DOF2_SetFloat(vehiclePath2, "Coordenada do Veículo Z", houseVehicle[houseIDReceiveCar][vehicleZ], "Veículo");
  4177.             DOF2_SetFloat(vehiclePath2, "Angulo", houseVehicle[houseIDReceiveCar][vehicleAngle], "Veículo");
  4178.             DOF2_SetInt(vehiclePath2, "Cor 1", houseVehicle[houseIDReceiveCar][vehicleColor1], "Veículo");
  4179.             DOF2_SetInt(vehiclePath2, "Cor 2", houseVehicle[houseIDReceiveCar][vehicleColor2], "Veículo");
  4180.             DOF2_SetInt(vehiclePath2, "Valor", houseVehicle[houseIDReceiveCar][vehiclePrice], "Veículo");
  4181.             DOF2_SetInt(vehiclePath2, "Tempo de Respawn", houseVehicle[houseIDReceiveCar][vehicleRespawnTime], "Veículo");
  4182.             DOF2_SaveFile();
  4183.  
  4184.             adminCreatingVehicle[playerid] = false;
  4185.         }
  4186.     }
  4187.     else if(vehicleid == vehicleHouseCarDefined[house])
  4188.     {
  4189.         if(houseCarSet[playerid])
  4190.         {
  4191.             new
  4192.                 Float:PlayerFA;
  4193.  
  4194.             GetVehiclePos(vehicleHouseCarDefined[house], X, Y, Z);
  4195.             GetVehicleZAngle(vehicleHouseCarDefined[house], PlayerFA);
  4196.             DestroyVehicle(vehicleHouseCarDefined[house]);
  4197.             SendClientMessage(playerid, -1, "[{FFEC00}LHouse{FFFFFF}] Carro salvo com sucesso!");
  4198.  
  4199.             houseCarSet[playerid] = false;
  4200.             houseVehicle[house][vehicleX] = X;
  4201.             houseVehicle[house][vehicleY] = Y;
  4202.             houseVehicle[house][vehicleZ] = Z+3;
  4203.             houseVehicle[house][vehicleAngle] = PlayerFA;
  4204.             houseVehicle[house][vehicleColor1] = 0;
  4205.             houseVehicle[house][vehicleColor2] = 0;
  4206.             houseVehicle[house][vehicleRespawnTime] = 60*5;
  4207.             houseVehicle[house][vehiclePlate] = "LHouse S";
  4208.  
  4209.             DOF2_SetString(housePath, "Placa", houseVehicle[house][vehiclePlate], "Veículo");
  4210.             houseVehicle[house][vehicleHouse] = CreateVehicle(houseVehicle[house][vehicleModel], X, Y, Z, PlayerFA, 0, 0, 5*60);
  4211.             DOF2_SetInt(vehiclePath, "Modelo do Carro", houseVehicle[house][vehicleModel], "Veículo");
  4212.             DOF2_SetFloat(vehiclePath, "Coordenada do Veículo X", houseVehicle[house][vehicleX], "Veículo");
  4213.             DOF2_SetFloat(vehiclePath, "Coordenada do Veículo Y", houseVehicle[house][vehicleY], "Veículo");
  4214.             DOF2_SetFloat(vehiclePath, "Coordenada do Veículo Z", houseVehicle[house][vehicleZ], "Veículo");
  4215.             DOF2_SetFloat(vehiclePath, "Angulo", houseVehicle[house][vehicleAngle], "Veículo");
  4216.             DOF2_SetInt(vehiclePath, "Cor 1", houseVehicle[house][vehicleColor1], "Veículo");
  4217.             DOF2_SetInt(vehiclePath, "Cor 2", houseVehicle[house][vehicleColor2], "Veículo");
  4218.             DOF2_SetInt(vehiclePath, "Valor", houseVehicle[house][vehiclePrice], "Veículo");
  4219.             DOF2_SetInt(vehiclePath, "Tempo de Respawn", houseVehicle[house][vehicleRespawnTime], "Veículo");
  4220.             DOF2_SaveFile();
  4221.         }
  4222.     }
  4223.     if(houseCarSetPos[playerid] == 1)
  4224.     {
  4225.         SendClientMessage(playerid, -1, "[{FFEC00}LHouse{FFFFFF}] Carro salvo com sucesso!");
  4226.  
  4227.         new
  4228.             CarroP = GetPlayerVehicleID(playerid),
  4229.             Float:PlayerFA;
  4230.  
  4231.         houseCarSetPos[playerid] = 0;
  4232.  
  4233.         GetVehiclePos(CarroP, X, Y, Z);
  4234.         GetVehicleZAngle(CarroP, PlayerFA);
  4235.  
  4236.         houseVehicle[house][vehicleX] = X;
  4237.         houseVehicle[house][vehicleY] = Y;
  4238.         houseVehicle[house][vehicleZ] = Z;
  4239.         houseVehicle[house][vehicleAngle] = PlayerFA;
  4240.  
  4241.         DOF2_SetFloat(vehiclePath, "Coordenada do Veículo X", houseVehicle[house][vehicleX]);
  4242.         DOF2_SetFloat(vehiclePath, "Coordenada do Veículo Y", houseVehicle[house][vehicleY]);
  4243.         DOF2_SetFloat(vehiclePath, "Coordenada do Veículo Z", houseVehicle[house][vehicleZ]);
  4244.         DOF2_SetFloat(vehiclePath, "Angulo", houseVehicle[house][vehicleAngle]);
  4245.         DOF2_SaveFile();
  4246.     }
  4247.     return 1;
  4248. }
  4249.  
  4250. CMD:ircasa(playerid, params[])
  4251. {
  4252.     new
  4253.         Float: X, Float: Y, Float: Z;
  4254.  
  4255.     GetPlayerPos(playerid, X, Y, Z);
  4256.  
  4257.     if(!IsPlayerAdmin(playerid))
  4258.     {
  4259.         PlayerTextDrawShow(playerid, noAutorization[playerid]);
  4260.         SetTimerEx("HideTextdraws", 2000, false, "i", playerid);
  4261.         GetPlayerPos(playerid, X, Y, Z);
  4262.         PlayerPlaySound(playerid, 1085, X, Y, Z);
  4263.         return 1;
  4264.     }
  4265.  
  4266.     new
  4267.         house;
  4268.  
  4269.     if(sscanf(params, "i", house))
  4270.     {
  4271.         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Use: {46FE00}/ircasa {00E5FF}[houseID]");
  4272.         PlayerPlaySound(playerid, 1085, X, Y, Z);
  4273.         return 1;
  4274.     }
  4275.  
  4276.     new
  4277.         filePath[150];
  4278.  
  4279.     format(filePath, sizeof filePath, "LHouse/Casas/Casa %d.txt", house);
  4280.  
  4281.     if(!DOF2_FileExists(filePath))
  4282.     {
  4283.         SendClientMessage(playerid, COLOR_ERROR, "{F90700}Erro: {FFFFFF}Essa casa não existe!");
  4284.         PlayerPlaySound(playerid, 1085, X, Y, Z);
  4285.         return 1;
  4286.     }
  4287.  
  4288.     new
  4289.         string[200];
  4290.  
  4291.     if(!IsPlayerInAnyVehicle(playerid))
  4292.     {
  4293.         SetPlayerPos(playerid, houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ]);
  4294.         SetPlayerInterior(playerid, 0);
  4295.         SetPlayerVirtualWorld(playerid, -1);
  4296.     } else {
  4297.         new v = GetPlayerVehicleID(playerid);
  4298.         SetPlayerPos(playerid, houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ]);
  4299.         SetVehiclePos(v, houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ] + 5);
  4300.         SetPlayerInterior(playerid, 0);
  4301.         LinkVehicleToInterior(v, 0);
  4302.         SetPlayerVirtualWorld(playerid, -1);
  4303.         SetVehicleVirtualWorld(v, -1);
  4304.         PutPlayerInVehicle(playerid, v, 0);
  4305.     }
  4306.  
  4307.     format(string, sizeof string, "[{FFEC00}LHouse{FFFFFF}] Você foi até a casa número {00E5FF}%d", house);
  4308.     SendClientMessage(playerid, -1, string);
  4309.  
  4310.     new
  4311.         logString[128];
  4312.  
  4313.     GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  4314.     format(logString, sizeof logString, "O administrador %s[%d], foi até a casa %d.", playerName, playerid, house);
  4315.     WriteLog(LOG_ADMIN, logString);
  4316.  
  4317.     return 1;
  4318. }
  4319.  
  4320. CMD:criarcasa(playerid, params[])
  4321. {
  4322.     ShowCreateHouseDialog(playerid);
  4323.     return 1;
  4324. }
  4325.  
  4326. CMD:criaraqui(playerid, params[])
  4327. {
  4328.     if (IsPlayerAdmin(playerid))
  4329.     {
  4330.         if (adminCreatingVehicle[playerid])
  4331.         {
  4332.             CreateHouseVehicleToPark(playerid);
  4333.             return 1;
  4334.         }
  4335.         else
  4336.             return 0;
  4337.     }
  4338.     else
  4339.         return 0;
  4340. }
  4341.  
  4342. //=========================================== [STOCKS] =============================//
  4343. ShowAdminMenu(playerid)
  4344. {
  4345.     new
  4346.         stringCat[1200];
  4347.  
  4348.     strcat(stringCat, "Visualizar interior\n");
  4349.     strcat(stringCat, "Alterar Preço\n");
  4350.     strcat(stringCat, "Alterar Preço Aluguel\n");
  4351.     strcat(stringCat, "Alterar Interior\n");
  4352.     strcat(stringCat, "Alterar Status\n");
  4353.     strcat(stringCat, "Alterar Título\n");
  4354.     strcat(stringCat, "Mudar dono\n");
  4355.     strcat(stringCat, "Criar Carro\n");
  4356.     strcat(stringCat, "{FD0100}Vender casa\n");
  4357.     strcat(stringCat, "{FD0100}Deletar casa\n");
  4358.     ShowPlayerDialog(playerid, DIALOG_EDIT_HOUSE, DIALOG_STYLE_LIST, "Menu Administrativo", stringCat, "Selecionar", "Cancelar");
  4359.     return 1;
  4360. }
  4361.  
  4362. ShowHouseMenu(playerid)
  4363. {
  4364.     GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  4365.  
  4366.     new
  4367.         house = GetProxHouse(playerid),
  4368.         stringCat[1200];
  4369.  
  4370.     if(!strcmp(houseData[house][houseOwner], "Ninguem", true))
  4371.     {
  4372.         ShowPlayerDialog(playerid, DIALOG_HOUSE_SELL_MENU, DIALOG_STYLE_LIST, "Menu house", "Comprar Casa\n", "Selecionar", "Cancelar");
  4373.         TogglePlayerControllable(playerid, 0);
  4374.     }
  4375.  
  4376.     else if(!strcmp(houseData[house][houseOwner], playerName, true))
  4377.     {
  4378.         strcat(stringCat, "{00FAF7}Entrar em casa\n");
  4379.         strcat(stringCat, "{09FD00}Ativar{46FE00}/{FD0300}Desativar {FFFFFF}aluguel da casa\n");
  4380.         strcat(stringCat, "{09FD00}Trancar{46FE00}/{FD0300}Destrancar {FFFFFF}a casa\n");
  4381.         strcat(stringCat, "Comprar um carro para a casa\n");
  4382.         strcat(stringCat, "Vender sua casa\n");
  4383.         strcat(stringCat, "Vender sua casa para um player\n");
  4384.         strcat(stringCat, "Despejar Locador\n");
  4385.         strcat(stringCat, "Alterar Título da casa\n");
  4386.         strcat(stringCat, "{0080C0}Armazenamento da casa\n");
  4387.  
  4388.         ShowPlayerDialog(playerid, DIALOG_HOUSE_OWNER_MENU, DIALOG_STYLE_LIST, "Menu house", stringCat, "Selecionar", "Cancelar");
  4389.         TogglePlayerControllable(playerid, 0);
  4390.     }
  4391.     else if(strcmp(houseData[house][houseOwner], playerName, true))
  4392.     {
  4393.         if(houseData[house][houseRentable] == 1)
  4394.         {
  4395.             if(strcmp(houseData[house][houseTenant], playerName, true))
  4396.             {
  4397.                 strcat(stringCat, "{00FAF7}Entrar na casa\n");
  4398.                 strcat(stringCat, "Alugar casa\n");
  4399.                 ShowPlayerDialog(playerid, DIALOG_RENTING_GUEST, DIALOG_STYLE_LIST, "Menu house", stringCat, "Selecionar", "Cancelar");
  4400.                 TogglePlayerControllable(playerid, 0);
  4401.                 return 1;
  4402.             }
  4403.  
  4404.             else
  4405.             {
  4406.                 strcat(stringCat, "{00FAF7}Entrar em casa\n");
  4407.                 strcat(stringCat, "{09FD00}Trancar{46FE00}/{FD0300}Destrancar {FFFFFF}a casa\n");
  4408.                 strcat(stringCat, "{FD0100}Desalugar\n");
  4409.                 ShowPlayerDialog(playerid, DIALOG_HOUSE_TENANT_MENU, DIALOG_STYLE_LIST, "Menu house", stringCat, "Selecionar", "Cancelar");
  4410.                 TogglePlayerControllable(playerid, 0);
  4411.             }
  4412.         }
  4413.         else
  4414.         {
  4415.             ShowPlayerDialog(playerid, DIALOG_GUEST, DIALOG_STYLE_MSGBOX, "Menu house", "{FFFFFF}Você deseja entrar nesta casa?", "Sim", "Não");
  4416.             TogglePlayerControllable(playerid, 0);
  4417.             return 1;
  4418.         }
  4419.     }
  4420.  
  4421.     new
  4422.         logString[128];
  4423.  
  4424.     format(logString, sizeof logString, "O jogador %s[%d], abriu o menu da casa %d.", playerName, playerid, house);
  4425.     WriteLog(LOG_HOUSES, logString);
  4426.     return 1;
  4427. }
  4428.  
  4429. ShowHouseVehicleMenu(playerid)
  4430. {
  4431.     new
  4432.         stringCat[300];
  4433.  
  4434.     strcat(stringCat, "Estacionar Carro\n");
  4435.     strcat(stringCat, "Mudar cor do carro\n");
  4436.     strcat(stringCat, "Escolher novo modelo\n");
  4437.     strcat(stringCat, "Mudar Placa\n");
  4438.     strcat(stringCat, "Vender Carro\n");
  4439.     ShowPlayerDialog(playerid, DIALOG_CAR_MENU, DIALOG_STYLE_LIST, "Menu Carro", stringCat, "Selecionar", "Cancelar");
  4440.     return 1;
  4441. }
  4442.  
  4443. ShowStorageMenu(playerid, type)
  4444. {
  4445.     //1 = colete
  4446.     if (type == 1)
  4447.     {
  4448.         new
  4449.             stringCat[1000],
  4450.             string[256],
  4451.             slotid,
  4452.             house = GetProxHouse(playerid);
  4453.  
  4454.         GetPlayerArmour(playerid, oldArmour);
  4455.  
  4456.         for(new s; s < MAX_ARMOUR; s++)
  4457.         {
  4458.             slotid = s + 1;
  4459.  
  4460.             if(houseData[house][houseArmourStored][s] > 0)
  4461.             {
  4462.                 format(string, sizeof string, "{FFFFFF}SLOT {46FE00}%d{FFFFFF}:\t\t%.2f%%\n", slotid, houseData[house][houseArmourStored][s]);
  4463.                 strcat(stringCat, string);
  4464.             }
  4465.             else if(houseData[house][houseArmourStored][s] == 0)
  4466.             {
  4467.                 format(string, sizeof string, "{FFFFFF}SLOT {46FE00}%d{FFFFFF}:\t\t{FFFFFF}VAZIO\n", slotid);
  4468.                 strcat(stringCat, string);
  4469.             }
  4470.         }
  4471.         ShowPlayerDialog(playerid, DIALOG_STORAGE_ARMOUR, DIALOG_STYLE_LIST, "{00F2FC}Coletes armazenados.", stringCat, "Equipar", "Voltar");
  4472.     }
  4473.     return 1;
  4474. }
  4475.  
  4476. ShowCreateHouseDialog(playerid)
  4477. {
  4478.     new
  4479.         Float: X, Float: Y, Float: Z;
  4480.  
  4481.     if(!IsPlayerAdmin(playerid))
  4482.     {
  4483.         PlayerTextDrawShow(playerid, noAutorization[playerid]);
  4484.         SetTimerEx("HideTextdraws", 2000, false, "i", playerid);
  4485.         GetPlayerPos(playerid, X, Y, Z);
  4486.         PlayerPlaySound(playerid, 1085, X, Y, Z);
  4487.         return 1;
  4488.     }
  4489.  
  4490.     new
  4491.         stringCat[1200];
  4492.  
  4493.     strcat(stringCat, "Interior {FB1300}1 \t{FCEC00}6 {FFFFFF}Comodos \t\t{00EAFA}R$ 65.000,00 \n");
  4494.     strcat(stringCat, "Interior {FB1300}2 \t{FCEC00}3 {FFFFFF}Comodos \t\t{00EAFA}R$ 37.000,00 \n");
  4495.     strcat(stringCat, "Interior {FB1300}3 \t{FCEC00}3 {FFFFFF}Comodos \t\t{00EAFA}R$ 37.000,00 \n");
  4496.     strcat(stringCat, "Interior {FB1300}4 \t{FCEC00}1 {FFFFFF}Comodo  \t\t{00EAFA}R$ 20.000,00 \n");
  4497.     strcat(stringCat, "Interior {FB1300}5 \t{FCEC00}1 {FFFFFF}Comodo  \t\t{00EAFA}R$ 20.000,00 \n");
  4498.     strcat(stringCat, "Interior {FB1300}6 \t{FCEC00}3 {FFFFFF}Comodos \t\t{00EAFA}R$ 150.000,00 {FFFFFF}| (Casa do CJ)\n");
  4499.     strcat(stringCat, "Interior {FB1300}7 \t{FCEC00}5 {FFFFFF}Comodos \t\t{00EAFA}R$ 320.000,00 \n");
  4500.     strcat(stringCat, "Interior {FB1300}8 \t{FCEC00}7 {FFFFFF}Comodos \t\t{00EAFA}R$ 120.000,00 \n");
  4501.     strcat(stringCat, "Interior {FB1300}9 \t{FCEC00}4 {FFFFFF}Comodos \t\t{00EAFA}R$ 95.000,00 \n");
  4502.     strcat(stringCat, "Interior {FB1300}10 \t{FCEC00}Muitos {FFFFFF}Comodos \t{00EAFA}R$ 1.200.000,00 {FFFFFF}| (Casa do Madd Dog)\n");
  4503.     strcat(stringCat, "Interior {FB1300}11 \t{FCEC00}7 {FFFFFF}Comodos \t\t{00EAFA}R$ 660.000,00 \n");
  4504.     ShowPlayerDialog(playerid, DIALOG_CREATE_HOUSE, DIALOG_STYLE_LIST,"Criando Casa", stringCat, "Continuar", "Cancelar");
  4505.     return 1;
  4506. }
  4507.  
  4508. CreateHouse(house, Float:PickupX, Float:PickupY, Float:PickupZ, Float:InteriorX, Float:InteriorY, Float:InteriorZ, Float:InteriorFA, houseValue, houseInt)
  4509. {
  4510.     new
  4511.         storageFile[100],
  4512.         file[100];
  4513.  
  4514.     format(file, sizeof file, "LHouse/Casas/Casa %d.txt", house);
  4515.     format(storageFile, sizeof storageFile, "LHouse/Armazenamento/Casa %d.txt", house);
  4516.  
  4517.     if(!DOF2_FileExists(file))
  4518.     {
  4519.         format(houseData[house][houseOwner], 24, "Ninguem");
  4520.         format(houseData[house][houseTenant], 24, "Ninguem");
  4521.         format(houseData[house][houseTitle], 32, "Título não definido");
  4522.  
  4523.         houseData[house][houseX] = PickupX;
  4524.         houseData[house][houseY] = PickupY;
  4525.         houseData[house][houseZ] = PickupZ;
  4526.         houseData[house][houseIntX] = InteriorX;
  4527.         houseData[house][houseIntY] = InteriorY;
  4528.         houseData[house][houseIntZ] = InteriorZ;
  4529.         houseData[house][houseIntFA] = InteriorFA;
  4530.         houseData[house][houseInterior] = houseInt;
  4531.         houseData[house][housePrice] = houseValue;
  4532.         houseData[house][houseVirtualWorld] = house;
  4533.         houseData[house][houseStatus] = 1;
  4534.         houseData[house][houseRentable] = 0;
  4535.         houseData[house][houseRentPrice] = 0;
  4536.         houseVehicle[house][vehicleHouse] = 0;
  4537.         houseVehicle[house][vehicleModel] = 0;
  4538.         houseVehicle[house][vehicleX] = 0;
  4539.         houseVehicle[house][vehicleY] = 0;
  4540.         houseVehicle[house][vehicleZ] = 0;
  4541.         houseVehicle[house][vehicleColor1] = 0;
  4542.         houseVehicle[house][vehicleColor2] = 0;
  4543.         houseVehicle[house][vehiclePrice] = 0;
  4544.  
  4545.         DOF2_CreateFile(file);
  4546.  
  4547.         DOF2_SetInt(file, "ID", house, "Informações");
  4548.         DOF2_SetInt(file, "Preço", houseValue, "Informações");
  4549.         DOF2_SetString(file, "Dono", "Ninguem", "Informações");
  4550.         DOF2_SetString(file, "Título", "Título não definido", "Informações");
  4551.         DOF2_SetInt(file, "Status", 1, "Informações");
  4552.  
  4553.         DOF2_SetInt(file, "Aluguel Ativado", 0, "Aluguel");
  4554.         DOF2_SetInt(file, "Preço do Aluguel", 0, "Aluguel");
  4555.         DOF2_SetString(file, "Locador", "Ninguem", "Aluguel");
  4556.  
  4557.         DOF2_SetInt(file, "Interior", houseInt, "Coordenadas");
  4558.         DOF2_SetFloat(file, "Exterior X", PickupX, "Coordenadas");
  4559.         DOF2_SetFloat(file, "Exterior Y", PickupY, "Coordenadas");
  4560.         DOF2_SetFloat(file, "Exterior Z", PickupZ, "Coordenadas");
  4561.         DOF2_SetFloat(file, "Interior X", InteriorX, "Coordenadas");
  4562.         DOF2_SetFloat(file, "Interior Y", InteriorY, "Coordenadas");
  4563.         DOF2_SetFloat(file, "Interior Z", InteriorZ, "Coordenadas");
  4564.         DOF2_SetFloat(file, "Interior Facing Angle", InteriorFA, "Coordenadas");
  4565.         DOF2_SetInt(file, "Virtual World", house, "Coordenadas");
  4566.  
  4567.         DOF2_SetInt(file, "Modelo do Carro", 0, "Veículo");
  4568.         DOF2_SetFloat(file, "Coordenada do Veículo X", 0, "Veículo");
  4569.         DOF2_SetFloat(file, "Coordenada do Veículo Y", 0, "Veículo");
  4570.         DOF2_SetFloat(file, "Coordenada do Veículo Z", 0, "Veículo");
  4571.         DOF2_SetFloat(file, "Angulo", 0, "Veículo");
  4572.         DOF2_SetInt(file, "Cor 1", 0, "Veículo");
  4573.         DOF2_SetInt(file, "Cor 2", 0, "Veículo");
  4574.         DOF2_SetInt(file, "Valor", 0, "Veículo");
  4575.         DOF2_SetInt(file, "Tempo de Respawn", 0, "Veículo");
  4576.         DOF2_SetString(file, "Placa", "LHouse", "Veículo");
  4577.  
  4578.         DOF2_SaveFile();
  4579.  
  4580.         DOF2_CreateFile(storageFile);
  4581.  
  4582.         new
  4583.             slotStorageID[20];
  4584.  
  4585.         for(new s; s < MAX_ARMOUR; s++)
  4586.         {
  4587.             format(slotStorageID, sizeof slotStorageID, "SLOT %d", s);
  4588.             DOF2_SetFloat(storageFile, slotStorageID, 0, "Colete");
  4589.         }
  4590.  
  4591.         DOF2_SaveFile();
  4592.     }
  4593.     else
  4594.     {
  4595.         houseData[house][housePrice] = DOF2_GetInt(file, "Preço", "Informações");
  4596.         format(houseData[house][houseOwner], 24, DOF2_GetString(file, "Dono", "Informações"));
  4597.         format(houseData[house][houseTitle], 32, DOF2_GetString(file, "Título", "Informações"));
  4598.         houseData[house][houseStatus] = DOF2_GetInt(file, "Status", "Informações");
  4599.  
  4600.         houseData[house][houseRentable] = DOF2_GetInt(file, "Aluguel Ativado", "Aluguel");
  4601.         houseData[house][houseRentPrice] = DOF2_GetInt(file, "Preço do Aluguel", "Aluguel");
  4602.         format(houseData[house][houseTenant], 24, DOF2_GetString(file, "Locador", "Aluguel"));
  4603.  
  4604.         houseData[house][houseX] = DOF2_GetFloat(file, "Exterior X", "Coordenadas");
  4605.         houseData[house][houseY] = DOF2_GetFloat(file, "Exterior Y", "Coordenadas");
  4606.         houseData[house][houseZ] = DOF2_GetFloat(file, "Exterior Z", "Coordenadas");
  4607.         houseData[house][houseIntX] = DOF2_GetFloat(file, "Interior X", "Coordenadas");
  4608.         houseData[house][houseIntY] = DOF2_GetFloat(file, "Interior Y", "Coordenadas");
  4609.         houseData[house][houseIntZ] = DOF2_GetFloat(file, "Interior Z", "Coordenadas");
  4610.         houseData[house][houseInterior] = DOF2_GetInt(file, "Interior", "Coordenadas");
  4611.         houseData[house][houseVirtualWorld] = DOF2_GetInt(file, "Virtual World", "Coordenadas");
  4612.  
  4613.         new
  4614.             slotStorageID[20],
  4615.             Float:valueOnFile;
  4616.  
  4617.         if(!DOF2_FileExists(storageFile))
  4618.             DOF2_CreateFile(storageFile);
  4619.  
  4620.         for(new s; s < MAX_ARMOUR; s++)
  4621.         {
  4622.             format(slotStorageID, sizeof slotStorageID, "SLOT %d", s);
  4623.  
  4624.             if(!DOF2_IsSet(storageFile, slotStorageID, "Colete"))
  4625.                 DOF2_SetFloat(storageFile, slotStorageID, 0, "Colete");
  4626.  
  4627.             valueOnFile = DOF2_GetFloat(storageFile, slotStorageID, "Colete");
  4628.  
  4629.             if(valueOnFile != 0)
  4630.                 houseData[house][houseArmourStored][s] = valueOnFile;
  4631.         }
  4632.  
  4633.     }
  4634.  
  4635.     new
  4636.         houseStatusName[20],
  4637.         houseRentName[20],
  4638.         textlabel[200];
  4639.  
  4640.     if(!strcmp(houseData[house][houseOwner], "Ninguem", true))
  4641.     {
  4642.         housePickupIn[house] = CreateDynamicPickup(1273, 1, houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ]);
  4643.         housePickupOut[house] = CreateDynamicPickup(1318, 1, houseData[house][houseIntX], houseData[house][houseIntY], houseData[house][houseIntZ]);
  4644.         houseMapIcon[house] = CreateDynamicMapIcon(houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ], 31, -1, -1, 0, -1, 100.0);
  4645.         if(houseData[house][houseStatus] == 1) houseStatusName = "Trancada";
  4646.         else if(houseData[house][houseStatus] == 0) houseStatusName = "Destrancada";
  4647.         format(textlabel, sizeof textlabel, TEXT_SELLING_HOUSE, houseData[house][housePrice], house);
  4648.         houseLabel[house] = CreateDynamic3DTextLabel(textlabel, -1, houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ], 20.0);
  4649.     }
  4650.     else
  4651.     {
  4652.         if(houseData[house][houseRentable] == 1)
  4653.         {
  4654.             housePickupIn[house] = CreateDynamicPickup(1272, 1, houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ]);
  4655.             housePickupOut[house] = CreateDynamicPickup(1318, 1, houseData[house][houseIntX], houseData[house][houseIntY], houseData[house][houseIntZ]);
  4656.             houseMapIcon[house] = CreateDynamicMapIcon(houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ], 32, -1, -1, 0, -1, 100.0);
  4657.             if(houseData[house][houseStatus] == 1) houseStatusName = "Trancada";
  4658.             else if(houseData[house][houseStatus] == 0) houseStatusName = "Destrancada";
  4659.             format(textlabel, sizeof textlabel, TEXT_RENT_HOUSE, houseData[house][houseTitle], houseData[house][houseOwner], houseData[house][houseTenant], houseData[house][houseRentPrice], houseStatusName, house);
  4660.             houseLabel[house] = CreateDynamic3DTextLabel(textlabel, -1, houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ], 20.0);
  4661.             return 1;
  4662.         }
  4663.  
  4664.         else
  4665.         {
  4666.             housePickupIn[house] = CreateDynamicPickup(1272, 1, houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ]);
  4667.             housePickupOut[house] = CreateDynamicPickup(1318, 1, houseData[house][houseIntX], houseData[house][houseIntY], houseData[house][houseIntZ]);
  4668.             houseMapIcon[house] = CreateDynamicMapIcon(houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ], 32, -1, -1, 0, -1, 100.0);
  4669.             if(houseData[house][houseStatus] == 1) houseStatusName = "Trancada";
  4670.             else if(houseData[house][houseStatus] == 0) houseStatusName = "Destrancada";
  4671.             if(houseData[house][houseRentable] == 1) houseRentName = "Ativado";
  4672.             else if(houseData[house][houseRentable] == 0) houseRentName = "Desativado";
  4673.             format(textlabel, sizeof textlabel, TEXT_HOUSE, houseData[house][houseTitle], houseData[house][houseOwner], houseRentName, houseStatusName, house);
  4674.             houseLabel[house] = CreateDynamic3DTextLabel(textlabel, -1, houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ], 20.0);
  4675.             return 1;
  4676.         }
  4677.     }
  4678.  
  4679.     new
  4680.         logString[128];
  4681.  
  4682.     format(logString, sizeof logString, "-------- A CASA DE ID %d FOI CRIADA COM SUCESSO! --------", house);
  4683.     WriteLog(LOG_SYSTEM, logString);
  4684.     return 1;
  4685. }
  4686.  
  4687. public SaveHouses()
  4688. {
  4689.     new
  4690.         storageFile[100],
  4691.         file[200];
  4692.  
  4693.     for(new house = 1; house < MAX_HOUSES; house++)
  4694.     {
  4695.         format(file, sizeof file, "LHouse/Casas/Casa %d.txt", house);
  4696.         format(storageFile, sizeof storageFile, "LHouse/Armazenamento/Casa %d.txt", house);
  4697.  
  4698.         if(DOF2_FileExists(file))
  4699.         {
  4700.             DOF2_SetInt(file, "ID", house, "Informações");
  4701.             DOF2_SetInt(file, "Preço", houseData[house][housePrice], "Informações");
  4702.             DOF2_SetString(file, "Dono", houseData[house][houseOwner], "Informações");
  4703.             DOF2_SetString(file, "Título", houseData[house][houseTitle], "Informações");
  4704.             DOF2_SetInt(file, "Status", houseData[house][houseStatus], "Informações");
  4705.  
  4706.             DOF2_SetString(file, "Locador", houseData[house][houseTenant], "Aluguel");
  4707.             DOF2_SetInt(file, "Aluguel Ativado", houseData[house][houseRentable], "Aluguel");
  4708.             DOF2_SetInt(file, "Preço do Aluguel", houseData[house][houseRentPrice], "Aluguel");
  4709.  
  4710.             DOF2_SetInt(file, "Interior", houseData[house][houseInterior], "Coordenadas");
  4711.             DOF2_SetFloat(file, "Exterior X", houseData[house][houseX], "Coordenadas");
  4712.             DOF2_SetFloat(file, "Exterior Y", houseData[house][houseY], "Coordenadas");
  4713.             DOF2_SetFloat(file, "Exterior Z", houseData[house][houseZ], "Coordenadas");
  4714.             DOF2_SetFloat(file, "Interior X", houseData[house][houseIntX], "Coordenadas");
  4715.             DOF2_SetFloat(file, "Interior Y", houseData[house][houseIntY], "Coordenadas");
  4716.             DOF2_SetFloat(file, "Interior Z", houseData[house][houseIntZ], "Coordenadas");
  4717.             DOF2_SetFloat(file, "Interior Facing Angle", houseData[house][houseIntFA], "Coordenadas");
  4718.             DOF2_SetInt(file, "Virtual World", houseData[house][houseVirtualWorld], "Coordenadas");
  4719.  
  4720.             DOF2_SetInt(file, "Modelo do Carro", houseVehicle[house][vehicleModel], "Veículo");
  4721.             DOF2_SetFloat(file, "Coordenada do Veículo X", houseVehicle[house][vehicleX], "Veículo");
  4722.             DOF2_SetFloat(file, "Coordenada do Veículo Y", houseVehicle[house][vehicleY], "Veículo");
  4723.             DOF2_SetFloat(file, "Coordenada do Veículo Z", houseVehicle[house][vehicleZ], "Veículo");
  4724.             DOF2_SetFloat(file, "Angulo", houseVehicle[house][vehicleAngle], "Veículo");
  4725.             DOF2_SetInt(file, "Cor 1", houseVehicle[house][vehicleColor1], "Veículo");
  4726.             DOF2_SetInt(file, "Cor 2", houseVehicle[house][vehicleColor2], "Veículo");
  4727.             DOF2_SetInt(file, "Status do Carro", houseVehicle[house][vehicleStatus], "Veículo");
  4728.             DOF2_SetInt(file, "Valor", houseVehicle[house][vehiclePrice], "Veículo");
  4729.             DOF2_SetInt(file, "Tempo de Respawn", houseVehicle[house][vehicleRespawnTime], "Veículo");
  4730.             DOF2_SetString(file, "Placa", houseVehicle[house][vehiclePlate], "Veículo");
  4731.  
  4732.             DOF2_SaveFile();
  4733.  
  4734.             if(!DOF2_FileExists(storageFile))
  4735.                 DOF2_CreateFile(storageFile);
  4736.  
  4737.             new
  4738.                 slotStorageID[20];
  4739.  
  4740.             for(new s; s < MAX_ARMOUR; s++)
  4741.             {
  4742.                 format(slotStorageID, sizeof slotStorageID, "SLOT %d", s);
  4743.                 DOF2_SetFloat(storageFile, slotStorageID, houseData[house][houseArmourStored][s], "Colete");
  4744.             }
  4745.  
  4746.             DOF2_SaveFile();
  4747.  
  4748.             return 1;
  4749.         }
  4750.     }
  4751.     return 1;
  4752. }
  4753.  
  4754. public SaveHouse(house)
  4755. {
  4756.     new
  4757.         storageFile[100],
  4758.         file[200];
  4759.  
  4760.     format(file, sizeof file, "LHouse/Casas/Casa %d.txt", house);
  4761.     format(storageFile, sizeof storageFile, "LHouse/Armazenamento/Casa %d.txt", house);
  4762.  
  4763.     if(DOF2_FileExists(file))
  4764.     {
  4765.         DOF2_SetInt(file, "ID", house, "Informações");
  4766.         DOF2_SetInt(file, "Preço", houseData[house][housePrice], "Informações");
  4767.         DOF2_SetString(file, "Dono", houseData[house][houseOwner], "Informações");
  4768.         DOF2_SetString(file, "Título", houseData[house][houseTitle], "Informações");
  4769.         DOF2_SetInt(file, "Status", houseData[house][houseStatus], "Informações");
  4770.  
  4771.         DOF2_SetString(file, "Locador", houseData[house][houseTenant], "Aluguel");
  4772.         DOF2_SetInt(file, "Aluguel Ativado", houseData[house][houseRentable], "Aluguel");
  4773.         DOF2_SetInt(file, "Preço do Aluguel", houseData[house][houseRentPrice], "Aluguel");
  4774.  
  4775.         DOF2_SetInt(file, "Interior", houseData[house][houseInterior], "Coordenadas");
  4776.         DOF2_SetFloat(file, "Exterior X", houseData[house][houseX], "Coordenadas");
  4777.         DOF2_SetFloat(file, "Exterior Y", houseData[house][houseY], "Coordenadas");
  4778.         DOF2_SetFloat(file, "Exterior Z", houseData[house][houseZ], "Coordenadas");
  4779.         DOF2_SetFloat(file, "Interior X", houseData[house][houseIntX], "Coordenadas");
  4780.         DOF2_SetFloat(file, "Interior Y", houseData[house][houseIntY], "Coordenadas");
  4781.         DOF2_SetFloat(file, "Interior Z", houseData[house][houseIntZ], "Coordenadas");
  4782.         DOF2_SetFloat(file, "Interior Facing Angle", houseData[house][houseIntFA], "Coordenadas");
  4783.         DOF2_SetInt(file, "Virtual World", houseData[house][houseVirtualWorld], "Coordenadas");
  4784.  
  4785.         DOF2_SetInt(file, "Modelo do Carro", houseVehicle[house][vehicleModel], "Veículo");
  4786.         DOF2_SetFloat(file, "Coordenada do Veículo X", houseVehicle[house][vehicleX], "Veículo");
  4787.         DOF2_SetFloat(file, "Coordenada do Veículo Y", houseVehicle[house][vehicleY], "Veículo");
  4788.         DOF2_SetFloat(file, "Coordenada do Veículo Z", houseVehicle[house][vehicleZ], "Veículo");
  4789.         DOF2_SetFloat(file, "Angulo", houseVehicle[house][vehicleAngle], "Veículo");
  4790.         DOF2_SetInt(file, "Cor 1", houseVehicle[house][vehicleColor1], "Veículo");
  4791.         DOF2_SetInt(file, "Cor 2", houseVehicle[house][vehicleColor2], "Veículo");
  4792.         DOF2_SetInt(file, "Status do Carro", houseVehicle[house][vehicleStatus], "Veículo");
  4793.         DOF2_SetInt(file, "Valor", houseVehicle[house][vehiclePrice], "Veículo");
  4794.         DOF2_SetInt(file, "Tempo de Respawn", houseVehicle[house][vehicleRespawnTime], "Veículo");
  4795.         DOF2_SetString(file, "Placa", houseVehicle[house][vehiclePlate], "Veículo");
  4796.  
  4797.         DOF2_SaveFile();
  4798.  
  4799.         if(!DOF2_FileExists(storageFile))
  4800.             DOF2_CreateFile(storageFile);
  4801.  
  4802.         new
  4803.             slotStorageID[20];
  4804.  
  4805.         for(new s; s < MAX_ARMOUR; s++)
  4806.         {
  4807.             format(slotStorageID, sizeof slotStorageID, "SLOT %d", s);
  4808.             DOF2_SetFloat(storageFile, slotStorageID, houseData[house][houseArmourStored][s], "Colete");
  4809.         }
  4810.  
  4811.         DOF2_SaveFile();
  4812.  
  4813.         return 1;
  4814.     }
  4815.     return 1;
  4816. }
  4817.  
  4818. GetProxHouse(playerid)
  4819. {
  4820.     for(new i = 1; i < MAX_HOUSES; i++)
  4821.     {
  4822.         if(IsPlayerInRangeOfPoint(playerid, 2, houseData[i][houseX], houseData[i][houseY], houseData[i][houseZ]))
  4823.         {
  4824.             return i;
  4825.         }
  4826.         else if(IsPlayerInRangeOfPoint(playerid, 2, houseData[i][houseIntX], houseData[i][houseIntY], houseData[i][houseIntZ]))
  4827.         {
  4828.             return i;
  4829.         }
  4830.     }
  4831.     return -255;
  4832. }
  4833.  
  4834. GetHouseByOwner(playerid)
  4835. {
  4836.     new
  4837.         ownerFilePath[200],
  4838.         house;
  4839.  
  4840.     GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  4841.     format(ownerFilePath, sizeof ownerFilePath, "LHouse/Donos/%s.txt", playerName);
  4842.  
  4843.     if(!DOF2_FileExists(ownerFilePath))
  4844.         return -255;
  4845.  
  4846.     house = DOF2_GetInt(ownerFilePath, "houseID");
  4847.     return house;
  4848. }
  4849.  
  4850. CreateAllHousesVehicles()
  4851. {
  4852.     new
  4853.         vehiclesCreated,
  4854.         houseStatusName[20],
  4855.         vehiclePath[128],
  4856.         logString[128],
  4857.         engine,lights,alarm,doors,bonnet,boot,objective;
  4858.  
  4859.     for(new houses = 1; houses < MAX_HOUSES; houses++)
  4860.     {
  4861.         format(vehiclePath, sizeof vehiclePath, "LHouse/Casas/Casa %d.txt", houses);
  4862.         if(DOF2_GetInt(vehiclePath, "Modelo do Carro") != 0)
  4863.         {
  4864.             houseVehicle[houses][vehicleModel] = DOF2_GetInt(vehiclePath, "Modelo do Carro", "Veículo");
  4865.             houseVehicle[houses][vehicleX] = DOF2_GetFloat(vehiclePath, "Coordenada do Veículo X", "Veículo");
  4866.             houseVehicle[houses][vehicleY] = DOF2_GetFloat(vehiclePath, "Coordenada do Veículo Y", "Veículo");
  4867.             houseVehicle[houses][vehicleZ] = DOF2_GetFloat(vehiclePath, "Coordenada do Veículo Z", "Veículo");
  4868.             houseVehicle[houses][vehicleAngle] = DOF2_GetFloat(vehiclePath, "Angulo", "Veículo");
  4869.             houseVehicle[houses][vehicleColor1] = DOF2_GetInt(vehiclePath, "Cor 1", "Veículo");
  4870.             houseVehicle[houses][vehicleColor2] = DOF2_GetInt(vehiclePath, "Cor 2", "Veículo");
  4871.             houseVehicle[houses][vehiclePrice] = DOF2_GetInt(vehiclePath, "Valor", "Veículo");
  4872.             houseVehicle[houses][vehicleRespawnTime] = DOF2_GetInt(vehiclePath, "Tempo de Respawn", "Veículo");
  4873.             houseVehicle[houses][vehicleStatus] = DOF2_GetInt(vehiclePath, "Status do Carro", "Veículo");
  4874.             format(houseVehicle[houses][vehiclePlate], 10, DOF2_GetString(vehiclePath, "Placa", "Veículo"));
  4875.             houseVehicle[houses][vehicleHouse] = CreateVehicle(houseVehicle[houses][vehicleModel], houseVehicle[houses][vehicleX], houseVehicle[houses][vehicleY], houseVehicle[houses][vehicleZ], houseVehicle[houses][vehicleAngle], houseVehicle[houses][vehicleColor1], houseVehicle[houses][vehicleColor2], houseVehicle[houses][vehicleRespawnTime]);
  4876.             SetVehicleNumberPlate(houseVehicle[houses][vehicleHouse], houseVehicle[houses][vehiclePlate]);
  4877.             vehiclesCreated++;
  4878.  
  4879.             if(houseVehicle[houses][vehicleStatus] == 1)
  4880.                 houseStatusName = "Trancado";
  4881.  
  4882.             else if(houseVehicle[houses][vehicleStatus] == 0)
  4883.                 houseStatusName = "Destrancado";
  4884.  
  4885.             format(logString, sizeof logString, "-------- O CARRO DA CASA DE ID %d FOI CRIADO COM SUCESSO! --------", houses);
  4886.             WriteLog(LOG_SYSTEM, logString);
  4887.  
  4888.             GetVehicleParamsEx(houseVehicle[houses][vehicleHouse], engine, lights, alarm, doors, bonnet, boot, objective);
  4889.             if(houseVehicle[houses][vehicleStatus] == 1)
  4890.             {
  4891.                 SetVehicleParamsEx(houseVehicle[houses][vehicleHouse], engine, lights, alarm, 1, bonnet, boot, objective);
  4892.             }
  4893.             else
  4894.             {
  4895.                 SetVehicleParamsEx(houseVehicle[houses][vehicleHouse], engine, lights, alarm, 0, bonnet, boot, objective);
  4896.             }
  4897.         }
  4898.     }
  4899.     if(vehiclesCreated == 0)
  4900.     {
  4901.         print("\n\t Não foi detectado nenhum carro de casa criado. ");
  4902.         print("\t Para criar um, logue no servidor, entre na RCON  ");
  4903.         print("\t e abra o menu administrativo da casa.            ");
  4904.     }
  4905.     else
  4906.     {
  4907.         printf("\t Foram criados %d carros.                                 ", vehiclesCreated);
  4908.     }
  4909.     return 1;
  4910. }
  4911.  
  4912. CreateAllHouses()
  4913. {
  4914.     new
  4915.         housesCreated,
  4916.         file[200],
  4917.         houseStatusName[20],
  4918.         textlabel[250],
  4919.         houseRentName[20],
  4920.         storageFile[100],
  4921.         logString[700];
  4922.  
  4923.     for(new house = 1; house < MAX_HOUSES; house++)
  4924.     {
  4925.         format(file, sizeof file, "LHouse/Casas/Casa %d.txt", house);
  4926.         format(storageFile, sizeof storageFile, "LHouse/Armazenamento/Casa %d.txt", house);
  4927.  
  4928.         if(DOF2_FileExists(file))
  4929.         {
  4930.             houseData[house][housePrice] = DOF2_GetInt(file, "Preço", "Informações");
  4931.             houseData[house][houseStatus] = DOF2_GetInt(file, "Status", "Informações");
  4932.             format(houseData[house][houseOwner], 24, DOF2_GetString(file, "Dono", "Informações"));
  4933.             format(houseData[house][houseTitle], 32, DOF2_GetString(file, "Título", "Informações"));
  4934.  
  4935.             houseData[house][houseRentable] = DOF2_GetInt(file, "Aluguel Ativado", "Aluguel");
  4936.             houseData[house][houseRentPrice] = DOF2_GetInt(file, "Preço do Aluguel", "Aluguel");
  4937.             format(houseData[house][houseTenant], 24, DOF2_GetString(file, "Locador", "Aluguel"));
  4938.  
  4939.             houseData[house][houseX] = DOF2_GetFloat(file, "Exterior X", "Coordenadas");
  4940.             houseData[house][houseY] = DOF2_GetFloat(file, "Exterior Y", "Coordenadas");
  4941.             houseData[house][houseZ] = DOF2_GetFloat(file, "Exterior Z", "Coordenadas");
  4942.             houseData[house][houseIntX] = DOF2_GetFloat(file, "Interior X", "Coordenadas");
  4943.             houseData[house][houseIntY] = DOF2_GetFloat(file, "Interior Y", "Coordenadas");
  4944.             houseData[house][houseIntZ] = DOF2_GetFloat(file, "Interior Z", "Coordenadas");
  4945.             houseData[house][houseVirtualWorld] = DOF2_GetInt(file, "Virtual World", "Coordenadas");
  4946.             houseData[house][houseInterior] = DOF2_GetInt(file, "Interior", "Coordenadas");
  4947.  
  4948.             if(!DOF2_FileExists(storageFile))
  4949.                 DOF2_CreateFile(storageFile);
  4950.  
  4951.             new
  4952.                 slotStorageID[20],
  4953.                 Float:valueOnFile;
  4954.  
  4955.             for(new s; s < MAX_ARMOUR; s++)
  4956.             {
  4957.                 format(slotStorageID, sizeof slotStorageID, "SLOT %d", s);
  4958.  
  4959.                 if(!DOF2_IsSet(storageFile, slotStorageID, "Colete"))
  4960.                     DOF2_SetFloat(storageFile, slotStorageID, 0, "Colete");
  4961.  
  4962.                 valueOnFile = DOF2_GetFloat(storageFile, slotStorageID, "Colete");
  4963.  
  4964.                 if(valueOnFile != 0)
  4965.                     houseData[house][houseArmourStored][s] = valueOnFile;
  4966.             }
  4967.  
  4968.             if(houseData[house][houseStatus] == 1)
  4969.                 houseStatusName = "Trancada";
  4970.  
  4971.             else if(houseData[house][houseStatus] == 0)
  4972.                 houseStatusName = "Destrancada";
  4973.  
  4974.             if(houseData[house][houseRentable] == 1)
  4975.                 houseRentName = "Ativado";
  4976.  
  4977.             else if(houseData[house][houseRentable] == 0)
  4978.                 houseRentName = "Desativado";
  4979.  
  4980.             housesCreated++;
  4981.  
  4982.             format(logString, sizeof logString, "-------- A CASA DE ID %d FOI CRIADA COM SUCESSO! --------", house);
  4983.             WriteLog(LOG_SYSTEM, logString);
  4984.  
  4985.             if(!strcmp(houseData[house][houseOwner], "Ninguem", true))
  4986.             {
  4987.                 housePickupIn[house] = CreateDynamicPickup(1273, 1, houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ]);
  4988.                 housePickupOut[house] = CreateDynamicPickup(1318, 1, houseData[house][houseIntX], houseData[house][houseIntY], houseData[house][houseIntZ]);
  4989.                 houseMapIcon[house] = CreateDynamicMapIcon(houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ], 31, -1, -1, 0, -1, 100.0);
  4990.                 format(textlabel, sizeof textlabel, TEXT_SELLING_HOUSE, houseData[house][housePrice], house);
  4991.                 houseLabel[house] = CreateDynamic3DTextLabel(textlabel, -1, houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ], 20.0);
  4992.             }
  4993.             else
  4994.             {
  4995.                 if(houseData[house][houseRentable] == 1)
  4996.                 {
  4997.                     housePickupIn[house] = CreateDynamicPickup(1272, 1, houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ]);
  4998.                     housePickupOut[house] = CreateDynamicPickup(1318, 1, houseData[house][houseIntX], houseData[house][houseIntY], houseData[house][houseIntZ]);
  4999.                     houseMapIcon[house] = CreateDynamicMapIcon(houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ], 32, -1, -1, 0, -1, 100.0);
  5000.                     format(textlabel, sizeof textlabel, TEXT_RENT_HOUSE, houseData[house][houseTitle], houseData[house][houseOwner], houseData[house][houseTenant], houseData[house][houseRentPrice], houseStatusName, house);
  5001.                     houseLabel[house] = CreateDynamic3DTextLabel(textlabel, -1, houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ], 20.0);
  5002.                 }
  5003.                 else
  5004.                 {
  5005.                     housePickupIn[house] = CreateDynamicPickup(1272, 1, houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ]);
  5006.                     housePickupOut[house] = CreateDynamicPickup(1318, 1, houseData[house][houseIntX], houseData[house][houseIntY], houseData[house][houseIntZ]);
  5007.                     houseMapIcon[house] = CreateDynamicMapIcon(houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ], 32, -1, -1, 0, -1, 100.0);
  5008.                     format(textlabel, sizeof textlabel, TEXT_HOUSE, houseData[house][houseTitle], houseData[house][houseOwner], houseRentName, houseStatusName, house);
  5009.                     houseLabel[house] = CreateDynamic3DTextLabel(textlabel, -1, houseData[house][houseX], houseData[house][houseY], houseData[house][houseZ], 20.0);
  5010.                 }
  5011.             }
  5012.         }
  5013.     }
  5014.     if(housesCreated == 0)
  5015.     {
  5016.         print("\n\n\t========================= LHOUSE ========================");
  5017.         print("\t Não foi detectado nenhuma casa criada.                  ");
  5018.         print("\t Para criar uma, logue no servidor, entre na RCON        ");
  5019.         print("\t e digite /criarcasa.                                   ");
  5020.     }
  5021.     else
  5022.     {
  5023.         print("\n\n\t========================= LHOUSE ========================");
  5024.         printf("\t Foram criadas %d casas.                                ", housesCreated);
  5025.     }
  5026.     return 1;
  5027. }
  5028.  
  5029. IsNumeric(const string[])
  5030. {
  5031.     for (new i = 0, j = strlen(string); i < j; i++)
  5032.     {
  5033.         if (string[i] > '9' || string[i] < '0') return 0;
  5034.     }
  5035.     return 1;
  5036. }
  5037.  
  5038. HouseVehicleDelivery(playerid)
  5039. {
  5040.     GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  5041.  
  5042.     new
  5043.         house = GetHouseByOwner(playerid),
  5044.         logString[128];
  5045.  
  5046.     format(logString, sizeof logString, "O jogador %s[%d], comprou um carro novo para a casa %d.", playerName, playerid, house);
  5047.     WriteLog(LOG_VEHICLES, logString);
  5048.  
  5049.     #if LHOUSE_CITY == 1
  5050.         #if LHOUSE_DELIVERY_METHOD == 1
  5051.             new
  5052.                 rand = random(sizeof vehicleRandomSpawnLS);
  5053.  
  5054.             houseCarSet[playerid] = true;
  5055.             vehicleHouseCarDefined[house] = CreateVehicle(houseVehicle[house][vehicleModel], vehicleRandomSpawnLS[rand][0], vehicleRandomSpawnLS[rand][1], vehicleRandomSpawnLS[rand][2], vehicleRandomSpawnLS[rand][3], 0, 0, 5*60);
  5056.             PutPlayerInVehicle(playerid, vehicleHouseCarDefined[house], 0);
  5057.             SendClientMessage(playerid, -1, "[{FFEC00}LHouse{FFFFFF}] Estacione seu carro aonde quer que ele de spawn e digite {46FE00}/estacionar");
  5058.  
  5059.             return 1;
  5060.         #else
  5061.             new
  5062.                 rand = random(sizeof vehicleRandomSpawnLS);
  5063.  
  5064.             houseCarSet[playerid] = true;
  5065.             vehicleHouseCarDefined[house] = CreateVehicle(houseVehicle[house][vehicleModel], vehicleRandomSpawnLS[rand][0], vehicleRandomSpawnLS[rand][1], vehicleRandomSpawnLS[rand][2], vehicleRandomSpawnLS[rand][3], 0, 0, 5*60);
  5066.             SendClientMessage(playerid, -1, "[{FFEC00}LHouse{FFFFFF}] Vá buscar seu carro na concessionária grotti.");
  5067.  
  5068.             return 1;
  5069.         #endif
  5070.     #elseif LHOUSE_CITY == 2
  5071.         #if LHOUSE_DELIVERY_METHOD == 1
  5072.             new
  5073.                 rand = random(sizeof vehicleRandomSpawnSF);
  5074.  
  5075.             houseCarSet[playerid] = true;
  5076.             vehicleHouseCarDefined[house] = CreateVehicle(houseVehicle[house][vehicleModel], vehicleRandomSpawnSF[rand][0], vehicleRandomSpawnSF[rand][1], vehicleRandomSpawnSF[rand][2], vehicleRandomSpawnSF[rand][3], 0, 0, 5*60);
  5077.             PutPlayerInVehicle(playerid, vehicleHouseCarDefined[house], 0);
  5078.             SendClientMessage(playerid, -1, "[{FFEC00}LHouse{FFFFFF}] Estacione seu carro aonde quer que ele de spawn e digite {46FE00}/estacionar");
  5079.  
  5080.             return 1;
  5081.         #else
  5082.             new
  5083.                 rand = random(sizeof vehicleRandomSpawnSF);
  5084.             houseCarSet[playerid] = true;
  5085.             vehicleHouseCarDefined[house] = CreateVehicle(houseVehicle[house][vehicleModel], vehicleRandomSpawnSF[rand][0], vehicleRandomSpawnSF[rand][1], vehicleRandomSpawnSF[rand][2], vehicleRandomSpawnSF[rand][3], 0, 0, 5*60);
  5086.             SendClientMessage(playerid, -1, "[{FFEC00}LHouse{FFFFFF}] Vá buscar seu carro na concessionária Otto's Auto.");
  5087.  
  5088.             return 1;
  5089.         #endif
  5090.     #else
  5091.        #if LHOUSE_DELIVERY_METHOD == 1
  5092.             new
  5093.                 rand = random(sizeof vehicleRandomSpawnLV);
  5094.  
  5095.             houseCarSet[playerid] = true;
  5096.             vehicleHouseCarDefined[house] = CreateVehicle(houseVehicle[house][vehicleModel], vehicleRandomSpawnLV[rand][0], vehicleRandomSpawnLV[rand][1], vehicleRandomSpawnLV[rand][2], vehicleRandomSpawnLV[rand][3], 0, 0, 5*60);
  5097.             PutPlayerInVehicle(playerid, vehicleHouseCarDefined[house], 0);
  5098.             SendClientMessage(playerid, -1, "[{FFEC00}LHouse{FFFFFF}] Estacione seu carro aonde quer que ele de spawn e digite {46FE00}/estacionar");
  5099.  
  5100.             return 1;
  5101.         #else
  5102.             new
  5103.                 rand = random(sizeof vehicleRandomSpawnLV);
  5104.  
  5105.             houseCarSet[playerid] = true;
  5106.             vehicleHouseCarDefined[house] = CreateVehicle(houseVehicle[house][vehicleModel], vehicleRandomSpawnLV[rand][0], vehicleRandomSpawnLV[rand][1], vehicleRandomSpawnLV[rand][2], vehicleRandomSpawnLV[rand][3], 0, 0, 5*60);
  5107.             SendClientMessage(playerid, -1, "[{FFEC00}LHouse{FFFFFF}] Vá buscar seu carro na Auto Bahn.");
  5108.  
  5109.             return 1;
  5110.         #endif
  5111.     #endif
  5112. }
  5113.  
  5114. Update3DText(house)
  5115. {
  5116.     new
  5117.         houseRentName[20],
  5118.         textlabel[200],
  5119.         houseStatusName[20];
  5120.  
  5121.     if(!strcmp(houseData[house][houseOwner], "Ninguem", true))
  5122.     {
  5123.         if(houseData[house][houseStatus] == 1)
  5124.             houseStatusName = "Trancada";
  5125.  
  5126.         else if(houseData[house][houseStatus] == 0)
  5127.             houseStatusName = "Destrancada";
  5128.  
  5129.         format(textlabel, sizeof textlabel, TEXT_SELLING_HOUSE, houseData[house][housePrice], house);
  5130.         UpdateDynamic3DTextLabelText(houseLabel[house], -1, textlabel);
  5131.         return 1;
  5132.     }
  5133.  
  5134.     else if(strcmp(houseData[house][houseOwner], "Ninguem", true))
  5135.     {
  5136.         if(houseData[house][houseRentable] == 1)
  5137.         {
  5138.             if(houseData[house][houseStatus] == 1)
  5139.                 houseStatusName = "Trancada";
  5140.  
  5141.             else if(houseData[house][houseStatus] == 0)
  5142.                 houseStatusName = "Destrancada";
  5143.  
  5144.             format(textlabel, sizeof textlabel, TEXT_RENT_HOUSE, houseData[house][houseTitle], houseData[house][houseOwner], houseData[house][houseTenant], houseData[house][houseRentPrice], houseStatusName, house);
  5145.             UpdateDynamic3DTextLabelText(houseLabel[house], -1, textlabel);
  5146.             return 1;
  5147.         }
  5148.         else
  5149.         {
  5150.             if(houseData[house][houseStatus] == 1)
  5151.                 houseStatusName = "Trancada";
  5152.  
  5153.             else if(houseData[house][houseStatus] == 0)
  5154.                 houseStatusName = "Destrancada";
  5155.  
  5156.             if(houseData[house][houseRentable] == 1)
  5157.                 houseRentName = "Ativado";
  5158.  
  5159.             else if(houseData[house][houseRentable] == 0)
  5160.                 houseRentName = "Desativado";
  5161.  
  5162.             format(textlabel, sizeof textlabel, TEXT_HOUSE, houseData[house][houseTitle], houseData[house][houseOwner], houseRentName, houseStatusName, house);
  5163.             UpdateDynamic3DTextLabelText(houseLabel[house], -1, textlabel);
  5164.             return 1;
  5165.         }
  5166.     }
  5167.     return 1;
  5168. }
  5169.  
  5170. GetTenantID(house)
  5171. {
  5172.     new
  5173.         tenantID;
  5174.  
  5175.     for(new s = GetMaxPlayers(), i; i < s; i++) {
  5176.         GetPlayerName(i, playerName, MAX_PLAYER_NAME);
  5177.         if (!strcmp(playerName, houseData[house][houseTenant], true)) {
  5178.             if (IsPlayerConnected(i)) {
  5179.                 tenantID = i;
  5180.                 break;
  5181.             }
  5182.             else {
  5183.                 tenantID = -255;
  5184.             }
  5185.         }
  5186.     }
  5187.  
  5188.     return tenantID;
  5189. }
  5190.  
  5191. CreateHouseVehicleBought(playerid, house)
  5192. {
  5193.     new
  5194.         vehiclePath[200];
  5195.  
  5196.     format(vehiclePath, sizeof vehiclePath, "LHouse/Casas/Casa %d.txt", house);
  5197.  
  5198.     houseVehicle[house][vehiclePlate] = "LHouse S";
  5199.     houseVehicle[house][vehicleHouse] = \
  5200.         CreateVehicle(houseVehicle[house][vehicleModel], \
  5201.             houseVehicle[house][vehicleX], \
  5202.             houseVehicle[house][vehicleY], \
  5203.             houseVehicle[house][vehicleZ], \
  5204.             houseVehicle[house][vehicleAngle], \
  5205.             houseVehicle[house][vehicleColor1], \
  5206.             houseVehicle[house][vehicleColor2], \
  5207.             houseVehicle[house][vehicleRespawnTime]);
  5208.  
  5209.     DestroyVehicle(carSetted[playerid]);
  5210.  
  5211.     DOF2_SetString(vehiclePath, "Placa", houseVehicle[house][vehiclePlate], "Veículo");
  5212.     DOF2_SetInt(vehiclePath, "Modelo do Carro", houseVehicle[house][vehicleModel], "Veículo");
  5213.     DOF2_SetInt(vehiclePath, "Valor", houseVehicle[house][vehiclePrice], "Veículo");
  5214.     DOF2_SaveFile();
  5215.  
  5216.     return 1;
  5217. }
  5218.  
  5219. ChangeHouseVehicleColor(house, carColor1, carColor2)
  5220. {
  5221.     new
  5222.         housePath[200];
  5223.  
  5224.     format(housePath, sizeof housePath, "LHouse/Casas/Casa %d.txt", house);
  5225.  
  5226.     houseVehicle[house][vehicleColor1] = carColor1;
  5227.     houseVehicle[house][vehicleColor2] = carColor2;
  5228.  
  5229.     DOF2_SetInt(housePath, "Cor 1", houseVehicle[house][vehicleColor1], "Veículo");
  5230.     DOF2_SetInt(housePath, "Cor 2", houseVehicle[house][vehicleColor2], "Veículo");
  5231.     DOF2_SaveFile();
  5232.  
  5233.     ChangeVehicleColor(houseVehicle[house][vehicleHouse], houseVehicle[house][vehicleColor1], houseVehicle[house][vehicleColor2]);
  5234.     return 1;
  5235. }
  5236.  
  5237. ChangeHouseVehicleModel(house, model, price, mode)
  5238. {
  5239.     new
  5240.         housePath[200];
  5241.  
  5242.     format(housePath, sizeof housePath, "LHouse/Casas/Casa %d.txt", house);
  5243.  
  5244.     houseVehicle[house][vehicleModel] = model;
  5245.     houseVehicle[house][vehiclePrice] = price;
  5246.  
  5247.     DOF2_SetInt(housePath, "Modelo do Carro", houseVehicle[house][vehicleModel], "Veículo");
  5248.     DOF2_SetInt(housePath, "Valor", houseVehicle[house][vehiclePrice], "Veículo");
  5249.     DOF2_SaveFile();
  5250.  
  5251.     if(mode > 0)
  5252.     {
  5253.         DestroyVehicle(houseVehicle[house][vehicleHouse]);
  5254.         houseVehicle[house][vehicleHouse] = CreateVehicle(houseVehicle[house][vehicleModel], houseVehicle[house][vehicleX], houseVehicle[house][vehicleY], houseVehicle[house][vehicleZ], houseVehicle[house][vehicleAngle], houseVehicle[house][vehicleColor1], houseVehicle[house][vehicleColor2], houseVehicle[house][vehicleRespawnTime]);
  5255.     }
  5256.  
  5257.     return 1;
  5258. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement