Advertisement
Guest User

cali house crash

a guest
May 5th, 2011
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 90.80 KB | None | 0 0
  1. /* Dynamic House Creator v.1 by California!
  2. * With this script, you have the ability to create a house anywhere you like.
  3. * You may also set the house name, description, entrance and interior.
  4. * You can also enter, exit, lock, sell and buy a house.
  5. * You can also store cash in your safe.
  6. * If you have any questions, feel free to message me.
  7. * EDIT: Updated last at January 8, 2011.
  8. */
  9.  
  10. // Includes
  11. #include <a_samp>
  12. #include <dini>
  13.  
  14. // Variables
  15. new HousePickup[MAX_PLAYERS];
  16. new HouseCar[MAX_PLAYERS];
  17. new HouseUser[MAX_PLAYERS];
  18. new Text3D:HouseLabel[MAX_PLAYERS];
  19.  
  20. // Is player house owner?
  21. new bool:HouseOwner[MAX_PLAYERS];
  22.  
  23. // Is player setting up house entrance?
  24. new bool:SettingUpEntrance[MAX_PLAYERS];
  25.  
  26. // Is player setting up house?
  27. new bool:IsSettingUpHouse[MAX_PLAYERS];
  28.  
  29. // Is player setting up vehicle?
  30. new bool:IsSettingUpVehicle[MAX_PLAYERS];
  31. new bool:IsUpgradingVehicle[MAX_PLAYERS];
  32.  
  33. // Has player already setup?
  34. new bool:HasAlreadySetupName[MAX_PLAYERS];
  35. new bool:HasAlreadySetupDesc[MAX_PLAYERS];
  36. new bool:HasAlreadySetupEntrance[MAX_PLAYERS];
  37. new bool:HasAlreadySetupInterior[MAX_PLAYERS];
  38. new bool:HasAlreadySetupRentable[MAX_PLAYERS];
  39. new bool:HasAlreadySetupRentPrice[MAX_PLAYERS];
  40. new bool:HasAlreadySetupCar[MAX_PLAYERS];
  41.  
  42. // Rent info.
  43. new bool:IsRentingHouse[MAX_PLAYERS];
  44.  
  45. // Approve status.
  46. new bool:IsApprovalPending[MAX_PLAYERS];
  47.  
  48. // Used later on to store the information into the house variables.
  49. enum SetupHome
  50. {
  51. SetupName[24],
  52. SetupDesc[32],
  53. SetupOwner[24],
  54. SetupPrice,
  55. Float:SetupPX,
  56. Float:SetupPY,
  57. Float:SetupPZ,
  58. Float:SetupTX,
  59. Float:SetupTY,
  60. Float:SetupTZ,
  61. Float:SetupTA,
  62. SetupInt,
  63. SetupVir,
  64. SetupRentable,
  65. SetupRentPrice,
  66. Float:SetupCarX,
  67. Float:SetupCarY,
  68. Float:SetupCarZ,
  69. Float:SetupCarRot,
  70. SetupCarModel
  71. };
  72. new SetupHouseInfo[MAX_PLAYERS][SetupHome];
  73.  
  74. // The house enum, contains a lot of house shit.
  75. enum Home
  76. {
  77. Name[64],
  78. Desc[64],
  79. Owner[24],
  80. Price,
  81. Float:PX,
  82. Float:PY,
  83. Float:PZ,
  84. Float:TX,
  85. Float:TY,
  86. Float:TZ,
  87. Float:TA,
  88. Cash,
  89. Int,
  90. Vir,
  91. Locked,
  92. Rentable,
  93. RentPrice,
  94. Float:CarX,
  95. Float:CarY,
  96. Float:CarZ,
  97. Float:CarRot,
  98. CarModel
  99. };
  100. new HouseInfo[14][Home];
  101.  
  102. // Called when a player disconnects.
  103. public OnPlayerDisconnect(playerid)
  104. {
  105. for(new h = 0; h < sizeof(HouseInfo); h++)
  106. {
  107. new pname[MAX_PLAYER_NAME], file[100];
  108. GetPlayerName(playerid, pname, sizeof(pname));
  109. format(file, sizeof(file), "Houses/%s.ini", pname);
  110. if(dini_Exists(file))
  111. {
  112. dini_Set(file, "Owner", pname);
  113. dini_FloatSet(file, "Pickup X", HouseInfo[h][PX]);
  114. dini_FloatSet(file, "Pickup Y", HouseInfo[h][PY]);
  115. dini_FloatSet(file, "Pickup Z", HouseInfo[h][PZ]);
  116. dini_FloatSet(file, "Teleport X", HouseInfo[h][TX]);
  117. dini_FloatSet(file, "Teleport Y", HouseInfo[h][TY]);
  118. dini_FloatSet(file, "Teleport Z", HouseInfo[h][TZ]);
  119. dini_FloatSet(file, "Teleport Angle", HouseInfo[h][TA]);
  120. dini_IntSet(file, "Price", HouseInfo[h][Price]);
  121. dini_IntSet(file, "Interior", HouseInfo[h][Int]);
  122. dini_IntSet(file, "Virtual", HouseInfo[h][Vir]);
  123. dini_IntSet(file, "Cash", HouseInfo[h][Cash]);
  124. dini_IntSet(file, "Rentable", HouseInfo[h][Rentable]);
  125. dini_IntSet(file, "Rent Price", HouseInfo[h][RentPrice]);
  126. dini_IntSet(file, "Car Model", HouseInfo[h][CarModel]);
  127. dini_FloatSet(file, "Car X", HouseInfo[h][CarX]);
  128. dini_FloatSet(file, "Car Y", HouseInfo[h][CarY]);
  129. dini_FloatSet(file, "Car Z", HouseInfo[h][CarZ]);
  130. dini_FloatSet(file, "Car Rotation", HouseInfo[h][CarRot]);
  131. DestroyPickup(HousePickup[playerid]);
  132. Delete3DTextLabel(HouseLabel[playerid]);
  133. for(new i; i<MAX_PLAYERS; i++)
  134. {
  135. RemovePlayerMapIcon(i, HouseUser[playerid]);
  136. }
  137. return 1;
  138. }
  139. }
  140. return 1;
  141. }
  142.  
  143. // Called when a player connects.
  144. public OnPlayerConnect(playerid)
  145. {
  146. for(new h = 0; h < sizeof(HouseInfo); h++)
  147. {
  148. new pname[MAX_PLAYER_NAME];
  149. new name[256], desc[256];
  150. new file[100], str[128];
  151. GetPlayerName(playerid, pname, sizeof(pname));
  152. format(file, sizeof(file), "Houses/%s.ini", pname);
  153. if(dini_Exists(file))
  154. {
  155. name = dini_Get(file, "Name");
  156. desc = dini_Get(file, "Description");
  157. HouseInfo[h][Owner] = pname;
  158. HouseInfo[h][Price] = dini_Int(file, "Price");
  159. HouseInfo[h][PX] = dini_Float(file, "Pickup X");
  160. HouseInfo[h][PY] = dini_Float(file, "Pickup Y");
  161. HouseInfo[h][PZ] = dini_Float(file, "Pickup Z");
  162. HouseInfo[h][TX] = dini_Float(file, "Teleport X");
  163. HouseInfo[h][TY] = dini_Float(file, "Teleport Y");
  164. HouseInfo[h][TZ] = dini_Float(file, "Teleport Z");
  165. HouseInfo[h][TA] = dini_Float(file, "Teleport Angle");
  166. HouseInfo[h][Int] = dini_Int(file, "Interior");
  167. HouseInfo[h][Vir] = dini_Int(file, "Virtual");
  168. HouseInfo[h][Cash] = dini_Int(file, "Cash");
  169. HouseInfo[h][Rentable] = dini_Int(file, "Rentable");
  170. HouseInfo[h][RentPrice] = dini_Int(file, "Rent Price");
  171. HouseInfo[h][CarModel] = dini_Int(file, "Car Model");
  172. HouseInfo[h][CarX] = dini_Float(file, "Car X");
  173. HouseInfo[h][CarY] = dini_Float(file, "Car Y");
  174. HouseInfo[h][CarZ] = dini_Float(file, "Car Z");
  175. HouseInfo[h][CarRot] = dini_Float(file, "Car Rotation");
  176. if(HouseInfo[h][Rentable] == 0)
  177. {
  178. format(str, sizeof(str), "Name: %s\n\nDescription: %s\n\nOwner: %s", name, desc, pname);
  179. }
  180. else
  181. {
  182. format(str, sizeof(str), "Name: %s\n\nDescription: %s\n\nOwner: %s\n\nRent Price: $%i", name, desc, pname, HouseInfo[h][RentPrice]);
  183. }
  184. HouseLabel[playerid] = Create3DTextLabel(str, 0xF97804FF, HouseInfo[h][PX], HouseInfo[h][PY], HouseInfo[h][PZ], 20.0, 0);
  185. HouseOwner[playerid] = true;
  186. HousePickup[playerid] = CreatePickup(1273, 23, HouseInfo[h][PX], HouseInfo[h][PY], HouseInfo[h][PZ]);
  187. HouseCar[playerid] = CreateVehicle(HouseInfo[h][CarModel], HouseInfo[h][CarX], HouseInfo[h][CarY], HouseInfo[h][CarZ], HouseInfo[h][CarRot], -1, -1, 5000000);
  188. HouseUser[playerid] = playerid;
  189. for(new i; i<MAX_PLAYERS; i++)
  190. {
  191. SetPlayerMapIcon(i, HouseUser[playerid], HouseInfo[h][CarX], HouseInfo[h][CarY], HouseInfo[h][CarZ], 31, MAPICON_GLOBAL);
  192. }
  193. return 1;
  194. }
  195. }
  196. return 1;
  197. }
  198.  
  199. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  200. {
  201. if(vehicleid == HouseCar[playerid])
  202. {
  203. if(HouseOwner[playerid] == false)
  204. {
  205. if(!ispassenger)
  206. {
  207. new Float:X, Float:Y, Float:Z;
  208. SendClientMessage(playerid, 0xE21F1FFF, "You don't have the keys for this vehicle!");
  209. GetPlayerPos(playerid, X, Y, Z);
  210. SetPlayerPos(playerid, X, Y, Z);
  211. return 1;
  212. }
  213. }
  214. }
  215. return 1;
  216. }
  217.  
  218. strtok(const string[], &index)
  219. {
  220. new length = strlen(string);
  221. while ((index < length) && (string[index] <= ' '))
  222. {
  223. index++;
  224. }
  225.  
  226. new offset = index;
  227. new result[20];
  228. while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  229. {
  230. result[index - offset] = string[index];
  231. index++;
  232. }
  233. result[index - offset] = EOS;
  234. return result;
  235. }
  236.  
  237. // Called when a player types a command.
  238. public OnPlayerCommandText(playerid, cmdtext[])
  239. {
  240.  
  241. new cmd[128], idx;
  242. cmd = strtok(cmdtext, idx);
  243. if(!strcmp(cmdtext, "/createhouse", true))
  244. { // Buying house.
  245. if(HouseOwner[playerid] == false)
  246. {
  247.  
  248. new name, pName[MAX_PLAYER_NAME];
  249. name = GetPlayerName(playerid, pName, sizeof(pName));
  250. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  251. IsSettingUpHouse[playerid] = true;
  252. SetupHouseInfo[playerid][SetupOwner] = name;
  253. new file[100];
  254. format(file, sizeof(file), "Houses/%s.ini", pName);
  255. dini_Create(file);
  256. dini_Set(file, "Owner", pName);
  257. return 1;
  258. }
  259. }
  260. if(IsSettingUpHouse[playerid] == false)
  261. {
  262.  
  263. else
  264. {
  265. SendClientMessage(playerid, 0xE21F1FFF, "You are already setting up your house.");
  266. return 1;
  267. }
  268. }
  269. else
  270. {
  271. SendClientMessage(playerid, 0xE21F1FFF, "You already own a house.");
  272. return 1;
  273. }
  274. return 1;
  275. }
  276. if (strcmp("/buyhouse", cmdtext, true, 10) == 0)
  277. {
  278. for(new i; i<MAX_HOUSES; i++)
  279. {
  280. if(!IsPlayerInRangeOfPoint(playerid, 3, HouseInfo[i][PickupX], HouseInfo[i][PickupY], HouseInfo[i][PickupZ])) continue;
  281.  
  282. new Pname[24]; GetPlayerName(playerid, Pname, 24);
  283. for(new S; S<MAX_HOUSES; S++)
  284. {
  285. if(!strcmp(dini_Get("Owned.ini", HouseInfo[S][HouseNames]), Pname)) return SendClientMessage(playerid, 0xF60000AA, "You already have a house!");
  286. }
  287. if(GetPlayerMoney(playerid) < HouseInfo[i][HouseCost]) return SendClientMessage(playerid, 0xF60000AA, "You don't have enough money to buy this house");
  288. if(HouseInfo[i][Owned] == 1) return SendClientMessage(playerid, 0xF60000AA, "This house is already owned!");
  289. GivePlayerMoney(playerid, - HouseInfo[i][HouseCost]);
  290. GameTextForPlayer(playerid, "~r~House Purchased!", 2000, 3);
  291. HouseInfo[i][Owned] = 1;
  292. GetPlayerName(playerid, Pname, 24);
  293. format(HouseInfo[i][HouseOwner], 24, "%s", Pname);
  294. dini_Set("Owners.ini", HouseInfo[i][HouseNames], Pname);
  295. return 1;
  296. }
  297. SendClientMessage(playerid, 0xF60000AA, "You are not close enough to a house");
  298. return 1;
  299. }
  300. if(!strcmp(cmdtext, "/houseupgrade", true))
  301. {
  302. if(HouseOwner[playerid] == true)
  303. {
  304.  
  305.  
  306. if(listitem == 0) // Name
  307. {
  308. ShowPlayerDialog(playerid, 681, DIALOG_STYLE_INPUT, "Confirm Name", "Please type in the name of your house.\nExample: Family house.", "Confirm", "Cancel");
  309. }
  310. if(listitem == 1) // Description
  311. {
  312. ShowPlayerDialog(playerid, 682, DIALOG_STYLE_INPUT, "Confirm Description", "Please type in the description of your house.\nExample: My house is the best house ever.", "Confirm", "Cancel");
  313. }
  314. if(listitem == 2) // Entrance
  315. {
  316. ShowPlayerDialog(playerid, 683, DIALOG_STYLE_MSGBOX, "Confirm Entrance", "Are you sure you want to mark your current position as the entrance to your house?", "Yes", "No");
  317. }
  318. if(listitem == 3) // Interior
  319. {
  320. ShowPlayerDialog(playerid, 684, DIALOG_STYLE_LIST, "Confirm Interior", "Trailer ($7500)\nRyder's Crib ($9000)\nCJ's Crib ($10000)\nSweet's Crib ($12500)\nFancy Crib ($20000)\nWillowfield Safehouse ($25000)\nMansion ($500,000)\nMadd Dogg's Mansion ($1,000,000)\nCrack Palace ($2,500,000)", "Buy", "Cancel");
  321. }
  322. if(listitem == 4) // Vehicle
  323. {
  324. ShowPlayerDialog(playerid, 688, DIALOG_STYLE_INPUT, "Vehicle", "Please enter a vehicle ID from 400 to 611.", "Create", "Cancel");
  325. }
  326. if(listitem == 5) // Rent
  327. {
  328. ShowPlayerDialog(playerid, 685, DIALOG_STYLE_LIST, "Rent", "Set Rentable\nSet Rent Price", "Select", "Cancel");
  329. }
  330. }
  331. }
  332.  
  333. else
  334. {
  335. SendClientMessage(playerid, 0xE21F1FFF, "You don't own a house.");
  336. }
  337. return 1;
  338. }
  339. if(!strcmp(cmdtext, "/confirm", true))
  340. { // Confirming entrance/vehicle.
  341. if(SettingUpEntrance[playerid] == true)
  342. {
  343. new str[32], str2[32], str3[32];
  344. new Float:X, Float:Y, Float:Z;
  345. GetPlayerPos(playerid, X, Y, Z);
  346. SetupHouseInfo[playerid][SetupPX] = X;
  347. SetupHouseInfo[playerid][SetupPY] = Y;
  348. SetupHouseInfo[playerid][SetupPZ] = Z;
  349. HousePickup[playerid] = CreatePickup(1273, 23, X, Y, Z);
  350. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  351. SendClientMessage(playerid, 0xFFFF00FF, "You have set your house entrance coordinates to:");
  352. format(str, sizeof(str), "X: %f", X);
  353. SendClientMessage(playerid, 0xFFFFFFAA, str);
  354. format(str2, sizeof(str2), "Y: %f", Y);
  355. SendClientMessage(playerid, 0xFFFFFFAA, str2);
  356. format(str3, sizeof(str3), "Z: %f", Z);
  357. SendClientMessage(playerid, 0xFFFFFFAA, str3);
  358. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  359. HasAlreadySetupEntrance[playerid] = true;
  360. return 1;
  361. }
  362. if(IsSettingUpVehicle[playerid] == true)
  363. {
  364. new Float:X, Float:Y, Float:Z, Float:A;
  365. GetPlayerPos(playerid, X, Y, Z);
  366. GetPlayerFacingAngle(playerid, A);
  367. SetupHouseInfo[playerid][SetupCarX] = X;
  368. SetupHouseInfo[playerid][SetupCarY] = Y;
  369. SetupHouseInfo[playerid][SetupCarZ] = Z;
  370. SetupHouseInfo[playerid][SetupCarRot] = A;
  371. HouseCar[playerid] = CreateVehicle(SetupHouseInfo[playerid][SetupCarModel], X, Y, Z, A, -1, -1, 5000000);
  372. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  373. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  374. HasAlreadySetupCar[playerid] = true;
  375. IsSettingUpVehicle[playerid] = false;
  376. return 1;
  377. }
  378. if(IsUpgradingVehicle[playerid] == true)
  379. {
  380. for(new h = 0; h < sizeof(HouseInfo); h++)
  381. {
  382. new Float:X, Float:Y, Float:Z, Float:A;
  383. GetPlayerPos(playerid, X, Y, Z);
  384. GetPlayerFacingAngle(playerid, A);
  385. HouseInfo[h][CarX] = X;
  386. HouseInfo[h][CarY] = Y;
  387. HouseInfo[h][CarZ] = Z;
  388. HouseInfo[h][CarRot] = A;
  389. HouseCar[playerid] = CreateVehicle(HouseInfo[h][CarModel], X, Y, Z, A, -1, -1, 5000000);
  390. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  391. IsUpgradingVehicle[playerid] = false;
  392. return 1;
  393. }
  394. }
  395. return 1;
  396. }
  397. if(!strcmp(cmdtext, "/lockhouse", true))
  398. { // Locking house.
  399. for(new h = 0; h < sizeof(HouseInfo); h++)
  400. {
  401. if(HouseOwner[playerid] == true)
  402. {
  403. if(IsPlayerInRangeOfPoint(playerid, 3.0, HouseInfo[h][PX], HouseInfo[h][PY], HouseInfo[h][PZ]))
  404. {
  405. if(HouseInfo[h][Locked] == 0)
  406. {
  407. HouseInfo[h][Locked] = 1;
  408. PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
  409. GameTextForPlayer(playerid, "~r~House locked!", 5000, 6);
  410. return 1;
  411. }
  412. else if(HouseInfo[h][Locked] == 1)
  413. {
  414. HouseInfo[h][Locked] = 0;
  415. PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
  416. GameTextForPlayer(playerid, "~g~House unlocked!", 5000, 6);
  417. return 1;
  418. }
  419. else if(!IsPlayerInRangeOfPoint(playerid, 3.0, HouseInfo[h][PX], HouseInfo[h][PY], HouseInfo[h][PZ]))
  420. {
  421. SendClientMessage(playerid, 0xE21F1FFF, "You are not near your house.");
  422. return 1;
  423. }
  424. }
  425. else if(HouseOwner[playerid] == false)
  426. {
  427. SendClientMessage(playerid, 0xE21F1FFF, "You don't own a house.");
  428. return 1;
  429. }
  430. }
  431. }
  432. return 1;
  433. }
  434. if(!strcmp(cmdtext, "/enter", true))
  435. { // Enter house.
  436. for(new h = 0; h < sizeof(HouseInfo); h++)
  437. {
  438. if(IsPlayerInRangeOfPoint(playerid, 3.0, HouseInfo[h][PX], HouseInfo[h][PY], HouseInfo[h][PZ]))
  439. {
  440. if(HouseInfo[h][Locked] == 0 || IsRentingHouse[playerid] == true)
  441. {
  442. SetPlayerPos(playerid, HouseInfo[h][TX], HouseInfo[h][TY], HouseInfo[h][TZ]);
  443. SetPlayerFacingAngle(playerid, HouseInfo[h][TA]);
  444. SetPlayerInterior(playerid, HouseInfo[h][Int]);
  445. SetPlayerVirtualWorld(playerid, HouseInfo[h][Vir]);
  446. return 1;
  447. }
  448. else
  449. {
  450. SendClientMessage(playerid, 0xE12F1FFF, "This house is locked.");
  451. return 1;
  452. }
  453. }
  454. else
  455. {
  456. SendClientMessage(playerid, 0xE12F1FFF, "You are not near a house.");
  457. return 1;
  458. }
  459. }
  460. return 1;
  461. }
  462. if(!strcmp(cmdtext, "/exit", true))
  463. { // Exit house.
  464. for(new h = 0; h < sizeof(HouseInfo); h++)
  465. {
  466. if(IsPlayerInRangeOfPoint(playerid, 3.0, HouseInfo[h][TX], HouseInfo[h][TY], HouseInfo[h][TZ]))
  467. {
  468. SetPlayerPos(playerid, HouseInfo[h][PX], HouseInfo[h][PY], HouseInfo[h][PZ]);
  469. SetPlayerFacingAngle(playerid, 0.0);
  470. SetPlayerInterior(playerid, 0);
  471. SetPlayerVirtualWorld(playerid, 0);
  472. return 1;
  473. }
  474. else
  475. {
  476. SendClientMessage(playerid, 0xE12F1FFF, "You are not in a house.");
  477. return 1;
  478. }
  479. }
  480. return 1;
  481. }
  482. if(!strcmp(cmdtext, "/sellhouse", true))
  483. { // Sell your house.
  484. for(new h = 0; h < sizeof(HouseInfo); h++)
  485. {
  486. if(HouseOwner[playerid] == true)
  487. {
  488. new str[64];
  489. format(str, sizeof(str), "Congratulations! You have sold your house for $%i.",HouseInfo[h][Price]/2);
  490. SendClientMessage(playerid, 0xFFFF00FF, str);
  491. GivePlayerMoney(playerid, HouseInfo[h][Price]/2);
  492. HouseOwner[playerid] = false;
  493. HouseInfo[h][Name] = 0;
  494. HouseInfo[h][Desc] = 0;
  495. HouseInfo[h][Owner] = 0;
  496. HouseInfo[h][Price] = 0;
  497. HouseInfo[h][PX] = 0.0;
  498. HouseInfo[h][PY] = 0.0;
  499. HouseInfo[h][PZ] = 0.0;
  500. HouseInfo[h][TX] = 0.0;
  501. HouseInfo[h][TY] = 0.0;
  502. HouseInfo[h][TZ] = 0.0;
  503. HouseInfo[h][TA] = 0.0;
  504. HouseInfo[h][Int] = 0;
  505. HouseInfo[h][Vir] = 0;
  506. DestroyVehicle(HouseCar[playerid]);
  507. DestroyPickup(HousePickup[playerid]);
  508. Delete3DTextLabel(HouseLabel[playerid]);
  509. new file[100], pName[MAX_PLAYER_NAME];
  510. GetPlayerName(playerid, pName, 24);
  511. format(file, sizeof(file), "Houses/%s.ini", pName);
  512. dini_Remove(file);
  513. return 1;
  514. }
  515. else
  516. {
  517. SendClientMessage(playerid, 0xE21F1FFF, "You don't own a house.");
  518. return 1;
  519. }
  520. }
  521. return 1;
  522. }
  523. if(!strcmp(cmdtext, "/storecash", true))
  524. { // Store cash in house safe.
  525. for(new h = 0; h < sizeof(HouseInfo); h++)
  526. {
  527. if(HouseOwner[playerid] == true)
  528. {
  529. if(IsPlayerInRangeOfPoint(playerid, 3.0, HouseInfo[h][TX], HouseInfo[h][TY], HouseInfo[h][TZ]))
  530. {
  531. ShowPlayerDialog(playerid, 674, DIALOG_STYLE_INPUT, "Cash", "Please enter an amount you would like to store in your cash box.", "Store", "Cancel");
  532. return 1;
  533. }
  534. else
  535. {
  536. SendClientMessage(playerid, 0xE12F1FFF, "You are not in a house.");
  537. return 1;
  538. }
  539. }
  540. else
  541. {
  542. SendClientMessage(playerid, 0xE12F1FFF, "You don't own a house.");
  543. return 1;
  544. }
  545. }
  546. return 1;
  547. }
  548. if(!strcmp(cmdtext, "/takecash", true))
  549. { // Take cash from house safe.
  550. for(new h = 0; h < sizeof(HouseInfo); h++)
  551. {
  552. if(HouseOwner[playerid] == true)
  553. {
  554. if(IsPlayerInRangeOfPoint(playerid, 3.0, HouseInfo[h][TX], HouseInfo[h][TY], HouseInfo[h][TZ]))
  555. {
  556. ShowPlayerDialog(playerid, 675, DIALOG_STYLE_INPUT, "Cash", "Please enter an amount you would like to take from your cash box.", "Store", "Cancel");
  557. return 1;
  558. }
  559. else
  560. {
  561. SendClientMessage(playerid, 0xE12F1FFF, "You are not in a house.");
  562. return 1;
  563. }
  564. }
  565. else
  566. {
  567. SendClientMessage(playerid, 0xE12F1FFF, "You don't own a house.");
  568. return 1;
  569. }
  570. }
  571. return 1;
  572. }
  573. if(!strcmp(cmdtext, "/renthouse", true))
  574. { // Renting house.
  575. for(new h = 0; h < sizeof(HouseInfo); h++)
  576. {
  577. if(HouseOwner[playerid] == false)
  578. {
  579. if(IsPlayerInRangeOfPoint(playerid, 3.0, HouseInfo[h][TX], HouseInfo[h][TY], HouseInfo[h][TZ]))
  580. {
  581. if(HouseInfo[h][Rentable] == 1)
  582. {
  583. if(IsRentingHouse[playerid] == false)
  584. {
  585. new string[64];
  586. format(string, sizeof(string), "Are you sure you would like to rent this house for $%i?", HouseInfo[h][RentPrice]);
  587. ShowPlayerDialog(playerid, 676, DIALOG_STYLE_MSGBOX, "Confirm Rent", string, "Yes", "No");
  588. return 1;
  589. }
  590. else
  591. {
  592. SendClientMessage(playerid, 0xE21F1FFF, "You already rent a house!");
  593. return 1;
  594. }
  595. }
  596. else
  597. {
  598. SendClientMessage(playerid, 0xE21F1FFF, "This house is not available for rent.");
  599. return 1;
  600. }
  601. }
  602. else
  603. {
  604. SendClientMessage(playerid, 0xE21F1FFF, "You are not near a house.");
  605. return 1;
  606. }
  607. }
  608. else
  609. {
  610. SendClientMessage(playerid, 0xE21F1FFF, "You cannot rent a house if you own a house!");
  611. return 1;
  612. }
  613. }
  614. return 1;
  615. }
  616. if(!strcmp(cmdtext, "/unrenthouse", true))
  617. { // Unrenting house.
  618. for(new h = 0; h < sizeof(HouseInfo); h++)
  619. {
  620. if(IsRentingHouse[playerid] == true)
  621. {
  622. SendClientMessage(playerid, 0xFFFF00FF, "You have unrented the house, you are now homeless.");
  623. IsRentingHouse[playerid] = false;
  624. return 1;
  625. }
  626. else
  627. {
  628. SendClientMessage(playerid, 0xE21F1FFF, "You are not renting any house!");
  629. return 1;
  630. }
  631. }
  632. return 1;
  633. }
  634. if(strcmp(cmd, "/park", true) == 0)
  635. { // Park house car.
  636. for(new h = 0; h < sizeof(HouseInfo); h++)
  637. {
  638. if(HouseOwner[playerid] == true)
  639. {
  640. if(IsPlayerInVehicle(playerid, HouseCar[playerid]))
  641. {
  642. new Float:X, Float:Y, Float:Z, Float:A;
  643. GetVehiclePos(HouseCar[playerid], X, Y, Z);
  644. GetVehicleZAngle(HouseCar[playerid], A);
  645. HouseInfo[h][CarX] = X;
  646. HouseInfo[h][CarY] = Y;
  647. HouseInfo[h][CarZ] = Z;
  648. HouseInfo[h][CarRot] = A;
  649. DestroyVehicle(HouseCar[playerid]);
  650. HouseCar[playerid] = CreateVehicle(HouseInfo[h][CarModel], HouseInfo[h][CarX], HouseInfo[h][CarY], HouseInfo[h][CarZ], HouseInfo[h][CarRot], -1, -1, 5000000);
  651. SendClientMessage(playerid, 0x33CCFFAA, "House car parked successfully.");
  652. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  653. return 1;
  654. }
  655. else
  656. {
  657. SendClientMessage(playerid, 0xE21F1FFF, "You are not in your vehicle!");
  658. return 1;
  659. }
  660. }
  661. else
  662. {
  663. SendClientMessage(playerid, 0xE21F1FFF, "You don't own a house.");
  664. return 1;
  665. }
  666. }
  667. return 1;
  668. }
  669. if(strcmp(cmd, "/approvehouse", true) == 0)
  670. { // Accepting house.
  671. if(!IsPlayerAdmin(playerid))
  672. return SendClientMessage(playerid, 0xFFFFFFAA, "SERVER: Unknown command.");
  673. new tmp[128], giveplayerid;
  674. tmp = strtok(cmdtext, idx);
  675. if(!strlen(tmp)) {
  676. SendClientMessage(playerid, 0xE21F1FFF, "USAGE: /approvehouse [playerid/PartOfName]");
  677. return 1;
  678. }
  679. giveplayerid = ReturnUser(tmp);
  680. if(IsPlayerConnected(giveplayerid)) {
  681. if(giveplayerid != INVALID_PLAYER_ID) {
  682. if(IsApprovalPending[giveplayerid] == true) {
  683. new money = GetPlayerMoney(giveplayerid);
  684. if(money < SetupHouseInfo[giveplayerid][SetupPrice])
  685. { // Cannot afford, so we'll reset all variables used.
  686. SendClientMessage(giveplayerid, 0xE21F1FFF, "You cannot afford the house.");
  687. IsSettingUpHouse[giveplayerid] = false; SettingUpEntrance[giveplayerid] = false;
  688. HasAlreadySetupName[giveplayerid] = false; HasAlreadySetupDesc[giveplayerid] = false;
  689. HasAlreadySetupEntrance[giveplayerid] = false; HasAlreadySetupInterior[giveplayerid] = false;
  690. HasAlreadySetupRentable[giveplayerid] = false; HasAlreadySetupRentPrice[giveplayerid] = false;
  691. HasAlreadySetupCar[giveplayerid] = false;
  692. SetupHouseInfo[giveplayerid][SetupName] = 0; SetupHouseInfo[giveplayerid][SetupDesc] = 0;
  693. SetupHouseInfo[giveplayerid][SetupOwner] = 0; SetupHouseInfo[giveplayerid][SetupPrice] = 0;
  694. SetupHouseInfo[giveplayerid][SetupPX] = 0.0; SetupHouseInfo[giveplayerid][SetupPY] = 0.0;
  695. SetupHouseInfo[giveplayerid][SetupPZ] = 0.0; SetupHouseInfo[giveplayerid][SetupTX] = 0.0;
  696. SetupHouseInfo[giveplayerid][SetupTY] = 0.0; SetupHouseInfo[giveplayerid][SetupTZ] = 0.0;
  697. SetupHouseInfo[giveplayerid][SetupTA] = 0.0; SetupHouseInfo[giveplayerid][SetupInt] = 0;
  698. SetupHouseInfo[giveplayerid][SetupVir] = 0; SetupHouseInfo[giveplayerid][SetupRentable] = 0;
  699. SetupHouseInfo[giveplayerid][SetupRentPrice] = 0; SetupHouseInfo[giveplayerid][SetupCarX] = 0.0;
  700. SetupHouseInfo[giveplayerid][SetupCarY] = 0.0; SetupHouseInfo[giveplayerid][SetupCarZ] = 0.0;
  701. SetupHouseInfo[giveplayerid][SetupCarRot] = 0.0; SetupHouseInfo[giveplayerid][SetupCarModel] = 0;
  702. DestroyPickup(HousePickup[playerid]);
  703. Delete3DTextLabel(HouseLabel[playerid]);
  704. DestroyVehicle(HouseCar[playerid]);
  705. IsApprovalPending[giveplayerid] = false;
  706. PlayerPlaySound(giveplayerid, 1085, 0.0, 0.0, 0.0);
  707. new file[100], pname[24];
  708. GetPlayerName(giveplayerid, pname, 24);
  709. format(file, sizeof(file), "Houses/%s.ini", pname);
  710. dini_Remove(file);
  711. return 1;
  712. }
  713. else { // If player can afford house.
  714. new str[64];
  715. for(new h = 0; h < sizeof(HouseInfo); h++)
  716. { // Store setup data in house variables.
  717. new str2[128];
  718. HouseInfo[h][Name] = SetupHouseInfo[giveplayerid][SetupName];
  719. HouseInfo[h][Desc] = SetupHouseInfo[giveplayerid][SetupDesc];
  720. HouseInfo[h][Owner] = SetupHouseInfo[giveplayerid][SetupOwner];
  721. HouseInfo[h][Price] = SetupHouseInfo[giveplayerid][SetupPrice];
  722. HouseInfo[h][PX] = SetupHouseInfo[giveplayerid][SetupPX];
  723. HouseInfo[h][PY] = SetupHouseInfo[giveplayerid][SetupPY];
  724. HouseInfo[h][PZ] = SetupHouseInfo[giveplayerid][SetupPZ];
  725. HouseInfo[h][TX] = SetupHouseInfo[giveplayerid][SetupTX];
  726. HouseInfo[h][TY] = SetupHouseInfo[giveplayerid][SetupTY];
  727. HouseInfo[h][TZ] = SetupHouseInfo[giveplayerid][SetupTZ];
  728. HouseInfo[h][TA] = SetupHouseInfo[giveplayerid][SetupTA];
  729. HouseInfo[h][Int] = SetupHouseInfo[giveplayerid][SetupInt];
  730. HouseInfo[h][Vir] = SetupHouseInfo[giveplayerid][SetupVir];
  731. HouseInfo[h][Locked] = 0;
  732. HouseInfo[h][Rentable] = SetupHouseInfo[giveplayerid][SetupRentable];
  733. HouseInfo[h][RentPrice] = SetupHouseInfo[giveplayerid][SetupRentPrice];
  734. HouseInfo[h][CarModel] = SetupHouseInfo[giveplayerid][SetupCarModel];
  735. HouseInfo[h][CarX] = SetupHouseInfo[giveplayerid][SetupCarX];
  736. HouseInfo[h][CarY] = SetupHouseInfo[giveplayerid][SetupCarY];
  737. HouseInfo[h][CarZ] = SetupHouseInfo[giveplayerid][SetupCarZ];
  738. HouseInfo[h][CarRot] = SetupHouseInfo[giveplayerid][SetupCarRot];
  739. PlayerPlaySound(giveplayerid, 1149, 0.0, 0.0, 0.0);
  740. format(str, sizeof(str), "Congratulations! You have bought a house for $%i.", SetupHouseInfo[giveplayerid][SetupPrice]);
  741. SendClientMessage(giveplayerid, 0xFFFF00FF, str);
  742. GivePlayerMoney(giveplayerid, -HouseInfo[h][Price]);
  743. HouseOwner[giveplayerid] = true;
  744. IsSettingUpHouse[giveplayerid] = false; SettingUpEntrance[giveplayerid] = false;
  745. HasAlreadySetupName[giveplayerid] = false; HasAlreadySetupDesc[giveplayerid] = false;
  746. HasAlreadySetupEntrance[giveplayerid] = false; HasAlreadySetupInterior[giveplayerid] = false;
  747. SetupHouseInfo[giveplayerid][SetupName] = 0; SetupHouseInfo[giveplayerid][SetupDesc] = 0;
  748. SetupHouseInfo[giveplayerid][SetupOwner] = 0; SetupHouseInfo[giveplayerid][SetupPrice] = 0;
  749. SetupHouseInfo[giveplayerid][SetupPX] = 0.0; SetupHouseInfo[giveplayerid][SetupPY] = 0.0;
  750. SetupHouseInfo[giveplayerid][SetupPZ] = 0.0; SetupHouseInfo[giveplayerid][SetupTX] = 0.0;
  751. SetupHouseInfo[giveplayerid][SetupTY] = 0.0; SetupHouseInfo[giveplayerid][SetupTZ] = 0.0;
  752. SetupHouseInfo[giveplayerid][SetupTA] = 0.0; SetupHouseInfo[giveplayerid][SetupInt] = 0;
  753. SetupHouseInfo[giveplayerid][SetupVir] = 0; HasAlreadySetupRentable[giveplayerid] = false;
  754. SetupHouseInfo[giveplayerid][SetupRentable] = 0; HasAlreadySetupCar[giveplayerid] = false;
  755. SetupHouseInfo[giveplayerid][SetupRentable] = 0;
  756. SetupHouseInfo[giveplayerid][SetupRentPrice] = 0; SetupHouseInfo[giveplayerid][SetupCarX] = 0.0;
  757. SetupHouseInfo[giveplayerid][SetupCarY] = 0.0; SetupHouseInfo[giveplayerid][SetupCarZ] = 0.0;
  758. SetupHouseInfo[giveplayerid][SetupCarRot] = 0.0; SetupHouseInfo[giveplayerid][SetupCarModel] = 0;
  759. HasAlreadySetupRentPrice[giveplayerid] = false;
  760. IsApprovalPending[giveplayerid] = false;
  761. new pname[MAX_PLAYER_NAME];
  762. new name[256], desc[256];
  763. new file[100];
  764. GetPlayerName(giveplayerid, pname, sizeof(pname));
  765. format(file, sizeof(file), "Houses/%s.ini", pname);
  766. name = dini_Get(file, "Name");
  767. desc = dini_Get(file, "Description");
  768. format(str2, sizeof(str2), "Name: %s\n\nDescription: %s\n\nOwner: %s", name, desc, pname);
  769. HouseLabel[giveplayerid] = Create3DTextLabel(str2, 0xF97804FF, HouseInfo[h][PX], HouseInfo[h][PY], HouseInfo[h][PZ], 20.0, 0);
  770. for(new i; i<MAX_PLAYERS; i++)
  771. {
  772. SetPlayerMapIcon(i, HouseUser[playerid], HouseInfo[h][CarX], HouseInfo[h][CarY], HouseInfo[h][CarZ], 31, MAPICON_GLOBAL);
  773. }
  774. return 1;
  775. }
  776. }
  777. }
  778. }
  779. }
  780. else
  781. {
  782. SendClientMessage(playerid, 0xE21F1FFF, "That player didn't create a house yet!");
  783. }
  784. return 1;
  785. }
  786. if(strcmp(cmd, "/denyhouse", true) == 0)
  787. { // Deny house.
  788. if(!IsPlayerAdmin(playerid))
  789. return SendClientMessage(playerid, 0xFFFFFFAA, "SERVER: Unknown command.");
  790. new tmp[128], giveplayerid;
  791. tmp = strtok(cmdtext, idx);
  792. if(!strlen(tmp)) {
  793. SendClientMessage(playerid, 0xE21F1FFF, "USAGE: /denyhouse [playerid/PartOfName]");
  794. return 1;
  795. }
  796. giveplayerid = ReturnUser(tmp);
  797. if(IsPlayerConnected(giveplayerid)) {
  798. if(giveplayerid != INVALID_PLAYER_ID) {
  799. if(IsApprovalPending[giveplayerid] == true) {
  800. SendClientMessage(giveplayerid, 0xE21F1FFF, "Your house request was denied.");
  801. IsSettingUpHouse[giveplayerid] = false; SettingUpEntrance[giveplayerid] = false;
  802. HasAlreadySetupName[giveplayerid] = false; HasAlreadySetupDesc[giveplayerid] = false;
  803. HasAlreadySetupEntrance[giveplayerid] = false; HasAlreadySetupInterior[giveplayerid] = false;
  804. SetupHouseInfo[giveplayerid][SetupName] = 0; SetupHouseInfo[giveplayerid][SetupDesc] = 0;
  805. SetupHouseInfo[giveplayerid][SetupOwner] = 0; SetupHouseInfo[giveplayerid][SetupPrice] = 0;
  806. SetupHouseInfo[giveplayerid][SetupPX] = 0.0; SetupHouseInfo[giveplayerid][SetupPY] = 0.0;
  807. SetupHouseInfo[giveplayerid][SetupPZ] = 0.0; SetupHouseInfo[giveplayerid][SetupTX] = 0.0;
  808. SetupHouseInfo[giveplayerid][SetupTY] = 0.0; SetupHouseInfo[giveplayerid][SetupTZ] = 0.0;
  809. SetupHouseInfo[giveplayerid][SetupTA] = 0.0; SetupHouseInfo[giveplayerid][SetupInt] = 0;
  810. SetupHouseInfo[giveplayerid][SetupVir] = 0; SetupHouseInfo[giveplayerid][SetupRentable] = 0;
  811. SetupHouseInfo[giveplayerid][SetupRentPrice] = 0;
  812. IsApprovalPending[giveplayerid] = false;
  813. DestroyPickup(HousePickup[giveplayerid]);
  814. Delete3DTextLabel(HouseLabel[giveplayerid]);
  815. PlayerPlaySound(giveplayerid, 1085, 0.0, 0.0, 0.0);
  816. new file[100], pname[24];
  817. GetPlayerName(giveplayerid, pname, 24);
  818. format(file, sizeof(file), "Houses/%s.ini", pname);
  819. dini_Remove(file);
  820. return 1;
  821. }
  822. }
  823. }
  824. else
  825. {
  826. SendClientMessage(playerid, 0xE21F1FFF, "That player didn't create a house yet!");
  827. }
  828. return 1;
  829. }
  830. return 0;
  831. }
  832.  
  833. IsNumeric(const string[])
  834. {
  835. for (new i = 0, j = strlen(string); i < j; i++)
  836. {
  837. if (string[i] > '9' || string[i] < '0') return 0;
  838. }
  839. return 1;
  840. }
  841.  
  842. ReturnUser(text[], playerid = INVALID_PLAYER_ID)
  843. {
  844. new pos = 0;
  845. while (text[pos] < 0x21) // Strip out leading spaces
  846. {
  847. if (text[pos] == 0) return INVALID_PLAYER_ID; // No passed text
  848. pos++;
  849. }
  850. new userid = INVALID_PLAYER_ID;
  851. if (IsNumeric(text[pos])) // Check whole passed string
  852. {
  853. // If they have a numeric name you have a problem (although names are checked on id failure)
  854. userid = strval(text[pos]);
  855. if (userid >=0 && userid < MAX_PLAYERS)
  856. {
  857. if(!IsPlayerConnected(userid))
  858. {
  859. /*if (playerid != INVALID_PLAYER_ID)
  860. {
  861. SendClientMessage(playerid, 0xFF0000AA, "User not connected");
  862. }*/
  863. userid = INVALID_PLAYER_ID;
  864. }
  865. else
  866. {
  867. return userid; // A player was found
  868. }
  869. }
  870. /*else
  871. {
  872. if (playerid != INVALID_PLAYER_ID)
  873. {
  874. SendClientMessage(playerid, 0xFF0000AA, "Invalid user ID");
  875. }
  876. userid = INVALID_PLAYER_ID;
  877. }
  878. return userid;*/
  879. // Removed for fallthrough code
  880. }
  881. // They entered [part of] a name or the id search failed (check names just incase)
  882. new len = strlen(text[pos]);
  883. new count = 0;
  884. new name[MAX_PLAYER_NAME];
  885. for (new i = 0; i < MAX_PLAYERS; i++)
  886. {
  887. if (IsPlayerConnected(i))
  888. {
  889. GetPlayerName(i, name, sizeof (name));
  890. if (strcmp(name, text[pos], true, len) == 0) // Check segment of name
  891. {
  892. if (len == strlen(name)) // Exact match
  893. {
  894. return i; // Return the exact player on an exact match
  895. // Otherwise if there are two players:
  896. // Me and MeYou any time you entered Me it would find both
  897. // And never be able to return just Me's id
  898. }
  899. else // Partial match
  900. {
  901. count++;
  902. userid = i;
  903. }
  904. }
  905. }
  906. }
  907. if (count != 1)
  908. {
  909. if (playerid != INVALID_PLAYER_ID)
  910. {
  911. if (count)
  912. {
  913. SendClientMessage(playerid, 0xFF0000AA, "Multiple users found, please narrow earch");
  914. }
  915. else
  916. {
  917. SendClientMessage(playerid, 0xFF0000AA, "No matching user found");
  918. }
  919. }
  920. userid = INVALID_PLAYER_ID;
  921. }
  922. return userid; // INVALID_USER_ID for bad return
  923. }
  924.  
  925. // Called when a player uses the dialogs.
  926. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  927. {
  928.  
  929. if(dialogid == 668) // House setup.
  930. {
  931. if(response)
  932. {
  933. if(listitem == 0) // Entrance
  934. {
  935. if(HasAlreadySetupEntrance[playerid] == false)
  936. {
  937. ShowPlayerDialog(playerid, 669, DIALOG_STYLE_MSGBOX, "Confirm Entrance", "Are you sure you want to mark your current position as the entrance to your house?", "Yes", "No");
  938. return 1;
  939. }
  940. else
  941. {
  942. SendClientMessage(playerid, 0xE21F1FFF, "You already setup your entrance!");
  943. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  944. return 1;
  945. }
  946. }
  947. if(listitem == 1) // Name
  948. {
  949. if(HasAlreadySetupName[playerid] == false)
  950. {
  951. ShowPlayerDialog(playerid, 670, DIALOG_STYLE_INPUT, "Confirm Name", "Please type in the name of your house.\nExample: Family house.", "Confirm", "Cancel");
  952. return 1;
  953. }
  954. else
  955. {
  956. SendClientMessage(playerid, 0xE21F1FFF, "You already setup your name!");
  957. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  958. return 1;
  959. }
  960. }
  961. if(listitem == 2) // Description
  962. {
  963. if(HasAlreadySetupDesc[playerid] == false)
  964. {
  965. ShowPlayerDialog(playerid, 671, DIALOG_STYLE_INPUT, "Confirm Description", "Please type in the description of your house.\nExample: My house is the best house ever.", "Confirm", "Cancel");
  966. return 1;
  967. }
  968. else
  969. {
  970. SendClientMessage(playerid, 0xE21F1FFF, "You already setup your description!");
  971. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  972. return 1;
  973. }
  974. }
  975. if(listitem == 3) // Interior
  976. {
  977. if(HasAlreadySetupInterior[playerid] == false)
  978. {
  979. ShowPlayerDialog(playerid, 672, DIALOG_STYLE_LIST, "Confirm Interior", "Trailer ($7500)\nRyder's Crib ($9000)\nCJ's Crib ($10000)\nSweet's Crib ($12500)\nFancy Crib ($20000)\nWillowfield Safehouse ($25000)\nMansion ($500,000)\nMadd Dogg's Mansion ($1,000,000)\nCrack Palace ($2,500,000)", "Buy", "Cancel");
  980. return 1;
  981. }
  982. else
  983. {
  984. SendClientMessage(playerid, 0xE21F1FFF, "You already setup your interior!");
  985. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  986. return 1;
  987. }
  988. }
  989. if(listitem == 4) // Vehicle
  990. {
  991. if(HasAlreadySetupCar[playerid] == false)
  992. {
  993. ShowPlayerDialog(playerid, 687, DIALOG_STYLE_INPUT, "Vehicle", "Please enter a vehicle ID from 400 to 611.", "Create", "Cancel");
  994. return 1;
  995. }
  996. else
  997. {
  998. SendClientMessage(playerid, 0xE21F1FFF, "You already setup your vehicle!");
  999. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  1000. return 1;
  1001. }
  1002. }
  1003. if(listitem == 5) // Rent
  1004. {
  1005. if(HasAlreadySetupRentable[playerid] == false || HasAlreadySetupRentPrice[playerid] == false)
  1006. {
  1007. ShowPlayerDialog(playerid, 677, DIALOG_STYLE_LIST, "Rent", "Set Rentable\nSet Rent Price", "Select", "Cancel");
  1008. return 1;
  1009. }
  1010. else
  1011. {
  1012. SendClientMessage(playerid, 0xE21F1FFF, "You already setup your rent info!");
  1013. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  1014. return 1;
  1015. }
  1016. }
  1017. if(listitem == 6) // Purchase
  1018. {
  1019. if(HasAlreadySetupEntrance[playerid] == false)
  1020. {
  1021. SendClientMessage(playerid, 0xE21F1FFF, "You didn't setup your entrance yet!");
  1022. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  1023. return 1;
  1024. }
  1025. if(HasAlreadySetupName[playerid] == false)
  1026. {
  1027. SendClientMessage(playerid, 0xE21F1FFF, "You didn't setup your name yet!");
  1028. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  1029. return 1;
  1030. }
  1031. if(HasAlreadySetupDesc[playerid] == false)
  1032. {
  1033. SendClientMessage(playerid, 0xE21F1FFF, "You didn't setup your description yet!");
  1034. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  1035. return 1;
  1036. }
  1037. if(HasAlreadySetupInterior[playerid] == false)
  1038. {
  1039. SendClientMessage(playerid, 0xE21F1FFF, "You didn't setup your interior yet!");
  1040. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  1041. return 1;
  1042. }
  1043. if(HasAlreadySetupCar[playerid] == false)
  1044. {
  1045. SendClientMessage(playerid, 0xE21F1FFF, "You didn't setup your vehicle yet!");
  1046. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  1047. return 1;
  1048. }
  1049. ShowPlayerDialog(playerid, 679, DIALOG_STYLE_MSGBOX, "Approval Pending", "You have created a house, but you must wait approval by an Administrator.", "Okay", "Cancel");
  1050. IsApprovalPending[playerid] = true;
  1051. for(new i; i<MAX_PLAYERS; i++)
  1052. {
  1053. if(IsPlayerAdmin(i))
  1054. {
  1055. new str[128], pname[MAX_PLAYER_NAME];
  1056. GetPlayerName(playerid, pname, 24);
  1057. format(str, sizeof(str), "HOUSE APPROVAL: %s has created a house, check the entrance. (/approvehouse to approve the house)", pname);
  1058. SendClientMessage(i, 0x33AA33AA, str);
  1059. return 1;
  1060. }
  1061. }
  1062. }
  1063. }
  1064. else if(!response)
  1065. {
  1066. ShowPlayerDialog(playerid, 673, DIALOG_STYLE_MSGBOX, "Cancel", "Are you sure you want to stop creating your house?", "Yes", "No");
  1067. return 1;
  1068. }
  1069. }
  1070. if(dialogid == 669) // Entrance
  1071. {
  1072. if(response)
  1073. {
  1074. new str[32], str2[32], str3[32];
  1075. new Float:X, Float:Y, Float:Z;
  1076. GetPlayerPos(playerid, X, Y, Z);
  1077. SetupHouseInfo[playerid][SetupPX] = X;
  1078. SetupHouseInfo[playerid][SetupPY] = Y;
  1079. SetupHouseInfo[playerid][SetupPZ] = Z;
  1080. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  1081. SendClientMessage(playerid, 0xFFFF00FF, "You have set your house entrance coordinates to:");
  1082. format(str, sizeof(str), "X: %f", X);
  1083. SendClientMessage(playerid, 0xFFFFFFAA, str);
  1084. format(str2, sizeof(str2), "Y: %f", Y);
  1085. SendClientMessage(playerid, 0xFFFFFFAA, str2);
  1086. format(str3, sizeof(str3), "Z: %f", Z);
  1087. SendClientMessage(playerid, 0xFFFFFFAA, str3);
  1088. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  1089. HasAlreadySetupEntrance[playerid] = true;
  1090. HousePickup[playerid] = CreatePickup(1273, 23, X, Y, Z);
  1091. new file[100], pName[MAX_PLAYER_NAME];
  1092. GetPlayerName(playerid, pName, 24);
  1093. format(file, sizeof(file), "Houses/%s.ini", pName);
  1094. dini_FloatSet(file, "Pickup X", X);
  1095. dini_FloatSet(file, "Pickup Y", Y);
  1096. dini_FloatSet(file, "Pickup Z", Z);
  1097. return 1;
  1098. }
  1099. else
  1100. {
  1101. SettingUpEntrance[playerid] = true;
  1102. SendClientMessage(playerid, 0xFFFF00FF, "Stand in the position you want your house entrance at.");
  1103. SendClientMessage(playerid, 0xFFFFFFAA, "HINT: When done, type /confirm.");
  1104. return 1;
  1105. }
  1106. }
  1107. if(dialogid == 670) // Name
  1108. {
  1109. if(response)
  1110. {
  1111. new str[64];
  1112. if(strlen(inputtext) < 1) return ShowPlayerDialog(playerid, 670, DIALOG_STYLE_INPUT, "Confirm Name", "Please type in the name of your house.\nExample: Family house.", "Confirm", "Cancel");
  1113. if(strlen(inputtext) > 24) return ShowPlayerDialog(playerid, 670, DIALOG_STYLE_INPUT, "Confirm Name", "Please type in the name of your house.\nExample: Family house.", "Confirm", "Cancel");
  1114. SetupHouseInfo[playerid][SetupName] = strlen(inputtext);
  1115. SendClientMessage(playerid, 0xFFFF00FF, "You have set your house name to:");
  1116. format(str, sizeof(str), "%s", inputtext);
  1117. SendClientMessage(playerid, 0xFFFFFFAA, str);
  1118. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  1119. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  1120. HasAlreadySetupName[playerid] = true;
  1121. new file[100], pName[MAX_PLAYER_NAME];
  1122. GetPlayerName(playerid, pName, 24);
  1123. format(file, sizeof(file), "Houses/%s.ini", pName);
  1124. dini_Set(file, "Name", inputtext);
  1125. return 1;
  1126. }
  1127. else
  1128. {
  1129. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  1130. return 1;
  1131. }
  1132. }
  1133. if(dialogid == 671) // Description
  1134. {
  1135. if(response)
  1136. {
  1137. new str[64];
  1138. if(strlen(inputtext) < 1) return ShowPlayerDialog(playerid, 671, DIALOG_STYLE_INPUT, "Confirm Description", "Please type in the description of your house.\nExample: My house is the best house ever.", "Confirm", "Cancel");
  1139. if(strlen(inputtext) > 32) return ShowPlayerDialog(playerid, 671, DIALOG_STYLE_INPUT, "Confirm Description", "Please type in the description of your house.\nExample: My house is the best house ever.", "Confirm", "Cancel");
  1140. SetupHouseInfo[playerid][SetupDesc] = strlen(inputtext);
  1141. SendClientMessage(playerid, 0xFFFF00FF, "You have set your house description to:");
  1142. format(str, sizeof(str), "%s", inputtext);
  1143. SendClientMessage(playerid, 0xFFFFFFAA, str);
  1144. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  1145. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  1146. HasAlreadySetupDesc[playerid] = true;
  1147. new file[100], pName[MAX_PLAYER_NAME];
  1148. GetPlayerName(playerid, pName, 24);
  1149. format(file, sizeof(file), "Houses/%s.ini", pName);
  1150. dini_Set(file, "Description", inputtext);
  1151. return 1;
  1152. }
  1153. else
  1154. {
  1155. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  1156. return 1;
  1157. }
  1158. }
  1159. if(dialogid == 672) // Interior
  1160. {
  1161. if(response)
  1162. {
  1163. if(!response) { ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel"); return 1; }
  1164. if(listitem == 0)
  1165. {
  1166. new randvir = 2 + random(1999999);
  1167. new str[64];
  1168. SetupHouseInfo[playerid][SetupPrice] += 7500;
  1169. SetupHouseInfo[playerid][SetupTX] = 2.0446;
  1170. SetupHouseInfo[playerid][SetupTY] = -3.0297;
  1171. SetupHouseInfo[playerid][SetupTZ] = 999.4284;
  1172. SetupHouseInfo[playerid][SetupTA] = 79.7323;
  1173. SetupHouseInfo[playerid][SetupInt] = 2;
  1174. SetupHouseInfo[playerid][SetupVir] = randvir;
  1175. SendClientMessage(playerid, 0xFFFF00FF, "You have set your house interior to:");
  1176. SendClientMessage(playerid, 0xFFFFFFAA, "Trailer");
  1177. format(str, sizeof(str), "Price: $%d", SetupHouseInfo[playerid][SetupPrice]);
  1178. SendClientMessage(playerid, 0xFFFFFFAA, str);
  1179. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  1180. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  1181. HasAlreadySetupInterior[playerid] = true;
  1182. new file[100], pName[MAX_PLAYER_NAME];
  1183. GetPlayerName(playerid, pName, 24);
  1184. format(file, sizeof(file), "Houses/%s.ini", pName);
  1185. dini_IntSet(file, "Price", SetupHouseInfo[playerid][SetupPrice]);
  1186. dini_FloatSet(file, "Teleport X", SetupHouseInfo[playerid][SetupTX]);
  1187. dini_FloatSet(file, "Teleport Y", SetupHouseInfo[playerid][SetupTY]);
  1188. dini_FloatSet(file, "Teleport Z", SetupHouseInfo[playerid][SetupTZ]);
  1189. dini_FloatSet(file, "Teleport Angle", SetupHouseInfo[playerid][SetupTA]);
  1190. dini_IntSet(file, "Interior", 2);
  1191. dini_IntSet(file, "Virtual", randvir);
  1192. return 1;
  1193. }
  1194. if(listitem == 1)
  1195. {
  1196. new randvir = 2 + random(1999999);
  1197. new str[64];
  1198. SetupHouseInfo[playerid][SetupPrice] += 9000;
  1199. SetupHouseInfo[playerid][SetupTX] = 2468.8330;
  1200. SetupHouseInfo[playerid][SetupTY] = -1698.4697;
  1201. SetupHouseInfo[playerid][SetupTZ] = 1013.5078;
  1202. SetupHouseInfo[playerid][SetupTA] = 86.9390;
  1203. SetupHouseInfo[playerid][SetupInt] = 2;
  1204. SetupHouseInfo[playerid][SetupVir] = randvir;
  1205. SendClientMessage(playerid, 0xFFFF00FF, "You have set your house interior to:");
  1206. SendClientMessage(playerid, 0xFFFFFFAA, "Ryder's Crib");
  1207. format(str, sizeof(str), "Price: $%d", SetupHouseInfo[playerid][SetupPrice]);
  1208. SendClientMessage(playerid, 0xFFFFFFAA, str);
  1209. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  1210. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  1211. HasAlreadySetupInterior[playerid] = true;
  1212. new file[100], pName[MAX_PLAYER_NAME];
  1213. GetPlayerName(playerid, pName, 24);
  1214. format(file, sizeof(file), "Houses/%s.ini", pName);
  1215. dini_IntSet(file, "Price", SetupHouseInfo[playerid][SetupPrice]);
  1216. dini_FloatSet(file, "Teleport X", SetupHouseInfo[playerid][SetupTX]);
  1217. dini_FloatSet(file, "Teleport Y", SetupHouseInfo[playerid][SetupTY]);
  1218. dini_FloatSet(file, "Teleport Z", SetupHouseInfo[playerid][SetupTZ]);
  1219. dini_FloatSet(file, "Teleport Angle", SetupHouseInfo[playerid][SetupTA]);
  1220. dini_IntSet(file, "Interior", 2);
  1221. dini_IntSet(file, "Virtual", randvir);
  1222. return 1;
  1223. }
  1224. if(listitem == 2)
  1225. {
  1226. new randvir = 2 + random(1999999);
  1227. new str[64];
  1228. SetupHouseInfo[playerid][SetupPrice] += 10000;
  1229. SetupHouseInfo[playerid][SetupTX] = 2496.0781;
  1230. SetupHouseInfo[playerid][SetupTY] = -1692.0963;
  1231. SetupHouseInfo[playerid][SetupTZ] = 1014.7422;
  1232. SetupHouseInfo[playerid][SetupTA] = 180.4621;
  1233. SetupHouseInfo[playerid][SetupInt] = 3;
  1234. SetupHouseInfo[playerid][SetupVir] = randvir;
  1235. SendClientMessage(playerid, 0xFFFF00FF, "You have set your house interior to:");
  1236. SendClientMessage(playerid, 0xFFFFFFAA, "CJ's Crib");
  1237. format(str, sizeof(str), "Price: $%d", SetupHouseInfo[playerid][SetupPrice]);
  1238. SendClientMessage(playerid, 0xFFFFFFAA, str);
  1239. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  1240. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  1241. HasAlreadySetupInterior[playerid] = true;
  1242. new file[100], pName[MAX_PLAYER_NAME];
  1243. GetPlayerName(playerid, pName, 24);
  1244. format(file, sizeof(file), "Houses/%s.ini", pName);
  1245. dini_IntSet(file, "Price", SetupHouseInfo[playerid][SetupPrice]);
  1246. dini_FloatSet(file, "Teleport X", SetupHouseInfo[playerid][SetupTX]);
  1247. dini_FloatSet(file, "Teleport Y", SetupHouseInfo[playerid][SetupTY]);
  1248. dini_FloatSet(file, "Teleport Z", SetupHouseInfo[playerid][SetupTZ]);
  1249. dini_FloatSet(file, "Teleport Angle", SetupHouseInfo[playerid][SetupTA]);
  1250. dini_IntSet(file, "Interior", 3);
  1251. dini_IntSet(file, "Virtual", randvir);
  1252. return 1;
  1253. }
  1254. if(listitem == 3)
  1255. {
  1256. new randvir = 2 + random(1999999);
  1257. new str[64];
  1258. SetupHouseInfo[playerid][SetupPrice] += 12500;
  1259. SetupHouseInfo[playerid][SetupTX] = 2525.5933;
  1260. SetupHouseInfo[playerid][SetupTY] = -1679.6655;
  1261. SetupHouseInfo[playerid][SetupTZ] = 1015.4986;
  1262. SetupHouseInfo[playerid][SetupTA] = 269.8060;
  1263. SetupHouseInfo[playerid][SetupInt] = 1;
  1264. SetupHouseInfo[playerid][SetupVir] = randvir;
  1265. SendClientMessage(playerid, 0xFFFF00FF, "You have set your house interior to:");
  1266. SendClientMessage(playerid, 0xFFFFFFAA, "Sweet's Crib");
  1267. format(str, sizeof(str), "Price: $%d", SetupHouseInfo[playerid][SetupPrice]);
  1268. SendClientMessage(playerid, 0xFFFFFFAA, str);
  1269. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  1270. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  1271. HasAlreadySetupInterior[playerid] = true;
  1272. new file[100], pName[MAX_PLAYER_NAME];
  1273. GetPlayerName(playerid, pName, 24);
  1274. format(file, sizeof(file), "Houses/%s.ini", pName);
  1275. dini_IntSet(file, "Price", SetupHouseInfo[playerid][SetupPrice]);
  1276. dini_FloatSet(file, "Teleport X", SetupHouseInfo[playerid][SetupTX]);
  1277. dini_FloatSet(file, "Teleport Y", SetupHouseInfo[playerid][SetupTY]);
  1278. dini_FloatSet(file, "Teleport Z", SetupHouseInfo[playerid][SetupTZ]);
  1279. dini_FloatSet(file, "Teleport Angle", SetupHouseInfo[playerid][SetupTA]);
  1280. dini_IntSet(file, "Interior", 1);
  1281. dini_IntSet(file, "Virtual", randvir);
  1282. return 1;
  1283. }
  1284. if(listitem == 4)
  1285. {
  1286. new randvir = 2 + random(1999999);
  1287. new str[64];
  1288. SetupHouseInfo[playerid][SetupPrice] += 20000;
  1289. SetupHouseInfo[playerid][SetupTX] = 2216.5400;
  1290. SetupHouseInfo[playerid][SetupTY] = -1076.2900;
  1291. SetupHouseInfo[playerid][SetupTZ] = 1050.4844;
  1292. SetupHouseInfo[playerid][SetupTA] = 90.0000;
  1293. SetupHouseInfo[playerid][SetupInt] = 1;
  1294. SetupHouseInfo[playerid][SetupVir] = randvir;
  1295. SendClientMessage(playerid, 0xFFFF00FF, "You have set your house interior to:");
  1296. SendClientMessage(playerid, 0xFFFFFFAA, "Fancy Crib");
  1297. format(str, sizeof(str), "Price: $%d", SetupHouseInfo[playerid][SetupPrice]);
  1298. SendClientMessage(playerid, 0xFFFFFFAA, str);
  1299. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  1300. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  1301. HasAlreadySetupInterior[playerid] = true;
  1302. new file[100], pName[MAX_PLAYER_NAME];
  1303. GetPlayerName(playerid, pName, 24);
  1304. format(file, sizeof(file), "Houses/%s.ini", pName);
  1305. dini_IntSet(file, "Price", SetupHouseInfo[playerid][SetupPrice]);
  1306. dini_FloatSet(file, "Teleport X", SetupHouseInfo[playerid][SetupTX]);
  1307. dini_FloatSet(file, "Teleport Y", SetupHouseInfo[playerid][SetupTY]);
  1308. dini_FloatSet(file, "Teleport Z", SetupHouseInfo[playerid][SetupTZ]);
  1309. dini_FloatSet(file, "Teleport Angle", SetupHouseInfo[playerid][SetupTA]);
  1310. dini_IntSet(file, "Interior", 1);
  1311. dini_IntSet(file, "Virtual", randvir);
  1312. return 1;
  1313. }
  1314. if(listitem == 5)
  1315. {
  1316. new randvir = 2 + random(1999999);
  1317. new str[64];
  1318. SetupHouseInfo[playerid][SetupPrice] += 25000;
  1319. SetupHouseInfo[playerid][SetupTX] = 2282.9099;
  1320. SetupHouseInfo[playerid][SetupTY] = -1138.2900;
  1321. SetupHouseInfo[playerid][SetupTZ] = 1050.8984;
  1322. SetupHouseInfo[playerid][SetupTA] = 360.0000;
  1323. SetupHouseInfo[playerid][SetupInt] = 11;
  1324. SetupHouseInfo[playerid][SetupVir] = randvir;
  1325. SendClientMessage(playerid, 0xFFFF00FF, "You have set your house interior to:");
  1326. SendClientMessage(playerid, 0xFFFFFFAA, "Willowfield Safehouse");
  1327. format(str, sizeof(str), "Price: $%d", SetupHouseInfo[playerid][SetupPrice]);
  1328. SendClientMessage(playerid, 0xFFFFFFAA, str);
  1329. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  1330. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  1331. HasAlreadySetupInterior[playerid] = true;
  1332. new file[100], pName[MAX_PLAYER_NAME];
  1333. GetPlayerName(playerid, pName, 24);
  1334. format(file, sizeof(file), "Houses/%s.ini", pName);
  1335. dini_IntSet(file, "Price", SetupHouseInfo[playerid][SetupPrice]);
  1336. dini_FloatSet(file, "Teleport X", SetupHouseInfo[playerid][SetupTX]);
  1337. dini_FloatSet(file, "Teleport Y", SetupHouseInfo[playerid][SetupTY]);
  1338. dini_FloatSet(file, "Teleport Z", SetupHouseInfo[playerid][SetupTZ]);
  1339. dini_FloatSet(file, "Teleport Angle", SetupHouseInfo[playerid][SetupTA]);
  1340. dini_IntSet(file, "Interior", 11);
  1341. dini_IntSet(file, "Virtual", randvir);
  1342. return 1;
  1343. }
  1344. if(listitem == 6)
  1345. {
  1346. new randvir = 2 + random(1999999);
  1347. new str[64];
  1348. SetupHouseInfo[playerid][SetupPrice] += 500000;
  1349. SetupHouseInfo[playerid][SetupTX] = 2317.8201;
  1350. SetupHouseInfo[playerid][SetupTY] = -1024.3892;
  1351. SetupHouseInfo[playerid][SetupTZ] = 1050.2109;
  1352. SetupHouseInfo[playerid][SetupTA] = 360.0000;
  1353. SetupHouseInfo[playerid][SetupInt] = 9;
  1354. SetupHouseInfo[playerid][SetupVir] = randvir;
  1355. SendClientMessage(playerid, 0xFFFF00FF, "You have set your house interior to:");
  1356. SendClientMessage(playerid, 0xFFFFFFAA, "Mansion");
  1357. format(str, sizeof(str), "Price: $%d", SetupHouseInfo[playerid][SetupPrice]);
  1358. SendClientMessage(playerid, 0xFFFFFFAA, str);
  1359. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  1360. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  1361. HasAlreadySetupInterior[playerid] = true;
  1362. new file[100], pName[MAX_PLAYER_NAME];
  1363. GetPlayerName(playerid, pName, 24);
  1364. format(file, sizeof(file), "Houses/%s.ini", pName);
  1365. dini_IntSet(file, "Price", SetupHouseInfo[playerid][SetupPrice]);
  1366. dini_FloatSet(file, "Teleport X", SetupHouseInfo[playerid][SetupTX]);
  1367. dini_FloatSet(file, "Teleport Y", SetupHouseInfo[playerid][SetupTY]);
  1368. dini_FloatSet(file, "Teleport Z", SetupHouseInfo[playerid][SetupTZ]);
  1369. dini_FloatSet(file, "Teleport Angle", SetupHouseInfo[playerid][SetupTA]);
  1370. dini_IntSet(file, "Interior", 9);
  1371. dini_IntSet(file, "Virtual", randvir);
  1372. return 1;
  1373. }
  1374. if(listitem == 7)
  1375. {
  1376. new randvir = 2 + random(1999999);
  1377. new str[64];
  1378. SetupHouseInfo[playerid][SetupPrice] += 1000000;
  1379. SetupHouseInfo[playerid][SetupTX] = 1262.4561;
  1380. SetupHouseInfo[playerid][SetupTY] = -785.2851;
  1381. SetupHouseInfo[playerid][SetupTZ] = 1091.9063;
  1382. SetupHouseInfo[playerid][SetupTA] = 270.6267;
  1383. SetupHouseInfo[playerid][SetupInt] = 5;
  1384. SetupHouseInfo[playerid][SetupVir] = randvir;
  1385. SendClientMessage(playerid, 0xFFFF00FF, "You have set your house interior to:");
  1386. SendClientMessage(playerid, 0xFFFFFFAA, "Madd Dogg's Mansion");
  1387. format(str, sizeof(str), "Price: $%d", SetupHouseInfo[playerid][SetupPrice]);
  1388. SendClientMessage(playerid, 0xFFFFFFAA, str);
  1389. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  1390. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  1391. HasAlreadySetupInterior[playerid] = true;
  1392. new file[100], pName[MAX_PLAYER_NAME];
  1393. GetPlayerName(playerid, pName, 24);
  1394. format(file, sizeof(file), "Houses/%s.ini", pName);
  1395. dini_IntSet(file, "Price", SetupHouseInfo[playerid][SetupPrice]);
  1396. dini_FloatSet(file, "Teleport X", SetupHouseInfo[playerid][SetupTX]);
  1397. dini_FloatSet(file, "Teleport Y", SetupHouseInfo[playerid][SetupTY]);
  1398. dini_FloatSet(file, "Teleport Z", SetupHouseInfo[playerid][SetupTZ]);
  1399. dini_FloatSet(file, "Teleport Angle", SetupHouseInfo[playerid][SetupTA]);
  1400. dini_IntSet(file, "Interior", 5);
  1401. dini_IntSet(file, "Virtual", randvir);
  1402. return 1;
  1403. }
  1404. if(listitem == 8)
  1405. {
  1406. new randvir = 2 + random(1999999);
  1407. new str[64];
  1408. SetupHouseInfo[playerid][SetupPrice] += 2500000;
  1409. SetupHouseInfo[playerid][SetupTX] = 2543.2571;
  1410. SetupHouseInfo[playerid][SetupTY] = -1304.2988;
  1411. SetupHouseInfo[playerid][SetupTZ] = 1025.0743;
  1412. SetupHouseInfo[playerid][SetupTA] = 177.0683;
  1413. SetupHouseInfo[playerid][SetupInt] = 2;
  1414. SetupHouseInfo[playerid][SetupVir] = randvir;
  1415. SendClientMessage(playerid, 0xFFFF00FF, "You have set your house interior to:");
  1416. SendClientMessage(playerid, 0xFFFFFFAA, "Crack Palace");
  1417. format(str, sizeof(str), "Price: $%d", SetupHouseInfo[playerid][SetupPrice]);
  1418. SendClientMessage(playerid, 0xFFFFFFAA, str);
  1419. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  1420. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  1421. HasAlreadySetupInterior[playerid] = true;
  1422. new file[100], pName[MAX_PLAYER_NAME];
  1423. GetPlayerName(playerid, pName, 24);
  1424. format(file, sizeof(file), "Houses/%s.ini", pName);
  1425. dini_IntSet(file, "Price", SetupHouseInfo[playerid][SetupPrice]);
  1426. dini_FloatSet(file, "Teleport X", SetupHouseInfo[playerid][SetupTX]);
  1427. dini_FloatSet(file, "Teleport Y", SetupHouseInfo[playerid][SetupTY]);
  1428. dini_FloatSet(file, "Teleport Z", SetupHouseInfo[playerid][SetupTZ]);
  1429. dini_FloatSet(file, "Teleport Angle", SetupHouseInfo[playerid][SetupTA]);
  1430. dini_IntSet(file, "Interior", 2);
  1431. dini_IntSet(file, "Virtual", randvir);
  1432. return 1;
  1433. }
  1434. }
  1435. else
  1436. {
  1437. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  1438. return 1;
  1439. }
  1440. }
  1441. if(dialogid == 673) // House cancellation
  1442. {
  1443. if(response)
  1444. {
  1445. IsSettingUpHouse[playerid] = false; SettingUpEntrance[playerid] = false;
  1446. HasAlreadySetupName[playerid] = false; HasAlreadySetupDesc[playerid] = false;
  1447. HasAlreadySetupEntrance[playerid] = false; HasAlreadySetupInterior[playerid] = false;
  1448. SetupHouseInfo[playerid][SetupName] = 0; SetupHouseInfo[playerid][SetupDesc] = 0;
  1449. SetupHouseInfo[playerid][SetupOwner] = 0; SetupHouseInfo[playerid][SetupPrice] = 0;
  1450. SetupHouseInfo[playerid][SetupPX] = 0.0; SetupHouseInfo[playerid][SetupPY] = 0.0;
  1451. SetupHouseInfo[playerid][SetupPZ] = 0.0; SetupHouseInfo[playerid][SetupTX] = 0.0;
  1452. SetupHouseInfo[playerid][SetupTY] = 0.0; SetupHouseInfo[playerid][SetupTZ] = 0.0;
  1453. SetupHouseInfo[playerid][SetupTA] = 0.0; SetupHouseInfo[playerid][SetupInt] = 0;
  1454. SetupHouseInfo[playerid][SetupVir] = 0; SetupHouseInfo[playerid][SetupCarX] = 0.0;
  1455. SetupHouseInfo[playerid][SetupCarY] = 0.0; SetupHouseInfo[playerid][SetupCarZ] = 0.0;
  1456. SetupHouseInfo[playerid][SetupCarRot] = 0.0;
  1457. DestroyPickup(HousePickup[playerid]);
  1458. Delete3DTextLabel(HouseLabel[playerid]);
  1459. DestroyVehicle(HouseCar[playerid]);
  1460. PlayerPlaySound(playerid, 1085, 0.0, 0.0, 0.0);
  1461. SendClientMessage(playerid, 0xFFFFFFAA, "You have cancelled creating your house.");
  1462. new file[100], pname[24];
  1463. GetPlayerName(playerid, pname, 24);
  1464. format(file, sizeof(file), "Houses/%s.ini", pname);
  1465. dini_Remove(file);
  1466. return 1;
  1467. }
  1468. else
  1469. {
  1470. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  1471. return 1;
  1472. }
  1473. }
  1474. if(dialogid == 674) // Store cash
  1475. {
  1476. if(response)
  1477. {
  1478. new str[64];
  1479. for(new h = 0; h < sizeof(HouseInfo); h++)
  1480. {
  1481. new money = strval(inputtext);
  1482. new cash = GetPlayerMoney(playerid);
  1483. if(cash < money)
  1484. return SendClientMessage(playerid, 0xE21F1FFF, "You don't have that much!");
  1485. if(money < 1 || money < 0 || money < -1)
  1486. return SendClientMessage(playerid, 0xE21F1FFF, "You must input an amount above 0.");
  1487. HouseInfo[h][Cash] += money;
  1488. GivePlayerMoney(playerid, -money);
  1489. format(str, sizeof(str), "You have stored $%i into your safe.",money);
  1490. SendClientMessage(playerid, 0xFFFF00FF, str);
  1491. return 1;
  1492. }
  1493. }
  1494. }
  1495. if(dialogid == 675) // Take cash
  1496. {
  1497. if(response)
  1498. {
  1499. new str[64];
  1500. for(new h = 0; h < sizeof(HouseInfo); h++)
  1501. {
  1502. new money = strval(inputtext);
  1503. if(HouseInfo[h][Cash] < money)
  1504. return SendClientMessage(playerid, 0xE21F1FFF, "You don't have that much in your safe!");
  1505. if(money < 1 || money < 0 || money < -1)
  1506. return SendClientMessage(playerid, 0xE21F1FFF, "You must input an amount above 0.");
  1507. HouseInfo[h][Cash] -= money;
  1508. GivePlayerMoney(playerid, money);
  1509. format(str, sizeof(str), "You have taken $%i from your safe.",money);
  1510. SendClientMessage(playerid, 0xFFFF00FF, str);
  1511. return 1;
  1512. }
  1513. }
  1514. }
  1515. if(dialogid == 676) // Renting house
  1516. {
  1517. if(response)
  1518. {
  1519. new str[64], money = GetPlayerMoney(playerid);
  1520. for(new h = 0; h < sizeof(HouseInfo); h++)
  1521. {
  1522. if(money < HouseInfo[h][RentPrice])
  1523. {
  1524. SendClientMessage(playerid, 0xE21F1FFF, "You cannot afford the house.");
  1525. PlayerPlaySound(playerid, 1085, 0.0, 0.0, 0.0);
  1526. return 1;
  1527. }
  1528. else
  1529. {
  1530. GivePlayerMoney(playerid, -HouseInfo[h][RentPrice]);
  1531. format(str, sizeof(str), "You have successfully rented this house for $%i!", HouseInfo[h][RentPrice]);
  1532. SendClientMessage(playerid, 0xFFFF00FF, str);
  1533. IsRentingHouse[playerid] = true;
  1534. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  1535. HouseInfo[h][Cash] += HouseInfo[h][RentPrice];
  1536. return 1;
  1537. }
  1538. }
  1539. }
  1540. }
  1541. if(dialogid == 677) // Rent
  1542. {
  1543. if(response)
  1544. {
  1545. if(!response)
  1546. return ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  1547. if(listitem == 0)
  1548. {
  1549. if(SetupHouseInfo[playerid][SetupRentable] == 0)
  1550. {
  1551. SetupHouseInfo[playerid][SetupRentable] = 1;
  1552. PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
  1553. SendClientMessage(playerid, 0xFFFF00FF, "Rent enabled.");
  1554. ShowPlayerDialog(playerid, 677, DIALOG_STYLE_LIST, "Rent", "Set Rentable\nSet Rent Price", "Select", "Cancel");
  1555. return 1;
  1556. }
  1557. else
  1558. {
  1559. SetupHouseInfo[playerid][SetupRentable] = 0;
  1560. PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
  1561. SendClientMessage(playerid, 0xFFFF00FF, "Rent disabled.");
  1562. ShowPlayerDialog(playerid, 677, DIALOG_STYLE_LIST, "Rent", "Set Rentable\nSet Rent Price", "Select", "Cancel");
  1563. return 1;
  1564. }
  1565. }
  1566. if(listitem == 1)
  1567. {
  1568. ShowPlayerDialog(playerid, 678, DIALOG_STYLE_INPUT, "Rent Price", "Please enter the price you want to set as your rent price.", "Finish", "Cancel");
  1569. return 1;
  1570. }
  1571. if(!response)
  1572. return ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  1573. }
  1574. }
  1575. if(dialogid == 678) // Rent Price
  1576. {
  1577. if(response)
  1578. {
  1579. new amount = strval(inputtext);
  1580. if(amount < 1)
  1581. {
  1582. SendClientMessage(playerid, 0xE21F1FFF, "Amount must be above 1.");
  1583. ShowPlayerDialog(playerid, 678, DIALOG_STYLE_INPUT, "Rent Price", "Please enter the price you want to set as your rent price.", "Finish", "Cancel");
  1584. return 1;
  1585. }
  1586. if(amount > 5000)
  1587. {
  1588. SendClientMessage(playerid, 0xE21F1FFF, "Amount must be below 5000.");
  1589. ShowPlayerDialog(playerid, 678, DIALOG_STYLE_INPUT, "Rent Price", "Please enter the price you want to set as your rent price.", "Finish", "Cancel");
  1590. return 1;
  1591. }
  1592. SetupHouseInfo[playerid][SetupRentPrice] = amount;
  1593. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  1594. HasAlreadySetupRentable[playerid] = true;
  1595. HasAlreadySetupRentPrice[playerid] = true;
  1596. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  1597. return 1;
  1598. }
  1599. else if(!response)
  1600. {
  1601. ShowPlayerDialog(playerid, 677, DIALOG_STYLE_LIST, "Rent", "Set Rentable\nSet Rent Price", "Select", "Cancel");
  1602. return 1;
  1603. }
  1604. }
  1605.  
  1606. if(dialogid == 681) // Upgrade Name
  1607. {
  1608. if(response)
  1609. {
  1610. for(new h = 0; h < sizeof(HouseInfo); h++)
  1611. {
  1612. new str[64];
  1613. if(strlen(inputtext) < 1) return ShowPlayerDialog(playerid, 670, DIALOG_STYLE_INPUT, "Confirm Name", "Please type in the name of your house.\nExample: Family house.", "Confirm", "Cancel");
  1614. if(strlen(inputtext) > 24) return ShowPlayerDialog(playerid, 670, DIALOG_STYLE_INPUT, "Confirm Name", "Please type in the name of your house.\nExample: Family house.", "Confirm", "Cancel");
  1615. HouseInfo[h][Name] = strlen(inputtext);
  1616. SendClientMessage(playerid, 0xFFFF00FF, "You have set your house name to:");
  1617. format(str, sizeof(str), "%s", inputtext);
  1618. SendClientMessage(playerid, 0xFFFFFFAA, str);
  1619. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  1620. new file[100], pName[MAX_PLAYER_NAME];
  1621. GetPlayerName(playerid, pName, 24);
  1622. format(file, sizeof(file), "Houses/%s.ini", pName);
  1623. dini_Set(file, "Name", inputtext);
  1624. new pname[MAX_PLAYER_NAME];
  1625. new name[256], desc[256], strr[128];
  1626. DestroyPickup(HousePickup[playerid]);
  1627. Delete3DTextLabel(HouseLabel[playerid]);
  1628. GetPlayerName(playerid, pname, sizeof(pname));
  1629. name = dini_Get(file, "Name");
  1630. desc = dini_Get(file, "Description");
  1631. if(HouseInfo[h][Rentable] == 0)
  1632. {
  1633. format(strr, sizeof(strr), "Name: %s\n\nDescription: %s\n\nOwner: %s", name, desc, pname);
  1634. }
  1635. else
  1636. {
  1637. format(strr, sizeof(strr), "Name: %s\n\nDescription: %s\n\nOwner: %s\n\nRent Price: $%i", name, desc, pname, HouseInfo[h][RentPrice]);
  1638. }
  1639. HouseLabel[playerid] = Create3DTextLabel(strr, 0xF97804FF, HouseInfo[h][PX], HouseInfo[h][PY], HouseInfo[h][PZ], 20.0, 0);
  1640. HousePickup[playerid] = CreatePickup(1273, 23, HouseInfo[h][PX], HouseInfo[h][PY], HouseInfo[h][PZ]);
  1641. return 1;
  1642. }
  1643. }
  1644. }
  1645. if(dialogid == 682) // Upgrade Desc
  1646. {
  1647. if(response)
  1648. {
  1649. for(new h = 0; h < sizeof(HouseInfo); h++)
  1650. {
  1651. new str[64];
  1652. if(strlen(inputtext) < 1) return ShowPlayerDialog(playerid, 670, DIALOG_STYLE_INPUT, "Confirm Name", "Please type in the name of your house.\nExample: Family house.", "Confirm", "Cancel");
  1653. if(strlen(inputtext) > 24) return ShowPlayerDialog(playerid, 670, DIALOG_STYLE_INPUT, "Confirm Name", "Please type in the name of your house.\nExample: Family house.", "Confirm", "Cancel");
  1654. HouseInfo[h][Desc] = strlen(inputtext);
  1655. SendClientMessage(playerid, 0xFFFF00FF, "You have set your house description to:");
  1656. format(str, sizeof(str), "%s", inputtext);
  1657. SendClientMessage(playerid, 0xFFFFFFAA, str);
  1658. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  1659. new file[100], pName[MAX_PLAYER_NAME];
  1660. GetPlayerName(playerid, pName, 24);
  1661. format(file, sizeof(file), "Houses/%s.ini", pName);
  1662. dini_Set(file, "Description", inputtext);
  1663. new pname[MAX_PLAYER_NAME];
  1664. new name[256], desc[256], strr[128];
  1665. DestroyPickup(HousePickup[playerid]);
  1666. Delete3DTextLabel(HouseLabel[playerid]);
  1667. GetPlayerName(playerid, pname, sizeof(pname));
  1668. name = dini_Get(file, "Name");
  1669. desc = dini_Get(file, "Description");
  1670. if(HouseInfo[h][Rentable] == 0)
  1671. {
  1672. format(strr, sizeof(strr), "Name: %s\n\nDescription: %s\n\nOwner: %s", name, desc, pname);
  1673. }
  1674. else
  1675. {
  1676. format(strr, sizeof(strr), "Name: %s\n\nDescription: %s\n\nOwner: %s\n\nRent Price: $%i", name, desc, pname, HouseInfo[h][RentPrice]);
  1677. }
  1678. HouseLabel[playerid] = Create3DTextLabel(strr, 0xF97804FF, HouseInfo[h][PX], HouseInfo[h][PY], HouseInfo[h][PZ], 20.0, 0);
  1679. HousePickup[playerid] = CreatePickup(1273, 23, HouseInfo[h][PX], HouseInfo[h][PY], HouseInfo[h][PZ]);
  1680. return 1;
  1681. }
  1682. }
  1683. }
  1684. if(dialogid == 683) // Upgrade Entrance
  1685. {
  1686. if(response)
  1687. {
  1688. for(new h = 0; h < sizeof(HouseInfo); h++)
  1689. {
  1690. new pname[MAX_PLAYER_NAME], Float:X, Float:Y, Float:Z;
  1691. new name[256], desc[256], file[100], strr[128];
  1692. DestroyPickup(HousePickup[playerid]);
  1693. Delete3DTextLabel(HouseLabel[playerid]);
  1694. GetPlayerName(playerid, pname, sizeof(pname));
  1695. format(file, sizeof(file), "Houses/%s.ini", pname);
  1696. name = dini_Get(file, "Name");
  1697. desc = dini_Get(file, "Description");
  1698. if(HouseInfo[h][Rentable] == 0)
  1699. {
  1700. format(strr, sizeof(strr), "Name: %s\n\nDescription: %s\n\nOwner: %s", name, desc, pname);
  1701. }
  1702. else
  1703. {
  1704. format(strr, sizeof(strr), "Name: %s\n\nDescription: %s\n\nOwner: %s\n\nRent Price: $%i", name, desc, pname, HouseInfo[h][RentPrice]);
  1705. }
  1706. new str[32], str2[32], str3[32];
  1707. GetPlayerPos(playerid, X, Y, Z);
  1708. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  1709. dini_FloatSet(file, "Pickup X", X);
  1710. dini_FloatSet(file, "Pickup Y", Y);
  1711. dini_FloatSet(file, "Pickup Z", Z);
  1712. HouseInfo[h][PX] = X;
  1713. HouseInfo[h][PY] = Y;
  1714. HouseInfo[h][PZ] = Z;
  1715. HouseLabel[playerid] = Create3DTextLabel(strr, 0xF97804FF, HouseInfo[h][PX], HouseInfo[h][PY], HouseInfo[h][PZ], 20.0, 0);
  1716. HousePickup[playerid] = CreatePickup(1273, 23, HouseInfo[h][PX], HouseInfo[h][PY], HouseInfo[h][PZ]);
  1717. SendClientMessage(playerid, 0xFFFF00FF, "You have set your house entrance coordinates to:");
  1718. format(str, sizeof(str), "X: %f", X);
  1719. SendClientMessage(playerid, 0xFFFFFFAA, str);
  1720. format(str2, sizeof(str2), "Y: %f", Y);
  1721. SendClientMessage(playerid, 0xFFFFFFAA, str2);
  1722. format(str3, sizeof(str3), "Z: %f", Z);
  1723. SendClientMessage(playerid, 0xFFFFFFAA, str3);
  1724. return 1;
  1725. }
  1726. }
  1727. }
  1728. if(dialogid == 684 && response) // Upgrade Interior
  1729. {
  1730. for(new h = 0; h < sizeof(HouseInfo); h++)
  1731. {
  1732. if(listitem == 0)
  1733. {
  1734. new randvir = 2 + random(1999999);
  1735. new str[64];
  1736. HouseInfo[h][Price] = 7500;
  1737. HouseInfo[h][TX] = 2.0446;
  1738. HouseInfo[h][TY] = -3.0297;
  1739. HouseInfo[h][TZ] = 999.4284;
  1740. HouseInfo[h][TA] = 79.7323;
  1741. HouseInfo[h][Int] = 2;
  1742. HouseInfo[h][Vir] = randvir;
  1743. new money = GetPlayerMoney(playerid);
  1744. if(money >= HouseInfo[h][Price])
  1745. return GivePlayerMoney(playerid, -HouseInfo[h][Price]);
  1746. SendClientMessage(playerid, 0xFFFF00FF, "You have set your house interior to:");
  1747. SendClientMessage(playerid, 0xFFFFFFAA, "Trailer");
  1748. format(str, sizeof(str), "Price: $%d", HouseInfo[h][Price]);
  1749. SendClientMessage(playerid, 0xFFFFFFAA, str);
  1750. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  1751. new file[100], pName[MAX_PLAYER_NAME];
  1752. GetPlayerName(playerid, pName, 24);
  1753. format(file, sizeof(file), "Houses/%s.ini", pName);
  1754. dini_IntSet(file, "Price", HouseInfo[h][Price]);
  1755. dini_FloatSet(file, "Teleport X", HouseInfo[h][TX]);
  1756. dini_FloatSet(file, "Teleport Y", HouseInfo[h][TY]);
  1757. dini_FloatSet(file, "Teleport Z", HouseInfo[h][TZ]);
  1758. dini_FloatSet(file, "Teleport Angle", HouseInfo[h][TA]);
  1759. dini_IntSet(file, "Interior", 2);
  1760. dini_IntSet(file, "Virtual", randvir);
  1761. return 1;
  1762. }
  1763. if(listitem == 1)
  1764. {
  1765. new randvir = 2 + random(1999999);
  1766. new str[64];
  1767. HouseInfo[h][Price] = 9000;
  1768. HouseInfo[h][TX] = 2468.8330;
  1769. HouseInfo[h][TY] = -1698.4697;
  1770. HouseInfo[h][TZ] = 1013.5078;
  1771. HouseInfo[h][TA] = 86.9390;
  1772. HouseInfo[h][Int] = 2;
  1773. HouseInfo[h][Vir] = randvir;
  1774. new money = GetPlayerMoney(playerid);
  1775. if(money >= HouseInfo[h][Price])
  1776. return GivePlayerMoney(playerid, -HouseInfo[h][Price]);
  1777. SendClientMessage(playerid, 0xFFFF00FF, "You have set your house interior to:");
  1778. SendClientMessage(playerid, 0xFFFFFFAA, "Ryder's Crib");
  1779. format(str, sizeof(str), "Price: $%d", HouseInfo[h][Price]);
  1780. SendClientMessage(playerid, 0xFFFFFFAA, str);
  1781. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  1782. new file[100], pName[MAX_PLAYER_NAME];
  1783. GetPlayerName(playerid, pName, 24);
  1784. format(file, sizeof(file), "Houses/%s.ini", pName);
  1785. dini_IntSet(file, "Price", HouseInfo[h][Price]);
  1786. dini_FloatSet(file, "Teleport X", HouseInfo[h][TX]);
  1787. dini_FloatSet(file, "Teleport Y", HouseInfo[h][TY]);
  1788. dini_FloatSet(file, "Teleport Z", HouseInfo[h][TZ]);
  1789. dini_FloatSet(file, "Teleport Angle", HouseInfo[h][TA]);
  1790. dini_IntSet(file, "Interior", 2);
  1791. dini_IntSet(file, "Virtual", randvir);
  1792. return 1;
  1793. }
  1794. if(listitem == 2)
  1795. {
  1796. new randvir = 2 + random(1999999);
  1797. new str[64];
  1798. HouseInfo[h][Price] = 10000;
  1799. HouseInfo[h][TX] = 2496.0781;
  1800. HouseInfo[h][TY] = -1692.0963;
  1801. HouseInfo[h][TZ] = 1014.7422;
  1802. HouseInfo[h][TA] = 180.4621;
  1803. HouseInfo[h][Int] = 3;
  1804. HouseInfo[h][Vir] = randvir;
  1805. new money = GetPlayerMoney(playerid);
  1806. if(money >= HouseInfo[h][Price])
  1807. return GivePlayerMoney(playerid, -HouseInfo[h][Price]);
  1808. SendClientMessage(playerid, 0xFFFF00FF, "You have set your house interior to:");
  1809. SendClientMessage(playerid, 0xFFFFFFAA, "CJ's Crib");
  1810. format(str, sizeof(str), "Price: $%d", HouseInfo[h][Price]);
  1811. SendClientMessage(playerid, 0xFFFFFFAA, str);
  1812. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  1813. new file[100], pName[MAX_PLAYER_NAME];
  1814. GetPlayerName(playerid, pName, 24);
  1815. format(file, sizeof(file), "Houses/%s.ini", pName);
  1816. dini_IntSet(file, "Price", HouseInfo[h][Price]);
  1817. dini_FloatSet(file, "Teleport X", HouseInfo[h][TX]);
  1818. dini_FloatSet(file, "Teleport Y", HouseInfo[h][TY]);
  1819. dini_FloatSet(file, "Teleport Z", HouseInfo[h][TZ]);
  1820. dini_FloatSet(file, "Teleport Angle", HouseInfo[h][TA]);
  1821. dini_IntSet(file, "Interior", 3);
  1822. dini_IntSet(file, "Virtual", randvir);
  1823. return 1;
  1824. }
  1825. if(listitem == 3)
  1826. {
  1827. new randvir = 2 + random(1999999);
  1828. new str[64];
  1829. HouseInfo[h][Price] = 12500;
  1830. HouseInfo[h][TX] = 2525.5933;
  1831. HouseInfo[h][TY] = -1679.6655;
  1832. HouseInfo[h][TZ] = 1015.4986;
  1833. HouseInfo[h][TA] = 269.8060;
  1834. HouseInfo[h][Int] = 1;
  1835. HouseInfo[h][Vir] = randvir;
  1836. new money = GetPlayerMoney(playerid);
  1837. if(money >= HouseInfo[h][Price])
  1838. return GivePlayerMoney(playerid, -HouseInfo[h][Price]);
  1839. SendClientMessage(playerid, 0xFFFF00FF, "You have set your house interior to:");
  1840. SendClientMessage(playerid, 0xFFFFFFAA, "Sweet's Crib");
  1841. format(str, sizeof(str), "Price: $%d", HouseInfo[h][Price]);
  1842. SendClientMessage(playerid, 0xFFFFFFAA, str);
  1843. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  1844. new file[100], pName[MAX_PLAYER_NAME];
  1845. GetPlayerName(playerid, pName, 24);
  1846. format(file, sizeof(file), "Houses/%s.ini", pName);
  1847. dini_IntSet(file, "Price", HouseInfo[h][Price]);
  1848. dini_FloatSet(file, "Teleport X", HouseInfo[h][TX]);
  1849. dini_FloatSet(file, "Teleport Y", HouseInfo[h][TY]);
  1850. dini_FloatSet(file, "Teleport Z", HouseInfo[h][TZ]);
  1851. dini_FloatSet(file, "Teleport Angle", HouseInfo[h][TA]);
  1852. dini_IntSet(file, "Interior", 1);
  1853. dini_IntSet(file, "Virtual", randvir);
  1854. return 1;
  1855. }
  1856. if(listitem == 4)
  1857. {
  1858. new randvir = 2 + random(1999999);
  1859. new str[64];
  1860. HouseInfo[h][Price] = 20000;
  1861. HouseInfo[h][TX] = 2216.5400;
  1862. HouseInfo[h][TY] = -1076.2900;
  1863. HouseInfo[h][TZ] = 1050.4844;
  1864. HouseInfo[h][TA] = 90.0000;
  1865. HouseInfo[h][Int] = 1;
  1866. HouseInfo[h][Vir] = randvir;
  1867. new money = GetPlayerMoney(playerid);
  1868. if(money >= HouseInfo[h][Price])
  1869. return GivePlayerMoney(playerid, -HouseInfo[h][Price]);
  1870. SendClientMessage(playerid, 0xFFFF00FF, "You have set your house interior to:");
  1871. SendClientMessage(playerid, 0xFFFFFFAA, "Fancy Crib");
  1872. format(str, sizeof(str), "Price: $%d", HouseInfo[h][Price]);
  1873. SendClientMessage(playerid, 0xFFFFFFAA, str);
  1874. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  1875. new file[100], pName[MAX_PLAYER_NAME];
  1876. GetPlayerName(playerid, pName, 24);
  1877. format(file, sizeof(file), "Houses/%s.ini", pName);
  1878. dini_IntSet(file, "Price", HouseInfo[h][Price]);
  1879. dini_FloatSet(file, "Teleport X", HouseInfo[h][TX]);
  1880. dini_FloatSet(file, "Teleport Y", HouseInfo[h][TY]);
  1881. dini_FloatSet(file, "Teleport Z", HouseInfo[h][TZ]);
  1882. dini_FloatSet(file, "Teleport Angle", HouseInfo[h][TA]);
  1883. dini_IntSet(file, "Interior", 1);
  1884. dini_IntSet(file, "Virtual", randvir);
  1885. return 1;
  1886. }
  1887. if(listitem == 5)
  1888. {
  1889. new randvir = 2 + random(1999999);
  1890. new str[64];
  1891. HouseInfo[h][Price] = 25000;
  1892. HouseInfo[h][TX] = 2282.9099;
  1893. HouseInfo[h][TY] = -1138.2900;
  1894. HouseInfo[h][TZ] = 1050.8984;
  1895. HouseInfo[h][TA] = 360.0000;
  1896. HouseInfo[h][Int] = 11;
  1897. HouseInfo[h][Vir] = randvir;
  1898. new money = GetPlayerMoney(playerid);
  1899. if(money >= HouseInfo[h][Price])
  1900. return GivePlayerMoney(playerid, -HouseInfo[h][Price]);
  1901. SendClientMessage(playerid, 0xFFFF00FF, "You have set your house interior to:");
  1902. SendClientMessage(playerid, 0xFFFFFFAA, "Willowfield Safehouse");
  1903. format(str, sizeof(str), "Price: $%d", HouseInfo[h][Price]);
  1904. SendClientMessage(playerid, 0xFFFFFFAA, str);
  1905. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  1906. new file[100], pName[MAX_PLAYER_NAME];
  1907. GetPlayerName(playerid, pName, 24);
  1908. format(file, sizeof(file), "Houses/%s.ini", pName);
  1909. dini_IntSet(file, "Price", HouseInfo[h][Price]);
  1910. dini_FloatSet(file, "Teleport X", HouseInfo[h][TX]);
  1911. dini_FloatSet(file, "Teleport Y", HouseInfo[h][TY]);
  1912. dini_FloatSet(file, "Teleport Z", HouseInfo[h][TZ]);
  1913. dini_FloatSet(file, "Teleport Angle", HouseInfo[h][TA]);
  1914. dini_IntSet(file, "Interior", 11);
  1915. dini_IntSet(file, "Virtual", randvir);
  1916. return 1;
  1917. }
  1918. if(listitem == 6)
  1919. {
  1920. new randvir = 2 + random(1999999);
  1921. new str[64];
  1922. HouseInfo[h][Price] = 500000;
  1923. HouseInfo[h][TX] = 2317.8201;
  1924. HouseInfo[h][TY] = -1024.3892;
  1925. HouseInfo[h][TZ] = 1050.2109;
  1926. HouseInfo[h][TA] = 360.0000;
  1927. HouseInfo[h][Int] = 9;
  1928. HouseInfo[h][Vir] = randvir;
  1929. new money = GetPlayerMoney(playerid);
  1930. if(money >= HouseInfo[h][Price])
  1931. return GivePlayerMoney(playerid, -HouseInfo[h][Price]);
  1932. SendClientMessage(playerid, 0xFFFF00FF, "You have set your house interior to:");
  1933. SendClientMessage(playerid, 0xFFFFFFAA, "Mansion");
  1934. format(str, sizeof(str), "Price: $%d", HouseInfo[h][Price]);
  1935. SendClientMessage(playerid, 0xFFFFFFAA, str);
  1936. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  1937. new file[100], pName[MAX_PLAYER_NAME];
  1938. GetPlayerName(playerid, pName, 24);
  1939. format(file, sizeof(file), "Houses/%s.ini", pName);
  1940. dini_IntSet(file, "Price", HouseInfo[h][Price]);
  1941. dini_FloatSet(file, "Teleport X", HouseInfo[h][TX]);
  1942. dini_FloatSet(file, "Teleport Y", HouseInfo[h][TY]);
  1943. dini_FloatSet(file, "Teleport Z", HouseInfo[h][TZ]);
  1944. dini_FloatSet(file, "Teleport Angle", HouseInfo[h][TA]);
  1945. dini_IntSet(file, "Interior", 9);
  1946. dini_IntSet(file, "Virtual", randvir);
  1947. return 1;
  1948. }
  1949. if(listitem == 7)
  1950. {
  1951. new randvir = 2 + random(1999999);
  1952. new str[64];
  1953. HouseInfo[h][Price] = 1000000;
  1954. HouseInfo[h][TX] = 1262.4561;
  1955. HouseInfo[h][TY] = -785.2851;
  1956. HouseInfo[h][TZ] = 1091.9063;
  1957. HouseInfo[h][TA] = 270.6267;
  1958. HouseInfo[h][Int] = 5;
  1959. HouseInfo[h][Vir] = randvir;
  1960. new money = GetPlayerMoney(playerid);
  1961. if(money >= HouseInfo[h][Price])
  1962. return GivePlayerMoney(playerid, -HouseInfo[h][Price]);
  1963. SendClientMessage(playerid, 0xFFFF00FF, "You have set your house interior to:");
  1964. SendClientMessage(playerid, 0xFFFFFFAA, "Madd Dogg's Mansion");
  1965. format(str, sizeof(str), "Price: $%d", HouseInfo[h][Price]);
  1966. SendClientMessage(playerid, 0xFFFFFFAA, str);
  1967. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  1968. new file[100], pName[MAX_PLAYER_NAME];
  1969. GetPlayerName(playerid, pName, 24);
  1970. format(file, sizeof(file), "Houses/%s.ini", pName);
  1971. dini_IntSet(file, "Price", HouseInfo[h][Price]);
  1972. dini_FloatSet(file, "Teleport X", HouseInfo[h][TX]);
  1973. dini_FloatSet(file, "Teleport Y", HouseInfo[h][TY]);
  1974. dini_FloatSet(file, "Teleport Z", HouseInfo[h][TZ]);
  1975. dini_FloatSet(file, "Teleport Angle", HouseInfo[h][TA]);
  1976. dini_IntSet(file, "Interior", 5);
  1977. dini_IntSet(file, "Virtual", randvir);
  1978. return 1;
  1979. }
  1980. if(listitem == 8)
  1981. {
  1982. new randvir = 2 + random(1999999);
  1983. new str[64];
  1984. HouseInfo[h][Price] = 2500000;
  1985. HouseInfo[h][TX] = 2543.2571;
  1986. HouseInfo[h][TY] = -1304.2988;
  1987. HouseInfo[h][TZ] = 1025.0743;
  1988. HouseInfo[h][TA] = 177.0683;
  1989. HouseInfo[h][Int] = 2;
  1990. HouseInfo[h][Vir] = randvir;
  1991. new money = GetPlayerMoney(playerid);
  1992. if(money >= HouseInfo[h][Price])
  1993. return GivePlayerMoney(playerid, -HouseInfo[h][Price]);
  1994. SendClientMessage(playerid, 0xFFFF00FF, "You have set your house interior to:");
  1995. SendClientMessage(playerid, 0xFFFFFFAA, "Crack Palace");
  1996. format(str, sizeof(str), "Price: $%d", HouseInfo[h][Price]);
  1997. SendClientMessage(playerid, 0xFFFFFFAA, str);
  1998. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  1999. new file[100], pName[MAX_PLAYER_NAME];
  2000. GetPlayerName(playerid, pName, 24);
  2001. format(file, sizeof(file), "Houses/%s.ini", pName);
  2002. dini_IntSet(file, "Price", HouseInfo[h][Price]);
  2003. dini_FloatSet(file, "Teleport X", HouseInfo[h][TX]);
  2004. dini_FloatSet(file, "Teleport Y", HouseInfo[h][TY]);
  2005. dini_FloatSet(file, "Teleport Z", HouseInfo[h][TZ]);
  2006. dini_FloatSet(file, "Teleport Angle", HouseInfo[h][TA]);
  2007. dini_IntSet(file, "Interior", 2);
  2008. dini_IntSet(file, "Virtual", randvir);
  2009. return 1;
  2010. }
  2011. }
  2012. }
  2013. if(dialogid == 685 && response) // Upgrade Rent
  2014. {
  2015. for(new h = 0; h < sizeof(HouseInfo); h++)
  2016. {
  2017. if(listitem == 0)
  2018. {
  2019. if(HouseInfo[h][Rentable] == 0)
  2020. {
  2021. HouseInfo[h][Rentable] = 1;
  2022. PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
  2023. SendClientMessage(playerid, 0xFFFF00FF, "Rent enabled.");
  2024. return 1;
  2025. }
  2026. else
  2027. {
  2028. HouseInfo[h][Rentable] = 0;
  2029. PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
  2030. SendClientMessage(playerid, 0xFFFF00FF, "Rent disabled.");
  2031. return 1;
  2032. }
  2033. }
  2034. if(listitem == 1)
  2035. {
  2036. ShowPlayerDialog(playerid, 686, DIALOG_STYLE_INPUT, "Rent Price", "Please enter the price you want to set as your rent price.", "Finish", "Cancel");
  2037. return 1;
  2038. }
  2039. }
  2040. }
  2041. if(dialogid == 686 && response) // Upgrade Rent Price
  2042. {
  2043. for(new h = 0; h < sizeof(HouseInfo); h++)
  2044. {
  2045. if(response)
  2046. {
  2047. new amount = strval(inputtext);
  2048. if(amount < 1)
  2049. {
  2050. SendClientMessage(playerid, 0xE21F1FFF, "Amount must be above 1.");
  2051. ShowPlayerDialog(playerid, 678, DIALOG_STYLE_INPUT, "Rent Price", "Please enter the price you want to set as your rent price.", "Finish", "Cancel");
  2052. return 1;
  2053. }
  2054. if(amount > 5000)
  2055. {
  2056. SendClientMessage(playerid, 0xE21F1FFF, "Amount must be below 5000.");
  2057. ShowPlayerDialog(playerid, 678, DIALOG_STYLE_INPUT, "Rent Price", "Please enter the price you want to set as your rent price.", "Finish", "Cancel");
  2058. return 1;
  2059. }
  2060. HouseInfo[h][RentPrice] = amount;
  2061. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  2062. return 1;
  2063. }
  2064. }
  2065. }
  2066. if(dialogid == 687) // Vehicle
  2067. {
  2068. if(response)
  2069. {
  2070. new model = strval(inputtext);
  2071. if(model < 400)
  2072. return ShowPlayerDialog(playerid, 687, DIALOG_STYLE_INPUT, "Vehicle", "Please enter a vehicle ID from 400 to 611.", "Create", "Cancel");
  2073. if(model > 611)
  2074. return ShowPlayerDialog(playerid, 687, DIALOG_STYLE_INPUT, "Vehicle", "Please enter a vehicle ID from 400 to 611.", "Create", "Cancel");
  2075. if(model == 425 || model == 432 || model == 476 || model == 447 || model == 537 || model == 538 || model == 569 || model == 570 || model == 584 || model == 590 || model == 591 || model == 606 || model == 607 || model == 608 || model == 610 || model == 611 || model == 441 || model == 464 || model == 465 || model == 501 || model == 564 || model == 594 || model == 435 || model == 449 || model == 450)
  2076. {
  2077. SendClientMessage(playerid, 0xE21F1FFF, "Those vehicles are restricted!");
  2078. ShowPlayerDialog(playerid, 687, DIALOG_STYLE_INPUT, "Vehicle", "Please enter a vehicle ID from 400 to 611.", "Create", "Cancel");
  2079. return 1;
  2080. }
  2081. SetupHouseInfo[playerid][SetupCarModel] = model;
  2082. IsSettingUpVehicle[playerid] = true;
  2083. ShowPlayerDialog(playerid, 255, DIALOG_STYLE_MSGBOX, "Vehicle Setup", "Go to the position you want your vehicle to spawn, then type /confirm.", "Select", "Cancel");
  2084. return 1;
  2085. }
  2086. else
  2087. {
  2088. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  2089. return 1;
  2090. }
  2091. }
  2092. if(dialogid == 688) // Upgrade Vehicle
  2093. {
  2094. if(response)
  2095. {
  2096. for(new h = 0; h < sizeof(HouseInfo); h++)
  2097. {
  2098. new model = strval(inputtext);
  2099. if(model < 400)
  2100. return ShowPlayerDialog(playerid, 687, DIALOG_STYLE_INPUT, "Vehicle", "Please enter a vehicle ID from 400 to 611.", "Create", "Cancel");
  2101. if(model > 611)
  2102. return ShowPlayerDialog(playerid, 687, DIALOG_STYLE_INPUT, "Vehicle", "Please enter a vehicle ID from 400 to 611.", "Create", "Cancel");
  2103. if(model == 425 || model == 432 || model == 476 || model == 447 || model == 537 || model == 538 || model == 569 || model == 570 || model == 584 || model == 590 || model == 591 || model == 606 || model == 607 || model == 608 || model == 610 || model == 611 || model == 441 || model == 464 || model == 465 || model == 501 || model == 564 || model == 594 || model == 435 || model == 449 || model == 450)
  2104. {
  2105. SendClientMessage(playerid, 0xE21F1FFF, "Those vehicles are restricted!");
  2106. ShowPlayerDialog(playerid, 687, DIALOG_STYLE_INPUT, "Vehicle", "Please enter a vehicle ID from 400 to 611.", "Create", "Cancel");
  2107. return 1;
  2108. }
  2109. HouseInfo[h][CarModel] = model;
  2110. IsUpgradingVehicle[playerid] = true;
  2111. ShowPlayerDialog(playerid, 255, DIALOG_STYLE_MSGBOX, "Vehicle Setup", "Go to the position you want your vehicle to spawn, then type /confirm.", "Select", "Cancel");
  2112. return 1;
  2113. }
  2114. }
  2115. else
  2116. {
  2117. ShowPlayerDialog(playerid, 668, DIALOG_STYLE_LIST, "House Setup", "Entrance\nName\nDescription\nInterior\nVehicle\nRent\nPurchase", "Select", "Cancel");
  2118. return 1;
  2119. }
  2120. }
  2121. return 1;
  2122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement