[Lua Библиотека] FF_Api

*bone_ff.lua – Требует _findmeta.lua
bone_ff.lua (1,1 КБ)

добавляет 2 мета функции
  1. id (int) ,model (string) ← Entity:FF_FindBone(имя кости)
    ищет кость у сущности по не полному названию, после чего кэширует по моделе и названию, из за чего в постоянном использовании будет эффективней чем постоянное использование перебора:

    for i = 0, entity:GetBoneCount() - 1 do
        if entity:GetBoneName( i ) == name then return i end 
    end
-- или
entity:LookupBone(name)
local PL=Entity(1)
local id,mdl=PL:FF_findbone('HEad')--head,HEAD и т.д
-- хоть полное название может быть ValveBiped.Bip01_Head1
-- id это id кости, mdl это модель сущности, мало ли нужно будет дальше в коде.
  

  1. Vector,Angle ← Entity:FF_GetBonePosition(id кости)
    замена GetBonePosition, так как она привязана к Тику SV части, из за чего если частота игрока выше чем у сервера, то при использовании GetBonePosition будут видны разрывы

*_findmeta.lua
_findmeta.lua (473 байта)

добавляет 4 функции
  1. metaTable ← FF_meta(название мета таблицы, ключ таблицы)
    использует FindMetaTable
local met = 'Entity'
local GetModel = FF_meta(met, 'GetModel') -- вернёт функцию Entity:GetModel()
local FF_meta(met) -- вернёт Мета Таблицу Entity
  1. metaTable ← FF_AddBindMeta(название ключа,название мета таблицы, ключ таблицы)
    Позволяет кэшить нужную мета таблицу или её ключ.
-- так же возвращает указанный ключ/мета таблицу.
local get_model =FF_AddBindMeta('ent_m','Entity','GetModel')

  1. metaTable ← FF_BindMeta (название ключа)
    нужен для получения кэшированной мета таблицы
local get_model =FF_BindMeta('ent_m')

4)FF_AddMeta (название мета таблицы, ключ таблицы, функция)
нужна что бы вставлять в кэшированную мета таблицу новую функцию
Кэшированная мета таблица то же самое что и обычная

FF_AddMeta('Entity', 'RetrunHeal', function(self)
return self:Heal()
end)
-- это то же самое что и 
local ENT=FindMetaTable('Entity')
ENT.RetrunHeal=function(self)
return self:Heal()
end
-- или 
function ENT:RetrunHeal()
return self:Heal()
end

-- но не будет кэшится в каждом файле (Мета таблица)