4 def __init__(self
, session
):
8 def __getattr__(self
, name
):
9 if(name
== 'minDuration'):
11 for q
in self
.quests
[1:]:
12 if(q
.duration
< cur
.duration
):
16 def getBestByMoney(self
, maxDuration
= 1200):
18 for q
in self
.quests
[1:]:
19 if(q
.silver
/q
.duration
> cur
.silver
/cur
.duration
and q
.duration
<= maxDuration
):
21 if(q
.duration
<= maxDuration
):
26 def getBestByExperience(self
, maxDuration
= 1200):
28 for q
in self
.quests
[1:]:
29 if(q
.experience
/q
.duration
> cur
.experience
/cur
.duration
and q
.duration
<= maxDuration
):
31 if(q
.duration
<= maxDuration
):
36 def parse(self
, data
, result
= None):
41 data
= data
.split('/')
47 duration
= int(data
[241 +i
]),
48 silver
= int(data
[283 +i
]),
49 experience
= int(data
[280 +i
]))
50 self
.quests
.append(quest
)
53 def __init__(self
, session
, number
, duration
= None, silver
= None, experience
= None):
54 self
.session
= session
56 self
.duration
= duration
58 self
.experience
= experience
63 print 'do quest.attend quest'
64 r107
= self
.session
.request('510%i' % (self
.number
))
66 print 'done quest.attend quest'
70 print 'do quest.request fight'
71 r106
= self
.session
.request('010')
73 print 'done quest.request fight'
75 except KeyboardInterrupt:
76 print 'do quest.abort'
77 r108
= self
.session
.request('511')
79 print 'done quest.abort'
82 print 'do character.request'
83 r004
= self
.session
.request('004')
84 self
.session
.character
.parse(r004
)
85 print 'done character.request'
86 #self.session.character.silver
90 return float(self
.experience
) / float(self
.duration
)
93 return '<Quest %i>' % (self
.number
)
95 def queryQuests(session
):
96 data
= session
.request('010')
98 data
= data
[3:].split('/')
104 duration
= int(data
[241 +i
]),
105 silver
= int(data
[283 +i
]),
106 experience
= int(data
[280 +i
]))