Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

2 страниц V   1 2

Звук при сообщении в чат

, Нужен плагин
Статус пользователя MrTsar
сообщение 21.8.2014, 12:35
Сообщение #1


Стаж: 13 лет

Сообщений: 206
Благодарностей: 7
Полезность: < 0

Суть такова: когда любой игрок(вип/невип) пишет в чат воспроизводится короткий звуковой сигнал. Может есть такой плагин, подскажите, или же может кто силен сам такой сделать.
Воизбежания конфликтов с другими плагинами, вот список дополнительных плагинов на моем сервере:
Список плагинов
simple_wh_blocker.amxx
statsx_shell.amxx
amx_demorecorder.amxx
admin_check.amxx
voteban1_2.amxx
vip_system.amxx
resetscore.amxx
weaponmenu_cl.amxx
killa_hp+dist.amxx
EvilAdmin.amxx
EvilArmy.amxx
EvilDamage.amxx
EvilDeadChat.amxx
EvilMenu.amxx
C4timer.amxx
amx_parachute.amxx
instant_autoteambalance.amxx
format_player.amxx
automatic_knife_duel.amxx
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Legenda
сообщение 21.8.2014, 12:37
Сообщение #2


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

когда пишет нельзя
можно только тогда, когда уже отправил сообщение в чат
как-то так примерно
Код:

// Plugin Info
new const PLUGIN[] = "Say Sounds"
new const VERSION[] = "0.1"
new const AUTHOR[] = "leg bredit"

#include <amxmodx>

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

register_clcmd("say","play_sound")
register_clcmd("say_team","play_sound")
}

public play_sound(id)
{
for(new i=1;i<=get_maxplayers();i++)
if(is_user_connected(i)==1 )
client_cmd(i, "play sound/events/friend_died.wav");
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 21.8.2014, 20:58
Сообщение #3
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

Код
#include <amxmodx>

public plugin_init()
{
    register_plugin("Say Sound", "1.0", "Sutar")
    
    register_clcmd("say", "play_sound")
    register_clcmd("say_team", "play_sound")
}

public play_sound()
{
    client_cmd(0, "play sound\my_sound.wav");
    return PLUGIN_CONTINUE;
}

public plugin_precache()
    precache_sound("play sound/my_sound.wav");


Отредактировал: Orty_Hart, - 21.8.2014, 21:00
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя MrTsar
сообщение 22.8.2014, 9:41
Сообщение #4


Стаж: 13 лет

Сообщений: 206
Благодарностей: 7
Полезность: < 0

Опробую отпишу! Спасибо всем! Я и имел ввиду когда сообщение отправлено уже, просто не так выразился)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MrTsar
сообщение 22.8.2014, 10:48
Сообщение #5


Стаж: 13 лет

Сообщений: 206
Благодарностей: 7
Полезность: < 0

Цитата(Orty_Hart @ 21.8.2014, 21:58) *
Код
#include <amxmodx>

public plugin_init()
{
    register_plugin("Say Sound", "1.0", "Sutar")
    
    register_clcmd("say", "play_sound")
    register_clcmd("say_team", "play_sound")
}

public play_sound()
{
    client_cmd(0, "play sound\my_sound.wav");
    return PLUGIN_CONTINUE;
}

public plugin_precache()
    precache_sound("play sound/my_sound.wav");

Что то с кешированием не так, компилирую ставлю, и коннект к серверу останавливается при загрузке ресурсов. Или же я неправильно закинул звуковой файл. Бросал в (cstrike\sound)
Разобрался, файл клиенту передает, но плагин свою функцию не исполняет. Правленый код:
Код
#include <amxmodx>

public plugin_init()
{
    register_plugin("Say Sound", "1.0", "Sutar")
    
    register_clcmd("say", "play_sound")
    register_clcmd("say_team", "play_sound")
}

public play_sound()
{
    client_cmd(0, "play radio\chatsound.wav");
    return PLUGIN_CONTINUE;
}

public plugin_precache()
    precache_sound("radio/chatsound.wav");


Отредактировал: MrTsar, - 22.8.2014, 11:01
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя DumoH4uk
сообщение 22.8.2014, 10:50
Сообщение #6


Стаж: 14 лет

Сообщений: 188
Благодарностей: 81
Полезность: 122

Цитата(MrTsar @ 22.8.2014, 12:48) *
Что то с кешированием не так, компилирую ставлю, и коннект к серверу останавливается при загрузке ресурсов. Или же я неправильно закинул звуковой файл. Бросал в (cstrike\sound)

Код:
precache_sound("play sound/my_sound.wav");


->>

Код:
 precache_sound("sound/my_sound.wav");


И

Код:
 client_cmd(0, "play sound\my_sound.wav");


->>

Код:
 client_cmd(0, "spk sound\my_sound.wav");


Скрытый текст
Или spk ->> speak (хз в чем различия, у меня speak стоит) наверное сокращение просто от speak


Отредактировал: DumoH4uk, - 22.8.2014, 10:56
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 22.8.2014, 11:04
Сообщение #7


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

правильный код во втором посте)
не нужно плодить сущности
используется стандартные звуковой файл

spk только wav mono проигрывает
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MrTsar
сообщение 22.8.2014, 11:11
Сообщение #8


Стаж: 13 лет

Сообщений: 206
Благодарностей: 7
Полезность: < 0

Цитата(Legenda @ 22.8.2014, 12:04) *
правильный код во втором посте)
не нужно плодить сущности
используется стандартные звуковые файлы

spk только wav mono проигрывает

Ничего из перечисленного выше не дает результат!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя qvadro
сообщение 22.8.2014, 11:12
Сообщение #9


Стаж: 16 лет

Сообщений: 358
Благодарностей: 147
Полезность: 579

не люблю использование client_cmd

Код:
emit_sound(id, 0, "my_sound.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);


Достойно парировать, к сожалению, умеют далеко не многие. Нельзя наказывать людей за критику.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 22.8.2014, 11:19
Сообщение #10


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Цитата(MrTsar @ 22.8.2014, 13:11) *
Ничего из перечисленного выше не дает результат!

не может быть
мой плагин отлично работает

запусти игру, открой консоль клиента и копируй
play sound/events/friend_died.wav

и проверь будет ли играть звук
а потом проверь
spk events/friend_died.wav

на лицензионном клиенте игры всё отлично работает)
может у тебя какая-то кривая пиратка с вырезанными звуками стандартными либо еще что-то
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MrTsar
сообщение 22.8.2014, 11:20
Сообщение #11


Стаж: 13 лет

Сообщений: 206
Благодарностей: 7
Полезность: < 0

Прошу прощения! Второй пост действительно решение проблемы! Просто звук не воспроизводится игроку который отправил сообщение) Спасибо всем кто старался!)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 22.8.2014, 11:22
Сообщение #12


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Цитата(MrTsar @ 22.8.2014, 13:20) *
Прошу прощения! Второй пост действительно решение проблемы! Просто звук не воспроизводится игроку который отправил сообщение) Спасибо всем кто старался!)


Скрытый текст

Код:

// Plugin Info
new const PLUGIN[] = "Say Sounds"
new const VERSION[] = "0.1"
new const AUTHOR[] = "leg bredit"

#include <amxmodx>

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

register_clcmd("say","play_sound")
register_clcmd("say_team","play_sound")
}

public play_sound(id)
{
for(new i=1;i<=get_maxplayers();i++)
if(is_user_connected(i)==1 )
client_cmd(i, "play sound/events/friend_died.wav");
}


в плагине под спойлером звук воспроизводится всем игрокам
скорее уж клиент игры кривой с вырезанными стандартными звуками
код кстати отлично работает, пришлось самому проверить...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Stimul1
сообщение 22.8.2014, 14:34
Сообщение #13


Стаж: 13 лет

Сообщений: 227
Благодарностей: 262
Полезность: 977

Legenda, почему значение get_maxplayers() не запомнено в plugin_init(), и зачем там цикл вообще?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 22.8.2014, 14:44
Сообщение #14


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Цитата(Stimul1 @ 22.8.2014, 16:34) *
Legenda, почему значение get_maxplayers() не запомнено в plugin_init(), и зачем там цикл вообще?

что бы сообщения отправлять только тем игрокам, которые подключены...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
serfreeman1337
сообщение 22.8.2014, 15:45
Сообщение #15
Стаж: 13 лет

Сообщений: 912
Благодарности: выкл.

Цитата(Legenda @ 22.8.2014, 17:44) *
что бы сообщения отправлять только тем игрокам, которые подключены...

get_players, не?
В get_maxplayers всегда будет общее кол-во слотов на сервере.

Цитата
i<=get_maxplayers()

Этот код выполняется каждый цикл, и того мы имеем 64 обращения к нативам :D

Сравнение методов получения списка игроков
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 22.8.2014, 18:11
Сообщение #16
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

Legenda,
опростив задачу, можно указать 0 вместо всех игроков, и будет еффект тот-же. Но код меньше и меньше выделятся памяти для кода.

MrTsar,
Прошу прощение, не посмотрел...
Вот исправил:

Код
#include <amxmodx>

public plugin_init()
{
    register_plugin("Say Sound", "1.0", "Sutar")
    
    register_clcmd("say", "play_sound")
    register_clcmd("say_team", "play_sound")
}

public play_sound()
{
    client_cmd(0, "spk  ^"radio\chatsound.wav^"");
    return PLUGIN_CONTINUE
}

public plugin_precache()
    precache_sound("radio/chatsound.wav");


spk - для wav форматов, а play для mp3
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 22.8.2014, 18:22
Сообщение #17


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Цитата(serfreeman1337 @ 22.8.2014, 17:45) *
get_players, не?
В get_maxplayers всегда будет общее кол-во слотов на сервере.


Этот код выполняется каждый цикл, и того мы имеем 64 обращения к нативам :D

Сравнение методов получения списка игроков


Цитата
Ответ очевиден, использование метода loop – признак плохого кода и не опытности автора, ну, или лени :p

скорее уж второе) лень она такая) вообще код копировал, а буковки аж по одной)
понятно что код не быстрый) так и делал от балды для примера)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mcrc
сообщение 29.8.2014, 3:24
Сообщение #18


Стаж: 12 лет

Сообщений: 70
Благодарностей: 6
Полезность: 70

А как добавить исключения?
Чтобы, к примеру, звук не воспроизводился для сообщений, типа rs
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Esecman
сообщение 29.8.2014, 13:17
Сообщение #19
Стаж: 12 лет

Сообщений: 945
Благодарностей: 208
Полезность: 0

Цитата(mcrc @ 29.8.2014, 4:24) *
А как добавить исключения?
Чтобы, к примеру, звук не воспроизводился для сообщений, типа rs

Код:

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say", "handle_say")
}

public handle_say(id)
{
new said[192]
read_args(said,191)

if(contain(said, "/rs") != -1 || contain(said, "/resetscore"))
return PLUGIN_HANDLED
}


Отредактировал: Esecman, - 29.8.2014, 13:18
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя mcrc
сообщение 30.8.2014, 4:38
Сообщение #20


Стаж: 12 лет

Сообщений: 70
Благодарностей: 6
Полезность: 70

Цитата(Esecman @ 29.8.2014, 18:17) *
Код:

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say", "handle_say")
}

public handle_say(id)
{
new said[192]
read_args(said,191)

if(contain(said, "/rs") != -1 || contain(said, "/resetscore"))
return PLUGIN_HANDLED
}

Компилятор вернул ошибку:
// F:\\11.sma(15) : warning 209: function "handle_say" should return a value

Как поправить?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
2 страниц V   1 2
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: