道具管理

道具是游戏中一个很基本的元素,一件装备,一锭银子,一个坐骑,一种图鉴等等都属于道具,一般来说,能够放在背包里面东西都是道具,这里的背包是广义上的背包,包括主背包,仓库,装备背包等等,关于背包这一块将在后续内容背包系统中单独介绍。道具数据结构定义可以用一个proto来表示:

package obj;

message object_data

{

    optional uint32 baseid = 1;//道具的品类标识id,标识这一类道具

    optional uint32 thisid = 2;//道具的唯一id,唯一标识这件道具

    optional string name = 3;

    optional uint32 num = 4;

    optional uint32 x = 5; //道具在背包中的坐标

    optional uint32 y = 6; //道具在背包中的坐标

    optional uint32 pack = 7;//道具所属的背包

    optional Equip equipdata = 8;//装备数据,打造装备的时候会先创建一个道具,然后再填充这个字段(假如该道具不是装备,则该字段为空)

    ...

}

除了一个proto数据外,还有一个封装道具的类Object,该类主要实现的道具的创建,及其获取道具某些属性值等。

class Object

{

public:

    Object(pro::objects::data &data);

    void create(pro::objects::data &data);//创建一个道具,会调用上面的构造函数,还可以通过baseid等来创建道具

    ...

private:

    obj::object_data _data;//内存中的道具数据

    pro::objects::data& &_base;//道具基本表配置中的道具数据,用来创建道具,构成内存中的道具数据

    pro::equips::data& &_equipbase;//配置中的装备数据,如过该道具是装备的话,会在创建道具的时候根据装备表初始化该成员

};

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值