Sekret, не обязательно, плагины без перекомпиляции будут работать.
Алексеич, большинство,
но не все. В модулях бывают изменения "связок" к AMXX в виде форвардов и натив, как их параметров так и их самих. В случае не верного объявления "структур", по которым идёт связка с AMXX к Metamod будут возникать ошибки.
К примеру, при компиляции системой плагина с использованием публичной переменной
MaxClients
, которая является динамической "константой". Компилятор сформировал для интерпретатора виртуальной машины AMXX таковое понятие, а сама система AMXX (библиотека) такового понятия и вовсе не имеет, и это кончится ошибкой о использовании неизвестного звена. (Пример скомпилированного для AMXX 1.8.3 и использовании его же в системе AMXX 1.8.2). Такого рода случаи возможны и в "обратном направлении использования. Поэтому, лучше заранее давать компилятору грамотные инструкции для подготовки байт-кода для виртуальной машины, во избежание неопределённого поведения.
Что причастно конкретно к данному плагину:
Код:
RegisterHam(Ham_Killed, "player", "CBasePlayer_Killed_Pre", .Post = false, .specialbot = true);
При объявлении последнего параметра данной функции компилятором сформируется код, который не будет поддерживать интерпретатор AMXX 1.8.2
Аналогично с циклами:
Код:
for(new i = 1; i < MaxClients; i++)
27 Авг 2018
crashing players when someone suicide ;d
kontakt, add this hotfix to you plugin. I will add this code on next update.
Код:
stock bool: IsValidKill(pPlayer, pKiller)
{
-#pragma unused pPlayer
+// Hotfix: (fix client crush when player do suicide)
+ if(pPlayer == pKiller)
+ return false;
if(!is_user_alive(pKiller))
return false;
#if !defined FFA_MODE
if(get_user_team(pPlayer) == get_user_team(pKiller))
return false;
#endif
return true;
}