HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2.  
  3. #define PLUGIN "Round End Sounds V3"
  4. #define VERSION "3.0"
  5. #define AUTHOR "DeRoiD"
  6.  
  7. #define Prefix "!g[Round End Sounds]"
  8. #define File "addons/amxmodx/configs/musiclist.ini"
  9.  
  10. #pragma semicolon 1
  11.  
  12. new MusicData[40][3][64], Mp3File[96], MusicNum, PreviousMusic = -1, bool:Off[33], MaxFileLine;
  13. new SayText, Ad;
  14.  
  15. public plugin_init()
  16. {
  17. register_plugin(PLUGIN, VERSION, AUTHOR);
  18. register_dictionary("round_end_sounds_v3.txt");
  19.  
  20. register_clcmd("say /roundendsounds", "Toggle");
  21. register_clcmd("say /musiclist", "MusicList");
  22. SayText = get_user_msgid("SayText");
  23.  
  24. set_task(78.9, "Advertising", 789, _, _, "b");
  25.  
  26. register_logevent("PlayMusic", 2, "1=Round_End");
  27. LoadMusic();
  28. }
  29. public Advertising()
  30. {
  31. new Players[32], PlayersNum, id;
  32. get_players(Players, PlayersNum, "c");
  33. for(new i; i < PlayersNum; i++)
  34. {
  35. id = Players[i];
  36. new Message[256];
  37. if(Ad == 0)
  38. {
  39. formatex(Message, 255, "%s %L", Prefix, LANG_SERVER, "ADVERTISING_1");
  40. Ad = 1;
  41. }
  42. else if(Ad == 1)
  43. {
  44. formatex(Message, 255, "%s %L", Prefix, LANG_SERVER, "ADVERTISING_2");
  45. Ad = 0;
  46. }
  47. SendMessage(id, Message);
  48. }
  49. }
  50. public MusicList(id)
  51. {
  52. new Motd[1024], Line[256];
  53. formatex(Line, 255, "<body bgcolor=^"black^">^n");
  54. add(Motd, 1023, Line, 255);
  55. formatex(Line, 255, "<span style=^"color:#FFA500;^">^n");
  56. add(Motd, 1023, Line, 255);
  57. formatex(Line, 255, "<p align=^"center^"><span style=^"font-size: 20px;^"><strong>Round end Sounds V3</strong></span></p>^n");
  58. add(Motd, 1023, Line, 255);
  59. formatex(Line, 255, "<p align=^"center^"><span style=^"font-size: 10px;^"><strong>by DeRoiD</strong></span></p>^n");
  60. add(Motd, 1023, Line, 255);
  61. formatex(Line, 255, "<p align=^"center^"><span style=^"font-size: 25px;^"><strong>Music List:</strong></span></p>^n");
  62. add(Motd, 1023, Line, 255);
  63.  
  64. if(MusicNum > 0)
  65. {
  66. for(new Num = 1; Num < MusicNum; Num++)
  67. {
  68. formatex(Line, 255, "<span style=^"color:#00FFFF;^">^n");
  69. add(Motd, 1023, Line, 255);
  70. formatex(Line, 255, "<p align=^"center^"><span style=^"font-size: 15px;^"><strong>%s - %s</strong></span></p>^n", MusicData[Num][0], MusicData[Num][1]);
  71. add(Motd, 1023, Line, 255);
  72. }
  73. }
  74. formatex(Line, 255, "</span>^n</body>");
  75. add(Motd, 1023, Line, 255);
  76. show_motd(id, Motd, "Music List");
  77. }
  78. public Toggle(id)
  79. {
  80. new Message[256] ;
  81. if(Off[id])
  82. {
  83. formatex(Message, 255, "%s!y %L", Prefix, LANG_SERVER, "ON");
  84. SendMessage(id, Message);
  85. Off[id] = false;
  86. }
  87. else
  88. {
  89. client_cmd(id, "mp3 stop");
  90. formatex(Message, 255, "%s!y %L", Prefix, LANG_SERVER, "OFF");
  91. SendMessage(id, Message);
  92. Off[id] = true;
  93. }
  94. }
  95. public LoadMusic()
  96. {
  97. new Len, Line[196], Data[3][64];
  98. MaxFileLine = file_size(File, 1);
  99. for(new Num; Num < MaxFileLine; Num++)
  100. {
  101. MusicNum++;
  102. read_file(File, Num, Line, 196, Len);
  103. parse(Line, Data[0], 63, Data[1], 63, Data[2], 63);
  104. remove_quotes(Line);
  105. if(Line[0] == ';' || 2 > strlen(Line))
  106. {
  107. continue;
  108. }
  109. remove_quotes(Data[0]);
  110. remove_quotes(Data[1]);
  111. remove_quotes(Data[2]);
  112. format(MusicData[MusicNum][0], 63, "%s", Data[0]);
  113. format(MusicData[MusicNum][1], 63, "%s", Data[1]);
  114. format(MusicData[MusicNum][2], 63, "%s", Data[2]);
  115. }
  116. log_amx("Round end sounds v3");
  117. log_amx("%d loaded music.", MusicNum);
  118. log_amx("Plugin by: DeRoiD");
  119. }
  120. public PlayMusic() {
  121. new Num = random_num(1, MusicNum);
  122. if(MusicNum > 1)
  123. {
  124. if(Num == PreviousMusic)
  125. {
  126. PlayMusic();
  127. return PLUGIN_HANDLED;
  128. }
  129. }
  130. formatex(Mp3File, charsmax(Mp3File), "sound/%s", MusicData[Num][2]);
  131. new Players[32], PlayersNum, id;
  132. get_players(Players, PlayersNum, "c");
  133. for(new i; i < PlayersNum; i++)
  134. {
  135. id = Players[i];
  136. if(Off[id])
  137. {
  138. continue;
  139. }
  140. client_cmd(id, "mp3 play %s", Mp3File);
  141. new Message[256] ;
  142. if(strlen(MusicData[Num][0]) > 3 && strlen(MusicData[Num][1]) > 3)
  143. {
  144. formatex(Message, 255, "%s!y %L", Prefix, LANG_SERVER, "PLAY", MusicData[Num][0], MusicData[Num][1]);
  145. }
  146. else
  147. {
  148. formatex(Message, 255, "%s!y %L", Prefix, LANG_SERVER, "UNKNOWN");
  149. }
  150. SendMessage(id, Message);
  151. }
  152. PreviousMusic = Num;
  153. return PLUGIN_HANDLED;
  154. }
  155. public plugin_precache() {
  156. new Len, Line[196], Data[3][64], Download[40][64];
  157. MaxFileLine = file_size(File, 1);
  158. for(new Num = 0; Num < MaxFileLine; Num++)
  159. {
  160. read_file(File, Num, Line, 196, Len);
  161. parse(Line, Data[0], 63, Data[1], 63, Data[2], 63);
  162. remove_quotes(Line);
  163. if(Line[0] == ';' || 2 > strlen(Line))
  164. {
  165. continue;
  166. }
  167. remove_quotes(Data[2]);
  168. format(Download[Num], 63, "%s", Data[2]);
  169. precache_sound(Download[Num]);
  170. }
  171. }
  172. stock SendMessage(id, const MessageData[]) {
  173. static Message[256];
  174. vformat(Message, 255, MessageData, 3);
  175. replace_all(Message, 255, "!g", "^4");
  176. replace_all(Message, 255, "!y", "^1");
  177. replace_all(Message, 255, "!t", "^3");
  178. message_begin(MSG_ONE_UNRELIABLE, SayText, _, id);
  179. write_byte(id);
  180. write_string(Message);
  181. message_end();
  182. }
  183. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  184. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs16 \n\\ par }
  185. */
  186.