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

📄 itemtable.cpp

📁 网络游戏龙族 完整的登陆器 C++ 源代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
#include "stdafx.h"
#include "Hangul.h"
#include "dragon.h"
#include "SmallMenuSet.h"
#include "Menu.h"
#include "SmallMenu.h"
#include "Hong_Sprite.h"
#include "stdio.h"
#include "convert565to555.h"
#include "Hong_Sub.h"
#include "tool.h"
#include "MenuSet.h"
//#include "MenuDef.h"			// 010904 LTS
#include "itemtable.h"
#include "skill.h"
#include "Effect.h"
#include "NationSys.h"
#include "gameproc.h"
#include "SymbolMgr_Client.h" // soto-1.02

CSymbolMgr_Client	g_SymBolMgr; // soto-1.02

t_ItemMutantKind ItemMutantKind[MAX_ITEM_MUTANT_KIND];
t_ItemGrade ItemGrade[MAX_ITEM_GRADE];
t_ItemRare ItemRare[MAX_ITEM_RARE];

extern bool IsEquipAbleCheckAbleDay(int start, int end);//011215 lsw
extern void	SendReCallItemFromServer( int type );
extern void DeleteItemByItemNumber( int item );
//011025 lsw >
extern DWORD g_skillmaketime;
//011025 lsw <

//extern void RectTextPut(int x, int y, int nWidth, char *sSource);
//extern struct		InterfaceFlag main_interface;

Spr		Icon1[ITEM_MAX][10];
Spr		Icon2[ITEM_MAX][10];
Spr		Icon3[ITEM_MAX][10];
Spr		Icon4[ITEM_MAX][10];
Spr		Icon5[ITEM_MAX][10];
Spr		Icon6[ITEM_MAX][10];
Spr		Icon7[ITEM_MAX][10];
Spr		Icon8[ITEM_MAX][10];
Spr		Icon9[ITEM_MAX][10];
Spr		Icon10[ITEM_MAX][10];
Spr		Icon11[ITEM_MAX][10];
Spr		Icon12[ITEM_MAX][10];
Spr		Icon13[ITEM_MAX][10];


int Num_Of_CItem_Plant		;
int Num_Of_CItem_Mineral	;
int Num_Of_CItem_Herb		;
int Num_Of_CItem_Cook		;
int Num_Of_CItem_Potion		;
int Num_Of_CItem_Tool		;
int Num_Of_CItem_Weapon		;
int Num_Of_CItem_Disposable	;
int Num_Of_CItem_Armor		;
int Num_Of_CItem_Accessory	;
int Num_Of_CItem_Etc		;

struct CItem_List Item_Ref;			// 酒捞袍
//CItem_Plant *ItemPlant ;

//void GetName(char* temp, char* name, int n=0);
bool ReadMagicIconImage( int type, int num );
bool ReadSkillIcon( int num );
int GetItemAttr(int item_id, int attr);

void CalcGuildToSkill( );	// 胶懦阑 拌凯 喊肺 盒幅

int menu_to_set[] = { 2, 1, 5, 3, 12, 9, 6, 8, 4, 7, 11 };		// 皋春 锅龋甫 酒捞袍 炼牢 抛捞喉俊 乐绰 锅龋客 老摹矫挪促.

int n_MagicBagic[2][12][15] = 
{ //< CSD-020702
	{
		{0, },
		{0, },
		{0, },
		{0, },
		{0, },
		{0, },
		{0, },
		{0, },
		{0, },
		{0, },
		{0, },
		{0, },
	},
	{
		{0, },
		{0, },
		{0, },
		{0, },
		{0, },
		{0, },
		{0, },
		{0, },
		{0, },
		{0, },
		{0, },
		{0, },
	}
};//> CSD-020702

/*###########################################################################
			酒捞袍 努饭胶 糕滚 窃荐 棺 酒捞袍 包访 窃荐 
###########################################################################*/
void GetName(char* temp, char* name, FILE *fp, int n=0)
{
	char *source;
	source = name;

	int i=0;
	int max = ITEM_NAME_MAX;

	if( n ) if( n != ITEM_NAME_MAX+9 ) max = n-9;

	while(*(temp+i))
	{
		if(*(temp+i) == '<') break;
		i++;
	}
	i++;
	while(*(temp+i))
	{
		if(*(temp+i) == '>') 
		{
			*source = '\0';
			fseek(fp, -max-7 + i, SEEK_CUR);
			return;
		}
		*source = *(temp+i);
		source++;
		i++ ;
	}
}


void SaveName( char *token )
{
	FILE *fp = Fopen( "30磊 逞绰 酒捞袍.txt", "at+" );
	if( fp )
	{
		fprintf( fp, "%s\n", token );
		fclose( fp );
	}	
}

int ReadItemTableFunction( char *text, int &Item_id, char *Name, char *Han_Name, int *item_value, int max )
{
	char *token;

	token = strtok( text, "\t\n");
	Item_id = atoi( token );

	token = strtok( NULL, "\t\n");
	EatRearWhiteChar( token );
	strcpy(Name, token); 

	token = strtok( NULL, "\t\n");
	EatRearWhiteChar( token );
	strcpy(Han_Name, token); 

	
	for(int i=0;i<max;i++)
	{
		token = strtok( NULL, "\t\n");
		*item_value = atoi( token );
		item_value++;
	}
	return 1;
}

int CItem_Plant::ReadItemTable( char *temp )
{
	int max = ITEM_Plant_MAX-3;
	return ReadItemTableFunction( temp, Item_id, Name, Han_Name, &lv, max );
}

int CItem_Mineral::ReadItemTable( char *temp )
{
	int max =ITEM_Mineral_MAX-3;
	return ReadItemTableFunction( temp, Item_id, Name, Han_Name, &lv, max );
}

int CItem_Herb::ReadItemTable( char *temp )
{
	int max =ITEM_Herb_MAX-3;
	return ReadItemTableFunction( temp, Item_id, Name, Han_Name, &lv, max );
}

int CItem_Cook::ReadItemTable( char *temp )
{
	int max =ITEM_Cook_MAX-3;
	return ReadItemTableFunction( temp, Item_id, Name, Han_Name, &lv, max );
}

int CItem_Potion::ReadItemTable( char *temp )
{
	int max =ITEM_Potion_MAX-3;
	return ReadItemTableFunction( temp, Item_id, Name, Han_Name, &lv, max );
}

int CItem_Tool::ReadItemTable( char *temp )
{
	int max =ITEM_Tool_MAX-3;
	return ReadItemTableFunction( temp, Item_id, Name, Han_Name, &lv, max );
}

int CItem_Weapon::ReadItemTable( char *temp )
{
	int max =ITEM_Weapon_MAX-3;
	return ReadItemTableFunction( temp, Item_id, Name, Han_Name, &lv, max );
}

int CItem_Disposable::ReadItemTable( char *temp )
{
	int max =ITEM_Disposable_MAX-3;
	return ReadItemTableFunction( temp, Item_id, Name, Han_Name, &lv, max );
}

int CItem_Armor::ReadItemTable( char *temp )
{
	int max =ITEM_Armor_MAX-3;
	return ReadItemTableFunction( temp, Item_id, Name, Han_Name, &lv, max );
}

int CItem_Accessory::ReadItemTable( char *temp )
{
	int max =ITEM_Accessory_MAX-3;
	return ReadItemTableFunction( temp, Item_id, Name, Han_Name, &lv, max );
}

int CItem_Etc::ReadItemTable( char *temp )
{
	int max =ITEM_Etc_MAX-3;
	return ReadItemTableFunction( temp, Item_id, Name, Han_Name, &lv, max );
}



CItem_Plant			*Plant = NULL;
CItem_Mineral		*Mineral= NULL;
CItem_Herb			*Herb= NULL;
CItem_Cook			*Cook= NULL;
CItem_Potion		*Potion= NULL;
CItem_Tool			*Tool= NULL;
CItem_Weapon		*Weapon= NULL;
CItem_Disposable	*Disposable= NULL;
CItem_Armor			*Armor= NULL;
CItem_Accessory		*Accessory= NULL;
CItem_Etc			*Etc= NULL;

//############################ 酒捞袍 肺靛 ##############################
extern int YesOrNo( char *s, char *title );
extern BOOL  ShowErrorMessage( char* lpszMessage );


void FreeItemTable()
{
	SAFE_DELETE_ARRAY(Plant);
	SAFE_DELETE_ARRAY(Mineral);
	SAFE_DELETE_ARRAY(Herb);
	SAFE_DELETE_ARRAY(Cook);
	SAFE_DELETE_ARRAY(Potion);
	SAFE_DELETE_ARRAY(Tool);
	SAFE_DELETE_ARRAY(Weapon);
	SAFE_DELETE_ARRAY(Disposable);
	SAFE_DELETE_ARRAY(Armor);
	SAFE_DELETE_ARRAY(Accessory);
	SAFE_DELETE_ARRAY(Etc);
}


/////////////////////////////////////////////
// 酒捞袍 抛捞喉(bin) 佬绢坷绰 漂喊茄 版快
int GetLineItemByItemTableBin( char *filename )
{
	int line = 0;
	FILE *fp;

	if(fp=Fopen( filename, "rb" ) )
	{
		fread( &line,sizeof(int ), 1,fp);		
		fclose( fp );
	}

	return line;
}


void ItemRead()
{
	char *line_count_file_name_txt;
	char *line_count_file_name_bin;
	
	line_count_file_name_txt = "./itemtable/itemtable0.txt";
	line_count_file_name_bin = "./itemtable/itemtable0.bin";

#ifdef _DEBUG
		Num_Of_CItem_Plant		= GetTextLine( line_count_file_name_txt );
		if( !Num_Of_CItem_Plant)
#endif
			Num_Of_CItem_Plant = GetLineItemByItemTableBin( line_count_file_name_bin );

	line_count_file_name_txt = "./itemtable/itemtable1.txt";
	line_count_file_name_bin = "./itemtable/itemtable1.bin";
#ifdef _DEBUG
	Num_Of_CItem_Mineral	 = GetTextLine( line_count_file_name_txt );
	if( !Num_Of_CItem_Mineral )
#endif
		Num_Of_CItem_Mineral = GetLineItemByItemTableBin( line_count_file_name_bin );

	line_count_file_name_txt = "./itemtable/itemtable2.txt";
	line_count_file_name_bin = "./itemtable/itemtable2.bin";
#ifdef _DEBUG
	Num_Of_CItem_Herb		 = GetTextLine( line_count_file_name_txt );
	if( !Num_Of_CItem_Herb)
#endif
		Num_Of_CItem_Herb = GetLineItemByItemTableBin( line_count_file_name_bin );

	line_count_file_name_txt = "./itemtable/itemtable3.txt";
	line_count_file_name_bin = "./itemtable/itemtable3.bin";
#ifdef _DEBUG
	Num_Of_CItem_Cook		 = GetTextLine( line_count_file_name_txt );
	if( !Num_Of_CItem_Cook )
#endif
		Num_Of_CItem_Cook = GetLineItemByItemTableBin( line_count_file_name_bin );


	line_count_file_name_txt = "./itemtable/itemtable4.txt";
	line_count_file_name_bin = "./itemtable/itemtable4.bin";
#ifdef _DEBUG
	Num_Of_CItem_Potion		 = GetTextLine( line_count_file_name_txt );
	if( !Num_Of_CItem_Potion )
#endif
		Num_Of_CItem_Potion = GetLineItemByItemTableBin( line_count_file_name_bin );


	line_count_file_name_txt = "./itemtable/itemtable5.txt";
	line_count_file_name_bin = "./itemtable/itemtable5.bin";
#ifdef _DEBUG
	Num_Of_CItem_Tool		 = GetTextLine( line_count_file_name_txt );
	if( !Num_Of_CItem_Tool )
#endif
		Num_Of_CItem_Tool = GetLineItemByItemTableBin( line_count_file_name_bin );

	line_count_file_name_txt = "./itemtable/itemtable6.txt";
	line_count_file_name_bin = "./itemtable/itemtable6.bin";
#ifdef _DEBUG
	Num_Of_CItem_Weapon		 = GetTextLine( line_count_file_name_txt );
	if( !Num_Of_CItem_Weapon )
#endif
		Num_Of_CItem_Weapon = GetLineItemByItemTableBin( line_count_file_name_bin );

	line_count_file_name_txt = "./itemtable/itemtable7.txt";
	line_count_file_name_bin = "./itemtable/itemtable7.bin";
#ifdef _DEBUG
	Num_Of_CItem_Disposable	 = GetTextLine( line_count_file_name_txt );
	if( !Num_Of_CItem_Disposable )
#endif	
		Num_Of_CItem_Disposable = GetLineItemByItemTableBin( line_count_file_name_bin );

	line_count_file_name_txt = "./itemtable/itemtable8.txt";
	line_count_file_name_bin = "./itemtable/itemtable8.bin";
#ifdef _DEBUG
	Num_Of_CItem_Armor		 = GetTextLine( line_count_file_name_txt );
	if( !Num_Of_CItem_Armor )
#endif
		Num_Of_CItem_Armor = GetLineItemByItemTableBin( line_count_file_name_bin );

	line_count_file_name_txt = "./itemtable/itemtable9.txt";
	line_count_file_name_bin = "./itemtable/itemtable9.bin";
#ifdef _DEBUG
	Num_Of_CItem_Accessory	 = GetTextLine( line_count_file_name_txt );
	if( !Num_Of_CItem_Accessory )
#endif
		Num_Of_CItem_Accessory = GetLineItemByItemTableBin( line_count_file_name_bin );

	line_count_file_name_txt = "./itemtable/itemtable10.txt";
	line_count_file_name_bin = "./itemtable/itemtable10.bin";
#ifdef _DEBUG
	Num_Of_CItem_Etc		 = GetTextLine( line_count_file_name_txt );
	if( !Num_Of_CItem_Etc )
#endif
		Num_Of_CItem_Etc = GetLineItemByItemTableBin( line_count_file_name_bin );


	if( !Num_Of_CItem_Plant || !Num_Of_CItem_Mineral || !Num_Of_CItem_Herb || !Num_Of_CItem_Cook 
		|| !Num_Of_CItem_Potion || !Num_Of_CItem_Tool || !Num_Of_CItem_Weapon || !Num_Of_CItem_Disposable	 
		|| !Num_Of_CItem_Armor || !Num_Of_CItem_Accessory || !Num_Of_CItem_Etc ) 
	{
		JustMsg( lan->OutputMessage(6,20) );//010215 lsw
		return;
	}


	Plant = new CItem_Plant[Num_Of_CItem_Plant];
	Dbg_Assert(Plant != NULL);
	Mineral	= new CItem_Mineral[Num_Of_CItem_Mineral];
	Dbg_Assert(Mineral != NULL);
	Herb = new CItem_Herb[Num_Of_CItem_Herb];
	Dbg_Assert(Herb != NULL);
	Cook = new CItem_Cook[Num_Of_CItem_Cook];
	Dbg_Assert(Cook != NULL);
	Potion = new CItem_Potion[Num_Of_CItem_Potion];
	Dbg_Assert(Potion != NULL);
	Tool = new CItem_Tool[Num_Of_CItem_Tool];
	Dbg_Assert(Tool != NULL);
	Weapon = new CItem_Weapon[Num_Of_CItem_Weapon];
	Dbg_Assert(Weapon != NULL);
	Disposable = new CItem_Disposable[Num_Of_CItem_Disposable];
	Dbg_Assert(Disposable != NULL);
	Armor = new CItem_Armor[Num_Of_CItem_Armor];
	Dbg_Assert(Armor != NULL);
	Accessory = new CItem_Accessory[Num_Of_CItem_Accessory];
	Dbg_Assert(Accessory != NULL);
	Etc = new CItem_Etc[Num_Of_CItem_Etc];
	Dbg_Assert(Etc != NULL);

	CItem_Plant* plant = new CItem_Plant[Num_Of_CItem_Plant];
	Dbg_Assert(plant != NULL);
	CItem_Mineral* mineral = new CItem_Mineral[	Num_Of_CItem_Mineral];
	Dbg_Assert(mineral != NULL);
	CItem_Herb* herb = new CItem_Herb[Num_Of_CItem_Herb];
	Dbg_Assert(herb != NULL);
	CItem_Cook* cook = new CItem_Cook[Num_Of_CItem_Cook];
	Dbg_Assert(cook != NULL);
	CItem_Potion* potion = new CItem_Potion[Num_Of_CItem_Potion];
	Dbg_Assert(potion != NULL);
	CItem_Tool* tool = new CItem_Tool[Num_Of_CItem_Tool];
	Dbg_Assert(tool != NULL);
	CItem_Weapon* weapon = new CItem_Weapon[Num_Of_CItem_Weapon];
	Dbg_Assert(weapon != NULL);
	CItem_Disposable* disposable = new CItem_Disposable[Num_Of_CItem_Disposable];
	Dbg_Assert(disposable != NULL);
	CItem_Armor* armor = new CItem_Armor[Num_Of_CItem_Armor];
	Dbg_Assert(armor != NULL);
	CItem_Accessory* accessory	= new CItem_Accessory[Num_Of_CItem_Accessory];
	Dbg_Assert(accessory != NULL);
	CItem_Etc* etc = new CItem_Etc[Num_Of_CItem_Etc];
	Dbg_Assert(etc != NULL);

	// set the number of items
	Item_Ref.nItem[0] = Num_Of_CItem_Plant;
	Item_Ref.nItem[1] = Num_Of_CItem_Mineral;
	Item_Ref.nItem[2] = Num_Of_CItem_Herb;
	Item_Ref.nItem[3] = Num_Of_CItem_Cook;
	Item_Ref.nItem[4] = Num_Of_CItem_Potion;
	Item_Ref.nItem[5] = Num_Of_CItem_Tool;
	Item_Ref.nItem[6] = Num_Of_CItem_Weapon;
	Item_Ref.nItem[7] = Num_Of_CItem_Disposable;
	Item_Ref.nItem[8] = Num_Of_CItem_Armor;
	Item_Ref.nItem[9] = Num_Of_CItem_Accessory;
	Item_Ref.nItem[10] = Num_Of_CItem_Etc;

	int z = 0;

	for (z = 0; z < Num_Of_CItem_Plant; ++z)
	{
		Item_Ref.Item_type[0][z] = &plant[z];
	}

	for (z = 0; z < Num_Of_CItem_Mineral; ++z)
	{
		Item_Ref.Item_type[1][z] = &mineral[z];
	}

	for (z = 0; z < Num_Of_CItem_Herb; ++z)

⌨️ 快捷键说明

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