amxx#
Вызов нативов AMX Mod X из Python. Руководство: Нативы AMXX из Python.
Нативы AMX Mod X, модулей (cstrike, fun, fakemeta, ReAPI...) и Pawn-плагинов из Python.
from amxpy import amxx
amxx.call("cs_set_user_money", player, 16000)
name = amxx.String(32)
amxx.call("get_user_name", player, name, 31)
player.print(name.value)
Аргументы переводятся по типу: int, bool, Player, Entity — число;
float — Float:; str — строка. Выходные параметры — обёртки:
String(размер) — буфер под строку, Ref/FloatRef — параметр по ссылке
(&x), Array/FloatArray — массив, который натив может изменить.
В переменных аргументах (any:..., как у client_print) числа передаются
по ссылке — оберните их в Ref/FloatRef.
Нативы вызываются только в игровом потоке (не из offload()). Натив, который
регистрирует колбэк вызывающего плагина (set_task, register_event...), из
Python не работает — для этого есть свои средства amxpy.
NativeError
#
Натив недоступен или завершился с ошибкой (подробности — в логе ошибок AMXX).
String
#
Буфер под строку, которую запишет натив: String(32) → после вызова .value.
FloatRef
#
Float: по ссылке (&Float:value): натив читает и меняет .value.
Array
#
Массив целых, который натив может прочитать и изменить: Array(3) или Array([1, 2, 3]).
FloatArray
#
Массив Float: (вектор, цвет...): FloatArray(3) → после вызова .values.
call
#
Вызвать натив по имени и вернуть результат-ячейку.
Параметры#
name— имя натива:cs_set_user_money,rg_give_item, натив Pawn-плагина.*args— аргументы по порядку объявления натива (см. описание модуля).
Возвращает#
Результат натива как целое; для Float:-результата — call_float.
Исключения#
NativeError— натива нет на сервере или он завершился с ошибкой.
Пример#
call_float
#
Вызвать натив, который возвращает Float:: amxx.call_float("entity_range", a, b).
available
#
Есть ли на сервере все эти нативы (заодно привязывает их заранее).