Advertisement
Guest User

Untitled

a guest
Sep 19th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.21 KB | None | 0 0
  1. var menuHandlers = {
  2. "enter_garage": (player, colshape) => {
  3. var house = mp.houses.getBySqlId(player.inHouse);
  4. if (!player.inHouse) {
  5. if(player.colshape.garage.houseSqlId) {
  6. house = mp.houses.getBySqlId(player.colshape.garage.houseSqlId); // с улицы в гараж
  7. }
  8. } else {
  9. house = mp.houses.getBySqlId(player.inHouse); // из дома в гараж
  10. }
  11.  
  12. if (!house) return player.utils.error(`No house found!`);
  13.  
  14. if (house.garage) player.call("selectMenu.show", ["enter_garage"]);
  15. },
  16. "police_storage": (player, colshape) => {
  17. if (player.faction !== colshape.policeStorage.faction) return player.utils.error(`No access!`);
  18. player.call("selectMenu.show", ["police_storage"]);
  19. },
  20. "police_storage_2": (player, colshape) => {
  21. if (player.faction !== colshape.policeStorage.faction) return player.utils.error(`No access!`);
  22. player.call("selectMenu.show", ["police_storage_2"]);
  23. },
  24. "army_storage": (player, colshape) => {
  25. if (player.faction != colshape.armyStorage.faction) return player.utils.error(`No access!`);
  26. player.call("selectMenu.show", ["army_storage"]);
  27. },
  28. "army_storage_2": (player, colshape) => {
  29. if (player.faction != colshape.armyStorage.faction) return player.utils.error(`No access!`);
  30. player.call("selectMenu.show", ["army_storage_2"]);
  31. },
  32. "hospital_storage": (player, colshape) => {
  33. if (player.faction != colshape.hospitalStorage.faction) return player.utils.error(`No access!`);
  34. player.call("selectMenu.show", ["hospital_storage"]);
  35. },
  36. "police_service": (player, colshape) => {
  37. var list = mp.houses.getArrayByOwner(player.sqlId);
  38. var ids = [];
  39. list.forEach((h) => {
  40. ids.push(h.sqlId)
  41. });
  42. if (!ids.length) ids = null;
  43. player.call("selectMenu.show", ["police_service", 0, ids]);
  44. },
  45. "police_service_2": (player, colshape) => {
  46. var list = mp.houses.getArrayByOwner(player.sqlId);
  47. var ids = [];
  48. list.forEach((h) => {
  49. ids.push(h.sqlId)
  50. });
  51. if (!ids.length) ids = null;
  52. player.call("selectMenu.show", ["police_service_2", 0, ids]);
  53. },
  54. "fib_storage": (player, colshape) => {
  55. if (player.faction !== colshape.fibStorage.faction) return player.utils.error(`No access!`);
  56. player.call("selectMenu.show", ["fib_storage"]);
  57. },
  58. };
  59. for (var i = 1; i <= 11; i++)
  60. menuHandlers[`enter_biz_${i}`] = (player, colshape) => {
  61. var biz = colshape.biz;
  62. var isOwner = biz.owner === player.sqlId;
  63. player.call("selectMenu.show", [`enter_biz_${biz.bizType}`, 0, {
  64. isOwner: isOwner,
  65. owner: biz.owner
  66. }]);
  67. if (biz.bizType == 6) {
  68. let biz6INfo = [10, 8, 12, 5, 15, 20, 40, 20, 30, 20];
  69. let prices = [];
  70. for (let i = 0; i < biz6INfo.length; i++) {
  71. let price = biz6INfo[i] * biz.productPrice;
  72. prices.push(price);
  73. }
  74. player.call("food.shop.setFoodShopName", [prices, biz.productPrice]);
  75. } else if (biz.bizType == 8) {
  76. let biz8INfo = [60, 50, 70, 180, 240, 280, 300, 350];
  77. let prices = [];
  78. for (let i = 0; i < biz8INfo.length; i++) {
  79. let price = biz8INfo[i] * biz.productPrice;
  80. prices.push(price);
  81. }
  82. player.call("weapon.shop.setAmmoShopName", [prices, biz.productPrice]);
  83. }
  84. };
  85.  
  86. module.exports = {
  87. "playerEnterColshape": (player, colshape) => {
  88. if (colshape.marker) colshape.marker.showFor(player);
  89. else player.colshape = colshape;
  90.  
  91. if (colshape.menuName) {
  92. if (player.vehicle) return player.utils.error(`Get out of the car!`);
  93. if (menuHandlers[colshape.menuName]) menuHandlers[colshape.menuName](player, colshape);
  94. else player.call("selectMenu.show", [colshape.menuName]);
  95. }
  96.  
  97. if (colshape.routep) {
  98. if (colshape.routep === player.route[player.currentRoutepIndex]) { //currentRoutepIndex - index в массиве маршрута
  99.  
  100. if (player.currentRoutepIndex < player.route.length - 1) {
  101. var index = ++player.currentRoutepIndex;
  102. var direction = (index + 1 < player.route.length) ? new mp.Vector3(player.route[index + 1].x, player.route[index + 1].y, player.route[index + 1].z, ) : null;
  103.  
  104. player.call("checkpoint.create", [player.route[index], direction]);
  105.  
  106. } else {
  107. player.call("checkpoint.create", []);
  108. }
  109. }
  110. } else if (colshape.factionProducts) {
  111. var index = colshape.factionProducts.factionIds.indexOf(player.faction);
  112. if (index == -1 || player.getVariable("attachedObject")) return;
  113. player.utils.setLocalVar("insideProducts", true);
  114. player.factionProducts = colshape.factionProducts;
  115. } else if (colshape.warehouse) {
  116. if (!player.getVariable("attachedObject")) return;
  117. player.utils.setLocalVar("insideWarehouseProducts", true);
  118. } else if (colshape.tpMarker) {
  119. if (player.lastTpMarkerId != null) return;
  120. var pos = colshape.targetMarker.position;
  121. pos.z++;
  122. player.position = pos;
  123. player.heading = colshape.targetMarker.h;
  124. player.lastTpMarkerId = colshape.tpMarker.id;
  125. } else if (colshape.isForTractor) {
  126. var veh = player.vehicle;
  127. if (!veh || !mp.isFarmVehicle(veh)) return;
  128. colshape.destroy();
  129.  
  130. if (player.farmJob.routeIndex == player.farmJob.route.length - 1) {
  131. var farmField = player.farmJob.tractorField;
  132. farmField.fill(veh.products.type);
  133.  
  134. player.utils.success(`You have successfully sown the field!`);
  135. player.utils.info(`The harvest is maturing...`);
  136. player.call("checkpoint.clearForTractor");
  137. player.call("removeWaypoint");
  138. veh.products.type = 0;
  139. veh.products.count = 0;
  140. delete player.farmJob.routeIndex;
  141. delete player.farmJob.route;
  142. var farm = player.farmJob.farm;
  143. var pay = farm.pay * mp.economy["farm_tractor_pay"].value;
  144. if (farm.balance < pay) player.utils.warning(`The farm does not have enough money to pay! Contact the owner of the farm!`);
  145. else {
  146. farm.setBalance(farm.balance - pay);
  147. player.utils.setMoney(player.money + pay);
  148. }
  149. } else {
  150. player.farmJob.routeIndex++;
  151.  
  152. var pos = player.farmJob.route[player.farmJob.routeIndex];
  153. var data = {
  154. position: pos,
  155. type: 1,
  156. scale: 4,
  157. params: {
  158. isForTractor: true
  159. },
  160. color: [255, 255, 255, 255]
  161. }
  162. if (player.farmJob.routeIndex < player.farmJob.route.length - 1) data.direction = player.farmJob.route[player.farmJob.routeIndex + 1];
  163. //дл¤ отловки событи¤ входа в маркер
  164. var colshape = mp.colshapes.newSphere(pos["x"], pos["y"], pos["z"] + 1, 3); //+1 to fix bug
  165. colshape.isForTractor = true;
  166. player.farmJob.tractorColshape = colshape;
  167. player.call("checkpoint.create", [JSON.stringify(data)]);
  168. player.call("setNewWaypoint", [pos.x, pos.y]);
  169. }
  170. }
  171.  
  172. },
  173. "houseHandler": (player) => {
  174. if (player.colshape) {
  175. if (player.colshape.house) {
  176. let house = player.colshape.house;
  177. if (house) {
  178. var interior = mp.interiors.getBySqlId(house.interior);
  179. if (!interior) return player.utils.error(`The interior has not been found!`);
  180. var values = [house.sqlId, house.class, house.interior, house.ownerName, house.garage, house.closed, house.price, house.position, interior.rooms, interior.square];
  181. //player.call("infoTable.show", ["house_info", house.sqlId]);
  182. player.call("houseMenu.show", [values]);
  183. }
  184. } else if (player.colshape.menuName === "exit_house") {
  185. player.call("exitHouse");
  186. } else if (player.colshape.menuName === "exit_garage") {
  187. mp.events.call("goExitGarage", player);
  188. }
  189. }
  190. },
  191. "houseMenuHandler": (player) => {
  192. var house = mp.houses.getBySqlId(player.inHouse);
  193. if (house && house.owner === player.sqlId) {
  194. player.call("houseOwnerMenu.update", [false, house.closed]);
  195. } else if (player.colshape && player.colshape.house && player.colshape.house.owner === player.sqlId) {
  196. player.call("houseOwnerMenu.update", [false, player.colshape.house.closed]);
  197. }
  198. },
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement