hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.03.29. 11:41



Jelenlévő felhasználók

Jelenleg 294 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 294 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: nincs regisztrált felhasználó az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 20 hozzászólás ]  Oldal 1 2 Következő
Szerző Üzenet
 Hozzászólás témája: Funny Sounds
HozzászólásElküldve: 2016.04.20. 20:12 
Offline
Tiszteletbeli
Avatar

Csatlakozott: 2014.09.08. 22:21
Hozzászólások: 3014
Megköszönt másnak: 96 alkalommal
Megköszönték neki: 555 alkalommal
Funny Sounds
v1.0 by mforce


Leírás:
Vicces hangok játszhatók le a chaten (.wav és mp3 egyaránt).
Egy konfigurációs fájlban megadhatók a parancsok és a kívánt hang elérési út hozzá.
Megadható akár, hogy csak jogokra lehessen használni és akkor milyen jogra.
2 hang lejátszása közti idő.
Egyénileg ki és bekapcsolható hanglejátszási funkció, ha valakit zavarnak a hangok.

Parancsok:
/sounds - Ki - vagy bekapcsolja a chathangok lejátszását. (A játékos kliensébe mentődik a kiválasztás).

Konfiguráció:
Szerverprefix módosítható az .sma-n belül a 9. sorban:
  1. new const PREFIX[] = "Funny Sounds";


A jogkör akik a hangok lejátszhatják, módosítható a 11. sorban (alap ADMIN_KICK, tehát "c" jog):
  1. #define ACCESS_FLAG ADMIN_KICK

[Ha ez a sor ki van kommentelve, akkor nem jogra működik a plugin, hanem bárki használhatja.

A hangok lejátszása közti idő (másodpercben) módosítható a 12. sorban.
  1. #define TIME_BETWEEN_SOUNDS     30


A "configs/funny_sounds.ini" fájlban megadhatók a chat parancsok és a kívánt hang elérési útja hozzá (sounds/).
Kód:
"valami" "valami_mappa/valami.mp3"

_________________
GitHub - mforce

Ők köszönték meg mforce nek ezt a hozzászólást (összesen 2): jokypapa (2016.04.23. 13:54) • elit (2016.06.19. 10:18)
  Népszerűség: 4.55%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Funny Sounds
HozzászólásElküldve: 2016.04.20. 20:16 
Offline
Nagyúr
Avatar

Csatlakozott: 2014.08.24. 18:28
Hozzászólások: 584
Megköszönt másnak: 122 alkalommal
Megköszönték neki: 120 alkalommal
Mennyivel egyszerűbb mint a Sank Sounds forráskódja. :lol:


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Funny Sounds
HozzászólásElküldve: 2016.04.20. 20:35 
Offline
Tiszteletbeli
Avatar

Csatlakozott: 2014.09.08. 22:21
Hozzászólások: 3014
Megköszönt másnak: 96 alkalommal
Megköszönték neki: 555 alkalommal
A gyengébbek kedvéért jó colorchat.inc

https://raw.githubusercontent.com/mforc ... orchat.inc

(A linkre mentés másként)

_________________
GitHub - mforce


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Funny Sounds
HozzászólásElküldve: 2016.04.20. 20:44 
Offline
Félisten
Avatar

Csatlakozott: 2015.03.12. 18:30
Hozzászólások: 975
Megköszönt másnak: 67 alkalommal
Megköszönték neki: 136 alkalommal
Esetleg még azt meglehetett volna csinálni, hogy admin korlátlanul tudja nyomni, a player meg x időként.

_________________
Fórumi aktivitásom véget ért: 2017.09.07.
Innentől esetleg steamen vagyok elérhető.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Funny Sounds
HozzászólásElküldve: 2016.04.23. 14:51 
Offline
Jómunkásember

Csatlakozott: 2014.10.30. 10:18
Hozzászólások: 468
Megköszönt másnak: 235 alkalommal
Megköszönték neki: 34 alkalommal
kengurumancs írta:
Esetleg még azt meglehetett volna csinálni, hogy admin korlátlanul tudja nyomni, a player meg x időként.


Tedd ki kérdésbe! Hátha lesz valaki olyan jó fej hogy megcsinálja :)


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Funny Sounds
HozzászólásElküldve: 2016.05.07. 22:58 
Offline
Tiszteletbeli
Avatar

Csatlakozott: 2014.09.08. 22:21
Hozzászólások: 3014
Megköszönt másnak: 96 alkalommal
Megköszönték neki: 555 alkalommal
Arrayos megoldás, mert menüt szeretett volna valaki, hogy listázza.
https://github.com/mforce95/AMXX_plugin ... 051a33a75a
https://github.com/mforce95/AMXX_plugin ... ced9a51174
(menüben is hangok közötti időkorlát, megoldva)

/soundlist - hangok menüje.

  1. #include <amxmodx>
  2. #include <colorchat>
  3.  
  4. new const PLUGIN[] = "Funny Sounds";
  5. new const VERSION[] = "1.0";
  6. new const AUTHOR[] = "mforce";
  7.  
  8.  
  9. new const PREFIX[] = "Funny Sounds";
  10.  
  11. #define ACCESS_FLAG             ADMIN_KICK          // - Type // before # if you want it for all players.
  12. #define TIME_BETWEEN_SOUNDS     30                  // - in seconds
  13.  
  14. new Array:musicname, Array:musicpath;
  15. new g_aSize;
  16. new g_iTimeExpired[33], bool:g_iSwitchOff[33];
  17.  
  18. public plugin_init() {
  19.     register_plugin(PLUGIN, VERSION, AUTHOR);
  20.     register_dictionary("funny_sounds.txt");
  21.    
  22.     register_clcmd("say", "sayhandler");
  23.     register_clcmd("say_team", "sayhandler");
  24.     register_clcmd("say /sounds", "sound_switchoff");
  25.     register_clcmd("say /soundlist", "musicmenu");
  26.     set_task(300.0, "toswitchoff", 0, .flags="b")
  27. }
  28.  
  29. public toswitchoff() {
  30.     ColorChat(0, NORMAL, "^4[%s]^1 %L ^3/sounds", PREFIX, LANG_SERVER, "TO_SWTICH_OFF");
  31. }
  32.  
  33. public plugin_precache() {
  34.     musicname = ArrayCreate(32);
  35.     musicpath = ArrayCreate(64);
  36.    
  37.     new sBuffer[256], sFile[64], sSoundName[32], sSoundPath[64], pFile;
  38.  
  39.     get_localinfo("amxx_configsdir", sFile, charsmax(sFile));
  40.     format(sFile, charsmax(sFile), "%s/funny_sounds.ini", sFile);
  41.  
  42.     pFile = fopen(sFile, "rt");
  43.  
  44.     if(pFile) {    
  45.         while(!feof(pFile)) {
  46.             fgets(pFile, sBuffer, charsmax(sBuffer));
  47.             trim(sBuffer);
  48.             if(sBuffer[0] == ';' || sBuffer[0] == ' ') continue;
  49.  
  50.             parse(sBuffer, sSoundName, charsmax(sSoundName), sSoundPath, charsmax(sSoundPath));
  51.  
  52.             if(containi(sSoundPath, ".mp3") != -1 || containi(sSoundPath, ".wav") != -1) {
  53.                 precache_sound(sSoundPath);
  54.                 ArrayPushString(musicname, sSoundName);
  55.                 ArrayPushString(musicpath, sSoundPath);
  56.             }
  57.         }
  58.         fclose(pFile);
  59.         g_aSize = ArraySize(musicname);
  60.     }
  61.     else write_file(sFile, ";^"anything^" ^"any_dir/anything.mp3^"^n");
  62. }
  63.  
  64. public sayhandler(id) {
  65.     #if defined ACCESS_FLAG
  66.     if(~get_user_flags(id) & ACCESS_FLAG) return;
  67.     #endif
  68.  
  69.     new message[190]; read_args(message, charsmax(message));
  70.     remove_quotes(message);
  71.     new sSoundName[32];
  72.    
  73.     for(new i; i<g_aSize; i++) {
  74.         ArrayGetString(musicname, i, sSoundName, charsmax(sSoundName));
  75.         if(equali(message, sSoundName)) {
  76.             expirecheck(id, i);
  77.         }
  78.     }
  79. }
  80.  
  81. expirecheck(id, item) {
  82.     new usrtime = get_user_time(id);
  83.        
  84.     if(usrtime >= g_iTimeExpired[id]) {
  85.         playsound(item);
  86.         g_iTimeExpired[id] = (usrtime + TIME_BETWEEN_SOUNDS);
  87.     }
  88.     else
  89.         ColorChat(id, NORMAL, "^4[%s]^1 %L", PREFIX, LANG_SERVER, "YOU_HAVE_TO_WAIT" , (g_iTimeExpired[id] - usrtime));
  90. }
  91.  
  92. playsound(item) {
  93.     new szSound[64]; ArrayGetString(musicpath, item, szSound, charsmax(szSound));
  94.     new makesound[128];
  95.     if(containi(szSound, ".mp3") != -1)
  96.         formatex(makesound, charsmax(makesound), "mp3 play ^"sound/%s^"", szSound);
  97.     else
  98.         formatex(makesound, charsmax(makesound), "spk ^"%s^"", szSound);
  99.  
  100.  
  101.     new players[32], num, tempid;
  102.     get_players(players, num, "c");
  103.     for(new i; i<num; i++) {
  104.         tempid = players[i];
  105.         if(!g_iSwitchOff[tempid])
  106.             client_cmd(tempid, "%s", makesound);
  107.     }
  108. }
  109.  
  110. public sound_switchoff(id) {
  111.     switch(g_iSwitchOff[id]) {
  112.         case false: {
  113.             g_iSwitchOff[id] = true;
  114.             client_cmd(id, "setinfo _funnysoundsoff 1");
  115.             ColorChat(id, NORMAL, "^4[%s]^3 %L", PREFIX, LANG_SERVER, "SOUNDS_SWITCHED_OFF");
  116.         }
  117.         case true: {
  118.             g_iSwitchOff[id] = false;
  119.             client_cmd(id, "setinfo _funnysoundsoff 0");
  120.             ColorChat(id, NORMAL, "^4[%s]^3 %L", PREFIX, LANG_SERVER, "SOUNDS_SWITCHED_ON");
  121.         }
  122.     }
  123. }
  124.  
  125. public client_putinserver(id) {
  126.     if(is_user_sounds_off(id))
  127.         g_iSwitchOff[id] = true;
  128. }
  129.  
  130. public client_disconnect(id) {
  131.     g_iTimeExpired[id] = 0;
  132.     g_iSwitchOff[id] = false;
  133. }
  134.  
  135. public plugin_end() {
  136.     ArrayDestroy(musicname);
  137.     ArrayDestroy(musicpath);
  138. }
  139.  
  140. stock bool:is_user_sounds_off(id) {
  141.     new switcher[8];
  142.     get_user_info(id, "_funnysoundsoff", switcher, charsmax(switcher));
  143.     if(equal(switcher, "1")) return true;
  144.     return false;
  145. }
  146.  
  147. public musicmenu(id) {
  148.     #if defined ACCESS_FLAG
  149.     if(~get_user_flags(id) & ACCESS_FLAG) return;
  150.     #endif
  151.    
  152.     new s_MenuName[128]; formatex(s_MenuName, charsmax(s_MenuName), "%s^nby \r%s \y", PLUGIN, AUTHOR);
  153.     new menu = menu_create(s_MenuName, "musicmenu_h");
  154.     new sSoundName[32];
  155.     for(new i; i<g_aSize;i++) {
  156.         ArrayGetString(musicname, i, sSoundName, charsmax(sSoundName));
  157.         menu_additem(menu, sSoundName, "", 0)
  158.     }
  159.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  160.     menu_setprop(menu, MPROP_BACKNAME, "Vissza");
  161.     menu_setprop(menu, MPROP_NEXTNAME, "Következő");
  162.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
  163.     menu_display(id, menu, 0);
  164. }
  165.  
  166. public musicmenu_h(id, menu, item) {
  167.     if(item == MENU_EXIT) {
  168.         menu_destroy(menu);
  169.         return PLUGIN_HANDLED;
  170.     }
  171.    
  172.     expirecheck(id, item);
  173.    
  174.     menu_destroy(menu);
  175.     return PLUGIN_HANDLED;
  176. }

_________________
GitHub - mforce


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Funny Sounds
HozzászólásElküldve: 2016.05.31. 23:13 
Offline
Őstag
Avatar

Csatlakozott: 2015.07.27. 22:56
Hozzászólások: 1367
Megköszönt másnak: 28 alkalommal
Megköszönték neki: 351 alkalommal
Ötlet: adminoknak időlimit figyelmen kívül hagyása lehetőség

► Spoiler mutatása


Tudom nem nagy dolog, de nálunk örültek az adminok, hogy egy kicsit tudnak "rosszalkodni" :D


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Funny Sounds
HozzászólásElküldve: 2016.05.31. 23:49 
Offline
Tiszteletbeli
Avatar

Csatlakozott: 2014.09.08. 22:21
Hozzászólások: 3014
Megköszönt másnak: 96 alkalommal
Megköszönték neki: 555 alkalommal
Pont nem így kéne hozzáadni, de oks.

_________________
GitHub - mforce


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Funny Sounds
HozzászólásElküldve: 2016.09.30. 21:06 
Offline
Félisten
Avatar

Csatlakozott: 2015.03.12. 18:30
Hozzászólások: 975
Megköszönt másnak: 67 alkalommal
Megköszönték neki: 136 alkalommal
32 játékos fent van a szerveren, és egyszerre nyomnak be chathangot, kicsit idegesítő.
A korlát nem egy tagra kéne szóljon, ha nem az összesre.

_________________
Fórumi aktivitásom véget ért: 2017.09.07.
Innentől esetleg steamen vagyok elérhető.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Funny Sounds
HozzászólásElküldve: 2016.09.30. 21:16 
Offline
Tiszteletbeli
Avatar

Csatlakozott: 2014.09.08. 22:21
Hozzászólások: 3014
Megköszönt másnak: 96 alkalommal
Megköszönték neki: 555 alkalommal
kengurumancs írta:
32 játékos fent van a szerveren, és egyszerre nyomnak be chathangot, kicsit idegesítő.
A korlát nem egy tagra kéne szóljon, ha nem az összesre.


Jogos, szivi :)
  1. #include <amxmodx>
  2. #include <colorchat>
  3.  
  4. new const PLUGIN[] = "Funny Sounds";
  5. new const VERSION[] = "1.0";
  6. new const AUTHOR[] = "mforce";
  7.  
  8.  
  9. new const PREFIX[] = "Funny Sounds";
  10.  
  11. #define ACCESS_FLAG             ADMIN_KICK          // - Type // before # if you want it for all players.
  12. #define TIME_BETWEEN_SOUNDS     30                  // - in seconds
  13.  
  14.  
  15. new Trie:musiclist
  16. new g_iTime, bool:g_iSwitchOff[33];
  17.  
  18. public plugin_init() {
  19.     register_plugin(PLUGIN, VERSION, AUTHOR);
  20.     register_dictionary("funny_sounds.txt");
  21.    
  22.     register_clcmd("say", "sayhandler");
  23.     register_clcmd("say_team", "sayhandler");
  24.     register_clcmd("say /sounds", "sound_switchoff");
  25.     set_task(300.0, "toswitchoff", 0, .flags="b")
  26. }
  27.  
  28. public toswitchoff() {
  29.     ColorChat(0, NORMAL, "^4[%s]^1 %L ^3/sounds", PREFIX, LANG_SERVER, "TO_SWTICH_OFF");
  30. }
  31.  
  32. public plugin_precache() {
  33.     musiclist = TrieCreate()
  34.    
  35.     new sBuffer[256], sFile[64], sData[2][32], pFile;
  36.  
  37.     get_localinfo("amxx_configsdir", sFile, charsmax(sFile));
  38.     add((sFile, charsmax(sFile), "/funny_sounds.ini");
  39.  
  40.     pFile = fopen(sFile, "rt");
  41.  
  42.     if(pFile) {    
  43.         while(!feof(pFile)) {
  44.             fgets(pFile, sBuffer, charsmax(sBuffer));
  45.             trim(sBuffer);
  46.             if(sBuffer[0] == ';') continue;
  47.  
  48.             parse(sBuffer, sData[0], charsmax(sData[]), sData[1], charsmax(sData[]));
  49.  
  50.             if((containi(sData[1], ".mp3") != -1 || containi(sData[1], ".wav") != -1) && !TrieKeyExists(musiclist, sData[0])) {
  51.                 precache_sound(sData[1])
  52.                 TrieSetString(musiclist, sData[0], sData[1]);
  53.             }
  54.         }
  55.         fclose(pFile);
  56.     }
  57.     else write_file(sFile, ";^"anything^" ^"any_dir/anything.mp3^"^n");
  58. }
  59.  
  60. public sayhandler(id) {
  61.     #if defined ACCESS_FLAG
  62.     if(~get_user_flags(id) & ACCESS_FLAG) return;
  63.     #endif
  64.  
  65.     new message[190]; read_args(message, charsmax(message));
  66.     remove_quotes(message);
  67.    
  68.     if(TrieKeyExists(musiclist, message)) {
  69.         new srvtime = get_systime();
  70.        
  71.         if(srvtime >= g_iTime) {
  72.             new szSound[64];
  73.             TrieGetString(musiclist, message, szSound, charsmax(szSound));
  74.             playsound(szSound);
  75.             g_iTime = (srvtime + TIME_BETWEEN_SOUNDS);
  76.         }
  77.         else
  78.             ColorChat(id, NORMAL, "^4[%s]^1 %L", PREFIX, LANG_SERVER, "YOU_HAVE_TO_WAIT" , (g_iTime - srvtime));
  79.     }
  80. }
  81.  
  82. playsound(const szSound[]) {
  83.     new makesound[256];
  84.     if(containi(szSound, ".mp3") != -1)
  85.         formatex(makesound, charsmax(makesound), "mp3 play ^"sound/%s^"", szSound);
  86.     else
  87.         formatex(makesound, charsmax(makesound), "spk ^"%s^"", szSound);
  88.  
  89.  
  90.     new players[32], num, tempid;
  91.     get_players(players, num, "c");
  92.     for(new i; i<num; i++) {
  93.         tempid = players[i];
  94.         if(!g_iSwitchOff[tempid])
  95.             client_cmd(tempid, "%s", makesound);
  96.     }
  97. }
  98.  
  99. public sound_switchoff(id) {
  100.     switch(g_iSwitchOff[id]) {
  101.         case false: {
  102.             g_iSwitchOff[id] = true;
  103.             client_cmd(id, "setinfo _funnysoundsoff 1");
  104.             ColorChat(id, NORMAL, "^4[%s]^3 %L", PREFIX, LANG_SERVER, "SOUNDS_SWITCHED_OFF");
  105.         }
  106.         case true: {
  107.             g_iSwitchOff[id] = false;
  108.             client_cmd(id, "setinfo _funnysoundsoff 0");
  109.             ColorChat(id, NORMAL, "^4[%s]^3 %L", PREFIX, LANG_SERVER, "SOUNDS_SWITCHED_ON");
  110.         }
  111.     }
  112. }
  113.  
  114. public client_putinserver(id) {
  115.     if(is_user_sounds_off(id))
  116.         g_iSwitchOff[id] = true;
  117. }
  118.  
  119. public client_disconnect(id) {
  120.     g_iSwitchOff[id] = false;
  121. }
  122.  
  123. public plugin_end() {
  124.     TrieDestroy(musiclist);
  125. }
  126.  
  127. stock bool:is_user_sounds_off(id) {
  128.     new switcher[8];
  129.     get_user_info(id, "_funnysoundsoff", switcher, charsmax(switcher));
  130.     if(equal(switcher, "1")) return true;
  131.     return false;
  132. }

_________________
GitHub - mforce


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 20 hozzászólás ]  Oldal 1 2 Következő


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 12 vendég


Nem nyithatsz témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole