⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 itemdata.h

📁 魔域源代码需要的可以学习一下真么这么麻烦啊
💻 H
📖 第 1 页 / 共 2 页
字号:
const int	ITEMTYPE_EUDEMON_SPEED			=	71000;	// 速度型
const int	ITEMTYPE_EUDEMON_PATK			=	72000;	// 攻击型
const int	ITEMTYPE_EUDEMON_DEF			=	73000;	// 防御型
const int	ITEMTYPE_EUDEMON_MATK			=	74000;	// 魔法攻击型
const int	ITEMTYPE_EUDEMON_BOMB			=	75000;	// 爆破型
const int	ITEMTYPE_EUDEMON_PROTECTIVE		=	76000;	// 保护型
const int	ITEMTYPE_EUDEMON_ATTACH			=	77000;	// 附身型
const int	ITEMTYPE_EUDEMON_VARIATIONAL	=	78000;	// 变异型

const int	ITEMTYPE_EUDEMON_EGG		=	80000;	// 幻兽蛋
//===================================

/*
const int	ITEMTYPE_MEDICINE			=	00000;// 补药 
const int	ITEMTYPE_POISON				=	10000;// 毒药
const int	ITEMTYPE_DART				=	20000;// 矢
const int	ITEMTYPE_BOOK				=	30000;// 秘笈
const int	ITEMTYPE_NOTUSE				=	40000;// 不用
const int	ITEMTYPE_ARROW				=	50000;// 箭
const int	ITEMTYPE_SPELL				=	60000;// 符咒类
const int	ITEMTYPE_NOT_DIRECTUSE		=	70000;// 不可以双击使用的(如任务物品,宝石,木材等资源类,千位继续分类)
const int	ITEMTYPE_EX0				=	80000;// 扩展0
const int	ITEMTYPE_EX1				=	90000;// 扩展1
*/

//////////////////////////////////////////////////////////////////////
// ITEMSORT_OTHER 类别物品
const int	ITEMTYPE_GEM				=	00000;// 宝石物品
const int	ITEMTYPE_TASKITEM			=	10000;// 任务物品
const int	ITEMTYPE_ACTIONITEM			=	20000;// Action物品
const int	ITEMTYPE_GAMECARD			=	80000;// 点卡,月卡

/*/////////////////////////////////////////////////////////////////////
//2003-01-13 10:36:24  黄宇航
// Necklace type define
const int	ITEMTYPE_NECKLACE			=	00000;// 项链 
const int	ITEMTYPE_SACHET				=	10000;// 香袋
const int	ITEMTYPE_AMULET				=	20000;// 护身符

//2003-01-13 10:46:37  黄宇航
// Ring type define
const int	ITEMTYPE_RING				=	00000;// 戒指 
const int	ITEMTYPE_THUMB_RING			=	10000;// 扳指 
const int	ITEMTYPE_BANGLE				=	20000;// 手镯

//2003-01-13 11:05:03  黄宇航
// Singlehand Weapon define
const int	SWEAPON_NONE				=	00000;// 空手
const int	SWEAPON_BLADE				=	10000;// 刀
const int	SWEAPON_AXE					=	20000;// 斧
const int	SWEAPON_HAMMER				=	30000;// 锤
const int	SWEAPON_HOOK				=	40000;// 钩
const int	SWEAPON_CLUB				=	50000;// 棒/杵
const int	SWEAPON_SWORD				=	60000;// 剑
const int	SWEAPON_CRUTCH				=	70000;// 拐
const int	SWEAPON_SCOURGE				=	80000;// 鞭/锏
const int	SWEAPON_SHORT				=	90000;// 短兵器
*/
// Doublehand Weapon define
const int	DWEAPON_BOW					=	00000;// 弓
const int	DWEAPON_CROSSBOW			=	 1000;// 弩
const int	DWEAPON_BLADE				=	10000;// 刀
const int	DWEAPON_AXE					=	20000;// 斧
const int	DWEAPON_HAMMER				=	30000;// 锤
const int	DWEAPON_HOOK				=	40000;// 钩
const int	DWEAPON_STAFF				=	50000;// 棍
const int	DWEAPON_SHOVEL				=	60000;// 铲
const int	DWEAPON_HALBERD				=	70000;// 戟
const int	DWEAPON_FORK				=	80000;// 叉
const int	DWEAPON_SPEAR				=	90000;// 枪

//////////////////////////////////////////////////////////////////////

// add by zlong 2003-12-01
const int	MAX_SPRITE_GROWTH		= 500;	// 精灵的最大成长率*100
const int	MAX_SOUL_SPRITE_GROWTH	= 200;	// 加精神的精灵最大成长率*100

const int	EUDEMON_DEC_FIDELITY_WHEN_DIE		= 10;			// 幻兽死亡扣10点亲密度
const int	EUDEMON_DEC_FIDELITY_WHEN_DEAL		= 30;			// 幻兽转手要扣30点亲密度


//////////////////////////////////////////////////////////////////////
//const int	ITEMPOSITION_BACKPACK	= 0;	// 普通物品背包
//const int	ITEMPOSITION_NONE		= 0;
const int	ITEMPOSITION_EQUIPBEGIN		= 1;
const int	ITEMPOSITION_HELMET		= 1;	// 头盔
const int	ITEMPOSITION_NECKLACE	= 2;	// 项链
const int	ITEMPOSITION_ARMOR		= 3;	// 铠甲
const int	ITEMPOSITION_WEAPONR	= 4;	// 武器
const int	ITEMPOSITION_WEAPONL	= 5;
const int	ITEMPOSITION_RINGR		= 6;
const int	ITEMPOSITION_RINGL		= 7;	// 手镯
const int	ITEMPOSITION_SHOES		= 8;	// 鞋子
const int	ITEMPOSITION_MOUNT		= 9;
const int	ITEMPOSITION_SPRITE		= 10;	// 精灵  -- add by zlong 2003-11-27 
const int	ITEMPOSITION_MANTLE		= 11;	// 披风 -- zlong 2004-02-04
const int	ITEMPOSITION_EQUIPEND		= 12;

const int	ITEMPOSITION_PACK_BEGIN				= 50;
const int	ITEMPOSITION_BACKPACK			= 50;	// 普通物品背包
const int	ITEMPOSITION_GHOSTGEM_PACK		= 51;	// 魔魂宝石背包
const int	ITEMPOSITION_EUDEMONEGG_PACK	= 52;	// 幻兽蛋背包
const int	ITEMPOSITION_EUDEMON_PACK		= 53;	// 幻兽背包
const int	ITEMPOSITION_PACK_END				= 54;
const int	ITEMPOSITION_PACK_LIMIT			= 70;

const int	ITEMPOSITION_USER_LIMIT	= 199;
const int	ITEMPOSITION_STORAGE	= 201;
const int	ITEMPOSITION_TRUNK		= 202;
const int	ITEMPOSITION_CHEST		= 203;
const int	ITEMPOSITION_PLAYERTASK	= 204;			// 佣兵任务奖品
const int	ITEMPOSITION_EUDEMON_BROODER	= 205;	// 幻兽孵化器
const int	ITEMPOSITION_EUDEMON_STORAGE	= 206;	// 幻兽存储仓库
const int	ITEMPOSITION_AUCTION_STORAGE    = 207;  // Npc拍买仓库(玩家物品)
const int   ITEMPOSITION_AUCTION_SYS_STORAGE= 208;  // Npc拍买仓库(系统物品)
const int	ITEMPOSITION_GROUND		= 254;			// 不存数据库
const int	ITEMPOSITION_NONE		= 255;			// 非法位置

//////////////////////////////////////////////////////////////////////
char	szItemTable[];
typedef	CGameData<ITEMDATA,szItemTable,szID>		CGameItemData;

//////////////////////////////////////////////////////////////////////
enum EUDEMONDATA{
	EUDEMONDATA_ID = 0,				// 幻兽ID
	EUDEMONDATA_OWNERID,			// 幻兽物品ID
	EUDEMONDATA_NAME,				// 幻兽名字
	EUDEMONDATA_RELATIONSHIP,		// 与其它幻兽关系
};

char	szEudemonTable[];
typedef		CGameData<EUDEMONDATA, szEudemonTable, szID>	CEudemonData;

//////////////////////////////////////////////////////////////////////
#include "T_SingleObjSet2.h"
#include "T_SingleMap2.h"
#include "UserTable.h"
#include "ItemAddition.h"

//////////////////////////////////////////////////////////////////////
class IDatabase;
class IRecord;
class IRecordset;
class CItemData : public CGameObj  
{
protected:
	CItemData();
	virtual ~CItemData();

public:
	bool	Create			(IRecord* pDefault, const ItemInfoStruct* pInfo, IRecord* pDefaultEudemonData, bool bInsert=true, OBJID idNew=ID_NONE);			// false: 不存数据库
	bool	Create			(IRecord* pDefault, OBJID idType, OBJID idUser, int nPosition, IRecord* pDefaultEudemonData=NULL);
	bool	Create			(OBJID idItem, IDatabase* pDb);
	bool	Create			(IRecordset* pRes, IDatabase* pDb);
	bool	DeleteRecord		();
	static bool		DeleteItemRecord	(OBJID id, IDatabase* pDb);

public: // info
	bool	GetInfo	(ItemInfoStruct* pInfo);
	bool	SaveInfo		(void);

public: // get set
	OBJID		GetID()					{ return m_pData->GetKey(); }

	int		GetInt(ITEMDATA idx);
	LPCTSTR	GetStr(ITEMDATA idx);
	void	SetInt(ITEMDATA idx, int nData, bool bUpdate = false);
	void	SetStr(ITEMDATA idx, LPCTSTR szData, int nSize, bool bUpdate = false);
protected:
	bool	IsMount()				{ return ((m_pData->GetInt(ITEMDATA_TYPE)%10000000)/100000) == ITEMSORT_MOUNT; }		// 用于GEM1和INTIMACY分类处理
	bool	IsSprite()				{ return ((m_pData->GetInt(ITEMDATA_TYPE)%10000000)/100000) == ITEMSORT_EXPEND && ((m_pData->GetInt(ITEMDATA_TYPE)%100000)/10000)*10000 == ITEMTYPE_SPRITE; }
	bool	IsEudemon()				{ return ((m_pData->GetInt(ITEMDATA_TYPE)%10000000)/100000) == ITEMSORT_EXPEND && ((m_pData->GetInt(ITEMDATA_TYPE)%100000)/10000)*10000 == ITEMTYPE_EUDEMON; }
	bool	IsEudemonEgg()			{ return ((m_pData->GetInt(ITEMDATA_TYPE)%10000000)/100000) == ITEMSORT_EXPEND && ((m_pData->GetInt(ITEMDATA_TYPE)%100000)/10000)*10000 == ITEMTYPE_EUDEMON_EGG; }

	bool	LoadEudemonData(OBJID idOwner, IDatabase* pDb);
public:
	bool	CreateEudemonData(IRecord* pDefaultData, OBJID idOwner, const char* pszName, bool bInsert=true);

protected: // data & type
	CGameItemData*		m_pData;
	CItemTypeData*		m_pType;
//	CMonsterTypeData*	m_pEudemonType;		// 幻兽类型数据引用 -- zlong 2004-02-05

	// 追加属性——允许为NULL
	CItemAdditionData*		m_pAddition;
	CEudemonData*		m_pEudemonData;		// 幻兽数据
};

#endif // !defined(AFX_ITEMDATA_H__28794933_A926_4C9A_AACF_1A95340DA94B__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -