Psychosound, Проигрывание звуков haha, lol, suxx и т.д. |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
|
Psychosound, Проигрывание звуков haha, lol, suxx и т.д. |
TRASH))
|
7.8.2010, 1:52
Сообщение
|
|
|
TRASH)), Жесть что ты с исходником натворил. Сорри чет я внатуре попутал вот переделал... Раскрывающийся текст Код #include <amxmod> #include <amxmisc> #define MODE_ALIVE_HEAR_DEAD 1 #define MODE_ALIVE_CAN_TRIGGER 2 #define MODE_ONLY_ADMINS 4 #define MODE_NO_DISPLAY 8 #define MODE_PARTIAL 16 #define MAX_WORDS 40 #define MAX_SOUNDS 60 #define MAX_STR_LENGTH 32 new words[MAX_WORDS][MAX_STR_LENGTH]; new sounds[MAX_SOUNDS][MAX_STR_LENGTH]; new num_sounds[MAX_WORDS] = {0,...}; new word2sound[MAX_WORDS][MAX_SOUNDS]; new word_count; new sound_count; new sound_use[33] = {0,...}; new muted[33] = {0,...}; new gmsgSayText; public list_sounds() { new line[256]; for (new i = 0; i < word_count; i++) { format(line, 255, "%-20s ", words[i]); for (new j = 0; j < MAX_SOUNDS; j++) { if (word2sound[i][j]) { add(line, 255, sounds[j]); add(line, 255, " "); } } server_print(line); } } public new_sound() { if (read_argc() == 1) { list_sounds(); return PLUGIN_HANDLED; } if (read_argc() != 3) { server_print("Usage: pd_sound <keyword> <soundfile>"); return PLUGIN_HANDLED; } new keyword[MAX_STR_LENGTH]; new snd[MAX_STR_LENGTH]; read_argv(1, keyword, MAX_STR_LENGTH); read_argv(2, snd, MAX_STR_LENGTH); if (! add_sound(keyword, snd)) { log_message("[PD] Too many sounds or words."); } return PLUGIN_HANDLED; } add_sound(keyword[], sound[]) { new word_index = find_word_or_append(keyword); new sound_index = find_sound_or_append(sound); if (word_index >= 0 && sound_index >= 0) { word2sound[word_index][sound_index] = 1; num_sounds[word_index]++; return 1; } return 0; } find_word_or_append(word[]) { new index = find_word(word); if (index != -1) { return index; } else { if (word_count < MAX_WORDS) { copy(words[word_count], MAX_STR_LENGTH, word); word_count++; return word_count - 1; } } return -1; // Max words used. } find_word(word[], partial = 0) { for (new i = 0; i < word_count; i++) { if (partial) { if (containi(word, words[i]) >= 0) { return i; } } else { if (equali(word, words[i])) { return i; } } } return -1; } find_sound_or_append(sound[]) { new index = find_sound(sound); if (index != -1) { return index; } else { if (sound_count < MAX_SOUNDS) { copy(sounds[sound_count], MAX_STR_LENGTH, sound); sound_count++; return sound_count - 1; } } return -1; // Max sounds used. } find_sound(sound[]) { for (new i = 0; i < sound_count; i++) { if (equal(sound, sounds[i])) return i; } return -1; } get_mode() { new mode[6]; get_cvar_string("pd_sound_mode", mode, 5); return read_flags(mode); } public handle_say(id) { new mode = get_mode(); new user_flags = get_user_flags(id); if ((mode & MODE_ONLY_ADMINS) && !(user_flags & ADMIN_LEVEL_A)) return PLUGIN_CONTINUE; if (! (user_flags & ADMIN_IMMUNITY) && (muted[id] || sound_use[id] > get_cvar_num("pd_sound_max"))) return PLUGIN_CONTINUE; new word[MAX_STR_LENGTH]; new part[MAX_STR_LENGTH]; for (new i = 1; i < read_argc(); i++) { read_argv(i, part, MAX_STR_LENGTH-1); add(word, MAX_STR_LENGTH-1, part); if (i < read_argc()-1) add(word, MAX_STR_LENGTH-1, " "); } new index = find_word(word, mode & MODE_PARTIAL); if (index == -1) return PLUGIN_CONTINUE; if (! (user_flags & ADMIN_IMMUNITY) && sound_use[id] > get_cvar_num("pd_sound_warn")) { new says_left = get_cvar_num("pd_sound_max") - sound_use[id]; set_hudmessage(255, 50, 30, -1.0, 0.80, 0, 0.05, 3.0, 0.25, 0.25, 2); if (says_left > 0) { show_hudmessage(id, "STOP TALKING! %d more and you will be muted.", says_left); } else { show_hudmessage(id, "You have been muted. Silence - after all."); client_cmd(id, "spk barney/youtalkmuch"); } } new random_sound = random_num(1, num_sounds[index]); new current_sound = 0; for (new i = 0; i < sound_count; i++) { if (word2sound[index][i]) { current_sound++; if (current_sound == random_sound) { if ((mode & MODE_ALIVE_HEAR_DEAD) || (is_user_alive(id) && (mode & MODE_ALIVE_CAN_TRIGGER))) { // These are the only broadcast situations: Either the // player is alive and alive players may trigger sound or // the player is dead and sounds from dead player are // broadcasted to all players (dead or alive). sound_use[id]++; client_cmd(0, "spk %s", sounds[i]); if (! (mode & MODE_NO_DISPLAY)) { new origin[3]; new message[129]; new name[33]; get_user_name(id, name, 32); format(message, 128, "%c%s : %s^n", 2, name, word); message_begin(MSG_ALL, gmsgSayText, origin, id); write_byte(id); write_string(message); message_end(); } return PLUGIN_HANDLED; } else if (!is_user_alive(id)) { sound_use[id]++; new players[32]; new player_count; get_players(players, player_count, "b"); for (new p = 0; p < player_count; p++) { client_cmd(players[p], "spk %s", sounds[i]); } return PLUGIN_CONTINUE; } } } } return PLUGIN_CONTINUE; } public mute(id, level, cid) { if (! cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED; new target[32]; read_argv(1, target, 31); new player = cmd_target(id, target, 0); if (! player) { console_print(id, "[PD] No player matching '%s'."); return PLUGIN_HANDLED; } get_user_name(player, target, 31); if (get_user_flags(player) & ADMIN_IMMUNITY) { console_print(id, "[PD] Player '%s' has immunity."); return PLUGIN_HANDLED; } new command[32]; read_argv(0, command, 31); muted[player] = (command[9] == 'u') ? 0 : 1; console_print(id, "[PD] Player '%s' has been %s.", target, muted[player] ? "muted" : "unmuted"); return PLUGIN_HANDLED; } public client_connect(id) { new snd[MAX_STR_LENGTH]; get_cvar_string("pd_sound_join", snd, MAX_STR_LENGTH-1); if (! equal(snd, "")) client_cmd(0, "spk %s", snd); sound_use[id] = 0; muted[id] = 0; } public client_disconnect(id) { new snd[MAX_STR_LENGTH]; get_cvar_string("pd_sound_leave", snd, MAX_STR_LENGTH-1); if (! equal(snd, "")) client_cmd(0, "spk %s", snd); } public plugin_init() { register_plugin("PsychoSounds", "0.9.3.1", "PsychoGuard"); register_srvcmd("pd_sound", "new_sound", 0, "<keyword> <sound> [flags]"); register_concmd("pd_sound_mute", "mute", ADMIN_LEVEL_A, "<authid, nick or #userid>"); register_concmd("pd_sound_unmute", "mute", ADMIN_LEVEL_A, "<authid, nick or #userid>"); register_clcmd("say", "handle_say"); register_cvar("pd_sound_file", "addons/amx/sounds.txt"); register_cvar("pd_sound_join", ""); register_cvar("pd_sound_leave", "misc/comeagain.wav"); register_cvar("pd_sound_warn", "20"); register_cvar("pd_sound_max", "25"); register_cvar("pd_sound_mode", "ac"); gmsgSayText = get_user_msgid("SayText"); server_cmd("exec addons/amxmodx/sounds.cfg"); return PLUGIN_CONTINUE } Теперь одно только не пойму где там меняется максимальное количество звуков ... когда меняю расположение звуков в файле sounds.cfg они воспроизводятся но не все... Думал что в строке #define MAX_SOUNDS 60 менял на 999 один фиг не помогает... Звуки воспроизводятся опять же не все... помогите плиз ..... О вот переделал многое в плагине, теперь компилируется и можно закинуть много звуков... вот исходник:
trash_psyhosounds.rar ( 3,33 килобайт )
Кол-во скачиваний: 91
Отредактировал: STR@TEG, - 7.8.2010, 16:04
Причина: впредь используй спойлер. |
Поблагодарили 1 раз
|
|
Eforall
|
9.10.2010, 20:05
Сообщение
|
|
|
Сорри чет я внатуре попутал вот переделал... Раскрывающийся текст Код #include <amxmod> #include <amxmisc> #define MODE_ALIVE_HEAR_DEAD 1 #define MODE_ALIVE_CAN_TRIGGER 2 #define MODE_ONLY_ADMINS 4 #define MODE_NO_DISPLAY 8 #define MODE_PARTIAL 16 #define MAX_WORDS 40 #define MAX_SOUNDS 60 #define MAX_STR_LENGTH 32 new words[MAX_WORDS][MAX_STR_LENGTH]; new sounds[MAX_SOUNDS][MAX_STR_LENGTH]; new num_sounds[MAX_WORDS] = {0,...}; new word2sound[MAX_WORDS][MAX_SOUNDS]; new word_count; new sound_count; new sound_use[33] = {0,...}; new muted[33] = {0,...}; new gmsgSayText; public list_sounds() { new line[256]; for (new i = 0; i < word_count; i++) { format(line, 255, "%-20s ", words[i]); for (new j = 0; j < MAX_SOUNDS; j++) { if (word2sound[i][j]) { add(line, 255, sounds[j]); add(line, 255, " "); } } server_print(line); } } public new_sound() { if (read_argc() == 1) { list_sounds(); return PLUGIN_HANDLED; } if (read_argc() != 3) { server_print("Usage: pd_sound <keyword> <soundfile>"); return PLUGIN_HANDLED; } new keyword[MAX_STR_LENGTH]; new snd[MAX_STR_LENGTH]; read_argv(1, keyword, MAX_STR_LENGTH); read_argv(2, snd, MAX_STR_LENGTH); if (! add_sound(keyword, snd)) { log_message("[PD] Too many sounds or words."); } return PLUGIN_HANDLED; } add_sound(keyword[], sound[]) { new word_index = find_word_or_append(keyword); new sound_index = find_sound_or_append(sound); if (word_index >= 0 && sound_index >= 0) { word2sound[word_index][sound_index] = 1; num_sounds[word_index]++; return 1; } return 0; } find_word_or_append(word[]) { new index = find_word(word); if (index != -1) { return index; } else { if (word_count < MAX_WORDS) { copy(words[word_count], MAX_STR_LENGTH, word); word_count++; return word_count - 1; } } return -1; // Max words used. } find_word(word[], partial = 0) { for (new i = 0; i < word_count; i++) { if (partial) { if (containi(word, words[i]) >= 0) { return i; } } else { if (equali(word, words[i])) { return i; } } } return -1; } find_sound_or_append(sound[]) { new index = find_sound(sound); if (index != -1) { return index; } else { if (sound_count < MAX_SOUNDS) { copy(sounds[sound_count], MAX_STR_LENGTH, sound); sound_count++; return sound_count - 1; } } return -1; // Max sounds used. } find_sound(sound[]) { for (new i = 0; i < sound_count; i++) { if (equal(sound, sounds[i])) return i; } return -1; } get_mode() { new mode[6]; get_cvar_string("pd_sound_mode", mode, 5); return read_flags(mode); } public handle_say(id) { new mode = get_mode(); new user_flags = get_user_flags(id); if ((mode & MODE_ONLY_ADMINS) && !(user_flags & ADMIN_LEVEL_A)) return PLUGIN_CONTINUE; if (! (user_flags & ADMIN_IMMUNITY) && (muted[id] || sound_use[id] > get_cvar_num("pd_sound_max"))) return PLUGIN_CONTINUE; new word[MAX_STR_LENGTH]; new part[MAX_STR_LENGTH]; for (new i = 1; i < read_argc(); i++) { read_argv(i, part, MAX_STR_LENGTH-1); add(word, MAX_STR_LENGTH-1, part); if (i < read_argc()-1) add(word, MAX_STR_LENGTH-1, " "); } new index = find_word(word, mode & MODE_PARTIAL); if (index == -1) return PLUGIN_CONTINUE; if (! (user_flags & ADMIN_IMMUNITY) && sound_use[id] > get_cvar_num("pd_sound_warn")) { new says_left = get_cvar_num("pd_sound_max") - sound_use[id]; set_hudmessage(255, 50, 30, -1.0, 0.80, 0, 0.05, 3.0, 0.25, 0.25, 2); if (says_left > 0) { show_hudmessage(id, "STOP TALKING! %d more and you will be muted.", says_left); } else { show_hudmessage(id, "You have been muted. Silence - after all."); client_cmd(id, "spk barney/youtalkmuch"); } } new random_sound = random_num(1, num_sounds[index]); new current_sound = 0; for (new i = 0; i < sound_count; i++) { if (word2sound[index][i]) { current_sound++; if (current_sound == random_sound) { if ((mode & MODE_ALIVE_HEAR_DEAD) || (is_user_alive(id) && (mode & MODE_ALIVE_CAN_TRIGGER))) { // These are the only broadcast situations: Either the // player is alive and alive players may trigger sound or // the player is dead and sounds from dead player are // broadcasted to all players (dead or alive). sound_use[id]++; client_cmd(0, "spk %s", sounds[i]); if (! (mode & MODE_NO_DISPLAY)) { new origin[3]; new message[129]; new name[33]; get_user_name(id, name, 32); format(message, 128, "%c%s : %s^n", 2, name, word); message_begin(MSG_ALL, gmsgSayText, origin, id); write_byte(id); write_string(message); message_end(); } return PLUGIN_HANDLED; } else if (!is_user_alive(id)) { sound_use[id]++; new players[32]; new player_count; get_players(players, player_count, "b"); for (new p = 0; p < player_count; p++) { client_cmd(players[p], "spk %s", sounds[i]); } return PLUGIN_CONTINUE; } } } } return PLUGIN_CONTINUE; } public mute(id, level, cid) { if (! cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED; new target[32]; read_argv(1, target, 31); new player = cmd_target(id, target, 0); if (! player) { console_print(id, "[PD] No player matching '%s'."); return PLUGIN_HANDLED; } get_user_name(player, target, 31); if (get_user_flags(player) & ADMIN_IMMUNITY) { console_print(id, "[PD] Player '%s' has immunity."); return PLUGIN_HANDLED; } new command[32]; read_argv(0, command, 31); muted[player] = (command[9] == 'u') ? 0 : 1; console_print(id, "[PD] Player '%s' has been %s.", target, muted[player] ? "muted" : "unmuted"); return PLUGIN_HANDLED; } public client_connect(id) { new snd[MAX_STR_LENGTH]; get_cvar_string("pd_sound_join", snd, MAX_STR_LENGTH-1); if (! equal(snd, "")) client_cmd(0, "spk %s", snd); sound_use[id] = 0; muted[id] = 0; } public client_disconnect(id) { new snd[MAX_STR_LENGTH]; get_cvar_string("pd_sound_leave", snd, MAX_STR_LENGTH-1); if (! equal(snd, "")) client_cmd(0, "spk %s", snd); } public plugin_init() { register_plugin("PsychoSounds", "0.9.3.1", "PsychoGuard"); register_srvcmd("pd_sound", "new_sound", 0, "<keyword> <sound> [flags]"); register_concmd("pd_sound_mute", "mute", ADMIN_LEVEL_A, "<authid, nick or #userid>"); register_concmd("pd_sound_unmute", "mute", ADMIN_LEVEL_A, "<authid, nick or #userid>"); register_clcmd("say", "handle_say"); register_cvar("pd_sound_file", "addons/amx/sounds.txt"); register_cvar("pd_sound_join", ""); register_cvar("pd_sound_leave", "misc/comeagain.wav"); register_cvar("pd_sound_warn", "20"); register_cvar("pd_sound_max", "25"); register_cvar("pd_sound_mode", "ac"); gmsgSayText = get_user_msgid("SayText"); server_cmd("exec addons/amxmodx/sounds.cfg"); return PLUGIN_CONTINUE } Теперь одно только не пойму где там меняется максимальное количество звуков ... когда меняю расположение звуков в файле sounds.cfg они воспроизводятся но не все... Думал что в строке #define MAX_SOUNDS 60 менял на 999 один фиг не помогает... Звуки воспроизводятся опять же не все... помогите плиз ..... О вот переделал многое в плагине, теперь компилируется и можно закинуть много звуков... вот исходник:
trash_psyhosounds.rar ( 3,33 килобайт )
Кол-во скачиваний: 91Плагин то что нада переделан вот одна проблема! Когда я прописываю в плагин.ини psychosound.amxx так все нормально звуки качает работают но не все. если я беру компилить исходник psychosound.sma и добавляю его в плагин.ини (psychosound.amxx) звуки не качает я так понимаю исходник не доработан? и ты брал из этого исходника... так ведь? что сделать что бы те звуки которые мне нужно загружались клиенту. Может какойто сторонеий плагин... |
|
|
|
STR@TEG
|
12.10.2010, 16:16
Сообщение
|
|
|
Eforall,
Отредактируй исходник под свои нужды. Как пример можно взять исходник из первого поста или выше. |
|
|
|
ilovefedyrko
|
3.4.2011, 2:48
Сообщение
|
|
|
помогите установить эти звуки! у меня не получается((
|
|
|
|
maxim2011
|
2.6.2011, 16:32
Сообщение
|
|
|
спс, кулл, всё работает
|
|
|
|
lololo123
|
12.3.2012, 1:12
Сообщение
|
|
|
Обращаюсь к тем у кого все работает .. будьте добры , засветите внутренности файла sounds. Примного благодарен!!!
Отредактировал: lololo123, - 12.3.2012, 1:12
|
|
|
|
123cs123
|
5.4.2012, 17:09
Сообщение
|
|
|
я эту прог скачал и я эту прогу и че сним делать(
|
|
|
|
HumanQRS
|
20.2.2014, 4:25
Сообщение
|
![]() |
Плагин активен - звуки не качает, эффекта нету.
|
|
|
|
VenigreT
|
28.3.2017, 16:24
Сообщение
|
|
|
А есть ссылка на рабочий плагин?
Этот совсем не работает.. |
|
|
|
VenigreT
|
31.3.2017, 4:15
Сообщение
|
|
|
Не подскажите?
|
|
|
|
VenigreT
|
9.4.2017, 9:55
Сообщение
|
|
|
Ребят, может кто-нибудь помочь с плагином?
|
|
|
|
VenigreT
|
10.4.2017, 13:15
Сообщение
|
|
|
up
|
|
|
|
ssx
|
10.4.2017, 13:37
Сообщение
|
![]() |
![]() [Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018 [CS 1.6 DM AIM] 78.152.169.100:27017 [CS 1.6 DM FFA] 78.152.169.100:27015 |
|
|
|
VenigreT
|
13.4.2017, 13:51
Сообщение
|
|
|
Всё равно не работает плагин.. звуки не воспроизводит.
|
|
|
|
![]() ![]() |