Advertisement
Guest User

Sandra

a guest
May 26th, 2008
699
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.81 KB | None | 0 0
  1. /*===================================================================================================*\
  2. ||===================================================================================================||
  3. || ________ ________ ___ _ ______ ______ ________ ||
  4. || \ | _____| | ____ | | \ | | | _ \ | _ \ | ____ | / ||
  5. || ======== \ | |_____ | |____| | | |\ \ | | | | | | | |_| / | |____| | / ======== ||
  6. || | | _____ | | ____ | | | \ \| | | | | | | _ \ | ____ | | ||
  7. || ======== / ______| | | | | | | | \ \ | | |_| | | | \ \ | | | | \ ======== ||
  8. || / |________| |_| |_| |_| \__| |______/ |_| \_| |_| |_| \ ||
  9. || ||
  10. ||===================================================================================================||
  11. || Created on the 26th of May 2008 by =>Sandra<= ||
  12. || Do NOT remove any credits!! ||
  13. \*===================================================================================================*/
  14.  
  15. #include <a_samp>
  16.  
  17. //Defines:
  18. new configplayer = INVALID_PLAYER_ID;
  19. new configplayername[MAX_PLAYER_NAME];
  20. new Frozen[MAX_PLAYERS];
  21. new Muted[MAX_PLAYERS];
  22. new admin;
  23.  
  24. //Menu-defines:
  25. new Menu:MainMenu;
  26. new Menu:HealthMenu;
  27. new Menu:ArmourMenu;
  28. new Menu:MoneyMenu;
  29. new Menu:ScoreMenu;
  30. new Menu:OtherMenu;
  31.  
  32. public OnFilterScriptInit()
  33. {
  34. MainMenu = CreateMenu("PlayerConfig:", 1, 200, 150, 240, 0.0);
  35. AddMenuItem(MainMenu, 0, "Health");
  36. AddMenuItem(MainMenu, 0, "Armour");
  37. AddMenuItem(MainMenu, 0, "Money");
  38. AddMenuItem(MainMenu, 0, "Score");
  39. AddMenuItem(MainMenu, 0, "Other");
  40. AddMenuItem(MainMenu, 0, "Close");
  41.  
  42. HealthMenu = CreateMenu("PlayerHealth:", 1, 200, 150, 240, 0.0);
  43. AddMenuItem(HealthMenu, 0, "+10");
  44. AddMenuItem(HealthMenu, 0, "+1");
  45. AddMenuItem(HealthMenu, 0, "-1");
  46. AddMenuItem(HealthMenu, 0, "-10");
  47. AddMenuItem(HealthMenu, 0, "Full Health");
  48. AddMenuItem(HealthMenu, 0, "Kill Player");
  49. AddMenuItem(HealthMenu, 0, "Back");
  50.  
  51. ArmourMenu = CreateMenu("PlayerArmour:", 1, 200, 150, 240, 0.0);
  52. AddMenuItem(ArmourMenu, 0, "+10");
  53. AddMenuItem(ArmourMenu, 0, "+1");
  54. AddMenuItem(ArmourMenu, 0, "-1");
  55. AddMenuItem(ArmourMenu, 0, "-10");
  56. AddMenuItem(ArmourMenu, 0, "Full Armour");
  57. AddMenuItem(ArmourMenu, 0, "Remove Armour");
  58. AddMenuItem(ArmourMenu, 0, "Back");
  59.  
  60. MoneyMenu = CreateMenu("PlayerMoney:", 1, 200, 150, 240, 0.0);
  61. AddMenuItem(MoneyMenu, 0, "+10000");
  62. AddMenuItem(MoneyMenu, 0, "+1000");
  63. AddMenuItem(MoneyMenu, 0, "+100");
  64. AddMenuItem(MoneyMenu, 0, "+10");
  65. AddMenuItem(MoneyMenu, 0, "-10");
  66. AddMenuItem(MoneyMenu, 0, "-100");
  67. AddMenuItem(MoneyMenu, 0, "-1000");
  68. AddMenuItem(MoneyMenu, 0, "-10000");
  69. AddMenuItem(MoneyMenu, 0, "Reset Money");
  70. AddMenuItem(MoneyMenu, 0, "Back");
  71.  
  72. ScoreMenu = CreateMenu("PlayerScore:", 1, 200, 150, 240, 0.0);
  73. AddMenuItem(ScoreMenu, 0, "+10");
  74. AddMenuItem(ScoreMenu, 0, "+1");
  75. AddMenuItem(ScoreMenu, 0, "-1");
  76. AddMenuItem(ScoreMenu, 0, "-10");
  77. AddMenuItem(ScoreMenu, 0, "Reset Score");
  78. AddMenuItem(ScoreMenu, 0, "Back");
  79.  
  80. OtherMenu = CreateMenu("Other Options:", 1, 200, 150, 240, 0.0);
  81. AddMenuItem(OtherMenu, 0, "Kick Player");
  82. AddMenuItem(OtherMenu, 0, "Ban Player");
  83. AddMenuItem(OtherMenu, 0, "(Un)Mute Player");
  84. AddMenuItem(OtherMenu, 0, "(Un)Freeze Player");
  85. AddMenuItem(OtherMenu, 0, "Back");
  86.  
  87.  
  88. print("--------------------------------------");
  89. print(" PlayerAdministration by =>Sandra<= ");
  90. print("--------------------------------------");
  91. return 1;
  92. }
  93.  
  94. public OnPlayerDisconnect(playerid, reason)
  95. {
  96. if(playerid == configplayer)
  97. {
  98. GameTextForPlayer(admin, "~r~Configuraion stopped: ~n~Player has left the server", 5000, 4);
  99. HideMenuForPlayer(GetPlayerMenu(admin), admin);
  100. configplayer = INVALID_PLAYER_ID;
  101. }
  102. Frozen[playerid] = 0;
  103. Muted[playerid] = 0;
  104. return 1;
  105. }
  106.  
  107. public OnPlayerText(playerid, text[])
  108. {
  109. if(Muted[playerid] == 1)
  110. {
  111. SendClientMessage(playerid, 0xFF0000AA, "You can't chat because you are muted!");
  112. return 0;
  113. }
  114. return 1;
  115. }
  116.  
  117. public OnPlayerCommandText(playerid, cmdtext[])
  118. {
  119. new cmd[256], tmp[256], str[128], idx;
  120. cmd = strtok(cmdtext, idx);
  121. if(strcmp("/playerconfig", cmd, true) == 0)
  122. {
  123. if(!IsPlayerAdmin(playerid))
  124. {
  125. SendClientMessage(playerid, 0xFF8C00AA, "This command is only for rcon-admins!");
  126. return 1;
  127. }
  128. tmp = strtok(cmdtext, idx);
  129. if(!strlen(tmp))
  130. {
  131. SendClientMessage(playerid, 0xFF8C00AA, "USAGE: /playerconfig [playerid]");
  132. return 1;
  133. }
  134. configplayer = strval(tmp);
  135. if(!IsPlayerConnected(configplayer))
  136. {
  137. format(str, 128, "Player #%d is not connected!", configplayer);
  138. SendClientMessage(playerid, 0xFF8C00AA, str);
  139. configplayer = INVALID_PLAYER_ID;
  140. return 1;
  141. }
  142. GetPlayerName(configplayer, configplayername, 24);
  143. TogglePlayerControllable(playerid, 0);
  144. admin = playerid;
  145. format(str, 128, "Configuring %s:", configplayername);
  146. SetMenuColumnHeader(MainMenu, 0, str);
  147. ShowMenuForPlayer(MainMenu, playerid);
  148. return 1;
  149. }
  150. return 0;
  151. }
  152.  
  153. public OnPlayerSelectedMenuRow(playerid, row)
  154. {
  155. new Menu:Current;
  156. Current = GetPlayerMenu(playerid);
  157. if(Current == MainMenu)
  158. {
  159. switch(row)
  160. {
  161. case 0:
  162. {
  163. new Float:Health, str[128];
  164. GetPlayerHealth(configplayer, Health);
  165. format(str, 128, "Current Health: %d", floatround(Health));
  166. SetMenuColumnHeader(HealthMenu, 0, str);
  167. ShowMenuForPlayer(HealthMenu, playerid);
  168. }
  169. case 1:
  170. {
  171. new Float:Armour, str[128];
  172. GetPlayerArmour(configplayer, Armour);
  173. format(str, 128, "Current Armour: %d", floatround(Armour));
  174. SetMenuColumnHeader(ArmourMenu, 0, str);
  175. ShowMenuForPlayer(ArmourMenu, playerid);
  176. }
  177. case 2:
  178. {
  179. new Money, str[128];
  180. GetPlayerMoney(configplayer);
  181. format(str, 128, "Current Money: $%d", Money);
  182. SetMenuColumnHeader(MoneyMenu, 0, str);
  183. ShowMenuForPlayer(MoneyMenu, playerid);
  184. }
  185. case 3:
  186. {
  187. new Score, str[128];
  188. GetPlayerScore(configplayer);
  189. format(str, 128, "Current Score: %d", Score);
  190. SetMenuColumnHeader(ScoreMenu, 0, str);
  191. ShowMenuForPlayer(ScoreMenu, playerid);
  192. }
  193. case 4:
  194. {
  195. ShowMenuForPlayer(OtherMenu, playerid);
  196. }
  197. case 5:
  198. {
  199. TogglePlayerControllable(playerid, 1);
  200. configplayer = INVALID_PLAYER_ID;
  201. }
  202. }
  203. }
  204. if(Current == HealthMenu)
  205. {
  206. switch(row)
  207. {
  208. case 0:
  209. {
  210. new Float:Health, str[128];
  211. GetPlayerHealth(configplayer, Health);
  212. Health = Health+10;
  213. SetPlayerHealth(configplayer, Health);
  214. format(str, 128, "Current Health: %.0f", Health);
  215. SetMenuColumnHeader(HealthMenu, 0, str);
  216. ShowMenuForPlayer(HealthMenu, playerid);
  217. }
  218. case 1:
  219. {
  220. new Float:Health, str[128];
  221. GetPlayerHealth(configplayer, Health);
  222. Health = Health+1;
  223. SetPlayerHealth(configplayer, Health);
  224. format(str, 128, "Current Health: %.0f", Health);
  225. SetMenuColumnHeader(HealthMenu, 0, str);
  226. ShowMenuForPlayer(HealthMenu, playerid);
  227. }
  228. case 2:
  229. {
  230. new Float:Health, str[128];
  231. GetPlayerHealth(configplayer, Health);
  232. Health = Health-1;
  233. SetPlayerHealth(configplayer, Health);
  234. format(str, 128, "Current Health: %.0f", Health);
  235. SetMenuColumnHeader(HealthMenu, 0, str);
  236. ShowMenuForPlayer(HealthMenu, playerid);
  237. }
  238. case 3:
  239. {
  240. new Float:Health, str[128];
  241. GetPlayerHealth(configplayer, Health);
  242. Health = Health-10;
  243. SetPlayerHealth(configplayer, Health);
  244. format(str, 128, "Current Health: %.0f", Health);
  245. SetMenuColumnHeader(HealthMenu, 0, str);
  246. ShowMenuForPlayer(HealthMenu, playerid);
  247. }
  248. case 4:
  249. {
  250. SetPlayerHealth(configplayer, 100.0);
  251. SetMenuColumnHeader(HealthMenu, 0, "Current Health: 100");
  252. ShowMenuForPlayer(HealthMenu, playerid);
  253.  
  254. }
  255. case 5:
  256. {
  257. SetPlayerHealth(configplayer, 0.0);
  258. SetMenuColumnHeader(HealthMenu, 0, "Current Health: 0");
  259. ShowMenuForPlayer(HealthMenu, playerid);
  260. }
  261. case 6:
  262. {
  263. new str[128];
  264. format(str, 128, "Configuring %s:", configplayername);
  265. SetMenuColumnHeader(MainMenu, 0, str);
  266. ShowMenuForPlayer(MainMenu, playerid);
  267. }
  268. }
  269. }
  270.  
  271. if(Current == ArmourMenu)
  272. {
  273. switch(row)
  274. {
  275. case 0:
  276. {
  277. new Float:Armour, str[128];
  278. GetPlayerArmour(configplayer, Armour);
  279. Armour = Armour+10;
  280. SetPlayerArmour(configplayer, Armour);
  281. format(str, 128, "Current Armour: %.0f", Armour);
  282. SetMenuColumnHeader(ArmourMenu, 0, str);
  283. ShowMenuForPlayer(ArmourMenu, playerid);
  284. }
  285. case 1:
  286. {
  287. new Float:Armour, str[128];
  288. GetPlayerArmour(configplayer, Armour);
  289. Armour = Armour+1;
  290. SetPlayerArmour(configplayer, Armour);
  291. format(str, 128, "Current Armour: %.0f", Armour);
  292. SetMenuColumnHeader(ArmourMenu, 0, str);
  293. ShowMenuForPlayer(ArmourMenu, playerid);
  294. }
  295. case 2:
  296. {
  297. new Float:Armour, str[128];
  298. GetPlayerArmour(configplayer, Armour);
  299. Armour = Armour-1;
  300. SetPlayerArmour(configplayer, Armour);
  301. format(str, 128, "Current Armour: %.0f", Armour);
  302. SetMenuColumnHeader(ArmourMenu, 0, str);
  303. ShowMenuForPlayer(ArmourMenu, playerid);
  304. }
  305. case 3:
  306. {
  307. new Float:Armour, str[128];
  308. GetPlayerArmour(configplayer, Armour);
  309. Armour = Armour-10;
  310. SetPlayerArmour(configplayer, Armour);
  311. format(str, 128, "Current Armour: %.0f", Armour);
  312. SetMenuColumnHeader(ArmourMenu, 0, str);
  313. ShowMenuForPlayer(ArmourMenu, playerid);
  314. }
  315. case 4:
  316. {
  317. SetPlayerArmour(configplayer, 100.0);
  318. SetMenuColumnHeader(ArmourMenu, 0, "Current Armour: 100");
  319. ShowMenuForPlayer(ArmourMenu, playerid);
  320.  
  321. }
  322. case 5:
  323. {
  324. SetPlayerArmour(configplayer, 0.0);
  325. SetMenuColumnHeader(ArmourMenu, 0, "Current Armour: 0");
  326. ShowMenuForPlayer(ArmourMenu, playerid);
  327. }
  328. case 6:
  329. {
  330. new str[128];
  331. format(str, 128, "Configuring %s:", configplayername);
  332. SetMenuColumnHeader(MainMenu, 0, str);
  333. ShowMenuForPlayer(MainMenu, playerid);
  334. }
  335. }
  336. }
  337.  
  338. if(Current == MoneyMenu)
  339. {
  340. switch(row)
  341. {
  342. case 0:
  343. {
  344. new str[128];
  345. GivePlayerMoney(configplayer, 10000);
  346. format(str, 128, "Current Money: $%d", GetPlayerMoney(configplayer));
  347. SetMenuColumnHeader(MoneyMenu, 0, str);
  348. ShowMenuForPlayer(MoneyMenu, playerid);
  349. }
  350. case 1:
  351. {
  352. new str[128];
  353. GivePlayerMoney(configplayer, 1000);
  354. format(str, 128, "Current Money: $%d", GetPlayerMoney(configplayer));
  355. SetMenuColumnHeader(MoneyMenu, 0, str);
  356. ShowMenuForPlayer(MoneyMenu, playerid);
  357. }
  358. case 2:
  359. {
  360. new str[128];
  361. GivePlayerMoney(configplayer, 100);
  362. format(str, 128, "Current Money: $%d", GetPlayerMoney(configplayer));
  363. SetMenuColumnHeader(MoneyMenu, 0, str);
  364. ShowMenuForPlayer(MoneyMenu, playerid);
  365. }
  366. case 3:
  367. {
  368. new str[128];
  369. GivePlayerMoney(configplayer, 10);
  370. format(str, 128, "Current Money: $%d", GetPlayerMoney(configplayer));
  371. SetMenuColumnHeader(MoneyMenu, 0, str);
  372. ShowMenuForPlayer(MoneyMenu, playerid);
  373. }
  374. case 4:
  375. {
  376. new str[128];
  377. GivePlayerMoney(configplayer, -10);
  378. format(str, 128, "Current Money: $%d", GetPlayerMoney(configplayer));
  379. SetMenuColumnHeader(MoneyMenu, 0, str);
  380. ShowMenuForPlayer(MoneyMenu, playerid);
  381. }
  382. case 5:
  383. {
  384. new str[128];
  385. GivePlayerMoney(configplayer, -100);
  386. format(str, 128, "Current Money: $%d", GetPlayerMoney(configplayer));
  387. SetMenuColumnHeader(MoneyMenu, 0, str);
  388. ShowMenuForPlayer(MoneyMenu, playerid);
  389. }
  390. case 6:
  391. {
  392. new str[128];
  393. GivePlayerMoney(configplayer, -1000);
  394. format(str, 128, "Current Money: $%d", GetPlayerMoney(configplayer));
  395. SetMenuColumnHeader(MoneyMenu, 0, str);
  396. ShowMenuForPlayer(MoneyMenu, playerid);
  397. }
  398. case 7:
  399. {
  400. new str[128];
  401. GivePlayerMoney(configplayer, -10000);
  402. format(str, 128, "Current Money: $%d", GetPlayerMoney(configplayer));
  403. SetMenuColumnHeader(MoneyMenu, 0, str);
  404. ShowMenuForPlayer(MoneyMenu, playerid);
  405. }
  406. case 8:
  407. {
  408. ResetPlayerMoney(configplayer);
  409. SetMenuColumnHeader(MoneyMenu, 0, "Current Money: $0");
  410. ShowMenuForPlayer(MoneyMenu, playerid);
  411. }
  412. case 9:
  413. {
  414. new str[128];
  415. format(str, 128, "Configuring %s:", configplayername);
  416. SetMenuColumnHeader(MainMenu, 0, str);
  417. ShowMenuForPlayer(MainMenu, playerid);
  418. }
  419. }
  420. }
  421.  
  422. if(Current == ScoreMenu)
  423. {
  424. switch(row)
  425. {
  426. case 0:
  427. {
  428. new str[128];
  429. SetPlayerScore(configplayer, (GetPlayerScore(configplayer)+10));
  430. format(str, 128, "Current Score: %d", GetPlayerScore(configplayer));
  431. SetMenuColumnHeader(ScoreMenu, 0, str);
  432. ShowMenuForPlayer(ScoreMenu, playerid);
  433. }
  434. case 1:
  435. {
  436. new str[128];
  437. SetPlayerScore(configplayer, (GetPlayerScore(configplayer)+1));
  438. format(str, 128, "Current Score: %d", GetPlayerScore(configplayer));
  439. SetMenuColumnHeader(ScoreMenu, 0, str);
  440. ShowMenuForPlayer(ScoreMenu, playerid);
  441. }
  442. case 2:
  443. {
  444. new str[128];
  445. SetPlayerScore(configplayer, (GetPlayerScore(configplayer)-1));
  446. format(str, 128, "Current Score: %d", GetPlayerScore(configplayer));
  447. SetMenuColumnHeader(ScoreMenu, 0, str);
  448. ShowMenuForPlayer(ScoreMenu, playerid);
  449. }
  450. case 3:
  451. {
  452. new str[128];
  453. SetPlayerScore(configplayer, (GetPlayerScore(configplayer)-10));
  454. format(str, 128, "Current Score: %d", GetPlayerScore(configplayer));
  455. SetMenuColumnHeader(ScoreMenu, 0, str);
  456. ShowMenuForPlayer(ScoreMenu, playerid);
  457. }
  458. case 4:
  459. {
  460. SetPlayerScore(configplayer, 0);
  461. SetMenuColumnHeader(MoneyMenu, 0, "Current Score: 0");
  462. ShowMenuForPlayer(MoneyMenu, playerid);
  463. }
  464. case 5:
  465. {
  466. new str[128];
  467. format(str, 128, "Configuring %s:", configplayername);
  468. SetMenuColumnHeader(MainMenu, 0, str);
  469. ShowMenuForPlayer(MainMenu, playerid);
  470. }
  471. }
  472. }
  473. if(Current == OtherMenu)
  474. {
  475. switch(row)
  476. {
  477. case 0: //Kick Player
  478. {
  479. new str[128];
  480. new Aname[24];
  481. GetPlayerName(playerid, Aname, 24);
  482. format(str, 128, "You are kicked from this server by Admin '%s'", Aname);
  483. SendClientMessage(configplayer, 0xFF0000AA, str);
  484. Kick(configplayer);
  485. format(str, 128, "'%s' is kicked from this server by admin '%s'", configplayername, Aname);
  486. SendClientMessageToAllEx(configplayer, 0xFF8C00AA, str);
  487. configplayer = INVALID_PLAYER_ID;
  488. GameTextForPlayer(playerid, "~r~Player Kicked!", 4000, 4);
  489. TogglePlayerControllable(playerid, 1);
  490. }
  491.  
  492. case 1: //Ban Player
  493. {
  494. new str[128];
  495. new Aname[24];
  496. GetPlayerName(playerid, Aname, 24);
  497. format(str, 128, "You are banned from this server by Admin '%s'", Aname);
  498. SendClientMessage(configplayer, 0xFF0000AA, str);
  499. Ban(configplayer);
  500. format(str, 128, "'%s' is banned from this server by admin '%s'", configplayername, Aname);
  501. SendClientMessageToAllEx(configplayer, 0xFF8C00AA, str);
  502. configplayer = INVALID_PLAYER_ID;
  503. GameTextForPlayer(playerid, "~r~Player Banned!", 4000, 4);
  504. TogglePlayerControllable(playerid, 1);
  505. }
  506.  
  507. case 2: //Mute Player
  508. {
  509. if(Muted[configplayer] == 0)
  510. {
  511. new str[128];
  512. new Aname[24];
  513. GetPlayerName(playerid, Aname, 24);
  514. format(str, 128, "You are muted by Admin '%s'. You can't chat till you're unmuted again.", Aname);
  515. SendClientMessage(configplayer, 0xFF0000AA, str);
  516. Muted[configplayer] = 1;
  517. format(str, 128, "'%s' is muted by admin '%s'", configplayername, Aname);
  518. SendClientMessageToAllEx(configplayer, 0xFF8C00AA, str);
  519. }
  520. else if(Muted[configplayer] == 1)
  521. {
  522. new str[128];
  523. new Aname[24];
  524. GetPlayerName(playerid, Aname, 24);
  525. format(str, 128, "You are unmuted by Admin '%s'. You can't chat till you're unmuted again.", Aname);
  526. SendClientMessage(configplayer, 0x7CFC00AA, str);
  527. Muted[configplayer] = 0;
  528. format(str, 128, "'%s' is unmuted by admin '%s'", configplayername, Aname);
  529. SendClientMessageToAllEx(configplayer, 0x7CFC00AA, str);
  530. }
  531. new str[128];
  532. format(str, 128, "Configuring %s:", configplayername);
  533. SetMenuColumnHeader(MainMenu, 0, str);
  534. ShowMenuForPlayer(MainMenu, playerid);
  535. }
  536.  
  537. case 3: //Freeze Player
  538. {
  539. if(Frozen[configplayer] == 0)
  540. {
  541. new str[128];
  542. new Aname[24];
  543. GetPlayerName(playerid, Aname, 24);
  544. format(str, 128, "You are frozen by Admin '%s'.", Aname);
  545. SendClientMessage(configplayer, 0xFF0000AA, str);
  546. TogglePlayerControllable(configplayer, 0);
  547. Frozen[configplayer] = 1;
  548. format(str, 128, "'%s' is frozen by admin '%s'", configplayername, Aname);
  549. SendClientMessageToAllEx(configplayer, 0xFF8C00AA, str);
  550. }
  551. else if(Frozen[configplayer] == 1)
  552. {
  553. new str[128];
  554. new Aname[24];
  555. GetPlayerName(playerid, Aname, 24);
  556. format(str, 128, "You are unfrozen by Admin '%s'.", Aname);
  557. SendClientMessage(configplayer, 0x7CFC00AA, str);
  558. TogglePlayerControllable(configplayer, 1);
  559. Frozen[configplayer] = 0;
  560. format(str, 128, "'%s' is unfrozen by admin '%s'", configplayername, Aname);
  561. SendClientMessageToAllEx(configplayer, 0x7CFC00AA, str);
  562. }
  563. new str[128];
  564. format(str, 128, "Configuring %s:", configplayername);
  565. SetMenuColumnHeader(MainMenu, 0, str);
  566. ShowMenuForPlayer(MainMenu, playerid);
  567. }
  568. }
  569. }
  570. return 1;
  571. }
  572.  
  573. public OnPlayerExitedMenu(playerid)
  574. {
  575. TogglePlayerControllable(playerid, 1);
  576. return 1;
  577. }
  578.  
  579. strtok(const string[], &index)
  580. {
  581. new length = strlen(string);
  582. while ((index < length) && (string[index] <= ' '))
  583. {
  584. index++;
  585. }
  586.  
  587. new offset = index;
  588. new result[20];
  589. while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  590. {
  591. result[index - offset] = string[index];
  592. index++;
  593. }
  594. result[index - offset] = EOS;
  595. return result;
  596. }
  597.  
  598. stock SendClientMessageToAllEx(exeption, color, const message[])
  599. {
  600. for(new i; i<MAX_PLAYERS; i++)
  601. {
  602. if(IsPlayerConnected(i))
  603. {
  604. if(i != exeption)
  605. {
  606. SendClientMessage(i, color, message);
  607. }
  608. }
  609. }
  610. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement