class BTSynInitTeamBoss(ProtocolBase): rand_seed = Integer(desc='随机种子') random_seed = Integer(desc='随机种子') ctrl_server_user_id = String(desc='当前控制的玩家server user id') func_type = String(desc='玩法类型') team_boss = Class(TeamBossBattleUnitBoss, desc='boss信息') hero_dict = Dict(Class(TeamBossBattleUnitHero), desc='成员参战英雄信息')
class Item(ClassObject): key = String(desc='인스턴스 키') class_key = String(desc='아이템의 클래스. Item 시트의 key') @staticmethod def new(class_key): return Item(key=uuid.uuid4().hex, class_key=class_key)
class MasterCombatantsBaseRow(ClassObject): key = String(desc='base key') category = String(desc='分类') c_class_d = String(desc='类别(坦克,治疗等)') property = List(String(), desc='属性') factor = String(desc='主要属性(力、敏、智)') group = String(desc='组(英雄,宠物,变身,NPC等)') row = String(desc='站位(前,中,后)') res_id = String(desc='资源id') rarity_min = Integer(desc='品阶最小值', default=0) rarity_max = Integer(desc='品阶最大值', default=0) size = Number(desc='大小', default=0) aggro = Integer(desc='仇恨值', default=0) available = String(desc='玩家是否可得到(Y|N)') grade = String(desc='品质级别(A|B|SS等)') def is_hero_group(self): return self.group in [ CombatantGroupDef.COMBATANT_GROUP_HERO, CombatantGroupDef.COMBATANT_GROUP_TU_HERO, CombatantGroupDef.COMBATANT_GROUP_TRANSFORM, CombatantGroupDef.COMBATANT_GROUP_TU_TRANSFORM ] def is_pet_group(self): return self.group in [ CombatantGroupDef.COMBATANT_GROUP_PET, CombatantGroupDef.COMBATANT_GROUP_TU_PET, CombatantGroupDef.COMBATANT_GROUP_MONSTER, CombatantGroupDef.COMBATANT_GROUP_TU_MONSTER, CombatantGroupDef.COMBATANT_GROUP_NPC ]
class MasterStrengthenEquipmentStat(ClassObject): key = String(desc='Master StrengthenEquipmentStat 의 키값') group_id = String(desc='Items StrengthenValue 의 값') strengthen = Integer(desc='아이템의 강화도') up_value = Integer(desc='장비에 붙은 속성이 올라가는 확률 ')
class BattleFieldRegisterClan(ClassObject): clan_id = String(desc='公会id') rank = Integer(desc='排名', default=0) clan_name = String(desc='公会名') clan_lv = Integer(desc='公会等级') clan_active = Integer(desc='公会活跃度') register_time = Integer(desc='报名时间')
class BattleFieldFieldSnapshot(ClassObject): season_key = Integer(desc='赛季') field_id = String(desc='区域id') block_dict = Dict(Class(BattleFieldBlockSnapshot), desc='区块快照信息字典, block_id str => snap info') refresh_season_step = String(desc='刷新的阶段') refresh_time = Integer(desc='刷新时间', default=0)
class Combatant(ClassObject): key = String(desc='唯一key') base = String(desc='base key') name = String(desc='名字') res_id = String(desc='res_id,资源id') rarity = Integer(desc='rarity,品阶') str = Integer(desc='str,力量', default=0) dex = Integer(desc='dex,敏捷', default=0) int = Integer(desc='int,智力', default=0) con = Integer(desc='con,体质', default=0) move_speed = Number(desc='移动速度', default=0) atk_speed = Number(desc='攻击速度', default=0) p_atk = Integer(desc='物理攻击', default=0) m_atk = Integer(desc='魔法攻击', default=0) hp = Integer(desc='血量', default=0) p_def = Integer(desc='物理防御', default=0) res = Integer(desc='魔法抵抗', default=0) pen = Integer(desc='物理穿透', default=0) cond_dec = Integer(desc='被控制衰减', default=0) cri = Integer(desc='暴击', default=0) eva = Integer(desc='闪避', default=0) attr_res = Dict(Integer(), desc='属性抗性') cond_res = Dict(Integer(), desc='控制抗性') field_effect_immune = List(String(), desc='场景效果免疫') cri_damage = Float(desc='暴击伤害', default=0.0) base_gauge = Integer(desc='技能槽', default=0) level = Integer(desc='等级', default=0) aggro = Integer(desc='仇恨值', default=0) cri_rate = Float(desc='暴击率', default=0.0) p_immune = Float(desc='物攻伤害减免', default=0.0) m_immune = Float(desc='法攻伤害减免', default=0.0) cond_res_all = Float(desc='全部控制抗性', default=0.0)
class MasterHeroTrainingRow(ClassObject): key = String(desc='연성 고유키') base = String(desc='CombatantsBase의 키') level = Integer(desc='영웅 레벨') # modify by Yoray, JoyGames, ALPHA GROUP CO.,LTD, at 2017-05-10 # detail: 修改战斗力计算公式 # >>>>>>>>>>>>> atk_speed = Number(desc='공격속도') # <<<<<<<<<<<<< p_atk = Integer(desc='물리공격력') m_atk = Integer(desc='마법공격력') hp = Integer(desc='체력') p_def = Integer(desc='물리방어') res = Integer(desc='마법저항') pen = Integer(desc='물리관통') cond_dec = Integer(desc='상태이상 지속 시간 감소') attr_res = Dict(Integer(), desc='속성 저항. 지수화풍흑무.(e_res, w_res, f_res, a_res, d_res, n_res)') cond_res = Dict(Integer(), desc='상태이상 저항(sstun_res 스턴 저항,sleep_res 수면 저항,petrify_res 석화 저항,...)') cri = Integer(desc='치명타') eva = Integer(desc='물리 회피') def get_index_meta(self): return { 'get_training_info': (self.base, self.level) }
class MasterTransformStrengthenRow(ClassObject): key = String(desc='master TransformStrengthen key') base = String(desc='변신의 대상이 되는 소환수의 키 CombatantsBase 의 키') level = Integer(desc='변신의 강화 단계') scroll = String(desc='해당 변신 의 주문서') scroll_count = Integer(desc='주문서 필요 개수') ring = String(desc='해당 변신 의 주문 반지') ring_count = Integer(desc='반지 필요 개수') atk_speed = Integer(desc='攻速') p_atk = Integer(desc='物攻') m_atk = Integer(desc='法攻') hp = Integer(desc='血量') p_def = Integer(desc='物防') res = Integer(desc='法抗') pen = Integer(desc='物穿') cond_dec = Integer(desc='被控制衰减') attr_res = Dict(Integer(), desc='属性抗性') cond_res = Dict(Integer(), desc='控制抗性') cri = Integer(desc='暴击') eva = Integer(desc='闪避') def get_index_meta(self): """ 인덱싱에 사용할 메타 정보 반환 :return: dict: {인덱스 이름: 인덱스 컬럼 리스트, ...} """ return {'base': (self.base, self.level)}
class CGGetTeamInfoResponse(ProtocolBase): team_id = Integer(desc='队伍id', default=0) server_leader_id = String(desc='队长server user id', default=None) member_info_list = List(Class(MemberInfo), desc='成员信息列表') func_type = String(desc='玩法类型', default=None) func_flag = String(desc='玩法具体标识', default=None) is_in_match = Boolean(desc='是否在自动匹配中', default=False)
class FortWarBattleInitTempData(ClassObject): self_clan_id = String(desc='自己公会id') enemy_clan_id = String(desc='敌方公会id') point_id = String(desc='据点id') total_hp = Integer(desc='总血量') rest_hp = Integer(desc='剩余血量') end_time = Integer(desc='结束时间')
class TeamBossSecondDetail(ClassObject): is_finish = String(desc='是否已结束', default=True) battle_unique_id = String(desc='战斗唯一id', default=None) attack_part = String(desc='当前攻击的部位key', default=None) battle_start_time = Integer(desc='战斗开始时间', default=0) battle_real_start_time = Integer(desc='战斗实际开始时间', default=0) battle_end_time = Integer(desc='战斗结束时间', default=0) part_dict = Dict(Class(TeamBossPartDetail), desc='boss副本详细信息')
class SimpleCombatantData(ClassObject): key = String(desc='combatant key') base_key = String(desc='combatant base key') lv = Integer(desc='等级') training = Integer(desc='培养等级') id = Integer(desc='战斗单位id') add_gauge = Float(desc='技能槽') default_status = Class(CombatantStatus, desc='初始状态')
class MasterRaidBossTraining(ClassObject): key = String(desc='키. 파트+레벨') base = String(desc='파트') level = Integer(desc='보스 레벨') hp = Integer(desc='hp') def get_index_meta(self): return {'base_level': (self.base, self.level)}
class Heroes(ClassObject): user_id = String(desc='히어로를 소유한 유저의 id') active = String(desc='현재 선택된 디폴트 히어로. 히어로의 class_key.') heroes = List(String(), desc='히어로 목록. [영웅 class_key, ...]') skins = Dict( Dict(Integer()), desc="英雄皮肤" ) #add by ZHM, JoyGames, ALPHA GROUP CO.,LTD, at 2017-07-19 for 英雄装备服装,不存在英雄时临时保存
class BattleFieldDefenseUnitBase(ClassObject): server_user_id = String(desc='玩家server_user_id') base_key = String(desc='base key') class_key = String(desc='class key') is_hero = Boolean(desc='是否是英雄', default=False) is_dead = Boolean(desc='是否死亡', default=False) rest_hp = Integer(desc='剩余血量', default=0) extra = String(desc='其他信息')
class AlphaFortWarSideInfo(ClassObject): clan_id = String(desc='公会id', default='') clan_name = String(desc='公会名', default='') mark = String(desc='公会图标', default='') mark_frame = String(desc='公会图标外框', default='') defense_count = Integer(desc='防守者数量', default=0) rep_list = List(Class(AlphaFortClanRepInfo), desc='公会代表信息') fort_point_snap_list = List(Class(AlphaFortWarPointSnap), desc='据点snap')
class MasterAlphaFortWarBattleRewardRow(ClassObject): key = String(desc='key') group_no = Integer(desc='分组') reward_type = String(desc='奖励类型') item = String(desc='奖励id') count = Integer(desc='奖励数量') def get_index_meta(self): return {'group_type': (self.group_no, self.reward_type)}
class MasterTeamBossRow(ClassObject): key = String(desc='key. boss key') func_type = String(desc='玩法类型标识') difficulty = Integer(desc='难度') def get_index_meta(self): return { 'func_type': (self.func_type,) }
class TeamBossFirstStageDetail(ClassObject): stage_id = String(desc='副本id', default=None) is_finish = Boolean(desc='是否已完成', default=False) battle_server_mem_id = String(desc='正在战斗中的玩家server user id', default=None) battle_mem_name = String(desc='正在战斗的玩家名', default=None) battle_mem_hero_key = String(desc='正在战斗的玩家主角id', default=None) battle_start_time = Integer(desc='战斗开始时间', default=0) battle_end_time = Integer(desc='战斗结束时间', default=0) deck = Class(CommonAttackDeckMultiMercenary, desc='战斗阵容信息')
class BattleFieldBlockDefenseInfo(ClassObject): user_heroes = Dict(String(), desc='玩家防守英雄列表, server_user_id => hero class key') user_pets = Dict(List(String(), desc='pet base key list'), desc='玩家召唤兽列表, server_user_id => pet base key list') defense_list = List(Class(BattleFieldDefenseUnitBase), desc='防守列表') npc_party_key = Integer(desc='中立怪组id', default=-1) neutral_reward = Dict(Integer(), desc='中立怪奖励信息') defense_log_list = List(Class(BFBlockDefenseLog), desc='防守变更日志列表')
class ItemBase(ClassObject): type = String(desc='아이템의 타입 default=None, view 용으로 조회시 해당 아이템이 랜덤 지급인지 구분', default=None) item_class_key = String(desc='아이템의 클래스 키') count = Integer(desc='아이템 수량') extra = Integer(desc='아이템 추가 정보, view 용으로 조회시 아이템을 얻을 수 있는 갯수로 표시 ') options_trade = Dict( String(), desc="装备属性值" ) #add by ZHM, JoyGames, ALPHA GROUP CO.,LTD, at 2017-04-06 for 交易行邮件装备固定属性
class SceneUserInfo(ClassObject): server_user_id = String(desc='玩家server_user_id') name = String(desc='玩家名') level = Integer(default=1, desc='玩家等级') hero_snap = Class(HeroSnap, desc='英雄信息') clan_id = String(desc='公会id') clan_name = String(desc='公会名') team_id = String(desc='队伍id') position_info = Class(PositionItem, desc='坐标信息')
class FortBattleInitTempData(ClassObject): field_id = String(desc='区域id') block_id = Integer(desc='区块id', default=-1) point_id = String(desc='据点id') defense_clan_id = String(desc='防守公会id') attack_clan_id = String(desc='攻击公会id') total_hp = Integer(desc='总血量', default=0) rest_hp = Integer(desc='剩余血量', default=0) end_time = Integer(desc='结束时间', default=0)
class MasterCombatantsRow(ClassObject): key = String(desc='唯一key') base = String(desc='base key') name = String(desc='名字') res_id = String(desc='res_id,资源id') rarity = Integer(desc='rarity,品阶', default=0) str = Integer(desc='str,力量', default=0) dex = Integer(desc='dex,敏捷', default=0) int = Integer(desc='int,智力', default=0) con = Integer(desc='con,体质', default=0) move_speed = Number(desc='移动速度', default=0) atk_speed = Number(desc='攻击速度', default=0) p_atk = Integer(desc='物理攻击', default=0) m_atk = Integer(desc='魔法攻击', default=0) hp = Integer(desc='血量', default=0) p_def = Integer(desc='物理防御', default=0) res = Integer(desc='魔法抵抗', default=0) pen = Integer(desc='物理穿透', default=0) cond_dec = Integer(desc='被控制衰减', default=0) cri = Integer(desc='暴击', default=0) eva = Integer(desc='闪避', default=0) attr_res = Dict(Integer(), desc='属性抗性') cond_res = Dict(Integer(), desc='控制抗性') field_effect_immune = List(String(), desc='场景效果免疫') def clone_to_combatant(self): clone = Combatant() clone.key = self.key clone.base = self.base clone.name = self.name clone.res_id = self.res_id clone.rarity = self.rarity clone.str = self.str if self.str else 0 clone.dex = self.dex if self.dex else 0 clone.int = self.int if self.int else 0 clone.con = self.con if self.con else 0 clone.move_speed = self.move_speed if self.move_speed else 0 clone.atk_speed = self.atk_speed if self.atk_speed else 0 clone.p_atk = self.p_atk if self.p_atk else 0 clone.m_atk = self.m_atk if self.m_atk else 0 clone.hp = self.hp if self.hp else 0 clone.p_def = self.p_def if self.p_def else 0 clone.res = self.res if self.res else 0 clone.pen = self.pen if self.pen else 0 clone.cond_dec = self.cond_dec if self.cond_dec else 0 clone.cri = self.cri if self.cri else 0 clone.eva = self.eva if self.eva else 0 if self.attr_res: for k, v in self.attr_res.iteritems(): clone.attr_res[k] = v if self.cond_res: for k, v in self.cond_res.iteritems(): clone.cond_res[k] = v if self.field_effect_immune: clone.field_effect_immune += self.field_effect_immune return clone
class MasterTeamBossRewardRow(ClassObject): key = String(desc='key.') reward_key = String('奖励key') item = String(desc='奖励id') count = String(desc='奖励数量') def get_index_meta(self): return { 'reward_key': (self.reward_key,) }
class BattleFieldClanInfo(ClassObject): clan_id = String(desc='公会id') season_key = Integer(desc='赛季') register_field_id = String(desc='报名的区域id') register_time = Integer(desc='报名时间') own_blocks = List(Integer(), desc='拥有的地块编号列表') is_give_reward = Boolean(desc='是否已给奖励', default=False) reward_items = Dict(Integer(), desc='奖励内容') reward_time = Integer(desc='给奖励时间', default=0) log_list = List(Class(BattleFieldClanLog), desc='公会相关日志列表')
class TeamBossDetail(ClassObject): team_id = Integer(desc='队伍id', default=0) unique_id = String(desc='team boss唯一id', default=None) func_type = String(desc='team boss func', default=None) boss_key = String(desc='boss key', default=None) create_time = Integer(desc='创建时间', default=0) end_time = Integer(desc='结束时间', default=0) ready_member_list = List(String(), desc='已准备的成员server user id列表') first_step = Class(TeamBossFirstDetail, desc='第一阶段详细信息') second_step = Class(TeamBossSecondDetail, desc='第二阶段详细信息')
class BattleFieldUserInfo(ClassObject): user_id = String(desc='user_id') server_user_id = String(desc='server_user_id') season_key = Integer(desc='season_key') defense_info_dict = Dict( Class(BattleFieldUsedPetInfo), desc='使用的英雄|召唤兽对应的区块信息 {class_key | base_key:BattleUsedPetInfo') last_attack_time = Integer(desc='上一次攻击时间', default=0) last_attack_block_id = Integer(desc='上一次攻击区块id', default=-1) last_attack_point_id = String(desc='上一次进攻要塞据点id')
class MasterBattleFieldBattleRewardRow(ClassObject): key = String(desc='key') field_id = Integer(desc='分组') reward_type = String(desc='奖励类型') item = String(desc='奖励id') count = Integer(desc='奖励数量') def get_index_meta(self): return { 'field_id': (self.field_id, self.reward_type) }