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

📄 menu.cpp

📁 网络游戏龙族 完整的登陆器 C++ 源代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
// menu.cpp
#include "stdafx.h"
#include <ddraw.h>
#include "Hangul.h"
#include "dragon.h"
#include "Menu.h"
#include "Hong_Sprite.h"
#include "SmallMenuSet.h"
#include "stdio.h"
#include "directsound.h"
#include "directinput.h"
#include "Char.h"
#include "SmallMenu.h"
#include "Hong_Sub.h"
#include "Effect.h"
#include "map.h"
#include "tool.h"
#include "MenuSet.h"
#include "skill.h"
#include "Item.h"
#include "MenuNetwork.h"
#include "MouseCursor.h"
#include "CharDataTable.h"
#include "gameproc.h"
#include "kh_cpp.h"
#include "NationSys.h" // 010904 LTS  // For Nation War Interface
#include "NationSupport.h" // 010904 LTS  // For Nation War Interface
//011001 lsw
#include "skill_lsw.h"
#include "linecommand.h"
#include "hong_light.h"
#include "menudef2.h"
#include "MagicSys.h"
#include "chat.h"//020704 lsw
#include "CurrentMsgMgr.h"
#include "Auction.h"
#include "MailMgr.h"
#include "HunterSystem.h"
#include "ExchangeMgr.h"
extern bool isNewWarfieldServer();
#include "QuestFunction.h"	// 021025 kyo 
#include "SymbolMgr_Client.h"//soto-1.02
#include "LottoMgr.h"//soto-030501
#include "ArenaManager.h"

extern CSymbolMgr_Client	g_SymBolMgr;//soto-1.02

extern void MenuSubProcessType2(SMENU *SubMenu,const int j);	//021022 kyo

extern int g_iScenarioOn;
extern void lsw_MenuSubProcessType(SMENU *SubMenu,const int j);//020214 lsw
extern void lsw_DoLButtonDownOfMenu(const int i,const int j);
extern void lsw_DoRButtonDownOfMenu(const int i,const int j);
extern void MenuSubProcessType_FT_DO(SMENU *SubMenu,int j);
extern void	DisplayInventoryMenu(SMENU *SubMenu ,int j);//牢亥配府 叼胶敲饭捞
extern void ButtonDownAtInventory(const int i, const int j);//021111 lsw
extern void DisplayQuickMenu(SMENU *SubMenu ,int j);//狞芒 叼胶敲饭捞
extern void DisplayCandleMenu(SMENU *SubMenu ,int j);
extern void LocalWarDoneBoxText(bool Button);						// LTS LOCALWAR MENU
extern void SendWarMove();
extern void SendWarStatusRefresh();

int g_SelectMail = 0;

CGuildIntroduction *g_Guild_Introduction;

CMenuVariable g_Menu_Variable;
char *g_szScale;

#ifdef CHANGE_MONEY_
	char g_szMoneyName[] = "Crit";
#else
	char g_szMoneyName[] = "Cell";
#endif

//#define PAGE_NUMBER__	 2//020515 lsw

extern void SendNationPacket(int type);//010730 lsw
extern bool isNationWarfieldServer();
extern int CheckNationStatus(int StatusNo);
extern int WarResultAniCount;
extern void	lsw_FT_DATA_PUT(SMENU *SubMenu ,int iDP_TYPE);


//extern int GetItemKind( int itemno );
RareMain Soksungattr_gm; 

extern MakeItem gm_make_item_result;
extern int gm_make_item_result_needitem[2];

extern MakeItem gm_make_item_list[MAX_UPGRADE_RARE];

extern bool DoButtonCheckOfMenu_lsw(int i , int j);


//_____________________________________________________________________	// 010904
extern int g_Squad;														// LTS TEMP
extern int g_Commander;

extern void SendCMD_NW_MAP_MOVE(int Type,int WarfieldNo); 
extern void SendCMD_SET_SQUAD_LODING_POINT(int SquadNo,int LoadingPoint); 
extern void SendCMD_REQUEST_SQUAD_INFO(int SquadNo);
extern void SendCMD_REQUEST_COMMANDER_VOTE_DATA(int CandidaterNo);
extern int  GetSquadNo();
extern void SendCMD_CHECK_ABILITY_CHANGE_MONEY();						//011201 LTS		// LTS MENU
extern void SendCMD_LOCALWAR_MAPMOVE();									// LTS NEW LOCALWAR
extern void CloseLocalWarInfo();										// LTS NEW LOCALWAR
extern void LocalWarMapMoveClick(int MapNo);							// LTS NEW LOCALWAR
extern int GetLocalWarMapMoveIndex();									// LTS NEW LOCALWAR	
extern void DrawLocalWarDefeat(int ImageType,int MenuNumber,int BaseX,int BaseY);	// LTS NEW LOCALWAR
extern void SendCMD_LOCALWAR_JOIN();									// LTS LOCALWAR
extern void SendCMD_EVENT_LOCALWAR_JOIN();								// 020115 LTS
extern void SendCMD_EVENT_LOCALWAR_MOVE();								// 020115 LTS
extern void DrawLocalWarJoinInterface(int ImageType,int MenuNumber,int BaseX,int BaseY);
//_____________________________________________________________________	// 010904


char g_szSearchLadderRankName[20];
bool bSmallTips = false;
int g_RemainTimeType; 
int g_RemainTimeDelay;

#define MAX_SALVAITON_MONEY 3000000000

int bbs_money[2][2] = { {100, 1000}, {1500, 15000} };
int g_BattleStatusView;

int g_RecvLoanInfo;
int	g_CurrUsedMagic;		// 泅犁 某胶泼 登绊 乐绰 付过
int refresh_magery_time = 100;

int TotalSalvation;

char man_list[MAX_MAP_][MAN_LIST_MAX_][20];		// 惑痢 林牢 捞抚甸
int AutoLevelUpOn;
DWORD AutoLevelUpCount;

t_QuickMemory SaveMemory[MAX_MAGIC_MEMORY];		// 窜绵虐肺 扁撅矫难敌 格废//020530 lsw
t_QuickMemory HotKeyMemory;						// 滚瓢 茄俺肺 荤侩 窍绰 Ram 鞍篮 函荐

/*//020515 lsw
bool bDisplaySkillExp;
bool bDisplayTacticExp;
*/
int before_skill_no;
//int g_DisplaySkillExp;
int g_VoteSignExist;	// 急芭 泅炔 焊咯林绰啊 付绰啊..

int g_CanRegistCandidate;		// 饶焊 殿废阑 且荐 乐绰 惑怕啊 酒聪搁 -1, 捧钎甫 且荐 乐绰 惑炔捞 酒聪搁 -2
int	g_Candidate_max;
int g_CurrVote;	// 泅犁 急芭 柳青 惑怕 0:檬扁 惑怕( 单捞鸥甫 罐酒 柯促), -1:涝饶焊 且荐 绝促. 1:涝饶焊 惑怕 2:捧钎 惑怕
k_client_candidate		Candidate[3];	// 涝饶焊 沥焊

Spr scenario_spr;		// 矫唱府坷

int	fight_map_live_man[4];		// 混酒 乐绰 荤恩
char nation_bbs[2000];
char nation_bbs2[8][8][50];
int man_to_man_start=0;
int fight_map_stop=0;
int g_fight_win;
int g_fight_lose;

int fight_who;		// 1:1 措搬窍绰 荤恩狼 酒捞叼
int	danger_by_hunter;

int skill_index[5] = {0,};
CServerText		public_bbs;			// 款康磊啊 努扼捞攫飘肺 官肺 傍瘤荤亲阑 焊尘锭, 

bool	g_MagicMenuOn;
bool	g_ExplainMenuOn;

int		magic_plus[MAX_MAGIC];		// 郴啊 荤侩茄 概流 穿利
int		magic_plus_count;			// 醚 肮荐
int		magic_plus_start;			// 嘛阑 捞固瘤 start何盒

bool	g_explain_menu_on = false;
char	g_explain_menu[MAX_STRING];

bool	g_explain_magic_on = false;
int		g_explain_magic;

bool	g_explain_skill_on = false;
int		g_explain_skill;

//bool	g_ExplainMessageOn;		// 汲疙芒阑 荤侩沁绰啊..
DWORD g_alarm ;

CServerText g_ServerText;		// 辑滚俊辑 傈价罐绰 咆胶飘甫 困茄 备炼眉

bool g_bTimeMenuOn;
bool bCallGodMeetingMenu;			// 抗硅 皋春 剁快扁

Spr spr2[MAX_IMAGE2];		// 眠啊 皋春 捞固瘤 

bool g_bMagicSelect = true;  //	付过 俺充捞 皋葛扼捞令 俺充牢瘤 酒囱瘤 魄窜...  true -> 皋葛扼捞令...
bool bSoundOn = false;

bool g_DropOnHero = false;	// 荤恩俊霸 酒捞袍阑 冻绢哆啡阑 版快 true set
int g_MouseInMenu = 0;	// 031110 YGI

int memorize[12] = {0,};			// 皋葛扼捞令 合俊辑 荤侩...
int SkillOn=-1;				// 胶懦捞 场唱霸 登搁 -1肺 悸泼秦 霖促.

PosItem		skill_use_item[5][10];
PosItem		skill_use_item_result;

int con_to_img[7] = { 0, 263, 263, 265, 265, 265, 264 };		// 某腐磐 惑怕 弊覆阑 持绰促.

K_ITEM	i_DivideItem;		// 酒捞袍狼 加己客 困摹啊 乐促.
ItemJoinSelect learn_item_list[MAX_LEARN_ITEM] = {0,};

OtherCharacter	You;

int Hero_Ability[20];

MakeItem make_item_list[20];
MakeItem make_item_result;
int		selected_skill;		// 急琶登绢柳 胶懦

CharacterParty mouse_ch;		// 付快胶啊 甸绊 乐绰 荤恩...

int		storelistindex; // 惑痢俊辑 荤侩且 烙矫 函荐
bool	is_buymenu_On;	// buy 皋春啊 躲版快 悸泼秦 霖促.

int		nSkillLearnResult;	// 胶懦 硅快扁狼 搬苞 1:瓷仿捞 葛磊恩, 2:捣捞 葛磊恩, 3: 肋 劳躯澜
int		motherSkillImageNo[2];  // 胶懦 硅快扁俊辑 力格魄 捞固瘤 锅龋
int		motherSkillImageType[2];  // 胶懦 硅快扁俊辑 力格魄 捞固瘤 鸥涝

BOOL	RButtonDown;
BOOL	MouseDrag;
int			LButtonCount;		// 付快胶 滚瓢阑 穿福绊 乐菌带 矫埃

int			y_PutBarSize=0;              //HP唱 MP甫 免仿且 阜措 弊贰橇狼 臭捞甫 拌魂茄 蔼阑 历厘茄促.
int			id_password = TRUE;  // 酒捞叼 菩胶况靛 沫 吭促 艾促窍扁...

bool		MessageOn=false;			// MessageOn捞 飘风肺 眉农 登搁 皋牢 牢磐其捞胶 汲疙芒俊 皋矫瘤啊 夺促
char		Message[MAX_STRING];

int			g_MouseItemNumber=0;           //鸥涝俊 蝶扼 啊瘤绊 乐绰 酒捞袍狼 锅龋  0捞搁 酒捞袍捞 绝促绰 舵
int			g_MouseItemType=0;            //0捞搁 付快胶啊 绢恫 酒捞袍档 啊瘤绊 乐瘤 臼促绰 舵(付过,酒捞袍) 1=老馆 酒捞袍,2=付过 巩辑
RECT		rScreenRect;                  //皋春甫 力寇茄 角力 霸烙拳搁狼 谅钎 付快胶 哭率滚瓢阑 初阑锭 酒捞袍捞 冻绢瘤绰 巴阑 眉农茄促
int			YouGotItemFlag=false;
int			g_BoadAndSignNumber; // CSD-030324 // thai2 YGI

int			MouseItemInRectOn;			// 酒赣 芒 辟贸肺 酒捞袍捞 促啊吭阑 锭 贸府
POINT		MouseItemInRect;

int			cRMoveMenu=0;                 //皋牢 牢磐其捞胶俊辑 坷弗率俊 殿厘窍绰 皋春(酒捞袍,付过)啊 框流老锭 荤侩窍绰 墨款飘
int			cLMoveMenu=0;                 //皋牢 牢磐其捞胶俊辑 哭率俊 殿厘窍绰 皋春(胶萍捞磐胶,绢呼府萍,啊摹包)啊 框龙老锭 荤侩窍绰 墨款飘
int			fRMoveMenu=0;                 //皋春狼 辆幅,咯磋捞 惑炔俊 蝶扼 弊 惑怕甫 历厘窍绰 函荐 0老订 酒公老档 绝促 
int			fLMoveMenu=0;					// 哭率 皋春 摧扁 

int			nItemOther;						// 酒捞袍 皋春啊 凯副锭 鞍捞 栋具 窍绰 皋春
int			nPartyOther=0;					// 颇萍 皋春啊 摧洒搁 栋具且 皋春 
int			nPartyState = 0;				// 颇萍 皋春 哆扁 傈俊 固府 栋 乐菌带 皋春
int			nPartyShow=1;					// 皋牢 牢磐其捞胶 颇萍 皋春俊辑 急琶 扼捞飘 钎矫窍扁 函荐

struct		InterfaceFlag main_interface;
SystemInfo	system_info;

CHouse		*house;				// 笼 汲疙 -> 昏力 措惑 绊妨
CMenuStack	MenuStack;
int			chat_scroll_count;

POS			IP_base;					//  酒捞袍捞 盔贰 乐菌带 磊府

ItemAttr	InvItemAttr[3][3][8];
ItemAttr	EquipItemAttr[ITEM_EQUIP_MAX];//021119
ItemAttr	QuickItemAttr[ITEM_QUICK_MAX+1];
ItemAttr	BankItemAttr[5][3][6];
ItemAttr	HandItemAttr;
ItemAttr	SupperItemAttr[3][15];

ItemAttr	InvAttrBackUp[3][3][8];
ItemAttr	EquipAttrBackUp[8];
ItemAttr	QuickAttrBackUp[7];
ItemAttr	HandAttrBackUp;
ItemAttr	aItemInventoryFull;		// 牢亥配府 芒俊 菜 谩阑 锭

bool		LeftShiftOn;		// 哭率 矫橇飘 虐啊 喘妨 脸绰瘤 true : 喘覆, 
// int		AbilityToInt[20];

int			RectImageOn=0;		//概流 劝己拳啊 灯阑锭, 濒冠烙
int			nBankTemp=0;					//篮青 皋春俊辑 捣 拌魂窍扁 困茄 函荐

int			WearAble[9] = { 2, 3, 4, 5, 6, 7, 8, 8, 9 };		// 厘馒 困摹 函券 函荐 
int			HandBackUp;
int			HandBackUptype;
int			HandItemOn = false;

bool		no_active_box_yet;				// 辑滚俊辑 蔼阑 傈价 罐栏搁 false set.

int			aMagicItem[3][4][3][5];

int			SkillInventory[2][2][4];	// 胶懦 牢亥配府...
int			SkillInventory2[2][2][4];	// 硅快瘤 臼篮 胶懦
int			Skill_Know_Inv[3][3];

ItemJoinSelect Item_Select[MAX_LEARN_SKILL_PAGE][10];
ItemJoinSelect item_select_result;

int aSellBuyItemPos[MAX_BUY_ITEM*3*5];			// inventroy 绢蠢镑俊 乐带 拱扒牢瘤...
ItemAttr aSellBuyItemAttr[MAX_BUY_ITEM*3*5];

int aSellBuyItemMax;
const int y_ItemSubMenu[] = //021014 lsw
{
	MN_ITEM_MAKE,
	MN_ITEM_MAKE_OK, 
	MN_ITEM_MAKE_RARE_SELECT,
	MN_GM_2ND_SKILL,
	MN_SKILL_MASTER_MAKE,//021111 lsw
	MN_DIVIDE_ITEM,
	MN_CHARACTER_ITEM,
	MN_GAMBLE,
	MN_MERCHANT_REGISTER,
	MN_EXCHANGE_BOND_MONEY,
};

const int mainmenu[]=
{
	MN_MAININTERFACE,
	MN_MAIN_EXPLAIN,

	MN_QUICK_MAGIC_PLUS,
	MN_QUICK_MAGIC_SCROLL,
	MN_TIME_DISPLAY_ON_OFF,
	MN_QUICK_SKILL,

	MN_TIME_DISPLAY_MENU,
	MN_COMBAT_SKILL_DOING,//020420 lsw
	MN_COMBAT_SKILL_POINT,//020707 lsw

	MN_EXCHANGE_ITEM,
	MN_MAN_TO_MAN,		// 搬捧
	MN_SMALL_MAP,
	MN_DIVIDE_ITEM,
	MN_ITEM,
	MN_PARTY,

	MN_STATUS,
	MN_ABILITY,
	MN_ARIGEMENT,
	MN_TACTICS,

	MN_GUILD_ITEM_GET, 
	MN_GUILD_ITEM_PUT,

	MN_CHATTING,

	MN_FACE,
	MN_WISPER_LIST,

	MN_ARENA_LOBBY, 
	MN_OBSERVER_MODE,
	MN_BETTING,

	MN_SYSTEM,
	MN_SYSTEM_OPTION,
	MN_BANK_CUSTODY,

	MN_ITEM_MAKE,
	MN_ITEM_MAKE_SELECT,
	MN_ITEM_MAKE_OK,
	MN_ITEM_MAKE_RARE_SELECT,
	MN_COMBAT_SKILL_DOING,
	MN_COMBAT_SKILL_POINT,
	MN_GM_2ND_SKILL,
	MN_SKILL_MASTER_MAKE,//021111 lsw

	MN_MERCHANT_REGISTER,
	MN_EXCHANGE_BOND_MONEY,

	MN_CHARACTER_ITEM,
	MN_ITEM_SELECT,
	MN_VOTE_SIGN,

	MN_MESSAGEBOX_BIG,

	MN_PARTY_FACE1,
	MN_PARTY_FACE2,
	MN_PARTY_FACE3,
	MN_PARTY_FACE4,
	MN_PARTY_FACE5,
	MN_PARTY_FACE6,

 	MN_SMALL_TIPS,
	
	MN_DISPLAY_SKILL_EXP,
	MN_DISPLAY_TAC_EXP, 
	MN_DISPLAY_MAGIC_EXP, 

	MN_GAMBLE,

	MN_FIGHT_MAP_SIGN, 
	MN_DISTANCE_TABLE,
	MN_STORE_SIGN,

	MN_OK_MESSAGEBOX,
	MN_OKCANCEL_MESSAGEBOX,
	MN_ITEM_MESSAGEBOX,

	MN_DEL_CHAR_COMFORM,

	MN_SYSTEM_LOGOUT,
	MN_EFFECT_TOOL, 

⌨️ 快捷键说明

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