Guest User

gompfy

a guest
Jul 14th, 2009
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 24.24 KB | None | 0 0
  1.  
  2. /////////////////////////////
  3. /////////////////////////////
  4. ///////// /////////
  5. ///////// Scripted /////////
  6. ///////// by /////////
  7. ///////// gompfy /////////
  8. ///////// /////////
  9. /////////////////////////////
  10. /////////////////////////////
  11. #include <a_samp>
  12. #include <dini>
  13.  
  14. #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
  15.  
  16. // Teams
  17. #define TEAM_CT 1
  18. #define TEAM_T 2
  19.  
  20. // Farben
  21. #define TEAM_COUNTERTERROR_COLOR 0x0078FFAA
  22. #define TEAM_TERROR_COLOR 0xFF3636AA
  23. #define GREY 0xB0B0B0AA
  24. #define GREEN 0x009719AA
  25. #define LIGHTBLUE 0x2778FFAA
  26. #define PINK 0xFF00D2AA
  27. #define LIGHTRED 0xFF6464AA
  28. #define TEAMCHAT 0x00F0FFAA
  29. #define WHITE 0xFFFFFFAA
  30.  
  31. forward SetPlayerTeamFromClass(playerid, classid);
  32. forward SetPlayerToTeamColor(playerid);
  33. forward rundentimer(playerid);
  34. forward OnPlayerPickupPickUp(playerid, pickupid);
  35. forward UpdateStats(playerid);
  36.  
  37. enum pStats
  38. {
  39. pTode,
  40. pKills,
  41. pRunden,
  42. };
  43.  
  44.  
  45. new gTeam[MAX_PLAYERS];
  46. new KillerID[MAX_PLAYERS];
  47. new bool: PlayerDied[MAX_PLAYERS];
  48. new stunde, minute, sekunde;
  49. new PlayerStats[MAX_PLAYERS][pStats];
  50.  
  51. new WaffePickup[212];
  52. new Waffe[212][2];
  53. //Textdraws
  54. new Text:Textdraw0;
  55. new Text:Textdraw2;
  56.  
  57.  
  58. OnePlayAnim(playerid,animlib[],animname[], Float:Speed, looping, lockx, locky, lockz, lp)
  59. {
  60. ApplyAnimation(playerid, animlib, animname, Speed, looping, lockx, locky, lockz, lp);
  61. }
  62.  
  63. //----------------------------------------------------------------------------------
  64.  
  65. main()
  66. {
  67. print("\n----------------------------------");
  68. print("--------Counter Strike TDM--------");
  69. print("--------------assault-------------");
  70. print("-------------by gompfy -----------");
  71. print("----------------------------------\n");
  72. }
  73.  
  74.  
  75. //----------------------------------------------------------------------------------
  76.  
  77. public OnGameModeInit()
  78. {
  79. SetWorldTime(14);
  80. SetWeather(10);
  81. UsePlayerPedAnims();
  82. SetGameModeText("Counter Strike TDM");
  83. SetTimer("UpdateStats",600000,1);
  84.  
  85. SetTimer("rundentimer",120000,1); // ca. 2 Minuten
  86. //SetTimer("rundentimer",300000,1); // 5 Minuten
  87. print("................Timer gestartet................");
  88.  
  89. // versoin 1.0
  90. Textdraw0 = TextDrawCreate(518.000000,427.000000,"Version 1.2");
  91. TextDrawAlignment(Textdraw0,0);
  92. TextDrawBackgroundColor(Textdraw0,0x000000ff);
  93. TextDrawFont(Textdraw0,3);
  94. TextDrawLetterSize(Textdraw0,0.599999,1.300000);
  95. TextDrawColor(Textdraw0,0xffffffff);
  96. TextDrawSetOutline(Textdraw0,1);
  97. TextDrawSetProportional(Textdraw0,1);
  98.  
  99.  
  100. // counter strike 1.6
  101. Textdraw2 = TextDrawCreate(341.000000,3.000000,"counter strike 1.6");
  102. TextDrawAlignment(Textdraw2,0);
  103. TextDrawBackgroundColor(Textdraw2,0x000000ff);
  104. TextDrawFont(Textdraw2,2);
  105. TextDrawLetterSize(Textdraw2,0.699999,1.500000);
  106. TextDrawColor(Textdraw2,0xffffffff);
  107. TextDrawSetOutline(Textdraw2,1);
  108. TextDrawSetProportional(Textdraw2,1);
  109.  
  110.  
  111. AddPlayerClass(285, 2525.0444, 2714.2234, 10.8203, 181.6424, 0, 0, 0, 0, 0, 0); // CT skin 1
  112. AddPlayerClass(284, 2534.9277, 2714.7031, 10.8203, 359.7624, 0, 0, 0, 0, 0, 0); // CT skin 2
  113. AddPlayerClass(100, 2621.5225, 2820.1218, 10.8203, 166.7289, 0, 0, 0, 0, 0, 0); // T skin 1
  114. AddPlayerClass(287, 2621.5225, 2820.1218, 10.8203, 166.7289, 0, 0, 0, 0, 0, 0); // T skin 2
  115.  
  116. // Cars
  117. AddStaticVehicle(425,1317.6644,-984.4332,149.2160,312.2371,43,0); // hunter ansicht
  118. AddStaticVehicle(433,2789.8396,-2418.8896,14.0726,126.7535,43,0); // T Ansicht car
  119.  
  120. CreateObject(971, 2529.189209, 2853.091797, 13.439629, 0.0000, 0.0000, 270.0000);
  121. CreateObject(971, 2620.957520, 2806.549561, 13.390230, 0.0000, 0.0000, 180.0000);
  122. CreateObject(971, 2539.354248, 2853.979492, 13.390230, 0.0000, 0.0000, 90.0000);
  123. CreateObject(980, 2610.916016, 2850.907471, 29.593704, 0.0000, 0.0000, 0.0000);
  124. CreateObject(980, 2599.322998, 2850.846191, 29.593704, 0.0000, 0.0000, 0.0000);
  125. CreateObject(980, 2587.833740, 2850.960938, 29.563797, 0.0000, 0.0000, 0.0000);
  126. CreateObject(980, 2576.359375, 2850.960938, 29.577160, 0.0000, 0.0000, 0.0000);
  127. CreateObject(980, 2564.817139, 2850.960938, 29.556780, 0.0000, 0.0000, 0.0000);
  128. CreateObject(980, 2553.366699, 2850.960938, 29.573696, 0.0000, 0.0000, 0.0000);
  129. CreateObject(980, 2544.767822, 2850.916992, 29.593704, 0.0000, 0.0000, 0.0000);
  130. CreateObject(980, 2616.663818, 2845.134521, 29.593704, 0.0000, 0.0000, 90.0000);
  131. CreateObject(983, 2616.667725, 2836.202148, 27.503868, 0.0000, 0.0000, 0.0000);
  132. CreateObject(983, 2616.682129, 2829.825439, 27.503868, 0.0000, 0.0000, 0.0000);
  133. CreateObject(983, 2616.699951, 2823.422119, 27.503868, 0.0000, 0.0000, 0.0000);
  134. CreateObject(983, 2616.670654, 2817.066650, 27.503868, 0.0000, 0.0000, 0.0000);
  135. CreateObject(983, 2616.632080, 2810.695557, 27.503868, 0.0000, 0.0000, 0.0000);
  136. CreateObject(980, 2616.619873, 2809.042969, 29.593704, 0.0000, 0.0000, 90.0000);
  137. CreateObject(980, 2610.855469, 2803.357666, 29.593704, 0.0000, 0.0000, 0.0000);
  138. CreateObject(980, 2599.405029, 2803.303467, 29.593704, 0.0000, 0.0000, 0.0000);
  139. CreateObject(980, 2587.953857, 2803.316406, 29.593704, 0.0000, 0.0000, 0.0000);
  140. CreateObject(980, 2539.050781, 2845.212158, 29.540867, 0.0000, 0.0000, 90.0000);
  141. CreateObject(7073, 2574.726318, 2850.960938, 44.803108, 0.0000, 0.0000, 90.0000);
  142. CreateObject(1257, 2537.879639, 2807.501221, 11.099504, 0.0000, 0.0000, 0.0001);
  143. CreateObject(1257, 2549.704346, 2709.613525, 11.099504, 0.0000, 0.0000, 269.9999);
  144. CreateObject(1257, 2553.181641, 2714.558105, 11.092171, 0.0000, 0.0000, 0.0000);
  145. CreateObject(1342, 2536.843018, 2745.326904, 10.854006, 0.0000, 0.0000, 90.0000);
  146. CreateObject(1341, 2533.972656, 2745.182617, 10.822899, 0.0000, 0.0000, 90.0000);
  147. CreateObject(3594, 2591.434570, 2830.222412, 10.451489, 0.0000, 0.0000, 45.0000);
  148. CreateObject(1449, 2590.862793, 2828.568359, 10.341967, 0.0000, 0.0000, 315.0000);
  149. CreateObject(1344, 2542.966064, 2704.967773, 10.792593, 0.0000, 0.0000, 180.0000);
  150. CreateObject(1345, 2540.717773, 2705.027100, 10.754511, 0.0000, 0.0000, 0.0000);
  151. CreateObject(3260, 2626.703857, 2806.608887, 10.812670, 0.0000, 0.0000, 180.0000);
  152. CreateObject(980, 2630.927734, 2806.188477, 12.311426, 0.0000, 0.0000, 0.0000);
  153. CreateObject(14826, 2522.866455, 2792.241699, 10.584691, 0.0000, 0.0000, 168.7500);
  154. CreateObject(1551, 2549.578857, 2714.937500, 10.053243, 0.0000, 0.0000, 0.0000);
  155. CreateObject(1664, 2548.703613, 2713.327148, 9.979683, 0.0000, 0.0000, 0.0000);
  156. CreateObject(1664, 2551.538330, 2716.207764, 9.987017, 0.0000, 0.0000, 0.0000);
  157. CreateObject(1810, 2623.592041, 2812.942383, 9.819243, 0.0000, 0.0000, 236.2500);
  158. CreateObject(1810, 2622.205078, 2813.069092, 9.819243, 0.0000, 0.0000, 146.2500);
  159. CreateObject(1810, 2624.437256, 2814.685791, 9.819243, 0.0000, 0.0000, 281.2500);
  160. CreateObject(3568, 2577.639893, 2791.335693, 12.433931, 0.0000, 0.0000, 90.0000);
  161. CreateObject(5262, 2582.624268, 2848.330078, 12.777973, 0.0000, 0.0000, 0.0000);
  162. CreateObject(3279, 2547.488525, 2799.170410, 9.895929, 0.0000, 0.0000, 0.0000);
  163. return 1;
  164. }
  165.  
  166.  
  167. //----------------------------------------------------------------------------------
  168.  
  169. public OnGameModeExit()
  170. {
  171. return 1;
  172. }
  173.  
  174. //----------------------------------------------------------------------------------
  175.  
  176. public OnPlayerRequestClass(playerid, classid)
  177. {
  178.  
  179. SetPlayerTeamFromClass(playerid, classid);
  180.  
  181. switch (classid) {
  182. case 0:
  183. {
  184. GameTextForPlayer(playerid, "~b~Counter-Terror", 1000, 3);
  185. SetPlayerPos(playerid, 1309.2875,-973.1803,148.6437);
  186. SetPlayerCameraPos(playerid, 1304.8109,-967.5784,146.7921);
  187. SetPlayerCameraLookAt(playerid, 1309.2875,-973.1803,148.6437);
  188. OnePlayAnim(playerid,"PED","IDLE_CHAT",4.0,0,0,0,0,0);
  189. }
  190. case 1:
  191. {
  192. GameTextForPlayer(playerid, "~b~Counter-Terror", 1000, 3);
  193. SetPlayerPos(playerid, 1309.2875,-973.1803,148.6437);
  194. SetPlayerCameraPos(playerid, 1304.8109,-967.5784,146.7921);
  195. SetPlayerCameraLookAt(playerid, 1309.2875,-973.1803,148.6437);
  196. OnePlayAnim(playerid,"PED","IDLE_CHAT",4.0,0,0,0,0,0);
  197. }
  198. case 2:
  199. {
  200. GameTextForPlayer(playerid, "~r~Terror", 1000, 3);
  201. SetPlayerPos(playerid, 2775.5989,-2417.9575,13.6366);
  202. SetPlayerCameraPos(playerid, 2767.2854,-2417.8667,13.6326);
  203. SetPlayerCameraLookAt(playerid, 2775.5989,-2417.9575,13.6366);
  204. OnePlayAnim(playerid, "DEALER", "DEALER_DEAL", 4.0, 0, 0, 0, 0, 0);
  205. }
  206. case 3:
  207. {
  208. GameTextForPlayer(playerid, "~r~Terror", 1000, 3);
  209. SetPlayerPos(playerid, 2775.5989,-2417.9575,13.6366);
  210. SetPlayerCameraPos(playerid, 2767.2854,-2417.8667,13.6326);
  211. SetPlayerCameraLookAt(playerid, 2775.5989,-2417.9575,13.6366);
  212. OnePlayAnim(playerid, "DEALER", "DEALER_DEAL", 4.0, 0, 0, 0, 0, 0);
  213. }
  214. }
  215. return 1;
  216. }
  217.  
  218. //----------------------------------------------------------------------------------
  219.  
  220. public SetPlayerTeamFromClass(playerid, classid)
  221. {
  222. if (classid == 0)
  223. {
  224. gTeam[playerid] = TEAM_CT;
  225. }
  226. else if (classid == 1)
  227. {
  228. gTeam[playerid] = TEAM_CT;
  229. }
  230. else if (classid == 2)
  231. {
  232. gTeam[playerid] = TEAM_T;
  233. }
  234. else if (classid == 3)
  235. {
  236. gTeam[playerid] = TEAM_T;
  237. }
  238.  
  239. return 1;
  240. }
  241.  
  242. //----------------------------------------------------------------------------------
  243.  
  244. public SetPlayerToTeamColor(playerid)
  245. {
  246. if (gTeam[playerid] == TEAM_CT)
  247. {
  248. SetPlayerColor(playerid, TEAM_COUNTERTERROR_COLOR);
  249. }
  250. else if (gTeam[playerid] == TEAM_T)
  251. {
  252. SetPlayerColor(playerid, TEAM_TERROR_COLOR);
  253. }
  254. return 1;
  255. }
  256.  
  257. //----------------------------------------------------------------------------------
  258.  
  259. public OnPlayerRequestSpawn(playerid)
  260. {
  261. return 1;
  262. }
  263.  
  264. //----------------------------------------------------------------------------------
  265.  
  266. public OnPlayerConnect(playerid)
  267. {
  268. GivePlayerMoney(playerid, 800);
  269. SetPlayerColor(playerid, GREY);
  270.  
  271. new pName[MAX_PLAYER_NAME];
  272. new string[48];
  273. GetPlayerName(playerid, pName, sizeof(pName));
  274. format(string, sizeof(string), "[%s ist dem Spiel beigetreten.]", pName);
  275. SendClientMessageToAll(GREEN, string);
  276. SendDeathMessage(INVALID_PLAYER_ID,playerid,200);
  277.  
  278. new control[48];
  279. format(control, sizeof(control),"%s.ini",pName);
  280. if(dini_Exists(control))
  281. {
  282. PlayerStats[playerid][pTode] = dini_Int(control, "Tode");
  283. PlayerStats[playerid][pKills] = dini_Int(control, "Kills");
  284. PlayerStats[playerid][pRunden] = dini_Int(control, "Runden");
  285. SendClientMessage(playerid, GREY, "Stats wurden geladen. Benutze: /stats");
  286. }
  287. else
  288. {
  289. dini_Create(control);
  290. dini_IntSet(control, "Tode", 0);
  291. dini_IntSet(control, "Kills", 0);
  292. dini_IntSet(control, "Runden", 0);
  293. PlayerStats[playerid][pTode] = dini_Int(control, "Tode");
  294. PlayerStats[playerid][pKills] = dini_Int(control, "Kills");
  295. PlayerStats[playerid][pRunden] = dini_Int(control, "Runden");
  296. }
  297. SendClientMessage(playerid,LIGHTBLUE,"Tippe /help um deine Commands zu sehen.");
  298.  
  299. TextDrawShowForPlayer(playerid,Textdraw2);
  300. TextDrawShowForPlayer(playerid,Textdraw0);
  301. return 1;
  302. }
  303.  
  304. //----------------------------------------------------------------------------------
  305.  
  306. public OnPlayerDisconnect(playerid, reason)
  307. {
  308. new pName[MAX_PLAYER_NAME];
  309. new string[48];
  310. GetPlayerName(playerid, pName, sizeof(pName));
  311. format(string, sizeof(string), "[%s hat den Server verlassen.]", pName);
  312. SendClientMessageToAll(GREEN, string);
  313.  
  314. SendDeathMessage(INVALID_PLAYER_ID,playerid,201);
  315.  
  316. new control[48];
  317. format(control,sizeof(control),"%s.ini",pName);
  318. dini_IntSet(control, "Tode", PlayerStats[playerid][pTode]);
  319. dini_IntSet(control, "Kills", PlayerStats[playerid][pKills]);
  320. dini_IntSet(control, "Runden", PlayerStats[playerid][pRunden]);
  321. return 1;
  322. }
  323.  
  324. //----------------------------------------------------------------------------------
  325.  
  326. public OnPlayerSpawn(playerid)
  327. {
  328. SetPlayerToTeamColor(playerid);
  329.  
  330.  
  331. // ----------------Deathcam---------------------
  332. if(PlayerDied[playerid] == true)
  333. {
  334. SetPlayerCameraPos(playerid, 2507.8352,2692.6187,75.8581);
  335. SetPlayerCameraLookAt(playerid, 2542.3025,2766.9822,10.8203);
  336. TogglePlayerControllable(playerid, 0);
  337. SetPlayerPos(playerid, 2507.8352,2692.6187,90.8581);
  338. }
  339.  
  340. else if(PlayerDied[playerid] == false)
  341. {
  342. SetPlayerHealth(playerid, 100.0);
  343. SetPlayerArmour(playerid, 100.0);
  344.  
  345. SetCameraBehindPlayer(playerid);
  346. TogglePlayerControllable(playerid, 1);
  347. }
  348.  
  349. //----------------------------------------------
  350.  
  351. if(gTeam[playerid] == TEAM_CT)
  352. {
  353. GivePlayerWeapon(playerid, 4, 1);
  354. GivePlayerWeapon(playerid, 24, 48);
  355. GivePlayerWeapon(playerid, 25, 50);
  356. GivePlayerWeapon(playerid, 29, 250);
  357. GivePlayerWeapon(playerid, 31, 250);
  358. }
  359.  
  360. else if(gTeam[playerid] == TEAM_T)
  361. {
  362. GivePlayerWeapon(playerid, 4, 1);
  363. GivePlayerWeapon(playerid, 24, 48);
  364. GivePlayerWeapon(playerid, 25, 50);
  365. GivePlayerWeapon(playerid, 29, 250);
  366. GivePlayerWeapon(playerid, 30, 250);
  367. }
  368.  
  369. return 1;
  370. }
  371. //----------------------------------------------------------------------------------
  372. public OnPlayerDeath(playerid, killerid, reason)
  373. {
  374. new Waffen[13][2], Float: x, Float: y, Float: z;
  375. GetPlayerPos(playerid, x, y, z);
  376. for(new i=0;i<13;i++)
  377. {
  378. new Pickupid;
  379. GetPlayerWeaponData(playerid,i,Waffen[i][0],Waffen[i][1]);
  380. if(Waffen[i][0]>=1)
  381. {
  382. switch(Waffen[i][0])
  383. {
  384. case 1:{Pickupid=348;}
  385. case 2:{Pickupid=351;}
  386. case 3:{Pickupid=353;}
  387. case 4:{Pickupid=356;}
  388. case 5:{Pickupid=355;}
  389. }
  390. switch(i)
  391. {
  392. case 1:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x+1,y,z);}
  393. case 2:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x+2,y,z);}
  394. case 3:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x+3,y,z);}
  395. case 4:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x,y+1,z);}
  396. case 5:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x,y+2,z);}
  397. case 6:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x,y+3,z);}
  398. case 7:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x-1,y,z);}
  399. case 8:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x-2,y,z);}
  400. case 9:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x-3,y,z);}
  401. case 10:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x,y-1,z);}
  402. case 11:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x,y-2,z);}
  403. case 12:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x,y-3,z);}
  404. }
  405. Waffe[playerid+i][0]=Waffen[i][0];
  406. Waffe[playerid+i][1]=Waffen[i][1];
  407. }
  408. }
  409.  
  410.  
  411.  
  412. GivePlayerMoney(killerid, 300);
  413. SendDeathMessage(killerid,playerid,reason);
  414. new killer = GetPlayerScore(killerid);
  415. SetPlayerScore(killerid, killer +1);
  416.  
  417. KillerID[playerid] = killerid;
  418. PlayerDied[playerid] = true;
  419.  
  420. PlayerStats[playerid][pTode]++;
  421. PlayerStats[killerid][pKills]++;
  422. return 1;
  423. }
  424.  
  425. //----------------------------------------------------------------------------------
  426.  
  427. public OnPlayerPickupPickUp(playerid, pickupid)
  428. {
  429. for(new i=0;i<212;i++)
  430. {
  431. if(pickupid==WaffePickup[i])
  432. {
  433. GivePlayerWeapon(playerid, Waffe[i][0], Waffe[i][1]);
  434. DestroyPickup(WaffePickup[i]);
  435. }
  436. }
  437. return 1;
  438. }
  439.  
  440. //----------------------------------------------------------------------------------
  441.  
  442. public UpdateStats(playerid)
  443. {
  444. if(IsPlayerConnected(playerid))
  445. {
  446. new control[48], pName[MAX_PLAYER_NAME];
  447. GetPlayerName(playerid,pName, sizeof(pName));
  448. format(control,sizeof(control),"%s.ini",pName);
  449. dini_IntSet(control, "Tode", PlayerStats[playerid][pTode]);
  450. dini_IntSet(control, "Kills", PlayerStats[playerid][pKills]);
  451. dini_IntSet(control, "Runden", PlayerStats[playerid][pRunden]);
  452. }
  453. return 1;
  454. }
  455.  
  456.  
  457. //----------------------------------------------------------------------------------
  458.  
  459. public OnPlayerCommandText(playerid, cmdtext[])
  460. {
  461. dcmd(afk,3,cmdtext);
  462. dcmd(back,4,cmdtext);
  463. dcmd(t,1,cmdtext);
  464. dcmd(stats,5,cmdtext);
  465. dcmd(help,4,cmdtext);
  466. return 0;
  467. }
  468.  
  469. //----------------------------------------------------------------------------------
  470.  
  471.  
  472. public rundentimer(playerid)
  473. {
  474. GameTextForAll("~b~~h~...Neue Runde...",3500,1);
  475. for(new i = 0; i <= MAX_PLAYERS; i++)
  476. {
  477. if(IsPlayerConnected(i))
  478. {
  479. PlayerDied[i] = false;
  480. SpawnPlayer(i);
  481.  
  482. PlayerStats[i][pRunden] = PlayerStats[i][pRunden] + 1;
  483. }
  484. }
  485. gettime(stunde, minute, sekunde);
  486. printf("[%02d:%02d:%02d]...Neue Runde gestartet...",stunde, minute, sekunde);
  487. return 1;
  488. }
  489.  
  490. //----------------------------------------------------------------------------------
  491.  
  492.  
  493. //-------------------------dcmd Commands--------------------------------------------
  494.  
  495. //-------------AFK------------------
  496.  
  497.  
  498. dcmd_afk(playerid,params[]) {
  499. new afkgrund[64];
  500. if(sscanf(params, "s", afkgrund)) {
  501. return SendClientMessage(playerid, GREY, "Benutze /afk [grund]");
  502. }
  503. else
  504. {
  505. TogglePlayerControllable(playerid, 0);
  506.  
  507. new name[MAX_PLAYER_NAME], string[128];
  508. GetPlayerName(playerid, name, sizeof(name));
  509. format(string, sizeof(string), "%s ist jetzt AFK | Grund: %s", name, afkgrund);
  510. SendClientMessageToAll(LIGHTBLUE, string);
  511. }
  512. return 1;
  513. }
  514.  
  515. //------------------BACK-----------------
  516.  
  517. dcmd_back(playerid,params[]) {
  518. #pragma unused params
  519. TogglePlayerControllable(playerid, 1);
  520. new name[MAX_PLAYER_NAME], string[128];
  521. GetPlayerName(playerid, name, sizeof(name));
  522. format(string, sizeof(string), "%s ist back", name);
  523. SendClientMessageToAll(LIGHTBLUE, string);
  524. return 1;
  525. }
  526.  
  527. //------------Team Chat----------------
  528.  
  529. dcmd_t(playerid,params[])
  530. {
  531. new message[128];
  532. new pName[128];
  533. if(sscanf(params, "s", message))
  534. {
  535. return SendClientMessage(playerid, GREY, "Benutze \"/t\" um mit deinem Team zu sprechen");
  536. }
  537. else
  538. {
  539. for(new i = 0; i <= MAX_PLAYERS; i++)
  540. {
  541. if(IsPlayerConnected(i))
  542. {
  543. if(gTeam[playerid] == gTeam[i])
  544. {
  545. if(gTeam[playerid] == TEAM_CT)
  546. {
  547. new text[128];
  548. GetPlayerName(playerid, pName, sizeof(pName));
  549. format(text, sizeof(text), "<CT> %s: %s", pName, message);
  550. SendClientMessage(i, TEAMCHAT, text);
  551. }
  552. else
  553. {
  554. new text[128];
  555. GetPlayerName(playerid, pName, sizeof(pName));
  556. format(text, sizeof(text), "<T> %s: %s", pName, message);
  557. SendClientMessage(i, TEAMCHAT, text);
  558. }
  559. }
  560. }
  561. }
  562. }
  563. return 1;
  564. }
  565.  
  566. dcmd_stats(playerid,params[])
  567. {
  568. #pragma unused params
  569. if(IsPlayerConnected(playerid))
  570. {
  571. new pName[MAX_PLAYER_NAME];
  572. new string1[48], string2[128];
  573.  
  574. GetPlayerName(playerid, pName, sizeof(pName));
  575. SendClientMessage(playerid,GREY,"_____________________________");
  576.  
  577. format(string1, sizeof(string1),"*** %s ***",pName);
  578. SendClientMessage(playerid, GREY, string1);
  579.  
  580. format(string2,sizeof(string2),"Deaths [%d], Kills [%d], gespielte Runden [%d]", PlayerStats[playerid][pTode], PlayerStats[playerid][pKills], PlayerStats[playerid][pRunden]);
  581. SendClientMessage(playerid, GREY, string2);
  582.  
  583. SendClientMessage(playerid,GREY,"_____________________________");
  584. }
  585. return 1;
  586. }
  587.  
  588. dcmd_help(playerid,params[])
  589. {
  590. #pragma unused params
  591. new pName[MAX_PLAYER_NAME], string[48];
  592. SendClientMessage(playerid,GREY,"_____________________________");
  593. GetPlayerName(playerid,pName,sizeof(pName));
  594. format(string,sizeof(string),"***%s - Deine Commands ***",pName);
  595. SendClientMessage(playerid, WHITE,string);
  596. SendClientMessage(playerid, WHITE,"/afk - /back - /t(eam) - /stats");
  597. SendClientMessage(playerid,GREY,"_____________________________");
  598. return 1;
  599. }
  600. //----------------------------------------------------------------------------------
  601.  
  602. stock sscanf(string[], format[], {Float,_}:...)
  603. {
  604. #if defined isnull
  605. if (isnull(string))
  606. #else
  607. if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
  608. #endif
  609. {
  610. return format[0];
  611. }
  612. #pragma tabsize 4
  613. new
  614. formatPos = 0,
  615. stringPos = 0,
  616. paramPos = 2,
  617. paramCount = numargs(),
  618. delim = ' ';
  619. while (string[stringPos] && string[stringPos] <= ' ')
  620. {
  621. stringPos++;
  622. }
  623. while (paramPos < paramCount && string[stringPos])
  624. {
  625. switch (format[formatPos++])
  626. {
  627. case '\0':
  628. {
  629. return 0;
  630. }
  631. case 'i', 'd':
  632. {
  633. new
  634. neg = 1,
  635. num = 0,
  636. ch = string[stringPos];
  637. if (ch == '-')
  638. {
  639. neg = -1;
  640. ch = string[++stringPos];
  641. }
  642. do
  643. {
  644. stringPos++;
  645. if ('0' <= ch <= '9')
  646. {
  647. num = (num * 10) + (ch - '0');
  648. }
  649. else
  650. {
  651. return -1;
  652. }
  653. }
  654. while ((ch = string[stringPos]) > ' ' && ch != delim);
  655. setarg(paramPos, 0, num * neg);
  656. }
  657. case 'h', 'x':
  658. {
  659. new
  660. num = 0,
  661. ch = string[stringPos];
  662. do
  663. {
  664. stringPos++;
  665. switch (ch)
  666. {
  667. case 'x', 'X':
  668. {
  669. num = 0;
  670. continue;
  671. }
  672. case '0' .. '9':
  673. {
  674. num = (num << 4) | (ch - '0');
  675. }
  676. case 'a' .. 'f':
  677. {
  678. num = (num << 4) | (ch - ('a' - 10));
  679. }
  680. case 'A' .. 'F':
  681. {
  682. num = (num << 4) | (ch - ('A' - 10));
  683. }
  684. default:
  685. {
  686. return -1;
  687. }
  688. }
  689. }
  690. while ((ch = string[stringPos]) > ' ' && ch != delim);
  691. setarg(paramPos, 0, num);
  692. }
  693. case 'c':
  694. {
  695. setarg(paramPos, 0, string[stringPos++]);
  696. }
  697. case 'f':
  698. {
  699. setarg(paramPos, 0, _:floatstr(string[stringPos]));
  700. }
  701. case 'p':
  702. {
  703. delim = format[formatPos++];
  704. continue;
  705. }
  706. case '\'':
  707. {
  708. new
  709. end = formatPos - 1,
  710. ch;
  711. while ((ch = format[++end]) && ch != '\'') {}
  712. if (!ch)
  713. {
  714. return -1;
  715. }
  716. format[end] = '\0';
  717. if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
  718. {
  719. if (format[end + 1])
  720. {
  721. return -1;
  722. }
  723. return 0;
  724. }
  725. format[end] = '\'';
  726. stringPos = ch + (end - formatPos);
  727. formatPos = end + 1;
  728. }
  729. case 'u':
  730. {
  731. new
  732. end = stringPos - 1,
  733. id = 0,
  734. bool:num = true,
  735. ch;
  736. while ((ch = string[++end]) && ch != delim)
  737. {
  738. if (num)
  739. {
  740. if ('0' <= ch <= '9')
  741. {
  742. id = (id * 10) + (ch - '0');
  743. }
  744. else
  745. {
  746. num = false;
  747. }
  748. }
  749. }
  750. if (num && IsPlayerConnected(id))
  751. {
  752. setarg(paramPos, 0, id);
  753. }
  754. else
  755. {
  756. #if !defined foreach
  757. #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  758. #define __SSCANF_FOREACH__
  759. #endif
  760. string[end] = '\0';
  761. num = false;
  762. new
  763. name[MAX_PLAYER_NAME];
  764. id = end - stringPos;
  765. foreach (Player, playerid)
  766. {
  767. GetPlayerName(playerid, name, sizeof (name));
  768. if (!strcmp(name, string[stringPos], true, id))
  769. {
  770. setarg(paramPos, 0, playerid);
  771. num = true;
  772. break;
  773. }
  774. }
  775. if (!num)
  776. {
  777. setarg(paramPos, 0, INVALID_PLAYER_ID);
  778. }
  779. string[end] = ch;
  780. #if defined __SSCANF_FOREACH__
  781. #undef foreach
  782. #undef __SSCANF_FOREACH__
  783. #endif
  784. }
  785. stringPos = end;
  786. }
  787. case 's', 'z':
  788. {
  789. new
  790. i = 0,
  791. ch;
  792. if (format[formatPos])
  793. {
  794. while ((ch = string[stringPos++]) && ch != delim)
  795. {
  796. setarg(paramPos, i++, ch);
  797. }
  798. if (!i)
  799. {
  800. return -1;
  801. }
  802. }
  803. else
  804. {
  805. while ((ch = string[stringPos++]))
  806. {
  807. setarg(paramPos, i++, ch);
  808. }
  809. }
  810. stringPos--;
  811. setarg(paramPos, i, '\0');
  812. }
  813. default:
  814. {
  815. continue;
  816. }
  817. }
  818. while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
  819. {
  820. stringPos++;
  821. }
  822. while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
  823. {
  824. stringPos++;
  825. }
  826. paramPos++;
  827. }
  828. do
  829. {
  830. if ((delim = format[formatPos++]) > ' ')
  831. {
  832. if (delim == '\'')
  833. {
  834. while ((delim = format[formatPos++]) && delim != '\'') {}
  835. }
  836. else if (delim != 'z')
  837. {
  838. return delim;
  839. }
  840. }
  841. }
  842. while (delim > ' ');
  843. return 0;
  844. }
  845.  
Advertisement
Add Comment
Please, Sign In to add comment