Advertisement
Ilai

Untitled

Aug 10th, 2017
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.10 KB | None | 0 0
  1. #define MAX_GATES 300
  2.  
  3. ongamemodeinit:
  4. for(new i = 1; i < MAX_GATES; i++)
  5. {
  6. new File[64];
  7. format(File, 64, "Gates/%d.ini", i);
  8. if(fexist(File))
  9. {
  10. INI_ParseFile(File, "LoadGates_%d", .bExtra = true, .extra = i);
  11. GateInfo[i][gGate] = CreateDynamicObject(GateInfo[i][gModel], GateInfo[i][gCX], GateInfo[i][gCY], GateInfo[i][gCZ], GateInfo[i][gCRX], GateInfo[i][gCRY], GateInfo[i][gCRZ]);
  12. GateInfo[i][gStatus] = 0;
  13. }
  14. }
  15.  
  16. OnDialogResponse:
  17. if(dialogid == DIALOG_GATES)
  18. {
  19. if(response)
  20. {
  21. if(listitem == 0)
  22. {
  23. for(new idx=1; idx<MAX_GATES; idx++)
  24. {
  25. if(!GateInfo[idx][gModel])
  26. {
  27. GetPlayerPos(playerid, GateInfo[idx][gCX], GateInfo[idx][gCY], GateInfo[idx][gCZ]);
  28. GateInfo[idx][gModel] = 969;
  29. GateInfo[idx][gCX] = GateInfo[idx][gCX] + 2;
  30. GateInfo[idx][gCY] = GateInfo[idx][gCY] + 2;
  31. GateInfo[idx][gCRX] = 0;
  32. GateInfo[idx][gCRY] = 0;
  33. GateInfo[idx][gCRZ] = 0;
  34. GetPlayerPos(playerid, GateInfo[idx][gOX], GateInfo[idx][gOY], GateInfo[idx][gOZ]);
  35. GateInfo[idx][gOX] = GateInfo[idx][gOX] + 2;
  36. GateInfo[idx][gOY] = GateInfo[idx][gOY] + 2;
  37. GateInfo[idx][gORX] = 0;
  38. GateInfo[idx][gORY] = 0;
  39. GateInfo[idx][gORZ] = 0;
  40. GateInfo[idx][gStatus] = 0;
  41. format(GateInfo[idx][gPassword], 256, "");
  42. GateInfo[idx][gSpeed] = 2;
  43. GateInfo[idx][gGate] = CreateDynamicObject(GateInfo[idx][gModel], GateInfo[idx][gCX], GateInfo[idx][gCY], GateInfo[idx][gCZ], GateInfo[idx][gCRX], GateInfo[idx][gCRY], GateInfo[idx][gCRZ]);
  44. new File[64];
  45. format(File, 64, "Gates/%d.ini", idx);
  46. new INI:file = INI_Open(File);
  47. INI_Close(file);
  48. SaveGates();
  49. idx = MAX_GATES;
  50. }
  51. }
  52. }
  53. else if(listitem == 1)
  54. {
  55. for(new idx=1; idx<MAX_GATES; idx++)
  56. {
  57. if(!GateInfo[idx][gModel])
  58. {
  59. GetPlayerPos(playerid, GateInfo[idx][gCX], GateInfo[idx][gCY], GateInfo[idx][gCZ]);
  60. GateInfo[idx][gModel] = 971;
  61. GateInfo[idx][gCX] = GateInfo[idx][gCX] + 2;
  62. GateInfo[idx][gCY] = GateInfo[idx][gCY] + 2;
  63. GateInfo[idx][gCRX] = 0;
  64. GateInfo[idx][gCRY] = 0;
  65. GateInfo[idx][gCRZ] = 0;
  66. GetPlayerPos(playerid, GateInfo[idx][gOX], GateInfo[idx][gOY], GateInfo[idx][gOZ]);
  67. GateInfo[idx][gOX] = GateInfo[idx][gOX] + 2;
  68. GateInfo[idx][gOY] = GateInfo[idx][gOY] + 2;
  69. GateInfo[idx][gORX] = 0;
  70. GateInfo[idx][gORY] = 0;
  71. GateInfo[idx][gORZ] = 0;
  72. GateInfo[idx][gStatus] = 0;
  73. format(GateInfo[idx][gPassword], 256, "");
  74. GateInfo[idx][gSpeed] = 2;
  75. GateInfo[idx][gGate] = CreateDynamicObject(GateInfo[idx][gModel], GateInfo[idx][gCX], GateInfo[idx][gCY], GateInfo[idx][gCZ], GateInfo[idx][gCRX], GateInfo[idx][gCRY], GateInfo[idx][gCRZ]);
  76. new File[64];
  77. format(File, 64, "Gates/%d.ini", idx);
  78. new INI:file = INI_Open(File);
  79. INI_Close(file);
  80. SaveGates();
  81. idx = MAX_GATES;
  82. }
  83. }
  84. }
  85. else if(listitem == 2)
  86. {
  87. for(new idx=1; idx<MAX_GATES; idx++)
  88. {
  89. if(!GateInfo[idx][gModel])
  90. {
  91. GetPlayerPos(playerid, GateInfo[idx][gCX], GateInfo[idx][gCY], GateInfo[idx][gCZ]);
  92. GateInfo[idx][gModel] = 975;
  93. GateInfo[idx][gCX] = GateInfo[idx][gCX] + 2;
  94. GateInfo[idx][gCY] = GateInfo[idx][gCY] + 2;
  95. GateInfo[idx][gCRX] = 0;
  96. GateInfo[idx][gCRY] = 0;
  97. GateInfo[idx][gCRZ] = 0;
  98. GetPlayerPos(playerid, GateInfo[idx][gOX], GateInfo[idx][gOY], GateInfo[idx][gOZ]);
  99. GateInfo[idx][gOX] = GateInfo[idx][gOX] + 2;
  100. GateInfo[idx][gOY] = GateInfo[idx][gOY] + 2;
  101. GateInfo[idx][gORX] = 0;
  102. GateInfo[idx][gORY] = 0;
  103. GateInfo[idx][gORZ] = 0;
  104. GateInfo[idx][gStatus] = 0;
  105. format(GateInfo[idx][gPassword], 256, "");
  106. GateInfo[idx][gSpeed] = 2;
  107. GateInfo[idx][gGate] = CreateDynamicObject(GateInfo[idx][gModel], GateInfo[idx][gCX], GateInfo[idx][gCY], GateInfo[idx][gCZ], GateInfo[idx][gCRX], GateInfo[idx][gCRY], GateInfo[idx][gCRZ]);
  108. new File[64];
  109. format(File, 64, "Gates/%d.ini", idx);
  110. new INI:file = INI_Open(File);
  111. INI_Close(file);
  112. SaveGates();
  113. idx = MAX_GATES;
  114. }
  115. }
  116. }
  117. else if(listitem == 3)
  118. {
  119. for(new idx=1; idx<MAX_GATES; idx++)
  120. {
  121. if(!GateInfo[idx][gModel])
  122. {
  123. GetPlayerPos(playerid, GateInfo[idx][gCX], GateInfo[idx][gCY], GateInfo[idx][gCZ]);
  124. GateInfo[idx][gModel] = 976;
  125. GateInfo[idx][gCX] = GateInfo[idx][gCX] + 2;
  126. GateInfo[idx][gCY] = GateInfo[idx][gCY] + 2;
  127. GateInfo[idx][gCRX] = 0;
  128. GateInfo[idx][gCRY] = 0;
  129. GateInfo[idx][gCRZ] = 0;
  130. GetPlayerPos(playerid, GateInfo[idx][gOX], GateInfo[idx][gOY], GateInfo[idx][gOZ]);
  131. GateInfo[idx][gOX] = GateInfo[idx][gOX] + 2;
  132. GateInfo[idx][gOY] = GateInfo[idx][gOY] + 2;
  133. GateInfo[idx][gORX] = 0;
  134. GateInfo[idx][gORY] = 0;
  135. GateInfo[idx][gORZ] = 0;
  136. GateInfo[idx][gStatus] = 0;
  137. format(GateInfo[idx][gPassword], 256, "");
  138. GateInfo[idx][gSpeed] = 2;
  139. GateInfo[idx][gGate] = CreateDynamicObject(GateInfo[idx][gModel], GateInfo[idx][gCX], GateInfo[idx][gCY], GateInfo[idx][gCZ], GateInfo[idx][gCRX], GateInfo[idx][gCRY], GateInfo[idx][gCRZ]);
  140. new File[64];
  141. format(File, 64, "Gates/%d.ini", idx);
  142. new INI:file = INI_Open(File);
  143. INI_Close(file);
  144. SaveGates();
  145. idx = MAX_GATES;
  146. }
  147. }
  148. }
  149. else if(listitem == 4)
  150. {
  151. for(new idx=1; idx<MAX_GATES; idx++)
  152. {
  153. if(!GateInfo[idx][gModel])
  154. {
  155. GetPlayerPos(playerid, GateInfo[idx][gCX], GateInfo[idx][gCY], GateInfo[idx][gCZ]);
  156. GateInfo[idx][gModel] = 980;
  157. GateInfo[idx][gCX] = GateInfo[idx][gCX] + 2;
  158. GateInfo[idx][gCY] = GateInfo[idx][gCY] + 2;
  159. GateInfo[idx][gCRX] = 0;
  160. GateInfo[idx][gCRY] = 0;
  161. GateInfo[idx][gCRZ] = 0;
  162. GetPlayerPos(playerid, GateInfo[idx][gOX], GateInfo[idx][gOY], GateInfo[idx][gOZ]);
  163. GateInfo[idx][gOX] = GateInfo[idx][gOX] + 2;
  164. GateInfo[idx][gOY] = GateInfo[idx][gOY] + 2;
  165. GateInfo[idx][gORX] = 0;
  166. GateInfo[idx][gORY] = 0;
  167. GateInfo[idx][gORZ] = 0;
  168. GateInfo[idx][gStatus] = 0;
  169. format(GateInfo[idx][gPassword], 256, "");
  170. GateInfo[idx][gSpeed] = 2;
  171. GateInfo[idx][gGate] = CreateDynamicObject(GateInfo[idx][gModel], GateInfo[idx][gCX], GateInfo[idx][gCY], GateInfo[idx][gCZ], GateInfo[idx][gCRX], GateInfo[idx][gCRY], GateInfo[idx][gCRZ]);
  172. new File[64];
  173. format(File, 64, "Gates/%d.ini", idx);
  174. new INI:file = INI_Open(File);
  175. INI_Close(file);
  176. SaveGates();
  177. idx = MAX_GATES;
  178. }
  179. }
  180. }
  181. else if(listitem == 5)
  182. {
  183. for(new idx=1; idx<MAX_GATES; idx++)
  184. {
  185. if(!GateInfo[idx][gModel])
  186. {
  187. GetPlayerPos(playerid, GateInfo[idx][gCX], GateInfo[idx][gCY], GateInfo[idx][gCZ]);
  188. GateInfo[idx][gModel] = 985;
  189. GateInfo[idx][gCX] = GateInfo[idx][gCX] + 2;
  190. GateInfo[idx][gCY] = GateInfo[idx][gCY] + 2;
  191. GateInfo[idx][gCRX] = 0;
  192. GateInfo[idx][gCRY] = 0;
  193. GateInfo[idx][gCRZ] = 0;
  194. GetPlayerPos(playerid, GateInfo[idx][gOX], GateInfo[idx][gOY], GateInfo[idx][gOZ]);
  195. GateInfo[idx][gOX] = GateInfo[idx][gOX] + 2;
  196. GateInfo[idx][gOY] = GateInfo[idx][gOY] + 2;
  197. GateInfo[idx][gORX] = 0;
  198. GateInfo[idx][gORY] = 0;
  199. GateInfo[idx][gORZ] = 0;
  200. GateInfo[idx][gStatus] = 0;
  201. format(GateInfo[idx][gPassword], 256, "");
  202. GateInfo[idx][gSpeed] = 2;
  203. GateInfo[idx][gGate] = CreateDynamicObject(GateInfo[idx][gModel], GateInfo[idx][gCX], GateInfo[idx][gCY], GateInfo[idx][gCZ], GateInfo[idx][gCRX], GateInfo[idx][gCRY], GateInfo[idx][gCRZ]);
  204. new File[64];
  205. format(File, 64, "Gates/%d.ini", idx);
  206. new INI:file = INI_Open(File);
  207. INI_Close(file);
  208. SaveGates();
  209. idx = MAX_GATES;
  210. }
  211. }
  212. }
  213. }
  214. }
  215.  
  216. if(dialogid == DIALOG_CGID)
  217. {
  218. if(response)
  219. {
  220. new Gateid = strval(inputtext);
  221. if(!IsNumeric(inputtext))
  222. {
  223. SendClientMessage(playerid, COLOR_RED, "Error: This gate id is invalid only numerical values can be accepted.");
  224. ShowPlayerDialog(playerid, DIALOG_CGID, DIALOG_STYLE_INPUT, "Add Custom GateID", "Insert a GateID below to create gate.", "Create", "Cancel");
  225. return 1;
  226. }
  227. for(new idx = 1; idx < MAX_GATES; idx++)
  228. {
  229. if(!GateInfo[idx][gModel])
  230. {
  231. GetPlayerPos(playerid, GateInfo[idx][gCX], GateInfo[idx][gCY], GateInfo[idx][gCZ]);
  232. GateInfo[idx][gModel] = Gateid;
  233. GateInfo[idx][gCX] = GateInfo[idx][gCX] + 2;
  234. GateInfo[idx][gCY] = GateInfo[idx][gCY] + 2;
  235. GateInfo[idx][gCRX] = 0;
  236. GateInfo[idx][gCRY] = 0;
  237. GateInfo[idx][gCRZ] = 0;
  238. GetPlayerPos(playerid, GateInfo[idx][gOX], GateInfo[idx][gOY], GateInfo[idx][gOZ]);
  239. GateInfo[idx][gOX] = GateInfo[idx][gOX] + 2;
  240. GateInfo[idx][gOY] = GateInfo[idx][gOY] + 2;
  241. GateInfo[idx][gORX] = 0;
  242. GateInfo[idx][gORY] = 0;
  243. GateInfo[idx][gORZ] = 0;
  244. GateInfo[idx][gStatus] = 0;
  245. format(GateInfo[idx][gPassword], 256, "");
  246. GateInfo[idx][gSpeed] = 2;
  247. GateInfo[idx][gGate] = CreateDynamicObject(GateInfo[idx][gModel], GateInfo[idx][gCX], GateInfo[idx][gCY], GateInfo[idx][gCZ], GateInfo[idx][gCRX], GateInfo[idx][gCRY], GateInfo[idx][gCRZ]);
  248. new File[64];
  249. format(File, 64, "Gates/%d.ini", idx);
  250. new INI:file = INI_Open(File);
  251. INI_Close(file);
  252. SaveGates();
  253. idx = MAX_GATES;
  254. }
  255. }
  256.  
  257. }
  258. else
  259. {
  260. ShowPlayerDialog(playerid, DIALOG_GATES, DIALOG_STYLE_TABLIST_HEADERS, "Create Gate",
  261. "Gate Name\t\tObject ID\n\
  262. Electric Gate\t\t969\n\
  263. Subway Gate\t\t971\n\
  264. Columbian Gate\t\t975\n\
  265. Phils_Compnd Gate\t\t976\n\
  266. Airport Gate\t\t980",
  267. "Select", "Cancel");
  268. }
  269. }
  270.  
  271. command:
  272. CMD:creategate(playerid, params[])
  273. {
  274. if(PlayerInfo[playerid][pAdmin] >= 1337)
  275. {
  276. ShowPlayerDialog(playerid, DIALOG_GATES, DIALOG_STYLE_TABLIST_HEADERS, "Create Gate",
  277. "Gate Name\t\tObject ID\n\
  278. Electric Gate\t\t969\n\
  279. Subway Gate\t\t971\n\
  280. Columbian Gate\t\t975\n\
  281. Phils_Compnd Gate\t\t976\n\
  282. Airport Gate\t\t980",
  283. "Select", "Cancel");
  284. }
  285. else return SendClientMessage(playerid, COLOR_GRAD2, NOTADMIN);
  286. return 1;
  287. }
  288.  
  289. function:
  290. function LoadGates_data(playerid, name[], value[])
  291. {
  292. for(new i = 1; i < MAX_GATES; i++)
  293. {
  294. INI_Int("Model", GateInfo[i][gModel]);
  295. INI_Float("CX", GateInfo[i][gCX]);
  296. INI_Float("CY", GateInfo[i][gCY]);
  297. INI_Float("CZ", GateInfo[i][gCZ]);
  298. INI_Float("CRX", GateInfo[i][gCRX]);
  299. INI_Float("CRY", GateInfo[i][gCRY]);
  300. INI_Float("CRZ", GateInfo[i][gCRZ]);
  301. INI_Float("OX", GateInfo[i][gOX]);
  302. INI_Float("OY", GateInfo[i][gOY]);
  303. INI_Float("OZ", GateInfo[i][gOZ]);
  304. INI_Float("ORX", GateInfo[i][gORX]);
  305. INI_Float("ORY", GateInfo[i][gORY]);
  306. INI_Float("ORZ", GateInfo[i][gORZ]);
  307. INI_String("Password", GateInfo[i][gPassword], 256);
  308. INI_Float("Speed", GateInfo[i][gSpeed]);
  309. }
  310. return 1;
  311. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement