WIP: Add pickup data.

I think that PickupSlot is actually an unnecessary complication. It
should be merged with PickupItem.
This commit is contained in:
Andrew Ekstedt 2012-10-25 18:47:55 -07:00
parent 787a7b864b
commit b473c66d95
5 changed files with 947 additions and 0 deletions

View file

@ -176,6 +176,8 @@ Mics tables
.. dex-table:: Experience .. dex-table:: Experience
.. dex-table:: PalPark .. dex-table:: PalPark
.. dex-table:: PickupItem
.. dex-table:: PickupSlot
.. dex-table:: StatHint .. dex-table:: StatHint
Conquest tables Conquest tables

View file

@ -0,0 +1,661 @@
slot_id,min_level,max_level,item_id
1,1,10,17
1,11,20,18
1,21,30,26
1,31,40,3
1,41,50,79
1,51,60,78
1,61,70,57
1,71,80,27
1,81,90,2
1,91,100,25
2,1,10,18
2,11,20,26
2,21,30,3
2,31,40,79
2,41,50,78
2,51,60,57
2,61,70,27
2,71,80,2
2,81,90,25
2,91,100,50
3,1,10,26
3,11,20,3
3,21,30,79
3,31,40,78
3,41,50,57
3,51,60,27
3,61,70,2
3,71,80,25
3,81,90,50
3,91,100,46
4,1,10,3
4,11,20,79
4,21,30,78
4,31,40,57
4,41,50,27
4,51,60,2
4,61,70,25
4,71,80,50
4,81,90,46
4,91,100,28
5,1,10,79
5,11,20,78
5,21,30,57
5,31,40,27
5,41,50,2
5,51,60,25
5,61,70,50
5,71,80,46
5,81,90,28
5,91,100,45
6,1,10,78
6,11,20,57
6,21,30,27
6,31,40,2
6,41,50,25
6,51,60,50
6,61,70,46
6,71,80,28
6,81,90,45
6,91,100,23
7,1,10,57
7,11,20,27
7,21,30,2
7,31,40,25
7,41,50,50
7,51,60,46
7,61,70,28
7,71,80,45
7,81,90,23
7,91,100,29
8,1,10,27
8,11,20,2
8,21,30,25
8,31,40,50
8,41,50,46
8,51,60,28
8,61,70,45
8,71,80,23
8,81,90,29
8,91,100,51
9,1,10,2
9,11,20,25
9,21,30,50
9,31,40,46
9,41,50,28
9,51,60,45
9,61,70,23
9,71,80,29
9,81,90,51
9,91,100,41
10,1,10,92
10,11,20,198
10,21,30,23
10,31,40,38
10,41,50,191
10,51,60,348
10,61,70,40
10,71,80,305
10,81,90,211
10,91,100,330
11,1,10,25
11,11,20,92
11,21,30,198
11,31,40,23
11,41,50,38
11,51,60,191
11,61,70,348
11,71,80,40
11,81,90,305
11,91,100,211
12,1,10,17
12,11,20,18
12,21,30,26
12,31,40,3
12,41,50,79
12,51,60,78
12,61,70,27
12,71,80,25
12,81,90,2
12,91,100,28
13,1,10,18
13,11,20,26
13,21,30,3
13,31,40,79
13,41,50,78
13,51,60,27
13,61,70,25
13,71,80,2
13,81,90,28
13,91,100,50
14,1,10,26
14,11,20,3
14,21,30,79
14,31,40,78
14,41,50,27
14,51,60,25
14,61,70,2
14,71,80,28
14,81,90,50
14,91,100,108
15,1,10,3
15,11,20,79
15,21,30,78
15,31,40,27
15,41,50,25
15,51,60,2
15,61,70,28
15,71,80,50
15,81,90,108
15,91,100,107
16,1,10,79
16,11,20,78
16,21,30,27
16,31,40,25
16,41,50,2
16,51,60,28
16,61,70,50
16,71,80,108
16,81,90,107
16,91,100,109
17,1,10,78
17,11,20,27
17,21,30,25
17,31,40,2
17,41,50,28
17,51,60,50
17,61,70,108
17,71,80,107
17,81,90,109
17,91,100,23
18,1,10,27
18,11,20,25
18,21,30,2
18,31,40,28
18,41,50,50
18,51,60,108
18,61,70,107
18,71,80,109
18,81,90,23
18,91,100,29
19,1,10,25
19,11,20,2
19,21,30,28
19,31,40,50
19,41,50,108
19,51,60,107
19,61,70,109
19,71,80,23
19,81,90,29
19,91,100,51
20,1,10,2
20,11,20,28
20,21,30,50
20,31,40,108
20,41,50,107
20,51,60,109
20,61,70,23
20,71,80,29
20,81,90,51
20,91,100,41
21,1,10,92
21,11,20,198
21,21,30,23
21,31,40,38
21,41,50,191
21,51,60,348
21,61,70,40
21,71,80,305
21,81,90,211
21,91,100,330
22,1,10,25
22,11,20,92
22,21,30,198
22,31,40,23
22,41,50,38
22,51,60,191
22,61,70,348
22,71,80,40
22,81,90,305
22,91,100,211
23,1,10,17
23,11,20,18
23,21,30,26
23,31,40,3
23,41,50,79
23,51,60,78
23,61,70,27
23,71,80,25
23,81,90,2
23,91,100,28
24,1,10,18
24,11,20,26
24,21,30,3
24,31,40,79
24,41,50,78
24,51,60,27
24,61,70,25
24,71,80,2
24,81,90,28
24,91,100,50
25,1,10,26
25,11,20,3
25,21,30,79
25,31,40,78
25,41,50,27
25,51,60,25
25,61,70,2
25,71,80,28
25,81,90,50
25,91,100,108
26,1,10,3
26,11,20,79
26,21,30,78
26,31,40,27
26,41,50,25
26,51,60,2
26,61,70,28
26,71,80,50
26,81,90,108
26,91,100,107
27,1,10,79
27,11,20,78
27,21,30,27
27,31,40,25
27,41,50,2
27,51,60,28
27,61,70,50
27,71,80,108
27,81,90,107
27,91,100,109
28,1,10,78
28,11,20,27
28,21,30,25
28,31,40,2
28,41,50,28
28,51,60,50
28,61,70,108
28,71,80,107
28,81,90,109
28,91,100,23
29,1,10,27
29,11,20,25
29,21,30,2
29,31,40,28
29,41,50,50
29,51,60,108
29,61,70,107
29,71,80,109
29,81,90,23
29,91,100,29
30,1,10,25
30,11,20,2
30,21,30,28
30,31,40,50
30,41,50,108
30,51,60,107
30,61,70,109
30,71,80,23
30,81,90,29
30,91,100,51
31,1,10,2
31,11,20,28
31,21,30,50
31,31,40,108
31,41,50,107
31,51,60,109
31,61,70,23
31,71,80,29
31,81,90,51
31,91,100,41
32,1,10,92
32,11,20,198
32,21,30,23
32,31,40,38
32,41,50,191
32,51,60,348
32,61,70,40
32,71,80,305
32,81,90,211
32,91,100,330
33,1,10,25
33,11,20,92
33,21,30,198
33,31,40,23
33,41,50,38
33,51,60,191
33,61,70,348
33,71,80,40
33,81,90,305
33,91,100,211
34,1,10,17
34,11,20,18
34,21,30,26
34,31,40,3
34,41,50,79
34,51,60,78
34,61,70,27
34,71,80,25
34,81,90,2
34,91,100,28
35,1,10,18
35,11,20,26
35,21,30,3
35,31,40,79
35,41,50,78
35,51,60,27
35,61,70,25
35,71,80,2
35,81,90,28
35,91,100,50
36,1,10,26
36,11,20,3
36,21,30,79
36,31,40,78
36,41,50,27
36,51,60,25
36,61,70,2
36,71,80,28
36,81,90,50
36,91,100,80
37,1,10,3
37,11,20,79
37,21,30,78
37,31,40,27
37,41,50,25
37,51,60,2
37,61,70,28
37,71,80,50
37,81,90,80
37,91,100,81
38,1,10,79
38,11,20,78
38,21,30,27
38,31,40,25
38,41,50,2
38,51,60,28
38,61,70,50
38,71,80,80
38,81,90,81
38,91,100,93
39,1,10,78
39,11,20,27
39,21,30,25
39,31,40,2
39,41,50,28
39,51,60,50
39,61,70,80
39,71,80,81
39,81,90,93
39,91,100,23
40,1,10,27
40,11,20,25
40,21,30,2
40,31,40,28
40,41,50,50
40,51,60,80
40,61,70,81
40,71,80,93
40,81,90,23
40,91,100,29
41,1,10,25
41,11,20,2
41,21,30,28
41,31,40,50
41,41,50,80
41,51,60,81
41,61,70,93
41,71,80,23
41,81,90,29
41,91,100,51
42,1,10,2
42,11,20,28
42,21,30,50
42,31,40,80
42,41,50,81
42,51,60,93
42,61,70,23
42,71,80,29
42,81,90,51
42,91,100,41
43,1,10,92
43,11,20,198
43,21,30,23
43,31,40,38
43,41,50,255
43,51,60,360
43,61,70,40
43,71,80,390
43,81,90,211
43,91,100,330
44,1,10,25
44,11,20,92
44,21,30,198
44,31,40,23
44,41,50,38
44,51,60,255
44,61,70,360
44,71,80,40
44,81,90,390
44,91,100,211
45,1,10,17
45,11,20,18
45,21,30,26
45,31,40,3
45,41,50,79
45,51,60,78
45,61,70,27
45,71,80,25
45,81,90,2
45,91,100,28
46,1,10,18
46,11,20,26
46,21,30,3
46,31,40,79
46,41,50,78
46,51,60,27
46,61,70,25
46,71,80,2
46,81,90,28
46,91,100,50
47,1,10,26
47,11,20,3
47,21,30,79
47,31,40,78
47,41,50,27
47,51,60,25
47,61,70,2
47,71,80,28
47,81,90,50
47,91,100,80
48,1,10,3
48,11,20,79
48,21,30,78
48,31,40,27
48,41,50,25
48,51,60,2
48,61,70,28
48,71,80,50
48,81,90,80
48,91,100,81
49,1,10,79
49,11,20,78
49,21,30,27
49,31,40,25
49,41,50,2
49,51,60,28
49,61,70,50
49,71,80,80
49,81,90,81
49,91,100,93
50,1,10,78
50,11,20,27
50,21,30,25
50,31,40,2
50,41,50,28
50,51,60,50
50,61,70,80
50,71,80,81
50,81,90,93
50,91,100,23
51,1,10,27
51,11,20,25
51,21,30,2
51,31,40,28
51,41,50,50
51,51,60,80
51,61,70,81
51,71,80,93
51,81,90,23
51,91,100,29
52,1,10,25
52,11,20,2
52,21,30,28
52,31,40,50
52,41,50,80
52,51,60,81
52,61,70,93
52,71,80,23
52,81,90,29
52,91,100,51
53,1,10,2
53,11,20,28
53,21,30,50
53,31,40,80
53,41,50,81
53,51,60,93
53,61,70,23
53,71,80,29
53,81,90,51
53,91,100,41
54,1,10,92
54,11,20,198
54,21,30,23
54,31,40,38
54,41,50,255
54,51,60,580
54,61,70,40
54,71,80,580
54,81,90,211
54,91,100,580
55,1,10,25
55,11,20,92
55,21,30,198
55,31,40,23
55,41,50,38
55,51,60,255
55,61,70,580
55,71,80,40
55,81,90,580
55,91,100,211
56,1,10,17
56,11,20,18
56,21,30,26
56,31,40,3
56,41,50,79
56,51,60,78
56,61,70,27
56,71,80,25
56,81,90,2
56,91,100,28
57,1,10,18
57,11,20,26
57,21,30,3
57,31,40,79
57,41,50,78
57,51,60,27
57,61,70,25
57,71,80,2
57,81,90,28
57,91,100,50
58,1,10,26
58,11,20,3
58,21,30,79
58,31,40,78
58,41,50,27
58,51,60,25
58,61,70,2
58,71,80,28
58,81,90,50
58,91,100,80
59,1,10,3
59,11,20,79
59,21,30,78
59,31,40,27
59,41,50,25
59,51,60,2
59,61,70,28
59,71,80,50
59,81,90,80
59,91,100,81
60,1,10,79
60,11,20,78
60,21,30,27
60,31,40,25
60,41,50,2
60,51,60,28
60,61,70,50
60,71,80,80
60,81,90,81
60,91,100,93
61,1,10,78
61,11,20,27
61,21,30,25
61,31,40,2
61,41,50,28
61,51,60,50
61,61,70,80
61,71,80,81
61,81,90,93
61,91,100,23
62,1,10,27
62,11,20,25
62,21,30,2
62,31,40,28
62,41,50,50
62,51,60,80
62,61,70,81
62,71,80,93
62,81,90,23
62,91,100,29
63,1,10,25
63,11,20,2
63,21,30,28
63,31,40,50
63,41,50,80
63,51,60,81
63,61,70,93
63,71,80,23
63,81,90,29
63,91,100,51
64,1,10,2
64,11,20,28
64,21,30,50
64,31,40,80
64,41,50,81
64,51,60,93
64,61,70,23
64,71,80,29
64,81,90,51
64,91,100,41
65,1,10,92
65,11,20,198
65,21,30,23
65,31,40,38
65,41,50,255
65,51,60,580
65,61,70,40
65,71,80,580
65,81,90,211
65,91,100,580
66,1,10,25
66,11,20,92
66,21,30,198
66,31,40,23
66,41,50,38
66,51,60,255
66,61,70,580
66,71,80,40
66,81,90,580
66,91,100,211
1 slot_id min_level max_level item_id
2 1 1 10 17
3 1 11 20 18
4 1 21 30 26
5 1 31 40 3
6 1 41 50 79
7 1 51 60 78
8 1 61 70 57
9 1 71 80 27
10 1 81 90 2
11 1 91 100 25
12 2 1 10 18
13 2 11 20 26
14 2 21 30 3
15 2 31 40 79
16 2 41 50 78
17 2 51 60 57
18 2 61 70 27
19 2 71 80 2
20 2 81 90 25
21 2 91 100 50
22 3 1 10 26
23 3 11 20 3
24 3 21 30 79
25 3 31 40 78
26 3 41 50 57
27 3 51 60 27
28 3 61 70 2
29 3 71 80 25
30 3 81 90 50
31 3 91 100 46
32 4 1 10 3
33 4 11 20 79
34 4 21 30 78
35 4 31 40 57
36 4 41 50 27
37 4 51 60 2
38 4 61 70 25
39 4 71 80 50
40 4 81 90 46
41 4 91 100 28
42 5 1 10 79
43 5 11 20 78
44 5 21 30 57
45 5 31 40 27
46 5 41 50 2
47 5 51 60 25
48 5 61 70 50
49 5 71 80 46
50 5 81 90 28
51 5 91 100 45
52 6 1 10 78
53 6 11 20 57
54 6 21 30 27
55 6 31 40 2
56 6 41 50 25
57 6 51 60 50
58 6 61 70 46
59 6 71 80 28
60 6 81 90 45
61 6 91 100 23
62 7 1 10 57
63 7 11 20 27
64 7 21 30 2
65 7 31 40 25
66 7 41 50 50
67 7 51 60 46
68 7 61 70 28
69 7 71 80 45
70 7 81 90 23
71 7 91 100 29
72 8 1 10 27
73 8 11 20 2
74 8 21 30 25
75 8 31 40 50
76 8 41 50 46
77 8 51 60 28
78 8 61 70 45
79 8 71 80 23
80 8 81 90 29
81 8 91 100 51
82 9 1 10 2
83 9 11 20 25
84 9 21 30 50
85 9 31 40 46
86 9 41 50 28
87 9 51 60 45
88 9 61 70 23
89 9 71 80 29
90 9 81 90 51
91 9 91 100 41
92 10 1 10 92
93 10 11 20 198
94 10 21 30 23
95 10 31 40 38
96 10 41 50 191
97 10 51 60 348
98 10 61 70 40
99 10 71 80 305
100 10 81 90 211
101 10 91 100 330
102 11 1 10 25
103 11 11 20 92
104 11 21 30 198
105 11 31 40 23
106 11 41 50 38
107 11 51 60 191
108 11 61 70 348
109 11 71 80 40
110 11 81 90 305
111 11 91 100 211
112 12 1 10 17
113 12 11 20 18
114 12 21 30 26
115 12 31 40 3
116 12 41 50 79
117 12 51 60 78
118 12 61 70 27
119 12 71 80 25
120 12 81 90 2
121 12 91 100 28
122 13 1 10 18
123 13 11 20 26
124 13 21 30 3
125 13 31 40 79
126 13 41 50 78
127 13 51 60 27
128 13 61 70 25
129 13 71 80 2
130 13 81 90 28
131 13 91 100 50
132 14 1 10 26
133 14 11 20 3
134 14 21 30 79
135 14 31 40 78
136 14 41 50 27
137 14 51 60 25
138 14 61 70 2
139 14 71 80 28
140 14 81 90 50
141 14 91 100 108
142 15 1 10 3
143 15 11 20 79
144 15 21 30 78
145 15 31 40 27
146 15 41 50 25
147 15 51 60 2
148 15 61 70 28
149 15 71 80 50
150 15 81 90 108
151 15 91 100 107
152 16 1 10 79
153 16 11 20 78
154 16 21 30 27
155 16 31 40 25
156 16 41 50 2
157 16 51 60 28
158 16 61 70 50
159 16 71 80 108
160 16 81 90 107
161 16 91 100 109
162 17 1 10 78
163 17 11 20 27
164 17 21 30 25
165 17 31 40 2
166 17 41 50 28
167 17 51 60 50
168 17 61 70 108
169 17 71 80 107
170 17 81 90 109
171 17 91 100 23
172 18 1 10 27
173 18 11 20 25
174 18 21 30 2
175 18 31 40 28
176 18 41 50 50
177 18 51 60 108
178 18 61 70 107
179 18 71 80 109
180 18 81 90 23
181 18 91 100 29
182 19 1 10 25
183 19 11 20 2
184 19 21 30 28
185 19 31 40 50
186 19 41 50 108
187 19 51 60 107
188 19 61 70 109
189 19 71 80 23
190 19 81 90 29
191 19 91 100 51
192 20 1 10 2
193 20 11 20 28
194 20 21 30 50
195 20 31 40 108
196 20 41 50 107
197 20 51 60 109
198 20 61 70 23
199 20 71 80 29
200 20 81 90 51
201 20 91 100 41
202 21 1 10 92
203 21 11 20 198
204 21 21 30 23
205 21 31 40 38
206 21 41 50 191
207 21 51 60 348
208 21 61 70 40
209 21 71 80 305
210 21 81 90 211
211 21 91 100 330
212 22 1 10 25
213 22 11 20 92
214 22 21 30 198
215 22 31 40 23
216 22 41 50 38
217 22 51 60 191
218 22 61 70 348
219 22 71 80 40
220 22 81 90 305
221 22 91 100 211
222 23 1 10 17
223 23 11 20 18
224 23 21 30 26
225 23 31 40 3
226 23 41 50 79
227 23 51 60 78
228 23 61 70 27
229 23 71 80 25
230 23 81 90 2
231 23 91 100 28
232 24 1 10 18
233 24 11 20 26
234 24 21 30 3
235 24 31 40 79
236 24 41 50 78
237 24 51 60 27
238 24 61 70 25
239 24 71 80 2
240 24 81 90 28
241 24 91 100 50
242 25 1 10 26
243 25 11 20 3
244 25 21 30 79
245 25 31 40 78
246 25 41 50 27
247 25 51 60 25
248 25 61 70 2
249 25 71 80 28
250 25 81 90 50
251 25 91 100 108
252 26 1 10 3
253 26 11 20 79
254 26 21 30 78
255 26 31 40 27
256 26 41 50 25
257 26 51 60 2
258 26 61 70 28
259 26 71 80 50
260 26 81 90 108
261 26 91 100 107
262 27 1 10 79
263 27 11 20 78
264 27 21 30 27
265 27 31 40 25
266 27 41 50 2
267 27 51 60 28
268 27 61 70 50
269 27 71 80 108
270 27 81 90 107
271 27 91 100 109
272 28 1 10 78
273 28 11 20 27
274 28 21 30 25
275 28 31 40 2
276 28 41 50 28
277 28 51 60 50
278 28 61 70 108
279 28 71 80 107
280 28 81 90 109
281 28 91 100 23
282 29 1 10 27
283 29 11 20 25
284 29 21 30 2
285 29 31 40 28
286 29 41 50 50
287 29 51 60 108
288 29 61 70 107
289 29 71 80 109
290 29 81 90 23
291 29 91 100 29
292 30 1 10 25
293 30 11 20 2
294 30 21 30 28
295 30 31 40 50
296 30 41 50 108
297 30 51 60 107
298 30 61 70 109
299 30 71 80 23
300 30 81 90 29
301 30 91 100 51
302 31 1 10 2
303 31 11 20 28
304 31 21 30 50
305 31 31 40 108
306 31 41 50 107
307 31 51 60 109
308 31 61 70 23
309 31 71 80 29
310 31 81 90 51
311 31 91 100 41
312 32 1 10 92
313 32 11 20 198
314 32 21 30 23
315 32 31 40 38
316 32 41 50 191
317 32 51 60 348
318 32 61 70 40
319 32 71 80 305
320 32 81 90 211
321 32 91 100 330
322 33 1 10 25
323 33 11 20 92
324 33 21 30 198
325 33 31 40 23
326 33 41 50 38
327 33 51 60 191
328 33 61 70 348
329 33 71 80 40
330 33 81 90 305
331 33 91 100 211
332 34 1 10 17
333 34 11 20 18
334 34 21 30 26
335 34 31 40 3
336 34 41 50 79
337 34 51 60 78
338 34 61 70 27
339 34 71 80 25
340 34 81 90 2
341 34 91 100 28
342 35 1 10 18
343 35 11 20 26
344 35 21 30 3
345 35 31 40 79
346 35 41 50 78
347 35 51 60 27
348 35 61 70 25
349 35 71 80 2
350 35 81 90 28
351 35 91 100 50
352 36 1 10 26
353 36 11 20 3
354 36 21 30 79
355 36 31 40 78
356 36 41 50 27
357 36 51 60 25
358 36 61 70 2
359 36 71 80 28
360 36 81 90 50
361 36 91 100 80
362 37 1 10 3
363 37 11 20 79
364 37 21 30 78
365 37 31 40 27
366 37 41 50 25
367 37 51 60 2
368 37 61 70 28
369 37 71 80 50
370 37 81 90 80
371 37 91 100 81
372 38 1 10 79
373 38 11 20 78
374 38 21 30 27
375 38 31 40 25
376 38 41 50 2
377 38 51 60 28
378 38 61 70 50
379 38 71 80 80
380 38 81 90 81
381 38 91 100 93
382 39 1 10 78
383 39 11 20 27
384 39 21 30 25
385 39 31 40 2
386 39 41 50 28
387 39 51 60 50
388 39 61 70 80
389 39 71 80 81
390 39 81 90 93
391 39 91 100 23
392 40 1 10 27
393 40 11 20 25
394 40 21 30 2
395 40 31 40 28
396 40 41 50 50
397 40 51 60 80
398 40 61 70 81
399 40 71 80 93
400 40 81 90 23
401 40 91 100 29
402 41 1 10 25
403 41 11 20 2
404 41 21 30 28
405 41 31 40 50
406 41 41 50 80
407 41 51 60 81
408 41 61 70 93
409 41 71 80 23
410 41 81 90 29
411 41 91 100 51
412 42 1 10 2
413 42 11 20 28
414 42 21 30 50
415 42 31 40 80
416 42 41 50 81
417 42 51 60 93
418 42 61 70 23
419 42 71 80 29
420 42 81 90 51
421 42 91 100 41
422 43 1 10 92
423 43 11 20 198
424 43 21 30 23
425 43 31 40 38
426 43 41 50 255
427 43 51 60 360
428 43 61 70 40
429 43 71 80 390
430 43 81 90 211
431 43 91 100 330
432 44 1 10 25
433 44 11 20 92
434 44 21 30 198
435 44 31 40 23
436 44 41 50 38
437 44 51 60 255
438 44 61 70 360
439 44 71 80 40
440 44 81 90 390
441 44 91 100 211
442 45 1 10 17
443 45 11 20 18
444 45 21 30 26
445 45 31 40 3
446 45 41 50 79
447 45 51 60 78
448 45 61 70 27
449 45 71 80 25
450 45 81 90 2
451 45 91 100 28
452 46 1 10 18
453 46 11 20 26
454 46 21 30 3
455 46 31 40 79
456 46 41 50 78
457 46 51 60 27
458 46 61 70 25
459 46 71 80 2
460 46 81 90 28
461 46 91 100 50
462 47 1 10 26
463 47 11 20 3
464 47 21 30 79
465 47 31 40 78
466 47 41 50 27
467 47 51 60 25
468 47 61 70 2
469 47 71 80 28
470 47 81 90 50
471 47 91 100 80
472 48 1 10 3
473 48 11 20 79
474 48 21 30 78
475 48 31 40 27
476 48 41 50 25
477 48 51 60 2
478 48 61 70 28
479 48 71 80 50
480 48 81 90 80
481 48 91 100 81
482 49 1 10 79
483 49 11 20 78
484 49 21 30 27
485 49 31 40 25
486 49 41 50 2
487 49 51 60 28
488 49 61 70 50
489 49 71 80 80
490 49 81 90 81
491 49 91 100 93
492 50 1 10 78
493 50 11 20 27
494 50 21 30 25
495 50 31 40 2
496 50 41 50 28
497 50 51 60 50
498 50 61 70 80
499 50 71 80 81
500 50 81 90 93
501 50 91 100 23
502 51 1 10 27
503 51 11 20 25
504 51 21 30 2
505 51 31 40 28
506 51 41 50 50
507 51 51 60 80
508 51 61 70 81
509 51 71 80 93
510 51 81 90 23
511 51 91 100 29
512 52 1 10 25
513 52 11 20 2
514 52 21 30 28
515 52 31 40 50
516 52 41 50 80
517 52 51 60 81
518 52 61 70 93
519 52 71 80 23
520 52 81 90 29
521 52 91 100 51
522 53 1 10 2
523 53 11 20 28
524 53 21 30 50
525 53 31 40 80
526 53 41 50 81
527 53 51 60 93
528 53 61 70 23
529 53 71 80 29
530 53 81 90 51
531 53 91 100 41
532 54 1 10 92
533 54 11 20 198
534 54 21 30 23
535 54 31 40 38
536 54 41 50 255
537 54 51 60 580
538 54 61 70 40
539 54 71 80 580
540 54 81 90 211
541 54 91 100 580
542 55 1 10 25
543 55 11 20 92
544 55 21 30 198
545 55 31 40 23
546 55 41 50 38
547 55 51 60 255
548 55 61 70 580
549 55 71 80 40
550 55 81 90 580
551 55 91 100 211
552 56 1 10 17
553 56 11 20 18
554 56 21 30 26
555 56 31 40 3
556 56 41 50 79
557 56 51 60 78
558 56 61 70 27
559 56 71 80 25
560 56 81 90 2
561 56 91 100 28
562 57 1 10 18
563 57 11 20 26
564 57 21 30 3
565 57 31 40 79
566 57 41 50 78
567 57 51 60 27
568 57 61 70 25
569 57 71 80 2
570 57 81 90 28
571 57 91 100 50
572 58 1 10 26
573 58 11 20 3
574 58 21 30 79
575 58 31 40 78
576 58 41 50 27
577 58 51 60 25
578 58 61 70 2
579 58 71 80 28
580 58 81 90 50
581 58 91 100 80
582 59 1 10 3
583 59 11 20 79
584 59 21 30 78
585 59 31 40 27
586 59 41 50 25
587 59 51 60 2
588 59 61 70 28
589 59 71 80 50
590 59 81 90 80
591 59 91 100 81
592 60 1 10 79
593 60 11 20 78
594 60 21 30 27
595 60 31 40 25
596 60 41 50 2
597 60 51 60 28
598 60 61 70 50
599 60 71 80 80
600 60 81 90 81
601 60 91 100 93
602 61 1 10 78
603 61 11 20 27
604 61 21 30 25
605 61 31 40 2
606 61 41 50 28
607 61 51 60 50
608 61 61 70 80
609 61 71 80 81
610 61 81 90 93
611 61 91 100 23
612 62 1 10 27
613 62 11 20 25
614 62 21 30 2
615 62 31 40 28
616 62 41 50 50
617 62 51 60 80
618 62 61 70 81
619 62 71 80 93
620 62 81 90 23
621 62 91 100 29
622 63 1 10 25
623 63 11 20 2
624 63 21 30 28
625 63 31 40 50
626 63 41 50 80
627 63 51 60 81
628 63 61 70 93
629 63 71 80 23
630 63 81 90 29
631 63 91 100 51
632 64 1 10 2
633 64 11 20 28
634 64 21 30 50
635 64 31 40 80
636 64 41 50 81
637 64 51 60 93
638 64 61 70 23
639 64 71 80 29
640 64 81 90 51
641 64 91 100 41
642 65 1 10 92
643 65 11 20 198
644 65 21 30 23
645 65 31 40 38
646 65 41 50 255
647 65 51 60 580
648 65 61 70 40
649 65 71 80 580
650 65 81 90 211
651 65 91 100 580
652 66 1 10 25
653 66 11 20 92
654 66 21 30 198
655 66 31 40 23
656 66 41 50 38
657 66 51 60 255
658 66 61 70 580
659 66 71 80 40
660 66 81 90 580
661 66 91 100 211

View file

@ -0,0 +1,67 @@
id,version_group_id,slot,rarity
1,6,0,30
2,6,1,10
3,6,2,10
4,6,3,10
5,6,4,10
6,6,5,10
7,6,6,10
8,6,7,5
9,6,8,3
10,6,9,1
11,6,10,1
12,8,0,30
13,8,1,10
14,8,2,10
15,8,3,10
16,8,4,10
17,8,5,10
18,8,6,10
19,8,7,5
20,8,8,3
21,8,9,1
22,8,10,1
23,9,0,30
24,9,1,10
25,9,2,10
26,9,3,10
27,9,4,10
28,9,5,10
29,9,6,10
30,9,7,5
31,9,8,3
32,9,9,1
33,9,10,1
34,10,0,30
35,10,1,10
36,10,2,10
37,10,3,10
38,10,4,10
39,10,5,10
40,10,6,10
41,10,7,5
42,10,8,3
43,10,9,1
44,10,10,1
45,11,0,30
46,11,1,10
47,11,2,10
48,11,3,10
49,11,4,10
50,11,5,10
51,11,6,10
52,11,7,4
53,11,8,4
54,11,9,1
55,11,10,1
56,14,0,30
57,14,1,10
58,14,2,10
59,14,3,10
60,14,4,10
61,14,5,10
62,14,6,10
63,14,7,4
64,14,8,4
65,14,9,1
66,14,10,1
1 id version_group_id slot rarity
2 1 6 0 30
3 2 6 1 10
4 3 6 2 10
5 4 6 3 10
6 5 6 4 10
7 6 6 5 10
8 7 6 6 10
9 8 6 7 5
10 9 6 8 3
11 10 6 9 1
12 11 6 10 1
13 12 8 0 30
14 13 8 1 10
15 14 8 2 10
16 15 8 3 10
17 16 8 4 10
18 17 8 5 10
19 18 8 6 10
20 19 8 7 5
21 20 8 8 3
22 21 8 9 1
23 22 8 10 1
24 23 9 0 30
25 24 9 1 10
26 25 9 2 10
27 26 9 3 10
28 27 9 4 10
29 28 9 5 10
30 29 9 6 10
31 30 9 7 5
32 31 9 8 3
33 32 9 9 1
34 33 9 10 1
35 34 10 0 30
36 35 10 1 10
37 36 10 2 10
38 37 10 3 10
39 38 10 4 10
40 39 10 5 10
41 40 10 6 10
42 41 10 7 5
43 42 10 8 3
44 43 10 9 1
45 44 10 10 1
46 45 11 0 30
47 46 11 1 10
48 47 11 2 10
49 48 11 3 10
50 49 11 4 10
51 50 11 5 10
52 51 11 6 10
53 52 11 7 4
54 53 11 8 4
55 54 11 9 1
56 55 11 10 1
57 56 14 0 30
58 57 14 1 10
59 58 14 2 10
60 59 14 3 10
61 60 14 4 10
62 61 14 5 10
63 62 14 6 10
64 63 14 7 4
65 64 14 8 4
66 65 14 9 1
67 66 14 10 1

View file

@ -1466,6 +1466,45 @@ create_translation_table('pal_park_area_names', PalParkArea, 'names',
info=dict(description="The name", format='plaintext', official=False)), info=dict(description="The name", format='plaintext', official=False)),
) )
class PickupItem(TableBase):
u"""Items which can be found with the Pickup ability.
Level ranges are assumed not to overlap, and max_level is assumed to be
constant with respect to min_level.
"""
__tablename__ = 'pickup_items'
__singlename__ = 'pickup_item'
slot_id = Column(Integer, ForeignKey('pickup_slots.id'), primary_key=True,
info=dict(description="The slot"))
min_level = Column(Integer, nullable=False, primary_key=True,
info=dict(description="Minimum level at which this slot applies"))
max_level = Column(Integer, nullable=False,
info=dict(description="Maximum level at which this slot applies"))
item_id = Column(Integer, ForeignKey('items.id'),
info=dict(description="The item"))
class PickupSlot(TableBase):
u"""The chance of finding a particular item with Pickup."""
__tablename__ = 'pickup_slots'
__singlename__ = 'pickup_slot'
id = Column(Integer, primary_key=True,
info=dict(description=""))
version_group_id = Column(Integer, ForeignKey('version_groups.id'),
info=dict(description="The version group"))
slot = Column(Integer, nullable=False,
info=dict(description="Index of the slot + 1"))
rarity = Column(Integer, nullable=False,
info=dict(description="Percent chance of this slot being chosen"))
__table_args__ = (
UniqueConstraint(version_group_id, slot),
{},
)
class PokeathlonStat(TableBase): class PokeathlonStat(TableBase):
u"""A Pokéathlon stat, such as "Stamina" or "Jump". u"""A Pokéathlon stat, such as "Stamina" or "Jump".
""" """
@ -2471,6 +2510,12 @@ PalPark.area = relationship(PalParkArea,
innerjoin=True, lazy='joined') innerjoin=True, lazy='joined')
PickupItem.slot = relationship(PickupSlot)
PickupItem.item = relationship(Item)
PickupSlot.version_group = relationship(VersionGroup)
Pokedex.region = relationship(Region, Pokedex.region = relationship(Region,
innerjoin=True, innerjoin=True,
backref='pokedexes') backref='pokedexes')

172
scripts/pickup.py Normal file
View file

@ -0,0 +1,172 @@
#!/usr/bin/env python2
from random import randint
from collections import namedtuple
import pokedex.db
import pokedex.db.tables as t
Pickup = namedtuple('Pickup', 'version_group rates common_items rare_items')
# The item lists below are taken directly from the games, and differ from
# the popularly reported values, e.g., on Serebii and Bulbapedia, in the
# following ways:
#
# - Hyper Potion at level 1-10, 1%, instead of various other items
# - There are no Lucky Eggs. Anywhere. Ever.
# These rates have been verified in SoulSilver
rates = [30, 10, 10, 10, 10, 10, 10, 5, 3]
# The following function is a sketch how the pickup items are chosen, taken
# from SoulSilver (U). For full details set a breakpoint at 0x02244106.
#
# Note that the 1% items are backwards:
# n=98 gives index 1, and n=99 gives index 0
def get_reward(pickup, level, n=None):
if n is None:
n = randint(0, 99)
level = (level - 1) // 10
assert 0 <= level < 10
threshold = 0
for index, rate in enumerate(pickup.rates):
threshold += rate
if n < threshold:
return pickup.common_items[level + index]
else:
assert 98 <= n <= 99
index = 99 - n
assert 0 <= index <= 1
return pickup.rare_items[level + index]
# Emerald (U)
# The rewards lists are located at 0x31c440 in the ROM.
# The second immediately follows the first, at 0x31C464.
# 0x0031C440: 0D000E00 16000300 56005500 4B001700 ........V.U.K...
# 0x0031C450: 02001500 44004000 18003F00 13001900 ....D.@...?.....
# 0x0031C460: 45002500 15006E00 BB001300 2200B400 E.%...n....."...
# 0x0031C470: 4C012400 2101C800 3A011E28 323C4650 L.$.!...:..(2<FP
em = Pickup('emerald', rates,
[0x0D, 0x0E, 0x16, 0x03, 0x56, 0x55, 0x4B, 0x17, 0x02,
0x15, 0x44, 0x40, 0x18, 0x3F, 0x13, 0x19, 0x45, 0x25],
[0x15, 0x6E, 0xBB, 0x13, 0x22, 0xB4, 0x14C, 0x24, 0x121, 0xC8, 0x13A],
)
# Diamond (U)
# The common rewards list is found at 0x1ddb64 in the ROM
# 0x001DDB60: 9301A100 11001200 1A000300 4F004E00 ............O.N.
# 0x001DDB70: 1B001900 02001C00 32006C00 6B006D00 ........2.l.k.m.
# 0x001DDB80: 17001D00 33002900 1B000080 1B000080 ....3.).........
# The rare rewards list is found at 0x1dda88 in the ROM
# 0x001DDA80: 0C641550 2A284014 19005C00 DD001700 .d.P*(@...\.....
# 0x001DDA90: 2600D600 73012800 4801EA00 61010000 &...s.(.H...a...
dp = Pickup('diamond-pearl', rates,
[0x11, 0x12, 0x1A, 0x03, 0x4F, 0x4E, 0x1B, 0x19, 0x02,
0x1C, 0x32, 0x6C, 0x6B, 0x6D, 0x17, 0x1D, 0x33, 0x29],
[0x19, 0x5C, 0xDD, 0x17, 0x26, 0xD6, 0x173, 0x28, 0x148, 0xEA, 0x161],
)
pl = dp._replace(version_group='platinum')
# SoulSilver (U)
# The rewards lists are found in overlay 12. All overlays are compressed.
# After decompression, the common rewards can be found at 0x34B44.
# 0x00034B40: 2C012D01 11001200 1A000300 4F004E00 ,.-.........O.N.
# 0x00034B50: 1B001900 02001C00 32005000 51005D00 ........2.P.Q.].
# 0x00034B60: 17001D00 33002900 80000000 00000000 ....3.).........
# And the rare rewards can be found at 0x34A4C.
# 0x00034A40: 01C80596 0C641550 2A284014 19005C00 .....d.P*(@...\.
# 0x00034A50: DD001700 26001601 7F012800 9D01EA00 ....&.....(.....
# 0x00034A60: 61010000 08000000 01000000 02000000 a...............
# These lists can also be found in the RAM during battle, at 0x0226c404 and 0x226c30c.
hg = Pickup('heartgold-soulsilver', rates,
[0x11, 0x12, 0x1A, 0x03, 0x4F, 0x4E, 0x1B, 0x19, 0x02,
0x1C, 0x32, 0x50, 0x51, 0x5D, 0x17, 0x1D, 0x33, 0x29],
[0x19, 0x5C, 0xDD, 0x17, 0x26, 0x116, 0x17F, 0x28, 0x19D, 0xEA, 0x161],
)
# White (J)
# Found in overlay 0x5C. As in SoulSilver, it must be decompressed.
# The common rewards are found at 0x7CE, with the rare rewards immediately
# preceding them at 0x7B8.
# 0x000007B0: 14191E23 282D3200 19005C00 DD001700 ...#(-2...\.....
# 0x000007C0: 26001601 19022800 1902EA00 19021100 &.....(.........
# 0x000007D0: 12001A00 03004F00 4E001B00 19000200 ......O.N.......
# 0x000007E0: 1C003200 50005100 5D001700 1D003300 ..2.P.Q.].....3.
# 0x000007F0: 29000000 61941B02 D5941B02 A9941B02 )...a...........
#
# Note that the rates have changed slightly: the 5/3 slots are now 4/4 slots.
bw = Pickup('black-white', [30, 10, 10, 10, 10, 10, 10, 4, 4],
[0x11, 0x12, 0x1A, 0x03, 0x4F, 0x4E, 0x1B, 0x19, 0x02,
0x1C, 0x32, 0x50, 0x51, 0x5D, 0x17, 0x1D, 0x33, 0x29],
[0x19, 0x5C, 0xDD, 0x17, 0x26, 0x116, 0x219, 0x28, 0x219, 0xEA, 0x219],
)
# Black 2 (J)
# Found in overlay 0xA6. Must be decompressed.
# Common rewards at 0x7FA. Rare rewards immediately prior, at 0x7E4.
# Same items as B/W 1.
# 0x000007E0: 282D3200 19005C00 DD001700 26001601 (-2...\.....&...
# 0x000007F0: 19022800 1902EA00 19021100 12001A00 ..(.............
# 0x00000800: 03004F00 4E001B00 19000200 1C003200 ..O.N.........2.
# 0x00000810: 50005100 5D001700 1D003300 29000000 P.Q.].....3.)...
# 0x00000820: 61C81902 D5C81902 A9C81902 00000000 a...............
bw2 = bw._replace(version_group='black2-white2')
# Alright let's add these to the database
pickups = [em, dp, pl, hg, bw, bw2]
sess = pokedex.db.connect()
version_groups = {}
for vg in sess.query(t.VersionGroup).all():
version_groups[vg.identifier] = vg
def get_item(generation_id, item_index):
item = (sess.query(t.Item)
.join(t.ItemGameIndex)
.filter(t.ItemGameIndex.generation_id == generation_id)
.filter(t.ItemGameIndex.game_index == item_index)
.one())
return item
def add_slot(version_group, index, rarity):
ps = t.PickupSlot()
ps.version_group = version_group
ps.slot = index
ps.rarity = rarity
sess.add(ps)
return ps
for pickup in pickups:
version_group = version_groups[pickup.version_group]
slots = []
for i, rarity in enumerate(pickup.rates + [1, 1]):
slot = add_slot(version_group, i, rarity)
slots.append(slot)
def get_items(items):
return [get_item(version_group.generation_id, item_index)
for item_index in items]
common_items = get_items(pickup.common_items)
rare_items = get_items(pickup.rare_items)
for tier in range(10):
min_level = 1 + tier * 10
max_level = 10 + tier * 10
items = common_items[tier:tier+len(pickup.rates)]
items += reversed(rare_items[tier:tier+2])
for slot, item in zip(slots, items):
pi = t.PickupItem()
pi.min_level = min_level
pi.max_level = max_level
pi.slot = slot
pi.item = item
sess.add(pi)
sess.commit()