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

📄 smallmenu.cpp

📁 网络游戏龙族 完整的登陆器 C++ 源代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
		MN_INN_SLEEP,
		MN_SYSTEM_LOGOUT,
		
		MN_DIVIDE_ITEM,
		
		MN_OK_MESSAGEBOX,
		MN_OKCANCEL_MESSAGEBOX,
		MN_ITEM_MESSAGEBOX,
};
const int maxsmall = sizeof( smallmenu1 ) / sizeof(int);

void Small_KeyProc()
{
	
	if( !GetSysInfo( SI_GAME_MAKE_MODE ) ) return;
	static int flag=0;
	if(g_aCurrentKeys[DIK_PGDN] & 0x80)
	{
		if( flag == 1 ) 
		{
			return; 
		}
		else 
		{
			flag = 1;
			for(int i=0; i < maxsmall ; i++)
			{
				if( SMenu[smallmenu1[i]].bActive ) 
				{
					SMenu[smallmenu1[i]].bActive = false;
					if( i== maxsmall-1) 
					{
						SMenu[smallmenu1[0]].bActive = true;
						y_MenuFocus = 0;
					}
					else 
					{
						SMenu[smallmenu1[i+1]].bActive = true;
						y_MenuFocus = smallmenu1[i+1];
					}
					return;
				}
			}
		}			
	}
	else  if(g_aCurrentKeys[DIK_PGUP] & 0x80)
	{
		if( flag == 2 ) 
		{
			return; 
		}
		else 
		{
			flag = 2;
			for(int i=0; i < maxsmall ; i++)
			{
				if( SMenu[smallmenu1[i]].bActive ) 
				{
					SMenu[smallmenu1[i]].bActive = false;
					if( i==0) 
					{
						SMenu[smallmenu1[maxsmall-1]].bActive = true;
						y_MenuFocus = smallmenu1[maxsmall-1];
					}
					else 
					{
						SMenu[smallmenu1[i-1]].bActive = true;
						y_MenuFocus = smallmenu1[i-1];
					}
					return;
				}
			}
		}
	}
	else flag = 0;
}


CHouse *house_sub_residing;
CHouse *house_sub_guild;
CHouse *house_sub_not_res;
int house_res_ct;
int house_guild_ct;
int house_not_res_ct;
//extern Spr credit;//020515 lsw
//extern Spr logo2;//020515 lsw
//extern Spr logo1;//020515 lsw


extern void FreeSpriteOnlyOne( Spr *s );
extern DWORD g_alarm;
extern void CheckDeleteSkill();
void InitMenu()				// 矫累且锭, 悸诀阑 惑炔俊 嘎苗 秦具 且 版快 
{
	g_GuildMgr.Reset();	// CSD-030324 // thai2 YGI
	
	StartMenuFree();		// 矫累 皋春锭狼 捞固瘤 橇府
	GrobalValueSeet();		// 肺弊酒眶饶 促矫 甸绢 吭阑 锭 臂肺国 函荐 悸..
	LoadManList();			// 惑痢 林牢甸..
	
	MenuSet();
	SmallMenuSet();
	ReadHouseTable();
	
	LoadOpenningSpr( "./data/face_man_s.dat", &facebuf_man_s, spr_face_man_s);				// 某腐磐 倔奔 捞固瘤 肺靛 巢赤,
	LoadOpenningSpr( "./data/face_woman_s.dat", &facebuf_woman_s, spr_face_woman_s);			
	LoadOpenningSpr( "./data/face_man_p.dat", &facebuf_man_p, spr_face_man_p);				// 颇萍盔 倔奔 	
	LoadOpenningSpr( "./data/face_woman_p.dat", &facebuf_woman_p, spr_face_woman_p);
	LoadOpenningSpr( "./data/face_man_mm.dat", &facebuf_man_mm, spr_face_man_mm);			// 颇萍盔 倔奔 	
	LoadOpenningSpr( "./data/face_woman_mm.dat", &facebuf_woman_mm, spr_face_woman_mm);
	
	//	0906 kkh 眠啊 
	LoadOpenningSpr( "./data/face_man_s_add.dat", &facebuf_man_s_dash, spr_face_man_s_dash);				// 某腐磐 倔奔 捞固瘤 肺靛 巢赤,
	LoadOpenningSpr( "./data/face_woman_s_add.dat", &facebuf_woman_s_dash, spr_face_woman_s_dash);			
	LoadOpenningSpr( "./data/face_man_p_add.dat", &facebuf_man_p_dash, spr_face_man_p_dash);				// 颇萍盔 倔奔 	
	LoadOpenningSpr( "./data/face_woman_p_add.dat", &facebuf_woman_p_dash, spr_face_woman_p_dash);
	LoadOpenningSpr( "./data/face_man_mm_add.dat", &facebuf_man_mm_dash, spr_face_man_mm_dash);			// 颇萍盔 倔奔 	
	LoadOpenningSpr( "./data/face_woman_mm_add.dat", &facebuf_woman_mm_dash, spr_face_woman_mm_dash);
	
	
	// 努饭胶 器牢磐甸 檬扁拳############################
	house = new CHouse; // 檬扁拳
	//####################################################
	
	////////////////////////////////////////////////////////////////////////////////////////
	// 某腐磐 檬扁 惑怕 setting
	////////////////////////////////////////////////////////////////////////////////////////
	//	SCharacterData.nCharacterData[FACE] = SCharacterData.nCharacterData[GENDER]*1000+0;
	//020515 lsw 琶平芒 傍侩栏肺 靖
	if( !SCharacterData.nCharacterData[GENDER] )	//  0:咯磊 1:巢磊
	{
		SMenu[MN_ITEM].nField[7].nType=FT_NONE;
		SMenu[MN_TACTICS].nImageNumber=3;//弊覆 官柴
		SMenu[MN_TACTICS].nField[6].nWillDo=EXPLAIN_TACTICS_WOMAN;
	}
	
	if( SCharacterData.nCharacterData[SPELL]==PRIEST_SPELL )
	{
		
		//		LoadOpenningSpr( "./data/divine.dat", &divine_gauge, spr_divine_gauge );//020515 lsw 单捞鸥绰 舅酒辑 佬磊
		SMenu[MN_ABILITY].nField[21].nType=FT_NOMAL_PUT;
		
		// 橇府胶飘老锭 11, 12 拌凯篮 绝促.
		//		SMenu[MN_LEARN_MAGIC_BOOK].nField[11].nType = FT_NO_CHECK;
		//		SMenu[MN_LEARN_MAGIC_BOOK].nField[12].nType = FT_NO_CHECK;
		
		strcpy( string_ability[WSPS], "PS" );
	}
	else 
	{
		strcpy( string_ability[WSPS], "WS" );
		if( !SCharacterData.nCharacterData[GENDER] )	//  0:咯磊 1:巢磊
		{//15 260  
			SMenuFTReg(MN_TACTICS,5,FT_NOMAL_PUT,0,15,260,0,0,STATUS_IMG,25,25,0);//咯磊
		}
		else
		{//15 236
			SMenuFTReg(MN_TACTICS,5,FT_NOMAL_PUT,0,15,236,0,0,STATUS_IMG,25,25,0);//巢磊
		}
	}
	// 皋葛扼捞令 檬扁拳...
	//	SCharacterData.sleep = true;
	//	InitMemorize();
	
	LoadOpenningSpr( "./data/main_etc.dat", &main_etc_buf, main_etc_spr);		// 皋牢 牢磐其捞胶~
	LoadOpenningSpr( "./data/skill_menu.dat", &skill_menu_buf, skill_menu_spr);		// 皋牢 牢磐其捞胶~
	LoadOpenningSpr( "./data/help.dat", &help_pcx_buf, help_pcx_spr);		// 皋牢 牢磐其捞胶~
	
	/////////////////////////////////////////////////////////////////////////////////////
	if( SysInfo.notconectserver )
	{
		SCharacterData.age=18;
		SCharacterData.beat=3232;
		//		SCharacterData.LvUpPoint=1000;
		SCharacterData.nCharacterSP = 100;
		SCharacterData.nCharacterMAXSP = 150;
		
		c_BbsTitle[0].SetBbsTitle( 0, 1009, "kein1", "救崇1 咯变 贸澜");
		c_BbsTitle[1].SetBbsTitle( 1, 1009, "kein2", "救崇2 咯变 贸澜");
		c_BbsTitle[2].SetBbsTitle( 2, 1009, "kein3", "救崇3 咯变 贸澜");
		c_BbsTitle[3].SetBbsTitle( 3, 1009, "kein4", "救崇4 咯变 贸澜");
		c_BbsTitle[4].SetBbsTitle( 4, 1009, "kein5", "救崇5 咯变 贸澜");
		c_BbsTitle[5].SetBbsTitle( 5, 1009, "kein6", "救崇6 咯变 贸澜");
		c_BbsTitle[6].SetBbsTitle( 6, 1009, "kein7", "救崇7 咯变 贸澜");
		
		strcpy( SCharacterData.party[0].m_Name, lan->OutputMessage(5,81) );//010215 lsw
		//SCharacterData.party[0].m_ImageNo = 6;
		SCharacterData.party[0].m_Str = 88;
		SCharacterData.party[0].m_Lv = 56;
		
		strcpy( SCharacterData.relation[0].m_Name, lan->OutputMessage(6,32) );//010215 lsw
		strcpy( SCharacterData.employment[0].m_Name, lan->OutputMessage(6,33) );
		
		SCharacterData.dmg_count = 2;
		SCharacterData.dmg_max = 15;
	}
	
	////////////////////////////////////////////////////////////////////////
	// 付阑雀包俊辑 颇绰 笼甸 悸泼 
	///////////////////////////////////////////////////////////////////////
	int ct1=0, ct2=0, ct3=0;
	for( int a=0; a<HOUSE_MAX_TABLE; a++ )
	{
		if( House[a].m_ForResiding==1 )		ct1++;			
		if( House[a].m_ForGuild==1 )		ct2++;
		if( House[a].m_ForNotResiding==1 )	ct3++;
	}
	house_sub_residing=	new CHouse[ct1];
	house_sub_guild =	new CHouse[ct2];
	house_sub_not_res = new CHouse[ct3];
	
	house_res_ct	=ct1;
	house_guild_ct	=ct2;
	house_not_res_ct=ct3;
	
	ct1=ct2=ct3=0;
	for( a=0; a<HOUSE_MAX_TABLE; a++ )
	{
		if( House[a].m_ForResiding==1 )
		{
			house_sub_residing[ct1] = House[a];
			house_sub_residing[ct1].m_Image = a;
			ct1++;
		}
		if( House[a].m_ForGuild==1 )		
		{
			house_sub_guild[ct2] = House[a];
			house_sub_guild[ct2].m_Image = a;
			ct2++;
		}
		if( House[a].m_ForNotResiding==1 )	
		{
			house_sub_not_res[ct3] = House[a];
			house_sub_not_res[ct3].m_Image = a;
			ct3++;
		}
	}
	////////////////////////////////////////////////////////////////////////////
	
	if( SysInfo.notconectserver )		// 烙矫 单捞鸥
	{
		for( int a=0; a<200; a++ )
		{
			SCharacterData.SkillId[a] = true;			// 胶懦 酒捞能 檬扁拳
			SCharacterData.MagicId[a] = true;
		}
		for( a=0; a<13; a++ )							// 琶平胶 簐仿摹	
		{
			SCharacterData.SkillId[a+88] = a;
			SCharacterData.TacticsExp[a] = a*10;
			SCharacterData.TacticsExpNext[a] = a*100;
		}
	}
	
	LoadMagicName();	// 概流 匙烙阑 啊廉柯促.
	ReadSkillTable();
	LoadItemJoinTable();		// 搬钦 酒捞袍 抛捞喉
	LoadDiseaseTbl();			// 龙捍 抛捞喉 佬绢 坷扁
	
	SCharacterData.nExpNext = NPC_Lev_Ref[SCharacterData.nLevel].nMaxExp;		// 某腐磐 促澜 版氰摹 饭骇 拌魂 
	if( GetSysInfo( SI_NOT_CONNECT_MODE ) )
	{
		SCharacterData.nExpNext = 1000000000;
		SCharacterData.nExp = 0;
		SCharacterData.nLevel = 110;
	}
	
	if( GetSysInfo( SI_GAME_MAKE_MODE ) )
	{
		for( a=0; a<6; a++ )
		{
			SCharacterData.disease[a] = 1;
		}
	}
	InitPartyState( );			// 捞固 甸绢 客 乐绰 瘤甫 魄窜... 檬扁拳...
	
	CallServer( CMD_REQ_JOIN_GAME );		// 唱 甸绢 吭促...
	
	// 皋葛扼捞令甫 秦具 窍绰瘤俊 措茄...
	if( g_bMagicSelect ) MagicSetting();
	else MagicSetting2();		// 霸烙 抛胶飘侩 烙矫~
	
	//if( GetSysInfo( SI_GAME_MAKE_MODE ) )
	//CallOkCancelMessageBox(0,0,0, "泅犁绰 皋葛扼捞令 俺充捞 酒凑聪促. 官操妨搁 箭磊虐 7锅阑 喘矾 林技夸", 0 );
	
	//CheckAbility();		// 酒捞袍俊 狼茄 
	if( BetaTest )
		CallOkCancelMessageBox(0,0,0, "寸脚篮 海鸥抛胶飘 辑滚肺 甸绢 坷继嚼聪促.", 0 );//010215 lsw temp
	
	if( GetSysInfo( SI_GAME_MAKE_MODE ) )
	{
		g_ServerText.SetText( "救崇窍技夸. 捞扒 辑滚俊辑 咆胶飘巩阑 罐酒 免仿窍妨绊 父电 努饭胶涝聪促. 瘤陛 临窜困 抛胶飘甫 窍绊 乐绰单"
			" 绢痘霸 肋 唱坷绊 乐绰瘤 葛福摆焙夸..  肋 免仿捞 登具 且刨单夸..  "
			".. 1234567890"
			".. 1234567890"
			".. 1234567890"
			".. 1234567890" );	
	}
	g_bTimeMenuOn = true;				// 矫埃阑 夯促.
	
	if( SCharacterData.nLevel <= 8 )		// 皋春 汲疙
		SMenu[MN_MAIN_EXPLAIN].bActive = true;
	else SMenu[MN_MAIN_EXPLAIN].bActive = false;
	
	if( SCharacterData.nLevel >= 8 ) g_ExplainMenuOn = false;
	else g_ExplainMenuOn = true;
	
	g_MagicMenuOn = false;			// 概流 芒 贸澜俊 剁快瘤 臼绰促.
	
	GetTatics();		// 琶平 汲沥窍扁
	ReqTacSkillExp( );	// 傈眉 琶平 荐摹 啊廉坷扁
	AllReqSkillExp( );	// 傈眉 胶懦 版氰摹 啊廉坷扁
	
	if( recv_learn_item ) SetLearnItem( );
	else recv_learn_item = 1;
	
	LoadFilterWord();
	hunter_list	= new CHunterList;
	curr_hunter_list = hunter_list;
	my_hunter_list = new CHunterList;
	
	LoadLvColor();		// 饭骇狼狼茄 祸彬阑 焊沥秦辑 免仿茄促.
	LoadCallNameByLv();
	LoadJobLvColor();
	
	////////////////// 0813 lkh 眠啊 ///////////////////////
	StopWave(1);		// 021030 YGI
	g_Volume_Off=0;			//促矫 家府唱霸
	system_info.music = 70;
	SetVolumeMusic(system_info.music);
	BackgroundMusic();
	g_BGE_Flag = 1;
	////////////////////////////////////////////////////////
	
	//g_FightMapMember.SetFightMapInit();		// fight_map_member 檬扁拳
	g_FightMapStart = 0;
	
	LoadGMQuest();		// 弊罚靛 付胶磐 殿废 抛捞喉 肺爹...
	if( SysInfo.notconectserver )
	{	//< CSD-030324
		g_GM_Item.GetItemExplain(1);		// bin 颇老阑 积己窍扁 困秦
		g_GM_Item.GetItemExplain(2);
		// thai2 YGI
		g_GM_Item.GetItemExplain(3);
		int temp = SCharacterData.nCharacterData[SPELL];
		SCharacterData.nCharacterData[SPELL] = WIZARD_SPELL;
		ReadMagicTable();
		SCharacterData.nCharacterData[SPELL] = PRIEST_SPELL;
		ReadMagicTable();
		SCharacterData.nCharacterData[SPELL] = temp;
	}	//> CSD-030324

	g_GM_Item.GetItemExplain();		// 弊罚靛 付胶磐 殿废 酒捞袍 汲疙 抛捞喉 肺爹...
	
	if( SCharacterData.nLevel <= CHOBO_LEVEL )		// 檬焊老版快 
	{
		if( SCharacterData.nCharacterData[SPELL] == WIZARD_SPELL )		// 付过荤牢 版快
		{
			AddCurrentStatusMessage( 255, 255, 255, lan->OutputMessage(6,34) );//010215 lsw
		}
	}
	
	SetChatMode(CM_MESSAGE);//	皋矫瘤 芒阑 剁款促.
	AutoLevelUpCount = 0;
	
#ifdef CHANGE_MONEY_
	DWORD old_money = GetMoneyByItem( );
	if( old_money )
	{
		AddCurrentStatusMessage( 255, 255, 255,lan->OutputMessage(6,35) );//010215 lsw
	}
#endif
	// thai2 YGI
	LoadGuildListEx(Hero->GetGuildCode()); // CSD-030324
	if( g_lpRankLadderBBS ) delete g_lpRankLadderBBS;
	g_lpRankLadderBBS = new CRankLadder;
	
	AddCurrentStatusMessage( 255, 255, 0,lan->OutputMessage(3,210) );//this5 lsw
	AddCurrentStatusMessage( 255, 255, 0,lan->OutputMessage(3,211) );//this5 lsw
	
	g_alarm = g_curr_time;
	
	// 磊脚狼 辨靛俊 措茄 沥焊 夸没
	if( Hero->GetGuildCode() )
	{	//< CSD-030324
		short int guild_code = Hero->GetGuildCode();
		CallServer( CMD_CHECK_MY_GUILD, &guild_code, sizeof( short int ) );
		SendReqGuildInfo1( Hero->GetGuildCode());
	}	//> CSD-030324
	
	LoadMemorize();
	CheckDeleteSkill();
	
	// 020320 YGI
	RemoveExchangeItemStatus();		// 背券 惑怕 秦力
	//acer7
	main_interface.data[IF_BATTLE_PEACE] = 0;	// 硅撇 葛靛
	SettingBasicAction( main_interface.data[IF_BATTLE_PEACE] );
	InitCombatSkill();//020802 lsw
	EWndMgr.ClearAllTxt();//021001 lsw
	ExchangeMgr.Clear();//021216 lsw
	ExchangeMgr.ClearItemData();//021216 lsw
	g_MailMgr.Clear();

	// 021107 YGI
	SendCheckEventMoveMap();		// 捞亥飘 吝牢 甘捞 乐绰瘤 犬牢秦 夯促.
	GetFriendGroup();//030504 lsw
	//< CSD-TW-030704
	g_mgrBattle.ClearDelay();
	g_mgrBattle.ClearSwitchDelay();

	// 031110 YGI
	CheckRoof();
}	//> CSD-TW-030704

bool bCharListUp = false;
bool bTackListUp = false;

k_client_create_item gener_item;
bool bGenerateItemOn = false;


int kein_kh_key_on = true;
int SaveArmor[2][8];
BOOL EquipSaveFlag[2];
extern int AutoChangeEquip( int flag_key );		// f3, f4甫 喘范阑锭
extern void WarMenuNoticeOpen();							// LTS TEMP
void kein_KeyProc()
{
	HWND temp = GetFocus();
	if( temp != g_hwndMain ) return ;
	
	// ########################## 困氰茄 扁瓷甸... ################################
#ifdef	_DEBUG
	if( GetSysInfo( SI_GAME_MAKE_MODE ) )
	{
		if( !kein_kh_key_on )
		{
			if(g_aCurrentKeys[DIK_A] & 0x80)
			{
				// 021107 YGI
				SendCheckEventMoveMap();
				//CallGambleMenu();
				//CallSmallMenu(MN_RUNE);
				//CallMenu( MN_GUILD_HOUSE );
			}
			if(g_aCurrentKeys[DIK_B] & 0x80 )
			{	
				CallSmallMenu( MN_GUILD_ITEM_OR_MEMBER_LIST );				
			}
			if(g_aCurrentKeys[DIK_C] & 0x80 )
			{	
				CallGuildItemPut();
				//CallSmallMenu( MN_GUILD_ITEM_PUT );
				//CallGetGuildItem();
			}
			if(g_aCurrentKeys[DIK_D] & 0x80 )
			{	
				//	CallGetGuildItem();
			//	CallSmallMenu(MN_GUILD_ADMIN);
				CallMenu(MN_ARENA_LOBBY);
				//CallServer( CMD_CHECK_VOTE );
				//g_VoteSignExist = 400;
			}
			if(g_aCurrentKeys[DIK_E] & 0x80 )
			{	
				CallGuildHouseInfo();
				//CallGuildMemberListMenu();
				//CallFriendMenu();
			}
			if(g_aCurrentKeys[DIK_F] & 0x80 )
			{
				Call_EXCHANGE_BOND_MONEY_Menu();
				//SendDirectDB( CMD_SAVE_GUILD_MARK_IMAGE, guild_mark_main.m_Spr.img, guild_mark_main.m_Spr.size );
				//SendReqSkillInfo( Hero );
			}
			if(g_aCurrentKeys[DIK_G] & 0x80 )
			{
				CallSmallMenu( MN_DUAL_MAIN );
			}
			if( g_aCurrentKeys[DIK_H] & 0x80 ) CallServer( CMD_SCAN_TARGET );
			if(g_aCurrentKeys[DIK_I] & 0x80 ) 
				CallSmallMenu( MN_GUILD_CHANGE_INFO );
			//bDisplaySkillExp =  !bDisplaySkillExp;
			if(g_aCurrentKeys[DIK_K] & 0x80 ) CallSmallMenu( MN_GUILD_MAIN );
			if(g_aCurrentKeys[DIK_M] & 0x80 ) 
			{
				
			}
			if(g_aCurrentKeys[DIK_N] & 0x80 ) 
			{
				extern void CallMapMoveMenu(int WarfieldNo);
				CallMapMoveMenu(3);
			}
			//< CSD-011008
			/*
			if(g_aCurrentKeys[DIK_O] & 0x80 ) 
			{
			g_fight_win = 1;
			AddCurrentStatusMessage( 250,255,255, kein_GetMenuString(10) );
			}
			*/
			if(g_aCurrentKeys[DIK_LEFT] & 0x80 ) 
			{
				CallSmallMenu(280);
			}
			if(g_aCurrentKeys[DIK_O] & 0x80 ) 

⌨️ 快捷键说明

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