equip_fields = init_fields([ define(0x0001, "entityID", "integer", "唯一实体ID", save=True, sync=True), define(0x0002, "prototypeID", "integer", "配置ID", save=True, sync=True), define(0x0003, "masterID", "integer", "主人的角色ID"), define(0x0004, "type", "integer", "类型"), define(0x0005, 'equipID', 'integer', '装备ID', formula='entityID'), define(0x0006, 'level', "integer", "强化等级", save=True, sync=True), define(0x0007, 'step', "integer", "装备阶数", save=True, sync=True, default=1), define(0x0008, 'rest_star', "integer", "剩余兵魂", save=True, sync=True, default=0), define(0x0009, "slugs", "integer", "加成属性槽数", formula="fn.get_slugs(step)"), define( 0x0020, "baseHP", "float", "基础血量", formula= "fn.get_equip_base_hp(prototypeID, level, step, enchant_attrs, player_equip1, player_equip2, player_equip3, player_equip4, player_equip5, player_equip6, type)" ), define( 0x0021, "baseATK", "float", "基础攻击", formula= "fn.get_equip_base_atk(prototypeID, level, step, enchant_attrs, player_equip1, player_equip2, player_equip3, player_equip4, player_equip5, player_equip6, type)" ), define( 0x0022, "baseDEF", "float", "基础防御", formula= "fn.get_equip_base_def(prototypeID, level, step, enchant_attrs, player_equip1, player_equip2, player_equip3, player_equip4, player_equip5, player_equip6, type)" ), define( 0x0023, "baseCRI", "float", "基础暴击", formula= "fn.get_equip_base_crit(prototypeID, level, step, enchant_attrs, player_equip1, player_equip2, player_equip3, player_equip4, player_equip5, player_equip6, type)" ), define( 0x0024, "baseEVA", "float", "基础闪躲", formula= "fn.get_equip_base_dodge(prototypeID, level, step, enchant_attrs, player_equip1, player_equip2, player_equip3, player_equip4, player_equip5, player_equip6, type)" ), define(0x0025, "enchants", "sequence", "附魔", save=True, decoder=json.decode, encoder=json.encode), define(0x0026, "enchant_attrs", "string", "附魔属性", sync=True, formula="fn.get_enchant_attrs(prototypeID, slugs, enchants)"), define( 0x0080, "base_power", "float", "装备战力", formula= "fn.get_equip_base_power(entityID, prototypeID, masterID, baseHP, baseATK, baseDEF, baseCRI, baseEVA)" ), define(0x0081, "power", "integer", "战力", sync=True, formula="base_power"), define(0x0099, "player_equip1", "integer", "玩家装备等级1", default=0), define(0x009a, "player_equip2", "integer", "玩家装备等级2", default=0), define(0x009b, "player_equip3", "integer", "玩家装备等级3", default=0), define(0x009c, "player_equip4", "integer", "玩家装备等级4", default=0), define(0x009d, "player_equip5", "integer", "玩家装备等级5", default=0), define(0x009e, "player_equip6", "integer", "玩家装备等级6", default=0), ])
''' mail_fields = init_fields([ define(0x0001, 'entityID', 'integer', '邮件ID', save=True), define(0x0002, 'playerID', 'integer', '玩家ID', save=True), define(0x0003, 'title', 'string', '邮件标题', save=True), define(0x0004, 'content', 'string', '邮件内容', save=True), define(0x0005, 'type', 'integer', '邮件类型', save=True), define(0x0006, 'addtime', 'integer', '添加时间', save=True), define(0x0007, 'addition', 'dict', '邮件附件', save=True, decoder=json.decode, encoder=json.encode), define(0x0008, 'isread', 'boolean', '是否已读', save=True), define(0x0009, 'isreceived', 'boolean', '是否已领', save=True), define(0x000c, 'mailID', 'integer', '邮件ID', formula='entityID'), define(0x000d, 'limitdata', 'dict', '用户限制条件', save=True, decoder=json.decode, encoder=json.encode), define(0x000e, 'cd', 'integer', '剩余时间,自动销毁', save=True, default=0), define(0x000f, "configID", "integer", "配置ID,可能没有", save=True, default=0), ]) store_tag = 'm' MailBase = create_class('MailBase', mail_fields, store_tag)
# coding: utf-8 from yy.entity import create_class, define, init_fields extra_imports = ''' ''' user_fields = init_fields([ define(1, 'userID', 'integer', '用户ID', save=True), define(2, 'username', 'string', '用户名', save=True, event=True), define(3, 'password', 'string', '密码', save=True), define(4, 'imsi', 'string', 'imsi', save=True), define(5, 'createtime', 'datetime', '创建时间', save=True), define(6, "blocktime", "integer", "限制登录时间", save=True), define(7, "lock_device", "string", "锁定登录设备", save=True), ]) store_tag = 'u' UserBase = create_class('UserBase', user_fields, store_tag) if __name__ == '__main__': import os from yy.entity import gen_cython c = gen_cython(user_fields.values(), 'c_UserBase', 'from user.define import UserBase as PureEntity', store_tag, extra_imports) open(os.path.join(os.path.dirname(__file__), 'c_user.pyx'), 'w').write(c)
faction_fields = init_fields([ define(0x0001, "entityID", "integer", "唯一ID", save=True), define(0x0002, "factionID", "integer", "公会ID", formula='entityID'), define(0x0003, "name", "string", "公会名称", save=True), define(0x0004, "level", "integer", "公会等级"), define(0x0005, "totalfp", "integer", "总贡献", save=True, default=0), define(0x0006, "todayfp", "integer", "今日贡献", save=True, cycle=True, timestamp=0x0013, default=0), define(0x0007, "memberset", "set", "拥有的成员", save=True, decoder=json.decode, encoder=json.encode), define(0x0008, "applyset", "set", "申请的成员", save=True, decoder=json.decode, encoder=json.encode), define(0x0009, "inviteset", "set", "邀请的冒险者", save=True, decoder=json.decode, encoder=json.encode), define(0x000a, "mode", "integer", "认证方式", save=True, default=1), define(0x000b, "notice", "string", "公会公告", save=True), define(0x000c, "createtime", "integer", "创建时间", save=True), define(0x000d, "strengthen_hp_level", "integer", "强化hp等级", save=True, default=0), define(0x000e, "strengthen_at_level", "integer", "强化攻等级", save=True, default=0), define(0x000f, "strengthen_ct_level", "integer", "强化暴等级", save=True, default=0), define(0x0010, "strengthen_df_level", "integer", "强化防等级", save=True, default=0), define(0x0015, "leaderID", "integer", "会长ID", save=True), define(0x0016, "dflag", "boolean", "待解散标识", save=True, default=False), define(0x0017, "mall_products", "set", "已经解锁商品位置", save=True, decoder=json.decode, encoder=json.encode), define(0x0018, "faction_treasure", "integer", "公会宝藏", save=True, default=0), define(0x0019, "city_top_member", "dict", "黄金城第一名成员", decoder=json.decode, encoder=json.encode, save=True), define(0x0020, "city_top_member_kills", "integer", "黄金城第一名成员所杀怪个数", save=True, default=0), ])
player_fields = init_fields( define(0x000b, "entityID", "integer", "", save=True), define(0x0001, "plain", "integer", ""), define(0x0002, "persistent", "integer", "", save=True, sync=True), define(0x0003, "formula1", "integer", "", formula="plain + 1", sync=True), define(0x0004, "formula2", "integer", "", formula="plain + 2", save=True), define(0x0005, "formula3", "integer", "", formula="formula2 + 2", event=True), define(0x0006, "sp", "integer", "", cycle=True, timestamp='sp_update_time', resume=10, max='sp_max', default=0), # 0x0007 sp_ts define(0x0008, "sp_max", "integer", "", default=10), define(0x0024, "sp_update_time", "integer", "", sync=True, save=True, default=0), define(0x0009, "left_count", "integer", "", cycle=True, resume=0, default=10, timestamp='left_count_update_time'), define(0x000a, "left_count_update_time", "integer", ""), define(0x000c, "list_value", "sequence", "", cycle=True, timestamp=0x0015, sync=True, save=True, encoder=json.encode, decoder=json.decode), define(0x000d, "string_value", "string", ""), define(0x000e, "dict_value", "dict", "", save=True, sync=True, encoder=json.encode, decoder=json.decode), define(0x000f, "default_dict_value", "object", "", encoder=json.encode, decoder=json.decode, raw_default='defaultdict(int)'), define(0x0010, "set_value", "set", "", save=True, sync=True, encoder=json.encode, decoder=json.decode), define(0x0011, "some_cd_value", "integer", "", cycle=True, timestamp=0x0012, save=True, sync=True, syncTimeout=True), define(0x0013, "float_value", "float", "", save=True, sync=True), define(0x0014, "datetime_value", "datetime", "", save=True, sync=True), # 普通属性排行榜 define(0x0016, "natural_score", "integer", "", sync=True, default=10), define(0x001A, "natural_ranking", "integer", "", formula='fn.get_challenge_rank(entityID)'), define(0x0017, "rank", "integer", ""), define(0x0018, "depend_on_formula3", "integer", ""), define(0x0019, "rank2", "integer", ""), # 材料背包 测试stored_dict define(0x001B, 'pack', 'stored_dict', '', int_key=True, int_value=True), # 材料背包 测试stored_set define(0x001C, 'rewards', 'stored_set', '', int_value=True), # 依赖持久属性的公式属性 define(0x001D, "persist_formula1", "integer", "", formula="persistent + 1"), define(0x001E, "persist_formula2", "integer", "", formula="persist_formula1 + 1"), define(0x001F, 'fbs', 'stored_dict', '', int_key=True, encoder=json.encode, decoder=json.decode), define(0x0020, "integer_formula", "integer", "", formula="plain*0.1"), define(0x0021, "name", "string", "", save=True), define(0x0022, "worldID", "integer", "", save=True), define(0x0023, "bool_value", "boolean", "", save=True), define(0x0025, "natural_ranking2", "integer", "", formula='fn.get_challenge_rank2(entityID)'), define(0x0026, "natural_score2", "integer", "", sync=True, default=10), define(0x0027, "join_time", "integer", ""), define(0x0030, "createtime", "integer", "", save=True), define(0x0031, "createtime", "integer", "", save=True), define(0x0032, "usedcount", "integer", "", cycle=True, timestamp=0x0033, save=True, default=0), # stored_set encoding define(0x0040, 'fbrewards', 'stored_set', '', encoder=cPickle.dumps, decoder=cPickle.loads), # stored_list encoding define(0x0041, 'mylist', 'stored_sequence', '', encoder=json.encode, decoder=json.decode), )
user_fields = init_fields([ define(1, 'userID', 'integer', '用户ID', formula="entityID"), define(2, 'username', 'string', '用户名', save=True, event=True), define(3, 'password', 'string', '密码', save=True), define(4, 'imsi', 'string', 'imsi', save=True), define(5, 'createtime', 'datetime', '创建时间', save=True), # 如果玩家不在线,且这个字段有值,表示上次没有干净退出 define(6, 'roles', 'stored_dict', '各区角色ID', int_key=True, encoder=json.encode, decoder=decode_roles), define(7, 'entityID', 'integer', '用户ID', save=True), define(8, "blocktime", "integer", "限制登录时间", save=True), # define(9, "createRoleReward", "integer", "创建下一个角色时奖励", save=True, default=0), define(10, "lastserver", "integer", "lastserver", save=True, default=0), define(11, "username_alias", "string", "用户名别名", save=True), define(12, "lock_device", "string", "锁定登录设备", save=True), define(13, "channel", "string", "小渠道名", save=True), define(14, "back_reward_received", "boolean", "上次测试充值返现", save=True, default=False), define(15, "back_level_reward_received", "boolean", "上次测试等级奖励", save=True, default=False), ])
group_fields = init_fields([ define(0x0001, "entityID", "integer", "唯一ID", save=True), define(0x0002, "groupID", "integer", "同门ID", formula="entityID"), define(0x0003, "name", "string", "同门名称", save=True), define(0x0004, "applys", "stored_dict", "申请的成员", int_key=True, decoder=json.decode, encoder=json.encode), define(0x0005, "members", "stored_dict", "当前的成员", int_key=True, decoder=json.decode, encoder=json.encode), define(0x0006, "leaderID", "integer", "大师兄ID", save=True), define(0x0007, "invites", "stored_set", "已邀请的好友", int_value=True), define(0x0008, "leader_lastlogin", "datetime", "大师兄上次登录时间", save=True), define(0x0009, "gve_joineds", "stored_sequence", "观战列表", int_value=True), define(0x000a, "gve_activateds", "stored_sequence", "活跃列表", int_value=True), define(0x000b, "gve_start_time", "integer", "开战时间", save=True, default=0), define(0x000c, "gve_progress", "stored_dict", "进度", int_key=True, int_value=True), define(0x000d, "gve_deads", "stored_set", "死亡列表", int_value=True), define(0x000e, "gve_end_cd", "integer", "结束倒计时", save=True, default=0), define(0x0010, "gve_max_damage", "integer", "最高伤害", save=True, default=0), define(0x0011, "gve_rewards", "stored_dict", "奖励", int_key=True, decoder=json.decode, encoder=json.encode), define(0x0012, "gve_last_kick_time", "integer", "上次踢人时间", save=True, default=0), define(0x0013, "gve_last_reset_time", "integer", "上次重置时间", save=True, default=0), define(0x0014, "gve_end_activateds", "stored_sequence", "备份活跃列表", int_value=True), define(0x0015, "gve_activateds_detail", "stored_dict", "备份活跃详细", int_key=True, decoder=json.decode, encoder=json.encode), define(0x0016, "lastlogin", "datetime", "同门大师兄最后一次登录", save=True, default=0), ])