Skylive77

[FS] Server Monitor 2.1

Jun 8th, 2011
327
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.57 KB | None | 0 0
  1. //****************************************************************
  2. //****************************************************************
  3. //** Server Monitoring System v2.1 by Skylive77 **
  4. //** **
  5. //** Release 2.1 : **
  6. //** **
  7. //** -Monitor in textdraw **
  8. //** -Bot amount for calculate slots and players online **
  9. //** -Refresh Time for textdraw **
  10. //** -MonitorTD command **
  11. //** **
  12. //** **
  13. //****************************************************************
  14. //****************************************************************
  15. #include <a_samp>
  16. #define FILTERSCRIPT
  17. #define COLOR_WHITE 0xFFFFFFAA
  18. #define COLOR_MONITOR 0xB0C4DEFF
  19. #define COLOR_MONITOR1 0xCDFF00FF
  20. #define COLOR_MONITOR2 0x91FF00FF
  21. #define COLOR_CHAT 0x00FFE632
  22. #define COLOR_ALERTE 0xFF5A0093
  23. #define MAX_STRING 255
  24. #define COLOR_GRAD2 0xBFC0C2FF
  25. //----------------------Change Me------------------------------------------
  26. #define RefeshTime 1000 //Time to refresh the textdraws in miliseconds.
  27. #define NPC 0 //Number of NPC in your server, if you don't have NPC, use 0.
  28. //-------------------------------------------------------------------------
  29.  
  30. forward SendServerMessage(color,const string[]);
  31. forward SendRCONMessage(color,const string[]);
  32. forward LoadTextDraws(playerid);
  33. forward UnLoadTextDraws(playerid);
  34. forward RefreshTextDraws(playerid);
  35. new playername[MAX_PLAYER_NAME];
  36. new sendername[MAX_PLAYER_NAME];
  37. new playerip[64];
  38. new MaxP;
  39. new totalon;
  40. new npcon;
  41. new TotalConnections;
  42. new TotalTimeouts;
  43. new TotalKicks;
  44. new TotalCommands;
  45. new TotalChatMessages;
  46. new COKRCON;
  47. new CECHRCON;
  48.  
  49. //TextDraw mode
  50. new Showing[MAX_PLAYERS];
  51. new TextDrawON[MAX_PLAYERS] = 0;
  52. new RefreshTD;
  53. new Text:Textdraw0;
  54. new Text:Textdraw1;
  55. new Text:Textdraw2;
  56. new Text:Textdraw3;
  57. new Text:Textdraw4;
  58. new Text:Textdraw5;
  59. new Text:Textdraw6;
  60. new Text:Textdraw7;
  61. new Text:Textdraw8;
  62. new Text:Textdraw9;
  63.  
  64. #if defined FILTERSCRIPT
  65.  
  66. public OnFilterScriptInit()
  67. {
  68. print("\n--------------------------------------");
  69. print(" Server Monitoring by Skylive77 loaded");
  70. print("--------------------------------------\n");
  71. MaxP = GetMaxPlayers();
  72. new stringload[256];
  73. format(stringload, sizeof(stringload), "Server Monitoring chargé avec succès!");
  74. SendRCONMessage(COLOR_MONITOR1,stringload);
  75.  
  76. //Create the textdraws
  77. Textdraw0 = TextDrawCreate(441.000000, 120.000000, "Server Monitor 2.1");
  78. TextDrawBackgroundColor(Textdraw0, 255);
  79. TextDrawFont(Textdraw0, 1);
  80. TextDrawLetterSize(Textdraw0, 0.379999, 1.100000);
  81. TextDrawColor(Textdraw0, 16711935);
  82. TextDrawSetOutline(Textdraw0, 0);
  83. TextDrawSetProportional(Textdraw0, 1);
  84. TextDrawSetShadow(Textdraw0, 1);
  85. TextDrawUseBox(Textdraw0, 1);
  86. TextDrawBoxColor(Textdraw0, 0x00000065);
  87. TextDrawTextSize(Textdraw0, 634.000000, 22.000000);
  88.  
  89. Textdraw1 = TextDrawCreate(441.000000, 134.000000, "s1");
  90. TextDrawBackgroundColor(Textdraw1, 255);
  91. TextDrawFont(Textdraw1, 1);
  92. TextDrawLetterSize(Textdraw1, 0.320000, 1.100000);
  93. TextDrawColor(Textdraw1, -65281);
  94. TextDrawSetOutline(Textdraw1, 0);
  95. TextDrawSetProportional(Textdraw1, 1);
  96. TextDrawSetShadow(Textdraw1, 1);
  97. TextDrawUseBox(Textdraw1, 1);
  98. TextDrawBoxColor(Textdraw1, 0x00000065);
  99. TextDrawTextSize(Textdraw1, 634.000000, 22.000000);
  100.  
  101. Textdraw2 = TextDrawCreate(441.000000, 148.000000, "s2");
  102. TextDrawBackgroundColor(Textdraw2, 255);
  103. TextDrawFont(Textdraw2, 1);
  104. TextDrawLetterSize(Textdraw2, 0.320000, 1.100000);
  105. TextDrawColor(Textdraw2, -65281);
  106. TextDrawSetOutline(Textdraw2, 0);
  107. TextDrawSetProportional(Textdraw2, 1);
  108. TextDrawSetShadow(Textdraw2, 1);
  109. TextDrawUseBox(Textdraw2, 1);
  110. TextDrawBoxColor(Textdraw2, 0x00000065);
  111. TextDrawTextSize(Textdraw2, 634.000000, 22.000000);
  112.  
  113. Textdraw3 = TextDrawCreate(441.000000, 162.000000, "s3");
  114. TextDrawBackgroundColor(Textdraw3, 255);
  115. TextDrawFont(Textdraw3, 1);
  116. TextDrawLetterSize(Textdraw3, 0.320000, 1.100000);
  117. TextDrawColor(Textdraw3, -65281);
  118. TextDrawSetOutline(Textdraw3, 0);
  119. TextDrawSetProportional(Textdraw3, 1);
  120. TextDrawSetShadow(Textdraw3, 1);
  121. TextDrawUseBox(Textdraw3, 1);
  122. TextDrawBoxColor(Textdraw3, 0x00000065);
  123. TextDrawTextSize(Textdraw3, 634.000000, 22.000000);
  124.  
  125. Textdraw4 = TextDrawCreate(441.000000, 176.000000, "s4");
  126. TextDrawBackgroundColor(Textdraw4, 255);
  127. TextDrawFont(Textdraw4, 1);
  128. TextDrawLetterSize(Textdraw4, 0.320000, 1.100000);
  129. TextDrawColor(Textdraw4, -65281);
  130. TextDrawSetOutline(Textdraw4, 0);
  131. TextDrawSetProportional(Textdraw4, 1);
  132. TextDrawSetShadow(Textdraw4, 1);
  133. TextDrawUseBox(Textdraw4, 1);
  134. TextDrawBoxColor(Textdraw4, 0x00000065);
  135. TextDrawTextSize(Textdraw4, 634.000000, 22.000000);
  136.  
  137. Textdraw5 = TextDrawCreate(441.000000, 190.000000, "s5");
  138. TextDrawBackgroundColor(Textdraw5, 255);
  139. TextDrawFont(Textdraw5, 1);
  140. TextDrawLetterSize(Textdraw5, 0.320000, 1.100000);
  141. TextDrawColor(Textdraw5, -65281);
  142. TextDrawSetOutline(Textdraw5, 0);
  143. TextDrawSetProportional(Textdraw5, 1);
  144. TextDrawSetShadow(Textdraw5, 1);
  145. TextDrawUseBox(Textdraw5, 1);
  146. TextDrawBoxColor(Textdraw5, 0x00000065);
  147. TextDrawTextSize(Textdraw5, 634.000000, 22.000000);
  148.  
  149. Textdraw6 = TextDrawCreate(441.000000, 204.000000, "s6");
  150. TextDrawBackgroundColor(Textdraw6, 255);
  151. TextDrawFont(Textdraw6, 1);
  152. TextDrawLetterSize(Textdraw6, 0.320000, 1.100000);
  153. TextDrawColor(Textdraw6, -65281);
  154. TextDrawSetOutline(Textdraw6, 0);
  155. TextDrawSetProportional(Textdraw6, 1);
  156. TextDrawSetShadow(Textdraw6, 1);
  157. TextDrawUseBox(Textdraw6, 1);
  158. TextDrawBoxColor(Textdraw6, 0x00000065);
  159. TextDrawTextSize(Textdraw6, 634.000000, 22.000000);
  160.  
  161. Textdraw7 = TextDrawCreate(441.000000, 218.000000, "s7");
  162. TextDrawBackgroundColor(Textdraw7, 255);
  163. TextDrawFont(Textdraw7, 1);
  164. TextDrawLetterSize(Textdraw7, 0.320000, 1.100000);
  165. TextDrawColor(Textdraw7, -65281);
  166. TextDrawSetOutline(Textdraw7, 0);
  167. TextDrawSetProportional(Textdraw7, 1);
  168. TextDrawSetShadow(Textdraw7, 1);
  169. TextDrawUseBox(Textdraw7, 1);
  170. TextDrawBoxColor(Textdraw7, 0x00000065);
  171. TextDrawTextSize(Textdraw7, 634.000000, 22.000000);
  172.  
  173. Textdraw8 = TextDrawCreate(441.000000, 232.000000, "s8");
  174. TextDrawBackgroundColor(Textdraw8, 255);
  175. TextDrawFont(Textdraw8, 1);
  176. TextDrawLetterSize(Textdraw8, 0.300000, 1.100000);
  177. TextDrawColor(Textdraw8, -65281);
  178. TextDrawSetOutline(Textdraw8, 0);
  179. TextDrawSetProportional(Textdraw8, 1);
  180. TextDrawSetShadow(Textdraw8, 1);
  181. TextDrawUseBox(Textdraw8, 1);
  182. TextDrawBoxColor(Textdraw8, 0x00000065);
  183. TextDrawTextSize(Textdraw8, 634.000000, 22.000000);
  184.  
  185. Textdraw9 = TextDrawCreate(441.000000, 246.000000, "s9");
  186. TextDrawBackgroundColor(Textdraw9, 255);
  187. TextDrawFont(Textdraw9, 1);
  188. TextDrawLetterSize(Textdraw9, 0.300000, 1.100000);
  189. TextDrawColor(Textdraw9, -65281);
  190. TextDrawSetOutline(Textdraw9, 0);
  191. TextDrawSetProportional(Textdraw9, 1);
  192. TextDrawSetShadow(Textdraw9, 1);
  193. TextDrawUseBox(Textdraw9, 1);
  194. TextDrawBoxColor(Textdraw9, 0x00000065);
  195. TextDrawTextSize(Textdraw9, 634.000000, 22.000000);
  196.  
  197. //Refresh TD
  198. RefreshTD = SetTimer("RefreshTextDraws", RefeshTime, 1);
  199. return 1;
  200. }
  201.  
  202. public OnFilterScriptExit()
  203. {
  204. print("\n--------------------------------------");
  205. print(" Server Monitoring by Skylive77 unloaded");
  206. print("--------------------------------------\n");
  207. new stringunload[256];
  208. format(stringunload, sizeof(stringunload), "Server Monitoring tué avec succès!");
  209. SendRCONMessage(COLOR_ALERTE,stringunload);
  210.  
  211. //Unload For all and Destroy the TextDraws
  212. TextDrawHideForAll(Textdraw0);
  213. TextDrawDestroy(Textdraw0);
  214. TextDrawHideForAll(Textdraw1);
  215. TextDrawDestroy(Textdraw1);
  216. TextDrawHideForAll(Textdraw2);
  217. TextDrawDestroy(Textdraw2);
  218. TextDrawHideForAll(Textdraw3);
  219. TextDrawDestroy(Textdraw3);
  220. TextDrawHideForAll(Textdraw4);
  221. TextDrawDestroy(Textdraw4);
  222. TextDrawHideForAll(Textdraw5);
  223. TextDrawDestroy(Textdraw5);
  224. TextDrawHideForAll(Textdraw6);
  225. TextDrawDestroy(Textdraw6);
  226. TextDrawHideForAll(Textdraw7);
  227. TextDrawDestroy(Textdraw7);
  228. TextDrawHideForAll(Textdraw8);
  229. TextDrawDestroy(Textdraw8);
  230. TextDrawHideForAll(Textdraw9);
  231. TextDrawDestroy(Textdraw9);
  232.  
  233. KillTimer(RefreshTD);
  234. return 1;
  235. }
  236.  
  237. #else
  238.  
  239. main()
  240. {
  241. print("\n----------------------------------");
  242. print(" Server Monitoring by Skylive77");
  243. print("----------------------------------\n");
  244. }
  245.  
  246. #endif
  247.  
  248. public OnPlayerCommandText(playerid, cmdtext[])
  249. {
  250. TotalCommands++;
  251. new idx;
  252. new string[256];
  253. new cmd[256];
  254. cmd = strtok(cmdtext, idx);
  255. if(strcmp(cmdtext, "/allplayersip", true) == 0)
  256. {
  257. if (IsPlayerAdmin(playerid))
  258. {
  259. for(new j = 0; j < MAX_PLAYERS; j++)
  260. {
  261. if(IsPlayerConnected(j))
  262. {
  263. GetPlayerIp(j,playerip,sizeof(playerip));
  264. GetPlayerName(j, playername, sizeof(playername));
  265. format(string, 256, "Player Detected !! IP : %s, Name : %s.", playerip, playername);
  266. SendClientMessage(playerid,COLOR_MONITOR,string);
  267. }
  268. }
  269. }
  270. else
  271. {
  272. SendClientMessage(playerid, COLOR_GRAD2, "ERROR : Vous n'êtes pas Admin!");
  273. return 1;
  274. }
  275. return 1;
  276. }
  277. if(strcmp(cmdtext, "/mhelp", true) == 0)
  278. {
  279. if (IsPlayerAdmin(playerid))
  280. {
  281. SendClientMessage(playerid,COLOR_WHITE,"------------------------| Server Monitor Help Center |----------------------");
  282. SendClientMessage(playerid,COLOR_MONITOR,"Server Monitor HELP : /ssay /allplayersip /monitor");
  283. SendClientMessage(playerid,COLOR_MONITOR,"Server Monitor HELP : /mc /monitortd{FF0000}NEW!");
  284. }
  285. else
  286. {
  287. SendClientMessage(playerid, COLOR_GRAD2, "ERROR : Vous n'êtes pas Admin!");
  288. return 1;
  289. }
  290. return 1;
  291. }
  292. if(strcmp(cmdtext, "/monitor", true) == 0)
  293. {
  294. if (IsPlayerAdmin(playerid))
  295. {
  296. totalon = 0;
  297. for(new i=0; i<MAX_PLAYERS; i++)
  298. {
  299. if(IsPlayerConnected(i))
  300. {
  301. if(totalon == 0)
  302. {
  303. totalon = 1;
  304. }
  305. else if (totalon > 0)
  306. {
  307. if(IsPlayerNPC(playerid))
  308. {
  309. npcon++;
  310. }
  311. totalon++;
  312. }
  313. }
  314. }
  315. SendClientMessage(playerid,COLOR_WHITE,"----------------| Server Monitor |----------------");
  316. format(string, 256, "Players Online : %i/%i.", totalon-NPC, MaxP-NPC);
  317. SendClientMessage(playerid,COLOR_MONITOR1,string);
  318. new restant = MaxP-totalon-NPC;
  319. format(string, 256, "Slots available : %i.", restant);
  320. SendClientMessage(playerid,COLOR_MONITOR1,string);
  321. format(string, 256, "Total Connection : %d.", TotalConnections);
  322. SendClientMessage(playerid,COLOR_MONITOR1,string);
  323. format(string, 256, "Total Players Crash : %d.", TotalTimeouts);
  324. SendClientMessage(playerid,COLOR_MONITOR1,string);
  325. format(string, 256, "Total Players Quit : %d.", TotalKicks);
  326. SendClientMessage(playerid,COLOR_MONITOR1,string);
  327. format(string, 256, "Total Commands Used : %d.", TotalCommands);
  328. SendClientMessage(playerid,COLOR_MONITOR1,string);
  329. format(string, 256, "Total Messages Send : %d.", TotalChatMessages);
  330. SendClientMessage(playerid,COLOR_MONITOR1,string);
  331. format(string, 256, "Conexions au RCON (Echec) : %d.", CECHRCON);
  332. SendClientMessage(playerid,COLOR_MONITOR1,string);
  333. format(string, 256, "Conexions au RCON (Réussie) : %d.", COKRCON);
  334. SendClientMessage(playerid,COLOR_MONITOR1,string);
  335. SendClientMessage(playerid,COLOR_WHITE,"--------------------------------");
  336. format(string, 256, "RCON Admins Online :");
  337. SendClientMessage(playerid,COLOR_MONITOR2,string);
  338. for(new i = 0; i < MAX_PLAYERS; i++)
  339. {
  340. if(IsPlayerConnected(i))
  341. {
  342. if(IsPlayerAdmin(i))
  343. {
  344. new ip[64];
  345. GetPlayerName(i, sendername, sizeof(sendername));
  346. GetPlayerIp(i,ip,sizeof(ip));
  347. format(string, 256, "Name : %s, IP : %s", sendername, ip);
  348. SendClientMessage(playerid, COLOR_MONITOR2, string);
  349. }
  350. }
  351. }
  352. }
  353. else
  354. {
  355. SendClientMessage(playerid, COLOR_GRAD2, "ERROR : Vous n'êtes pas Admin!");
  356. return 1;
  357. }
  358. return 1;
  359. }
  360. if(strcmp(cmdtext, "/monitortd", true) == 0)
  361. {
  362. if (IsPlayerAdmin(playerid))
  363. {
  364. if(TextDrawON[playerid] == 0)
  365. {
  366. LoadTextDraws(playerid);
  367. TextDrawON[playerid] = 1;
  368. }
  369. else
  370. {
  371. UnLoadTextDraws(playerid);
  372. TextDrawON[playerid] = 0;
  373. }
  374. }
  375. else
  376. {
  377. SendClientMessage(playerid, COLOR_GRAD2, "ERROR : Vous n'êtes pas Admin!");
  378. return 1;
  379. }
  380. return 1;
  381. }
  382. if(strcmp(cmd,"/ssay",true)==0)
  383. {
  384. if (IsPlayerAdmin(playerid))
  385. {
  386. new length = strlen(cmdtext);
  387. while ((idx < length) && (cmdtext[idx] <= ' '))
  388. {
  389. idx++;
  390. }
  391. new offset = idx;
  392. new result[MAX_STRING];
  393. while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
  394. {
  395. result[idx - offset] = cmdtext[idx];
  396. idx++;
  397. }
  398. result[idx - offset] = EOS;
  399. if(!strlen(result))
  400. {
  401. SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /s(erver)say [message]");
  402. return 1;
  403. }
  404. format(string, sizeof(string), "Server: %s", result);
  405. SendServerMessage(COLOR_MONITOR,string);
  406. }
  407. else
  408. {
  409. SendClientMessage(playerid, COLOR_GRAD2, "ERROR : Vous n'êtes pas Admin!");
  410. return 1;
  411. }
  412. return 1;
  413. }
  414. if(strcmp(cmd,"/mc",true)==0)
  415. {
  416. if (IsPlayerAdmin(playerid))
  417. {
  418. new length = strlen(cmdtext);
  419. while ((idx < length) && (cmdtext[idx] <= ' '))
  420. {
  421. idx++;
  422. }
  423. new offset = idx;
  424. new result[MAX_STRING];
  425. while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
  426. {
  427. result[idx - offset] = cmdtext[idx];
  428. idx++;
  429. }
  430. result[idx - offset] = EOS;
  431. if(!strlen(result))
  432. {
  433. SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /mc [chat]");
  434. return 1;
  435. }
  436. GetPlayerName(playerid, sendername, sizeof(sendername));
  437. format(string, sizeof(string), "RCON Admin %s: %s", sendername,result);
  438. SendRCONMessage(COLOR_CHAT,string);
  439. }
  440. else
  441. {
  442. SendClientMessage(playerid, COLOR_GRAD2, "ERROR : Vous n'êtes pas Admin!");
  443. return 1;
  444. }
  445. return 1;
  446. }
  447. return 0;
  448. }
  449.  
  450. public OnRconLoginAttempt(ip[], password[], success)
  451. {
  452. if(!success) //If the password was incorrect
  453. {
  454. CECHRCON++;
  455. }
  456. else
  457. {
  458. COKRCON++;
  459. }
  460. return 1;
  461. }
  462.  
  463. public SendServerMessage(color,const string[])
  464. {
  465. for(new i = 0; i < MAX_PLAYERS; i++)
  466. {
  467. if(IsPlayerConnected(i))
  468. {
  469. SendClientMessage(i, color, string);
  470. }
  471. }
  472. }
  473.  
  474. public OnPlayerText(playerid, text[])
  475. {
  476. TotalChatMessages++;
  477. Showing[playerid] = 0;
  478. return 1;
  479. }
  480.  
  481. public SendRCONMessage(color,const string[])
  482. {
  483. for(new i = 0; i < MAX_PLAYERS; i++)
  484. {
  485. if(IsPlayerConnected(i))
  486. {
  487. if (IsPlayerAdmin(i))
  488. {
  489. SendClientMessage(i, color, string);
  490. }
  491. }
  492. }
  493. }
  494.  
  495. public OnPlayerConnect(playerid)
  496. {
  497. TotalConnections++;
  498. return 1;
  499. }
  500.  
  501. public OnPlayerDisconnect(playerid, reason)
  502. {
  503. switch(reason)
  504. {
  505. case 0: { TotalTimeouts++; }
  506. case 2: { TotalKicks++; }
  507. }
  508. return 1;
  509. }
  510.  
  511. public LoadTextDraws(playerid)
  512. {
  513. //Load TextDraws with variables for player
  514. totalon = 0;
  515. for(new i=0; i<MAX_PLAYERS; i++)
  516. {
  517. if(IsPlayerConnected(i))
  518. {
  519. if(totalon == 0)
  520. {
  521. totalon = 1;
  522. }
  523. else if (totalon > 0)
  524. {
  525. if(IsPlayerNPC(playerid))
  526. {
  527. npcon++;
  528. }
  529. totalon++;
  530. }
  531. }
  532. }
  533. new s1[256];
  534. format(s1, 256, "Players Online %d/%d.",totalon-NPC, MaxP-NPC);
  535. new s2[256];
  536. new restant = MaxP-totalon-NPC;
  537. format(s2, 256, "Slots available : %i.", restant);
  538. new s3[256];
  539. format(s3, 256, "Total Connection : %d.", TotalConnections);
  540. new s4[256];
  541. format(s4, 256, "Total Players Crash : %d.", TotalTimeouts);
  542. new s5[256];
  543. format(s5, 256, "Total Players Quit : %d.", TotalKicks);
  544. new s6[256];
  545. format(s6, 256, "Total Commands Used : %d.", TotalCommands);
  546. new s7[256];
  547. format(s7, 256, "Total Messages Send : %d.", TotalChatMessages);
  548. new s8[256];
  549. format(s8, 256, "RCON Connections (Failed) : %d.", CECHRCON);
  550. new s9[256];
  551. format(s9, 256, "RCON Connections (Success) : %d.", COKRCON);
  552.  
  553. TextDrawSetString(Text:Textdraw1, s1);
  554. TextDrawSetString(Text:Textdraw2, s2);
  555. TextDrawSetString(Text:Textdraw3, s3);
  556. TextDrawSetString(Text:Textdraw4, s4);
  557. TextDrawSetString(Text:Textdraw5, s5);
  558. TextDrawSetString(Text:Textdraw6, s6);
  559. TextDrawSetString(Text:Textdraw7, s7);
  560. TextDrawSetString(Text:Textdraw8, s8);
  561. TextDrawSetString(Text:Textdraw9, s9);
  562.  
  563. TextDrawShowForPlayer(playerid, Textdraw0);
  564. TextDrawShowForPlayer(playerid, Textdraw1);
  565. TextDrawShowForPlayer(playerid, Textdraw2);
  566. TextDrawShowForPlayer(playerid, Textdraw3);
  567. TextDrawShowForPlayer(playerid, Textdraw4);
  568. TextDrawShowForPlayer(playerid, Textdraw5);
  569. TextDrawShowForPlayer(playerid, Textdraw6);
  570. TextDrawShowForPlayer(playerid, Textdraw7);
  571. TextDrawShowForPlayer(playerid, Textdraw8);
  572. TextDrawShowForPlayer(playerid, Textdraw9);
  573. }
  574.  
  575. public RefreshTextDraws(playerid)
  576. {
  577. //ReLoad TextDraws with variables for player
  578. totalon = 0;
  579. for(new i=0; i<MAX_PLAYERS; i++)
  580. {
  581. if(IsPlayerConnected(i))
  582. {
  583. if(totalon == 0)
  584. {
  585. totalon = 1;
  586. }
  587. else if (totalon > 0)
  588. {
  589. if(IsPlayerNPC(playerid))
  590. {
  591. npcon++;
  592. }
  593. totalon++;
  594. }
  595. }
  596. }
  597. TextDrawHideForPlayer(playerid, Textdraw0);
  598. TextDrawHideForPlayer(playerid, Textdraw1);
  599. TextDrawHideForPlayer(playerid, Textdraw2);
  600. TextDrawHideForPlayer(playerid, Textdraw3);
  601. TextDrawHideForPlayer(playerid, Textdraw4);
  602. TextDrawHideForPlayer(playerid, Textdraw5);
  603. TextDrawHideForPlayer(playerid, Textdraw6);
  604. TextDrawHideForPlayer(playerid, Textdraw7);
  605. TextDrawHideForPlayer(playerid, Textdraw8);
  606. TextDrawHideForPlayer(playerid, Textdraw9);
  607.  
  608. new s1[256];
  609. format(s1, 256, "Players Online %d/%d.",totalon-NPC, MaxP-NPC);
  610. new s2[256];
  611. new restant = MaxP-totalon-NPC;
  612. format(s2, 256, "Slots available : %i.", restant);
  613. new s3[256];
  614. format(s3, 256, "Total Connection : %d.", TotalConnections);
  615. new s4[256];
  616. format(s4, 256, "Total Players Crash : %d.", TotalTimeouts);
  617. new s5[256];
  618. format(s5, 256, "Total Players Quit : %d.", TotalKicks);
  619. new s6[256];
  620. format(s6, 256, "Total Commands Used : %d.", TotalCommands);
  621. new s7[256];
  622. format(s7, 256, "Total Messages Send : %d.", TotalChatMessages);
  623. new s8[256];
  624. format(s8, 256, "RCON Connections (Failed) : %d.", CECHRCON);
  625. new s9[256];
  626. format(s9, 256, "RCON Connections (Success) : %d.", COKRCON);
  627.  
  628. TextDrawSetString(Text:Textdraw1, s1);
  629. TextDrawSetString(Text:Textdraw2, s2);
  630. TextDrawSetString(Text:Textdraw3, s3);
  631. TextDrawSetString(Text:Textdraw4, s4);
  632. TextDrawSetString(Text:Textdraw5, s5);
  633. TextDrawSetString(Text:Textdraw6, s6);
  634. TextDrawSetString(Text:Textdraw7, s7);
  635. TextDrawSetString(Text:Textdraw8, s8);
  636. TextDrawSetString(Text:Textdraw9, s9);
  637.  
  638. TextDrawShowForPlayer(playerid, Textdraw0);
  639. TextDrawShowForPlayer(playerid, Textdraw1);
  640. TextDrawShowForPlayer(playerid, Textdraw2);
  641. TextDrawShowForPlayer(playerid, Textdraw3);
  642. TextDrawShowForPlayer(playerid, Textdraw4);
  643. TextDrawShowForPlayer(playerid, Textdraw5);
  644. TextDrawShowForPlayer(playerid, Textdraw6);
  645. TextDrawShowForPlayer(playerid, Textdraw7);
  646. TextDrawShowForPlayer(playerid, Textdraw8);
  647. TextDrawShowForPlayer(playerid, Textdraw9);
  648. }
  649.  
  650. public UnLoadTextDraws(playerid)
  651. {
  652. //Unload TextDraws For Player
  653. TextDrawHideForPlayer(playerid, Textdraw0);
  654. TextDrawHideForPlayer(playerid, Textdraw1);
  655. TextDrawHideForPlayer(playerid, Textdraw2);
  656. TextDrawHideForPlayer(playerid, Textdraw3);
  657. TextDrawHideForPlayer(playerid, Textdraw4);
  658. TextDrawHideForPlayer(playerid, Textdraw5);
  659. TextDrawHideForPlayer(playerid, Textdraw6);
  660. TextDrawHideForPlayer(playerid, Textdraw7);
  661. TextDrawHideForPlayer(playerid, Textdraw8);
  662. TextDrawHideForPlayer(playerid, Textdraw9);
  663. }
  664.  
  665. strtok(const string[], &index,seperator=' ')
  666. {
  667. new length = strlen(string);
  668. new offset = index;
  669. new result[128];
  670. while ((index < length) && (string[index] != seperator) && ((index - offset) < (sizeof(result) - 1)))
  671. {
  672. result[index - offset] = string[index];
  673. index++;
  674. }
  675.  
  676. result[index - offset] = EOS;
  677. if ((index < length) && (string[index] == seperator))
  678. {
  679. index++;
  680. }
  681. return result;
  682. }
Advertisement
Add Comment
Please, Sign In to add comment