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

📄 tool.cpp

📁 国内著名网络游戏dragon的客户端登陆用完整源码 配套一起上传的服务端部分可开服 无说明文档
💻 CPP
📖 第 1 页 / 共 5 页
字号:
		SM_ReadInt (SysInfo.enterproxy );
		fscanf( fp, "%s\n", MapName );
		fscanf( fp, "%s\n", SysInfo.ip );
		fscanf( fp, "%s\n", SysInfo. agentip );
		fscanf( fp, "%s\n", SysInfo. proxyip );
		SM_ReadInt (SysInfo.keyr );
		SM_ReadInt (SysInfo.keyp );
		SM_ReadInt (SysInfo.mapx );
		SM_ReadInt (SysInfo.mapy );
		SM_ReadInt (SysInfo.makesou2size );
		
		fclose (fp);
	}	
	else
	{	
		
#endif
		
		//SysInfo.dx		 = 0;		// 1捞搁 傈眉葛靛,		0 : 芒葛靛		// switch screen
		SysInfo.notdead	 = 0;		// 0 : normal           1 : 林牢傍篮 公利
		SysInfo.music    = 1;		// 1捞搁 澜厩阑 脑 
		SysInfo.effect   = 1;		// 1捞搁 瓤苞阑 脑 
		SysInfo.cddata   = 0;		// 0 : read from CD		1 : From hard
		SysInfo.onekill  = 0;		// 0 : normal			1 : onekill.
		SysInfo.gamemakemode= 0;		// 0 : no debug info.	1 : show debug info.
		SysInfo.notconectserver  = 0;	// 0 : conect server	1 : not conect
		SysInfo.enable_menu = 0;	// 0 : conect server	1 : not conect
		SysInfo.gamemakemode = 0;	// 0 : conect server	1 : not conect
		SysInfo.loaditemfromtoi2 = 0;
		
#ifdef _DEBUG
	}	
#endif
}		



void WriteInitialData (void)
{		
	FILE *fp = Fopen ( DEVELOPEMENT_ENVIR_FILENAME, "wt");
	if( fp )
	{	
		SM_WriteInt (SysInfo.dx);
		SM_WriteInt (SysInfo.notdead );
		SM_WriteInt (SysInfo.music);
		SM_WriteInt (SysInfo.effect);
		SM_WriteInt (SysInfo.cddata);
		SM_WriteInt (SysInfo.onekill );
		SM_WriteInt (SysInfo.gamemakemode );
		SM_WriteInt (SysInfo.notconectserver );
		SM_WriteInt (SysInfo.enable_menu );
		SM_WriteInt (SysInfo.viewcharacterframe );
		SM_WriteInt (SysInfo.gamemakemode );
		SM_WriteInt (SysInfo.loaditemfromtoi2 );
		SM_WriteInt (SysInfo.makeanitable_bin );
		SM_WriteInt (SysInfo.port );
		SM_WriteInt (SysInfo.entergameserver );
		SM_WriteInt (SysInfo.enteragent );
		SM_WriteInt (SysInfo.enterproxy );
		fprintf( fp, "%s\n", MapName );
		fprintf( fp, "%s\n", SysInfo.ip );
		fprintf( fp, "%s\n", SysInfo.agentip );
		fprintf( fp, "%s\n", SysInfo.proxyip );
		SM_WriteInt (SysInfo.keyr );
		SM_WriteInt (SysInfo.keyp );
		SM_WriteInt (SysInfo.mapx );
		SM_WriteInt (SysInfo.mapy );
		SM_WriteInt (SysInfo.makesou2size );
		
		fclose (fp);
	}	
}		



BOOL CALLBACK ModeSettingProc(HWND hDlg, UINT Message, WPARAM wParam, LPARAM lParam)
{						
	char temp[ FILENAME_MAX];
	
	switch(Message)		
	{					
	case WM_INITDIALOG:
		LoadInitialData ();
		CheckRadioButton( hDlg, IDC_RADIO1, IDC_RADIO2, SysInfo.dx		? IDC_RADIO1 : IDC_RADIO2 );
		CheckDlgButton( hDlg , IDC_CHECK_SUPER_HERO,	SysInfo.notdead	? MF_CHECKED : MF_UNCHECKED );
		CheckDlgButton( hDlg , IDC_CHECK_SOUND,			SysInfo.music   ? MF_CHECKED : MF_UNCHECKED );
		CheckDlgButton( hDlg , IDC_CHECK_EFFECT_WAVE,	SysInfo.effect	? MF_CHECKED : MF_UNCHECKED );
		CheckDlgButton( hDlg , IDC_CHECK_READ_CDDATA,	SysInfo.cddata	? MF_CHECKED : MF_UNCHECKED );
		CheckDlgButton( hDlg , IDC_CHECK_ONE_KILL,		SysInfo.onekill	? MF_CHECKED : MF_UNCHECKED );
		CheckDlgButton( hDlg , IDC_CHECK_CONECT_SERVER,	SysInfo.notconectserver ? MF_CHECKED : MF_UNCHECKED );
		CheckDlgButton( hDlg , IDC_CHECK_ENABLE_MENU,	SysInfo.enable_menu ? MF_CHECKED : MF_UNCHECKED );
		CheckDlgButton( hDlg , IDC_CHECK_VIEWCHARACTERFRAME,	SysInfo.viewcharacterframe? MF_CHECKED : MF_UNCHECKED );
		CheckDlgButton( hDlg , IDC_CHECK_GAMEMAKEMODE ,	SysInfo.gamemakemode ? MF_CHECKED : MF_UNCHECKED );
		CheckDlgButton( hDlg , IDC_LOAD_ITEM_FROM_TOI2,	SysInfo.loaditemfromtoi2 ? MF_CHECKED : MF_UNCHECKED );
		CheckDlgButton( hDlg , IDC_SAVE_ANIMATION_TABLE,SysInfo.makeanitable_bin ? MF_CHECKED : MF_UNCHECKED );
		CheckDlgButton( hDlg , IDC_ENTER_AGENTIP,		SysInfo.enteragent ? MF_CHECKED : MF_UNCHECKED );
		CheckDlgButton( hDlg , IDC_ENTER_PROXYIP,		SysInfo.enterproxy ? MF_CHECKED : MF_UNCHECKED );
		CheckDlgButton( hDlg , IDC_ENTER_GAMESERVER,	SysInfo.entergameserver ? MF_CHECKED : MF_UNCHECKED );
		CheckDlgButton( hDlg , IDC_KEY_RECORD ,	SysInfo.keyr ? MF_CHECKED : MF_UNCHECKED );
		CheckDlgButton( hDlg , IDC_KEY_PLAY ,	SysInfo.keyp ? MF_CHECKED : MF_UNCHECKED );
		CheckDlgButton( hDlg , IDC_MAP_SCROLL_TYPE ,	SysInfo.mapscrolltype ? MF_CHECKED : MF_UNCHECKED );
		
		Edit_SetText (GetDlgItem(hDlg, IDC_MAPNAME ), MapName );
		Edit_SetText (GetDlgItem(hDlg, IDC_EDIT_IP ), SysInfo.ip );
		Edit_SetText (GetDlgItem(hDlg, IDC_AGENTIP ), SysInfo.agentip );
		Edit_SetText (GetDlgItem(hDlg, IDC_PROXYIP ), SysInfo.proxyip );
		sprintf (temp, "%d", SysInfo.port );
		Edit_SetText (GetDlgItem(hDlg, IDC_EDIT_PORT ), temp );
		
		sprintf (temp, "%d", SysInfo.mapx );
		Edit_SetText (GetDlgItem(hDlg, IDC_EDIT_MAPX ), temp );
		sprintf (temp, "%d", SysInfo.mapy );
		Edit_SetText (GetDlgItem(hDlg, IDC_EDIT_MAPY ), temp );
		
		CheckDlgButton( hDlg , IDC_MAKE_SOU2_SIZE,	SysInfo.makesou2size? MF_CHECKED : MF_UNCHECKED );
		
		
		
		
		//						Edit_SetText (GetDlgItem(hDlg, IDC_EDIT7), SysInfo.notepad );
		return TRUE;			
								
	case WM_PAINT:						
		break;						
		
	case WM_COMMAND:			
		switch( LOWORD( wParam )) 
		{					
		case  IDOK:	SysInfo.dx		 = IsDlgButtonChecked( hDlg, IDC_RADIO1            );
			if( SysInfo.dx == 1 )	g_DirectDrawInfo.bFullscreen = TRUE;
			
			SysInfo.notdead			= IsDlgButtonChecked( hDlg, IDC_CHECK_SUPER_HERO  );
			SysInfo.music			= IsDlgButtonChecked( hDlg, IDC_CHECK_SOUND       );
			SysInfo.effect			= IsDlgButtonChecked( hDlg, IDC_CHECK_EFFECT_WAVE );
			SysInfo.cddata			= IsDlgButtonChecked( hDlg, IDC_CHECK_READ_CDDATA );
			SysInfo.onekill			= IsDlgButtonChecked( hDlg, IDC_CHECK_ONE_KILL    );
			SysInfo.gamemakemode	= IsDlgButtonChecked( hDlg, IDC_CHECK_DEBUGINFO   );
			SysInfo.notconectserver	= IsDlgButtonChecked( hDlg, IDC_CHECK_CONECT_SERVER );
			SysInfo.enable_menu		= IsDlgButtonChecked( hDlg, IDC_CHECK_ENABLE_MENU );
			SysInfo.viewcharacterframe = IsDlgButtonChecked( hDlg, IDC_CHECK_VIEWCHARACTERFRAME );
			SysInfo.gamemakemode	= IsDlgButtonChecked( hDlg, IDC_CHECK_GAMEMAKEMODE );
			SysInfo.loaditemfromtoi2= IsDlgButtonChecked( hDlg, IDC_LOAD_ITEM_FROM_TOI2 );
			SysInfo.makeanitable_bin= IsDlgButtonChecked( hDlg, IDC_SAVE_ANIMATION_TABLE );
			SysInfo.keyr=				IsDlgButtonChecked( hDlg, IDC_KEY_RECORD );
			SysInfo.keyp=				IsDlgButtonChecked( hDlg, IDC_KEY_PLAY );
			SysInfo.mapscrolltype   =	IsDlgButtonChecked( hDlg, IDC_MAP_SCROLL_TYPE );
			
			Edit_GetText( GetDlgItem(hDlg, IDC_MAPNAME), MapName, FILENAME_MAX);
			
			SysInfo.entergameserver  = IsDlgButtonChecked( hDlg, IDC_ENTER_GAMESERVER );
			SysInfo.enteragent		 = IsDlgButtonChecked( hDlg, IDC_ENTER_AGENTIP );
			SysInfo.enterproxy		 = IsDlgButtonChecked( hDlg, IDC_ENTER_PROXYIP );
			
			Edit_GetText( GetDlgItem(hDlg, IDC_EDIT_IP ),  SysInfo.ip, 25 );
			Edit_GetText( GetDlgItem(hDlg, IDC_AGENTIP ),  SysInfo.agentip, 25 );
			Edit_GetText( GetDlgItem(hDlg, IDC_PROXYIP ),  SysInfo.proxyip, 25 );
			
			Edit_GetText( GetDlgItem(hDlg, IDC_EDIT_PORT ), temp, FILENAME_MAX);
			SysInfo.port = atoi( temp );
			
			Edit_GetText( GetDlgItem(hDlg, IDC_EDIT_MAPX ), temp, FILENAME_MAX);
			SysInfo.mapx = atoi( temp );
			Edit_GetText( GetDlgItem(hDlg, IDC_EDIT_MAPY ), temp, FILENAME_MAX);
			SysInfo.mapy = atoi( temp );
			
			SysInfo.makesou2size = IsDlgButtonChecked( hDlg, IDC_MAKE_SOU2_SIZE );
			
			if( GetSysInfo( SI_GAME_MAKE_MODE ) ) WriteInitialData ();
			SysInfo.result = 1;
			
			EndDialog(hDlg, LOWORD(wParam));
			return (TRUE);
			
		case IDCANCEL :									
			SysInfo.result = 999;
			EndDialog(hDlg, LOWORD(wParam));	
			
			return (TRUE);									
		}											
		break;										
	}													
	return FALSE;									
}													

//#define _SWITCH_SCREEN

void ModeSetting ( HWND hwnd, HINSTANCE hInstance)
{
	
#ifdef _DEBUG
	FILE *fp, *wp;
AGAIN_:	
	
	wp = fp = Fopen( DEVELOPEMENT_ENVIR_FILENAME, "rb" );
	if( fp ) fclose(fp);
	
	if( wp )	DialogBox( hInstance, MAKEINTRESOURCE( IDD_DEVELOPE_ENVIR ), NULL, (DLGPROC)ModeSettingProc );
	else
	{
		DialogBox( hInstance, MAKEINTRESOURCE( IDD_DEVELOPE_ENVIR1 ), NULL, (DLGPROC)ModeSettingProc );
	}
	
	if( SysInfo.result == 1 )  // 角青窍扁 困秦 OK甫 喘范促. 
	{
		if( SysInfo.dx == 0 ) // windows mode..
		{		
			if( GetBitsPerPixel() <= 8 ) 
			{	
				JustMsg ( "芒葛靛俊辑 免仿且版快 窍捞漠扼( 65536color)俊辑 角青秦具 钦聪促.\n" );
				goto AGAIN_;
			}
		}	
	}
#else 
	
	
	SysInfo.music = 1;
	SysInfo.effect = 1;
	
#ifdef _SWITCH_SCREEN
	SysInfo.dx = 0;		// switch screen
	g_DirectDrawInfo.bFullscreen = false;// switch screen
#else
	SysInfo.dx = 1;		// switch screen
	g_DirectDrawInfo.bFullscreen = true;// switch screen
#endif
	
#endif
}		


//------------------------------------------------------------------------------------
// Animation阑 check窍扁 困茄 风凭...

BOOL CALLBACK CheckEquipmentProc(HWND hDlg, UINT Message, WPARAM wParam, LPARAM lParam)
{	
	LPCHARACTER lpChar;
	char		temp[FILENAME_MAX];
	int	*ac;
	RECT rect, grect;
	static int id = 1;
	
	lpChar = ReturnCharacterID( id );
	
	if( SysInfo.notconectserver == 1 )
	{
		if( lpChar == NULL ) 
		{
			id =0;
			lpChar = Hero;
			JustMsg( " 弊繁  ID绰 绝绢夸.   ID甫 0锅栏肺 官策聪促. " );
		}
	}
	else
	{
		if( lpChar == NULL ) 
		{
			id =1;
			lpChar = Hero;
			JustMsg( " 弊繁  ID绰 绝绢夸.   ID甫 1锅栏肺 官策聪促. " );
		}
	}
	
	
	ac= lpChar->accessory;
	
	switch(Message)		
	{					
	case WM_INITDIALOG:	CheckRadioButton( hDlg, IDC_RADIO_1_FEMALE, IDC_RADIO_1_MALE , lpChar->sprno ? IDC_RADIO_1_MALE : IDC_RADIO_1_FEMALE );
		
		sprintf (temp, "%d", ac[0] );
		Edit_SetText (GetDlgItem(hDlg, IDC_EDIT1), temp);
		sprintf (temp, "%d", ac[2]);
		Edit_SetText (GetDlgItem(hDlg, IDC_EDIT4), temp);
		sprintf (temp, "%d", ac[3]);
		Edit_SetText (GetDlgItem(hDlg, IDC_EDIT5), temp);
		sprintf( temp, "%d", id );
		Edit_SetText (GetDlgItem(hDlg, IDC_CHAR_NO), temp);
		
		ShowWindow( hDlg , SW_HIDE);
		GetWindowRect( hDlg, &rect );
		GetWindowRect( g_hwndMain, &grect );
		MoveWindow( hDlg, grect.right+1, 0, rect.right, rect.bottom, true);
		
		return TRUE;	
		
	case WM_PAINT:		
		break;			
		
	case WM_COMMAND:	
		switch( LOWORD( wParam )) 
		{			
		case  IDOK :
			
			sprintf( temp, "%d", id );
			Edit_GetText (GetDlgItem(hDlg, IDC_CHAR_NO), temp, 9);
			id = atoi( temp );
			lpChar = ReturnCharacterID( id );
			if( lpChar == NULL ) 
			{
				id =1;
				lpChar = Hero;
				JustMsg( " 弊繁  ID绰 绝绢夸.   ID甫 1锅栏肺 官策聪促. " );
			}
			ac= lpChar->accessory;
			
			
			lpChar->sprno		 = IsDlgButtonChecked( hDlg, IDC_RADIO_1_MALE  );
			
			if( IsDlgButtonChecked( hDlg, IDC_RADIO_1_NO ) )
			{
				lpChar->basicAction = ACTION_NONE; 
				lpChar->basicWalk	= ACTION_BASIC_WALK; 
			}
			if( IsDlgButtonChecked( hDlg, IDC_RADIO_1_ONESWORD ) )
			{
				lpChar->basicAction = ACTION_BATTLE_NONE; 
				lpChar->basicWalk	= ACTION_BATTLE_WALK_OWNHAND; 	
			}
			if( IsDlgButtonChecked( hDlg, IDC_RADIO_1_TWOSWORD ) )
			{	
				lpChar->basicAction = ACTION_BATTLE_NONE_TWOHAND;
				lpChar->basicWalk = ACTION_BATTLE_WALK_TWOHAND;
			}
			if( IsDlgButtonChecked( hDlg, IDC_RADIO_1_PENSING ) )
			{	
				lpChar->basicAction = ACTION_ATTACK_PENSWORD2;
				lpChar->basicWalk = ACTION_BATTLE_WALK_OWNHAND;
			}
			
			if( IsDlgButtonChecked( hDlg, IDC_CHECK_1_VIEW_PART ) )
				CheckEquipmentFlag = TRUE;
			else
				CheckEquipmentFlag = FALSE;
			
			Edit_GetText( GetDlgItem(hDlg, IDC_EDIT1), temp, 9);
			ac[0] = atoi (temp);
			Edit_GetText( GetDlgItem(hDlg, IDC_EDIT4), temp, 9);
			ac[2] = atoi (temp);
			Edit_GetText( GetDlgItem(hDlg, IDC_EDIT5), temp, 9);
			ac[3] = atoi (temp);
			
			////
			
			LoadHeroClothAccessoryDataOne( lpChar->sprno, ac[0]);
			
			{
				
				LoadHeroClothAccessoryDataOne( lpChar->sprno, ac[0]+1);
				//						LoadHeroClothAccessoryDataOne( lpChar->sprno, ac[0]+200);		// NEW_CHAR YGI
				//						LoadHeroClothAccessoryDataOne( lpChar->sprno, ac[0]+201);
			}
			
			{
				//						FreeHeroClothAccessoryDataOne( lpChar->sprno, old[2] );
				LoadHeroClothAccessoryDataOne( lpChar->sprno, ac[2]);
			}
			
			{
				//						FreeHeroClothAccessoryDataOne( lpChar->sprno, old[3] );
				LoadHeroClothAccessoryDataOne( lpChar->sprno, ac[3]);
			}
			
			////					
			
			//EndDialog(hDlg, LOWORD(wParam));
			GameTestProc( &g_DirectDrawInfo );
			return (TRUE);
			
		case IDCANCEL :	
			EndDialog(hDlg, LOWORD(wParam));	
			
			return (TRUE);
		}		
		break;		
	}				
	return FALSE;	
}					


void CheckEquipmentData( HWND hwnd, HINSTANCE hInstance)
{		
	HWND  hCreateCheckEquipment =
		CreateDialog( g_hInstance, MAKEINTRESOURCE( IDD_CHECK_EQUIP ), g_hwndMain, (DLGPROC)CheckEquipmentProc );
	ShowWindow( hCreateCheckEquipment, SW_HIDE );
	
	int ScreenX = GetSystemMetrics(SM_CXSCREEN);
	RECT rect;
	RECT grect;
	GetWindowRect( hCreateCheckEquipment, &rect );
	GetWindowRect( g_hwndMain, &grect );
	MoveWindow(hCreateCheckEquipment, grect.right+1, 0, rect.right, rect.bottom, true);
	ShowWindow(hCreateCheckEquipment, SW_SHOW);
	
}		


//------------------------------------------------------------------------------------

void GetAnimationTxt( LPCHARACTER lpChar, HWND hwnd )
{   //< CSD-031014    
	int  i;
	char temp[FILENAME_MAX];
	int	 AnotherLineCount, LineCount = Edit_GetLineCount( hwnd ) -1;
	int  CharCount;
	int  frame, dx, dy, attackf, wave, height, effect;
	
	lpChar->AnimationTable[ TempAnimationCount].nCount = LineCount;
	
	AnotherLineCount = 0;
	for( i = 0; i < LineCount ; i++)
	{	
		CharCount = Edit_GetLine( hwnd, i, temp, FILENAME_MAX );	// 030812 YGI
		
		if (temp[CharCount-2] == '\r')
		{
			temp[CharCount-2] = '\n';
			temp[CharCount-1] = '\0';
		}
		else 
		{
			temp[CharCount] = '\0';
		}
		
		sscanf( temp, "%d %d %d %d %d %d %d ", &frame, &dx, &dy, &attackf, &wave, &height, &effect );
		
		lpChar->AnimationTable[ TempAnimationCount].cFrame[ i]	= frame -1;
		lpChar->AnimationTable[ TempAnimationCount].dx[ i]		= dx;
		lpChar->AnimationTable[ TempAnimationCount].dy[ i]		= dy;
		lpChar->AnimationTable[ TempAnimationCount].attackf[ i]	= attackf;
		lpChar->AnimationTable[ TempAnimationCount].wave[ i]	= wave;
		lpChar->AnimationTable[ TempAnimationCount].height[ i]	= height;
		lpChar->AnimationTable[ TempAnimationCount].effect[ i]	= effect;
		
		
		AnotherLineCount ++;
	}	
	
	if( AnotherLineCount != LineCount ) 	JustMsg( "扼牢荐啊 崔扼.." );
	lpChar->AnimationTable[ TempAnimationCount].nCount = LineCount;
}	

⌨️ 快捷键说明

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