class Equipment(ClassObject): key = String(desc='인스턴스 키') class_key = String(desc='아이템의 클래스. Item 의 key') primary_stat = Dict(Integer(), desc='주스탯') primary_option = List(Dict(Integer()), desc='주옵션 { str: 100}, {hp: 200}') sub_option = List(Dict(Integer()), desc='보조 옵션. 주 스탯이 아닌 보조 옵션들') skill_option = String(desc='아이템의 붙는 스킬 옵션 키') strengthen = Integer(desc='현재 장비의 강화도') remodeling_chance = Integer(desc='아이템 개조 횟수') remodeling_type = String(desc='리모델링 타입 primay / sub') remodeling_slot = Integer(desc='옵션 수정 위치 { 주/보조 옵션 : 슬롯 위치') curse = Boolean(default=False, desc='아이템 저부 여부 True 일 경우 저주 상태') bless = Boolean(default=False, desc='아이템의 축복 여부 True 일 경우 축복 상태') lock = Boolean(desc='아이템 잠금 여부') equipped = String(desc='이 아이템을 장착한 히어로의 key. 비 장착 중이면 None') equipped_preset_key = List(String(), desc='장착된 프리셋의 키. [2, 1, ...]') time_add = Integer(default=0, desc='획득 시각. utc.') aofei_bind = Boolean( default=False, desc='绑定' ) #add by ZHM, JoyGames, ALPHA GROUP CO.,LTD, at 2017-04-06 for 增加道具流通属性 time_tradable = Integer( default=0, desc='可交易的保护时间' ) #add by ZHM, JoyGames, ALPHA GROUP CO.,LTD, at 2017-03-17 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 BattleFieldDefenseUnit(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) level = Integer(desc='等级', default=0) training = String(desc='养成key,CombatantsTraining.key') bless_key = String(desc='祝福key') extra = String(desc='其他信息') is_dead = Boolean(desc='是否死亡', default=False) rest_hp = Integer(desc='剩余血量', default=0)
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 BattleFieldRegisterInfo(ClassObject): season_key = Integer(desc='赛季') field_id = String(desc='区域id') register_clan_dict = Dict(Integer(), desc='报名的公会字典, clan_id => register time') is_pass_result = Boolean(desc='是否出结果', default=False) pass_clan_dict = Dict(Class(BattleFieldRegisterClan), desc='通过的公会字典, clan_id => clan info')
class BattleFieldBlockSnapshot(ClassObject): block_id = Integer(desc='区块id') clan_id = String(desc='公会id') is_fort = Boolean(desc='是否是堡垒') status = Integer(desc="据点状态", default=enum_block_status.NEUTRAL) battle_timeout = Integer(desc='战斗超时时间戳,针对普通据点', default=0) fort_war_end_time = Integer(desc='占领战结束时间戳', default=0) protect_end_time = Integer(desc='据点保护结束时间', default=0)
class BattleFieldFortDefenseInfo(ClassObject): rest_defense_count = Integer(desc='剩余防守者数量', default=0) is_battle_data_init = Boolean(desc='战斗数据是否初始化', default=False) battle_data_init_time = Integer(desc='战斗数据初始化时间', default=0) point_detail_dict = Dict(Class(FortPointDetail), desc='据点信息, point_id => info') before_battle_defense = Class(FortBeforeBattleDefense, desc='战前防守阵容信息') facility_info_list = List(Class(FortFacility), desc='公会建筑信息') defense_log_list = List(Class(BFBlockDefenseLog), desc='防守变更日志列表')
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 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 BattleFieldBlockInfoToC(ClassObject): is_fort = Boolean(desc='是否是要塞', default=False) status = Integer(desc='据点状态') clan_id = String(desc='公会id') clan_mission = Class(BattleFieldClanMission, desc='公会指示') protect_end_time = Integer(desc='保护结束时间', default=0) battle_server_user_id = String(desc='战斗中的玩家server_user_id') battle_timeout = Integer(desc='战斗超时时间戳', default=0) fort_war_clan_id = String(desc='攻击该要塞的公会id') fort_war_start_time = Integer(desc='要塞战开始时间戳(针对要塞据点)', default=0) fort_war_end_time = Integer(desc='要塞战结束时间戳(针对要塞据点)', default=0) product_items = Dict(Integer(), desc='据点产出的物品字典') last_product_time = Integer(desc='据点上一次产出时间', default=0) defense_unit_count = Integer(desc='当前防守单位数量', default=0) defense_info = List(Class(BattleFieldDefenseUnit), desc='防守信息')
class MasterItem(ClassObject): key = String(desc='아이템의 키(id)') name = String(desc='이름') type = String(desc='아이템 종류. 무기/방어구/장신구/기술서/재화/재료/영혼석/물약') equip_pos = String( desc='아이템 장착 위치. weapon/helm/armor/cloak/gloves/boots/ear/ring') rarity = Integer(desc='희구도. 별개수.') quality = String(desc='아이템 등급. 고급/일반=high/general') option = String(desc='장비품의 옵션 정보') set_option = String(desc='장비품의 세트 옵션 정보') owner_class = String(desc='사용 가능한 직업군. Combatant 의 key.') resource_id = String(desc='리소스 id') int_attr = Dict(Integer(), desc='정수로 표시되는 아이템 속성 값. {p_atk: 100, level: 2, ...}') str_attr = Dict(String(), desc='문자로 표시되는 아이템 속성 값. {key: 커츠, target: 천재, ...}') stage = List(String(), desc='출현 스테이지. [1-1, 2-3, ...]') strengthen_rate = String(desc='아이템 강화도 확률 아이디') strengthen_stat = String(desc='아이템 강화도 스텟 아이디') desc = String(desc='아이템 설명') price = Integer(desc='판매 가격') imprint_exp = Integer(desc='각인 경험치') # add by Yoray, JoyGames, ALPHA GROUP CO.,LTD, at 2017-03-29 # detail: 装备初始属性随机相关 aofei_int_type = String(desc='装备随机属性类型') aofei_int_min = Integer(desc='装备随机属性下限') aofei_int_max = Integer(desc='装备随机属性上限') # >>add by ZHM, JoyGames, ALPHA GROUP CO.,LTD, at 2017-04-06 for 增加道具流通属性 aofei_tradable = Boolean(desc='可交易') aofei_start_price = Integer(desc='初始均价') aofei_time_tradable = Integer(desc='交易间隔') aofei_look_time_trade = Integer(desc='公示期') aofei_order_type = String(desc='交易行分类') aofei_review_time = Integer(desc="审核时间(秒)") # <<add by ZHM, JoyGames, ALPHA GROUP CO.,LTD, at 2017-04-06 for 增加道具流通属性 def can_equip_by_hero(self, hero_class_key): return self.owner_class in ['Common', hero_class_key] def get_index_meta(self): """ 인덱싱에 사용할 메타 정보 반환 :return: dict: {인덱스 이름: 인덱스 컬럼 리스트, ...} """ return { 'type': (self.type, ) # 스킬 보유 캐릭터 기준 인덱싱 }
class UserSession(ClassObject): session_id = String(desc='세션의 인스턴스 id') user_id = String(desc='유저 id') platform = String(desc='접속 장비의 플랫폼. ex. aos, ios') server_selected = String(desc='입장 선택한 서버') server_group = String(desc='입장서버에 따라 그룹으로 묶인 서버') created = Boolean(default=False, desc='기사단 생성 여부') block_status = Integer(default=0, desc='유저 블록 상태. 0 : 블록 아님, 1: 정해진 기간, 2: 영구 블록') block_expiry_time = Integer(default=0, desc='블록 만료 시간. utc') time_last_request = Integer(default=0, desc='마지막 요청을 보낸 시간. utc') time_last_login = Integer(default=0, desc='마지막으로 로그인 성공한 시간. utc') country = String(desc='유저의 국가 코드. KR/JP/... 클라에서 보낸 값') np_id = String(desc='플랫폼 np id. 플랫폼에서는 GUID 라고도 부름') server_user_id_migration = Dict(Integer(), desc='서버통합 데이터로 마이그레이션 된 시각 UTC') aofei_account_id = String(desc='account id') aofei_account_name = String(desc='account name') last_operation = String(desc='last operation')
class MasterEquipment(ClassObject): key = String(desc='Equipment 의 key') equipment_type = String(desc='Equipment 의 분류') primary_option = String(desc='장비의 분류 한손무기 / 양손검 / 활 등등') sub_option = String(desc='장비의 옵션 아이디 값') sub_count = Integer(desc='서브 옵션의 개수') set_option = String(desc='장비의 세트 옵션 아이디 값') skill_option = String(desc='장비의 스킬 옵션 값 BahaviorBase 의 값') strengthen_rate = String(desc='장비의 강화 확률 아이디') strengthen_stat = String(desc='장비의 강화도에 따른 스탯 아이디') bless_rate = String(desc='장비의 축복 강화 확률 아이디') bless_stat = String(desc='장비의 축복 강화 에 따른 스탯 아이디') compose_key = String(desc='합성시 획득하는 포이트의 키 값') compose_result = Boolean(desc='합성 결과 등장 여부') rarity = Integer(desc='희귀도') safety_strengthen = Integer(desc='안전 강화 단계') aofei_rand_attr = String(desc="装备初始随机属性")#add by ZHM, JoyGames, ALPHA GROUP CO.,LTD, at 2017-06-20 for 装备初始随机属性 def get_index_meta(self): return { 'get_compose_result_items': (self.rarity, self.compose_result, self.equipment_type) }
class TeamBossFirstDetail(ClassObject): is_finish = Boolean(desc='是否已完成', default=True) stage_dict = Dict(Class(TeamBossFirstStageDetail), desc='第一阶段所有副本信息')
class BattleExtInfo(ClassObject): is_self_die = Boolean(desc='是否自己死亡', default=False) server_caster_id = String(desc='攻击者server user id', default=None) server_target_id = String(desc='目标server user id', default=None) damage = String(desc='伤害值', default=0)
class FortPointStatus(FortPointSnap): is_in_battle = Boolean(desc='是否战斗中', default=False)
class CGSynTeamMatchStatus(ProtocolBase): is_in_match = Boolean(desc='是否在自动匹配中', default=False)
class CGSynMemberOnlineStatus(ProtocolBase): server_member_id = String(desc='成员server user id', default=None) is_online = Boolean(desc='是否在线', default=False)
class CGSynMemReadyStatus(ProtocolBase): server_member_id = String(desc='成员server user id', default=None) func_type = String(desc='玩法类型', default=None) func_flag = String(desc='玩法具体标识', default=None) is_ready = Boolean(desc='是否准备', default=False)
class BTBattleInitFinish(ProtocolBase): auto_status = Boolean(desc='自动状态')
class SCUpdateFollowLeaderRequest(ProtocolBase): follow_leader = Boolean(desc='是否跟随队长')
class SCSyncMemFollowLeader(ProtocolBase): server_user_id = String(desc='玩家server user id') follow_leader = Boolean(desc='是否跟随')
class TeamBossBattleMember(ClassObject): server_user_id = String(desc='玩家server user id') is_off = Boolean(desc='是否断线', default=False) is_init_ok = Boolean(desc='是否初始化完成', default=False) is_dead = Boolean(desc='是否死亡', default=False) battle_data = Class(TeamBossBattleUnitHero, desc='战斗数据')
class AddNewTeamMember(ClassObject): server_member_id = String(desc='成员id', default=None) is_online = Boolean(desc='是否在线', default=False)
class AlphaFortWarPointStatus(AlphaFortWarPointSnap): is_in_battle = Boolean(desc='是否战斗中', default=False)
class MasterMailRow(ClassObject): key = String(desc='master data 의 고유 키') category = String(desc='메일의 탭 분류 스트링 값') category_code = Integer(desc='메일의 탭 아이디 값 0 : 시스템 1: 친구') keep_time = Integer(desc='메일 받은 후 보유 기간') reward_all = Boolean(desc='메일 전체 수령 가능 여부')
class MasterInventory(ClassObject): key = String(desc='아이템 종류. 무기/방어구/장신구/기술서/재화/재료/영혼석/물약') inven = String(desc='인벤 저장소') cat_1 = String(desc='인벤토리 대분류 ') stack = Boolean(desc='아이템 누적 여부')
class TeamBossPartDetail(ClassObject): part_key = String(desc='boss部位key, part表key') cur_hp = Integer(desc='当前血量') max_hp = Integer(desc='最大血量') is_finish = Boolean(desc='是否已完成', default=True)
class SceneMemberInfo(ClassObject): server_user_id = String(desc='成员server_user_id') follow_leader = Boolean(desc='是否跟随队长', default=False)
class MemberInfo(ClassObject): server_member_id = String(desc='队员信息', default=None) is_online = Boolean(desc='是否在线', default=False)