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

📄 citem.h

📁 国内著名网络游戏dragon的服务端完整源码 内附完整数据库结构
💻 H
📖 第 1 页 / 共 3 页
字号:
#include "stdafx.h"
#ifndef _DRAGON_PROTOCOL_
#include "network.h"
#endif
	
#ifndef CItem_Class
#define CItem_Class


#include "kein_item.h"


#define		ITEM_NAME_MAX		31

///////////////////////////////////////
#define HAND		0
#define INV			1
#define EQUIP		2
#define QUICK		3
#define BANK		4
#define BOX			5
#define MAKE		6
#define OTHER_CH	7

#define CHARACTER	124
#define GROUND		125
#define USE			126


#define CC_NORMAL 0

#define OK		1
#define NOT		0	


////////////////////////////////////////////
// 公扁 厘馒 (equip) 
#define WT_WEAPON					0
#define WT_SHIELD					1
#define WT_HELMET					2
#define WT_ARMOR					3
#define WT_NECK						4
#define WT_SHOES					5
#define WT_UNIQUE1					6
#define WT_UNIQUE2					7
#define WT_POTION					8


enum WearTypeGroup
{
	WEAR_ANYTHING				=0,
	WEAR_ONLY_INVEN				=1,
	WEAR_RIGHT_HAND				=2,
	WEAR_LEFT_HAND				=3,
	WEAR_HEAD					=4,
	WEAR_BODY					=5,
	WEAR_NECK					=6,
	WEAR_SHOES					=7,
	WEAR_UNIQUE					=8,
	WEAR_BELT					=9,
	WEAR_TWO_HAND				=10
};


//////////////////////////////////////////////
#define	PLANT			0
#define	MINERAL			1
#define	HERB			2
#define	COOK			3 
#define	POTION			4
#define	TOOL			5
#define	WEAPON			6
#define	DISPOSABLE		7
#define	ARMOR			8
#define	ACCESSORY		9
#define	ETC				10	//扁鸥 拱前

#define OBJECTITEM		13

enum IA2_TYPE
{
	IA2_HIDE			= 0x00000001,
	IA2_NOTMOVE			= 0x00000002,
	IA2_POISONED		= 0x00000004,
	IA2_OPENED			= 0x00000008,
	IA2_BROKEN			= 0x00000010,
	IA2_HOUSE			= 0x00000020,
	IA2_MAGICED			= 0x00000040,
	IA2_CANNOTUSE		= 0x00000080,
	IA2_NOIDENTIFIED	= 0x00000100,
	IA2_DOOR			= 0x00000200,
	IA2_BOX				= 0x00000400,
	IA2_CHAIR			= 0x00000800,
	IA2_TABLE			= 0x00001000,
	IA2_FARM0			= 0x00002000,
	IA2_FARM1			= 0x00004000,
	IA2_FARM2			= 0x00008000,
	IA2_FARM3			= 0x00010000,
	IA2_FARM4			= 0x00020000,
	IA2_FARM5			= 0x00040000,
	IA2_FARM6			= 0x00080000,
	IA2_FARM7			= 0x00100000,
	IA2_FIRE			= 0x00200000,
	IA2_TRAPED0			= 0x00400000,
	IA2_TRAPED1			= 0x00800000,
	IA2_TRAPED2			= 0x01000000,
//	IA2_FIRST_ITEM		= 0x02000000,
	IA2_SEAL_NOR		= 0x04000000,
	IA2_SEAL_SPC		= 0x08000000,
	IA2_COLOSSUS_STONE	= 0x10000000,
	IA2_SCENARIO_POTAL	= 0x20000000,
};






// 酒捞袍 Type捞 13捞惑牢 版快 秦寸
#define ITEMTYPE_NORMAL		0
#define ITEMTYPE_CHAIR		1
#define ITEMTYPE_TABLE		2
#define ITEMTYPE_DOOR		3
#define ITEMTYPE_BOX		4



#define Num_Of_Item_Type		11
#define MAX_ITEM_NUM			1000

#define Num_Of_CItem_Plant		14
#define Num_Of_CItem_Mineral	12
#define Num_Of_CItem_Herb		20
#define Num_Of_CItem_Cook		27
#define Num_Of_CItem_Potion		6
#define Num_Of_CItem_Tool		27
#define Num_Of_CItem_Weapon		50
#define Num_Of_CItem_Disposable	19
#define Num_Of_CItem_Armor		40
#define Num_Of_CItem_Accessory	18
#define Num_Of_CItem_Etc		47


//########### 坷弗率 付快胶 滚瓢 努腐饶 角青窍绰 辆幅 沥狼 ###########
#define		USE_ITEM			1		// 家厚登绢 荤扼柳促.
#define		DIVIDE_ITEM			3		// 酒捞袍狼 肮荐甫 盒府茄促.
#define		REMAIN_ITEM			4		// 后捍 贸府
#define		MAGIC_BOOK_ITEM		5		// 付过氓捞 夺促
#define		DIARY_ITEM			6		// 老扁氓捞 夺促.
#define		BOX_ITEM			7		// 冠胶啊 凯赴促.

//////////////////////////////////////////////////////////////////////////////////////////////
// 酒捞袍 kind
#define		IK_NONE				0	//	non					
#define		IK_GON				1	//	帮			
#define		IK_PENCING			2	//	奇教八		
#define		IK_ONE_SWORD		3	//	茄颊八
#define		IK_ONE_AXE			4	//	茄颊档尝
#define		IK_ONE_MACE			5	//	茄颊枚硼
#define		IK_CLUB				6	//	根嫡捞
#define		IK_WHIRL			7	//	豪
#define		IK_STAFE			8	//	瘤莆捞
#define		IK_SPEAR			9	//	焊烹芒
#define		IK_FORK				10	//	器农
#define		IK_HURL				11	//	厚八,带瘤绰公扁
#define		IK_SHORT_BOW		12	//	家屈劝
#define		IK_TWO_SWORD		13	//	剧颊八
#define		IK_TWO_AXE			14	//	剧颊档尝
#define		IK_TWO_MACE			15	//	剧颊 枚硼
#define		IK_TWO_ARROW		16	//	拳混
#define		IK_IRON_ARMOR		17	//	艰癌渴
#define		IK_LEATHER_ARMOR	18	//	啊磷癌渴
#define		IK_RING				19	//	馆瘤
#define		IK_SHIELD			20	//	规菩
#define		IK_SHOES			21	//	脚惯
#define		IK_ROBE				22	//	肺宏
#define		IK_FULL_HELMET		23	//	敲秋镐
#define		IK_HALF_HELMET		24	//	窍橇秋镐
#define		IK_NORMAL_CLOTHE	25	//	焊烹渴
#define		IK_AMULET			26	//	格芭府
#define		IK_ARMLET			27	//	迫骂
#define		IK_MUSIC			28	//	厩扁
#define		IK_SCROLL			29	//	胶农费
#define		IK_LONG_BOW			30	//	措屈劝
#define		IK_BOX				31	//	惑磊
#define		IK_GRAIN			32	//	邦侥
#define		IK_POTION			33	//	器记
#define		IK_FOOD_MASS		34	//	耽绢府 澜侥
#define		IK_PLATE_FOOD		35	//	里馆 澜侥
#define		IK_DRINK			36	//	澜丰
#define		IK_ARROW_POINT		37	//	拳混 盟
#define		IK_FEATHER			38	//	标判		
#define		IK_SEED				39	//  揪狙.
#define		IK_MONEY			40	//	捣
#define		IK_MINERAL			41	//	堡籍
#define		IK_MINERAL_LUMP		42	//	啊傍茄 堡籍( 枚鲍, 陛鲍... )

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


class CItem
{
public:
	//int Item_id ;
	int m_Much;			//1214
	int ThisMapValue;
	int cur_value;

protected :	
	
	// 31
public:
	virtual int getAllData(void) { printf("\nCITEM") ; return 1 ; }
	virtual void print_data(void) { printf("\nCITEM_PRINT_DATA") ; }
	virtual int is_equipable(int a, t_chr_status_info *b, POS c, POS d) { return 0 ; }
	virtual int unequip(int a, t_chr_status_info *b, POS c, POS d) { return 0 ; }
	virtual int use(int a, t_chr_status_info *b, POS c, POS d) { return 0 ; }
	virtual int GetValue() { return 0 ; }
	virtual int GetDuration() { return 10; }			// 0414 YGI
	virtual int GetCirculation() { return 1;}

	virtual int UseItem( CHARLIST *ch) 	{ return 0;	}
	virtual int EatItem( CHARLIST *ch) 	{ return 0;	}
	virtual int GetUseJunk()			{ return 0; }
	virtual int GetRbutton()			{ return 0; }
	virtual int GetItemDuration()		{ return 1; }
	virtual int GetItemKind()			{ return 0; }
	virtual int GetKindOfMagic()		{ return 0; }
	virtual int GetIncrDamage()			{ return 0; }

	virtual int GetLevel()				{ return 0; }
	virtual int EquipItem(CHARLIST *ch) { return 0; }		//1214 YGI
	virtual int CurrEquip(CHARLIST *ch ){ return 0; }		// 0206 YGI
	virtual int ReleaseItem(CHARLIST *ch ){ return 0; }		// 0206 YGI
	virtual int GetWearAble()			{ return 0; }

	// 1221 KHS
	virtual int Getbody() { return  0; }
	virtual int Getarms() { return  0; }
	virtual int Gethead() { return  0; }
	virtual int Getleg () { return  0; }
	virtual int Getneck() { return  0; }
	virtual int Gethand() { return  0; }
	virtual int GetDamage		() { return  0; }
	virtual int GetHit_rate		() { return  0; }
	virtual int GetDefense_rate	() { return  0; }
	virtual int GetAR_or_DH		() { return  0; }
	virtual int GetDefense_power() { return  0; }

	virtual int GetSkill_Ability(){ return  0; }
	virtual int GetRepairAble() { return 0; }

	virtual int Getrange() { return 0; }
	virtual int GetWeight() { return 0; }
	virtual int GetItemShow( int is_man ) { return 0; }

	virtual int GetItemImage() { return 0; }
	virtual char *GetHanName() { return NULL; }
	virtual int GetChange_health_max() { return 0; }
	virtual int GetObjectNumber() { return 0; }
	virtual int Getmouse_MRD(){ return 0;}

};





class CItem_Plant :	public CItem
{
//protected:			
public:
	int Item_id   ;
	char Name[ITEM_NAME_MAX] ;
	char Han_Name[ITEM_NAME_MAX] ;
	int lv   ;
	int Image_Number   ;
	int hp   ;
	int ap   ;
	int mp   ;
	int nutrition1   ;
	int nutrition2   ;
	int nutrition3   ;
	int anti_poison   ;
	int anti_paralysis   ;
	int anti_magic   ;
	int anti_fire   ;
	int anti_ice   ;
	int anti_electric   ;
	int Time_maintain   ;
	int cure_disease1   ;
	int cure_disease2   ;
	int cure_disease3   ;
	int cure_disease4   ;
	int cure_disease5   ;
	int take_disease1   ;
	int take_disease2   ;
	int take_disease3   ;
	int take_disease4   ;
	int take_disease5   ;
	int weight   ;
	int circulation_limit   ;
	int max_duration   ;
	int Maximum   ;
	int object   ;
	int wear_able   ;
	int base_value   ;
	int base_store   ;
	int store_const   ;
	int store_plus_const   ;
	int Mouse_MR;
	int Mouse_MRD;
	int Mouse_MR_Effect;
	int Mouse_Mr_Wave;
	int	Item_kind;



public:
	virtual int getAllData(void) ;
	virtual void print_data(void) {
		printf("\n%d %s %s %d", Item_id, Name, Han_Name, lv) ;
	}
	virtual int use(int a, t_chr_status_info *b, POS c, POS d) ;

	virtual int GetValue() 
	{
							int value;
							value =  base_value -( m_Much * store_const / 100000);
							return value; 
	}
	virtual int GetDuration() { return max_duration; }
	virtual int GetCirculation() { return circulation_limit;}
	virtual int EatItem( CHARLIST *ch);
	virtual int GetRbutton() { return Mouse_MR; }
	virtual int GetItemKind() { return Item_kind; }
	virtual int GetLevel() { return lv; }
	virtual int GetWearAble() { return wear_able; }
	virtual int GetWeight() { return weight; }
	virtual int GetItemImage() { return Image_Number; }

	virtual char *GetHanName() { return Han_Name; }
//	virtual int GetChange_health_max() { return Change_health_max; }
	virtual int GetObjectNumber() { return object; }
	virtual int Getmouse_MRD(){ return Mouse_MRD;}


};






class CItem_Mineral : public CItem
{
//protected :
public :
	int Item_id   ;
	char Name[ITEM_NAME_MAX] ;
	char Han_Name[ITEM_NAME_MAX]  ;
	int lv   ;
	int Image_Number   ;
	int weight   ;
	int object   ;
	int wear_able   ;
	int base_value   ;
	int base_store   ;
	int store_const   ;
	int store_plus_const   ;
	int Mouse_MR;
	int Mouse_MRD;
	int Mouse_MR_Effect;
	int Mouse_Mr_Wave;
	int Item_kind;



public:
	virtual int getAllData(void) ;
	virtual void print_data(void) {
		printf("\n%d %s %s %d", Item_id, Name, Han_Name, lv) ;
	}
	virtual int use(int a, t_chr_status_info *b, POS c, POS d) ;
	virtual int GetValue() 
	{
							int value;
							value =  base_value -( m_Much * store_const / 100000);
							return value; 
	}
	virtual int GetRbutton() { return Mouse_MR; }

	virtual int GetItemKind() { return Item_kind; }
	virtual int GetLevel() { return lv; }
	virtual int GetWearAble() { return wear_able; }
	virtual int GetWeight() { return weight; }
	virtual int GetItemImage() { return Image_Number; }
	virtual char *GetHanName() { return Han_Name; }
////	virtual int GetChange_health_max() { return Change_health_max; } // 0129 KHS
	virtual int GetObjectNumber() { return object; }
	virtual int Getmouse_MRD(){ return Mouse_MRD;}

};










class CItem_Herb : public CItem
{
//protected :
public :
	int Item_id   ;
	char Name[ITEM_NAME_MAX]  ;
	char Han_Name[ITEM_NAME_MAX]  ;
	int lv   ;
	int Image_Number   ;
	int hp   ;
	int ap   ;
	int mp   ;
	int nutrition1   ;
	int nutrition2   ;
	int nutrition3   ;
	int anti_poison   ;
	int anti_paralysis   ;
	int anti_magic   ;
	int anti_fire   ;
	int anti_ice   ;
	int anti_electric   ;
	int Time_maintain   ;
	int cure_disease1   ;
	int cure_disease2   ;
	int cure_disease3   ;
	int cure_disease4   ;
	int cure_disease5   ;
	int cure_disease6   ;
	int take_disease1   ;
	int take_disease2   ;
	int take_disease3   ;
	int take_disease4   ;
	int take_disease5   ;
	int take_disease6   ;
	int Change_str   ;
	int Change_dex   ;
	int Change_con   ;
	int Change_wis   ;
	int Change_int   ;
	int Change_cha   ;
	int Change_Movp   ;
	int Change_end   ;
	int Change_mor   ;
	int Change_luc   ;
	int Change_WS   ;
	int Change_PS   ;
	int Time_maintain2   ;
	int Cure_poison   ;
	int Cure_stone_paralysis   ;
	int Cure_Mad   ;
	int Cure_sluggish   ;
	int Cure_Active   ;
	int ChangeNatural2   ;
	int Time_maintain3   ;
	int weight   ;
	int circulation_limit   ;
	int object   ;
	int wear_able   ;
	int base_value   ;
	int base_store   ;
	int store_const   ;
	int store_plus_const   ;
	int Mouse_MR;
	int Mouse_MRD;
	int Mouse_MR_Effect;
	int Mouse_Mr_Wave;
	int Item_kind;




public:
	virtual int getAllData(void) ;
 
	virtual void print_data(void) {
		printf("\n%d %s %s %d", Item_id, Name, Han_Name, lv) ;
	}
	virtual int use(int a, t_chr_status_info *b, POS c, POS d) ;
	virtual int GetValue() 
	{
							int value;
							value =  base_value -( m_Much * store_const / 100000);
							return value; 
	}
	virtual int UseItem( CHARLIST *ch);
	virtual int EatItem( CHARLIST *ch);
	virtual int GetCirculation() { return circulation_limit;}
	virtual int GetRbutton() { return Mouse_MR; }

	virtual int GetItemKind() { return Item_kind; }
	virtual int GetLevel() { return lv; }
	virtual int GetWearAble() { return wear_able; }
	virtual int GetWeight() { return weight; }
	virtual int GetItemImage() { return Image_Number; }
	virtual char *GetHanName() { return Han_Name; }
//	virtual int GetChange_health_max() { return Change_health_max; }
	virtual int GetObjectNumber() { return object; }
	virtual int Getmouse_MRD(){ return Mouse_MRD;}

};
class CItem_Cook : public CItem
{
//protected :
public :
	int Item_id   ;
	char Name[ITEM_NAME_MAX]  ;
	char Han_Name[ITEM_NAME_MAX]  ;
	int lv   ;
	int Image_Number   ;
	int hp   ;
	int ap   ;
	int mp   ;
	int nutrition1   ;
	int nutrition2   ;
	int nutrition3   ;
	int anti_poison   ;
	int anti_paralysis   ;
	int anti_magic   ;
	int anti_fire   ;
	int anti_ice   ;
	int anti_electric   ;
	int Time_maintain   ;
	int cure_disease1   ;
	int cure_disease2   ;
	int cure_disease3   ;
	int cure_disease4   ;
	int cure_disease5   ;
	int cure_disease6   ;
	int take_disease1   ;
	int take_disease2   ;
	int take_disease3   ;
	int take_disease4   ;
	int take_disease5   ;
	int take_disease6   ;
	int Change_str   ;
	int Change_dex   ;
	int Change_con   ;
	int Change_wis   ;
	int Change_int   ;
	int Change_cha   ;
	int Change_end   ;
	int Change_Movp   ;
	int Change_mor   ;
	int Change_luc   ;
	int Change_WS   ;
	int Change_Ps   ;
	int Time_maintain2;
	int weight   ;
	int circulation_limit   ;
	int object   ;
	int wear_able   ;
	int base_value   ;
	int base_store   ;
	int store_const   ;
	int store_plus_const   ;
	int Mouse_MR;
	int Mouse_MRD;
	int Mouse_MR_Effect;
	int Mouse_Mr_Wave;
	int Use_Junk;
	int Item_kind;



public:
	virtual int getAllData(void) ;
	virtual void print_data(void) {
		printf("\n%d %s %s %d", Item_id, Name, Han_Name, lv) ;
	}
	virtual int use(int A, t_chr_status_info *B, POS C, POS D) ;
	virtual int GetValue() 
	{
							int value;
							value =  base_value -( m_Much * store_const / 100000);
							return value; 
	}

⌨️ 快捷键说明

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