GW_ItemSlotBase is the base of the item. You RawDecode this to get the inventory type and construct the specific item. For equips, this would be GW_ItemSlotEquip. RawDecode in there is for stats in lower versions.
However, in v14x or so when I noticed sources had some enum constant for slots and crap I looked into it more and realized that GW_ItemSlotEquip had its own base which controlled its stats additional to GW_ItemSlotBase. Nexon named it just like I thought, GW_ItemSlotEquipBase. If you look for the Decode's here, you'll find the flags for it. Here's my Java version of it minus decoding it cuz i was lazy:
PHP Code:
/*
* This file is part of Development, a MapleStory Emulator Project.
* Copyright (C) 2015 Eric Smith <muffinman75013@yahoo.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
*/
package user.inventory;
/**
* GW_ItemSlotEquipBase
*
* @author Eric
*/
public class GW_ItemSlotEquipBase {
public int nRUC;
public int nCUC;
public int niSTR;
public int niDEX;
public int niINT;
public int niLUK;
public int niMaxHP;
public int niMaxMP;
public int niPAD;
public int niMAD;
public int niPDD;
public int niMDD;
public int niACC;
public int niEVA;
public int niCraft;
public int niSpeed;
public int niJump;
public int nAttribute;
public int nLevelUpType;
public int nLevel;
public long nEXP64;
public int nDurability;
public int nIUC;
public int niPVPDamage;
public int niReduceReq;
public int nSpecialAttribute;
public int nDurabilityMax;
public int niIncReq;
public int nGrowthEnchant;
public int nPSEnchant;
public int nBDR;
public int nIMDR;
public int nDamR;
public int nStatR;
public int nCuttable;
public int nExGradeOption;
public int nItemState;
public static enum EquipBaseFlag {
RUC(0x1),
CUC(0x2),
iSTR(0x4),
iDEX(0x8),
iINT(0x10),
iLUK(0x20),
iMaxHP(0x40),
iMaxMP(0x80),
iPAD(0x100),
iMAD(0x200),
iPDD(0x400),
iMDD(0x800),
iACC(0x1000),
iEVA(0x2000),
iCraft(0x4000),
iSpeed(0x8000),
iJump(0x10000),
Attribute(0x20000),
LevelUpType(0x40000),
Level(0x80000),
EXP(0x100000),
Durability(0x200000),
IUC(0x400000),
iPVPDamage(0x800000),
iReduceReq(0x1000000),
SpecialAttribute(0x2000000),
DurabilityMAX(0x4000000),
iIncReq(0x8000000),
GrowthEnchant(0x10000000),
PSEnchant(0x20000000),
BDR(0x40000000),
IMDR(0x80000000);
private final int flag;
private EquipBaseFlag(int flag) {
this.flag = flag;
}
public int getFlag() {
return flag;
}
}
public static enum EquipBaseFlagEx {
DamR(0x1),
StatR(0x2),
Cuttable(0x4),
ExGradeOption(0x8),
HyperUpgrade(0x10);
private final int flag2;
private EquipBaseFlagEx(int flag2) {
this.flag2 = flag2;
}
public int getFlag() {
return flag2;
}
}
}