-
Notifications
You must be signed in to change notification settings - Fork 1
pet 系统
基本设计: 宠物表由: pid宠物id bid宠物对应建筑id uid宠物主人id 当前帮助激活的好友数量friNum 宠物状态state(0未激活,1egg, 2child, 3young, 4adult, 5old, 6dead) 宠物生命值(health) 宠物名称name 宠物类型kind 帮助的好友列表friList【好友的otherid构成的数据】 最后一次喂养的时间(距离2000年1.1秒数)lastFeed
对外接口: 操作: 建造--》激活---》喂养--》变更名字--》变更属性--》 查看: 获取所有建筑的bid, 获取用户所有宠物
build(userid, city_id, gound_id, grid_id)建造: 建筑物id 【1000, 1100) 为宠物house的id (当前1000为龙居所) 建筑物信息可以从logsign中获取(finish状态为1)
activeDragon(uid, fid, grid_id, city_id)激活宠物: id=1成功,leftNum还需的激活数量 当fid=-1 表示自己使用凯撒币激活自己的宠物(1cae1个位置) fid为其他用户的otherid时,表示自己帮助好友激活宠物
feed(uid, grid_id, city_id)喂养: 当前向后兼容,使用宠物建筑物的格子id,和城市id, 喂养宠物, 每天一次
namePet(uid, gid, name, cid)命名宠物:
assignAttToPet(self, uid, gid, att, cid)修改宠物属性:
当前所有建筑新增加了一个bid字段作为建筑的编号可以通过 getBids(uid, cid) bids 获取用户所有的建筑物及其对应的编号[[bid, grid_id], ...] getPets(uid, cid) 获取所有宠物信息 pets [pid, bid, friNum, state, health, kind, friList, lastFeed]
访问好友时增加了两个字段: pets, bids 表示好友的所有宠物和建筑信息
关于每天减少生命的实现: 当前采用用户两次登录时间的差近似作为宠物饥饿时间, 由于对宠物生命值的减少采用的是登录事件驱动的方法,虽然知道当前登录时刻,距离上次的喂养时间,还必须知道历史记录,即需要额外的字段存储之前登录减去的生命值,这样有些浪费,所以采用登录时间作为近似(如果用户每天都登录一次,则虽然没有喂养,但是宠物的生命值并不减少)(称为照看生命) 但是如何使宠物死亡确实让人头痛