Guest User

Cali House without car-ownership

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