Перейти к содержимому

Обзор exports и events

Полные списки генерируются из кода и лежат в справочнике API, по странице на resource. Эта страница - краткая версия: вызовы, к которым ты будешь обращаться, когда пишешь свой resource. Серверная сторона, если не указано иное.

local p = exports.bs_core:GetPlayer(src) -- player object, nil if not loaded
exports.bs_core:GetPlayerByCharId(charId)
exports.bs_core:AddMoney(src, account, amount, reason)
exports.bs_core:AddXP(src, amount, reason)
exports.bs_core:GetPlayerMeta(src, key, fallback)
exports.bs_core:AwardAction(src, 'vehicle_repaired') -- counts toward skills and contracts
exports.bs_core:GetLanguage(src)

Callback’и идут через bridge, см. Архитектуру.

exports.bs_inventory:GiveItem(src, 'bandage', 2, metadata)
exports.bs_inventory:RemoveItem(src, 'bandage', 1)
exports.bs_inventory:CountItem(src, 'bandage')
exports.bs_inventory:GetItem('bandage') -- definition
exports.bs_inventory:RegisterContainer(containerId, spec, src)
exports.bs_inventory:OpenContainerFor(src, containerId)
exports.bs_inventory:SetItemMeta(src, slot, item, metadata, silent)

Подробнее в Предметы и инвентарь.

exports.bs_factions:GetFaction(src) -- faction id
exports.bs_factions:FactionRank(src, factionId)
exports.bs_factions:RankAllowed(src, 'build') -- custom rank permissions
exports.bs_factions:GetFactionLevel(factionId)
exports.bs_factions:AddFactionXP(factionId, amount, reason)
exports.bs_factions:AddReputation(src, amount, reason)
exports.bs_factions:GetSquadMembers(src)
exports.bs_factions:SameSquad(a, b)
exports.bs_building:RegisterPlaceable({ id = 'workbench', cat = 'utility', ... })
exports.bs_building:PiecesInRadius(x, y, z, r)
exports.bs_building:NearStation(src, 'workbench', 4.0)
exports.bs_building:RaidOpen()
exports.bs_building:GetRespawnPoint(charId)
-- client
exports.bs_building:StartPlacing(defId)

Событие: bs:building:pieceRemoved (id, defId) при каждом удалении.

exports.bs_crafting:StationDefs()
exports.bs_crafting:Recipes()
exports.bs_crafting:RecipeFor('bandage')
exports.bs_crafting:SkillLevel(src)
exports.bs_jobs:GetJob(src) -- 'mechanic', 'hunter', ... or nil
exports.bs_jobs:HasJob(src, 'medic')
exports.bs_jobs:Does(src, 'hunt') -- capability check: hunt, fish, kidnap, rob, smuggle, gunsmith ...

По возможности проверяй способность через Does, а не по названию работы. Несколько работ делят одну, а владельцы серверов переименовывают работы.

exports.bs_medical:IsDowned(src)
exports.bs_medical:Down(src)
exports.bs_medical:Revive(src)
-- client
exports.bs_medical:IsDowned()
exports.bs_medical:IsCarrying()

См. API зомби про шум, урон и спавны событий.

События фреймворка называются bs:<область>:<что>. Хуки жизненного цикла вроде bs:hook:player:loaded перечислены в Архитектуре. UI-панели должны вызывать bs:ui:opened и bs:ui:closed, см. UI и NUI.