예제 #1
0
 def _lucky_darw(self, draw_rates):
     """ 计算抽奖结果 """
     draw_num = self.day_lucky.data.d[PLAYER_ATTR_MDRAW]
     ran = RandomRegion(draw_rates)
     #预防同时抽到两配将
     while 1:
         draw_role_num = 0
         ps = MAX_BOXES * [0]
         rs = ran.randoms(draw_num)
         for i, index  in enumerate(rs):
             ps[index] = -1 * (i + 1)
             item = self.day_lucky.data.items[index]
             if item[IKEY_TYPE] == IT_ROLE_STR:
                 draw_role_num += 1
         if draw_role_num < 2:
             self.day_lucky.data.ps = ps
             break
         sleep(1)
예제 #2
0
 def _lucky_darw(self, draw_rates):
     """ 计算抽奖结果 """
     draw_num = self.day_lucky.data.d[PLAYER_ATTR_MDRAW]
     ran = RandomRegion(draw_rates)
     #预防同时抽到两配将
     while 1:
         draw_role_num = 0
         ps = MAX_BOXES * [0]
         rs = ran.randoms(draw_num)
         for i, index in enumerate(rs):
             ps[index] = -1 * (i + 1)
             item = self.day_lucky.data.items[index]
             if item[IKEY_TYPE] == IT_ROLE_STR:
                 draw_role_num += 1
         if draw_role_num < 2:
             self.day_lucky.data.ps = ps
             break
         sleep(1)
예제 #3
0
 def _produce_items(self):
     """ 随机生成抽奖的所有物品并返回抽奖概率 """
     rates, role_rates = self._get_rates()
     res_mgr = self.player._game.res_mgr
     res_daylucky_ids = []
     for (res_id, rate) in role_rates:
         res_daylucky_ids.append(res_id)
     ran = RandomRegion(rates)
     ran_daylucky_ids = ran.randoms(MAX_BOXES-len(role_rates))
     res_daylucky_ids.extend(ran_daylucky_ids)
     items = []
     draw_rates = []
     for index, res_daylucky_id in enumerate(res_daylucky_ids):
         res_daylucky = res_mgr.day_luckys.get(res_daylucky_id)
         rw = self.player._game.reward_mgr.get(res_daylucky.rid)
         res_item = rw.reward(params=self.player.reward_params())
         items.append(res_item[0])
         draw_rate = (index, res_daylucky.lrate)
         draw_rates.append(draw_rate)
         if res_item[0][IKEY_TYPE] == IT_ROLE_STR:
             self.index_rid[index] = res_daylucky.rid
     self.day_lucky.data.items = items
     return draw_rates
예제 #4
0
 def _produce_items(self):
     """ 随机生成抽奖的所有物品并返回抽奖概率 """
     rates, role_rates = self._get_rates()
     res_mgr = self.player._game.res_mgr
     res_daylucky_ids = []
     for (res_id, rate) in role_rates:
         res_daylucky_ids.append(res_id)
     ran = RandomRegion(rates)
     ran_daylucky_ids = ran.randoms(MAX_BOXES - len(role_rates))
     res_daylucky_ids.extend(ran_daylucky_ids)
     items = []
     draw_rates = []
     for index, res_daylucky_id in enumerate(res_daylucky_ids):
         res_daylucky = res_mgr.day_luckys.get(res_daylucky_id)
         rw = self.player._game.reward_mgr.get(res_daylucky.rid)
         res_item = rw.reward(params=self.player.reward_params())
         items.append(res_item[0])
         draw_rate = (index, res_daylucky.lrate)
         draw_rates.append(draw_rate)
         if res_item[0][IKEY_TYPE] == IT_ROLE_STR:
             self.index_rid[index] = res_daylucky.rid
     self.day_lucky.data.items = items
     return draw_rates