Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 60.71 KB | None | 0 0
  1. public PlVers:__version =
  2. {
  3. version = 5,
  4. filevers = "1.9.0.6001",
  5. date = "11/16/2016",
  6. time = "00:59:30"
  7. };
  8. new Float:NULL_VECTOR[3];
  9. new String:NULL_STRING[4];
  10. public Extension:__ext_core =
  11. {
  12. name = "Core",
  13. file = "core",
  14. autoload = 0,
  15. required = 0,
  16. };
  17. new MaxClients;
  18. public Extension:__ext_sdktools =
  19. {
  20. name = "SDKTools",
  21. file = "sdktools.ext",
  22. autoload = 1,
  23. required = 1,
  24. };
  25. public Extension:__ext_sdkhooks =
  26. {
  27. name = "SDKHooks",
  28. file = "sdkhooks.ext",
  29. autoload = 1,
  30. required = 1,
  31. };
  32. public Extension:__ext_cstrike =
  33. {
  34. name = "cstrike",
  35. file = "games/game.cstrike.ext",
  36. autoload = 0,
  37. required = 1,
  38. };
  39. public Extension:__ext_topmenus =
  40. {
  41. name = "TopMenus",
  42. file = "topmenus.ext",
  43. autoload = 1,
  44. required = 1,
  45. };
  46. public SharedPlugin:__pl_adminmenu =
  47. {
  48. name = "adminmenu",
  49. file = "adminmenu.smx",
  50. required = 1,
  51. };
  52. public Extension:__ext_cprefs =
  53. {
  54. name = "Client Preferences",
  55. file = "clientprefs.ext",
  56. autoload = 1,
  57. required = 1,
  58. };
  59. new String:g_Buffer[256];
  60. new bool:g_bInGame[66];
  61. new Handle:g_pGroups;
  62. new Handle:g_pTags;
  63. new Handle:g_pCookie;
  64. new Handle:g_pDb;
  65. public void:__ext_core_SetNTVOptional()
  66. {
  67. MarkNativeAsOptional("GetFeatureStatus");
  68. MarkNativeAsOptional("RequireFeature");
  69. MarkNativeAsOptional("AddCommandListener");
  70. MarkNativeAsOptional("RemoveCommandListener");
  71. MarkNativeAsOptional("BfWriteBool");
  72. MarkNativeAsOptional("BfWriteByte");
  73. MarkNativeAsOptional("BfWriteChar");
  74. MarkNativeAsOptional("BfWriteShort");
  75. MarkNativeAsOptional("BfWriteWord");
  76. MarkNativeAsOptional("BfWriteNum");
  77. MarkNativeAsOptional("BfWriteFloat");
  78. MarkNativeAsOptional("BfWriteString");
  79. MarkNativeAsOptional("BfWriteEntity");
  80. MarkNativeAsOptional("BfWriteAngle");
  81. MarkNativeAsOptional("BfWriteCoord");
  82. MarkNativeAsOptional("BfWriteVecCoord");
  83. MarkNativeAsOptional("BfWriteVecNormal");
  84. MarkNativeAsOptional("BfWriteAngles");
  85. MarkNativeAsOptional("BfReadBool");
  86. MarkNativeAsOptional("BfReadByte");
  87. MarkNativeAsOptional("BfReadChar");
  88. MarkNativeAsOptional("BfReadShort");
  89. MarkNativeAsOptional("BfReadWord");
  90. MarkNativeAsOptional("BfReadNum");
  91. MarkNativeAsOptional("BfReadFloat");
  92. MarkNativeAsOptional("BfReadString");
  93. MarkNativeAsOptional("BfReadEntity");
  94. MarkNativeAsOptional("BfReadAngle");
  95. MarkNativeAsOptional("BfReadCoord");
  96. MarkNativeAsOptional("BfReadVecCoord");
  97. MarkNativeAsOptional("BfReadVecNormal");
  98. MarkNativeAsOptional("BfReadAngles");
  99. MarkNativeAsOptional("BfGetNumBytesLeft");
  100. MarkNativeAsOptional("BfWrite.WriteBool");
  101. MarkNativeAsOptional("BfWrite.WriteByte");
  102. MarkNativeAsOptional("BfWrite.WriteChar");
  103. MarkNativeAsOptional("BfWrite.WriteShort");
  104. MarkNativeAsOptional("BfWrite.WriteWord");
  105. MarkNativeAsOptional("BfWrite.WriteNum");
  106. MarkNativeAsOptional("BfWrite.WriteFloat");
  107. MarkNativeAsOptional("BfWrite.WriteString");
  108. MarkNativeAsOptional("BfWrite.WriteEntity");
  109. MarkNativeAsOptional("BfWrite.WriteAngle");
  110. MarkNativeAsOptional("BfWrite.WriteCoord");
  111. MarkNativeAsOptional("BfWrite.WriteVecCoord");
  112. MarkNativeAsOptional("BfWrite.WriteVecNormal");
  113. MarkNativeAsOptional("BfWrite.WriteAngles");
  114. MarkNativeAsOptional("BfRead.ReadBool");
  115. MarkNativeAsOptional("BfRead.ReadByte");
  116. MarkNativeAsOptional("BfRead.ReadChar");
  117. MarkNativeAsOptional("BfRead.ReadShort");
  118. MarkNativeAsOptional("BfRead.ReadWord");
  119. MarkNativeAsOptional("BfRead.ReadNum");
  120. MarkNativeAsOptional("BfRead.ReadFloat");
  121. MarkNativeAsOptional("BfRead.ReadString");
  122. MarkNativeAsOptional("BfRead.ReadEntity");
  123. MarkNativeAsOptional("BfRead.ReadAngle");
  124. MarkNativeAsOptional("BfRead.ReadCoord");
  125. MarkNativeAsOptional("BfRead.ReadVecCoord");
  126. MarkNativeAsOptional("BfRead.ReadVecNormal");
  127. MarkNativeAsOptional("BfRead.ReadAngles");
  128. MarkNativeAsOptional("BfRead.GetNumBytesLeft");
  129. MarkNativeAsOptional("PbReadInt");
  130. MarkNativeAsOptional("PbReadFloat");
  131. MarkNativeAsOptional("PbReadBool");
  132. MarkNativeAsOptional("PbReadString");
  133. MarkNativeAsOptional("PbReadColor");
  134. MarkNativeAsOptional("PbReadAngle");
  135. MarkNativeAsOptional("PbReadVector");
  136. MarkNativeAsOptional("PbReadVector2D");
  137. MarkNativeAsOptional("PbGetRepeatedFieldCount");
  138. MarkNativeAsOptional("PbSetInt");
  139. MarkNativeAsOptional("PbSetFloat");
  140. MarkNativeAsOptional("PbSetBool");
  141. MarkNativeAsOptional("PbSetString");
  142. MarkNativeAsOptional("PbSetColor");
  143. MarkNativeAsOptional("PbSetAngle");
  144. MarkNativeAsOptional("PbSetVector");
  145. MarkNativeAsOptional("PbSetVector2D");
  146. MarkNativeAsOptional("PbAddInt");
  147. MarkNativeAsOptional("PbAddFloat");
  148. MarkNativeAsOptional("PbAddBool");
  149. MarkNativeAsOptional("PbAddString");
  150. MarkNativeAsOptional("PbAddColor");
  151. MarkNativeAsOptional("PbAddAngle");
  152. MarkNativeAsOptional("PbAddVector");
  153. MarkNativeAsOptional("PbAddVector2D");
  154. MarkNativeAsOptional("PbRemoveRepeatedFieldValue");
  155. MarkNativeAsOptional("PbReadMessage");
  156. MarkNativeAsOptional("PbReadRepeatedMessage");
  157. MarkNativeAsOptional("PbAddMessage");
  158. MarkNativeAsOptional("Protobuf.ReadInt");
  159. MarkNativeAsOptional("Protobuf.ReadFloat");
  160. MarkNativeAsOptional("Protobuf.ReadBool");
  161. MarkNativeAsOptional("Protobuf.ReadString");
  162. MarkNativeAsOptional("Protobuf.ReadColor");
  163. MarkNativeAsOptional("Protobuf.ReadAngle");
  164. MarkNativeAsOptional("Protobuf.ReadVector");
  165. MarkNativeAsOptional("Protobuf.ReadVector2D");
  166. MarkNativeAsOptional("Protobuf.GetRepeatedFieldCount");
  167. MarkNativeAsOptional("Protobuf.SetInt");
  168. MarkNativeAsOptional("Protobuf.SetFloat");
  169. MarkNativeAsOptional("Protobuf.SetBool");
  170. MarkNativeAsOptional("Protobuf.SetString");
  171. MarkNativeAsOptional("Protobuf.SetColor");
  172. MarkNativeAsOptional("Protobuf.SetAngle");
  173. MarkNativeAsOptional("Protobuf.SetVector");
  174. MarkNativeAsOptional("Protobuf.SetVector2D");
  175. MarkNativeAsOptional("Protobuf.AddInt");
  176. MarkNativeAsOptional("Protobuf.AddFloat");
  177. MarkNativeAsOptional("Protobuf.AddBool");
  178. MarkNativeAsOptional("Protobuf.AddString");
  179. MarkNativeAsOptional("Protobuf.AddColor");
  180. MarkNativeAsOptional("Protobuf.AddAngle");
  181. MarkNativeAsOptional("Protobuf.AddVector");
  182. MarkNativeAsOptional("Protobuf.AddVector2D");
  183. MarkNativeAsOptional("Protobuf.RemoveRepeatedFieldValue");
  184. MarkNativeAsOptional("Protobuf.ReadMessage");
  185. MarkNativeAsOptional("Protobuf.ReadRepeatedMessage");
  186. MarkNativeAsOptional("Protobuf.AddMessage");
  187. VerifyCoreVersion();
  188. return void:0;
  189. }
  190.  
  191. public .2920.StrEqual(String:str1[], String:str2[], bool:caseSensitive)
  192. {
  193. return strcmp(str1, str2, caseSensitive) == 0;
  194. }
  195.  
  196. public .2920.StrEqual(String:str1[], String:str2[], bool:caseSensitive)
  197. {
  198. return strcmp(str1, str2, caseSensitive) == 0;
  199. }
  200.  
  201. public .2972.StrCat(String:buffer[], maxlength, String:source[])
  202. {
  203. new len = strlen(buffer);
  204. if (len >= maxlength)
  205. {
  206. return 0;
  207. }
  208. return Format(buffer[len], maxlength - len, "%s", source);
  209. }
  210.  
  211. public .2972.StrCat(String:buffer[], maxlength, String:source[])
  212. {
  213. new len = strlen(buffer);
  214. if (len >= maxlength)
  215. {
  216. return 0;
  217. }
  218. return Format(buffer[len], maxlength - len, "%s", source);
  219. }
  220.  
  221. public .3148.ExplodeString(String:text[], String:split[], String:buffers[][], maxStrings, maxStringLength, bool:copyRemainder)
  222. {
  223. new reloc_idx;
  224. new idx;
  225. new total;
  226. new var1;
  227. if (maxStrings < 1 || !split[0])
  228. {
  229. return 0;
  230. }
  231. while ((idx = SplitString(text[reloc_idx], split, buffers[total], maxStringLength)) != -1)
  232. {
  233. reloc_idx = idx + reloc_idx;
  234. total++;
  235. if (maxStrings == total)
  236. {
  237. if (copyRemainder)
  238. {
  239. strcopy(buffers[total + -1], maxStringLength, text[reloc_idx - idx]);
  240. }
  241. return total;
  242. }
  243. }
  244. total++;
  245. strcopy(buffers[total], maxStringLength, text[reloc_idx]);
  246. return total;
  247. }
  248.  
  249. public .3148.ExplodeString(String:text[], String:split[], String:buffers[][], maxStrings, maxStringLength, bool:copyRemainder)
  250. {
  251. new reloc_idx;
  252. new idx;
  253. new total;
  254. new var1;
  255. if (maxStrings < 1 || !split[0])
  256. {
  257. return 0;
  258. }
  259. while ((idx = SplitString(text[reloc_idx], split, buffers[total], maxStringLength)) != -1)
  260. {
  261. reloc_idx = idx + reloc_idx;
  262. total++;
  263. if (maxStrings == total)
  264. {
  265. if (copyRemainder)
  266. {
  267. strcopy(buffers[total + -1], maxStringLength, text[reloc_idx - idx]);
  268. }
  269. return total;
  270. }
  271. }
  272. total++;
  273. strcopy(buffers[total], maxStringLength, text[reloc_idx]);
  274. return total;
  275. }
  276.  
  277. public .3752.CanTestFeatures()
  278. {
  279. return LibraryExists("__CanTestFeatures__");
  280. }
  281.  
  282. public .3752.CanTestFeatures()
  283. {
  284. return LibraryExists("__CanTestFeatures__");
  285. }
  286.  
  287. public .3788.hCSGO_CountChar(String:Buffer[], Char)
  288. {
  289. static m_Iterator;
  290. static m_Count;
  291. m_Count = 0;
  292. m_Iterator = 0;
  293. while (strlen(Buffer) > m_Iterator)
  294. {
  295. if (Char == Buffer[m_Iterator])
  296. {
  297. m_Count += 1;
  298. }
  299. m_Iterator += 1;
  300. }
  301. return m_Count;
  302. }
  303.  
  304. public .3788.hCSGO_CountChar(String:Buffer[], Char)
  305. {
  306. static m_Iterator;
  307. static m_Count;
  308. m_Count = 0;
  309. m_Iterator = 0;
  310. while (strlen(Buffer) > m_Iterator)
  311. {
  312. if (Char == Buffer[m_Iterator])
  313. {
  314. m_Count += 1;
  315. }
  316. m_Iterator += 1;
  317. }
  318. return m_Count;
  319. }
  320.  
  321. public .3980.hCSGO_GetCharPosByOccNo(String:Buffer[], Char, Number)
  322. {
  323. static m_Iterator;
  324. static m_Occurrences;
  325. m_Iterator = 0;
  326. m_Occurrences = 0;
  327. while (strlen(Buffer) > m_Iterator)
  328. {
  329. if (Char == Buffer[m_Iterator])
  330. {
  331. m_Occurrences += 1;
  332. if (Number == m_Occurrences)
  333. {
  334. return m_Iterator;
  335. }
  336. }
  337. m_Iterator += 1;
  338. }
  339. return -1;
  340. }
  341.  
  342. public .3980.hCSGO_GetCharPosByOccNo(String:Buffer[], Char, Number)
  343. {
  344. static m_Iterator;
  345. static m_Occurrences;
  346. m_Iterator = 0;
  347. m_Occurrences = 0;
  348. while (strlen(Buffer) > m_Iterator)
  349. {
  350. if (Char == Buffer[m_Iterator])
  351. {
  352. m_Occurrences += 1;
  353. if (Number == m_Occurrences)
  354. {
  355. return m_Iterator;
  356. }
  357. }
  358. m_Iterator += 1;
  359. }
  360. return -1;
  361. }
  362.  
  363. public .4216.hCSGO_PureChatCommand(String:Input[], String:Output[], Size)
  364. {
  365. static m_Length;
  366. static m_Iterator;
  367. m_Iterator = 0;
  368. m_Length = 0;
  369. Output[0] = MissingTAG:0;
  370. while (strlen(Input) > m_Iterator)
  371. {
  372. new var1;
  373. if (Input[m_Iterator] == '!' || Input[m_Iterator] == '/' || IsCharAlpha(Input[m_Iterator]) || IsCharNumeric(Input[m_Iterator]))
  374. {
  375. m_Length = Format(Output, Size, "%s%c", Output, Input[m_Iterator]);
  376. }
  377. m_Iterator += 1;
  378. }
  379. return m_Length;
  380. }
  381.  
  382. public .4216.hCSGO_PureChatCommand(String:Input[], String:Output[], Size)
  383. {
  384. static m_Length;
  385. static m_Iterator;
  386. m_Iterator = 0;
  387. m_Length = 0;
  388. Output[0] = MissingTAG:0;
  389. while (strlen(Input) > m_Iterator)
  390. {
  391. new var1;
  392. if (Input[m_Iterator] == '!' || Input[m_Iterator] == '/' || IsCharAlpha(Input[m_Iterator]) || IsCharNumeric(Input[m_Iterator]))
  393. {
  394. m_Length = Format(Output, Size, "%s%c", Output, Input[m_Iterator]);
  395. }
  396. m_Iterator += 1;
  397. }
  398. return m_Length;
  399. }
  400.  
  401. public .4672.hCSGO_ExtractSteamID(String:Input[], String:Output[], Size)
  402. {
  403. static String:m_Patterns[4][48] =
  404. {
  405. "STEAM_0:0:",
  406. "STEAM_0:1:",
  407. "STEAM_1:0:",
  408. "STEAM_1:1:"
  409. };
  410. static m_Length;
  411. static m_Iterator;
  412. m_Iterator = 0;
  413. m_Length = FormatEx(Output, Size, Input);
  414. while (m_Iterator < 4)
  415. {
  416. m_Length = ReplaceString(Output, Size, m_Patterns[m_Iterator], "", false);
  417. m_Iterator += 1;
  418. }
  419. return m_Length;
  420. }
  421.  
  422. public .4672.hCSGO_ExtractSteamID(String:Input[], String:Output[], Size)
  423. {
  424. static String:m_Patterns[4][48] =
  425. {
  426. "STEAM_0:0:",
  427. "STEAM_0:1:",
  428. "STEAM_1:0:",
  429. "STEAM_1:1:"
  430. };
  431. static m_Length;
  432. static m_Iterator;
  433. m_Iterator = 0;
  434. m_Length = FormatEx(Output, Size, Input);
  435. while (m_Iterator < 4)
  436. {
  437. m_Length = ReplaceString(Output, Size, m_Patterns[m_Iterator], "", false);
  438. m_Iterator += 1;
  439. }
  440. return m_Length;
  441. }
  442.  
  443. public .4912.hCSGO_IsWarmup()
  444. {
  445. new var1;
  446. if (GameRules_GetProp("m_bWarmupPeriod", 4, 0))
  447. {
  448. var1 = 1;
  449. }
  450. else
  451. {
  452. var1 = 0;
  453. }
  454. return var1;
  455. }
  456.  
  457. public .4912.hCSGO_IsWarmup()
  458. {
  459. new var1;
  460. if (GameRules_GetProp("m_bWarmupPeriod", 4, 0))
  461. {
  462. var1 = 1;
  463. }
  464. else
  465. {
  466. var1 = 0;
  467. }
  468. return var1;
  469. }
  470.  
  471. public .4984.__IsClientVIP(iId)
  472. {
  473. new var1;
  474. if (.3752.CanTestFeatures() && GetFeatureStatus(FeatureType:0, "IsClientVIP") && IsClientVIP(iId))
  475. {
  476. var2 = 1;
  477. }
  478. else
  479. {
  480. var2 = 0;
  481. }
  482. return var2;
  483. }
  484.  
  485. public .4984.__IsClientVIP(iId)
  486. {
  487. new var1;
  488. if (.3752.CanTestFeatures() && GetFeatureStatus(FeatureType:0, "IsClientVIP") && IsClientVIP(iId))
  489. {
  490. var2 = 1;
  491. }
  492. else
  493. {
  494. var2 = 0;
  495. }
  496. return var2;
  497. }
  498.  
  499. public .5132.__IsGoldMember(iId)
  500. {
  501. new var1;
  502. if (.3752.CanTestFeatures() && GetFeatureStatus(FeatureType:0, "IsGoldMember") && IsGoldMember(iId))
  503. {
  504. var2 = 1;
  505. }
  506. else
  507. {
  508. var2 = 0;
  509. }
  510. return var2;
  511. }
  512.  
  513. public .5132.__IsGoldMember(iId)
  514. {
  515. new var1;
  516. if (.3752.CanTestFeatures() && GetFeatureStatus(FeatureType:0, "IsGoldMember") && IsGoldMember(iId))
  517. {
  518. var2 = 1;
  519. }
  520. else
  521. {
  522. var2 = 0;
  523. }
  524. return var2;
  525. }
  526.  
  527. public .5280.ReplaceColors(String:szBuffer[], iSize)
  528. {
  529. static String:pName[14][0];
  530. static String:pCode[14][16] =
  531. {
  532. "\x01",
  533. "\x02",
  534. "\x03",
  535. "\x04",
  536. "\x05",
  537. "",
  538. "\x07",
  539. "\x08",
  540. " ",
  541. "",
  542. " ",
  543. " ",
  544. "",
  545. ""
  546. };
  547. static iIter;
  548. iIter = 0;
  549. while (iIter < 14)
  550. {
  551. ReplaceString(szBuffer, iSize, pName[iIter], pCode[iIter], false);
  552. iIter += 1;
  553. }
  554. return 0;
  555. }
  556.  
  557. public .5280.ReplaceColors(String:szBuffer[], iSize)
  558. {
  559. static String:pName[14][0];
  560. static String:pCode[14][16] =
  561. {
  562. "\x01",
  563. "\x02",
  564. "\x03",
  565. "\x04",
  566. "\x05",
  567. "",
  568. "\x07",
  569. "\x08",
  570. " ",
  571. "",
  572. " ",
  573. " ",
  574. "",
  575. ""
  576. };
  577. static iIter;
  578. iIter = 0;
  579. while (iIter < 14)
  580. {
  581. ReplaceString(szBuffer, iSize, pName[iIter], pCode[iIter], false);
  582. iIter += 1;
  583. }
  584. return 0;
  585. }
  586.  
  587. public void:OnClientPutInServer(iId)
  588. {
  589. new var1;
  590. if (iId >= 1 && iId <= MaxClients)
  591. {
  592. g_bInGame[iId] = 1;
  593. }
  594. return void:0;
  595. }
  596.  
  597. public void:OnClientDisconnect(iId)
  598. {
  599. new var1;
  600. if (iId >= 1 && iId <= MaxClients)
  601. {
  602. g_bInGame[iId] = 0;
  603. }
  604. return void:0;
  605. }
  606.  
  607. public void:OnMapEnd()
  608. {
  609. static iId = -1;
  610. iId = 1;
  611. while (iId <= MaxClients)
  612. {
  613. g_bInGame[iId] = 0;
  614. iId += 1;
  615. }
  616. return void:0;
  617. }
  618.  
  619. public Action:CommandSay(Client, Args)
  620. {
  621. static String:Raw[256];
  622. static String:Command[256];
  623. new var1;
  624. if (Client >= 1 && Client <= MaxClients && .15308.__IsClientInGame(Client))
  625. {
  626. GetCmdArgString(Raw, 256);
  627. if (.4216.hCSGO_PureChatCommand(Raw, Command, 256) >= 2)
  628. {
  629. new var2;
  630. if (!strcmp(Command, "CTag", false) || !strcmp(3804 + 1, "CTag", false) || !strcmp(Command, "CHATTag", false) || !strcmp(3804 + 1, "CHATTag", false))
  631. {
  632. CreateTimer(GetRandomFloat(0.25, 0.275), Timer_AskClient, Client, 2);
  633. }
  634. }
  635. }
  636. return Action:0;
  637. }
  638.  
  639. public .6440.StripColors(String:szBuffer[], iSize)
  640. {
  641. static String:pName[14][0];
  642. static String:pCode[14][16] =
  643. {
  644. "\x01",
  645. "\x02",
  646. "\x03",
  647. "\x04",
  648. "\x05",
  649. "",
  650. "\x07",
  651. "\x08",
  652. " ",
  653. "",
  654. " ",
  655. " ",
  656. "",
  657. ""
  658. };
  659. static iIter;
  660. iIter = 0;
  661. while (iIter < 14)
  662. {
  663. ReplaceString(szBuffer, iSize, pName[iIter], "", false);
  664. iIter += 1;
  665. }
  666. iIter = 0;
  667. while (iIter < 14)
  668. {
  669. ReplaceString(szBuffer, iSize, pCode[iIter], "", false);
  670. iIter += 1;
  671. }
  672. return 0;
  673. }
  674.  
  675. public .6440.StripColors(String:szBuffer[], iSize)
  676. {
  677. static String:pName[14][0];
  678. static String:pCode[14][16] =
  679. {
  680. "\x01",
  681. "\x02",
  682. "\x03",
  683. "\x04",
  684. "\x05",
  685. "",
  686. "\x07",
  687. "\x08",
  688. " ",
  689. "",
  690. " ",
  691. " ",
  692. "",
  693. ""
  694. };
  695. static iIter;
  696. iIter = 0;
  697. while (iIter < 14)
  698. {
  699. ReplaceString(szBuffer, iSize, pName[iIter], "", false);
  700. iIter += 1;
  701. }
  702. iIter = 0;
  703. while (iIter < 14)
  704. {
  705. ReplaceString(szBuffer, iSize, pCode[iIter], "", false);
  706. iIter += 1;
  707. }
  708. return 0;
  709. }
  710.  
  711. public void:OnPluginStart()
  712. {
  713. new UserMsg:pMsgID = GetUserMessageId("SayText2");
  714. if (pMsgID != UserMsg:-1)
  715. {
  716. HookUserMessage(pMsgID, OnMsg, true, MsgPostHook:-1);
  717. }
  718. g_pGroups = CreateArray(256, 0);
  719. g_pTags = CreateArray(256, 0);
  720. HookEventEx("round_freeze_end", OnRoundFreezeEnd, EventHookMode:1);
  721. RegConsoleCmd("say", CommandSay, "", 0);
  722. RegConsoleCmd("say_team", CommandSay, "", 0);
  723. g_pCookie = RegClientCookie("ChatTagOption", "Provides a chat tag option.", CookieAccess:2);
  724. CreateTimer(1.0, Timer_Audio, any:0, 1);
  725. return void:0;
  726. }
  727.  
  728. public Action:Timer_Audio(Handle:pTimer, any:_Data)
  729. {
  730. static iOwner = -1;
  731. static iFlags;
  732. static iTeam;
  733. if (!.4912.hCSGO_IsWarmup())
  734. {
  735. iOwner = 1;
  736. while (iOwner <= MaxClients)
  737. {
  738. new var1;
  739. if (.15308.__IsClientInGame(iOwner) && GetUserFlagBits(iOwner) & 16384)
  740. {
  741. iTeam = GetClientTeam(iOwner);
  742. iFlags = GetClientListeningFlags(iOwner);
  743. if (!iFlags & 4)
  744. {
  745. iFlags = iFlags | 4;
  746. }
  747. if (iTeam == 1)
  748. {
  749. if (!iFlags & 2)
  750. {
  751. iFlags = iFlags | 2;
  752. SetClientListeningFlags(iOwner, iFlags);
  753. }
  754. }
  755. if (iTeam)
  756. {
  757. if (iFlags & 2)
  758. {
  759. iFlags = iFlags & -3;
  760. SetClientListeningFlags(iOwner, iFlags);
  761. }
  762. }
  763. }
  764. iOwner += 1;
  765. }
  766. }
  767. return Action:0;
  768. }
  769.  
  770. public .7824.HasCustomChatTag(iId, String:szTag[], iTagSize, String:szGroupTag[], iGroupTagSize)
  771. {
  772. static iIter;
  773. static String:szSteam[256];
  774. static String:szToken[256];
  775. static String:szGroup[256];
  776. static AdminId:pId = -1;
  777. FormatEx(szTag, iTagSize, "");
  778. FormatEx(szGroupTag, iGroupTagSize, "");
  779. GetClientAuthId(iId, AuthIdType:0, szSteam, 256, true);
  780. .4672.hCSGO_ExtractSteamID(szSteam, szSteam, 256);
  781. iIter = 0;
  782. while (GetArraySize(g_pGroups) > iIter)
  783. {
  784. GetArrayString(g_pGroups, iIter, szToken, 256);
  785. new var1;
  786. if (strcmp(szToken, szSteam, true) && StrContains(szToken, szSteam, true) == -1 && StrContains(szSteam, szToken, true) == -1)
  787. {
  788. GetArrayString(g_pTags, iIter, szTag, iTagSize);
  789. .6440.StripColors(szTag, iTagSize);
  790. pId = GetUserAdmin(iId);
  791. if (pId != AdminId:-1)
  792. {
  793. if (0 < GetAdminGroupCount(pId))
  794. {
  795. GetAdminGroup(pId, 0, szGroup, 256);
  796. iIter = 0;
  797. while (GetArraySize(g_pGroups) > iIter)
  798. {
  799. GetArrayString(g_pGroups, iIter, szToken, 256);
  800. if (!(strcmp(szToken, szGroup, false)))
  801. {
  802. GetArrayString(g_pTags, iIter, szGroupTag, iGroupTagSize);
  803. .6440.StripColors(szGroupTag, iGroupTagSize);
  804. }
  805. iIter += 1;
  806. }
  807. }
  808. }
  809. return strlen(szTag);
  810. }
  811. iIter += 1;
  812. }
  813. pId = GetUserAdmin(iId);
  814. if (pId != AdminId:-1)
  815. {
  816. if (0 < GetAdminGroupCount(pId))
  817. {
  818. GetAdminGroup(pId, 0, szGroup, 256);
  819. iIter = 0;
  820. while (GetArraySize(g_pGroups) > iIter)
  821. {
  822. GetArrayString(g_pGroups, iIter, szToken, 256);
  823. if (!(strcmp(szToken, szGroup, false)))
  824. {
  825. GetArrayString(g_pTags, iIter, szGroupTag, iGroupTagSize);
  826. .6440.StripColors(szGroupTag, iGroupTagSize);
  827. }
  828. iIter += 1;
  829. }
  830. }
  831. }
  832. return strlen(szTag);
  833. }
  834.  
  835. public .7824.HasCustomChatTag(iId, String:szTag[], iTagSize, String:szGroupTag[], iGroupTagSize)
  836. {
  837. static iIter;
  838. static String:szSteam[256];
  839. static String:szToken[256];
  840. static String:szGroup[256];
  841. static AdminId:pId = -1;
  842. FormatEx(szTag, iTagSize, "");
  843. FormatEx(szGroupTag, iGroupTagSize, "");
  844. GetClientAuthId(iId, AuthIdType:0, szSteam, 256, true);
  845. .4672.hCSGO_ExtractSteamID(szSteam, szSteam, 256);
  846. iIter = 0;
  847. while (GetArraySize(g_pGroups) > iIter)
  848. {
  849. GetArrayString(g_pGroups, iIter, szToken, 256);
  850. new var1;
  851. if (strcmp(szToken, szSteam, true) && StrContains(szToken, szSteam, true) == -1 && StrContains(szSteam, szToken, true) == -1)
  852. {
  853. GetArrayString(g_pTags, iIter, szTag, iTagSize);
  854. .6440.StripColors(szTag, iTagSize);
  855. pId = GetUserAdmin(iId);
  856. if (pId != AdminId:-1)
  857. {
  858. if (0 < GetAdminGroupCount(pId))
  859. {
  860. GetAdminGroup(pId, 0, szGroup, 256);
  861. iIter = 0;
  862. while (GetArraySize(g_pGroups) > iIter)
  863. {
  864. GetArrayString(g_pGroups, iIter, szToken, 256);
  865. if (!(strcmp(szToken, szGroup, false)))
  866. {
  867. GetArrayString(g_pTags, iIter, szGroupTag, iGroupTagSize);
  868. .6440.StripColors(szGroupTag, iGroupTagSize);
  869. }
  870. iIter += 1;
  871. }
  872. }
  873. }
  874. return strlen(szTag);
  875. }
  876. iIter += 1;
  877. }
  878. pId = GetUserAdmin(iId);
  879. if (pId != AdminId:-1)
  880. {
  881. if (0 < GetAdminGroupCount(pId))
  882. {
  883. GetAdminGroup(pId, 0, szGroup, 256);
  884. iIter = 0;
  885. while (GetArraySize(g_pGroups) > iIter)
  886. {
  887. GetArrayString(g_pGroups, iIter, szToken, 256);
  888. if (!(strcmp(szToken, szGroup, false)))
  889. {
  890. GetArrayString(g_pTags, iIter, szGroupTag, iGroupTagSize);
  891. .6440.StripColors(szGroupTag, iGroupTagSize);
  892. }
  893. iIter += 1;
  894. }
  895. }
  896. }
  897. return strlen(szTag);
  898. }
  899.  
  900. public Menu_ChatTagOption(Handle:pMenu, MenuAction:pAction, iId, iOption)
  901. {
  902. static String:szInfo[256];
  903. static String:szDisplay[256];
  904. static iFlags;
  905. new var1;
  906. if (pAction == MenuAction:4 && .15308.__IsClientInGame(iId))
  907. {
  908. GetMenuItem(pMenu, iOption, szInfo, 256, iFlags, szDisplay, 256);
  909. switch (StringToInt(szInfo, 10))
  910. {
  911. case 1:
  912. {
  913. SetClientCookie(iId, g_pCookie, "1");
  914. PrintToChat(iId, ">> You Selected\x04 %s", szDisplay);
  915. }
  916. case 2:
  917. {
  918. SetClientCookie(iId, g_pCookie, "2");
  919. PrintToChat(iId, ">> You Selected\x04 %s", szDisplay);
  920. }
  921. case 3:
  922. {
  923. SetClientCookie(iId, g_pCookie, "3");
  924. PrintToChat(iId, ">> You Selected\x04 %s", szDisplay);
  925. }
  926. case 4:
  927. {
  928. SetClientCookie(iId, g_pCookie, "4");
  929. PrintToChat(iId, ">> You Selected\x04 %s", szDisplay);
  930. }
  931. case 5:
  932. {
  933. SetClientCookie(iId, g_pCookie, "5");
  934. PrintToChat(iId, ">> You Selected\x04 %s", szDisplay);
  935. }
  936. default:
  937. {
  938. }
  939. }
  940. PrintToChat(iId, ">> To Open The Menu Again\x07 !CTag\x01/\x07 !CHATTag");
  941. }
  942. else
  943. {
  944. new var2;
  945. if (pAction == MenuAction:16 && pMenu)
  946. {
  947. CloseHandle(pMenu);
  948. pMenu = MissingTAG:0;
  949. }
  950. }
  951. return 0;
  952. }
  953.  
  954. public Action:Timer_AskClient(Handle:pTimer, any:iId)
  955. {
  956. static Handle:pMenu;
  957. static String:szTag[256];
  958. static String:szGroupTag[256];
  959. if (.15308.__IsClientInGame(iId))
  960. {
  961. if (!(.7824.HasCustomChatTag(iId, szTag, 256, szGroupTag, 256) > 0))
  962. {
  963. }
  964. pMenu = CreateMenu(Menu_ChatTagOption, MenuAction:28);
  965. SetMenuTitle(pMenu, "★ CHAT TAG ★ (!CTag/ !CHATTag)");
  966. AddMenuItem(pMenu, "5", "NO, THANKS!", 0);
  967. if (.4984.__IsClientVIP(iId))
  968. {
  969. AddMenuItem(pMenu, "1", "VIP★", 0);
  970. }
  971. if (.5132.__IsGoldMember(iId))
  972. {
  973. AddMenuItem(pMenu, "2", "Gold Member®", 0);
  974. }
  975. if (0 < strlen(szGroupTag))
  976. {
  977. AddMenuItem(pMenu, "3", szGroupTag, 0);
  978. }
  979. if (0 < strlen(szTag))
  980. {
  981. AddMenuItem(pMenu, "4", szTag, 0);
  982. }
  983. DisplayMenu(pMenu, iId, 0);
  984. }
  985. return Action:0;
  986. }
  987.  
  988. public void:OnRoundFreezeEnd(Handle:E, String:N[], bool:NB)
  989. {
  990. static iId = -1;
  991. static iValue;
  992. static iGroupCount;
  993. static AdminId:pId = -1;
  994. static Handle:pMenu;
  995. static String:szTag[256];
  996. static String:szGroupTag[256];
  997. static String:szValue[32];
  998. static bool:bHasCustomChatTag;
  999. iId = 1;
  1000. while (iId <= MaxClients)
  1001. {
  1002. new var1;
  1003. if (.15308.__IsClientInGame(iId) && !IsFakeClient(iId) && GetClientTime(iId) >= 60.0 && !.4912.hCSGO_IsWarmup())
  1004. {
  1005. GetClientCookie(iId, g_pCookie, szValue, 32);
  1006. iValue = StringToInt(szValue, 10);
  1007. pId = GetUserAdmin(iId);
  1008. new var2;
  1009. if (.7824.HasCustomChatTag(iId, szTag, 256, szGroupTag, 256) > 0)
  1010. {
  1011. var2 = 1;
  1012. }
  1013. else
  1014. {
  1015. var2 = 0;
  1016. }
  1017. bHasCustomChatTag = var2;
  1018. if (pId != AdminId:-1)
  1019. {
  1020. iGroupCount = GetAdminGroupCount(pId);
  1021. }
  1022. else
  1023. {
  1024. iGroupCount = 0;
  1025. }
  1026. new var8;
  1027. if (iValue && (iValue == 4 && !bHasCustomChatTag) && (iValue == 2 && !.5132.__IsGoldMember(iId)) && (iValue == 1 && !.4984.__IsClientVIP(iId)) && (iValue == 3 && (pId == AdminId:-1 || iGroupCount < 1)))
  1028. {
  1029. new var9;
  1030. if ((pId != AdminId:-1 && iGroupCount > 0) || (.4984.__IsClientVIP(iId) || .5132.__IsGoldMember(iId) || bHasCustomChatTag))
  1031. {
  1032. pMenu = CreateMenu(Menu_ChatTagOption, MenuAction:28);
  1033. SetMenuTitle(pMenu, "★ CHAT TAG ★ (!CTag/ !CHATTag)");
  1034. AddMenuItem(pMenu, "5", "NO, THANKS!", 0);
  1035. if (.4984.__IsClientVIP(iId))
  1036. {
  1037. AddMenuItem(pMenu, "1", "VIP★", 0);
  1038. }
  1039. if (.5132.__IsGoldMember(iId))
  1040. {
  1041. AddMenuItem(pMenu, "2", "Gold Member®", 0);
  1042. }
  1043. if (0 < strlen(szGroupTag))
  1044. {
  1045. AddMenuItem(pMenu, "3", szGroupTag, 0);
  1046. }
  1047. if (0 < strlen(szTag))
  1048. {
  1049. AddMenuItem(pMenu, "4", szTag, 0);
  1050. }
  1051. DisplayMenu(pMenu, iId, 0);
  1052. }
  1053. }
  1054. }
  1055. iId += 1;
  1056. }
  1057. return void:0;
  1058. }
  1059.  
  1060. public void:OnMapStart()
  1061. {
  1062. CreateTimer(60.0, Timer_Reload, any:0, 3);
  1063. CreateTimer(1.0, Timer_Reload, any:0, 2);
  1064. return void:0;
  1065. }
  1066.  
  1067. public Action:Timer_Reload(Handle:pTimer, any:_Data)
  1068. {
  1069. static iId = -1;
  1070. static String:szError[256];
  1071. static String:szSteam[256];
  1072. if (!g_pDb)
  1073. {
  1074. g_pDb = SQL_Connect("main_db", false, szError, 256);
  1075. if (g_pDb)
  1076. {
  1077. SQL_SetCharset(g_pDb, "utf8");
  1078. }
  1079. }
  1080. SQL_TQuery(g_pDb, Q_SelectData, "SELECT Steam, Tag, colorCode FROM sm_tags;", any:0, DBPriority:0);
  1081. iId = 1;
  1082. while (iId <= MaxClients)
  1083. {
  1084. if (.15308.__IsClientInGame(iId))
  1085. {
  1086. GetClientAuthId(iId, AuthIdType:0, szSteam, 256, true);
  1087. .4672.hCSGO_ExtractSteamID(szSteam, szSteam, 256);
  1088. FormatEx(g_Buffer, 256, "UPDATE sm_tags SET Stamp = %d WHERE Steam = '%s' LIMIT 1;", GetTime({0,0}), szSteam);
  1089. SQL_TQuery(g_pDb, Q_Empty, g_Buffer, any:0, DBPriority:2);
  1090. FormatEx(g_Buffer, 256, "UPDATE sm_music SET Stamp = %d WHERE Steam = '%s' LIMIT 1;", GetTime({0,0}), szSteam);
  1091. SQL_TQuery(g_pDb, Q_Empty, g_Buffer, any:0, DBPriority:2);
  1092. }
  1093. iId += 1;
  1094. }
  1095. return Action:0;
  1096. }
  1097.  
  1098. public void:Q_Empty(Handle:pOwner, Handle:pChild, String:szError[], any:_Data)
  1099. {
  1100. return void:0;
  1101. }
  1102.  
  1103.  
  1104. /* ERROR! null */
  1105. function "Q_SelectData" (number 41)
  1106. public APLRes:AskPluginLoad2(Handle:pSelf, bool:bLate, String:szError[], iMaxErrSize)
  1107. {
  1108. MarkNativeAsOptional("GetUserMessageType");
  1109. MarkNativeAsOptional("IsGoldMember");
  1110. MarkNativeAsOptional("IsClientVIP");
  1111. return APLRes:0;
  1112. }
  1113.  
  1114. public .15308.__IsClientInGame(iId)
  1115. {
  1116. return g_bInGame[iId];
  1117. }
  1118.  
  1119. public .15308.__IsClientInGame(iId)
  1120. {
  1121. return g_bInGame[iId];
  1122. }
  1123.  
  1124. public .15352.IsIntInIntArray(iId, pArray[], iSize)
  1125. {
  1126. static iIter;
  1127. iIter = 0;
  1128. while (iIter < iSize)
  1129. {
  1130. if (pArray[iIter] == iId)
  1131. {
  1132. return 1;
  1133. }
  1134. iIter += 1;
  1135. }
  1136. return 0;
  1137. }
  1138.  
  1139. public .15352.IsIntInIntArray(iId, pArray[], iSize)
  1140. {
  1141. static iIter;
  1142. iIter = 0;
  1143. while (iIter < iSize)
  1144. {
  1145. if (pArray[iIter] == iId)
  1146. {
  1147. return 1;
  1148. }
  1149. iIter += 1;
  1150. }
  1151. return 0;
  1152. }
  1153.  
  1154. public Action:OnMsg(UserMsg:pMsg, Handle:pData, pClients[], iClientsCount, bool:bReliable, bool:bINIT)
  1155. {
  1156. static AdminId:pId = -1;
  1157. static String:szSenderSteam[256];
  1158. static String:szSenderName[256];
  1159. static String:szMsg[256];
  1160. static String:szRules[256];
  1161. static String:szGroup[256];
  1162. static String:szToken[256];
  1163. static String:szTag[256];
  1164. static String:szValue[256];
  1165. static iValue;
  1166. static iSender = -1;
  1167. static iId = -1;
  1168. static iIter;
  1169. static iTeam;
  1170. static iPos;
  1171. static Handle:pPack;
  1172. static bool:bPB;
  1173. static bool:bChat;
  1174. new var1;
  1175. if (.3752.CanTestFeatures() && GetFeatureStatus(FeatureType:0, "GetUserMessageType") && GetUserMessageType() == 1)
  1176. {
  1177. var2 = 1;
  1178. }
  1179. else
  1180. {
  1181. var2 = 0;
  1182. }
  1183. bPB = var2;
  1184. if (bPB)
  1185. {
  1186. iSender = PbReadInt(pData, "ent_idx", -1);
  1187. }
  1188. else
  1189. {
  1190. iSender = BfReadByte(pData);
  1191. }
  1192. if (bPB)
  1193. {
  1194. bChat = PbReadBool(pData, "chat", -1);
  1195. }
  1196. else
  1197. {
  1198. new var3;
  1199. if (BfReadByte(pData))
  1200. {
  1201. var3 = 1;
  1202. }
  1203. else
  1204. {
  1205. var3 = 0;
  1206. }
  1207. bChat = var3;
  1208. }
  1209. if (bPB)
  1210. {
  1211. PbReadString(pData, "msg_name", szRules, 256, -1);
  1212. }
  1213. else
  1214. {
  1215. BfReadString(pData, szRules, 256, false);
  1216. }
  1217. if (bPB)
  1218. {
  1219. PbReadString(pData, "params", szSenderName, 256, 0);
  1220. }
  1221. else
  1222. {
  1223. if (BfGetNumBytesLeft(pData))
  1224. {
  1225. BfReadString(pData, szSenderName, 256, false);
  1226. }
  1227. }
  1228. if (bPB)
  1229. {
  1230. PbReadString(pData, "params", szMsg, 256, 1);
  1231. }
  1232. else
  1233. {
  1234. if (BfGetNumBytesLeft(pData))
  1235. {
  1236. BfReadString(pData, szMsg, 256, false);
  1237. }
  1238. }
  1239. new var4;
  1240. if (bChat && iSender >= 1 && iSender <= MaxClients && .15308.__IsClientInGame(iSender) && !IsFakeClient(iSender))
  1241. {
  1242. pId = GetUserAdmin(iSender);
  1243. iTeam = GetClientTeam(iSender);
  1244. GetClientCookie(iSender, g_pCookie, szValue, 256);
  1245. iValue = StringToInt(szValue, 10);
  1246. new var5;
  1247. if (iValue && iValue != 5)
  1248. {
  1249. GetClientAuthId(iSender, AuthIdType:0, szSenderSteam, 256, true);
  1250. .4672.hCSGO_ExtractSteamID(szSenderSteam, szSenderSteam, 256);
  1251. new var6;
  1252. if ((iPos = FindStringInArray(g_pGroups, szSenderSteam)) != -1 && iValue == 4)
  1253. {
  1254. GetArrayString(g_pTags, iPos, szTag, 256);
  1255. if (StrContains(szRules, "CStrike_Chat_T_Dead", false) != -1)
  1256. {
  1257. iIter = 0;
  1258. while (iIter < iClientsCount)
  1259. {
  1260. iId = pClients[iIter];
  1261. new var7;
  1262. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId))
  1263. {
  1264. pPack = CreateDataPack();
  1265. WritePackCell(pPack, iId);
  1266. WritePackString(pPack, "\x01 *DEAD*(T) %s %s\x01 : %s");
  1267. WritePackString(pPack, szTag);
  1268. WritePackString(pPack, szSenderName);
  1269. WritePackString(pPack, szMsg);
  1270. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1271. }
  1272. iIter += 1;
  1273. }
  1274. iIter = 1;
  1275. while (iIter <= MaxClients)
  1276. {
  1277. iId = iIter;
  1278. new var8;
  1279. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId) && GetUserFlagBits(iId) & 16384 && iTeam != GetClientTeam(iId) && iId != iSender && !.15352.IsIntInIntArray(iId, pClients, iClientsCount))
  1280. {
  1281. pPack = CreateDataPack();
  1282. WritePackCell(pPack, iId);
  1283. WritePackString(pPack, "\x01 *DEAD*(T) %s %s\x01 : %s");
  1284. WritePackString(pPack, szTag);
  1285. WritePackString(pPack, szSenderName);
  1286. WritePackString(pPack, szMsg);
  1287. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1288. }
  1289. iIter += 1;
  1290. }
  1291. return Action:4;
  1292. }
  1293. if (StrContains(szRules, "CStrike_Chat_T", false) != -1)
  1294. {
  1295. iIter = 0;
  1296. while (iIter < iClientsCount)
  1297. {
  1298. iId = pClients[iIter];
  1299. new var9;
  1300. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId))
  1301. {
  1302. pPack = CreateDataPack();
  1303. WritePackCell(pPack, iId);
  1304. WritePackString(pPack, "\x01 (T) %s %s\x01 : %s");
  1305. WritePackString(pPack, szTag);
  1306. WritePackString(pPack, szSenderName);
  1307. WritePackString(pPack, szMsg);
  1308. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1309. }
  1310. iIter += 1;
  1311. }
  1312. iIter = 1;
  1313. while (iIter <= MaxClients)
  1314. {
  1315. iId = iIter;
  1316. new var10;
  1317. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId) && GetUserFlagBits(iId) & 16384 && iTeam != GetClientTeam(iId) && iId != iSender && !.15352.IsIntInIntArray(iId, pClients, iClientsCount))
  1318. {
  1319. pPack = CreateDataPack();
  1320. WritePackCell(pPack, iId);
  1321. WritePackString(pPack, "\x01 (T) %s %s\x01 : %s");
  1322. WritePackString(pPack, szTag);
  1323. WritePackString(pPack, szSenderName);
  1324. WritePackString(pPack, szMsg);
  1325. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1326. }
  1327. iIter += 1;
  1328. }
  1329. return Action:4;
  1330. }
  1331. if (StrContains(szRules, "CStrike_Chat_CT_Dead", false) != -1)
  1332. {
  1333. iIter = 0;
  1334. while (iIter < iClientsCount)
  1335. {
  1336. iId = pClients[iIter];
  1337. new var11;
  1338. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId))
  1339. {
  1340. pPack = CreateDataPack();
  1341. WritePackCell(pPack, iId);
  1342. WritePackString(pPack, "\x01 *DEAD*(CT) %s %s\x01 : %s");
  1343. WritePackString(pPack, szTag);
  1344. WritePackString(pPack, szSenderName);
  1345. WritePackString(pPack, szMsg);
  1346. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1347. }
  1348. iIter += 1;
  1349. }
  1350. iIter = 1;
  1351. while (iIter <= MaxClients)
  1352. {
  1353. iId = iIter;
  1354. new var12;
  1355. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId) && GetUserFlagBits(iId) & 16384 && iTeam != GetClientTeam(iId) && iId != iSender && !.15352.IsIntInIntArray(iId, pClients, iClientsCount))
  1356. {
  1357. pPack = CreateDataPack();
  1358. WritePackCell(pPack, iId);
  1359. WritePackString(pPack, "\x01 *DEAD*(CT) %s %s\x01 : %s");
  1360. WritePackString(pPack, szTag);
  1361. WritePackString(pPack, szSenderName);
  1362. WritePackString(pPack, szMsg);
  1363. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1364. }
  1365. iIter += 1;
  1366. }
  1367. return Action:4;
  1368. }
  1369. if (StrContains(szRules, "CStrike_Chat_CT", false) != -1)
  1370. {
  1371. iIter = 0;
  1372. while (iIter < iClientsCount)
  1373. {
  1374. iId = pClients[iIter];
  1375. new var13;
  1376. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId))
  1377. {
  1378. pPack = CreateDataPack();
  1379. WritePackCell(pPack, iId);
  1380. WritePackString(pPack, "\x01 (CT) %s %s\x01 : %s");
  1381. WritePackString(pPack, szTag);
  1382. WritePackString(pPack, szSenderName);
  1383. WritePackString(pPack, szMsg);
  1384. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1385. }
  1386. iIter += 1;
  1387. }
  1388. iIter = 1;
  1389. while (iIter <= MaxClients)
  1390. {
  1391. iId = iIter;
  1392. new var14;
  1393. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId) && GetUserFlagBits(iId) & 16384 && iTeam != GetClientTeam(iId) && iId != iSender && !.15352.IsIntInIntArray(iId, pClients, iClientsCount))
  1394. {
  1395. pPack = CreateDataPack();
  1396. WritePackCell(pPack, iId);
  1397. WritePackString(pPack, "\x01 (CT) %s %s\x01 : %s");
  1398. WritePackString(pPack, szTag);
  1399. WritePackString(pPack, szSenderName);
  1400. WritePackString(pPack, szMsg);
  1401. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1402. }
  1403. iIter += 1;
  1404. }
  1405. return Action:4;
  1406. }
  1407. if (StrContains(szRules, "CStrike_Chat_AllDead", false) != -1)
  1408. {
  1409. iIter = 0;
  1410. while (iIter < iClientsCount)
  1411. {
  1412. iId = pClients[iIter];
  1413. new var15;
  1414. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId))
  1415. {
  1416. pPack = CreateDataPack();
  1417. WritePackCell(pPack, iId);
  1418. new var16;
  1419. if (iTeam == 3)
  1420. {
  1421. var16[0] = 16832;
  1422. }
  1423. else
  1424. {
  1425. var16[0] = 16856;
  1426. }
  1427. WritePackString(pPack, var16);
  1428. WritePackString(pPack, szTag);
  1429. WritePackString(pPack, szSenderName);
  1430. WritePackString(pPack, szMsg);
  1431. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1432. }
  1433. iIter += 1;
  1434. }
  1435. return Action:4;
  1436. }
  1437. if (StrContains(szRules, "CStrike_Chat_AllSpec", false) != -1)
  1438. {
  1439. iIter = 0;
  1440. while (iIter < iClientsCount)
  1441. {
  1442. iId = pClients[iIter];
  1443. new var17;
  1444. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId))
  1445. {
  1446. pPack = CreateDataPack();
  1447. WritePackCell(pPack, iId);
  1448. WritePackString(pPack, "\x01 \x08*SPEC* %s\x08 %s\x01 : %s");
  1449. WritePackString(pPack, szTag);
  1450. WritePackString(pPack, szSenderName);
  1451. WritePackString(pPack, szMsg);
  1452. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1453. }
  1454. iIter += 1;
  1455. }
  1456. return Action:4;
  1457. }
  1458. if (StrContains(szRules, "CStrike_Chat_All", false) != -1)
  1459. {
  1460. iIter = 0;
  1461. while (iIter < iClientsCount)
  1462. {
  1463. iId = pClients[iIter];
  1464. new var18;
  1465. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId))
  1466. {
  1467. pPack = CreateDataPack();
  1468. WritePackCell(pPack, iId);
  1469. new var19;
  1470. if (iTeam == 3)
  1471. {
  1472. var19[0] = 16948;
  1473. }
  1474. else
  1475. {
  1476. var19[0] = 16964;
  1477. }
  1478. WritePackString(pPack, var19);
  1479. WritePackString(pPack, szTag);
  1480. WritePackString(pPack, szSenderName);
  1481. WritePackString(pPack, szMsg);
  1482. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1483. }
  1484. iIter += 1;
  1485. }
  1486. return Action:4;
  1487. }
  1488. if (StrContains(szRules, "CStrike_Chat_Spec", false) != -1)
  1489. {
  1490. iIter = 0;
  1491. while (iIter < iClientsCount)
  1492. {
  1493. iId = pClients[iIter];
  1494. new var20;
  1495. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId))
  1496. {
  1497. pPack = CreateDataPack();
  1498. WritePackCell(pPack, iId);
  1499. WritePackString(pPack, "\x01 \x02(SPEC) %s\x02 %s\x01 : %s");
  1500. WritePackString(pPack, szTag);
  1501. WritePackString(pPack, szSenderName);
  1502. WritePackString(pPack, szMsg);
  1503. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1504. }
  1505. iIter += 1;
  1506. }
  1507. iIter = 1;
  1508. while (iIter <= MaxClients)
  1509. {
  1510. iId = iIter;
  1511. new var21;
  1512. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId) && GetUserFlagBits(iId) & 16384 && iTeam != GetClientTeam(iId) && iId != iSender && !.15352.IsIntInIntArray(iId, pClients, iClientsCount))
  1513. {
  1514. pPack = CreateDataPack();
  1515. WritePackCell(pPack, iId);
  1516. WritePackString(pPack, "\x01 \x02(SPEC) %s\x02 %s\x01 : %s");
  1517. WritePackString(pPack, szTag);
  1518. WritePackString(pPack, szSenderName);
  1519. WritePackString(pPack, szMsg);
  1520. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1521. }
  1522. iIter += 1;
  1523. }
  1524. return Action:4;
  1525. }
  1526. }
  1527. new var22;
  1528. if ((iValue == 1 && .4984.__IsClientVIP(iSender)) || (iValue == 2 && .5132.__IsGoldMember(iSender)))
  1529. {
  1530. new var25;
  1531. if (iValue == 1 && .4984.__IsClientVIP(iSender))
  1532. {
  1533. }
  1534. if (StrContains(szRules, "CStrike_Chat_T_Dead", false) != -1)
  1535. {
  1536. iIter = 0;
  1537. while (iIter < iClientsCount)
  1538. {
  1539. iId = pClients[iIter];
  1540. new var26;
  1541. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId))
  1542. {
  1543. pPack = CreateDataPack();
  1544. WritePackCell(pPack, iId);
  1545. WritePackString(pPack, "\x01 *DEAD*(T) %s %s\x01 : %s");
  1546. WritePackString(pPack, szTag);
  1547. WritePackString(pPack, szSenderName);
  1548. WritePackString(pPack, szMsg);
  1549. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1550. }
  1551. iIter += 1;
  1552. }
  1553. iIter = 1;
  1554. while (iIter <= MaxClients)
  1555. {
  1556. iId = iIter;
  1557. new var27;
  1558. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId) && GetUserFlagBits(iId) & 16384 && iTeam != GetClientTeam(iId) && iId != iSender && !.15352.IsIntInIntArray(iId, pClients, iClientsCount))
  1559. {
  1560. pPack = CreateDataPack();
  1561. WritePackCell(pPack, iId);
  1562. WritePackString(pPack, "\x01 *DEAD*(T) %s %s\x01 : %s");
  1563. WritePackString(pPack, szTag);
  1564. WritePackString(pPack, szSenderName);
  1565. WritePackString(pPack, szMsg);
  1566. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1567. }
  1568. iIter += 1;
  1569. }
  1570. return Action:4;
  1571. }
  1572. if (StrContains(szRules, "CStrike_Chat_T", false) != -1)
  1573. {
  1574. iIter = 0;
  1575. while (iIter < iClientsCount)
  1576. {
  1577. iId = pClients[iIter];
  1578. new var28;
  1579. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId))
  1580. {
  1581. pPack = CreateDataPack();
  1582. WritePackCell(pPack, iId);
  1583. WritePackString(pPack, "\x01 (T) %s %s\x01 : %s");
  1584. WritePackString(pPack, szTag);
  1585. WritePackString(pPack, szSenderName);
  1586. WritePackString(pPack, szMsg);
  1587. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1588. }
  1589. iIter += 1;
  1590. }
  1591. iIter = 1;
  1592. while (iIter <= MaxClients)
  1593. {
  1594. iId = iIter;
  1595. new var29;
  1596. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId) && GetUserFlagBits(iId) & 16384 && iTeam != GetClientTeam(iId) && iId != iSender && !.15352.IsIntInIntArray(iId, pClients, iClientsCount))
  1597. {
  1598. pPack = CreateDataPack();
  1599. WritePackCell(pPack, iId);
  1600. WritePackString(pPack, "\x01 (T) %s %s\x01 : %s");
  1601. WritePackString(pPack, szTag);
  1602. WritePackString(pPack, szSenderName);
  1603. WritePackString(pPack, szMsg);
  1604. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1605. }
  1606. iIter += 1;
  1607. }
  1608. return Action:4;
  1609. }
  1610. if (StrContains(szRules, "CStrike_Chat_CT_Dead", false) != -1)
  1611. {
  1612. iIter = 0;
  1613. while (iIter < iClientsCount)
  1614. {
  1615. iId = pClients[iIter];
  1616. new var30;
  1617. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId))
  1618. {
  1619. pPack = CreateDataPack();
  1620. WritePackCell(pPack, iId);
  1621. WritePackString(pPack, "\x01 *DEAD*(CT) %s %s\x01 : %s");
  1622. WritePackString(pPack, szTag);
  1623. WritePackString(pPack, szSenderName);
  1624. WritePackString(pPack, szMsg);
  1625. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1626. }
  1627. iIter += 1;
  1628. }
  1629. iIter = 1;
  1630. while (iIter <= MaxClients)
  1631. {
  1632. iId = iIter;
  1633. new var31;
  1634. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId) && GetUserFlagBits(iId) & 16384 && iTeam != GetClientTeam(iId) && iId != iSender && !.15352.IsIntInIntArray(iId, pClients, iClientsCount))
  1635. {
  1636. pPack = CreateDataPack();
  1637. WritePackCell(pPack, iId);
  1638. WritePackString(pPack, "\x01 *DEAD*(CT) %s %s\x01 : %s");
  1639. WritePackString(pPack, szTag);
  1640. WritePackString(pPack, szSenderName);
  1641. WritePackString(pPack, szMsg);
  1642. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1643. }
  1644. iIter += 1;
  1645. }
  1646. return Action:4;
  1647. }
  1648. if (StrContains(szRules, "CStrike_Chat_CT", false) != -1)
  1649. {
  1650. iIter = 0;
  1651. while (iIter < iClientsCount)
  1652. {
  1653. iId = pClients[iIter];
  1654. new var32;
  1655. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId))
  1656. {
  1657. pPack = CreateDataPack();
  1658. WritePackCell(pPack, iId);
  1659. WritePackString(pPack, "\x01 (CT) %s %s\x01 : %s");
  1660. WritePackString(pPack, szTag);
  1661. WritePackString(pPack, szSenderName);
  1662. WritePackString(pPack, szMsg);
  1663. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1664. }
  1665. iIter += 1;
  1666. }
  1667. iIter = 1;
  1668. while (iIter <= MaxClients)
  1669. {
  1670. iId = iIter;
  1671. new var33;
  1672. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId) && GetUserFlagBits(iId) & 16384 && iTeam != GetClientTeam(iId) && iId != iSender && !.15352.IsIntInIntArray(iId, pClients, iClientsCount))
  1673. {
  1674. pPack = CreateDataPack();
  1675. WritePackCell(pPack, iId);
  1676. WritePackString(pPack, "\x01 (CT) %s %s\x01 : %s");
  1677. WritePackString(pPack, szTag);
  1678. WritePackString(pPack, szSenderName);
  1679. WritePackString(pPack, szMsg);
  1680. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1681. }
  1682. iIter += 1;
  1683. }
  1684. return Action:4;
  1685. }
  1686. if (StrContains(szRules, "CStrike_Chat_AllDead", false) != -1)
  1687. {
  1688. iIter = 0;
  1689. while (iIter < iClientsCount)
  1690. {
  1691. iId = pClients[iIter];
  1692. new var34;
  1693. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId))
  1694. {
  1695. pPack = CreateDataPack();
  1696. WritePackCell(pPack, iId);
  1697. new var35;
  1698. if (iTeam == 3)
  1699. {
  1700. var35[0] = 17380;
  1701. }
  1702. else
  1703. {
  1704. var35[0] = 17404;
  1705. }
  1706. WritePackString(pPack, var35);
  1707. WritePackString(pPack, szTag);
  1708. WritePackString(pPack, szSenderName);
  1709. WritePackString(pPack, szMsg);
  1710. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1711. }
  1712. iIter += 1;
  1713. }
  1714. return Action:4;
  1715. }
  1716. if (StrContains(szRules, "CStrike_Chat_AllSpec", false) != -1)
  1717. {
  1718. iIter = 0;
  1719. while (iIter < iClientsCount)
  1720. {
  1721. iId = pClients[iIter];
  1722. new var36;
  1723. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId))
  1724. {
  1725. pPack = CreateDataPack();
  1726. WritePackCell(pPack, iId);
  1727. WritePackString(pPack, "\x01 \x08*SPEC* %s\x08 %s\x01 : %s");
  1728. WritePackString(pPack, szTag);
  1729. WritePackString(pPack, szSenderName);
  1730. WritePackString(pPack, szMsg);
  1731. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1732. }
  1733. iIter += 1;
  1734. }
  1735. return Action:4;
  1736. }
  1737. if (StrContains(szRules, "CStrike_Chat_All", false) != -1)
  1738. {
  1739. iIter = 0;
  1740. while (iIter < iClientsCount)
  1741. {
  1742. iId = pClients[iIter];
  1743. new var37;
  1744. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId))
  1745. {
  1746. pPack = CreateDataPack();
  1747. WritePackCell(pPack, iId);
  1748. new var38;
  1749. if (iTeam == 3)
  1750. {
  1751. var38[0] = 17496;
  1752. }
  1753. else
  1754. {
  1755. var38[0] = 17512;
  1756. }
  1757. WritePackString(pPack, var38);
  1758. WritePackString(pPack, szTag);
  1759. WritePackString(pPack, szSenderName);
  1760. WritePackString(pPack, szMsg);
  1761. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1762. }
  1763. iIter += 1;
  1764. }
  1765. return Action:4;
  1766. }
  1767. if (StrContains(szRules, "CStrike_Chat_Spec", false) != -1)
  1768. {
  1769. iIter = 0;
  1770. while (iIter < iClientsCount)
  1771. {
  1772. iId = pClients[iIter];
  1773. new var39;
  1774. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId))
  1775. {
  1776. pPack = CreateDataPack();
  1777. WritePackCell(pPack, iId);
  1778. WritePackString(pPack, "\x01 \x02(SPEC) %s\x02 %s\x01 : %s");
  1779. WritePackString(pPack, szTag);
  1780. WritePackString(pPack, szSenderName);
  1781. WritePackString(pPack, szMsg);
  1782. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1783. }
  1784. iIter += 1;
  1785. }
  1786. iIter = 1;
  1787. while (iIter <= MaxClients)
  1788. {
  1789. iId = iIter;
  1790. new var40;
  1791. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId) && GetUserFlagBits(iId) & 16384 && iTeam != GetClientTeam(iId) && iId != iSender && !.15352.IsIntInIntArray(iId, pClients, iClientsCount))
  1792. {
  1793. pPack = CreateDataPack();
  1794. WritePackCell(pPack, iId);
  1795. WritePackString(pPack, "\x01 \x02(SPEC) %s\x02 %s\x01 : %s");
  1796. WritePackString(pPack, szTag);
  1797. WritePackString(pPack, szSenderName);
  1798. WritePackString(pPack, szMsg);
  1799. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1800. }
  1801. iIter += 1;
  1802. }
  1803. return Action:4;
  1804. }
  1805. }
  1806. new var41;
  1807. if (iValue == 3 && GetAdminGroupCount(pId) > 0)
  1808. {
  1809. GetAdminGroup(pId, 0, szGroup, 256);
  1810. iIter = 0;
  1811. while (GetArraySize(g_pGroups) > iIter)
  1812. {
  1813. GetArrayString(g_pGroups, iIter, szToken, 256);
  1814. if (strcmp(szToken, szGroup, false))
  1815. {
  1816. }
  1817. else
  1818. {
  1819. GetArrayString(g_pTags, iIter, szTag, 256);
  1820. if (StrContains(szRules, "CStrike_Chat_T_Dead", false) != -1)
  1821. {
  1822. iIter = 0;
  1823. while (iIter < iClientsCount)
  1824. {
  1825. iId = pClients[iIter];
  1826. new var42;
  1827. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId))
  1828. {
  1829. pPack = CreateDataPack();
  1830. WritePackCell(pPack, iId);
  1831. WritePackString(pPack, "\x01 *DEAD*(T) %s %s\x01 : %s");
  1832. WritePackString(pPack, szTag);
  1833. WritePackString(pPack, szSenderName);
  1834. WritePackString(pPack, szMsg);
  1835. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1836. }
  1837. iIter += 1;
  1838. }
  1839. iIter = 1;
  1840. while (iIter <= MaxClients)
  1841. {
  1842. iId = iIter;
  1843. new var43;
  1844. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId) && GetUserFlagBits(iId) & 16384 && iTeam != GetClientTeam(iId) && iId != iSender && !.15352.IsIntInIntArray(iId, pClients, iClientsCount))
  1845. {
  1846. pPack = CreateDataPack();
  1847. WritePackCell(pPack, iId);
  1848. WritePackString(pPack, "\x01 *DEAD*(T) %s %s\x01 : %s");
  1849. WritePackString(pPack, szTag);
  1850. WritePackString(pPack, szSenderName);
  1851. WritePackString(pPack, szMsg);
  1852. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1853. }
  1854. iIter += 1;
  1855. }
  1856. return Action:4;
  1857. }
  1858. if (StrContains(szRules, "CStrike_Chat_T", false) != -1)
  1859. {
  1860. iIter = 0;
  1861. while (iIter < iClientsCount)
  1862. {
  1863. iId = pClients[iIter];
  1864. new var44;
  1865. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId))
  1866. {
  1867. pPack = CreateDataPack();
  1868. WritePackCell(pPack, iId);
  1869. WritePackString(pPack, "\x01 (T) %s %s\x01 : %s");
  1870. WritePackString(pPack, szTag);
  1871. WritePackString(pPack, szSenderName);
  1872. WritePackString(pPack, szMsg);
  1873. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1874. }
  1875. iIter += 1;
  1876. }
  1877. iIter = 1;
  1878. while (iIter <= MaxClients)
  1879. {
  1880. iId = iIter;
  1881. new var45;
  1882. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId) && GetUserFlagBits(iId) & 16384 && iTeam != GetClientTeam(iId) && iId != iSender && !.15352.IsIntInIntArray(iId, pClients, iClientsCount))
  1883. {
  1884. pPack = CreateDataPack();
  1885. WritePackCell(pPack, iId);
  1886. WritePackString(pPack, "\x01 (T) %s %s\x01 : %s");
  1887. WritePackString(pPack, szTag);
  1888. WritePackString(pPack, szSenderName);
  1889. WritePackString(pPack, szMsg);
  1890. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1891. }
  1892. iIter += 1;
  1893. }
  1894. return Action:4;
  1895. }
  1896. if (StrContains(szRules, "CStrike_Chat_CT_Dead", false) != -1)
  1897. {
  1898. iIter = 0;
  1899. while (iIter < iClientsCount)
  1900. {
  1901. iId = pClients[iIter];
  1902. new var46;
  1903. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId))
  1904. {
  1905. pPack = CreateDataPack();
  1906. WritePackCell(pPack, iId);
  1907. WritePackString(pPack, "\x01 *DEAD*(CT) %s %s\x01 : %s");
  1908. WritePackString(pPack, szTag);
  1909. WritePackString(pPack, szSenderName);
  1910. WritePackString(pPack, szMsg);
  1911. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1912. }
  1913. iIter += 1;
  1914. }
  1915. iIter = 1;
  1916. while (iIter <= MaxClients)
  1917. {
  1918. iId = iIter;
  1919. new var47;
  1920. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId) && GetUserFlagBits(iId) & 16384 && iTeam != GetClientTeam(iId) && iId != iSender && !.15352.IsIntInIntArray(iId, pClients, iClientsCount))
  1921. {
  1922. pPack = CreateDataPack();
  1923. WritePackCell(pPack, iId);
  1924. WritePackString(pPack, "\x01 *DEAD*(CT) %s %s\x01 : %s");
  1925. WritePackString(pPack, szTag);
  1926. WritePackString(pPack, szSenderName);
  1927. WritePackString(pPack, szMsg);
  1928. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1929. }
  1930. iIter += 1;
  1931. }
  1932. return Action:4;
  1933. }
  1934. if (StrContains(szRules, "CStrike_Chat_CT", false) != -1)
  1935. {
  1936. iIter = 0;
  1937. while (iIter < iClientsCount)
  1938. {
  1939. iId = pClients[iIter];
  1940. new var48;
  1941. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId))
  1942. {
  1943. pPack = CreateDataPack();
  1944. WritePackCell(pPack, iId);
  1945. WritePackString(pPack, "\x01 (CT) %s %s\x01 : %s");
  1946. WritePackString(pPack, szTag);
  1947. WritePackString(pPack, szSenderName);
  1948. WritePackString(pPack, szMsg);
  1949. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1950. }
  1951. iIter += 1;
  1952. }
  1953. iIter = 1;
  1954. while (iIter <= MaxClients)
  1955. {
  1956. iId = iIter;
  1957. new var49;
  1958. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId) && GetUserFlagBits(iId) & 16384 && iTeam != GetClientTeam(iId) && iId != iSender && !.15352.IsIntInIntArray(iId, pClients, iClientsCount))
  1959. {
  1960. pPack = CreateDataPack();
  1961. WritePackCell(pPack, iId);
  1962. WritePackString(pPack, "\x01 (CT) %s %s\x01 : %s");
  1963. WritePackString(pPack, szTag);
  1964. WritePackString(pPack, szSenderName);
  1965. WritePackString(pPack, szMsg);
  1966. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1967. }
  1968. iIter += 1;
  1969. }
  1970. return Action:4;
  1971. }
  1972. if (StrContains(szRules, "CStrike_Chat_AllDead", false) != -1)
  1973. {
  1974. iIter = 0;
  1975. while (iIter < iClientsCount)
  1976. {
  1977. iId = pClients[iIter];
  1978. new var50;
  1979. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId))
  1980. {
  1981. pPack = CreateDataPack();
  1982. WritePackCell(pPack, iId);
  1983. new var51;
  1984. if (iTeam == 3)
  1985. {
  1986. var51[0] = 17904;
  1987. }
  1988. else
  1989. {
  1990. var51[0] = 17928;
  1991. }
  1992. WritePackString(pPack, var51);
  1993. WritePackString(pPack, szTag);
  1994. WritePackString(pPack, szSenderName);
  1995. WritePackString(pPack, szMsg);
  1996. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  1997. }
  1998. iIter += 1;
  1999. }
  2000. return Action:4;
  2001. }
  2002. if (StrContains(szRules, "CStrike_Chat_AllSpec", false) != -1)
  2003. {
  2004. iIter = 0;
  2005. while (iIter < iClientsCount)
  2006. {
  2007. iId = pClients[iIter];
  2008. new var52;
  2009. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId))
  2010. {
  2011. pPack = CreateDataPack();
  2012. WritePackCell(pPack, iId);
  2013. WritePackString(pPack, "\x01 \x08*SPEC* %s\x08 %s\x01 : %s");
  2014. WritePackString(pPack, szTag);
  2015. WritePackString(pPack, szSenderName);
  2016. WritePackString(pPack, szMsg);
  2017. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  2018. }
  2019. iIter += 1;
  2020. }
  2021. return Action:4;
  2022. }
  2023. if (StrContains(szRules, "CStrike_Chat_All", false) != -1)
  2024. {
  2025. iIter = 0;
  2026. while (iIter < iClientsCount)
  2027. {
  2028. iId = pClients[iIter];
  2029. new var53;
  2030. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId))
  2031. {
  2032. pPack = CreateDataPack();
  2033. WritePackCell(pPack, iId);
  2034. new var54;
  2035. if (iTeam == 3)
  2036. {
  2037. var54[0] = 18020;
  2038. }
  2039. else
  2040. {
  2041. var54[0] = 18036;
  2042. }
  2043. WritePackString(pPack, var54);
  2044. WritePackString(pPack, szTag);
  2045. WritePackString(pPack, szSenderName);
  2046. WritePackString(pPack, szMsg);
  2047. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  2048. }
  2049. iIter += 1;
  2050. }
  2051. return Action:4;
  2052. }
  2053. if (StrContains(szRules, "CStrike_Chat_Spec", false) != -1)
  2054. {
  2055. iIter = 0;
  2056. while (iIter < iClientsCount)
  2057. {
  2058. iId = pClients[iIter];
  2059. new var55;
  2060. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId))
  2061. {
  2062. pPack = CreateDataPack();
  2063. WritePackCell(pPack, iId);
  2064. WritePackString(pPack, "\x01 \x02(SPEC) %s\x02 %s\x01 : %s");
  2065. WritePackString(pPack, szTag);
  2066. WritePackString(pPack, szSenderName);
  2067. WritePackString(pPack, szMsg);
  2068. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  2069. }
  2070. iIter += 1;
  2071. }
  2072. iIter = 1;
  2073. while (iIter <= MaxClients)
  2074. {
  2075. iId = iIter;
  2076. new var56;
  2077. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId) && GetUserFlagBits(iId) & 16384 && iTeam != GetClientTeam(iId) && iId != iSender && !.15352.IsIntInIntArray(iId, pClients, iClientsCount))
  2078. {
  2079. pPack = CreateDataPack();
  2080. WritePackCell(pPack, iId);
  2081. WritePackString(pPack, "\x01 \x02(SPEC) %s\x02 %s\x01 : %s");
  2082. WritePackString(pPack, szTag);
  2083. WritePackString(pPack, szSenderName);
  2084. WritePackString(pPack, szMsg);
  2085. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  2086. }
  2087. iIter += 1;
  2088. }
  2089. return Action:4;
  2090. }
  2091. }
  2092. iIter += 1;
  2093. }
  2094. }
  2095. }
  2096. if (StrContains(szRules, "CStrike_Chat_T_Dead", false) != -1)
  2097. {
  2098. iIter = 1;
  2099. while (iIter <= MaxClients)
  2100. {
  2101. iId = iIter;
  2102. new var57;
  2103. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId) && GetUserFlagBits(iId) & 16384 && iTeam != GetClientTeam(iId) && iId != iSender && !.15352.IsIntInIntArray(iId, pClients, iClientsCount))
  2104. {
  2105. pPack = CreateDataPack();
  2106. WritePackCell(pPack, iId);
  2107. WritePackString(pPack, "\x01 *DEAD*(T) %s %s\x01 : %s");
  2108. WritePackString(pPack, "");
  2109. WritePackString(pPack, szSenderName);
  2110. WritePackString(pPack, szMsg);
  2111. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  2112. }
  2113. iIter += 1;
  2114. }
  2115. }
  2116. if (StrContains(szRules, "CStrike_Chat_T", false) != -1)
  2117. {
  2118. iIter = 1;
  2119. while (iIter <= MaxClients)
  2120. {
  2121. iId = iIter;
  2122. new var58;
  2123. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId) && GetUserFlagBits(iId) & 16384 && iTeam != GetClientTeam(iId) && iId != iSender && !.15352.IsIntInIntArray(iId, pClients, iClientsCount))
  2124. {
  2125. pPack = CreateDataPack();
  2126. WritePackCell(pPack, iId);
  2127. WritePackString(pPack, "\x01 (T) %s %s\x01 : %s");
  2128. WritePackString(pPack, "");
  2129. WritePackString(pPack, szSenderName);
  2130. WritePackString(pPack, szMsg);
  2131. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  2132. }
  2133. iIter += 1;
  2134. }
  2135. }
  2136. if (StrContains(szRules, "CStrike_Chat_CT_Dead", false) != -1)
  2137. {
  2138. iIter = 1;
  2139. while (iIter <= MaxClients)
  2140. {
  2141. iId = iIter;
  2142. new var59;
  2143. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId) && GetUserFlagBits(iId) & 16384 && iTeam != GetClientTeam(iId) && iId != iSender && !.15352.IsIntInIntArray(iId, pClients, iClientsCount))
  2144. {
  2145. pPack = CreateDataPack();
  2146. WritePackCell(pPack, iId);
  2147. WritePackString(pPack, "\x01 *DEAD*(CT) %s %s\x01 : %s");
  2148. WritePackString(pPack, "");
  2149. WritePackString(pPack, szSenderName);
  2150. WritePackString(pPack, szMsg);
  2151. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  2152. }
  2153. iIter += 1;
  2154. }
  2155. }
  2156. if (StrContains(szRules, "CStrike_Chat_CT", false) != -1)
  2157. {
  2158. iIter = 1;
  2159. while (iIter <= MaxClients)
  2160. {
  2161. iId = iIter;
  2162. new var60;
  2163. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId) && GetUserFlagBits(iId) & 16384 && iTeam != GetClientTeam(iId) && iId != iSender && !.15352.IsIntInIntArray(iId, pClients, iClientsCount))
  2164. {
  2165. pPack = CreateDataPack();
  2166. WritePackCell(pPack, iId);
  2167. WritePackString(pPack, "\x01 (CT) %s %s\x01 : %s");
  2168. WritePackString(pPack, "");
  2169. WritePackString(pPack, szSenderName);
  2170. WritePackString(pPack, szMsg);
  2171. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  2172. }
  2173. iIter += 1;
  2174. }
  2175. }
  2176. if (StrContains(szRules, "CStrike_Chat_Spec", false) != -1)
  2177. {
  2178. iIter = 1;
  2179. while (iIter <= MaxClients)
  2180. {
  2181. iId = iIter;
  2182. new var61;
  2183. if (iId >= 1 && iId <= MaxClients && .15308.__IsClientInGame(iId) && !IsFakeClient(iId) && GetUserFlagBits(iId) & 16384 && iTeam != GetClientTeam(iId) && iId != iSender && !.15352.IsIntInIntArray(iId, pClients, iClientsCount))
  2184. {
  2185. pPack = CreateDataPack();
  2186. WritePackCell(pPack, iId);
  2187. WritePackString(pPack, "\x01 \x02(SPEC) %s\x02 %s\x01 : %s");
  2188. WritePackString(pPack, "");
  2189. WritePackString(pPack, szSenderName);
  2190. WritePackString(pPack, szMsg);
  2191. CreateTimer(0.001, Timer_DisplayToOne, pPack, 0);
  2192. }
  2193. iIter += 1;
  2194. }
  2195. }
  2196. }
  2197. return Action:0;
  2198. }
  2199.  
  2200. public Action:Timer_DisplayToOne(Handle:pTimer, any:_Data)
  2201. {
  2202. static iId = -1;
  2203. static Float:fEngineTime;
  2204. static Float:fOld[66];
  2205. static String:szRules[256];
  2206. static String:szTag[256];
  2207. static String:szName[256];
  2208. static String:szMsg[256];
  2209. static String:szBuffer[2048];
  2210. static String:szOld[66][2048];
  2211. ResetPack(_Data, false);
  2212. iId = ReadPackCell(_Data);
  2213. ReadPackString(_Data, szRules, 256);
  2214. ReadPackString(_Data, szTag, 256);
  2215. ReadPackString(_Data, szName, 256);
  2216. ReadPackString(_Data, szMsg, 256);
  2217. CloseHandle(_Data);
  2218. _Data = MissingTAG:0;
  2219. if (.15308.__IsClientInGame(iId))
  2220. {
  2221. fEngineTime = GetEngineTime();
  2222. FormatEx(szBuffer, 2048, szRules, szTag, szName, szMsg);
  2223. if (.2920.StrEqual(szBuffer, szOld[iId], true))
  2224. {
  2225. if (fEngineTime - fOld[iId] >= 0.225)
  2226. {
  2227. PrintToChat(iId, szRules, szTag, szName, szMsg);
  2228. fOld[iId] = fEngineTime;
  2229. }
  2230. }
  2231. PrintToChat(iId, szRules, szTag, szName, szMsg);
  2232. fOld[iId] = fEngineTime;
  2233. }
  2234. return Action:0;
  2235. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement