-
Notifications
You must be signed in to change notification settings - Fork 9
/
MHFU Weapons-Armor.bt
298 lines (276 loc) · 5.7 KB
/
MHFU Weapons-Armor.bt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
//------------------------------------------------
//--- 010 Editor v12.0.1 Binary Template
//
// File:
// Authors:
// Version:
// Purpose:
// Category:
// File Mask:
// ID Bytes:
// History:
//------------------------------------------------
SetStartingAddress(0x08801A4C);
typedef struct{
short red;
short orange;
short yellow;
short green;
short blue;
short white;
short purple;
}Sharpness;
typedef struct{
SetBackColor( 0x0000FFFF );
uchar Type;
uchar Hide;
ushort EquipID;
int16 Item_ID;
ushort quantity0;
int16 Item_ID;
ushort quantity1;
int16 Item_ID;
ushort quantity2;
ushort Item_ID;
ushort quantity3;
uint unkn;
ushort null;
}CreateEntry;
typedef struct{
SetBackColor( 0xFF0000FF );
int16 Item_ID;
ushort quantity0;
int16 Item_ID;
ushort quantity1;
int16 Item_ID;
ushort quantity2;
ushort Item_ID;
ushort quantity3;
uint16 upgradesTo0;
uint16 upgradesTo1;
uint16 upgradesTo2;
uint16 upgradesTo3;
uint16 upgradesTo4;
uint16 upgradesTo5;
} UpgradeEntry;
typedef struct{
int16 modelIdMale;
int16 modelIdFemale;
byte maleEq : 1;
byte femaleEq : 1;
byte bladeEq : 1;
byte gunEq : 1;
byte unk1Eq : 1;
byte unk2Eq : 1;
byte unk3Eq : 1;
byte unk4Eq : 1;
byte rarity;
byte unk1[2];
int32 sellPrice; // Double of what smithy says
byte defense;
byte fireRes;
byte waterRes;
byte thunderRes;
byte dragonRes;
byte iceRes;
byte slots;
byte unk;
byte armorSpheresTier1;
byte unk2[9];
byte skillId01;
byte skillPts01;
byte skillId02;
byte skillPts02;
byte skillId03;
byte skillPts03;
byte skillId04;
byte skillPts04;
byte skillId05;
byte skillPts05;
}ArmorData;
typedef struct {
byte typeLevel;
}GunlanceShelling;
string ReadShelling(GunlanceShelling &s){
local string st;
local int typ = s.typeLevel % 3;
local int level = (s.typeLevel / 3) + 1;
local string type = "";
if(typ == 1) type = "Long ";
else if (typ == 2) type = "Wide ";
else type = "Normal ";
SPrintf(st, "%s%i", type, level);
return st;
};
typedef union {
byte raw;
enum<byte> {
WBR = 0,
WYR,
WGR,
WBY,
WGY,
WGB,
PBR,
PYR,
PBY,
PGY,
PGB,
PGR,
WGC,
WYC,
WCB,
WCR,
PGC,
PYC,
PCB,
PCR
}HuntingHornNotes;
GunlanceShelling shelling<read=ReadShelling>;
}WeaponVariable;
typedef struct{
int16 model;
byte rarity;
byte unk1;
int32 price;
byte sharpnessTable;
byte sharpnessLength;
int16 damage;
byte defense;
byte affinity;
byte elementalType;
byte elementalDamage;
byte ailmentType;
byte ailmentDamage;
byte slots;
WeaponVariable WepValue;
byte weaponVar;
ubyte sortOrder;
byte unk3[2];
}BlademasterWeaponData;
struct WeaponValuesBMDualAttrib{
ushort WeaponID;
ushort AttribID_A;
ushort Value_A;
ushort AttribID_B;
ushort Value_B;
};
typedef struct {
int16 model;
byte rarity;
byte modTable;
int32 price;
int16 damage;
byte defense;
byte recoil;
byte slots;
byte affinity;
int16 sortOrder;
byte ammoConfig; //Charge Attack
byte elementType; //Bows
byte elementDamage; //Bows
byte reload;
byte unk2[4];
ubyte ammoUsable1;
ubyte ammoUsable2;
ubyte ammoUsable3;
ubyte ammoUsable4;
}GunnerWeaponData;
struct BowgunModLvls{
uint Atk_Increase;
float Speed;
float Distance_Devi; // These 2 deal with drop off....somehow...
float Dropoff_Speed; //
float Horizontal_Devi;
float EFX_Timing;
};
struct BowgunShots{
uchar Norm1;
uchar Norm2;
uchar Norm3;
uchar Pierce1;
uchar Pierce2;
uchar Pierce3;
uchar Pellet1;
uchar Pellet2;
uchar Pellet3;
uchar Crag1;
uchar Crag2;
uchar Crag3;
uchar Clust1;
uchar Clust2;
uchar Clust3;
uchar Flame;
uchar Water;
uchar Thunder;
uchar Freeze;
uchar Dragon;
uchar Recov1;
uchar Recov2;
uchar Poison1;
uchar Poison2;
uchar Para1;
uchar Para2;
uchar Sleep1;
uchar Sleep2;
uchar Tranq;
uchar Paint;
uchar Demon;
uchar Armor;
};
struct BowCharges{
uchar ChargeLv1;
uchar ChargeLv2;
uchar ChargeLv3;
uchar ChargeLv4;
};
struct Mod2WepType{
uchar Type;
};
local int Mode = 0; //0 = MHP2G 1 = MHFU US (dunno if Europe is much different)
local int Offset = 0x0;
if(Mode == 1) Offset = 0x2B04;
FSeek(0x155A94 + Offset);
BlademasterWeaponData bmWeapons[1149];
GunnerWeaponData null;
GunnerWeaponData gnWeapons[353];
FSeek(0x15ED04 + Offset);
ArmorData helms[436];
ArmorData chests[420];
ArmorData arms[411];
ArmorData waist[409];
ArmorData legs[420];
FSeek(0x174ABC + Offset);
Sharpness sharpness[40];
FSeek(0x1372C8 + Offset);
CreateEntry helmCreates[436];
CreateEntry chestCreates[420];
CreateEntry armCreates[411];
CreateEntry waistCreates[409];
CreateEntry legCreates[420];
CreateEntry bladeCreates[1150];
CreateEntry gunCreates[354];
FSeek(0x14B474 + Offset);
UpgradeEntry bladeUpgrades[1150];
UpgradeEntry gunnerUpgrades[354];
FSeek(0x173F38 + Offset);
Mod2WepType models[553];
FSeek(0x175208 + Offset);
WeaponValuesBMDualAttrib dualAttr[15];
FSeek(0x1741A8);
struct{
SetBackColor(cRed);
BowgunShots ShotTable[58];
} BGSHOTTBL<name="Bowgun Shot Table">;
//------------------------------------------------
FSeek(0x1748E8);
struct{
SetBackColor(cDkRed);
BowCharges ChargeTable[117];
} BOWCHRGTBL<name="Bow Charge Table">;
FSeek(0x174D18);
struct{
struct{
BowgunModLvls levels[5];
}modTable[4];
}ModLevels;