Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
372
Server/RylServerProject/RylGameLibrary/Item/ItemStructure.h
Normal file
372
Server/RylServerProject/RylGameLibrary/Item/ItemStructure.h
Normal file
@@ -0,0 +1,372 @@
|
||||
#ifndef _ITEM_STRUCTURE_H_
|
||||
#define _ITEM_STRUCTURE_H_
|
||||
|
||||
#include <Creature/CreatureStructure.h>
|
||||
#include "ItemConstants.h"
|
||||
|
||||
|
||||
namespace Item
|
||||
{
|
||||
class CItem;
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
// ------------------------------------------------------------------------------------------
|
||||
// UseLimit, ItemInfo <20><> <20><>ũ<EFBFBD><C5A9>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> <20>ִ´<D6B4>.
|
||||
|
||||
struct ItemPos
|
||||
{
|
||||
unsigned short m_cPos : 4; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Equip, Inven...) (0~15)
|
||||
unsigned short m_cIndex : 12; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD> (0~4095)
|
||||
|
||||
ItemPos() : m_cPos(0), m_cIndex(0) { }
|
||||
ItemPos(unsigned char cPos, unsigned short usIndex) : m_cPos(cPos), m_cIndex(usIndex) { }
|
||||
|
||||
inline void SetPos(unsigned short wIndex) { m_cIndex = wIndex; }
|
||||
inline void SetPos(unsigned char cXIndex, unsigned char cYIndex, unsigned char cZIndex);
|
||||
inline void GetPos(unsigned char& cXIndex, unsigned char& cYIndex, unsigned char& cZIndex) const;
|
||||
|
||||
inline unsigned char GetXIndex(void) const { return (m_cIndex & 0x00F); }
|
||||
inline unsigned char GetYIndex(void) const { return (m_cIndex & 0x0F0) >> 4; }
|
||||
inline unsigned char GetZIndex(void) const { return (m_cIndex & 0xF00) >> 8; }
|
||||
|
||||
inline void SetXIndex(unsigned char cXIndex) { m_cIndex = (m_cIndex & 0xFF0) + cXIndex; }
|
||||
inline void SetYIndex(unsigned char cYIndex) { m_cIndex = (m_cIndex & 0xF0F) + (cYIndex << 4); }
|
||||
inline void SetZIndex(unsigned char cZIndex) { m_cIndex = (m_cIndex & 0x0FF) + (cZIndex << 8); }
|
||||
|
||||
inline bool operator == (const ItemPos& rhs) const { return (m_cPos == rhs.m_cPos && m_cIndex == rhs.m_cIndex); }
|
||||
};
|
||||
|
||||
inline void ItemPos::SetPos(unsigned char cXIndex, unsigned char cYIndex, unsigned char cZIndex)
|
||||
{
|
||||
m_cIndex = (cZIndex << 8) + (cYIndex << 4) + cXIndex;
|
||||
}
|
||||
|
||||
inline void ItemPos::GetPos(unsigned char& cXIndex, unsigned char& cYIndex, unsigned char& cZIndex) const
|
||||
{
|
||||
cXIndex = (m_cIndex & 0x00F);
|
||||
cYIndex = (m_cIndex & 0x0F0) >> 4;
|
||||
cZIndex = (m_cIndex & 0xF00) >> 8;
|
||||
}
|
||||
|
||||
|
||||
struct ItemData
|
||||
{
|
||||
unsigned __int64 m_dwUID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> UID
|
||||
unsigned short m_usProtoTypeID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ID
|
||||
ItemPos m_ItemPos; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ġ
|
||||
unsigned char m_cItemSize; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ü ũ<><C5A9>
|
||||
unsigned char m_cNumOrDurability; // <20><><EFBFBD><EFBFBD> Ȥ<><C8A4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
ItemData() { m_dwUID = m_usProtoTypeID = m_cNumOrDurability = 0; m_cItemSize = sizeof(ItemData); }
|
||||
void DumpInfo(unsigned long dwCID, const char* szExtraString) const;
|
||||
};
|
||||
|
||||
struct ItemAttribute
|
||||
{
|
||||
unsigned short m_cType : 4; // <20>Ӽ<EFBFBD> <20><><EFBFBD><EFBFBD> 4bit (16<31><36><EFBFBD><EFBFBD>)
|
||||
unsigned short m_usValue : 12; // <20>Ӽ<EFBFBD> <20><> 12bit (0 ~ 4096)
|
||||
|
||||
ItemAttribute() : m_cType(0), m_usValue(0) { }
|
||||
ItemAttribute(unsigned char cType, unsigned short usValue) : m_cType(cType), m_usValue(usValue) { }
|
||||
};
|
||||
|
||||
// <20>ڿ<EFBFBD> Socket<65><74><EFBFBD>빰<EFBFBD><EBB9B0> m_cSocketNum<75><6D>ŭ, Attribute<74><65> m_cDiffAttributeNum<75><6D>ŭ <20>ٴ´<D9B4>.
|
||||
struct EquipmentInfo
|
||||
{
|
||||
enum
|
||||
{
|
||||
MAX_UPGRADE_LEVEL = 10, // <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
MAX_CORE_LEVEL = 5, // <20>ִ<EFBFBD> <20>ھ<EFBFBD> <20><><EFBFBD><EFBFBD> (<28>ھ<EFBFBD><DABE><EFBFBD> <20>ھ<DABE><EEBCAE> <20>߶<EFBFBD> Ư<><C6AF><EFBFBD><EFBFBD> <20>ɷ<EFBFBD><C9B7><EFBFBD> <20>ο<EFBFBD><CEBF>ϴ<EFBFBD> <20>ý<EFBFBD><C3BD><EFBFBD>)
|
||||
|
||||
MAX_ATTRIBUTE_PER_GEM = 2, // <20><><EFBFBD><EFBFBD> <20>ϳ<EFBFBD><CFB3><EFBFBD> <20><>ȭ<EFBFBD>Ǵ<EFBFBD> <20>ִ<EFBFBD> <20>Ӽ<EFBFBD> <20><>
|
||||
MAX_ATTRIBUTE_PER_UPGRADE_LEVEL = 2, // <20><> <20>ܰ迡 <20><>ȭ<EFBFBD>Ǵ<EFBFBD> <20>ִ<EFBFBD> <20>Ӽ<EFBFBD> <20><>
|
||||
MAX_UPGRADE_ATTRIBUTE = 6, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ؼ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD> <20>ִ<EFBFBD> <20>Ӽ<EFBFBD> <20><>
|
||||
|
||||
MAX_MINSIZE_SOCKET_NUM = 6, // ũ<>Ⱑ 1by1<79><31> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><>
|
||||
MAX_MINSIZE_ATTRIBUTE_NUM = 6, // ũ<>Ⱑ 1by1<79><31> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20>Ӽ<EFBFBD> <20><>
|
||||
|
||||
MAX_SOCKET_NUM = 8, // <20>Ϲ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><>
|
||||
MAX_SOCKET_ATTRIBUTE_NUM = 16, // <20><><EFBFBD><EFBFBD> <20>ϳ<EFBFBD><CFB3><EFBFBD> <20>ִ<EFBFBD> <20>Ӽ<EFBFBD><D3BC><EFBFBD> <20>ΰ<EFBFBD><CEB0><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
// edith 2009.09.16 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
// MAX_ATTRIBUTE_NUM = 22, // <20>Ϲ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20>Ӽ<EFBFBD> <20><>
|
||||
MAX_ATTRIBUTE_NUM = 15, // <20>Ϲ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20>Ӽ<EFBFBD> <20><>
|
||||
|
||||
MAX_RUNE_SOCKET_NUM = 2, // <20><><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><>
|
||||
|
||||
MAX_SOCKET_AND_ATTRIBUTE_MINISIZE = (MAX_MINSIZE_SOCKET_NUM * sizeof(char) + MAX_MINSIZE_ATTRIBUTE_NUM * sizeof(ItemAttribute)),
|
||||
MAX_SOCKET_AND_ATTRIBUTE_SIZE = (MAX_SOCKET_NUM * sizeof(char) + MAX_ATTRIBUTE_NUM * sizeof(ItemAttribute))
|
||||
};
|
||||
|
||||
unsigned short m_cUpgradeCnt : 2; // <20><><EFBFBD>ý<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ī<><C4AB>Ʈ.
|
||||
unsigned short m_cReserved1 : 9; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>... (0~511)
|
||||
short m_cUpgradeLevel : 5; // <20><><EFBFBD><EFBFBD><D7B7>̵<EFBFBD> <20>ܰ<EFBFBD> (-16 ~ 15)
|
||||
|
||||
char m_cDiffMaxSocket : 5; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> + m_cDiffMaxSocket = <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><> (-16 ~ 15)
|
||||
unsigned char m_cSeasonRecord : 3; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ñ<EFBFBD> (0~7) (<28><><EFBFBD>뷱<EFBFBD><EBB7B1> <20><> : 0, <20><> : 1, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ɷ<EFBFBD><C9B7><EFBFBD><EFBFBD><EFBFBD> : 2)
|
||||
|
||||
unsigned char m_cSocketNum : 4; // <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> (0 ~ 15)
|
||||
unsigned char m_cAttributeNum : 4; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ۿ<EFBFBD> <20><><EFBFBD>ų<EFBFBD>, <20><>ġ<EFBFBD><C4A1> <20>ٸ<EFBFBD> <20>Ӽ<EFBFBD> <20><> (0 ~ 15<31><35>)
|
||||
|
||||
char m_cDiffMaxDurability; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>۰<EFBFBD><DBB0><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
unsigned char m_cCoreLevel : 4; // <20>ھ<EFBFBD><DABE><EFBFBD> <20><><EFBFBD><EFBFBD> (0 ~ 15)
|
||||
unsigned char m_cReserved2 : 4; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...(0~124)
|
||||
|
||||
EquipmentInfo()
|
||||
{
|
||||
m_cUpgradeCnt = m_cReserved1 = m_cUpgradeLevel = m_cDiffMaxSocket = m_cDiffMaxDurability =
|
||||
m_cSocketNum = m_cAttributeNum = m_cSeasonRecord = m_cCoreLevel = m_cReserved2 = 0;
|
||||
}
|
||||
};
|
||||
|
||||
#pragma pack()
|
||||
|
||||
const unsigned char MAX_ITEM_SIZE = sizeof(ItemData) +
|
||||
sizeof(EquipmentInfo) + EquipmentInfo::MAX_SOCKET_AND_ATTRIBUTE_SIZE;
|
||||
|
||||
|
||||
struct SpriteData
|
||||
{
|
||||
enum { MAX_NAME = 64, MAX_SPRITE_NAME = 32 };
|
||||
|
||||
char m_szName[MAX_NAME];
|
||||
char m_szSpriteName[MAX_SPRITE_NAME];
|
||||
|
||||
unsigned short m_nSpriteMinX;
|
||||
unsigned short m_nSpriteMinY;
|
||||
unsigned short m_nSpriteMaxX;
|
||||
unsigned short m_nSpriteMaxY;
|
||||
|
||||
SpriteData();
|
||||
void Initialize();
|
||||
};
|
||||
|
||||
|
||||
struct StringData
|
||||
{
|
||||
enum
|
||||
{
|
||||
MAX_FIELD_MODEL_NAME = 32, MAX_EQUIP_MODEL_NAME = 32,
|
||||
MAX_EFFECT_SOUND_NAME = 32, MAX_TYPE_NAME = 32,
|
||||
MAX_ITEM_DESCRIBE = 256
|
||||
};
|
||||
|
||||
char m_szFieldModelName[MAX_FIELD_MODEL_NAME];
|
||||
char m_szEquipModelName[MAX_EQUIP_MODEL_NAME];
|
||||
char m_szEffectSoundName[MAX_EFFECT_SOUND_NAME];
|
||||
char m_szTypeName[MAX_TYPE_NAME];
|
||||
char m_szItemDescribe[MAX_ITEM_DESCRIBE];
|
||||
|
||||
StringData();
|
||||
void Initialize();
|
||||
};
|
||||
|
||||
|
||||
struct DetailData
|
||||
{
|
||||
enum Flags
|
||||
{
|
||||
EQUIP = (1 << 0), // <20><><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD> <20>ִ<EFBFBD><D6B4><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
USE_ITEM = (1 << 1), // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD><D6B4><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
QUICKSLOT_IN = (1 << 2), // <20><><EFBFBD><EFBFBD><EFBFBD>Կ<EFBFBD> <20><><EFBFBD> <20><> <20>ִ<EFBFBD><D6B4><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
STACKABLE = (1 << 3), // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD><D6B4><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
HELM = (1 << 4), // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ARMOR = (1 << 5), // <20><><EFBFBD>ʷ<EFBFBD>
|
||||
DAGGER = (1 << 6), // <20>ܰ˷<DCB0>
|
||||
ONEHANDED = (1 << 7), // <20>Ѽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
LONGRANGE = (1 << 8), // <20><><EFBFBD>Ÿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
TWOHANDED = (1 << 9), // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
STAFF = (1 << 10), // <20><><EFBFBD><EFBFBD><EFBFBD>̷<EFBFBD>
|
||||
SHIELD = (1 << 11), // <20><><EFBFBD>з<EFBFBD>
|
||||
|
||||
//--// start..
|
||||
NECKLACE = (1 << 12), // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
RING = (1 << 13), // <20><><EFBFBD><EFBFBD>
|
||||
RUNE = (1 << 14), // <20><>
|
||||
//--// end..
|
||||
AVATA = (1 << 15) // <20>ƹ<EFBFBD>Ÿ<EFBFBD><C5B8><EFBFBD><EFBFBD>
|
||||
};
|
||||
|
||||
unsigned long m_dwPrice; // <20>⺻ <20><><EFBFBD><EFBFBD>
|
||||
unsigned long m_dwBlackPrice; // <20>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ǹ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
unsigned long m_dwMedalPrice; // <20><DEB4><DEBB><EFBFBD><EFBFBD><EFBFBD> <20>Ǹ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
unsigned short m_wDropOption; // <20><>ġ å<><C3A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>
|
||||
unsigned char m_cGrade; // <20><>ġ å<><C3A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0 <20>϶<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> //--//
|
||||
unsigned char m_cCriticalType; // ũ<><C5A9>Ƽ<EFBFBD><C6BC> Ÿ<><C5B8>
|
||||
unsigned char m_cAttackRange; // <20><><EFBFBD><EFBFBD> <20>Ÿ<EFBFBD>
|
||||
|
||||
unsigned char m_cItemType; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>( namespace Type <20><><EFBFBD><EFBFBD> )
|
||||
unsigned char m_cXSize; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Xũ<58><C5A9>
|
||||
unsigned char m_cYSize; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Yũ<59><C5A9>
|
||||
|
||||
unsigned char m_cMaxSocketNum; // <20>ִ<EFBFBD> <20><><EFBFBD>ϼ<EFBFBD>
|
||||
unsigned char m_cDefaultDurabilityOrStack; // <20>⺻ <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char m_cMaxDurabilityOrStack; // <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
unsigned char m_cMinDropLevel; // <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ּ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
unsigned char m_cMaxDropLevel; // <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
unsigned short m_wLowLimitLevel; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Ѽ<EFBFBD>.
|
||||
unsigned short m_wHighLimitLevel; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Ѽ<EFBFBD>.
|
||||
|
||||
bool m_bExchangeAndDrop; // <20><>ȯ<EFBFBD><C8AF> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѱ<EFBFBD>?
|
||||
bool m_bSell; // <20><> <20><> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΰ<EFBFBD>?
|
||||
|
||||
bool m_bOptionPrice; // <20>ɼ<EFBFBD><C9BC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD> <20><><EFBFBD><EFBFBD> å<><C3A5><EFBFBD><EFBFBD> <20>ٽ<EFBFBD> <20><> <20><><EFBFBD>ΰ<EFBFBD>?
|
||||
|
||||
unsigned long m_dwFlags;
|
||||
|
||||
DetailData();
|
||||
void Initialize();
|
||||
};
|
||||
|
||||
struct EquipAttribute
|
||||
{
|
||||
unsigned short m_usAttributeValue[Item::Attribute::MAX_ATTRIBUTE_NUM];
|
||||
unsigned short m_nAttibuteNum;
|
||||
|
||||
EquipAttribute();
|
||||
void Initialize();
|
||||
};
|
||||
|
||||
struct UseItemInfo
|
||||
{
|
||||
Position m_Pos; // <20>̵<EFBFBD> <20><>ǥ (<28><><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><CCB5><EFBFBD>)
|
||||
unsigned char m_cZone; // <20>̵<EFBFBD> <20><> (<28><><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><CCB5><EFBFBD>)
|
||||
|
||||
unsigned long m_dwAmount; // <20><> (<28><><EFBFBD><EFBFBD>ġ<EFBFBD><C4A1><EFBFBD><EFBFBD>, ij<><C4B3><EFBFBD><EFBFBD>)
|
||||
|
||||
unsigned short m_usSkill_ID; // <20><><EFBFBD><EFBFBD> <20><>ų <20><><EFBFBD>̵<EFBFBD> (<28><><EFBFBD><EFBFBD>, <20><>ų<EFBFBD><C5B3>)
|
||||
unsigned short m_usSkill_LockCount; // <20><><EFBFBD><EFBFBD> <20><>ų <20><>ī<EFBFBD><C4AB>Ʈ (<28><><EFBFBD><EFBFBD>, <20><>ų<EFBFBD><C5B3>)
|
||||
|
||||
unsigned short m_wQuestID; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD>̵<EFBFBD> (<28><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
|
||||
unsigned char m_cLimitRealmPoint; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool m_bForStatueWar; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20>ð<EFBFBD><C3B0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
UseItemInfo();
|
||||
void Initialize();
|
||||
};
|
||||
|
||||
struct UseLimit
|
||||
{
|
||||
enum DeactivatedType
|
||||
{
|
||||
STATUS_LIMIT = ( 1 << 0 ),
|
||||
CLASS_LIMIT = ( 1 << 1 ),
|
||||
BROKEN_ITEM = ( 1 << 2 )
|
||||
};
|
||||
|
||||
unsigned long m_dwClassLimit;
|
||||
|
||||
unsigned char m_cLimitStatus;
|
||||
unsigned short m_wLimitValue;
|
||||
|
||||
UseLimit();
|
||||
void Initialize();
|
||||
};
|
||||
|
||||
#pragma pack(8)
|
||||
|
||||
struct ItemInfo
|
||||
{
|
||||
unsigned short m_usProtoTypeID;
|
||||
|
||||
DetailData m_DetailData;
|
||||
UseLimit m_UseLimit;
|
||||
SpriteData m_SpriteData;
|
||||
StringData m_StringData;
|
||||
|
||||
EquipAttribute m_EquipAttribute;
|
||||
UseItemInfo m_UseItemInfo;
|
||||
|
||||
ItemInfo();
|
||||
ItemInfo(unsigned short usPrototypeID);
|
||||
void Initialize();
|
||||
|
||||
inline bool operator < (ItemInfo& rhs)
|
||||
{
|
||||
return (m_usProtoTypeID < rhs.m_usProtoTypeID);
|
||||
}
|
||||
|
||||
const char* GetItemDescribe(void) const;
|
||||
};
|
||||
|
||||
#pragma pack()
|
||||
|
||||
|
||||
struct ItemGarbage
|
||||
{
|
||||
CItem* m_lpItem;
|
||||
unsigned long m_dwRemainNum;
|
||||
|
||||
ItemGarbage(CItem* lpItem, unsigned long dwRemainNum);
|
||||
};
|
||||
|
||||
struct ChemicalInfo
|
||||
{
|
||||
unsigned short m_wPickkingItemID;
|
||||
unsigned short m_wTargetItemID;
|
||||
unsigned short m_wResultItemID;
|
||||
|
||||
unsigned char m_cPickkingItemNum;
|
||||
unsigned char m_cTargetItemNum;
|
||||
unsigned char m_cResultItemNum;
|
||||
|
||||
unsigned long m_dwItemID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̵<EFBFBD>
|
||||
unsigned short m_usAbilityID; // <20><><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD>
|
||||
unsigned char m_cAbilityLevel;
|
||||
unsigned short m_usQuestID; // <20><><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD>
|
||||
unsigned char m_cPercent; // <20><><EFBFBD><EFBFBD>Ȯ<EFBFBD><C8AE>
|
||||
|
||||
|
||||
ChemicalInfo();
|
||||
ChemicalInfo(unsigned short wPickkingItemID, unsigned char cPickkingItemNum,
|
||||
unsigned short wTargetItemID, unsigned char cTargetItemNum, unsigned int dwItemID, unsigned short usAbilityID, unsigned char cAbilityLevel, unsigned short usQuestID, unsigned char cPercent);
|
||||
|
||||
bool operator < (const ChemicalInfo& rhs)
|
||||
{
|
||||
if (m_wPickkingItemID == rhs.m_wPickkingItemID)
|
||||
{
|
||||
return m_wTargetItemID < rhs.m_wTargetItemID;
|
||||
}
|
||||
|
||||
return m_wPickkingItemID < rhs.m_wPickkingItemID;
|
||||
}
|
||||
|
||||
bool operator == (const ChemicalInfo& rhs)
|
||||
{
|
||||
return (m_wPickkingItemID == rhs.m_wPickkingItemID && m_wTargetItemID == rhs.m_wTargetItemID &&
|
||||
m_cPickkingItemNum == rhs.m_cPickkingItemNum && m_cTargetItemNum == rhs.m_cTargetItemNum);
|
||||
}
|
||||
};
|
||||
|
||||
namespace Grade
|
||||
{
|
||||
struct GradeInfo
|
||||
{
|
||||
EquipType::Grade m_eItemGrade;
|
||||
unsigned char m_cPlus;
|
||||
|
||||
EquipType::Grade m_aryAttributeGrade[Attribute::MAX_ATTRIBUTE_NUM];
|
||||
|
||||
GradeInfo();
|
||||
};
|
||||
|
||||
enum TableType
|
||||
{
|
||||
DROP_MIN_VALUE = 0, // <20><><EFBFBD><EFBFBD> <20><EFBFBD><D7B7>̵<EFBFBD> <20>ּҰ<D6BC>
|
||||
DROP_MAX_VALUE = 1, // <20><><EFBFBD><EFBFBD> <20><EFBFBD><D7B7>̵<EFBFBD> <20>ִ밪
|
||||
VALUE_GRADE = 2, // <20><>ġ <20><EFBFBD><D7B7>̵<EFBFBD>
|
||||
|
||||
MAX_TABLE_TYPE = 3
|
||||
};
|
||||
|
||||
const float GetGradeValue(Item::CItemType::ArrayType eEquipType, Grade::TableType eTableType,
|
||||
EquipType::Grade eGrade, Attribute::Type eType);
|
||||
};
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user