Приветствую. Как я заметил, с нативными функциями дело обстоит немного не так, как с колбэками.
Функция amx_Exec работает неправильно на нативные функции. Как я понял, она(нативная функция) даже не вызывается, так как в аргумент
возвращается мусорное значение.
cell *retval
У меня примерно такой код
if(amx_FindNative(this->info.amx, funcname, &idx) != AMX_ERR_NONE) return 0; // funcname = CreateDynamicObject float value = 0.0; amx_Push(this->info.amx, amx_ftoc(value)); // rz amx_Push(this->info.amx, amx_ftoc(value)); // ry amx_Push(this->info.amx, amx_ftoc(value)); // rx amx_Push(this->info.amx, amx_ftoc(value)); // z amx_Push(this->info.amx, amx_ftoc(value)); // y amx_Push(this->info.amx, amx_ftoc(value)); // x amx_Push(this->info.amx, static_cast<cell>(522)); // objectid amx_Exec(this->info.amx, &ret_val, idx); // В ret_val возвращается мусорное значение.
Стример само собой подключен, функция используется 1 раз в OnGameModeInit() для того, чтобы плагин, соответственно, нашёл её.
Также есть второй вопрос. Какое предназначение имеет функция amx_Cleanup?