EVE Frontier world-contracts 详解(3)
EVE Frontier world-contracts 详解(3)
Killmail-击杀记录:
本模块在链上创建并共享 Killmail 对象,同时发出事件供索引器查询。
Killmail 被设计为 PvP 战斗损失的不可变记录,不可修改。
Enums:
enum LossType// 击杀损失类型枚举,分为舰船损失以及建筑损失两种
Structs:
struct Killmail// 记录 kmID,击杀方 ID,被击杀方 ID,损失类型。损失时间,损失星系
Events:
struct KillmailCreatedEvent// 创建新 Killmail 时发出的事件。
Function:
create_killmail// 只有 Admin 可以调用,创建一条新的 Killmail 记录并上链,构建 Killmail,发出KillmailCreatedEvent
Character-角色:
此模块通过基于能力的访问控制来管理角色的创建和生命周期
Structs:
struct Character// 角色信息,包含 UID,TenantItemId(in_game_id 有讲),联盟 ID,character_address 角色绑定地址
Events:
struct CharacterCreatedEvent// 角色创建事件
Function:
-
create_character// 创建角色,只有 Admin 可以调用,传参内容为 struct Character ,发出角色创建事件CharacterCreatedEvent -
borrow_owner_cap// 调用时携带要接收的 OwnerCap 对象 ID,从 Character 对象中临时借出 OwnerCap,玩家操作时通过 Receiving 票据取出,character.character_address == ctx.sender确保只有角色绑定的钱包地址本人才能借出 OwnerCap,使用完毕后必须调用return_owner_cap归还 -
return_owner_cap// 将OwnerCap<T>归还给 Character 对象 -
update_tribe// 更新角色联盟 ID 需管理员权限,以下方法均需要AdminCap -
update_address// 更新角色绑定的钱包地址 -
public fun update_tenant_id// 更新角色的 tenant 标识 -
delete_character// 删除角色对象
registry-对象注册表:
所有游戏资产(角色,组件,网络节点等)派生出它们的确定性对象 id,从这个注册表使用 TenantItemId(item_id + tenant)作为派生键,这保证每个游戏中的物品 ID 只能在所有对象类型中使用一次
Structs:
struct ObjectRegistry// 注册器对象 UID
Function:
object_exists// 查询某个业务键是否已被注册borrow_registry_id// 借出注册表的可变 UID 引用
好了以上就是目前所有的组件,由这些组件构成了可以自由拓展的 assembly,下章详细讲解 assembly 的构建

浙公网安备 33010602011771号