Skip to content

Commit ca025da

Browse files
committed
Random options support & Vending rework
* Added random option info in inventory, cart, and storage. If item has options, it'll show as [n Options] in default theme, collapsible. * Random option feature can be disabled in application.php for backward compatibility * Vending & buyingstore have item listing as default, listing by shop name is now in different page: vendors & buyers * Recolor item price for vending & buyingstore * Moved item bound message to label * Added new library Flux/Item to reduce redundant codes after item fetching * Fixes #190, renewed card0 special values and added into config in application.php for backward compatibility
1 parent e0fa6a8 commit ca025da

29 files changed

+1657
-584
lines changed

config/access.php

+10-4
Original file line numberDiff line numberDiff line change
@@ -198,10 +198,16 @@
198198
'staffsettings' => AccountLevel::LOWGM,
199199
'catcontrol' => AccountLevel::HIGHGM
200200
),
201-
'vending' => array(
202-
'index' => AccountLevel::ANYONE,
203-
'viewshop' => AccountLevel::ANYONE,
204-
),
201+
'vending' => array(
202+
'index' => AccountLevel::ANYONE,
203+
'vendors' => AccountLevel::ANYONE,
204+
'viewshop' => AccountLevel::ANYONE,
205+
),
206+
'buyingstore' => array(
207+
'index' => AccountLevel::ANYONE,
208+
'buyers' => AccountLevel::ANYONE,
209+
'viewshop' => AccountLevel::ANYONE,
210+
),
205211
'webcommands' => array(
206212
'index' => AccountLevel::ADMIN,
207213
),

config/application.php

+27-6
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,25 @@
125125
'Reversed', // -- 'Reversed'
126126
),
127127

128+
'RandomOptions' => true, // Enable random options lookup. Set this falee to disable
129+
130+
'RandomOptionIDs' => include('randomoption_ids.php'),
131+
'RandomOptionMessages' => include('randomoptions.php'),
132+
133+
// Card0 special flag. In Older rAthena is 254,255,-256
134+
'ItemSpecial' => array(
135+
'forge' => 0x00FF,
136+
'create' => 0x00FE,
137+
'pet' => 0x0100,
138+
),
139+
140+
'BoundLabels' => array(
141+
1 => 'BoundAccountLabel',
142+
2 => 'BoundGuildLabel',
143+
3 => 'BoundPartyLabel',
144+
4 => 'BoundCharacterLabel',
145+
),
146+
128147
'HoldUntrustedAccount' => 0, // This is the time in hours to hold a donation crediting process for, if the account
129148
// isn't a trusted account. Specify 0 or false to disable this feature.
130149

@@ -393,12 +412,14 @@
393412
'staffsettings' => 'Staff Settings',
394413
'catcontrol' => 'Category Control',
395414
),
396-
'vending' => array(
397-
'index' => 'Vendors',
398-
),
399-
'buyingstore' => array(
400-
'index' => 'Buyers',
401-
),
415+
'vending' => array(
416+
'index' => 'Items',
417+
'vendors' => 'Vendors',
418+
),
419+
'buyingstore' => array(
420+
'index' => 'Items',
421+
'buyers' => 'Buyers',
422+
),
402423
),
403424

404425
'AllowMD5PasswordSearch' => false,

config/randomoption_ids.php

+195
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,195 @@
1+
<?php
2+
return array(
3+
1 => 'VAR_MAXHPAMOUNT',
4+
2 => 'VAR_MAXSPAMOUNT',
5+
3 => 'VAR_STRAMOUNT',
6+
4 => 'VAR_AGIAMOUNT',
7+
5 => 'VAR_VITAMOUNT',
8+
6 => 'VAR_INTAMOUNT',
9+
7 => 'VAR_DEXAMOUNT',
10+
8 => 'VAR_LUKAMOUNT',
11+
9 => 'VAR_MAXHPPERCENT',
12+
10 => 'VAR_MAXSPPERCENT',
13+
11 => 'VAR_HPACCELERATION',
14+
12 => 'VAR_SPACCELERATION',
15+
13 => 'VAR_ATKPERCENT',
16+
14 => 'VAR_MAGICATKPERCENT',
17+
15 => 'VAR_PLUSASPD',
18+
16 => 'VAR_PLUSASPDPERCENT',
19+
17 => 'VAR_ATTPOWER',
20+
18 => 'VAR_HITSUCCESSVALUE',
21+
19 => 'VAR_ATTMPOWER',
22+
20 => 'VAR_ITEMDEFPOWER',
23+
21 => 'VAR_MDEFPOWER',
24+
22 => 'VAR_AVOIDSUCCESSVALUE',
25+
23 => 'VAR_PLUSAVOIDSUCCESSVALUE',
26+
24 => 'VAR_CRITICALSUCCESSVALUE',
27+
25 => 'ATTR_TOLERACE_NOTHING',
28+
26 => 'ATTR_TOLERACE_WATER',
29+
27 => 'ATTR_TOLERACE_GROUND',
30+
28 => 'ATTR_TOLERACE_FIRE',
31+
29 => 'ATTR_TOLERACE_WIND',
32+
30 => 'ATTR_TOLERACE_POISON',
33+
31 => 'ATTR_TOLERACE_SAINT',
34+
32 => 'ATTR_TOLERACE_DARKNESS',
35+
33 => 'ATTR_TOLERACE_TELEKINESIS',
36+
34 => 'ATTR_TOLERACE_UNDEAD',
37+
35 => 'ATTR_TOLERACE_ALL',
38+
36 => 'DAMAGE_PROPERTY_NOTHING_USER',
39+
37 => 'DAMAGE_PROPERTY_NOTHING_TARGET',
40+
38 => 'DAMAGE_PROPERTY_WATER_USER',
41+
39 => 'DAMAGE_PROPERTY_WATER_TARGET',
42+
40 => 'DAMAGE_PROPERTY_GROUND_USER',
43+
41 => 'DAMAGE_PROPERTY_GROUND_TARGET',
44+
42 => 'DAMAGE_PROPERTY_FIRE_USER',
45+
43 => 'DAMAGE_PROPERTY_FIRE_TARGET',
46+
44 => 'DAMAGE_PROPERTY_WIND_USER',
47+
45 => 'DAMAGE_PROPERTY_WIND_TARGET',
48+
46 => 'DAMAGE_PROPERTY_POISON_USER',
49+
47 => 'DAMAGE_PROPERTY_POISON_TARGET',
50+
48 => 'DAMAGE_PROPERTY_SAINT_USER',
51+
49 => 'DAMAGE_PROPERTY_SAINT_TARGET',
52+
50 => 'DAMAGE_PROPERTY_DARKNESS_USER',
53+
51 => 'DAMAGE_PROPERTY_DARKNESS_TARGET',
54+
52 => 'DAMAGE_PROPERTY_TELEKINESIS_USER',
55+
53 => 'DAMAGE_PROPERTY_TELEKINESIS_TARGET',
56+
54 => 'DAMAGE_PROPERTY_UNDEAD_USER',
57+
55 => 'DAMAGE_PROPERTY_UNDEAD_TARGET',
58+
56 => 'MDAMAGE_PROPERTY_NOTHING_USER',
59+
57 => 'MDAMAGE_PROPERTY_NOTHING_TARGET',
60+
58 => 'MDAMAGE_PROPERTY_WATER_USER',
61+
59 => 'MDAMAGE_PROPERTY_WATER_TARGET',
62+
60 => 'MDAMAGE_PROPERTY_GROUND_USER',
63+
61 => 'MDAMAGE_PROPERTY_GROUND_TARGET',
64+
62 => 'MDAMAGE_PROPERTY_FIRE_USER',
65+
63 => 'MDAMAGE_PROPERTY_FIRE_TARGET',
66+
64 => 'MDAMAGE_PROPERTY_WIND_USER',
67+
65 => 'MDAMAGE_PROPERTY_WIND_TARGET',
68+
66 => 'MDAMAGE_PROPERTY_POISON_USER',
69+
67 => 'MDAMAGE_PROPERTY_POISON_TARGET',
70+
68 => 'MDAMAGE_PROPERTY_SAINT_USER',
71+
69 => 'MDAMAGE_PROPERTY_SAINT_TARGET',
72+
70 => 'MDAMAGE_PROPERTY_DARKNESS_USER',
73+
71 => 'MDAMAGE_PROPERTY_DARKNESS_TARGET',
74+
72 => 'MDAMAGE_PROPERTY_TELEKINESIS_USER',
75+
73 => 'MDAMAGE_PROPERTY_TELEKINESIS_TARGET',
76+
74 => 'MDAMAGE_PROPERTY_UNDEAD_USER',
77+
75 => 'MDAMAGE_PROPERTY_UNDEAD_TARGET',
78+
76 => 'BODY_ATTR_NOTHING',
79+
77 => 'BODY_ATTR_WATER',
80+
78 => 'BODY_ATTR_GROUND',
81+
79 => 'BODY_ATTR_FIRE',
82+
80 => 'BODY_ATTR_WIND',
83+
81 => 'BODY_ATTR_POISON',
84+
82 => 'BODY_ATTR_SAINT',
85+
83 => 'BODY_ATTR_DARKNESS',
86+
84 => 'BODY_ATTR_TELEKINESIS',
87+
85 => 'BODY_ATTR_UNDEAD',
88+
86 => 'BODY_ATTR_ALL',
89+
87 => 'RACE_TOLERACE_NOTHING',
90+
88 => 'RACE_TOLERACE_UNDEAD',
91+
89 => 'RACE_TOLERACE_ANIMAL',
92+
90 => 'RACE_TOLERACE_PLANT',
93+
91 => 'RACE_TOLERACE_INSECT',
94+
92 => 'RACE_TOLERACE_FISHS',
95+
93 => 'RACE_TOLERACE_DEVIL',
96+
94 => 'RACE_TOLERACE_HUMAN',
97+
95 => 'RACE_TOLERACE_ANGEL',
98+
96 => 'RACE_TOLERACE_DRAGON',
99+
97 => 'RACE_DAMAGE_NOTHING',
100+
98 => 'RACE_DAMAGE_UNDEAD',
101+
99 => 'RACE_DAMAGE_ANIMAL',
102+
100 => 'RACE_DAMAGE_PLANT',
103+
101 => 'RACE_DAMAGE_INSECT',
104+
102 => 'RACE_DAMAGE_FISHS',
105+
103 => 'RACE_DAMAGE_DEVIL',
106+
104 => 'RACE_DAMAGE_HUMAN',
107+
105 => 'RACE_DAMAGE_ANGEL',
108+
106 => 'RACE_DAMAGE_DRAGON',
109+
107 => 'RACE_MDAMAGE_NOTHING',
110+
108 => 'RACE_MDAMAGE_UNDEAD',
111+
109 => 'RACE_MDAMAGE_ANIMAL',
112+
110 => 'RACE_MDAMAGE_PLANT',
113+
111 => 'RACE_MDAMAGE_INSECT',
114+
112 => 'RACE_MDAMAGE_FISHS',
115+
113 => 'RACE_MDAMAGE_DEVIL',
116+
114 => 'RACE_MDAMAGE_HUMAN',
117+
115 => 'RACE_MDAMAGE_ANGEL',
118+
116 => 'RACE_MDAMAGE_DRAGON',
119+
117 => 'RACE_CRI_PERCENT_NOTHING',
120+
118 => 'RACE_CRI_PERCENT_UNDEAD',
121+
119 => 'RACE_CRI_PERCENT_ANIMAL',
122+
120 => 'RACE_CRI_PERCENT_PLANT',
123+
121 => 'RACE_CRI_PERCENT_INSECT',
124+
122 => 'RACE_CRI_PERCENT_FISHS',
125+
123 => 'RACE_CRI_PERCENT_DEVIL',
126+
124 => 'RACE_CRI_PERCENT_HUMAN',
127+
125 => 'RACE_CRI_PERCENT_ANGEL',
128+
126 => 'RACE_CRI_PERCENT_DRAGON',
129+
127 => 'RACE_IGNORE_DEF_PERCENT_NOTHING',
130+
128 => 'RACE_IGNORE_DEF_PERCENT_UNDEAD',
131+
129 => 'RACE_IGNORE_DEF_PERCENT_ANIMAL',
132+
130 => 'RACE_IGNORE_DEF_PERCENT_PLANT',
133+
131 => 'RACE_IGNORE_DEF_PERCENT_INSECT',
134+
132 => 'RACE_IGNORE_DEF_PERCENT_FISHS',
135+
133 => 'RACE_IGNORE_DEF_PERCENT_DEVIL',
136+
134 => 'RACE_IGNORE_DEF_PERCENT_HUMAN',
137+
135 => 'RACE_IGNORE_DEF_PERCENT_ANGEL',
138+
136 => 'RACE_IGNORE_DEF_PERCENT_DRAGON',
139+
137 => 'RACE_IGNORE_MDEF_PERCENT_NOTHING',
140+
138 => 'RACE_IGNORE_MDEF_PERCENT_UNDEAD',
141+
139 => 'RACE_IGNORE_MDEF_PERCENT_ANIMAL',
142+
140 => 'RACE_IGNORE_MDEF_PERCENT_PLANT',
143+
141 => 'RACE_IGNORE_MDEF_PERCENT_INSECT',
144+
142 => 'RACE_IGNORE_MDEF_PERCENT_FISHS',
145+
143 => 'RACE_IGNORE_MDEF_PERCENT_DEVIL',
146+
144 => 'RACE_IGNORE_MDEF_PERCENT_HUMAN',
147+
145 => 'RACE_IGNORE_MDEF_PERCENT_ANGEL',
148+
146 => 'RACE_IGNORE_MDEF_PERCENT_DRAGON',
149+
147 => 'CLASS_DAMAGE_NORMAL_TARGET',
150+
148 => 'CLASS_DAMAGE_BOSS_TARGET',
151+
149 => 'CLASS_DAMAGE_NORMAL_USER',
152+
150 => 'CLASS_DAMAGE_BOSS_USER',
153+
151 => 'CLASS_MDAMAGE_NORMAL',
154+
152 => 'CLASS_MDAMAGE_BOSS',
155+
153 => 'CLASS_IGNORE_DEF_PERCENT_NORMAL',
156+
154 => 'CLASS_IGNORE_DEF_PERCENT_BOSS',
157+
155 => 'CLASS_IGNORE_MDEF_PERCENT_NORMAL',
158+
156 => 'CLASS_IGNORE_MDEF_PERCENT_BOSS',
159+
157 => 'DAMAGE_SIZE_SMALL_TARGET',
160+
158 => 'DAMAGE_SIZE_MIDIUM_TARGET',
161+
159 => 'DAMAGE_SIZE_LARGE_TARGET',
162+
160 => 'DAMAGE_SIZE_SMALL_USER',
163+
161 => 'DAMAGE_SIZE_MIDIUM_USER',
164+
162 => 'DAMAGE_SIZE_LARGE_USER',
165+
163 => 'DAMAGE_SIZE_PERFECT',
166+
164 => 'DAMAGE_CRI_TARGET',
167+
165 => 'DAMAGE_CRI_USER',
168+
166 => 'RANGE_ATTACK_DAMAGE_TARGET',
169+
167 => 'RANGE_ATTACK_DAMAGE_USER',
170+
168 => 'HEAL_VALUE',
171+
169 => 'HEAL_MODIFY_PERCENT',
172+
170 => 'DEC_SPELL_CAST_TIME',
173+
171 => 'DEC_SPELL_DELAY_TIME',
174+
172 => 'DEC_SP_CONSUMPTION',
175+
173 => 'HP_DRAIN',
176+
174 => 'SP_DRAIN',
177+
175 => 'WEAPON_ATTR_NOTHING',
178+
176 => 'WEAPON_ATTR_WATER',
179+
177 => 'WEAPON_ATTR_GROUND',
180+
178 => 'WEAPON_ATTR_FIRE',
181+
179 => 'WEAPON_ATTR_WIND',
182+
180 => 'WEAPON_ATTR_POISON',
183+
181 => 'WEAPON_ATTR_SAINT',
184+
182 => 'WEAPON_ATTR_DARKNESS',
185+
183 => 'WEAPON_ATTR_TELEKINESIS',
186+
184 => 'WEAPON_ATTR_UNDEAD',
187+
185 => 'WEAPON_INDESTRUCTIBLE',
188+
186 => 'BODY_INDESTRUCTIBLE',
189+
187 => 'MDAMAGE_SIZE_SMALL_TARGET',
190+
188 => 'MDAMAGE_SIZE_MIDIUM_TARGET',
191+
189 => 'MDAMAGE_SIZE_LARGE_TARGET',
192+
190 => 'MDAMAGE_SIZE_SMALL_USER',
193+
191 => 'MDAMAGE_SIZE_MIDIUM_USER',
194+
192 => 'MDAMAGE_SIZE_LARGE_USER',
195+
);

0 commit comments

Comments
 (0)