Вечер добрый, столкнулся с проблемой, что при попытке вернуть значение переменной в нативной функции получаю стабильно варнинг о том что результат такой же. Ошибка "Warning 213 : tag mistmatch (line)"
Строки с варнингом 37, 40, 43.
Сначала возвращал значение вот так
Код:
...
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;
}