Native Tag Mismatch

Сообщения
95
Реакции
21
Вечер добрый, столкнулся с проблемой, что при попытке вернуть значение переменной в нативной функции получаю стабильно варнинг о том что результат такой же. Ошибка "Warning 213 : tag mistmatch (line)"

Код:
...
enum Rifles { AK47, M4A1, AWP, Nothing };
enum Pistols { Deagle, Nothing2 };
enum Other { Armor, Nothing3 };

new Rifles:g_iPlayerRifle[MAX_CLIENTS+1];
new Pistols:g_iPlayerPistol[MAX_CLIENTS+1];
new Other:g_iPlayerOther[MAX_CLIENTS+1];
 
public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
    RegisterHookChain(RG_CBasePlayer_OnSpawnEquip, "CBasePlayer_OnSpawnEquip", 1);
}

public plugin_natives()
{
    register_native("change_weapon", "SwitchWeapon_Callback", 1);
    register_native("return_weapon", "ReturnWeapon_Callback", 1);
}

public SwitchWeapon_Callback(id, status)
{
    if(status == 1)
        g_iPlayerRifle[id] == Nothing ? (g_iPlayerRifle[id] = AK47) : g_iPlayerRifle[id]++;
 
    if(status == 2)
        g_iPlayerPistol[id] == Nothing2 ? (g_iPlayerPistol[id] = Deagle) : g_iPlayerPistol[id]++;
 
    if(status == 3)
        g_iPlayerOther[id] == Nothing3 ? (g_iPlayerOther[id] = Armor) : g_iPlayerOther[id]++;
}

public ReturnWeapon_Callback(id, status, value)
{
    if(status == 1)
        value = g_iPlayerRifle[id];
 
    if(status == 2)
        value = g_iPlayerPistol[id];
 
    if(status == 3)
        value = g_iPlayerOther[id];

    return value;
}
.....

Строки с варнингом 37, 40, 43.

Сначала возвращал значение вот так

Код:
public ReturnWeapon_Callback(id, status)
{
    if(status == 1)
        return g_iPlayerRifle[id];
 
    if(status == 2)
        return g_iPlayerPistol[id];
 
    if(status == 3)
        return g_iPlayerOther[id];

    return PLUGIN_CONTINUE;
}

/* понял что не разумно и думал из-за этого таг мисматч, ввел доп переменную value,
но проблема не исчезла, сейчас выглядит вовзрат значения вот так: */

public ReturnWeapon_Callback(id, status, value)
{
    if(status == 1)
        value = g_iPlayerRifle[id];
 
    if(status == 2)
        value = g_iPlayerPistol[id];
 
    if(status == 3)
        value = g_iPlayerOther[id];

    return value;
}
 
Сообщения
1,698
Реакции
1,510
Помог
26 раз(а)
Вот так попробуй:
Код:
public ReturnWeapon_Callback(id, status)
{
    new any: iValue;

    switch(status)
    {
        case 1: iValue = g_iPlayerRifle[id];
        case 2: iValue = g_iPlayerPistol[id];
        case 3: iValue = g_iPlayerOther[id];

    }

    return iValue;
}
 
Последнее редактирование:
Сообщения
1,698
Реакции
1,510
Помог
26 раз(а)
Убрал хайд, раз сработало)
 
Сообщения
95
Реакции
21
fl0wer, так что вот значит вот это any:iValue ? интересует именно any ибо не нашел описания
 
Сообщения
1,698
Реакции
1,510
Помог
26 раз(а)

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

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