?? itemtable.cpp
字號:
#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)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -