HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2.  
  3. #define PLUGIN "Simple RoundEndSounds"
  4. #define VERSION "1.1"
  5. #define AUTHOR "mforce"
  6.  
  7.  
  8. #define MAX_MUSIC 32
  9. new const PREFIX[] = "RoundEndSounds"
  10.  
  11. new musics[MAX_MUSIC][64], music_count, play_count, bool:musicon[33];
  12.  
  13. public plugin_init() {
  14. register_plugin(PLUGIN, VERSION, AUTHOR);
  15. register_clcmd("say /korvegi", "music_on")
  16. register_event("SendAudio", "PlayMusic", "a", "2&%!MRAD_ctwin")
  17. register_event("SendAudio", "PlayMusic", "a", "2&%!MRAD_terwin")
  18. }
  19.  
  20. public plugin_precache() {
  21. new sBuffer[192], sFile[128], sData[64], pFile;
  22. get_localinfo("amxx_configsdir", sFile, charsmax(sFile));
  23. format(sFile, charsmax(sFile), "%s/korvegi_zene.ini", sFile);
  24.  
  25. pFile = fopen(sFile, "rt");
  26.  
  27. if(pFile) {
  28. while(music_count < MAX_MUSIC && !feof(pFile)) {
  29. fgets(pFile, sBuffer, charsmax(sBuffer));
  30. trim(sBuffer);
  31. if(sBuffer[0] != ';' && parse(sBuffer, sData, charsmax(sData))) {
  32. if(contain(sData, ".mp3") != -1) {
  33. precache_sound(sData)
  34. copy(musics[music_count++], charsmax(musics[]), sData)
  35. }
  36. }
  37. }
  38. fclose(pFile);
  39. }
  40. else
  41. write_file(sFile, ";^"mappa/valami.mp3^"");
  42.  
  43. if(!music_count) set_fail_state("Nem talaltunk zeneket! Ellenorizd a fajlt ^"addons/amxmodx/configs/korvegi_zene.ini^"");
  44. }
  45.  
  46. public music_on(id) {
  47. switch(musicon[id]) {
  48. case true: {
  49. ChatColor(id, "^4[%s]^1 Kikapcsoltad a körvégi zenéket.", PREFIX)
  50. musicon[id] = false;
  51. client_cmd(id, "setinfo korvegi 0")
  52. }
  53. case false: {
  54. ChatColor(id, "^4[%s]^1 Bekapcsoltad a körvégi zenéket.", PREFIX)
  55. musicon[id] = true;
  56. client_cmd(id, "setinfo korvegi 1")
  57. }
  58. }
  59. }
  60.  
  61. public client_putinserver(id) {
  62. if(user_roundmusic(id)) {
  63. musicon[id] = true;
  64. }
  65. }
  66.  
  67. public client_disconnect(id) {
  68. musicon[id] = false;
  69. }
  70.  
  71. public PlayMusic() {
  72. new Mp3File[128], players[32], num, tempid;
  73. formatex(Mp3File, charsmax(Mp3File), "sound/%s", musics[play_count == music_count ? (play_count = 0) : play_count++]);
  74. get_players(players, num, "c");
  75. for(new i; i < num; i++) {
  76. tempid = players[i];
  77. if(musicon[tempid]) {
  78. client_cmd(tempid, "mp3 play %s", Mp3File);
  79. }
  80. }
  81. }
  82.  
  83. stock bool:user_roundmusic(id) {
  84. new azonosit[8];
  85. get_user_info(id, "korvegi", azonosit, charsmax(azonosit));
  86. if(equal(azonosit, "0")) return false;
  87. return true;
  88. }
  89.  
  90. stock ChatColor(const id, const szMessage[], any:...) {
  91. static pnum, players[32], szMsg[190], IdMsg;
  92. vformat(szMsg, charsmax(szMsg), szMessage, 3);
  93.  
  94. if(!IdMsg) IdMsg = get_user_msgid("SayText");
  95.  
  96. if(id) {
  97. if(!is_user_connected(id)) return;
  98. players[0] = id;
  99. pnum = 1;
  100. }
  101. else get_players(players, pnum, "ch");
  102.  
  103. for(new i; i < pnum; i++) {
  104. message_begin(MSG_ONE, IdMsg, .player = players[i]);
  105. write_byte(players[i]);
  106. write_string(szMsg);
  107. message_end();
  108. }
  109. }