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
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)
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)
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
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
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
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
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
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)
def parse(self, target): """解析目标""" target = str2dict(target, ktype=str, vtype=int) return target
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)
def fetch_max_buff(self): """ buff上线 """ buff_str = Game.setting_mgr.setdefault(BOSS_MAX_BUFF, BOSS_MAX_BUFF_V) return common.str2dict(buff_str)
def fetch_add_buff(self): """ 获取没此添加的buff值 """ buff_str = Game.setting_mgr.setdefault(BOSS_ADD_BUFF, BOSS_ADD_BUFF_V) return common.str2dict(buff_str)
def load(self): #品质颜色定义 qcolors = Game.setting_mgr.setdefault(QCOLORS, QCOLORS_V) self.qcolors = str2dict(qcolors, ktype=str, vtype=str)