Advertisement
Guest User

(c) Phoenix

a guest
Aug 17th, 2012
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.00 KB | None | 0 0
  1. /*_______________________________________________________________________________________________
  2. Das Phön _ Tower System wurde von Phoenix alias Rainer gescriptet.
  3. Ich bitte darum die Credits drinnen zu lassen. Vorschläge sind für das Filterscript
  4. immer erwüscht, Kontaktdaten stehen unten! Dieses Filterscript kann man gut in Reallife
  5. Roleplay Scripts rein setzen (kommt gut an ^^).
  6.  
  7. Kontakt per Skype: rainer_97 oder hosenladen928
  8. Kontakt per EMail: lestermail@hivebox1.com
  9. Kontakt per ICQ: ich mag icq überhaupt nicht!
  10. __________________________________________________________________________________________________
  11.  
  12. Bugs:
  13. Chatspam bug behoben [Behoben]
  14.  
  15. Geschaft:
  16. man kann die Anfragen ablehnen und Annehmen [Fertig]
  17. man kann eine Landeerlaubnis Anfordern und Annehmen [Fertig]
  18. es wird eine Flugabwehr gescriptet [80%]
  19.  
  20. ToDo:
  21. Der Job wird auf eine festen stelle fixxiert
  22. Man darf nur fliegen/Landen wenn man eine Erlaubnis bekommt (wenn nicht bekommt die Flugabwehr eine Meldung)
  23. Die Flugabwehr wird sofort Alarmiert und die Position des Flugzeuges wird Angezeigt
  24. */
  25. #include <a_samp>
  26. #include <dini>
  27. #include <utils>
  28.  
  29. #define autor "Phoenix"
  30. #define version 1.2
  31.  
  32. #define COLOR_RED 0xAA3333AA
  33. #define COLOR_YELLOW 0xFFFF00AA
  34. #define COLOR_GREY 0xAFAFAFAA
  35.  
  36. #define DIALOG_TOWERJOB 1
  37. #define DIALOG_ABWEHRJOB 2
  38.  
  39. new engine,lights,alarm,doors,bonnet,boot,objective;
  40. new bool:Motor[MAX_VEHICLES]=false;
  41.  
  42. new TowerBeruf[MAX_PLAYERS];
  43. new Landeerlaubniss[MAX_PLAYERS];
  44. new Starterlaubniss[MAX_PLAYERS];
  45. new AnfrageSchon[MAX_PLAYERS];
  46. new AbwehrBeruf[MAX_PLAYERS];
  47.  
  48.  
  49. forward StartErlaubnis(playerid);
  50. forward LandeErlaubnis(playerid);
  51.  
  52. #if defined FILTERSCRIPT
  53.  
  54. public OnFilterScriptInit()
  55. {
  56. print(">> Tower System wurde erfolgreich geladen!");
  57. ManualVehicleEngineAndLights();
  58. for (new i=0; i< MAX_VEHICLES; i++)
  59. {
  60. GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objective);
  61. SetVehicleParamsEx(i,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
  62. Motor[i] = false;
  63. }
  64. return 1;
  65. }
  66.  
  67. public OnFilterScriptExit()
  68. {
  69. print("Filterscript wurde beendet!");
  70. return 1;
  71. }
  72.  
  73. #else
  74.  
  75. main()
  76. {
  77. print(">> Tower System wird geladen...");
  78. }
  79.  
  80. #endif
  81.  
  82. public OnPlayerRequestClass(playerid, classid)
  83. {
  84. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  85. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  86. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  87. return 1;
  88. }
  89.  
  90.  
  91. public OnPlayerConnect(playerid)
  92. {
  93. new string[128];
  94. format(string,sizeof(string), ">> Dieser Server nutzt das Tower System von %s | Version: %d", autor, version);
  95. SendClientMessage(playerid, COLOR_RED, string);
  96. TowerBeruf[playerid] = 0;
  97. Landeerlaubniss[playerid] = 0;
  98. Starterlaubniss[playerid] = 0;
  99. AnfrageSchon[playerid] = 0;
  100. AbwehrBeruf[playerid] = 0;
  101. return 1;
  102. }
  103.  
  104. public OnPlayerDisconnect(playerid, reason)
  105. {
  106. TowerBeruf[playerid] = 0;
  107. Landeerlaubniss[playerid] = 0;
  108. Starterlaubniss[playerid] = 0;
  109. AnfrageSchon[playerid] = 0;
  110. AbwehrBeruf[playerid] = 0;
  111. return 1;
  112. }
  113.  
  114. public OnPlayerSpawn(playerid) //Wird vielleicht noch gebraucht
  115. {
  116. return 1;
  117. }
  118.  
  119. public OnPlayerDeath(playerid, killerid, reason) //Wird vielleicht noch gebraucht
  120. {
  121. return 1;
  122. }
  123.  
  124. public OnPlayerCommandText(playerid, cmdtext[])
  125. {
  126. new cmd[256],idx,tmp[256];
  127. cmd = strtok(cmdtext, idx);
  128. if (strcmp("/jobtower", cmdtext, true, 10) == 0)
  129. {
  130. if(AbwehrBeruf[playerid] == 0)
  131. {
  132. ShowPlayerDialog(playerid, DIALOG_ABWEHRJOB, DIALOG_STYLE_MSGBOX, "Job: Tower", "Möchtest du als Fluglotze Arbeiten?", "Ja", "Nein");
  133. }
  134. else if(AbwehrBeruf[playerid] == 1)
  135. {
  136. SendClientMessage(playerid, COLOR_RED, "* Du darfst keinen anderen Beruf besitzen!");
  137. }
  138. return 1;
  139. }
  140. if(strcmp(cmd, "/jobabwehr", true) == 0)
  141. {
  142. if(TowerBeruf[playerid] == 0)
  143. {
  144. ShowPlayerDialog(playerid, DIALOG_ABWEHRJOB, DIALOG_STYLE_MSGBOX, "Job: Abwehr", "Möchtest du als Flugabwehr Arbeiten?", "Ja", "Nein");
  145. }
  146. else if(TowerBeruf[playerid] == 1)
  147. {
  148. SendClientMessage(playerid, COLOR_RED, "* Du darfst keinen anderen Beruf besitzen!");
  149. }
  150. return 1;
  151. }
  152. if (strcmp("/se", cmdtext, true, 10) == 0)
  153. {
  154. for(new i=0; i<MAX_PLAYERS; i++)
  155. {
  156. if(AnfrageSchon[i] == 0)
  157. {
  158. SendClientMessage(playerid, COLOR_YELLOW, "* Eine Starterlaubnis wird Angefordert...");
  159. StartErlaubnis(playerid);
  160. return 1;
  161. }
  162. else
  163. {
  164. SendClientMessage(playerid, COLOR_RED, "* Ein anderer Spieler hat eine Starterlaubnis Angefordert, bitte warten...!");
  165. }
  166. }
  167. return 1;
  168. }
  169. if(strcmp(cmd, "/sea", true) == 0)
  170. {
  171. if(IsPlayerConnected(playerid))
  172. {
  173. tmp = strtok(cmdtext, idx);
  174. if(!strlen(tmp))
  175. {
  176. SendClientMessage(playerid, COLOR_RED, "* /sea [pID]");
  177. return 1;
  178. }
  179. new gid,string[256];
  180. gid = ReturnUser(tmp);
  181. if(TowerBeruf[playerid] == 1)
  182. {
  183. if(IsPlayerConnected(gid))
  184. {
  185. if(gid != INVALID_PLAYER_ID)
  186. {
  187. new giveplayer[MAX_PLAYER_NAME];
  188. new sendername[MAX_PLAYER_NAME];
  189. GetPlayerName(gid, giveplayer, sizeof(giveplayer));
  190. GetPlayerName(playerid, sendername, sizeof(sendername));
  191. SendClientMessage(playerid, COLOR_YELLOW, "* Starterlaubnis wurde von dir erteilt!");
  192. SendClientMessage(gid, COLOR_RED, "-------- Starterlaubnis erteilt! --------");
  193. Starterlaubniss[gid] = 1;
  194. return 1;
  195. }
  196. }
  197. else
  198. {
  199. format(string, sizeof(string), "* Spieler ID: %d wurde nicht gefunden!", gid);
  200. SendClientMessage(playerid, COLOR_GREY, string);
  201. }
  202. }
  203. else
  204. {
  205. SendClientMessage(playerid, COLOR_GREY, "* Du bist nicht berechtigt!");
  206. }
  207.  
  208. }
  209. return 1;
  210. }
  211. if(strcmp(cmd, "/seaa", true) == 0)
  212. {
  213. if(IsPlayerConnected(playerid))
  214. {
  215. tmp = strtok(cmdtext, idx);
  216. if(!strlen(tmp))
  217. {
  218. SendClientMessage(playerid, COLOR_RED, "* /seaa [pID]");
  219. return 1;
  220. }
  221. new gid,string[256];
  222. gid = ReturnUser(tmp);
  223. if(TowerBeruf[playerid] == 1)
  224. {
  225. if(IsPlayerConnected(gid))
  226. {
  227. if(gid != INVALID_PLAYER_ID)
  228. {
  229. new giveplayer[MAX_PLAYER_NAME];
  230. new sendername[MAX_PLAYER_NAME];
  231. GetPlayerName(gid, giveplayer, sizeof(giveplayer));
  232. GetPlayerName(playerid, sendername, sizeof(sendername));
  233. SendClientMessage(playerid, COLOR_YELLOW, "* Starterlaubnis wurde von dir Abgelehnt!");
  234. SendClientMessage(gid, COLOR_RED, ">> Starterlaubnis Abgelehnt! <<");
  235. Starterlaubniss[gid] = 0;
  236. return 1;
  237. }
  238. }
  239. else
  240. {
  241. format(string, sizeof(string), "* Spieler ID: %d wurde nicht gefunden!", gid);
  242. SendClientMessage(playerid, COLOR_GREY, string);
  243. }
  244. }
  245. else
  246. {
  247. SendClientMessage(playerid, COLOR_GREY, "* Du bist nicht berechtigt!");
  248. }
  249.  
  250. }
  251. return 1;
  252. }
  253. if (strcmp("/le", cmdtext, true, 10) == 0)
  254. {
  255. for(new i=0; i<MAX_PLAYERS; i++)
  256. {
  257. if(AnfrageSchon[i] == 0)
  258. {
  259. SendClientMessage(playerid, COLOR_RED, "* Eine Ladeerlaubnis wird Angefordert...");
  260. LandeErlaubnis(playerid);
  261. return 1;
  262. }
  263. else
  264. {
  265. SendClientMessage(playerid, COLOR_RED, "* Ein anderer Spieler hat eine Ladeerlaubnis Angefordert, bitte warten Sie...!");
  266. }
  267. }
  268. return 1;
  269. }
  270. if(strcmp(cmd, "/lea", true) == 0)
  271. {
  272. if(IsPlayerConnected(playerid))
  273. {
  274. tmp = strtok(cmdtext, idx);
  275. if(!strlen(tmp))
  276. {
  277. SendClientMessage(playerid, COLOR_RED, "* /lea [pID]");
  278. return 1;
  279. }
  280. new gid,string[256];
  281. gid = ReturnUser(tmp);
  282. if(TowerBeruf[playerid] == 1)
  283. {
  284. if(IsPlayerConnected(gid))
  285. {
  286. if(gid != INVALID_PLAYER_ID)
  287. {
  288. new giveplayer[MAX_PLAYER_NAME];
  289. new sendername[MAX_PLAYER_NAME];
  290. GetPlayerName(gid, giveplayer, sizeof(giveplayer));
  291. GetPlayerName(playerid, sendername, sizeof(sendername));
  292. SendClientMessage(playerid, COLOR_YELLOW, "* Ladeerlaubnis wurde von dir erteilt!");
  293. SendClientMessage(gid, COLOR_RED, "-------- Ladeerlaubnis erteilt! --------");
  294. Landeerlaubniss[gid] = 1;
  295. return 1;
  296. }
  297. }
  298. else
  299. {
  300. format(string, sizeof(string), "* Spieler ID: %d wurde nicht gefunden!", gid);
  301. SendClientMessage(playerid, COLOR_GREY, string);
  302. }
  303. }
  304. else
  305. {
  306. SendClientMessage(playerid, COLOR_GREY, "* Du bist nicht berechtigt!");
  307. }
  308.  
  309. }
  310. return 1;
  311. }
  312. if(strcmp(cmd, "/leaa", true) == 0)
  313. {
  314. if(IsPlayerConnected(playerid))
  315. {
  316. tmp = strtok(cmdtext, idx);
  317. if(!strlen(tmp))
  318. {
  319. SendClientMessage(playerid, COLOR_RED, "* /leaa [pID]");
  320. return 1;
  321. }
  322. new gid,string[256];
  323. gid = ReturnUser(tmp);
  324. if(TowerBeruf[playerid] == 1)
  325. {
  326. if(IsPlayerConnected(gid))
  327. {
  328. if(gid != INVALID_PLAYER_ID)
  329. {
  330. new giveplayer[MAX_PLAYER_NAME];
  331. new sendername[MAX_PLAYER_NAME];
  332. GetPlayerName(gid, giveplayer, sizeof(giveplayer));
  333. GetPlayerName(playerid, sendername, sizeof(sendername));
  334. SendClientMessage(playerid, COLOR_YELLOW, "* Ladeerlaubnis wurde von dir Abgelehnt!");
  335. SendClientMessage(gid, COLOR_RED, ">> Ladeerlaubnis Abgelehnt! <<");
  336. Landeerlaubniss[gid] = 0;
  337. return 1;
  338. }
  339. }
  340. else
  341. {
  342. format(string, sizeof(string), "* Spieler ID: %d wurde nicht gefunden!", gid);
  343. SendClientMessage(playerid, COLOR_GREY, string);
  344. }
  345. }
  346. else
  347. {
  348. SendClientMessage(playerid, COLOR_GREY, "* Du bist nicht berechtigt!");
  349. }
  350.  
  351. }
  352. return 1;
  353. }
  354. if(strcmp(cmdtext, "/motor", true) == 0)
  355. {
  356. if(Landeerlaubniss[playerid] == 0 || Starterlaubniss[playerid] == 0)
  357. {
  358. SendClientMessage(playerid, COLOR_RED, "Du hast keine Starterlaubniss!");
  359. for (new i=0; i< MAX_PLAYERS; i++)
  360. {
  361. if(TowerBeruf[playerid] == 1)
  362. {
  363. new string[128];
  364. format(string,sizeof(string), "%s [ID: %s] möchte ohne eine Starterlaubniss Starten!", PlayerName(playerid), playerid);
  365. SendClientMessage(i, COLOR_RED, string);
  366. }
  367. }
  368. }
  369. else
  370. {
  371. if(GetPlayerVehicleSeat(playerid) == 0)
  372. {
  373. new car = GetPlayerVehicleID(playerid);
  374. if(GetVehicleModel(car) == 509 || GetVehicleModel(car) == 481 || GetVehicleModel(car) == 510)
  375. {
  376. SendClientMessage(playerid, COLOR_RED, "Du kannst den Motor von einem Fahrrad nicht starten!");
  377. }
  378. else if (Motor[car] == false)
  379. {
  380. GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
  381. SetVehicleParamsEx(car,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
  382. Motor[car] = true;
  383. GameTextForPlayer(playerid, "~g~ Motor Gestartet...", 2000, 1);
  384. }
  385. else
  386. {
  387. GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
  388. SetVehicleParamsEx(car,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
  389. Motor[car] = false;
  390. GameTextForPlayer(playerid, "~g~ Motor Ausgeschalten...", 2000, 1);
  391. }
  392. }
  393. }
  394. return 1;
  395. }
  396. return 0;
  397. }
  398.  
  399. public StartErlaubnis(playerid)
  400. {
  401. for(new i=0; i<MAX_PLAYERS; i++)
  402. {
  403. if(TowerBeruf[i] == 1)
  404. {
  405. AnfrageSchon[i] = 1;
  406. new string[128];
  407. format(string,sizeof(string), "* %s [ID: %d] fordert eine Starterlaubnis, /sea um sie Anzunehmen! /seaa um sie Abzulehnen",PlayerName(playerid),playerid);
  408. SendClientMessageToAll(COLOR_YELLOW, string);
  409. }
  410. }
  411. return 1;
  412. }
  413.  
  414. public LandeErlaubnis(playerid)
  415. {
  416. for(new i=0; i<MAX_PLAYERS; i++)
  417. {
  418. if(TowerBeruf[i] == 1)
  419. {
  420. AnfrageSchon[i] = 1;
  421. new string[128];
  422. format(string,sizeof(string), "* %s [ID: %d] fordert eine LandeErlaubnis, /lea um sie Anzunehmen! /leaa um sie Abzulehnen",PlayerName(playerid),playerid);
  423. SendClientMessageToAll(COLOR_YELLOW, string);
  424. }
  425. }
  426. return 1;
  427. }
  428.  
  429. public OnPlayerStateChange(playerid, newstate, oldstate)
  430. {
  431. return 1;
  432. }
  433.  
  434.  
  435. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  436. {
  437. if(dialogid == DIALOG_TOWERJOB)
  438. {
  439. if(response == 1)
  440. {
  441. SendClientMessage(playerid, COLOR_RED, "Job: Fluglotze >> Angenommen");
  442. SendClientMessage(playerid, COLOR_GREY, "Ihre befehle stehen nun unter /help");
  443. SendClientMessage(playerid, COLOR_GREY, "Wenn du den Server Verlässt bist du kein Fluglotze mehr!");
  444. TowerBeruf[playerid] = 1;
  445. }
  446. if(response == 0)
  447. {
  448. SendClientMessage(playerid, COLOR_GREY, "* Vorgang Abgebrochen!");
  449. }
  450. }
  451. if(dialogid == DIALOG_ABWEHRJOB)
  452. {
  453. if(response == 1)
  454. {
  455. SendClientMessage(playerid, COLOR_RED, "Job: Flugabwehr >> Angenommen");
  456. SendClientMessage(playerid, COLOR_GREY, "Ihre befehle stehen nun unter /help");
  457. SendClientMessage(playerid, COLOR_GREY, "Wenn du den Server Verlässt bist du keine Flugabwehr mehr!");
  458. AbwehrBeruf[playerid] = 1;
  459. }
  460. if(response == 0)
  461. {
  462. SendClientMessage(playerid, COLOR_GREY, "* Vorgang Abgebrochen!");
  463. }
  464. }
  465. return 1;
  466. }
  467.  
  468. public OnPlayerClickPlayer(playerid, clickedplayerid, source) //Wird vielleicht noch gebraucht
  469. {
  470. return 1;
  471. }
  472.  
  473. public OnVehicleSpawn(vehicleid)
  474. {
  475. Motor[vehicleid] = false;
  476. GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
  477. SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
  478. return 1;
  479. }
  480.  
  481. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  482. {
  483. if(GetVehicleModel(vehicleid) == 509 || GetVehicleModel(vehicleid) == 481 || GetVehicleModel(vehicleid) == 510)
  484. {
  485. GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
  486. SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
  487. }
  488. return 1;
  489. }
  490.  
  491. stock PlayerName(playerid)
  492. {
  493. new pname[MAX_PLAYER_NAME];
  494. GetPlayerName(playerid,pname,MAX_PLAYER_NAME);
  495. return pname;
  496. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement