Beispiel #1
0
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='成员参战英雄信息')
Beispiel #2
0
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)
Beispiel #3
0
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
        ]
Beispiel #4
0
class MasterStrengthenEquipmentStat(ClassObject):
    key = String(desc='Master StrengthenEquipmentStat 의 키값')

    group_id = String(desc='Items StrengthenValue 의 값')
    strengthen = Integer(desc='아이템의 강화도')

    up_value = Integer(desc='장비에 붙은 속성이 올라가는 확률 ')
Beispiel #5
0
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='报名时间')
Beispiel #6
0
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)
Beispiel #7
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)
Beispiel #8
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)
        }
Beispiel #9
0
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)}
Beispiel #10
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)
Beispiel #11
0
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='结束时间')
Beispiel #12
0
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副本详细信息')
Beispiel #13
0
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='初始状态')
Beispiel #14
0
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)}
Beispiel #15
0
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 英雄装备服装,不存在英雄时临时保存
Beispiel #16
0
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='其他信息')
Beispiel #17
0
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')
Beispiel #18
0
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)}
Beispiel #19
0
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,)
        }
Beispiel #20
0
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='战斗阵容信息')
Beispiel #21
0
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='防守变更日志列表')
Beispiel #22
0
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 交易行邮件装备固定属性
Beispiel #23
0
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='坐标信息')
Beispiel #24
0
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)
Beispiel #25
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
Beispiel #26
0
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,)
        }
Beispiel #27
0
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='公会相关日志列表')
Beispiel #28
0
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='第二阶段详细信息')
Beispiel #29
0
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')
Beispiel #30
0
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)
        }