Advertisement
Guest User

Untitled

a guest
Oct 7th, 2011
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 22.95 KB | None | 0 0
  1. /* Miniselfmade | Teamdeathmatch*/ /*
  2.  
  3. Gemacht ist:
  4. - MessageOfTheDay (/setnews) || Kann noch jeder User benutzen!
  5. - Login und Register System || Nicht alle Systeme Online!
  6. - OnPlayerRequestClass
  7. - Fraktion Aussuchbar (/teamchange) || Per Dialog - LVPD,ItalienMafia,RussischeMafia,MS13,TheAmis - || Noch nicht alle Fraks (Nur LVPD)
  8. - /help System
  9. - Support System
  10. - Wer die Meistenkills hat
  11.  
  12. ----------------------------------------------------------------------------------------------------------------------
  13.  
  14. ToDO:
  15. - Spieler nach Login Spawnen
  16. - 4Fraktionen (LVPD,ItalienMafia,RussischeMafia,MS13,TheAmis) || Standard ist er Zivilist ||
  17. - 3DLabel über Spieler in welcher Frak er ist.
  18. - SpawnWaffen für die Fraktionen
  19. - WaffenMarkt
  20. - Waffen bleiben auf dem Boden als Pickup Liegen.
  21. - ClickPlayer Stats
  22. - Textdraw kill und Verlust anzeige
  23.  
  24. ----------------------------------------------------------------------------------------------------------------------
  25.  
  26. Admin Befehle:
  27.  
  28. /veh
  29. /setnews
  30.  
  31. ----------------------------------------------------------------------------------------------------------------------
  32. Befehle:
  33. /veh
  34. /support
  35. /teamchange
  36. /setnews
  37.  
  38.  
  39. ----------------------------------------------------------------------------------------------------------------------
  40. Bekannte Buggys:
  41. - Spawn Dialog (News) Steht "Eingeloggt..."
  42. ----------------------------------------------------------------------------------------------------------------------
  43.  
  44.  
  45. */
  46. #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
  47. /* Includes */
  48. #include <a_samp>
  49. #include <Dini>
  50. #pragma tabsize 0
  51.  
  52. #define grau 0xBFC0C2FF
  53. #define weiß 0xFFFFFFFF
  54. #define blau 0x0000CDFF
  55. #define rot 0xB50000FF
  56. #define orange 0xFF8500FF
  57. #define pink 0xFF00B5FF
  58.  
  59. #define DIALOG_LOGIN 1
  60. #define DIALOG_REG 2
  61. #define DIALOG_DYNNEWS 3
  62. #define TEAMCHANGE 4
  63. #define report 5
  64. #define Hilfe 6
  65.  
  66. enum pInfo
  67. {
  68. skin,
  69. eingeloggt,
  70. Admin,
  71. Premium,
  72. Geld,
  73. Score
  74. }
  75.  
  76. new Spieler[MAX_PLAYERS][pInfo];
  77. new newstext24;
  78. new string32[256];
  79. new Text3D:wanted3d[MAX_PLAYERS];
  80. new ShootingKills[MAX_PLAYERS];
  81. new ShootingWinner = 999;
  82. new ShootingWinnerKills= 0;
  83.  
  84. forward Allgemein(playerid);
  85. forward ticketsystem(string[]);
  86.  
  87. main()
  88. {
  89. print("\n----------------------------------");
  90. print(" Miniselfmade by Jones");
  91. print("----------------------------------\n");
  92. }
  93.  
  94. public OnGameModeInit()
  95. {
  96. SetGameModeText("Team - Deathmatch");
  97. /* Cars */
  98. AddStaticVehicle(560,2143.0220,926.1692,10.4509,180.4443,0,0); // Car1
  99. AddStaticVehicle(462,2002.0603,1081.6396,10.4128,91.1565,1,1); // Car2
  100. AddStaticVehicle(462,2002.1115,1080.5248,10.4158,88.8981,1,1); // Car3
  101. AddStaticVehicle(462,2002.0604,1079.2461,10.4190,93.5108,1,1); // Car4
  102. AddStaticVehicle(462,2002.0939,1077.6826,10.4127,94.3703,1,1); // Car5
  103. AddStaticVehicle(462,2002.0740,1076.2335,10.4203,92.4869,1,1); // Car6
  104. AddStaticVehicle(462,2002.0638,1074.9719,10.4199,91.0105,1,1); // Car7
  105. AddStaticVehicle(462,2002.1525,1073.6180,10.4201,92.0846,1,1); // Car8
  106. AddStaticVehicle(462,2002.1644,1072.1401,10.4202,92.3538,1,1); // Car9
  107. /* 3DLabel */
  108. Create3DTextLabel("Du willst dein Teamchangen?\nOder du willst einem Team Beitreten?\n\nEinfach /Teamchange eingeben um es zu Wechseln oder rein zu kommen!",weiß,2023.4618,1101.5831,10.8203,8.0,0,0);
  109. Create3DTextLabel("Du willst die Server News nicht mehr sehen?\n\nEinfach /nonews eingeben.",weiß,2013.5790,1101.0854,10.8203,8.0,0,0);
  110. Create3DTextLabel("Du willst doch die Server NEws wieder sehen?\n\nEinfach /shownews eingeben.",weiß,2024.6320,1108.1024,10.8130,8.0,0,0);
  111. return 1;
  112. }
  113.  
  114. public OnGameModeExit()
  115. {
  116. return 1;
  117. }
  118.  
  119. public OnPlayerRequestClass(playerid, classid)
  120. {
  121. SetPlayerPos(playerid, 2016.1104,1106.9824,10.8203);
  122. SetPlayerCameraPos(playerid, 2018.0448,1102.6039,10.8203);
  123. SetPlayerCameraLookAt(playerid, 2016.1104,1106.9824,10.8203);
  124. return 1;
  125. }
  126.  
  127. public OnPlayerConnect(playerid)
  128. {
  129. /* Das Login System */
  130. new string[64];
  131. new pname[MAX_PLAYERS],accFormat[128];
  132. GetPlayerName(playerid,pname,sizeof pname);
  133. format(accFormat,sizeof accFormat,"TDM/User/%s.ini",pname);
  134. if(fexist(accFormat))
  135. {
  136. ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"TDM | Einloggen","{FFFFFF}Herzlich Willkommen auf dem {CC0000}Team{FFFFFF}-{CC0000}Deathmatch{FFFFFF} Server\nKleine Info:\n\nScripter: {99FFCC}Jones{FFFFFF}\nMapper: {99FFCC}Nicht Vorhanden{FFFFFF}\nBesitzer: {99FFCC}Jones{FFFFFF}\n\nWie ich sehe hast du noch kein Account.\nBitte logge dich ein:","Abbrechen","Login");
  137. format(string, sizeof(string), "Willkommen Zurück | %s | Deine ID: %d", pname,playerid) ;
  138. }
  139. else
  140. {
  141. ShowPlayerDialog(playerid,DIALOG_REG,1,"TDM | Registrieren","{FFFFFF}Herzlich Willkommen auf dem {CC0000}Team{FFFFFF}-{CC0000}Deathmatch{FFFFFF} Server\n\nDein Account wurde noch {CC0000}nicht{FFFFFF} gefunden!\n\nBitte Registriere dich:","Abbrechen","Weiter");
  142. }
  143. /* Ende des Systems */
  144. ShootingKills[playerid] = 0;
  145. ShootingWinner = 999;
  146. ShootingWinnerKills = 0;
  147. return 1;
  148. }
  149.  
  150. public OnPlayerDisconnect(playerid, reason)
  151. {
  152. /* Das Login System */
  153. new pname[MAX_PLAYERS],accFormat[128];
  154. GetPlayerName(playerid,pname,sizeof pname);
  155. format(accFormat,sizeof accFormat,"TDM/User/%s.ini",pname);
  156. if(fexist(accFormat) && Spieler[playerid][eingeloggt])
  157. {
  158. dini_IntSet(accFormat,"skin",Spieler[playerid][skin]);
  159. dini_IntSet(accFormat,"Premium",Spieler[playerid][Premium]);
  160. dini_IntSet(accFormat,"Admin",Spieler[playerid][Admin]);
  161. dini_IntSet(accFormat,"Geld",Spieler[playerid][Geld]);
  162. dini_IntSet(accFormat,"Score",Spieler[playerid][Score]);
  163. }
  164. Spieler[playerid][eingeloggt] = 0;
  165. /* Ende des Systems */
  166. ShootingKills[playerid] = 0;
  167. ShootingWinnerKills = 0;
  168. return 1;
  169. }
  170.  
  171. public OnPlayerSpawn(playerid)
  172. {
  173. Allgemein(playerid);
  174. SetPlayerPos(playerid, 2016.1104,1106.9824,10.8203);
  175. return 1;
  176. }
  177.  
  178. public Allgemein(playerid)
  179. {
  180. SendClientMessage(playerid,rot,"Du kannst mit dem Befehl /teamchange dein Team Wechseln!");
  181. ShowPlayerDialog(playerid,DIALOG_DYNNEWS,DIALOG_STYLE_MSGBOX,"Server Nachrichten",string32,"Schließen","");
  182. return 1;
  183. }
  184.  
  185. public OnPlayerDeath(playerid, killerid, reason)
  186. {
  187. new string[256];
  188. ShootingKills[killerid] ++;
  189. if(ShootingKills[killerid] > ShootingWinnerKills)
  190. {
  191. new killer[MAX_PLAYER_NAME];
  192. ShootingWinner = killerid;
  193. ShootingWinnerKills = ShootingKills[killerid];
  194. GetPlayerName(killerid, killer, sizeof(killer));
  195. for(new i = 0; i < MAX_PLAYERS; i++)
  196. {
  197. if(IsPlayerConnected(i))
  198. {
  199. format(string, sizeof(string), "> %s ist mit %d Kills in Führung <",killer,ShootingWinnerKills);
  200. SendClientMessage(i, rot, string);
  201. }
  202. }
  203. return 1;
  204. }
  205. return 1;
  206. }
  207.  
  208. public OnVehicleSpawn(vehicleid)
  209. {
  210. return 1;
  211. }
  212.  
  213. public OnVehicleDeath(vehicleid, killerid)
  214. {
  215. return 1;
  216. }
  217.  
  218. public OnPlayerText(playerid, text[])
  219. {
  220. return 1;
  221. }
  222.  
  223. public OnPlayerCommandText(playerid, cmdtext[])
  224. {
  225. new cmd[256];
  226. new tmp[256];
  227. new string[256];
  228. new idx;
  229. new sendername[MAX_PLAYER_NAME];
  230. cmd = strtok(cmdtext, idx);
  231. /* DcMD Defines */
  232. dcmd(setnews,7,cmdtext);
  233. /* Normale Defines */
  234. /*if (strcmp("/adminwerden", cmdtext, true, 10) == 0)
  235. {
  236. SendClientMessage(playerid,rot,"Admin Rechte Bekommen.");
  237. Spieler[playerid][Admin] = 2000;
  238. return 1;
  239. }*/
  240. if(strcmp(cmd, "/support", true) == 0)
  241. {
  242. if(IsPlayerConnected(playerid))
  243. {
  244. new offset = idx, result[64], length = strlen(cmdtext), spielername[MAX_PLAYER_NAME+1], ticket[256+1];
  245. GetPlayerName(playerid, sendername, sizeof(sendername));
  246. while ((idx < length) && (cmdtext[idx] <= ' '))
  247. {
  248. idx++;
  249. }
  250. while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
  251. {
  252. result[idx - offset] = cmdtext[idx];
  253. idx++;
  254. }
  255. result[idx - offset] = EOS;
  256. if(!strlen(result))
  257. {
  258. GetPlayerName(playerid,spielername,MAX_PLAYER_NAME);
  259. format(ticket,256,"{FFFFFF}Willkommen im {770000}Team {0000CD}Deathmatch{FFFFFF} Support Menü\nBenutzer: {FF8400}%s{FFFFFF}\nTeile uns nun dein {770000}Problem{FFFFFF} mit.",spielername);
  260. ShowPlayerDialog(playerid,report,DIALOG_STYLE_INPUT,"{FFFFFF}Support System",ticket,"Senden","Abbrechen");
  261. return 1;
  262. }
  263. SendClientMessage(playerid, rot, "Schreibe bitte nur /support!");
  264. }
  265. return 1;
  266. }
  267. if(strcmp("/teamchange", cmdtext, true, 10) == 0)
  268. {
  269. ShowPlayerDialog(playerid,TEAMCHANGE,DIALOG_STYLE_LIST,"Teamchange","LVPD","Auswählen","");
  270. return 1;
  271. }
  272. if(strcmp("/help", cmdtext, true, 10) == 0)
  273. {
  274. ShowPlayerDialog(playerid,Hilfe,DIALOG_STYLE_LIST,"TDM | Hilfe","Befehle\nAdmin Befehle\nInfo´s","Auswählen","");
  275. return 1;
  276. }
  277. if(strcmp(cmd, "/veh", true) == 0)
  278. {
  279. if(IsPlayerConnected(playerid))
  280. {
  281. if (Spieler[playerid][Admin] < 10) return SendClientMessage(playerid, grau, "Du bist kein Admin!");
  282. tmp = strtok(cmdtext, idx);
  283. if(!strlen(tmp)) return SendClientMessage(playerid, grau, "Benutze: /veh [carid] [color1] [color2]");
  284. new car;
  285. car = strval(tmp);
  286. if(car < 400 || car > 611) { SendClientMessage(playerid, grau, "Auto Nummer nicht weniger als 400 oder höher als 611 sein !"); return 1; }
  287. tmp = strtok(cmdtext, idx);
  288. if(!strlen(tmp))
  289. {
  290. SendClientMessage(playerid, grau, "Benutze: /veh [carid] [color1] [color2]");
  291. return 1;
  292. }
  293. new color1;
  294. color1 = strval(tmp);
  295. if(color1 < 0 || color1 > 252) { SendClientMessage(playerid, grau, "Nicht Weniger als 0 oder höher 252 !"); return 1; }
  296. tmp = strtok(cmdtext, idx);
  297. if(!strlen(tmp)) return SendClientMessage(playerid, grau, "Benutze: /veh [carid] [color1] [color2]");
  298. new color2;
  299. //new pname[MAX_PLAYER_NAME];
  300. color2 = strval(tmp);
  301. if(color2 < 0 || color2 > 252) { SendClientMessage(playerid, grau, "Nicht weniger als 0 oder höher als 252!"); return 1; }
  302. new Float:X,Float:Y,Float:Z;
  303. GetPlayerPos(playerid, X,Y,Z);
  304. new carid = CreateVehicle(car, X,Y,Z, 0.0, color1, color2, -1);
  305. SetVehicleNumberPlate(carid, "{009900}Admin");
  306. PutPlayerInVehicle(playerid,carid,0);
  307. format(string, sizeof(string), "Auto mit der ID %d hergestellt.", carid);
  308. SendClientMessage(playerid, grau, string);
  309. }
  310. return 1;
  311. }
  312. return 0;
  313. }
  314.  
  315. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  316. {
  317. return 1;
  318. }
  319.  
  320. public OnPlayerExitVehicle(playerid, vehicleid)
  321. {
  322. return 1;
  323. }
  324.  
  325. public OnPlayerStateChange(playerid, newstate, oldstate)
  326. {
  327. return 1;
  328. }
  329.  
  330. public OnPlayerEnterCheckpoint(playerid)
  331. {
  332. return 1;
  333. }
  334.  
  335. public OnPlayerLeaveCheckpoint(playerid)
  336. {
  337. return 1;
  338. }
  339.  
  340. public OnPlayerEnterRaceCheckpoint(playerid)
  341. {
  342. return 1;
  343. }
  344.  
  345. public OnPlayerLeaveRaceCheckpoint(playerid)
  346. {
  347. return 1;
  348. }
  349.  
  350. public OnRconCommand(cmd[])
  351. {
  352. return 1;
  353. }
  354.  
  355. public OnPlayerRequestSpawn(playerid)
  356. {
  357. return 1;
  358. }
  359.  
  360. public OnObjectMoved(objectid)
  361. {
  362. return 1;
  363. }
  364.  
  365. public OnPlayerObjectMoved(playerid, objectid)
  366. {
  367. return 1;
  368. }
  369.  
  370. public OnPlayerPickUpPickup(playerid, pickupid)
  371. {
  372. return 1;
  373. }
  374.  
  375. public OnVehicleMod(playerid, vehicleid, componentid)
  376. {
  377. return 1;
  378. }
  379.  
  380. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  381. {
  382. return 1;
  383. }
  384.  
  385. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  386. {
  387. return 1;
  388. }
  389.  
  390. public OnPlayerSelectedMenuRow(playerid, row)
  391. {
  392. return 1;
  393. }
  394.  
  395. public OnPlayerExitedMenu(playerid)
  396. {
  397. return 1;
  398. }
  399.  
  400. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  401. {
  402. return 1;
  403. }
  404.  
  405. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  406. {
  407. return 1;
  408. }
  409.  
  410. public OnRconLoginAttempt(ip[], password[], success)
  411. {
  412. return 1;
  413. }
  414.  
  415. public OnPlayerUpdate(playerid)
  416. {
  417. return 1;
  418. }
  419.  
  420. public OnPlayerStreamIn(playerid, forplayerid)
  421. {
  422. return 1;
  423. }
  424.  
  425. public OnPlayerStreamOut(playerid, forplayerid)
  426. {
  427. return 1;
  428. }
  429.  
  430. public OnVehicleStreamIn(vehicleid, forplayerid)
  431. {
  432. return 1;
  433. }
  434.  
  435. public OnVehicleStreamOut(vehicleid, forplayerid)
  436. {
  437. return 1;
  438. }
  439.  
  440. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  441. {
  442. new pname[MAX_PLAYERS],accFormat[128];
  443. GetPlayerName(playerid,pname,sizeof pname);
  444. format(accFormat,sizeof accFormat,"TDM/User/%s.ini",pname);
  445. if(response)
  446. {
  447. switch(dialogid)
  448. {
  449. case DIALOG_LOGIN:
  450. {
  451. if(!strlen(inputtext))
  452. {
  453. ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Dein Account wurde gefunden! Du kannst dich nun Einloggen.","Abbrechen","Weiter");
  454. return SendClientMessage(playerid,0xFFFFFFFF,"Du hast kein Passwort angegeben!");
  455. }
  456. if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0)
  457. {
  458. Spieler[playerid][skin] = dini_Int(accFormat,"skin");
  459. Spieler[playerid][eingeloggt] = 1;
  460. Spieler[playerid][Premium] = dini_Int(accFormat, "Premium");
  461. SetPlayerScore(playerid, dini_Int(accFormat, "Score"));
  462. GivePlayerMoney(playerid, dini_Int(accFormat, "Geld")-GetPlayerMoney(playerid));
  463. Spieler[playerid][Admin] = dini_Int(accFormat, "Admin");
  464. SendClientMessage(playerid,0xFFFFFFFF,"Du hast dich {CC0000}Eingeloggt{FFFFFF}.");
  465. }
  466. else
  467. {
  468. ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Dein Account wurde gefunden! Du kannst dich nun Einloggen.","Abbrechen","Weiter");
  469. SendClientMessage(playerid,0xFFFFFFFF,"Du hast ein falsches Passwort eingegeben!");
  470. }
  471. }
  472. case DIALOG_REG:
  473. {
  474. if(!strlen(inputtext))
  475. {
  476. ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Abbrechen","Weiter");
  477. return SendClientMessage(playerid,0xFFFFFFFF,"Dein Passwort ist zukurz!");
  478. }
  479. dini_Create(accFormat);
  480. dini_Set(accFormat,"Passwort",inputtext);
  481. dini_IntSet(accFormat, "Admin" , 0);
  482. dini_IntSet(accFormat, "Score", 0);
  483. dini_IntSet(accFormat, "Geld", 0);
  484. dini_IntSet(accFormat, "Premium", 0);
  485. Spieler[playerid][Admin] = 0;
  486. Spieler[playerid][eingeloggt] = 1;
  487. SpawnPlayer(playerid);
  488. SetPlayerPos(playerid, 2016.1104,1106.9824,10.8203);
  489. SendClientMessage(playerid,blau,"Du hast einen Account auf dem TDM Server erstellt.");
  490. }
  491. }
  492. }
  493. else
  494. {
  495. switch(dialogid)
  496. {
  497. case DIALOG_LOGIN:ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Abbrechen","Weiter");
  498. case DIALOG_REG:ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","{FFFFFF}Dein Account wurde {CC0000}nicht{FFFFFF} gefunden. Wir freuen uns das du unseren\n Server gefunden hast. Bitte gib dein Passwort ein!","Abbrechen","Weiter");
  499. }
  500. }
  501. if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0)
  502. {
  503. Spieler[playerid][skin] = dini_Int(accFormat,"skin");
  504. Spieler[playerid][Admin] = dini_Int(accFormat, "Admin");
  505. Spieler[playerid][Premium] = dini_Int(accFormat, "Premium");
  506. SetPlayerScore(playerid, dini_Int(accFormat, "Score"));
  507. GivePlayerMoney(playerid, dini_Int(accFormat, "Geld")-GetPlayerMoney(playerid));
  508. Spieler[playerid][eingeloggt] = 1;
  509. SpawnPlayer(playerid);
  510. SetPlayerPos(playerid, 2016.1104,1106.9824,10.8203);
  511. SendClientMessage(playerid,0xFFFFFFFF,"Eingeloggt...");
  512. }
  513. if(dialogid == DIALOG_DYNNEWS)
  514. {
  515. if(response)
  516. {
  517. SendClientMessage(playerid,blau,"News Geschlossen!");
  518. }
  519. return 0;
  520. }
  521. if(dialogid == TEAMCHANGE)
  522. {
  523. if(response)
  524. {
  525. if(listitem == 0)
  526. {
  527. SetPlayerPos(playerid,2252.6313,2491.3933,10.9908);
  528. new PlayerText3D:LVPD[MAX_PLAYERS];
  529. LVPD[playerid] = Create3DTextLabel("TDM || LVPD",0xB70000FF,0,0,0,70.5,1);
  530. Attach3DTextLabelToPlayer(wanted3d[playerid], playerid, 0.0, 0.0, 0.45);
  531. return 1;
  532. }
  533. }
  534. }
  535. if(dialogid == report)
  536. {
  537. if(response && strlen(inputtext) > 0)
  538. {
  539. new sendername[MAX_PLAYER_NAME];
  540. new string[256];
  541. format(string, sizeof(string), "[Support] %s[ID:%d]: %s |", sendername,playerid,inputtext);
  542. ticketsystem(string);
  543. for(new i=0; i<MAX_PLAYERS; i++)
  544. {
  545. if(IsPlayerConnected(i))
  546. {
  547. if(Spieler[i][Admin] >= 1)
  548. {
  549. SendClientMessage(i,pink,string);
  550. }
  551. }
  552. }
  553. format(string, sizeof(string), "Du hast einen Report gesendet: [%s] |", inputtext);
  554. SendClientMessage(playerid, rot, string);
  555. }
  556. else
  557. {
  558. SendClientMessage(playerid, blau, "Support Menu geschlossen!");
  559. }
  560. return 1;
  561. }
  562. if(dialogid == Hilfe) //Befehle Admin Befehle Info´s
  563. {
  564. if(response)
  565. {
  566. if(listitem == 0)
  567. {
  568. SendClientMessage(playerid,rot,"==== TDM < Befehle > ====");
  569. SendClientMessage(playerid,weiß,"/support (Um einen Admin anzuschreiben wegen einem Problem oder ein Cheat Verdacht!)");
  570. SendClientMessage(playerid,weiß,"/teamchange (Um dein Team zu ändern oder um in ein Team beizutreten!)");
  571. }
  572. if(listitem == 1)
  573. {
  574. SendClientMessage(playerid,rot,"==== TDM < Admin Befehle > ====");
  575. SendClientMessage(playerid,weiß,"/veh (Um dir ein Auto zu Spawnen!)");
  576. SendClientMessage(playerid,weiß,"/setnews (Um die Server News festzulegen!)");
  577. }
  578. if(listitem == 2)
  579. {
  580. SendClientMessage(playerid,rot,"==== TDM < Infomationen > ====");
  581. SendClientMessage(playerid,weiß,"Scripter: [GcR]Jones | Mapper: Nicht Vorhanden | Server Besitzer: Jones");
  582. SendClientMessage(playerid,weiß,"Forum: --- | Teamspeak3: ---");
  583. }
  584. }
  585. return 1;
  586. }
  587. return 1;
  588. }
  589.  
  590. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  591. {
  592. return 1;
  593. }
  594. /* DCMD´s */
  595. dcmd_setnews(playerid,params[])
  596. {
  597. if(Spieler[playerid][Admin] == 2000) return SendClientMessage(playerid,rot,"Du bist kein Admin!");
  598. {
  599. if(sscanf(params, "s",newstext24)){ return SendClientMessage(playerid,grau,"Nutze: /setnews [news]");}
  600. format(string32,sizeof(string32),"%s",newstext24);
  601. ShowPlayerDialog(playerid,DIALOG_DYNNEWS,DIALOG_STYLE_MSGBOX,"Server Nachrichten",string32,"Schließen","");
  602. }
  603. return 1;
  604. }
  605. ////////////////////////
  606. stock sscanf(string[], format[], {Float,_}:...)
  607. {
  608. #if defined isnull
  609. if (isnull(string))
  610. #else
  611. if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
  612. #endif
  613. {
  614. return format[0];
  615. }
  616. #pragma tabsize 4
  617. new
  618. formatPos = 0,
  619. stringPos = 0,
  620. paramPos = 2,
  621. paramCount = numargs(),
  622. delim = ' ';
  623. while (string[stringPos] && string[stringPos] <= ' ')
  624. {
  625. stringPos++;
  626. }
  627. while (paramPos < paramCount && string[stringPos])
  628. {
  629. switch (format[formatPos++])
  630. {
  631. case '\0':
  632. {
  633. return 0;
  634. }
  635. case 'i', 'd':
  636. {
  637. new
  638. neg = 1,
  639. num = 0,
  640. ch = string[stringPos];
  641. if (ch == '-')
  642. {
  643. neg = -1;
  644. ch = string[++stringPos];
  645. }
  646. do
  647. {
  648. stringPos++;
  649. if ('0' <= ch <= '9')
  650. {
  651. num = (num * 10) + (ch - '0');
  652. }
  653. else
  654. {
  655. return -1;
  656. }
  657. }
  658. while ((ch = string[stringPos]) > ' ' && ch != delim);
  659. setarg(paramPos, 0, num * neg);
  660. }
  661. case 'h', 'x':
  662. {
  663. new
  664. num = 0,
  665. ch = string[stringPos];
  666. do
  667. {
  668. stringPos++;
  669. switch (ch)
  670. {
  671. case 'x', 'X':
  672. {
  673. num = 0;
  674. continue;
  675. }
  676. case '0' .. '9':
  677. {
  678. num = (num << 4) | (ch - '0');
  679. }
  680. case 'a' .. 'f':
  681. {
  682. num = (num << 4) | (ch - ('a' - 10));
  683. }
  684. case 'A' .. 'F':
  685. {
  686. num = (num << 4) | (ch - ('A' - 10));
  687. }
  688. default:
  689. {
  690. return -1;
  691. }
  692. }
  693. }
  694. while ((ch = string[stringPos]) > ' ' && ch != delim);
  695. setarg(paramPos, 0, num);
  696. }
  697. case 'c':
  698. {
  699. setarg(paramPos, 0, string[stringPos++]);
  700. }
  701. case 'f':
  702. {
  703.  
  704. new changestr[16], changepos = 0, strpos = stringPos;
  705. while(changepos < 16 && string[strpos] && string[strpos] != delim)
  706. {
  707. changestr[changepos++] = string[strpos++];
  708. }
  709. changestr[changepos] = '\0';
  710. setarg(paramPos,0,_:floatstr(changestr));
  711. }
  712. case 'p':
  713. {
  714. delim = format[formatPos++];
  715. continue;
  716. }
  717. case '\'':
  718. {
  719. new
  720. end = formatPos - 1,
  721. ch;
  722. while ((ch = format[++end]) && ch != '\'') {}
  723. if (!ch)
  724. {
  725. return -1;
  726. }
  727. format[end] = '\0';
  728. if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
  729. {
  730. if (format[end + 1])
  731. {
  732. return -1;
  733. }
  734. return 0;
  735. }
  736. format[end] = '\'';
  737. stringPos = ch + (end - formatPos);
  738. formatPos = end + 1;
  739. }
  740. case 'u':
  741. {
  742. new
  743. end = stringPos - 1,
  744. id = 0,
  745. bool:num = true,
  746. ch;
  747. while ((ch = string[++end]) && ch != delim)
  748. {
  749. if (num)
  750. {
  751. if ('0' <= ch <= '9')
  752. {
  753. id = (id * 10) + (ch - '0');
  754. }
  755. else
  756. {
  757. num = false;
  758. }
  759. }
  760. }
  761. if (num && IsPlayerConnected(id))
  762. {
  763. setarg(paramPos, 0, id);
  764. }
  765. else
  766. {
  767. #if !defined foreach
  768. #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  769. #define __SSCANF_FOREACH__
  770. #endif
  771. string[end] = '\0';
  772. num = false;
  773. new
  774. name[MAX_PLAYER_NAME];
  775. id = end - stringPos;
  776. foreach (Player, playerid)
  777. {
  778. GetPlayerName(playerid, name, sizeof (name));
  779. if (!strcmp(name, string[stringPos], true, id))
  780. {
  781. setarg(paramPos, 0, playerid);
  782. num = true;
  783. break;
  784. }
  785. }
  786. if (!num)
  787. {
  788. setarg(paramPos, 0, INVALID_PLAYER_ID);
  789. }
  790. string[end] = ch;
  791. #if defined __SSCANF_FOREACH__
  792. #undef foreach
  793. #undef __SSCANF_FOREACH__
  794. #endif
  795. }
  796. stringPos = end;
  797. }
  798. case 's', 'z':
  799. {
  800. new
  801. i = 0,
  802. ch;
  803. if (format[formatPos])
  804. {
  805. while ((ch = string[stringPos++]) && ch != delim)
  806. {
  807. setarg(paramPos, i++, ch);
  808. }
  809. if (!i)
  810. {
  811. return -1;
  812. }
  813. }
  814. else
  815. {
  816. while ((ch = string[stringPos++]))
  817. {
  818. setarg(paramPos, i++, ch);
  819. }
  820. }
  821. stringPos--;
  822. setarg(paramPos, i, '\0');
  823. }
  824. default:
  825. {
  826. continue;
  827. }
  828. }
  829. while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
  830. {
  831. stringPos++;
  832. }
  833. while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
  834. {
  835. stringPos++;
  836. }
  837. paramPos++;
  838. }
  839. do
  840. {
  841. if ((delim = format[formatPos++]) > ' ')
  842. {
  843. if (delim == '\'')
  844. {
  845. while ((delim = format[formatPos++]) && delim != '\'') {}
  846. }
  847. else if (delim != 'z')
  848. {
  849. return delim;
  850. }
  851. }
  852. }
  853. while (delim > ' ');
  854. return 0;
  855. }
  856. stock strtok(const string[], &index)
  857. {
  858. new length = strlen(string);
  859. while ((index < length) && (string[index] <= ' '))
  860. {
  861. index++;
  862. }
  863.  
  864. new offset = index;
  865. new result[20];
  866. while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  867. {
  868. result[index - offset] = string[index];
  869. index++;
  870. }
  871. result[index - offset] = EOS;
  872. return result;
  873. }
  874. public ticketsystem(string[])
  875. {
  876. new eintragen[256];
  877. format(eintragen, sizeof(eintragen), "%s\n",string);
  878. new File:hFile;
  879. hFile = fopen("alltickets.log", io_append);
  880. fwrite(hFile, eintragen);
  881. fclose(hFile);
  882. }
  883.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement