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

📄 menuset.cpp

📁 网络游戏龙族 完整的登陆器 C++ 源代码
💻 CPP
📖 第 1 页 / 共 4 页
字号:
#include "stdafx.h"
//#include "MenuDef.h"
#include "Itemtable.h"
#include "Menu.h"
#include "menuset.h"
#include "hong_sub.h"
#include "dragon.h"
#include "menudef2.h"
#include "smallmenuset.h"


extern void MenuSet2();//020515 lsw
extern void MenuSet3();	// 021020 kyo

extern char* EatRearWhiteChar( char* pStr );
extern SMENU SMenu[MAX_MENU];
extern SHN SHideNomal[MAX_SHN][MAX_SHN_FIELD];

extern void SetRect(RECT &rect,int left, int top, int right, int bottom);    //皋春 备己夸家狼 面倒眉农 rect屈俊 蔼 措涝




////////////////////////////////////////////////////////////////////////////////////////////
CMenuImageMgr *g_MenuImageMgr = NULL;
int LoadMenuImage()
{
	char *filename = "./data/menu_image.txt";
	
	FILE *fp = Fopen( filename, "rt" );
	if( fp )
	{
		char temp[512];
		int index, image_max;
		char file_name[40];
		int max_index = 0;
		CMenuImageLink link;
		while( fgets( temp, 512, fp ) )
		{
			if( CheckContinueLine( temp[0] ) ) continue;
			char *token;
			token = strtok( temp, "\t\n" );
			if( !token ) continue;
			index = atoi( token );
			if( index > max_index ) max_index = index;		// 10000 捞惑捞绢具 茄促.
			
			token = strtok( NULL, "\t\n" );
			image_max = atoi( token );
			token = strtok( NULL, "\t\n" );
			strcpy( file_name, token );
			link.InputData( index, image_max, file_name );
		}
		SAFE_DELETE(g_MenuImageMgr);
		
		if( image_max )
		{
			g_MenuImageMgr = new CMenuImageMgr( max_index-10000+1 );
			
			CMenuImageLink *find;
			link.SetFind();
			while( find = link.Next() )
			{
				g_MenuImageMgr->InsetData( find->GetParam(), find->GetDataPoint() );
			}
		}
		
		fclose( fp );
		return 1;
	}
	else
	{
		JustMsg( "Error! Not Found 'menu_image.txt'");
		return 0;
	}
}
////////////////////////////////////////////////////////////////////////////////////////////
// CMenuImage

int CMenuImage::clear()
{
	if (buf) 
	{
		FreeOpenningSpr(&buf);
		buf = NULL;
	}
	
	if (spr) 
	{
		delete [] spr;
		spr = NULL;
	}
	
	return 1;
}

// 020701 YGI
int CMenuImage::LoadMenuSpr()
{
	LoadOpenningSpr( file_name, &buf, spr, image_max );					// 捧钎
	return 1;
}
// 020701 YGI
Spr *CMenuImage::GetSpr( int img_number )
{
	if( img_number > image_max ) return NULL;
	if( !buf ) LoadMenuSpr();
	return &spr[img_number];
}

////////////////////////////////////////////////////////////////////////////////////////////
int CGuildMemberName::SetCount( int degree, int count, k_get_guild_memeber_list_name *data )
{
	if( m_degree[degree].m_iTotal ) m_degree[degree].clear();
	m_degree[degree].m_iTotal = count;
	if( count )
	{
		m_degree[degree].m_lpszName = new string[count];
		m_degree[degree].m_bpIsConnect = new int[count];
		int code = Hero->GetGuildCode(); // CSD-030324
		for( int i=0; i<count; i++ )
		{
			m_degree[degree].m_lpszName[i] = data[i].name;
			m_degree[degree].m_bpIsConnect[i] = data[i].is_connect;
			if( IsSubMaster( code, data[i].name ) )
			{
				m_nSubMasterNumber_degree = degree;
				m_nSubMasterNumber = i;
			}
		}
	}
	return 1;
}
////////////////////////////////////////////////////////////////////////////////////////////
DWORD GetNationMoney( int nation )
{
	if( !g_Menu_Variable.m_stNationMoney ) return 0;
	
	switch( nation )
	{
	case N_VYSEUS	:	return g_Menu_Variable.m_stNationMoney->money3;
	case N_ZYPERN	: 	return g_Menu_Variable.m_stNationMoney->money4;
	case N_YILSE	:	return g_Menu_Variable.m_stNationMoney->money6;
	}
	return 0;
}

// 林籍 贸府
bool CheckContinueLine( char check )
{
	if( check == 0 || check == ' ' || check == ';' || check == '#' || check == '\n' ) return true;
	return false;
}

///////////////////////////////////////////////////////////////////
// 器呕 皋春
int CPotalMenu::LoadPotalMap( int nation )
{
	int nation_temp;
	int map_number;
	int money, x, y, type, img_type, level;

	char map_name[50] = {0,};
	
	FILE *fp = Fopen( "./data/map_potal.txt","rt" );
	if( !fp ) return 0;
	
	char temp[2048];
	while( fgets( temp, 2048, fp) )
	{
		if( ::CheckContinueLine( temp[0] ) ) continue;
		char *token = strtok( temp, "\t\n" );
		if( !token ) continue;
		map_number = atoi( token );
		
		token = strtok( NULL, "\t\n" );
		strcpy( map_name, token );
		
		token = strtok( NULL, "\t\n" );
		nation_temp = atoi( token );
		
		token = strtok( NULL, "\t\n" );
		money = atoi( token );
		
		token = strtok( NULL, "\t\n" );
		x = atoi( token );
		
		token = strtok( NULL, "\t\n" );
		y = atoi( token );
		
		token = strtok( NULL, "\t\n" );
		type = atoi( token );
		
		token = strtok( NULL, "\t\n" );
		img_type = atoi( token );
		
		token = strtok( NULL, "\t\n" );
		level = atoi( token );
		
		fgets( temp, 2048, fp);
		
		if( nation_temp == nation )
		{
			m_Map[m_Count].map_number = map_number;
			m_Map[m_Count].money = money;
			m_Map[m_Count].type = type;
			m_Map[m_Count].img_type = img_type;
			m_Map[m_Count].level = level;
			strcpy( m_Map[m_Count].map_name, map_name );
			int len = strlen( temp );
			if( len )
			{
				SetExplain( m_Count, temp, len );
			}
			m_Count++;
		}
	}
	fclose( fp );
	return 1;
}	

///////////////////////////////////////////////////////////////////
// 模备 矫胶袍 努饭胶
int CFriendGrup::SetFriendName( int cn, char *name )
{
	strcpy( m_Friend[cn].name, name);
	return 1;
}
int CFriendGrup::SetFriendLogin( int cn, int login )
{
	m_Friend[cn].m_bLogin = login;
	return 1;
}
char *CFriendGrup::GetFriend( int cn, int &login )
{
	login = m_Friend[cn].m_bLogin;
	return m_Friend[cn].name;
}
int CFriendGrup::InsertFriend( char *name, int login )
{
	int cn = -1;
	for( int i=0; i<MAX_FRIEND_GROUP; i++ )
	{
		if( !m_Friend[i].name[0] )
		{
			if( cn == -1 ) cn = i;
			continue;
		}
		if( strcmp( m_Friend[i].name, name ) == 0 )
		{
			SetFriendLogin( i, login );
			break;
		}
	}
	if( cn != -1 )
	{
		SetFriendName( cn, name );
		SetFriendLogin( cn, login );
		count++;
	}
	
	SMENU *SubMenu = &SMenu[MN_FRIEND_MENU];
	int &page_status = SubMenu->work;
	WORD page;
	WORD page_max;
	GetWORDOfDWORD( (DWORD)page_status, page, page_max );
	
	int max_line = 10;
	page_max = (count-1)/10.0;
	page_status = (int )MAKELONG( page, page_max+1 );
	return 1;
}
int CFriendGrup::clear()
{
	for( int i=0; i<MAX_FRIEND_GROUP; i++ )
	{
		m_Friend[i].name[0] = 0;
		m_Friend[i].m_bLogin= 0;
	}
	count = 0;
	return 1;
}
int CFriendGrup::SerchName( const char *name )//030504 lsw
{
	for( int i=0; i<MAX_FRIEND_GROUP; i++ )
	{
		if( ::stricmp( name, m_Friend[i].name ) == 0 )
		{
			return i;
		}
	}
	return -1;
}
int CFriendGrup::DeleteName( int cn )
{
	m_Friend[cn].clear();
	count--;
	return 1;
}

int CFriendGrup::SetRect( int cn, int type, int left, int top, int right, int bottom )
{
	switch( type )
	{
	case 1: 
		::SetRect( m_Friend[cn].rect1, left, top, right, bottom );
		break;
	case 2: 
		::SetRect( m_Friend[cn].rect2, left, top, right, bottom );
		break;
	}
	return 1;	
}

char *CFriendGrup::CheckRect( int cn, int type, int x, int y )
{
	switch( type )
	{
	case 1:
		if( MouseInRectCheak( x, y, m_Friend[cn].rect1 ) )
		{
			return m_Friend[cn].name;
		}
		break;
	case 2:
		if( MouseInRectCheak( x, y, m_Friend[cn].rect2 ) )
		{
			return m_Friend[cn].name;
		}
		break;
	}
	return NULL;
}

///////////////////////////////////////////////////////////////////
LPCTSTR CRuneExplain::GetTitleExplain( int lune_num )
{
	return m_szExplainTitle[lune_num].c_str();
}

int CRuneExplain::LoadLuneText2( int lune_num )
{
	if( !m_szExplainTitle[lune_num].empty() ) return 0;
	
	char file[128];
	sprintf( file, "./data/rune_%02d.txt", lune_num+1 );
	
	FILE *fp = Fopen( file, "rt" );
	char temp[4096];
	if( !fp ) return 0;
	while( fgets( temp, 4096, fp ) )
	{
		ChangeString2( temp, "\\n", " \n" );
		m_szExplainTitle[lune_num] += temp;
	}	
	fclose( fp );
	return 1;
}
int CRuneExplain::LoadLuneText( )
{
	FILE *fp = Fopen( "./data/rune_ex.txt", "rt" );
	if( !fp ) return 0;
	
	char temp[4096];
	int step;
	int rune_count;
	while( fgets( temp, 4096, fp ) )
	{
		if( temp[0] == ' '||temp[0] =='\n'||temp[0] =='#'||temp[0] == ';'|| temp[0] == NULL )
			continue;
		
		char *token = strtok( temp, "\t\n" );
		if( !token ) continue;
		step = atoi( token );
		
		token = strtok( NULL, "\t\n" );
		if( !token ) continue;
		rune_count= atoi( token );
		
		token = strtok( NULL, "\t\n" );
		if( !token ) continue;
		strcpy( m_szTitle[step-1][rune_count], token );
		
		token = strtok( NULL, "\t\n" );
		if( !token ) continue;
		strcpy( m_szExplain[step-1][rune_count], token );
	}
	fclose( fp );
	return 1;
}

int k_char_rgb::set()
{
	body_r = SCharacterData.body_r ;

⌨️ 快捷键说明

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