Пример #1
0
 def get_one_buff(self):
     """ 获取单次战斗后给与的buff加成 """
     sbuff = self._game.setting_mgr.setdefault(DEEP_BUFF, DEEP_BUFF_V)
     if sbuff != self._sbuff:
         self._sbuff = sbuff
         self._one_buff = common.str2dict(sbuff)
     return self._one_buff
Пример #2
0
 def get_one_buff(self):
     """ 获取单次战斗后给与的buff加成 """
     sbuff = self._game.setting_mgr.setdefault(DEEP_BUFF, DEEP_BUFF_V)
     if sbuff != self._sbuff:
         self._sbuff = sbuff
         self._one_buff = common.str2dict(sbuff)
     return self._one_buff
Пример #3
0
 def _calc_CBE(self, prop):
     """计算角色战力
         战斗力 =
             勇力*0.8 + 迅捷*2 + 体魄*2
           + 智略*0.7 + 攻击*0.5 + 防御*2
           + 速度*2 + 生命/5+ (命中率—95)*100
           + 回避率*200 + 格挡率*200 + 反击率*200
           + 暴击率*50 +爆伤率*50 + 破甲率*50
           + 免伤率*100 + 连击率*100
     """
     CBE = 0
     setting = self.player._game.setting_mgr
     data = setting.setdefault(CALC_CBE, CALC_CBE_V)
     data = str2dict(data, ktype=str, vtype=float)
     type_data = setting.setdefault(DATA_TYPE_KEY, DATA_TYPE_KEY_V)
     setting_type = str2dict2(type_data)
     for k, v in data.iteritems():
         if CBE_FIX_TAG in k:
             CBE += v
             continue
         if setting_type.has_key(k) and len(setting_type[k]) > 1:
             value = float(getattr(prop, k, 0))
         else:
             value = int(getattr(prop, k, 0))
         CBE += value * v
     return int(CBE)
Пример #4
0
 def load(self):
     init_get_vips_func()
     data = Game.setting_mgr.setdefault(VIP_LEVELS, VIP_LEVELS_V)
     data = common.str2dict(data, ktype=int, vtype=int)
     for k, v in data.iteritems():
         if v == 1:
             self.vip1_coin = k
             break
     self.get_vip_level = self._load(VIP_LEVELS, VIP_LEVELS_V)
Пример #5
0
 def parse(self, target):
     target = str2dict(target, ktype=str, vtype=int)
     if target[KEY_NEED] != -1: #需求阵型最大等级 -1
         return target
     need = 0
     for key in self.mgr._game.res_mgr.position_levels:
         pid = key[0]
         if target['p'] == pid:
             need += 1
     target[KEY_NEED] = need
     return target
Пример #6
0
 def add_buff(self, res_buff):
     """ 添加buff """
     res_buff = common.str2dict(res_buff)
     if not self.pbuff:
         self.pbuff = res_buff
     else:
         for k,v in res_buff.iteritems():
             if self.pbuff.has_key(k):
                 self.pbuff[k] += v
             else:
                 self.pbuff[k] = v
Пример #7
0
 def add_buff(self, res_buff):
     """ 添加buff """
     res_buff = common.str2dict(res_buff)
     if not self.pbuff:
         self.pbuff = res_buff
     else:
         for k, v in res_buff.iteritems():
             if self.pbuff.has_key(k):
                 self.pbuff[k] += v
             else:
                 self.pbuff[k] = v
Пример #8
0
 def is_pass_scene(self):
     """ 是否通过本场景 """
     pass_scene = False
     win_ways = common.str2dict(self.war_per_config.winway, ktype=int, vtype=int)
     for type, value in win_ways.iteritems():
         if type == WAY_WIN_MONSTER and not self.war_data.m_npcids:
             pass_scene = True
         elif type == WAY_WIN_BOSSHP and self.war_data.boss_hp <= 0.01 * value * self.war_data.mboss_hp:
             pass_scene = True
         elif type == WAY_WIN_ALL and not self.war_data.m_npcids \
                 and self.war_data.boss_hp <= 0:
             pass_scene = True
     return pass_scene
Пример #9
0
 def is_pass_scene(self):
     """ 是否通过本场景 """
     pass_scene = False
     win_ways = common.str2dict(self.war_per_config.winway,
                                ktype=int,
                                vtype=int)
     for type, value in win_ways.iteritems():
         if type == WAY_WIN_MONSTER and not self.war_data.m_npcids:
             pass_scene = True
         elif type == WAY_WIN_BOSSHP and self.war_data.boss_hp <= 0.01 * value * self.war_data.mboss_hp:
             pass_scene = True
         elif type == WAY_WIN_ALL and not self.war_data.m_npcids \
                 and self.war_data.boss_hp <= 0:
             pass_scene = True
     return pass_scene
Пример #10
0
 def _init_res_mine(self, objs):
     """ 采矿 """
     from game.base.constant import MINING_COIN1
     from game.base.constant import MINING_COIN2
     self.mines_normals.clear()
     self.mines_vips.clear()
     #dict会改成{(1,30): obj, (31, 50): obj}
     for o in objs:
         k = (o.level1, o.level2)
         o.rids = str2dict(o.rids, ktype=int, vtype=int)
         if o.type == MINING_COIN1:
             self.mines_normals[k] = o
         elif o.type == MINING_COIN2:
             self.mines_vips[k] = o
     return self.mines_normals
Пример #11
0
 def _init_res_mine(self, objs):
     """ 采矿 """
     from game.base.constant import MINING_COIN1
     from game.base.constant import MINING_COIN2
     self.mines_normals.clear()
     self.mines_vips.clear()
     #dict会改成{(1,30): obj, (31, 50): obj}
     for o in objs:
         k = (o.level1, o.level2)
         o.rids = str2dict(o.rids, ktype=int, vtype=int)
         if o.type == MINING_COIN1:
             self.mines_normals[k] = o
         elif o.type == MINING_COIN2:
             self.mines_vips[k] = o
     return self.mines_normals
Пример #12
0
 def gem_add(self):
     """增加珠宝商店窗口"""
     num = self.player._game.setting_mgr.setdefault(GEM_SHOP_MAX_INDEX, GEM_SHOP_MAX_INDEX_V)
     if self.gemShopData.n >= num:
         return False, errcode.EC_GEM_SHOP_IS_MAX
     d_cost = self.player._game.setting_mgr.setdefault(GEM_SHOP_INDEX_COST, GEM_SHOP_INDEX_COST_V)
     default_num = self.player._game.setting_mgr.setdefault(GEM_SHOP_DEFAULT_INDEX, GEM_SHOP_DEFAULT_INDEX_V)
     d_cost = common.str2dict(d_cost, ktype=int, vtype=int)
     cost = d_cost.get(self.gemShopData.n - default_num + 1)
     if cost is None:
         return False, errcode.EC_VALUE
     if not self.player.enough_coin_ex(0, aCoin3=cost):
         return False, errcode.EC_COST_ERR
     self.player.cost_coin_ex(aCoin3=cost)
     self.gemShopData.n += 1
     self.gemShopData.sids = self.player._game.res_mgr.get_gem_shop_by_rate(1, self.gemShopData.sids)
     nt = self.gem_next_time()
     return True, dict(n = self.gemShopData.n, sids = self.gemShopData.sids, t=nt - common.current_time(),
         data = self.player.pack_msg_data(coin=True), rc = self.gemShopData.rc)
Пример #13
0
 def parse(self, target):
     """解析目标"""
     target = str2dict(target, ktype=str, vtype=int)
     return target
Пример #14
0
 def parse(self, target):
     """解析目标"""
     target = str2dict(target, ktype=str, vtype=int)
     return target
Пример #15
0
 def __init__(self, game):
     self._game = game
     ridstr = Game.setting_mgr.setdefault(DAYSIGN_DAY2RID,
                                          DAYSIGN_DAY2RID_V)
     self.rid_dict = common.str2dict(ridstr, ktype=int, vtype=int)
Пример #16
0
 def fetch_max_buff(self):
     """ buff上线 """
     buff_str = Game.setting_mgr.setdefault(BOSS_MAX_BUFF, BOSS_MAX_BUFF_V)
     return common.str2dict(buff_str)
Пример #17
0
 def fetch_add_buff(self):
     """ 获取没此添加的buff值 """
     buff_str = Game.setting_mgr.setdefault(BOSS_ADD_BUFF, BOSS_ADD_BUFF_V)
     return common.str2dict(buff_str)
Пример #18
0
 def fetch_max_buff(self):
     """ buff上线 """
     buff_str = Game.setting_mgr.setdefault(BOSS_MAX_BUFF, BOSS_MAX_BUFF_V)
     return common.str2dict(buff_str)
Пример #19
0
 def __init__(self, game):
     self._game = game
     ridstr = Game.setting_mgr.setdefault(DAYSIGN_DAY2RID, DAYSIGN_DAY2RID_V)
     self.rid_dict = common.str2dict(ridstr, ktype=int, vtype=int)
Пример #20
0
 def load(self):
     #品质颜色定义
     qcolors = Game.setting_mgr.setdefault(QCOLORS, QCOLORS_V)
     self.qcolors = str2dict(qcolors, ktype=str, vtype=str)
Пример #21
0
 def fetch_add_buff(self):
     """ 获取没此添加的buff值 """
     buff_str = Game.setting_mgr.setdefault(BOSS_ADD_BUFF, BOSS_ADD_BUFF_V)
     return common.str2dict(buff_str)