Русское сообщество по скриптингу

Через натив передаётся неправильно значение аргумента  [Решено]

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Через натив передаётся неправильно значение аргумента

Сообщение Grushka » 01 апр 2017, 00:44

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

Плагин, куда посылается натив:

Код: Выделить всё
#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);

Натив из плагина:

Код: Выделить всё
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)
        }
  

В логах при попытке воспроизвести звук в консоле пишется всякое разное:

Код: Выделить всё
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)
:-)
Аватара пользователя
Grushka
 
Сообщения: 84
Зарегистрирован: 13 июн 2013, 22:06
Благодарил (а): 35 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6

Re: Через натив передаётся неправильно значение аргумента  [Решено]

Сообщение Mistrick » 01 апр 2017, 07:41

param_convert(2) - строки приходящие в натив надо конвертировать, если вы используете новый стиль.
Аватара пользователя
Mistrick
Скриптер
 
Сообщения: 2940
Зарегистрирован: 04 ноя 2012, 18:15
Благодарил (а): 43 раз.
Поблагодарили: 1247 раз.
Языки программирования: PAWN
С/С++(few above zero)


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 8