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

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

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

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

Натив не работает должным образом

, Через натив передаётся неправильно значение аргумента
Статус пользователя grushagru
сообщение 31.3.2017, 20:34
Сообщение #1
Стаж: 11 лет

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

Здравствуйте, не могу понять что происходит, через логи видно, что доходит неправильная информация. Что я сделал не так?

Плагин, куда посылается натив:
Cкрытый текст
Код
#include <amxmodx>

#define PLUGIN "Send Audio Native System"
#define VERSION "1.0"
#define AUTHOR "Grusha :D"

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

public plugin_natives()
{
    register_native("SendAudio", "native_SendAudio", 1);
}

public native_SendAudio(id, const sound[], const bool:emit, const bool:stopsound)
{
    log_amx("Native SendAudio SHOPSOUND= %s", sound);
    if(containi(sound, ".wav"))
    {
        if(emit)
        {
            log_amx("Native if(emit) SendAudio SHOPSOUND= %s", sound);
            emit_sound(id, CHAN_ITEM, sound, VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
        }
        //else
        //    client_cmd(id, "%sspk %s", stopsound ? "mp3 stop; stopsound; " : "", sound);
    }
    //else if(containi(sound, ".mp3"))
    //    client_cmd(id, "%smp3 play %s", stopsound ? "mp3 stop; stopsound; " : "", sound);
}

Натив из плагина:
Cкрытый текст
Код
native SendAudio(id, const sound[], bool:emit, bool:stopsound);

public effects(id, bool:anim, bool:beam, bool:sound)
{
    if(anim)
        animation(id);
  
    if(beam)
    {
        static Float:originF[3];
        pev(id, pev_origin, originF);
      
        create_beam(originF, 255, 25, 25);
    }
  
    if(sound)
        //emit_sound(id, CHAN_ITEM, SHOPSOUND, VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
        {
            log_amx("SendAudio SHOPSOUND= %s", SHOPSOUND);
            SendAudio(id, SHOPSOUND, true, false); //SendAudio(id, sound, bool:emit, bool:stopsound)
        }
  
}


В логах при попытке воспроизвести звук в консоле пишется всякое разное:
Cкрытый текст
L 03/31/2017 - 18:58:30: [deathrun_shop_items. amxx] SendAudio SHOPSOUND= items/gunpickup2.wav
L 03/31/2017 - 18:58:30: [SendAudioV1.amxx] Native SendAudio SHOPSOUND= AGENTA
L 03/31/2017 - 18:58:30: [SendAudioV1.amxx] Native if(emit) SendAudio SHOPSOUND= AGENTA

L 03/31/2017 - 19:02:43: [deathrun_shop_items.amxx] SendAudio SHOPSOUND= items/gunpickup2.wav
L 03/31/2017 - 19:02:43: [SendAudioV1.amxx] Native SendAudio SHOPSOUND= eAPI]: Api major version mismatch; expected %d, real %d
L 03/31/2017 - 19:02:43: [SendAudioV1.amxx] Native if(emit) SendAudio SHOPSOUND= eAPI]: Api major version mismatch; expected %d, real %d
SV_BuildSoundMsg: eAPI]: Api major version mismatch; expected %d, real %d not precached (0)

L 03/31/2017 - 19:40:21: [deathrun_shop_items.amxx] SendAudio SHOPSOUND= items/gunpickup2.wav
L 03/31/2017 - 19:40:21: [SendAudioV1.amxx] Native SendAudio SHOPSOUND=
L 03/31/2017 - 19:40:21: [SendAudioV1.amxx] Native if(emit) SendAudio SHOPSOUND=
SV_BuildSoundMsg: not precached (0)

L 03/31/2017 - 21:02:59: [deathrun_shop_items.amxx] SendAudio SHOPSOUND= items/gunpickup2.wav
L 03/31/2017 - 21:02:59: [SendAudioV1.amxx] Native SendAudio SHOPSOUND= ns
L 03/31/2017 - 21:02:59: [SendAudioV1.amxx] Native if(emit) SendAudio SHOPSOUND= ns
SV_BuildSoundMsg: ns not precached (0)

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя fl0werD
сообщение 2.4.2017, 16:36
Сообщение #2
Стаж: 9 лет 2 месяца

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

Строку так просто не получишь. Надо так:
Код:
public native_SendAudio(id, const sound[], const bool:emit, const bool:stopsound)
{
param_convert(2)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: