Guest User

TowerSystem by Phönix 1.1

a guest
Jul 11th, 2012
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.54 KB | None | 0 0
  1. /* Mein Tower System */
  2.  
  3.  
  4. /*
  5. Bugs:
  6. Chatspam bug behoben [Behoben]
  7.  
  8. ToDo:
  9. Der Job wird auf eine fest gemappte stelle fixxiert
  10. man kann die Anfragen ablehnen und Annehmen [Fertig]
  11. man kann eine Landeerlaubnis Anfordern und Annehmen [Fertig]
  12. Man darf nur fliegen/Landen wenn man eine Erlaubnis bekommt (wenn nicht kommt die Flugabwehr)
  13. es wird eine Flugabwehr gescriptet (Hydra /- Army)
  14. Die Flugabwehr wird sofort Alarmiert und die Position des Flugzeuges wird Angezeigt
  15. */
  16. #include <a_samp>
  17. #include <dini>
  18. #include <utils>
  19.  
  20. #define COLOR_RED 0xAA3333AA
  21. #define COLOR_YELLOW 0xFFFF00AA
  22. #define COLOR_GREY 0xAFAFAFAA
  23.  
  24. #define DIALOG_TOWERJOB 1
  25.  
  26. new TowerBeruf[MAX_PLAYERS];
  27. new Landeerlabniss[MAX_PLAYERS];
  28. new AnfrageSchon[MAX_PLAYERS];
  29.  
  30. forward StartErlaubnis(playerid);
  31. forward LandeErlaubnis(playerid);
  32.  
  33. #if defined FILTERSCRIPT
  34.  
  35. public OnFilterScriptInit()
  36. {
  37. print("\n--------------------------------------");
  38. print(" Tower System by Phönix");
  39. print("--------------------------------------\n");
  40. return 1;
  41. }
  42.  
  43. public OnFilterScriptExit()
  44. {
  45. return 1;
  46. }
  47.  
  48. #else
  49.  
  50. main()
  51. {
  52. print("\n----------------------------------");
  53. print(" Tower System by Phönix");
  54. print("----------------------------------\n");
  55. }
  56.  
  57. #endif
  58.  
  59. public OnPlayerRequestClass(playerid, classid)
  60. {
  61. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  62. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  63. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  64. return 1;
  65. }
  66.  
  67.  
  68. public OnPlayerConnect(playerid)
  69. {
  70. SendClientMessage(playerid, COLOR_RED, "* Tower System by Phönix");
  71. TowerBeruf[playerid] = 0;
  72. Landeerlabniss[playerid] = 0;
  73. AnfrageSchon[playerid] = 0;
  74. return 1;
  75. }
  76.  
  77. public OnPlayerDisconnect(playerid, reason)
  78. {
  79. TowerBeruf[playerid] = 0;
  80. Landeerlabniss[playerid] = 0;
  81. AnfrageSchon[playerid] = 0;
  82. return 1;
  83. }
  84.  
  85. public OnPlayerSpawn(playerid) //Wird vielleicht noch gebraucht
  86. {
  87. return 1;
  88. }
  89.  
  90. public OnPlayerDeath(playerid, killerid, reason) //Wird vielleicht noch gebraucht
  91. {
  92. return 1;
  93. }
  94.  
  95. public OnPlayerCommandText(playerid, cmdtext[])
  96. {
  97. new cmd[256],idx,tmp[256];
  98. cmd = strtok(cmdtext, idx);
  99. if (strcmp("/jobtower", cmdtext, true, 10) == 0)
  100. {
  101. ShowPlayerDialog(playerid, DIALOG_TOWERJOB, DIALOG_STYLE_LIST, "Job: Tower","Möchte Sie diesen Job annehmen?","Ja","Nein");
  102. return 1;
  103. }
  104. if (strcmp("/se", cmdtext, true, 10) == 0)
  105. {
  106. for(new i=0; i<MAX_PLAYERS; i++)
  107. {
  108. if(AnfrageSchon[i] == 0)
  109. {
  110. SendClientMessage(playerid, COLOR_RED, "* Eine Starterlaubnis wird Angefordert...");
  111. StartErlaubnis(playerid);
  112. return 1;
  113. }
  114. else
  115. {
  116. SendClientMessage(playerid, COLOR_RED, "* Ein anderer Spieler hat eine Starterlaubnis Angefordert, bitte warten Sie...!");
  117. }
  118. }
  119. return 1;
  120. }
  121. if(strcmp(cmd, "/sea", true) == 0)
  122. {
  123. if(IsPlayerConnected(playerid))
  124. {
  125. tmp = strtok(cmdtext, idx);
  126. if(!strlen(tmp))
  127. {
  128. SendClientMessage(playerid, COLOR_RED, "* /sea [pID]");
  129. return 1;
  130. }
  131. new gid,string[256];
  132. gid = ReturnUser(tmp);
  133. if(TowerBeruf[playerid] == 1)
  134. {
  135. if(IsPlayerConnected(gid))
  136. {
  137. if(gid != INVALID_PLAYER_ID)
  138. {
  139. new giveplayer[MAX_PLAYER_NAME];
  140. new sendername[MAX_PLAYER_NAME];
  141. GetPlayerName(gid, giveplayer, sizeof(giveplayer));
  142. GetPlayerName(playerid, sendername, sizeof(sendername));
  143. SendClientMessage(playerid, COLOR_YELLOW, "* Starterlaubnis wurde von dir erteilt!");
  144. SendClientMessage(gid, COLOR_RED, "-------- Starterlaubnis erteilt! --------");
  145. return 1;
  146. }
  147. }
  148. else
  149. {
  150. format(string, sizeof(string), "* Spieler ID: %d wurde nicht gefunden!", gid);
  151. SendClientMessage(playerid, COLOR_GREY, string);
  152. }
  153. }
  154. else
  155. {
  156. SendClientMessage(playerid, COLOR_GREY, "* Du bist nicht berechtigt!");
  157. }
  158.  
  159. }
  160. return 1;
  161. }
  162. if(strcmp(cmd, "/seaa", true) == 0)
  163. {
  164. if(IsPlayerConnected(playerid))
  165. {
  166. tmp = strtok(cmdtext, idx);
  167. if(!strlen(tmp))
  168. {
  169. SendClientMessage(playerid, COLOR_RED, "* /seaa [pID]");
  170. return 1;
  171. }
  172. new gid,string[256];
  173. gid = ReturnUser(tmp);
  174. if(TowerBeruf[playerid] == 1)
  175. {
  176. if(IsPlayerConnected(gid))
  177. {
  178. if(gid != INVALID_PLAYER_ID)
  179. {
  180. new giveplayer[MAX_PLAYER_NAME];
  181. new sendername[MAX_PLAYER_NAME];
  182. GetPlayerName(gid, giveplayer, sizeof(giveplayer));
  183. GetPlayerName(playerid, sendername, sizeof(sendername));
  184. SendClientMessage(playerid, COLOR_YELLOW, "* Starterlaubnis wurde von dir Abgelehnt!");
  185. SendClientMessage(gid, COLOR_RED, ">> Starterlaubnis Abgelehnt! <<");
  186. return 1;
  187. }
  188. }
  189. else
  190. {
  191. format(string, sizeof(string), "* Spieler ID: %d wurde nicht gefunden!", gid);
  192. SendClientMessage(playerid, COLOR_GREY, string);
  193. }
  194. }
  195. else
  196. {
  197. SendClientMessage(playerid, COLOR_GREY, "* Du bist nicht berechtigt!");
  198. }
  199.  
  200. }
  201. return 1;
  202. }
  203. if (strcmp("/le", cmdtext, true, 10) == 0)
  204. {
  205. for(new i=0; i<MAX_PLAYERS; i++)
  206. {
  207. if(AnfrageSchon[i] == 0)
  208. {
  209. SendClientMessage(playerid, COLOR_RED, "* Eine Ladeerlaubnis wird Angefordert...");
  210. LandeErlaubnis(playerid);
  211. return 1;
  212. }
  213. else
  214. {
  215. SendClientMessage(playerid, COLOR_RED, "* Ein anderer Spieler hat eine Ladeerlaubnis Angefordert, bitte warten Sie...!");
  216. }
  217. }
  218. return 1;
  219. }
  220. if(strcmp(cmd, "/lea", true) == 0)
  221. {
  222. if(IsPlayerConnected(playerid))
  223. {
  224. tmp = strtok(cmdtext, idx);
  225. if(!strlen(tmp))
  226. {
  227. SendClientMessage(playerid, COLOR_RED, "* /lea [pID]");
  228. return 1;
  229. }
  230. new gid,string[256];
  231. gid = ReturnUser(tmp);
  232. if(TowerBeruf[playerid] == 1)
  233. {
  234. if(IsPlayerConnected(gid))
  235. {
  236. if(gid != INVALID_PLAYER_ID)
  237. {
  238. new giveplayer[MAX_PLAYER_NAME];
  239. new sendername[MAX_PLAYER_NAME];
  240. GetPlayerName(gid, giveplayer, sizeof(giveplayer));
  241. GetPlayerName(playerid, sendername, sizeof(sendername));
  242. SendClientMessage(playerid, COLOR_YELLOW, "* Ladeerlaubnis wurde von dir erteilt!");
  243. SendClientMessage(gid, COLOR_RED, "-------- Ladeerlaubnis erteilt! --------");
  244. return 1;
  245. }
  246. }
  247. else
  248. {
  249. format(string, sizeof(string), "* Spieler ID: %d wurde nicht gefunden!", gid);
  250. SendClientMessage(playerid, COLOR_GREY, string);
  251. }
  252. }
  253. else
  254. {
  255. SendClientMessage(playerid, COLOR_GREY, "* Du bist nicht berechtigt!");
  256. }
  257.  
  258. }
  259. return 1;
  260. }
  261. if(strcmp(cmd, "/leaa", true) == 0)
  262. {
  263. if(IsPlayerConnected(playerid))
  264. {
  265. tmp = strtok(cmdtext, idx);
  266. if(!strlen(tmp))
  267. {
  268. SendClientMessage(playerid, COLOR_RED, "* /leaa [pID]");
  269. return 1;
  270. }
  271. new gid,string[256];
  272. gid = ReturnUser(tmp);
  273. if(TowerBeruf[playerid] == 1)
  274. {
  275. if(IsPlayerConnected(gid))
  276. {
  277. if(gid != INVALID_PLAYER_ID)
  278. {
  279. new giveplayer[MAX_PLAYER_NAME];
  280. new sendername[MAX_PLAYER_NAME];
  281. GetPlayerName(gid, giveplayer, sizeof(giveplayer));
  282. GetPlayerName(playerid, sendername, sizeof(sendername));
  283. SendClientMessage(playerid, COLOR_YELLOW, "* Ladeerlaubnis wurde von dir Abgelehnt!");
  284. SendClientMessage(gid, COLOR_RED, ">> Ladeerlaubnis Abgelehnt! <<");
  285. return 1;
  286. }
  287. }
  288. else
  289. {
  290. format(string, sizeof(string), "* Spieler ID: %d wurde nicht gefunden!", gid);
  291. SendClientMessage(playerid, COLOR_GREY, string);
  292. }
  293. }
  294. else
  295. {
  296. SendClientMessage(playerid, COLOR_GREY, "* Du bist nicht berechtigt!");
  297. }
  298.  
  299. }
  300. return 1;
  301. }
  302. return 0;
  303. }
  304.  
  305. public StartErlaubnis(playerid)
  306. {
  307. for(new i=0; i<MAX_PLAYERS; i++)
  308. {
  309. if(TowerBeruf[i] == 1)
  310. {
  311. AnfrageSchon[i] = 1;
  312. new string[128];
  313. format(string,sizeof(string), "* %s [ID: %d] fordert eine Starterlaubnis, /sea um sie Anzunehmen! /seaa um sie Abzulehnen",PlayerName(playerid),playerid);
  314. SendClientMessageToAll(COLOR_YELLOW, string);
  315. }
  316. }
  317. return 1;
  318. }
  319.  
  320. public LandeErlaubnis(playerid)
  321. {
  322. for(new i=0; i<MAX_PLAYERS; i++)
  323. {
  324. if(TowerBeruf[i] == 1)
  325. {
  326. AnfrageSchon[i] = 1;
  327. new string[128];
  328. format(string,sizeof(string), "* %s [ID: %d] fordert eine LandeErlaubnis, /lea um sie Anzunehmen! /leaa um sie Abzulehnen",PlayerName(playerid),playerid);
  329. SendClientMessageToAll(COLOR_YELLOW, string);
  330. }
  331. }
  332. return 1;
  333. }
  334.  
  335. public OnPlayerStateChange(playerid, newstate, oldstate) //Wird vielleicht noch gebraucht
  336. {
  337. return 1;
  338. }
  339.  
  340.  
  341. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  342. {
  343. if(dialogid == DIALOG_TOWERJOB)
  344. {
  345. if(response == 1)
  346. {
  347. SendClientMessage(playerid, COLOR_RED, "Job: Tower | Angenommen");
  348. SendClientMessage(playerid, COLOR_GREY, "Ihre befehle stehen nun unter /help");
  349. SendClientMessage(playerid, COLOR_GREY, "Wenn sie Reloggen sind sie kein Tower mehr von Beruf!");
  350. TowerBeruf[playerid] = 1;
  351. }
  352. if(response == 0)
  353. {
  354. SendClientMessage(playerid, COLOR_GREY, "* Vorgang Abgebrochen!");
  355. }
  356. }
  357. return 1;
  358. }
  359.  
  360. public OnPlayerClickPlayer(playerid, clickedplayerid, source) //Wird vielleicht noch gebraucht
  361. {
  362. return 1;
  363. }
  364.  
  365. stock PlayerName(playerid)
  366. {
  367. new pname[MAX_PLAYER_NAME];
  368. GetPlayerName(playerid,pname,MAX_PLAYER_NAME);
  369. return pname;
  370. }
Advertisement
Add Comment
Please, Sign In to add comment