Exemplo n.º 1
0
 def run(self):
     global FirstTime, Times
     logger.info('zengzanThread start')
     if Delay_Time > 0:
         logger.info('I will start zengzan at ' + util.next_time(Delay_Time))
         time.sleep(Delay_Time)
     while True:
         ni = self.getNpcInfo()
         remain_times = ni.getNumber()
         if remain_times > 0:
             time.sleep(2)
             res = self.zengzan(Npc_String, remain_times + 100)
             if res.has_key('exception'):
                 msg = res['exception']['message']
                 logger.info('zengzan exception: %s'%(msg))
                 if msg == 'waittingOrder':
                     gi = GeneralInfo()
                     sp = util.get_sleep_time(gi.get_mobility_CDTime(), gi.get_localTime()-gi.get_serverTime())
                     logger.info('I will sleep for mobility CD to %s'%(util.next_time(sp)))
                     time.sleep(sp)
                     FirstTime = True
                     continue
                 elif msg == 'lessMobility':
                     return
                 else:
                     time.sleep(2)
                     FirstTime = True
                     continue
         nrt = util.get_next_refresh_time(ni.getServerTime())
         sp = util.get_sleep_time(nrt, ni.getLocalTime()-ni.getServerTime()) + 1
         logger.info('I will sleep till time %s'%(util.next_time(sp)))
         time.sleep(sp)
 def run(self):
     logger.info('JianzhuThread start, will do %d times'%(Times))
     #logger.info('I will jianzhu: ' + ' '.join(Jianzhu_List))
     if Delay_Time > 0:
         logger.info('I will start jianzhu at ' + util.next_time(Delay_Time))
         time.sleep(Delay_Time)
     inteval = 30
     ci = 1
     # old
     if Times > 0:
         while ci <= Times:
             for i in range(len(Jianzhu_List)):
                 self.do_jianzhu(Jianzhu_List[i])
                 if i < len(Jianzhu_List) - 1:
                     time.sleep(inteval)
             logger.info('sleeping %d seconds in %d time'%(Sleep_Time, ci))
             logger.info('next round will at ' + util.next_time(Sleep_Time))
             ci += 1
             time.sleep(Sleep_Time)
     else:
         while True:
             # get general info
             gi = GeneralInfo()
             next_cd = gi.get_next_CDTime()
             stime = gi.get_serverTime()
             next_jname = self.get_next_jname(gi)
             sp = 0
             if not next_jname:
                 logger.info('I will send notify at server time: ' + util.next_time(gi.get_next_CDTime()-gi.get_serverTime()))
                 time.sleep(max(0, gi.get_next_CDTime() - gi.get_serverTime()))
                 logger.info('All jianzu has upgraded to max level, will exit')
                 util.notify('All jianzu has upgraded to max level')
                 break
             if next_cd > stime:
                 sp = next_cd - stime + 1
             if sp > 0:
                 logger.info('I will start upgrade %s at %s'%(next_jname, util.next_time(sp)))
                 time.sleep(sp)
             else:
                 logger.info('I will start upgrade %s now'%(next_jname))
             res = self.do_jianzhu(next_jname)
             if res.has_key('exception'):
                 msg = res['exception']['message']
                 logger.error('Got Exception "%s", will exit'%(msg))
                 if msg == 'CDTimeNotCool':
                     continue
                 elif msg == 'noBuildTeamUsable':
                     continue
                 elif msg == 'maintenance':
                     time.sleep(2000)
                     continue
                 return
             time.sleep(2)
Exemplo n.º 3
0
 def run(self):
     logger.info('KejiThread start, will do %d times'%(Times))
     #logger.info('I upgrade keji: ' + ' '.join(Kid_List))
     if Delay_Time > 0:
         logger.info('I will start keji at ' + util.next_time(Delay_Time))
         time.sleep(Delay_Time)
     inteval = 30
     ci = 1
     if Times > 0:
         while ci <= Times:
             for i in range(len(Kid_List)):
                 self.do_keji(Kid_List[i])
                 if i < len(Kid_List) - 1:
                     time.sleep(inteval)
             if ci == Times:
                 break
             logger.info('sleeping %d seconds in %d time'%(Sleep_Time, ci))
             logger.info('next round will at ' + util.next_time(Sleep_Time))
             ci += 1
             time.sleep(Sleep_Time)
     else:
         while True:
             # get general info
             gi = GeneralInfo()
             ki = KejiInfo()
             next_keji_cd = gi.get_next_keji_CDTime()
             stime = gi.get_serverTime()
             next_kname = self.get_next_kname(gi, ki)
             sp = 0
             if not next_kname:
                 logger.info('I will send notify at server time: ' + util.next_time(gi.get_next_keji_CDTime() - gi.get_serverTime()))
                 time.sleep(gi.get_next_keji_CDTime() - gi.get_serverTime())
                 logger.info('All keji has upgraded to max level, will exit')
                 util.notify('All keji has upgraded to max level')
                 break
             if next_keji_cd > stime:
                 sp = next_keji_cd - stime + 1
             if sp > 0:
                 logger.info('I will start upgrade %s at %s'%(next_kname, util.next_time(sp)))
                 time.sleep(sp)
             else:
                 logger.info('I will start upgrade %s now'%(next_kname))
             res = self.do_keji(next_kname)
             if res.has_key('exception'):
                 msg = res['exception']['message']
                 logger.error('Got Exception "%s", will exit'%(msg))
                 if msg == 'CDTimeNotCool':
                     continue
                 return
             time.sleep(2)
Exemplo n.º 4
0
 def run(self):
     logger.info('weipai Thread start, will weipai type %s'%(Type))
     if Delay_Time > 0:
         logger.info('I will start weipai at ' + util.next_time(Delay_Time))
         time.sleep(Delay_Time)
     cnt = 1
     while True:
         try:
             ml = self.get_max_level(Type)
             if int(ml) >= MaxLevel:
                 msg = 'Weipai reach max level %s, TotalCost %d'%(ml, TotalCost)
                 logger.info(msg)
                 util.notify(msg)
                 break
             logger.info('Type:%s MaxLevel:%s'%(Type, ml))
             res = self.do_weipai(Type, ml)
             if res[0].has_key('exception'):
                 msg = res[0]['exception']['message']
                 logger.info('got exception %s, TotalCost %d'%(msg, TotalCost))
                 if msg == 'CDTimeNotCool':
                     gi = GeneralInfo()
                     sp = gi.get_weipai_CDTime() - gi.get_serverTime()
                     logger.info('Next round weipai will start at ' + util.next_time(sp))
                     time.sleep(sp)
                     continue
                 else:
                     break
             try:
                 eq = res[1]['resArr']['userEquip']
                 logger.info('Got Equip level=%s id=%s color=%s name=%s salePrice=%s maxPiece=%s currPiece=%s'%(ml, eq['id'], eq['type']['color'], eq['type']['name'], eq['type']['salePrice'], eq['maxPiece'], eq['currPiece']))
                 price = int(eq['type']['salePrice']) * int(eq['currPiece']) / int(eq['maxPiece'])
                 if int(eq['type']['color']) <= SellColor:
                     self.sell(eq['id'], price)
                 else:
                     logger.info('I will keep it')
             except:
                 pass
             logger.info('finished %d time, TotalCost %d'%(cnt, TotalCost))
             cnt += 1
             time.sleep(2)
         except:
             logger.info(traceback.format_exc())
             time.sleep(10)
Exemplo n.º 5
0
 def run(self):
     global Local_Server_Diff,Server_Time
     logger.info('MagicThread start')
     while True:
         try:
             gi = GeneralInfo()
             Server_Time = gi.get_serverTime()
             Local_Server_Diff = gi.get_localTime() - Server_Time
             #logger.info('Server_Time=%d Local_Server_Diff=%d'%(Server_Time, Local_Server_Diff))
             magic = int(gi.get_magic())
             logger.info('get magic=%d'%(magic))
             self.notify(magic)
             self.get_next_half_hour()
             sp = Server_Time + Local_Server_Diff - int(time.time()) + 60
             logger.info('I will sleep %d seconds'%(sp))
             time.sleep(sp)
         except:
             logger.error(traceback.format_exc())
             time.sleep(60)
Exemplo n.º 6
0
 def run(self):
     global g_previous_armyid
     logger.info('pozen Thread start, will pozen campaign %s'%(str(Campaign)))
     if Delay_Time > 0:
         logger.info('I will start pozen at ' + util.next_time(Delay_Time))
         time.sleep(Delay_Time)
     #self.bianzhen('yanxing')
     time.sleep(2)
     for campaignid in Campaign:
         while True:
             try:
                 #res = self.get_pozen_info(2)
                 #print json.dumps(res, sort_keys = False, indent = 4)
                 #return
                 armyid = self.get_next_id(campaignid)
                 if armyid is None:
                     logger.info('pozen network error')
                     time.sleep(2)
                     continue
                 elif armyid == -1:
                     logger.info('pozen %d finished'%(campaignid))
                     break
                 elif armyid == g_previous_armyid:
                     logger.info('pozen %d falied, %d lose'%(campaignid,  armyid))
                     return
                 g_previous_armyid = armyid
                 time.sleep(2)
                 logger.info('pozen army %d'%(armyid))
                 res = self.do_pozen(armyid)
                 if res.has_key('exception'):
                     logger.error('Got Exception "%s"'%(res['exception']['message']))
                     if 'waittingOrder' == res['exception']['message']:
                         gi = GeneralInfo()
                         sp = util.get_sleep_time(gi.get_mobility_CDTime(), gi.get_localTime()-gi.get_serverTime())
                         logger.info('I will sleep for mobility CD to %s'%(util.next_time(sp)))
                         time.sleep(sp)
                         g_previous_armyid = 0
                         continue
                     return
                 time.sleep(2)
             except:
                 logger.info(traceback.format_exc())
                 time.sleep(10)
Exemplo n.º 7
0
    def formatGeneralInfoLine(self, line):
        line = self.formatLine(line)
        slashIndex = line.find("/")
        if slashIndex != -1:
            status = line[0:slashIndex - 1]
            comment = line[slashIndex + 2:]
        else:
            status = line
            comment = ""

        return GeneralInfo(status, comment)
 def run(self):
     logger.info('jinglianThread %s start, will jinglian to level %d'%(Eid, Level))
     if Delay_Time > 0:
         logger.info('I will start jinglian at ' + util.next_time(Delay_Time))
         time.sleep(Delay_Time)
     level = 0
     while level < Level:
         res = util.send_command('jinglianEquip', Eid)
         if res is not None:
             sp = 298
             if res.has_key('exception'):
                 msg = res['exception']['message']
                 if msg == 'upFail':
                     logger.info('jinglian fail')
                 elif msg == 'CDTimeNotCool':
                     time.sleep(2)
                     gi = GeneralInfo()
                     cd = gi.get_jinglian_CDTime()
                     stime = gi.get_serverTime()
                     if cd > stime:
                         sp = cd - stime + 1
                         logger.info('I will sleep CD to %s'%(util.next_time(sp)))
                         time.sleep(sp)
                     else:
                         time.sleep(2)
                     continue
                 else:
                     logger.info('got Exception %s, exit'%(msg))
                     sys.exit()
             else:
                 level = int(res['userEquip']['starLevel'])
                 logger.info('jinglian to level %d'%(level))
                 if level >= Level:
                     sys.exit()
                 sp = 2
             logger.info('next round will start at ' + util.next_time(sp))
             time.sleep(sp)
         else:
             sp = 2
             logger.info('network error, will start at ' + util.next_time(sp))
             time.sleep(sp)
Exemplo n.º 9
0
 def run(self):
     logger.info('TaxThread start, will tax till remain %d times'%(Remain))
     if Delay_Time > 0:
         logger.info('I will start tax at ' + util.next_time(Delay_Time))
         time.sleep(Delay_Time)
     while True:
         gi = GeneralInfo()
         if gi.get_levy_remain() <= Remain:
             logger.info('Tax remain time is %d, will exit'%(gi.get_levy_remain()))
             return
         else:
             logger.info('Tax remain %d times'%(gi.get_levy_remain()))
         cd = gi.get_tax_CDTime()
         stime = gi.get_serverTime()
         if cd > stime:
             sp = cd - stime + 1
             logger.info('I will sleep CD, will tax at %s'%(util.next_time(sp)))
             time.sleep(sp)
         else:
             time.sleep(1)
         res = self.do_tax()
         if res.has_key('exception'):
             logger.error('Got Exception "%s"'%(res['exception']['message']))
             if 'beyondMaxSilver' == res['exception']['message']:
                 if MaxSilverExit:
                     return
                 else:
                     sp = 1800
                     logger.info('I will tax at %s'%(util.next_time(sp)))
                     time.sleep(sp)
                     continue
             time.sleep(60)
         time.sleep(1)
Exemplo n.º 10
0
    def run(self):
        while True:
            try:
                hlist = self.get_husong_list()
                serverTime = int(hlist['serverTime'])
                maxBlockTimes = int(hlist['userConvoyStatus']['maxBlockTimes'])
                blockTimes = int(hlist['userConvoyStatus']['blockTimes'])
                logger.info('blockTimes %d, maxBlockTimes %d'%(blockTimes, maxBlockTimes))
                if blockTimes >= maxBlockTimes:
                    logger.info('Reach maxBlockTimes %d, will exit'%(maxBlockTimes))
                    return
                find = self.find_lanjie_target(hlist['userConvoyStatus']['viewOtherConvoy'], serverTime)
                time.sleep(4)
                if find is not None:
                    res = self.do_lanjie(find)

                # get suaxin cd
                gi = GeneralInfo()
                lanjiecd = max(
                                gi.get_husong_suaxin_CDTime(),
                                gi.get_block_CDTime()
                              )
                if lanjiecd <> 0:
                    sp = lanjiecd - gi.get_serverTime() + 1
                    sp = max(sp , 0)
                    logger.info('sleep cd, will start at %s'%(util.next_time(sp)))
                    time.sleep(sp)
                else:
                    time.sleep(2)

                # suaxin
                logger.info('suaxin husong list')
                self.suaxin_husong_list()
                time.sleep(2)
            except:
                logger.error(traceback.format_exc())
                time.sleep(1200)
Exemplo n.º 11
0
    def run(self):
        logger.info('TouziThread start')
        if Delay_Time > 0:
            logger.info('I will start touzi at ' + util.next_time(Delay_Time))
            time.sleep(Delay_Time)

        times = 0
        while True:
            try:
                gi = GeneralInfo()
                next_touzi_cd = gi.get_touzi_CDTime()
                stime = gi.get_serverTime()
                sp = 0
                if next_touzi_cd > stime:
                    sp = next_touzi_cd - stime + 1
                if sp > 0:
                    logger.info('I will start touzi %s at %s'%(CityName, util.next_time(sp)))
                    time.sleep(sp)
                else:
                    logger.info('I will start touzi %s now'%(CityName))

                res = self.do_touzi()
                if res.has_key('exception'):
                    msg = res['exception']['message']
                    logger.error('Got Exception "%s", will exit'%(msg))
                    if msg == 'CDTimeNotCool':
                        continue
                    elif msg == 'in invest CD':
                        continue
                    return
                times += 1
                logger.info('Succeed touzi %d times'%(times))
            except:
                import traceback
                logger.error(traceback.format_exc())
                time.sleep(100)
Exemplo n.º 12
0
    def run(self):
        logger.info('BossThread start')
        if Delay_Time > 0:
            logger.info('I will start attack at ' + util.next_time(Delay_Time))
            time.sleep(Delay_Time)

        gi = GeneralInfo()
        start_time = util.get_xiongsou_refresh_time(gi.get_serverTime())
        ls_diff = gi.get_localTime() - gi.get_serverTime()
        sp = util.get_sleep_time(start_time, ls_diff) + 1
        if sp > 0:
            logger.info('I will sleep till start time, will attack at %s'%(util.next_time(sp)))
            time.sleep(sp)
        else:
            time.sleep(2)

        times = 0
        while True:
            times += 1
            if times > Times:
                logger.info('already attack %d times, exit'%(Times))
                break

            res = self.do_attack()
            if res.has_key('exception'):
                logger.error('Got Exception "%s"'%(res['exception']['message']))
                if 'attackCoolTime' == res['exception']['message']:
                    times -= 1
                else:
                    break
            logger.info('attacked %d times'%(times))

            gi = GeneralInfo()
            cd = gi.get_xiongsou_CDTime()
            stime = gi.get_serverTime()
            if cd > stime:
                sp = cd - stime + 1
                logger.info('I will sleep CD, will attack at %s'%(util.next_time(sp)))
                time.sleep(sp)
            else:
                time.sleep(2)
Exemplo n.º 13
0
 def run(self):
     logger.info("weipai Thread start, will weipai type %s" % (Type))
     if Delay_Time > 0:
         logger.info("I will start weipai at " + util.next_time(Delay_Time))
         time.sleep(Delay_Time)
     cnt = 1
     first_time = True
     rc = RoundControl()
     while True:
         try:
             ml = self.get_max_level(Type)
             if first_time:
                 first_time = False
             else:
                 if int(ml) >= MaxLevel:
                     msg = "Weipai reach max level %s, TotalCost %d" % (ml, TotalCost)
                     logger.info(msg)
                     util.notify(msg)
                     break
             logger.info("Type:%s MaxLevel:%s" % (Type, ml))
             if not rc.can_continue(ml):
                 rc.reset()
                 gi = GeneralInfo()
                 sp = gi.get_weipai_CDTime() - gi.get_serverTime() - 15
                 logger.info("Break by RoundControl, Next round weipai will start at " + util.next_time(sp))
                 time.sleep(sp)
                 continue
             res = self.do_weipai(Type, ml)
             # res = util.send_command('weipai', Type, ml)
             if res[0].has_key("exception"):
                 msg = res[0]["exception"]["message"]
                 logger.info("got exception %s, TotalCost %d" % (msg, TotalCost))
                 if msg == "CDTimeNotCool":
                     gi = GeneralInfo()
                     sp = max(gi.get_weipai_CDTime() - gi.get_serverTime(), 0)
                     logger.info("Next round weipai will start at " + util.next_time(sp))
                     time.sleep(sp)
                     continue
                 elif msg == "maintenance":
                     logger.info("Got Exception %s" % (msg))
                     sp = 3600
                     logger.info("Next round weipai will start at " + util.next_time(sp))
                     time.sleep(sp)
                     continue
                 else:
                     logger.info("Exit for Exception %s" % (msg))
                     break
             try:
                 eq = res[1]["resArr"]["userEquip"]
                 logger.info(
                     "Got Equip level=%s id=%s color=%s name=%s salePrice=%s maxPiece=%s currPiece=%s"
                     % (
                         ml,
                         eq["id"],
                         eq["type"]["color"],
                         eq["type"]["name"],
                         eq["type"]["salePrice"],
                         eq["maxPiece"],
                         eq["currPiece"],
                     )
                 )
                 price = int(eq["type"]["salePrice"]) * int(eq["currPiece"]) / int(eq["maxPiece"])
                 if int(eq["type"]["color"]) <= SellColor:
                     self.sell(eq["id"], price)
                 else:
                     if int(eq["type"]["color"]) > 5:
                         msg = "Got Equip %s %s/%s, TotalCost %d" % (
                             eq["type"]["name"],
                             eq["currPiece"],
                             eq["maxPiece"],
                             TotalCost,
                         )
                         logger.info(msg)
                         util.notify(msg)
                     else:
                         logger.info("I will keep it")
             except:
                 pass
             logger.info("finished %d time, TotalCost %d" % (cnt, TotalCost))
             cnt += 1
             time.sleep(2)
         except:
             logger.info(traceback.format_exc())
             time.sleep(10)