Отловить emit_sound(player, CHAN_ITEM, "common/custom_sound.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)

Сообщения
88
Реакции
-9
Предупреждения
31
Помог
1 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
emit_sound(player, CHAN_ITEM, "common/custom_sound.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)

Есть ли способ отловить данное событие ?
Код:
register_forward(FM_EmitSound , "EmitSound");
register_forward(FM_EmitAmbientSound , "EmitSound");

эти функции не ловят!
 
Сообщения
53
Реакции
0
Помог
1 раз(а)
Ulianochka, тут несколько вариантов есть можно просто сделать собственную обертку звука для функции emit_sound
либо использовать библиотеку инклуйда
Код:
#include <orpheu>
#include <orpheu_stocks>
и использовать форматы хука

Код:
 OrpheuRegisterHook(OrpheuGetEngineFunction("pfnEmitSound", "EmitSound"), "Hook_EmitSound");

это как варианты подробнее смотри инклуйды которые я упоминал выше , в прицепе этого должно быть достаточно
 
Сообщения
870
Реакции
535
Помог
13 раз(а)
Ulianochka, тут несколько вариантов есть можно просто сделать собственную обертку звука для функции emit_sound
либо использовать библиотеку инклуйда
Код:
#include <orpheu>
#include <orpheu_stocks>
и использовать форматы хука

Код:
 OrpheuRegisterHook(OrpheuGetEngineFunction("pfnEmitSound", "EmitSound"), "Hook_EmitSound");

это как варианты подробнее смотри инклуйды которые я упоминал выше , в прицепе этого должно быть достаточно
либо, если есть реапи, использовать RH_SV_StartSound

другие варианты не перехватывают кастомную отправку звуков
 
Сообщения
53
Реакции
0
Помог
1 раз(а)
либо, если есть реапи, использовать RH_SV_StartSound

другие варианты не перехватывают кастомную отправку звуков

про RH_SV_StartSound я забыл
а варианты которые я писал просто проверял лично перехватывают но с костылями но работают )
 
Сообщения
88
Реакции
-9
Предупреждения
31
Помог
1 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Орфей не хочу, а
Код:
public plugin_init()
{
    RegisterHookChain(RH_SV_StartSound, "SV_StartSound", .post = false);
}


public SV_StartSound(const recipients, const entity, const channel, const sample[], const volume, Float:attenuation, const fFlags, const pitch)
{
    server_print("Hello sound")
}
не заработало. Бросила эту проблему до лучших времен. Спасибо всем.
 
Сообщения
1,097
Реакции
61
Помог
11 раз(а)
Ulianochka, а что не заработало?
Код:
#include <amxmodx>
#include <reapi>

public plugin_init()
{
    RegisterHookChain(RH_SV_StartSound, "SV_StartSound", .post = false);
}


public SV_StartSound(const recipients, const entity, const channel, const sample[], const volume, Float:attenuation, const fFlags, const pitch)
{
    server_print("**** %s", sample);
}
**** weapons/knife_deploy1.wav
**** items/gunpickup2.wav
**** items/gunpickup2.wav
**** items/gunpickup2.wav
**** items/gunpickup2.wav
**** weapons/he_bounce-1.wav
**** weapons/he_bounce-1.wav
**** weapons/he_bounce-1.wav
**** weapons/he_bounce-1.wav
**** weapons/he_bounce-1.wav
**** player/bhit_flesh-2.wav
**** player/bhit_flesh-1.wav
**** weapons/debris3.wav
 
Сообщения
88
Реакции
-9
Предупреждения
31
Помог
1 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Code_0xABC,
server_print

ничего не отписал при проигрывании EMIT_SOUND ,вообще функция ничего не регала, не в POST не в PRE возможно устарела моя версия билда и нет или этой функции в модуле или ещё что то. тестировала на ReGameDLL 5/26/0/668-dev c ReHLDS 3.7.0.692-dev (плагин был Running, другие функции в плагине работали нормально, ошибочных регистраций функций в plugin_init отсутствовало- проверяла заменой назначения данной функции ) Даже ваш плагин протестила , тоже 0 результата. Тест был на WINDOWS версии AMXMODX VERSION 1.9.0.5249
 
Последнее редактирование:
Сообщения
145
Реакции
276
Помог
1 раз(а)
Вы хотите вызвать emit_sound в одном плагине и в другом перехватить вызов этой функции на уровне амх ?
 
Сообщения
88
Реакции
-9
Предупреждения
31
Помог
1 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
SISA, конечно. Иначе в одном плагине мне бы не надо было ничего хукать , я бы просто использовала альтернативный
Код:
EF_BuildSoundMSG ( const ENTITY, channel, const SAMPLE[], Float:volume, Float:attenuation, fFlags, pitch, msg_dest, msg_type, const Float:ORIGIN[3], const ED )
. и сразу посылала бы нужному игроку.
 
Сообщения
145
Реакции
276
Помог
1 раз(а)
Вряд ли удастся перехватить pfnEmitSound вызванный из под АМХ в рамках самого амх. Если есть доступ к исходному коду плагинов, можно использовать те же формарды, а при очень редких вызовах server_cmd + server_exec, чтобы не связывать плагины. В любом случае эти способы дадут намного меньше нагрузки, чем глобальные хуки EMIT_SOUND и их долбежка со всего сервера + отработка условий внутри функции.
 
Сообщения
88
Реакции
-9
Предупреждения
31
Помог
1 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Сообщения
1,097
Реакции
61
Помог
11 раз(а)
Code_0xABC,
server_print

ничего не отписал при проигрывании EMIT_SOUND ,вообще функция ничего не регала, не в POST не в PRE возможно устарела моя версия билда и нет или этой функции в модуле или ещё что то. тестировала на ReGameDLL 5/26/0/668-dev c ReHLDS 3.7.0.692-dev (плагин был Running, другие функции в плагине работали нормально, ошибочных регистраций функций в plugin_init отсутствовало- проверяла заменой назначения данной функции ) Даже ваш плагин протестила , тоже 0 результата. Тест был на WINDOWS версии AMXMODX VERSION 1.9.0.5249
А подробнее можно о твоей затее узнать?
 
Сообщения
88
Реакции
-9
Предупреждения
31
Помог
1 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
А подробнее можно о твоей затее узнать?
@Code_0xABC, Хочу создать плагин в котором игроки могут в меню выбирать какие звуки они хотят слышать а какие нет и в этом списке будут звуки других плагинов с EMIT_SOUND, которые с закрытым кодом и нет возможности их редактировать, или нету времени на это.
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу