Beispiel #1
0
	def query_test(self):
		query = gdata.spreadsheet.service.CellQuery()
		query['min-col'] = '1'
		query['max-col'] = '5'
		query['min-row'] = '1'
		query['max-row'] = '1'
		feed = self.client.GetCellsFeed("pFH5K-hMXAmr_25slvG3teg", "pFH5K-hMXAmr_25slvG3teg", query=query)
		print tostr( str(feed) )
Beispiel #2
0
 def query_test(self):
     query = gdata.spreadsheet.service.CellQuery()
     query['min-col'] = '1'
     query['max-col'] = '5'
     query['min-row'] = '1'
     query['max-row'] = '1'
     feed = self.client.GetCellsFeed("pFH5K-hMXAmr_25slvG3teg",
                                     "pFH5K-hMXAmr_25slvG3teg",
                                     query=query)
     print tostr(str(feed))
Beispiel #3
0
def test():
    info = sg.get_battle_info(cs[0])
    for bt in info['battle']:
        print bt

    info = sg.get_mili_info(cs[0])
    for gt in info['goto']:
        print gt
        print tostr(gt[5]), gt[-2], sg.stand_mid(gt[6], gt[7]), sg.tomyxy(
            gt[6], gt[7])

    for gt in info['come']:
        pass
Beispiel #4
0
def test():
	info = sg.get_battle_info( cs[0] )
	for bt in  info['battle']:
		print bt
	
	info = sg.get_mili_info( cs[0] )
	for gt in info['goto']:
		print gt
		print tostr( gt[5] ), gt[-2], sg.stand_mid( gt[6], gt[7]) , sg.tomyxy(gt[6], gt[7])
	
	
	for gt in info['come']:
		pass
Beispiel #5
0
def call_do_task(tid, gs):
    at = 600 + tid * 300

    tinfo = sg.task_info()
    s = tinfo['status']
    t = tinfo['current'][1]
    if s == 1:
        print "任务正在进行中", t, "秒后重试"
    elif s == 2:
        print "任务正在战斗", t, "秒后重试"
    elif s == 3:
        print "任务完成,正在返回", t, "秒后重试"
    if s != 0:
        return t

    # 人数
    n = [0, 20000, 0, 20000]
    infos = sg.get_generals_info()
    generals = infos['generals']
    for geninfo in generals:
        genid = geninfo[0]
        if genid not in gs: continue
        t1, t2, t3 = geninfo[4][0], geninfo[5][0], geninfo[6][0]
        isneed = 0
        for e in [1, 2, 3]:
            need = n[e] - eval("t%d" % e)

            if need > 0:
                isneed += need
                print tostr(geninfo[1]), t1, t2, t3
                sg.add_soldier(need)
                sg.add_to_gen(genid, e, need)
        if isneed > 0: return 1

    infos = sg.get_soldier_info()
    infos = filter(lambda x: x[1] in gs, infos)
    infos = filter(lambda x: x[7] < 100, infos)
    ns = filter(lambda x: x[8] != -1 and x[7] > 89, infos)
    if len(ns) == len(infos) and len(ns) != 0:
        infos.sort(cmp=lambda x, y: cmp(y[8], x[8]))
        if infos[0][8] < at:
            sg.do_task(tid, gs)
            return 5
    if len(infos) == 0:
        sg.do_task(tid, gs)
        return 5

    n = call_up_shiqi(gs)
    if n > at: return n - at
    return 10
Beispiel #6
0
Datei: haha.py Projekt: xkou/asfs
def call_do_task( tid, gs ):
	at = 600+tid*300

	tinfo = sg.task_info()
	s = tinfo['status']
	t = tinfo['current'][1]
	if s == 1:
		print "任务正在进行中", t,"秒后重试"
	elif s == 2:
		print "任务正在战斗", t,"秒后重试"
	elif s == 3:
		print "任务完成,正在返回", t,"秒后重试"
	if s != 0:
		return t

	# 人数
	n =[0,20000,0, 20000]
	infos = sg.get_generals_info()
	generals = infos['generals']
	for geninfo in generals:
		genid = geninfo[0]
		if genid not in gs: continue
		t1,t2,t3 = geninfo[4][0],geninfo[5][0],geninfo[6][0]
		isneed = 0
		for e in [1,2,3]:
			need = n[e] - eval("t%d" % e )
			
			if  need > 0 :
				isneed+=need
				print tostr(geninfo[1]), t1, t2, t3
				sg.add_soldier( need )
				sg.add_to_gen( genid, e, need )
		if isneed > 0 : return 1

	infos = sg.get_soldier_info()
	infos = filter( lambda x:x[1] in gs, infos )
	infos = filter( lambda x:x[7] < 100, infos )
	ns = filter( lambda x:x[8] != -1 and x[7] > 89, infos )
	if len(ns) == len(infos) and len(ns)!=0:
		infos.sort( cmp = lambda x,y : cmp(y[8], x[8]) )
		if infos[0][8] < at:
			sg.do_task( tid, gs )
			return 5
	if len(infos) == 0 :
		sg.do_task( tid, gs )
		return 5
	
	n = call_up_shiqi( gs )
	if n > at: return n -at 
	return 10
Beispiel #7
0
	def _PrintFeed(self, feed):
		for i, entry in enumerate(feed.entry):
			if isinstance(feed, gdata.spreadsheet.SpreadsheetsCellsFeed):
				print '%s %s\n' % ( tostr(entry.title.text), tostr(entry.content.text))
			elif isinstance(feed, gdata.spreadsheet.SpreadsheetsListFeed):
				print '%s %s %s' % (i, tostr(entry.title.text), tostr(entry.content.text))
				# Print this row's value for each column (the custom dictionary is
				# built using the gsx: elements in the entry.)
				print 'Contents:'
				for key in entry.custom: 
					print ' %s: %s' % (key, entry.custom[key].text)
				print '\n',
			else:
				print '%s %s\n' % (i, tostr(entry.title.text))
Beispiel #8
0
def showinfo( r ):
	for e in r['tents']:
		u = filter( lambda x:x[0] == e[2], r['users'] )[0]
		if tostr( u[3] ).find("пллЛ") != -1:
			v = sg.calc_xy( e[3] )
			
			print  tostr( u[1] ), tostr( u[3] ), tostr( e[1] ), math.sqrt(v[0]**2+v[1]**2),v, (238-v[1], v[0]-580)
			all.append( (tostr( u[1] ), tostr( u[3] ), tostr( e[1] ), math.sqrt(v[0]**2+v[1]**2),v, (238-v[1], v[0]-580)) )
Beispiel #9
0
 def _PrintFeed(self, feed):
     for i, entry in enumerate(feed.entry):
         if isinstance(feed, gdata.spreadsheet.SpreadsheetsCellsFeed):
             print '%s %s\n' % (tostr(
                 entry.title.text), tostr(entry.content.text))
         elif isinstance(feed, gdata.spreadsheet.SpreadsheetsListFeed):
             print '%s %s %s' % (i, tostr(
                 entry.title.text), tostr(entry.content.text))
             # Print this row's value for each column (the custom dictionary is
             # built using the gsx: elements in the entry.)
             print 'Contents:'
             for key in entry.custom:
                 print ' %s: %s' % (key, entry.custom[key].text)
             print '\n',
         else:
             print '%s %s\n' % (i, tostr(entry.title.text))
Beispiel #10
0
Datei: haha.py Projekt: xkou/asfs
def call_update_building( gid ):
	tasklist = sg.get_current_update()
	bs = sg.get_all_building()
	vv = bs
	l = len(tasklist)
	ts = tasklist.values()
	m = 0
	if l:
		m = min(ts)
		print sg.cname
		for e in tasklist:print "\t", sg.get_building_name( e ),"级别:", filter( lambda x:x[1] == e , vv )[0][3], "剩余时间:", tasklist[e]
	if l >= 3:
		print sg.cname, m, "秒后重试"
		return m
	
	bs = filter( lambda x: x[0] != 5, bs )
	if gid : bs = filter( lambda x: x[0]==gid, bs )
	bs = filter( lambda x: x[1] not in tasklist.keys(), bs )
	
	bs.sort( cmp = lambda x,y : cmp(x[3], y[3]) )
	for obj in bs:
		ret = sg.force_update_building( obj[1] )
		print sg.cname, "升级", tostr(obj[2]), obj[1], "级别:", obj[3], ret['ret'] == 0
		if ret['ret'] == 0:
			break
	else:
		t = m if m > 0 and m < 300 else randint( 280, 320 )
		print  sg.cname, "无法升级成功任何建筑",t,"秒后重试"
		return t
	
	return 5
Beispiel #11
0
def call_update_building(gid):
    tasklist = sg.get_current_update()
    bs = sg.get_all_building()
    vv = bs
    l = len(tasklist)
    ts = tasklist.values()
    m = 0
    if l:
        m = min(ts)
        print sg.cname
        for e in tasklist:
            print "\t", sg.get_building_name(e), "级别:", filter(
                lambda x: x[1] == e, vv)[0][3], "剩余时间:", tasklist[e]
    if l >= 3:
        print sg.cname, m, "秒后重试"
        return m

    bs = filter(lambda x: x[0] != 5, bs)
    if gid: bs = filter(lambda x: x[0] == gid, bs)
    bs = filter(lambda x: x[1] not in tasklist.keys(), bs)

    bs.sort(cmp=lambda x, y: cmp(x[3], y[3]))
    for obj in bs:
        ret = sg.force_update_building(obj[1])
        print sg.cname, "升级", tostr(
            obj[2]), obj[1], "级别:", obj[3], ret['ret'] == 0
        if ret['ret'] == 0:
            break
    else:
        t = m if m > 0 and m < 300 else randint(280, 320)
        print sg.cname, "无法升级成功任何建筑", t, "秒后重试"
        return t

    return 5
Beispiel #12
0
def check_general():
    all = filter(lambda x: x[6] < 90, sg.get_wu_infos() + sg.get_wen_infos())
    for g in all:
        print sg.cname, "犒赏", tostr(g[1]), sg.give_money(g[0], g[12] *
                                                         10)['ret'] == 0

    return 1200
Beispiel #13
0
def test():
	r = sg.lookup_xy( 0, 0 )

	users = r['users']
	db = DB()
	for user in users:
		print user[0], tostr(user[1]), tostr(user[3])
		info = sg.get_user_info(user[0])
		print info
		cities = info['citylist']
		info = info['userinfo'][0]
		print cities
		print info
		#db.insert( tostr(info['login_name']), int(info['popularity']), int(info['user_id']), info['login_name'], len(cities), tostr(info['union_name']), int(info['civilizational']), int(cities[0]['map_id']) )

	for city in r['citys']:
		print sg.stand_xy(city[0]), tostr( city[1] )
Beispiel #14
0
def call_update_building2(rgids=[]):
    gids = map(lambda x: abs(x), rgids)
    tasklist = sg.get_current_update()
    bs = sg.get_all_building()
    vv = bs
    bs = filter(lambda x: x[3] < 33, bs)

    l = len(tasklist)
    ts = tasklist.values()
    print sg.cname
    for e in tasklist:
        print "\t", sg.get_building_name(e), "级别:", filter(
            lambda x: x[1] == e, vv)[0][3], "剩余时间:", tasklist[e]
    if len(ts) == 3: return min(ts)
    if gids: bs = filter(lambda x: x[0] in gids, bs)
    m = min(ts) if l else 0
    bdings = filter(lambda x: x[1] in tasklist.keys(), bs)
    bs = filter(lambda x: x[1] not in tasklist.keys(), bs)
    if len(bs) == 0:
        print sg.cname, "无法升级成功任何建筑", min(ts), "秒后重试"
        return min(ts)
    bs.sort(key=lambda x: x[3])

    # need destroy
    dgids = filter(lambda x: x < 0, rgids)
    dbs = filter(lambda x: -x[0] in dgids, bs)
    ndbs = filter(lambda x: -x[0] not in dgids, bs)
    for obj in dbs:
        ret = sg.destroy_building(obj[0], obj[1])
        print sg.cname, "拆除", tostr(
            obj[2]), obj[1], "级别:", obj[3], ret['ret'] == 0
        return 5

    for obj in ndbs:
        if -obj[0] in rgids: continue
        ret = sg.force_update_building(obj[1])
        print sg.cname, "升级", tostr(
            obj[2]), obj[1], "级别:", obj[3], ret['ret'] == 0
        if ret['ret'] == 0:
            return 5
    else:
        t = m if m > 0 and m < 300 else randint(280, 320)
        print sg.cname, "无法升级成功任何建筑", t, "秒后重试"
        return t
Beispiel #15
0
def call_update_smart(upgrade=4):
    tasklist = sg.get_current_update()
    bs = sg.get_all_building()
    h_gid = 3
    l = len(tasklist)
    ts = tasklist.values()
    if l:
        m = min(ts)
        print sg.cname
        for e in tasklist:
            print "\t", sg.get_building_name(e), "级别:", filter(
                lambda x: x[1] == e, bs)[0][3], "剩余时间:", tasklist[e]
    if l >= 3:
        print sg.cname, m, "秒后重试"
        return m

    for t in tasklist:
        if sg.get_building_gid(t) != h_gid:

            bs = filter(lambda x: x[0] != 5, bs)
            bs = filter(lambda x: x[0] == 3, bs)
            bs = filter(lambda x: x[1] not in tasklist.keys(), bs)
            bs.sort(cmp=lambda x, y: cmp(x[3], y[3]))

            for obj in bs:
                ret = sg.force_update_building(obj[1])
                print sg.cname, "升级", tostr(
                    obj[2]), obj[1], "级别:", obj[3], ret['ret'] == 0
                if ret['ret'] == 0:
                    break
            return 5
    else:
        obj = sg.get_pid_by_gid(upgrade)[0]
        if obj[3] < 33:
            ret = sg.force_update_building(obj[1])
            print sg.cname, "升级", tostr(
                obj[2]), obj[1], "级别:", obj[3], ret['ret'] == 0
        else:
            ret = sg.destroy_building(obj[0], obj[1])
            print sg.cname, "拆除", tostr(
                obj[2]), obj[1], "级别:", obj[3], ret['ret'] == 0

        return 5
Beispiel #16
0
Datei: haha.py Projekt: xkou/asfs
def call_get_newb_general( tid ):# 7,8
	global sg
	r = sg.find_gen( tid )
	if r['look_for']:
		pass
		#return 100
		#return r['look_for'][0][6]
	w = r['rumor']
	if len(w) == 0:
		ls = sg.get_wen_infos()
		ls = filter( lambda x:x[4] == 0, ls )
		ls.sort( cmp = lambda x,y: cmp( y[11],x[11] ) )
		gen = ls[0]
		if gen[3] != 1:
			print sg.cname, "任命", tostr(gen[1]) ,"为太守"
			sg.give_job( gen[0], 1 )
	else:
		threads.deferToThread( sendemail, "找到名将 " + tostr(w[3]) )
		sg.dofind(w[0])
	return randint(300,400)
Beispiel #17
0
def call_get_newb_general(tid):  # 7,8
    global sg
    r = sg.find_gen(tid)
    if r['look_for']:
        pass
        #return 100
        #return r['look_for'][0][6]
    w = r['rumor']
    if len(w) == 0:
        ls = sg.get_wen_infos()
        ls = filter(lambda x: x[4] == 0, ls)
        ls.sort(cmp=lambda x, y: cmp(y[11], x[11]))
        gen = ls[0]
        if gen[3] != 1:
            print sg.cname, "任命", tostr(gen[1]), "为太守"
            sg.give_job(gen[0], 1)
    else:
        threads.deferToThread(sendemail, "找到名将 " + tostr(w[3]))
        sg.dofind(w[0])
    return randint(300, 400)
Beispiel #18
0
def call_update_building2( rgids = [] ):
	gids = map( lambda x:abs(x), rgids )
	tasklist = sg.get_current_update()
	bs = sg.get_all_building()
	vv = bs
	bs = filter( lambda x:x[3]<33, bs )
	
	l = len( tasklist)
	ts = tasklist.values()
	print sg.cname
	for e in tasklist:print "\t", sg.get_building_name( e ),"级别:", filter( lambda x:x[1] == e , vv )[0][3], "剩余时间:", tasklist[e]
	if len(ts) == 3 : return min(ts)
	if gids: bs = filter( lambda x:x[0] in gids , bs )
	m = min(ts) if l else 0
	bdings = filter( lambda x:x[1] in tasklist.keys(), bs )
	bs = filter( lambda x:x[1] not in tasklist.keys(), bs )
	if len(bs) == 0 :
		print  sg.cname, "无法升级成功任何建筑",min(ts),"秒后重试"
		return min(ts)
	bs.sort( key = lambda x:x[3] )

	# need destroy
	dgids = filter( lambda x:x <0 , rgids )
	dbs = filter( lambda x:-x[0] in dgids , bs )
	ndbs = filter( lambda x:-x[0] not in dgids , bs )
	for obj in dbs:
		ret = sg.destroy_building( obj[0], obj[1] )
		print sg.cname, "拆除", tostr(obj[2]), obj[1], "级别:", obj[3], ret['ret'] == 0
		return 5

	for obj in ndbs:
		if -obj[0] in rgids : continue
		ret = sg.force_update_building( obj[1] )
		print sg.cname, "升级", tostr(obj[2]), obj[1], "级别:", obj[3], ret['ret'] == 0
		if ret['ret'] == 0:
			return 5
	else:
		t = m if m > 0 and m < 300 else randint( 280, 320 )
		print  sg.cname, "无法升级成功任何建筑",t,"秒后重试"
		return t
Beispiel #19
0
def call_update_tech():
    global top_level

    ret = sg.get_current_update_tech()
    if ret:
        print "当前研究:", tostr(ret[1]), "级别:", ret[2], "剩余时间:", ret[4]
        return ret[4]
    techlist = range(12, 16)  #,13,12,15 #,1,4,3,2,
    #techlist= [16,20,24] #,13,12,15 #,1,4,3,2,
    techlist = [19, 27]
    alltech = sg.get_all_tech()['list']
    alltech = filter(lambda x: x[0] in techlist, alltech)
    alltech = filter(lambda x: x[2] < top_level, alltech)
    alltech.sort(cmp=lambda x, y: cmp(x[2], y[2]))
    for tech in alltech:
        r = sg.update_tech(tech[0])['ret']
        print "升级科技", tostr(tech[1]), r == 0
        if r == 0:
            return 5
    else:
        print "所有科技升级完成"
    return 611
Beispiel #20
0
Datei: haha.py Projekt: xkou/asfs
def call_update_tech():
	global top_level
	
	ret = sg.get_current_update_tech()
	if ret:
		print "当前研究:", tostr(ret[1]), "级别:", ret[2], "剩余时间:", ret[4]
		return ret[4]
	techlist=range(12,16) #,13,12,15 #,1,4,3,2,
	#techlist= [16,20,24] #,13,12,15 #,1,4,3,2,
	techlist = [19,27]
	alltech = sg.get_all_tech()['list']
	alltech = filter( lambda x: x[0] in techlist, alltech)
	alltech = filter( lambda x: x[2] < top_level, alltech)
	alltech.sort( cmp = lambda x,y: cmp( x[2] , y[2] ) )
	for tech in alltech:
		r = sg.update_tech( tech[0] )['ret']
		print "升级科技", tostr(tech[1]), r == 0
		if r==0:
			return 5
	else:
		print "所有科技升级完成"
	return 611
Beispiel #21
0
def call_update_smart( upgrade=4 ):
	tasklist = sg.get_current_update()
	bs = sg.get_all_building()
	h_gid = 3
	l = len(tasklist)
	ts = tasklist.values()
	if l:
		m = min(ts)
		print sg.cname
		for e in tasklist:print "\t", sg.get_building_name( e ),"级别:", filter( lambda x:x[1] == e , bs )[0][3], "剩余时间:", tasklist[e]
	if l>=3:
		print sg.cname, m, "秒后重试"
		return m
	
	for t in tasklist:
		if sg.get_building_gid( t ) != h_gid :
	
			bs = filter( lambda x: x[0] != 5, bs )
			bs = filter( lambda x: x[0] == 3, bs )
			bs = filter( lambda x: x[1] not in tasklist.keys(), bs )
			bs.sort( cmp = lambda x,y : cmp(x[3], y[3]) )
			
			for obj in bs:
				ret = sg.force_update_building( obj[1] )
				print sg.cname, "升级", tostr(obj[2]), obj[1], "级别:", obj[3], ret['ret'] == 0
				if ret['ret'] == 0:
					break
			return 5
	else:
		obj = sg.get_pid_by_gid( upgrade )[0]
		if obj[3] < 33:
			ret = sg.force_update_building( obj[1] )
			print sg.cname, "升级", tostr(obj[2]), obj[1], "级别:", obj[3], ret['ret'] == 0
		else:
			ret = sg.destroy_building( obj[0], obj[1] )
			print sg.cname, "拆除", tostr(obj[2]), obj[1], "级别:", obj[3], ret['ret'] == 0
		
		return 5
Beispiel #22
0
def call_sell_weapon(ws=(206, 306, 406)):

    num = 4
    rest = 1
    info = sg.get_market_info()
    for e in info:
        e = info[e]
        if e[0] not in ws: continue
        if e[2] > num:
            sellcount = e[2] - rest
            if sg.sell(sellcount, e[0], e[3])['ret'] != 0:
                print "卖出", tostr(e[1]), sellcount, "件, 失败"

    return 20
Beispiel #23
0
	def check(i):
		v = []
		
		sg.change_city( i )
		info =  sg.get_people_info()
		v.append( info[1] )
		v.append( info[4] )
		v.append( info[3] )
		info = sg.get_fin_info()
		name = tostr( info[1] )
		v.append( -info[4] )
		v.append( -info[5] )
		v.append( -info[-3] )
		d.set_value( v )
		return name,d.get_tax()
Beispiel #24
0
    def check(i):
        v = []

        sg.change_city(i)
        info = sg.get_people_info()
        v.append(info[1])
        v.append(info[4])
        v.append(info[3])
        info = sg.get_fin_info()
        name = tostr(info[1])
        v.append(-info[4])
        v.append(-info[5])
        v.append(-info[-3])
        d.set_value(v)
        return name, d.get_tax()
Beispiel #25
0
    def addpt(l, props):
        addpt1 = l['skill_point']
        addpt2 = 0
        if addpt1 == 0: return
        prodict = {}
        for p in props:
            prodict[p] = l[p]
        newlist = sorted(prodict.items(), key=lambda x: x[1])
        d1 = newlist[2][0]
        d2 = newlist[1][0]
        d3 = newlist[0][0]

        for pt in range(l['skill_point']):
            if l[d1] + addpt1 > l[d2] + addpt2 + l[d3]:
                addpt1 -= 1
                addpt2 += 1
            else:
                break
        print sg.cname, tostr(l['name']), l['skill_point'], newlist
        print sg.cname, tostr(l['name']), "点数", addpt1, addpt2
        sg.add_point(l['id'], newlist[1][0], addpt2)
        sg.add_point(l['id'], newlist[2][0], addpt1)

        return randint(800, 1000)
Beispiel #26
0
Datei: haha.py Projekt: xkou/asfs
def call_sell_weapon( ws =(206,306,406) ):
	
	num = 4
	rest = 1
	info = sg.get_market_info()
	for e in info:
		e = info[e]
		if e[0] not in ws:continue
		if e[2] > num:
			sellcount = e[2]-rest
			if sg.sell(sellcount, e[0] , e[3] )['ret'] != 0:
				print "卖出",tostr(e[1]), sellcount,"件, 失败"

	
	return 20
Beispiel #27
0
Datei: haha.py Projekt: xkou/asfs
	def addpt( l, props ):
		addpt1 = l['skill_point']
		addpt2 = 0
		if addpt1 == 0: return
		prodict = {}
		for p in props:
			prodict[p] = l[p]
		newlist = sorted( prodict.items(), key = lambda x:x[1])
		d1 = newlist[2][0]
		d2 = newlist[1][0]
		d3 = newlist[0][0]
		
		for pt in range( l['skill_point'] ):
			if l[d1]+addpt1 > l[d2]+addpt2 + l[d3]:
				addpt1 -= 1
				addpt2 += 1
			else:
				break
		print sg.cname, tostr(l['name']), l['skill_point'] ,newlist
		print sg.cname, tostr(l['name']), "点数", addpt1, addpt2
		sg.add_point( l['id'], newlist[1][0], addpt2   )
		sg.add_point( l['id'], newlist[2][0], addpt1   )
		
		return randint( 800, 1000 )
Beispiel #28
0
def doit():
	db = DB()
	n = 120
	for x in range(-n, n, 8 ):
		for y in range(-n, n, 8 ):
			r = sg.lookup_xy(x,y)
			users = r['users']
			for user in users:
				print user[0] #, user[1].decode("utf8"), user[3].decode("utf8")
				if db.has(user[0]) : continue
				info = sg.get_user_info(user[0])
				cities = info['citylist']
				info = info['userinfo'][0]
				try:
					db.insert( tostr(info['login_name']), int(info['popularity']), int(info['user_id']), info['login_name'], len(cities), tostr(info['union_name']), int(info['civilizational']), int(cities[0]['map_id']) )
				except:
					pass
Beispiel #29
0
Datei: haha.py Projekt: xkou/asfs
def call_up_shiqi( gs ):
	t = 898
	infos = sg.get_soldier_info()
	infos = filter( lambda x:x[1] in gs, infos )
	infos = filter( lambda x:x[7] < 100, infos )
	if len(infos) == 0:
		return 100
	
	ls = filter( lambda x:x[8] == -1, infos )
	for inf in ls:
		sg.buy( sum(inf[3:6])*5/1000+3, SG._food )
		r = sg.update_shiqi( inf[1], 100-inf[7] )
		print sg.cname, "提升士气", tostr(inf[2]),r['ret'] == 0
	if len(ls) == 0:
		if len( filter( lambda x:x[7] < 90 , infos ) ) == 0:
			infos.sort( cmp = lambda x,y : cmp(y[8],x[8]))
			return  infos[0][8]
				
		infos.sort( cmp = lambda x,y : cmp(x[8],y[8]))
		return infos[0][8]
	return 5
Beispiel #30
0
def call_up_shiqi(gs):
    t = 898
    infos = sg.get_soldier_info()
    infos = filter(lambda x: x[1] in gs, infos)
    infos = filter(lambda x: x[7] < 100, infos)
    if len(infos) == 0:
        return 100

    ls = filter(lambda x: x[8] == -1, infos)
    for inf in ls:
        sg.buy(sum(inf[3:6]) * 5 / 1000 + 3, SG._food)
        r = sg.update_shiqi(inf[1], 100 - inf[7])
        print sg.cname, "提升士气", tostr(inf[2]), r['ret'] == 0
    if len(ls) == 0:
        if len(filter(lambda x: x[7] < 90, infos)) == 0:
            infos.sort(cmp=lambda x, y: cmp(y[8], x[8]))
            return infos[0][8]

        infos.sort(cmp=lambda x, y: cmp(x[8], y[8]))
        return infos[0][8]
    return 5
Beispiel #31
0
Datei: haha.py Projekt: xkou/asfs
def call_yz_update_building( pids ):
	tasklist = sg.get_current_update()
	bs = sg.get_all_building()
	l  = len( tasklist )
	m = 5
	if l: m = min( tasklist.values() )
	if l == 3:
		
		print sg.tname, tasklist
		return m
	bs = filter( lambda x: x[1] not in tasklist.keys(), bs )
	bs = filter( lambda x: x[1] in pids, bs )
	bs.sort( key = lambda x:x[3] )
	for obj in bs:
		ret = sg.update_building( obj[1], obj[0] )
		print sg.tname, "升级", tostr(obj[2]), obj[1], "级别:", obj[3], ret['ret'] == 0
		if ret['ret'] == 0:
			break
	else:
		print sg.tname,"营寨无法升级成功任何建筑"
		return m if l else 300
	
	return 5
Beispiel #32
0
def call_yz_update_building(pids):
    tasklist = sg.get_current_update()
    bs = sg.get_all_building()
    l = len(tasklist)
    m = 5
    if l: m = min(tasklist.values())
    if l == 3:

        print sg.tname, tasklist
        return m
    bs = filter(lambda x: x[1] not in tasklist.keys(), bs)
    bs = filter(lambda x: x[1] in pids, bs)
    bs.sort(key=lambda x: x[3])
    for obj in bs:
        ret = sg.update_building(obj[1], obj[0])
        print sg.tname, "升级", tostr(
            obj[2]), obj[1], "级别:", obj[3], ret['ret'] == 0
        if ret['ret'] == 0:
            break
    else:
        print sg.tname, "营寨无法升级成功任何建筑"
        return m if l else 300

    return 5
Beispiel #33
0
Datei: haha.py Projekt: xkou/asfs
def do_task2( gens, ty ): # [id, 步兵人数, 骑兵人数, 弓兵人数 ]
	m = sg.get_money_number()
	if m < 200000 : return 100
	genids = [ y[0] for y in gens ]
	infos = sg.get_generals_info()
	generals = infos['generals']
	allname = []
	bok = 1
	for gen in gens:
		genid = gen[0]
		geninfo = filter( lambda x:x[0] == genid, generals )
		if geninfo:
			geninfo=geninfo[0]
			name = geninfo[1]
			allname.append(name)
		else: 
			bok =0
			continue
		# 人数
		t1,t2,t3 = geninfo[4][0],geninfo[5][0],geninfo[6][0]
		print tostr(name), t1, t2, t3, gen
		for e in [1,2,3]:
			need = gen[e] - eval("t%d" % e )
			if  need > 0 :
				sg.add_soldier( need )
				sg.add_to_gen( genid, e, need )
	
	# 检查士气
	infos = sg.get_soldier_info()
	
	infos = filter( lambda x:x[1] in genids, infos )

	if infos:
		nfs = filter( lambda x: x[7] < 100 and x[8] == -1, infos )
		if nfs:
			bok *= 0
			n = call_up_shiqi( genids )
			return 5
		nfs = filter( lambda x:  x[7] < 90 and x[8] > -1, infos )
		
		if nfs:
			t = min( [ x[8] for x in nfs ])
			print "正在练士气" ,t,"秒后重试"
			return  t
	else:
		bok = 0
	
	
	if len(allname) < len(genids):
		bok = 0
		infos  = sg.get_mili_info()
		ts = []
		for  info in  infos['come']:
			for gen in info[7]:
				if gen[0] in genids:
					ts.append( info[-1] )
		
		for  info in  infos['goto']:
			for gen in info[8]:
				if gen[0] in genids:
					ts.append( info[-2] )
		if ts:
			print sg.cname, "出征中,",min(ts),"秒后重试."
			return min(ts)
		else:
			bok = 1
	

	
	
	if bok == 0:
		return 100
		
	infos = sg.get_wu_infos()
	infos = filter( lambda x:x[0] in genids and x[4] == 0 , infos )
	if len(infos) != len( genids ):
		return 150
	
	print sg.cname, "军队已就绪."
	for e in allname: print tostr(e)
		
	from libsgmap import MapInfo
	mi = MapInfo()
	best = mi.getbestforme( ty, sg.pos() )
	dest = 0
	wars = None
	for b in best:
		if wars == None:
			wars=[]
			for c in [ 63829, 116399,  169578, 79652 , 171087 ]:
				wars += sg.get_current_wars(c)
		
		if b[1] in wars: continue
		
		for e in  sg.lookup_map(b[1])['npc_tent']:
			if e[2] == b[1] and b[0] in ty:
				dest = b
				break
		else:
			mi.remove(b[1])
			continue
		break
	print dest
	if dest:
		r = sg.do_beat_city( genids, dest[1] )
		print sg.cname, "进攻" , r['ret'] == 0
		return 5
		
	return 100
Beispiel #34
0
	def get_worksheets(self, key ):
		feed = self.client.GetWorksheetsFeed(key)
		print tostr( str( feed) )
Beispiel #35
0
from libsg import SG, tostr

sg = SG()

infos = sg.get_city_list()['infos']
cities = dict([(x[1], x[2]) for x in infos if x[1] > 0])

for k in cities:
    print tostr(cities[k]), k
    sg.change_city(k)
    ks = sg.get_wu_infos()
    for k in ks:
        print "\t", tostr(k[1]), k[0], k[5]
Beispiel #36
0
 def get_worksheets(self, key):
     feed = self.client.GetWorksheetsFeed(key)
     print tostr(str(feed))
Beispiel #37
0
Datei: haha.py Projekt: xkou/asfs
def check_general():
	all = filter( lambda x:x[6] < 90 , sg.get_wu_infos() +  sg.get_wen_infos() )
	for g in all:
		print sg.cname, "犒赏", tostr(g[1]) , sg.give_money( g[0], g[12] *10)['ret'] == 0
	
	return 1200
Beispiel #38
0
from libsg import SG, tostr

sg = SG()

infos =  sg.get_city_list()['infos'] 
cities = dict( [ (x[1],x[2]) for x in infos if x[1]>0  ] )

for k in cities:
	print tostr( cities[k] ), k
	sg.change_city(k)
	ks = sg.get_wu_infos()
	for k in ks:print "\t", tostr( k[1] ), k[0], k[5]
Beispiel #39
0
def do_task2(gens, ty):  # [id, 步兵人数, 骑兵人数, 弓兵人数 ]
    m = sg.get_money_number()
    if m < 200000: return 100
    genids = [y[0] for y in gens]
    infos = sg.get_generals_info()
    generals = infos['generals']
    allname = []
    bok = 1
    for gen in gens:
        genid = gen[0]
        geninfo = filter(lambda x: x[0] == genid, generals)
        if geninfo:
            geninfo = geninfo[0]
            name = geninfo[1]
            allname.append(name)
        else:
            bok = 0
            continue
        # 人数
        t1, t2, t3 = geninfo[4][0], geninfo[5][0], geninfo[6][0]
        print tostr(name), t1, t2, t3, gen
        for e in [1, 2, 3]:
            need = gen[e] - eval("t%d" % e)
            if need > 0:
                sg.add_soldier(need)
                sg.add_to_gen(genid, e, need)

    # 检查士气
    infos = sg.get_soldier_info()

    infos = filter(lambda x: x[1] in genids, infos)

    if infos:
        nfs = filter(lambda x: x[7] < 100 and x[8] == -1, infos)
        if nfs:
            bok *= 0
            n = call_up_shiqi(genids)
            return 5
        nfs = filter(lambda x: x[7] < 90 and x[8] > -1, infos)

        if nfs:
            t = min([x[8] for x in nfs])
            print "正在练士气", t, "秒后重试"
            return t
    else:
        bok = 0

    if len(allname) < len(genids):
        bok = 0
        infos = sg.get_mili_info()
        ts = []
        for info in infos['come']:
            for gen in info[7]:
                if gen[0] in genids:
                    ts.append(info[-1])

        for info in infos['goto']:
            for gen in info[8]:
                if gen[0] in genids:
                    ts.append(info[-2])
        if ts:
            print sg.cname, "出征中,", min(ts), "秒后重试."
            return min(ts)
        else:
            bok = 1

    if bok == 0:
        return 100

    infos = sg.get_wu_infos()
    infos = filter(lambda x: x[0] in genids and x[4] == 0, infos)
    if len(infos) != len(genids):
        return 150

    print sg.cname, "军队已就绪."
    for e in allname:
        print tostr(e)

    from libsgmap import MapInfo
    mi = MapInfo()
    best = mi.getbestforme(ty, sg.pos())
    dest = 0
    wars = None
    for b in best:
        if wars == None:
            wars = []
            for c in [63829, 116399, 169578, 79652, 171087]:
                wars += sg.get_current_wars(c)

        if b[1] in wars: continue

        for e in sg.lookup_map(b[1])['npc_tent']:
            if e[2] == b[1] and b[0] in ty:
                dest = b
                break
        else:
            mi.remove(b[1])
            continue
        break
    print dest
    if dest:
        r = sg.do_beat_city(genids, dest[1])
        print sg.cname, "进攻", r['ret'] == 0
        return 5

    return 100