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

📄 linecommand.cpp

📁 国内著名网络游戏dragon的客户端登陆用完整源码 配套一起上传的服务端部分可开服 无说明文档
💻 CPP
📖 第 1 页 / 共 3 页
字号:
/*****************************************************************************\
* Copyright (c), Future Entertainment World / Seoul, Republic of Korea        *
* All Rights Reserved.                                                        *
*                                                                             *
* This document contains proprietary and confidential information.  No        *
* parts of this document or the computer program it embodies may be in        *
* any way copied, duplicated, reproduced, translated into a different         *
* programming language, or distributed to any person, company, or             *
* corporation without the prior written consent of Future Entertainment World *
\*****************************************************************************/

#include "Stdafx.h"
#include <windows.h>

#include "Dragon.h"
#include "Hong_Sub.h"
#include "GameProc.h"
#include "Menu.h"
//#include "MenuDef.h"
#include "MenuNetWork.h"
#include "Char.h"
#include "Map.h"
#include "Counseler.h"		// 001129 KHS
#include "Music.h"
#include "LineCommand.h"
#include "smallmenu.h"
#include "menuset.h"
#include "SmallMenuSet.h"//020620 lsw
#include "chat.h"
#include "MailMgr.h"
#include "Skill.h"//021030 lsw
#include "Auction.h"//021030 lsw
#include "cScreenEffect.h" // CSD-030306
#include "ArenaManager.h"

extern CHARACTERLIST g_CharacterList;
extern void SendSquadChatMessage(int type,char* Message);			
extern void WarMenuOpen();											
extern void WarMenuNoticeOpen();

extern void ShowCommanderInfo(); 				// 010924 LTS
extern void ShowSquadInfo();
extern void WarGiveLife();						// 011015 LTS
extern void WarControl(char* Arg);				// 011020 LTS
extern void WarLoopTime(char* Arg);				// 011025 LTS
extern void WarGiveLife(char* Arg);				// 011213 LTS
extern void WarGiveLife2(char* Arg);			
extern int	IsDead( LPCHARACTER ch );
extern void SendLocalWarChat(char* Arg);		// LTS NEW LOCALWAR	
extern void SendAction(int i,int Direction);	// LTS ACTION
extern void SendCMD_SET_QUESTMODE(char* Arg);	// LTS DRAGON MODIFY
extern void SendCheckDualFame();              // LTS DUAL FAME
extern bool g_bStopWeatherSystem; // CSD-CN-031215
extern bool g_bOffWeatherSystem; // CSD-CN-031217

LINECOMMAND LC[MAX_LINE_COMMAND_] = 
{	//< CSD-030311 : 康绢绰 措巩磊肺 结林技夸..
	{"", LC_EAT_ITEM},					// 冈扁										
	{"", LC_CHAT_WHISPER},				// @										
	{"", LC_CHAT_WHISPER},				// TO
	{"", LC_CHAT_PARTY},				// 颇萍俊霸
	{"", LC_CHAT_PARTY},				// 悼丰											
	{"", LC_CHAT_GUILD},				// 辨靛俊霸								
	{"", LC_TOTAL_MAP_CONNECTIONS},		// 甘泅犁牢盔								
	{"", LC_TOTAL_CONNECTIONS},			// 泅犁牢盔											
	{"", LC_TOTAL_CONNECTIONS},			// 穿备											
	{"", LC_TOTAL_CONNECTIONS},			// USER												
	{"", LC_MAKE_PARTY},				// PARTY											
	{"", LC_MAKE_PARTY},				// 颇萍													
	{"", LC_DEFAULT_WALK},				// 叭扁													
	{"", LC_DEFAULT_WALK},				// 扁夯叭扁													
	{"", LC_DEFAULT_RUN},				// 崔府扁												
	{"", LC_DEFAULT_RUN},				// 扁夯崔府扁											
	{"", LC_TAME_STOP},					// 浆绢												
	{"", LC_TAME_STOP},					// 弊父																
	{"", LC_TAME_STOP},					// STOP														
	{"", LC_TAME_ATTACK},				// 傍拜秦													
	{"", LC_TAME_ATTACK},				// ATTACK												
	{"", LC_TAME_FOLLOWME},				// 蝶扼客											
	{"", LC_TAME_FOLLOWME},				// FOLLOW												
	{"", LC_TAME_NAME},					// 匙捞抚篮												
	{"", LC_TAME_NAME},					// NAME											
	{"", LC_OPEN_TIMEMENU},				// 矫埃焊扁								
	{"", LC_OPEN_TIMEMENU},				// TIME 								
	{"", LC_CLOSE_TIMEMENU},			// 矫埃掺扁									
	{"", LC_CLOSE_TIMEMENU},			// 矫埃摧扁											
	{"", LC_OPEN_TIMEMENU},				// 矫埃										
	{"", LC_CLOSE_ALL},					// OFF													
	{"", LC_EAR_MESSAGE_REFUSE_WHO},	// 芭何惑措												
	{"", LC_EAR_MESSAGE_REFUSE},		// 庇加富芭何									
	{"", LC_EAR_MESSAGE_OK},			// 庇加富倾遏									
	{"", LC_REPRINT_EAR_MESSAGE},		// 率瘤				
	{"", LC_GREETING},					// 牢荤富 								
	{"", LC_EXPLAIN_CLOSE},				// 汲疙摧扁																
	{"", LC_EXPLAIN_CLOSE},				// 汲疙掺扁									
	{"", LC_EXPLAIN_OPEN},				// 汲疙焊扁					
	{"", LC_REQ_MAN_TO_MAN},			// 搬捧						
	{"", LC_RESET_MAGIC_ARRAY},			// 脚狼鼻瓷 						
	{"", LC_RESET_MAGIC_ARRAY},			// 付过犁硅摹										
	{"", LC_MSG_ALL_NATION},			// 葛滴							
	{"", LC_GUILD_EXIT},				// 辨靛呕硼					
	{"", LC_GUILD_JOIN},				// 辨靛啊涝						
	{"", LC_GUILD_ALL_MSG},				// 辨靛葛滴					
	{"", LC_GUILD_ALL_MSG},				// 辨靛傍瘤					
	{"", LC_GUILD_CHANGE_EACH_LEVEL},	// 辨靛殿鞭							
	{"", LC_GUILD_CMD_INFO},			// 辨靛疙飞
	{"", LC_CHANGE_JOB},				// 流诀官操扁
	{"", LC_CHANGE_JOB},				// 流诀背眉						
	{"", LC_STOP_WAR},					// 绒傈
	{"", LC_SCAN_TARGET_VYSEUS},		// 具荤胶狼 传捞咯
	{"", LC_SCAN_TARGET_ZYPERN},		// 匆覆狼 狼瘤咯
	{"", LC_KILL_CHARACTER},			// 绒侥
	{"", LC_DIRECTIONS},				// 规氢
	{"", LC_OPEN_DISPLAY_SKILL_EXP},	// 胶懦焊扁
	{"", LC_CLOSE_DISPLAY_SKILL_EXP},	// 胶懦摧扁
	{"", LC_OPEN_DISPLAY_TAC_EXP},		// 琶平焊扁
	{"", LC_CLOSE_DISPLAY_TAC_EXP},		// 琶平摧扁
	{"", LC_LIGHTOFRESCUE},				// 备盔狼蝴
	{"", LC_AUTOLEVELUP_CLOSE},			// 磊悼秦力
	{"", LC_AUTOLEVELUP_OPEN},			// 磊悼盒硅							
	{"", LC_ANNONCE_ON},			    // 档框富佃扁
	{"", LC_ANNONCE_OFF},			    // 档框富掺扁
	{"", LC_EAR_COMMAND_INFO},		    // 庇加富
	{"", LC_FIGHTMAP_ALL_CHAT},		    // 傈眉
	{"", LC_SMALL_TIPS},			    // 档框
	{"", LC_SMALL_TIPS},			    // HELP
	{"", LC_SMALL_TIPS},			    // ?
	{"", LC_EMOTION},				    // 皑沥
	{"", LC_EXIT_GUILD},
	{"", LC_VIEW_NK},				    // NK 荐摹 焊扁
	{"", LC_SQUAD_LEADER},			    // 荤飞包 -> 何措厘
	{"", LC_SQUAD},					    // 荤飞包 -> 何措
	{"", LC_SQUAD_MEMBER},              // 何措厘 -> 何措盔
	{"", LC_SQUAD_MEMBER_TO_MEMBER},    // 何措盔 -> 何措盔	
	{"", LC_WAR_MENU_OPEN},		        // War Menu Open
	{"", LC_WAR_MENU_NOTICE_OPEN},	    // War Menu NOTICE
	{"", LC_GUILD_MAIL},			    // 辨靛皋老
	{"", LC_SQUAD_CHAT},			    // 010915 LTS	//烙矫
	{"", LC_GUILD_CHAT},			    // #
	{"", LC_COMMANDER_INFO},		    // 010924 LTS
	{"", LC_SQUAD_INFO},			    // 010924 LTS	
	{"", LC_GUILD_CHAT_ON},		        // 辨靛盲泼难扁
	{"", LC_GUILD_CHAT_OFF},		    // 辨靛盲泼掺扁
	{"", LC_RESET_ABILITY},		        // 绢呼犁盒硅
	{"", LC_WAR_GIVE_LIFE},		        // 011015 LTS	// 傈里磐 蜡飞 混府扁 // 何劝
	{"", LC_PARTY_ALL_FREE},		    // 颇萍秦力
	{"", LC_SEND_GUILD_MAIL},	        // 辨靛皋老焊郴扁
	{"", LC_SEND_MAIL},		 	        // 皋老焊郴扁
	{"", LC_SHOW_ME_DUAL},		  	    // 绢狄阑 叭绊 矫埃阑 崔赴促
	{"", LC_REPORTER_MODE},			    // 扁磊葛靛
	{"", LC_FRIEND_MENU},			    // 模备
	{"", LC_WAR_GIVE_LIFE2},		    // 何劝厘家				// 011213 LTS	N_YILSE
	{"", LC_SCAN_TARGET_YILSE},		    // 011217 LTS
	{"", LC_GETCOLOSSUS_INFO},		    // 妮肺辑胶, 
	{"", LC_GETCOLOSSUS_INFO},		    // colossus, 
	{"", LC_INVITE_COLOSSUS},		    // 檬措 
	{"", LC_JOIN_COLOSSUS},			    // 曼啊
	{"", LC_PK_ON_OFF},				    // PK
	{"", LC_COMBAT_SKILL_ON_OFF},	    // PK//020420 lsw
	{"", LC_LOCALWAR_CHAT},			    // 惫瘤傈	%		// LTS NEW LOCALWAR
	{"", LC_QUESTMODE},				    // LTS DRAGON MODIFY
	{"", LC_WEATHER_ON}, // CSD-CN-031215 : 朝揪瓤苞难扁
	{"", LC_WEATHER_OFF}, // CSD-CN-031215 : 朝揪瓤苞掺扁
	{"", LC_COMBAT_RESET},			    // CSD-020611
	{"", LC_MAGIC_DISPLAY_ON},          // CSD-020620
	{"", LC_MAGIC_DISPLAY_OFF},         // CSD-020620
	{"", LC_SET_NORMAL_CHAT_MODE},      // CSD-020620
	{"", LC_REPRINT_NORMAL_CHAT},	    // 焊烹率瘤
	{"", LC_REPRINT_GUILD_CHAT},	    // 辨靛率瘤
	{"", LC_REPRINT_GUILD_BBS},	        // 辨靛傍瘤率瘤
	{"", LC_TRADE},			            // 020808 YGI 
	{"", LC_CHECK_DUAL_FAME},		    // 掂倔疙己     // LTS DUAL FAME
	{"", LC_WHAT_QUEST_IN_MAP},	        // 021007	//甘俊 绢恫 涅胶飘啊 乐绰啊?
	{"", LC_MERCHANT_BBS},		        // 021022 惑牢苞 流立 芭贰
	{"", LC_MERCHANT_EXCHANGE},		    // 021022 惑牢苞 芭贰
	{"", LC_EVENT_MOVE_MAP},		    // 021107 YGI
	//kyo <<
	{"", LC_EMOTI_LOVE},
	{"", LC_EMOTI_SMILE},
	{"", LC_EMOTI_HAPPY},
	{"", LC_EMOTI_SHY},
	{"", LC_EMOTI_CRY},
	{"", LC_EMOTI_GOOD},
	{"", LC_EMOTI_SORRY},
	{"", LC_EMOTI_ANGER},
	{"", LC_EMOTI_THANKS},
	{"", LC_EMOTI_TELL},
	{"", LC_GAME_SCISSOR},
	{"", LC_GAME_ROCK},
	{"", LC_GAME_PAPER},
	{"", LC_GAME_GO},
	{"", LC_GAME_HELP},
	{"", LC_GAME_PARTY},
	{"", LC_GAME_HEAL},
	{"", LC_GAME_TRANSACTION},
	{"", LC_GAME_BEG},
	{"", LC_GAME_CONGRAGULATION},

	{"", LC_BBS_LIMITED_USER_ADD},
	{"", LC_BBS_ON},
	{"", LC_BBS_OFF},
	//>>kyo
	{"", 0}				
};  //> CSD-030311

char	Lc_ChatType;
char	Lc_TempChatName[ 31];
char	Lc_DefaultMoveType;

int		Lc_AutoMovementCmd;


char	GreetingStr[ FILENAME_MAX];

/////////////////////////////////////////////////////////////////////////////////////////
//
//		User Functions Declaration..
//
//
void SendTotalMapConnections( void );
void SendTotalConnections( void );
void RecvTotalMapConnections( int no );
void RecvTotalConnections( int no );

void LC_SendInputParty( char *name );

void SendTameCommand( int command, char *s );
void RecvHostEnd(  tame_end *p );



///////////////////////////////////////////////////////////////////////////////////////////
//
//		User Functions..
//
//

int LineCommandSortFunction( const void *first, const void *second )
{
	LINECOMMAND *lc1 = (LINECOMMAND *)first;
	LINECOMMAND *lc2 = (LINECOMMAND *)second;
	return ( strlen( lc2->reserved ) - strlen( lc1->reserved ) );
}

int IsLineCommand( char *message, int nsize )
{	
	//if( Hero->viewtype == VIEWTYPE_GHOST_ )// 蜡飞老 版快
	//	return ;		// 疙飞绢甫 给 窍霸 茄促.
	int c; 
	LPLINECOMMAND lc;
	LPCHARACTER ch = Hero;
	char *t, *t1;
	char tempmessage[MAX_CHAT_STRING];
	
	if( *message != '/' ) return 0;
	
	message ++;
	strcpy( tempmessage, message );
	//	CharUpper( message );//020926 lsw
	static first = 1;
	if( first )
	{
		for( int i=0; i<MAX_LINE_COMMAND_; i++ )
		{
			if( !LC[i].reserved[0] ) break;
		}
		qsort( LC, i, sizeof( LINECOMMAND ), LineCommandSortFunction );
		first = 0;
	}
	
	c = 0;
	lc = &LC[ c];
	while( lc->reserved[0] )
	{		
		if( 0 == strnicmp( lc->reserved, message, strlen( lc->reserved )) )//020926 lsw
		{
			t = tempmessage + strlen(lc->reserved );
			t1 = EatFrontWhiteChar( t );
			
			switch (lc->command)
			{	
			case LC_GO_STOP:
				{
					Lc_AutoMovementCmd = 0;
					break;
				}
			case LC_GO_WEST:
			case LC_GO_NORTH:
			case LC_GO_SOUTH:
			case LC_GO_EAST:		
			case LC_GO_RANDOM:
				{
					Lc_AutoMovementCmd = lc->command;
				
					switch( Lc_AutoMovementCmd )
					{	
					case LC_GO_EAST:
						{
							SendMessage(g_hwndMain, WM_LBUTTONDOWN, 0, MAKELONG(Hero->x - Mapx + 100, Hero->y - Mapy));
							break;
						}
					case LC_GO_WEST:
						{
							SendMessage(g_hwndMain, WM_LBUTTONDOWN, 0, MAKELONG(Hero->x - Mapx - 100, Hero->y - Mapy));
							break;
						}
					case LC_GO_NORTH:
						{
							SendMessage(g_hwndMain, WM_LBUTTONDOWN, 0, MAKELONG(Hero->x - Mapx, Hero->y - Mapy  - 100));
							break;
						}
					case LC_GO_SOUTH:
						{
							SendMessage( g_hwndMain, WM_LBUTTONDOWN, 0, MAKELONG( Hero->x - Mapx, Hero->y - Mapy  + 100) );
							break;
						}
					}

					break;
				}
			case LC_EAT_ITEM:
			case LC_NOT_GO:
				{
					break;
				}
			case LC_CHAT_WHISPER:
				{
					SendWisperByLineCommand(t);
					break;
				}
			case LC_CHAT_PARTY:
				{
					SendPartyChatByLineCommand(t);//020701 lsw
					break;
				}
			case LC_CHAT_GUILD:
				{
					SendChatSet(CHATTYPE_GUILD, NULL);
					break;
				}
			case LC_TOTAL_MAP_CONNECTIONS:
				{
					SendTotalMapConnections();
					break;
				}
			case LC_TOTAL_CONNECTIONS:
				{
					SendTotalConnections();
					break;
				}
			case LC_MAKE_PARTY:
				{
					LC_SendInputParty(t1);
					break;
				}
			case LC_DEFAULT_RUN:
				{
					Lc_DefaultMoveType = 1;
					Kein_PutMessage(KM_INFO, kein_GetMenuString(39));
					break;
				}
			case LC_DEFAULT_WALK:
				{
					Lc_DefaultMoveType = 0;
					Kein_PutMessage(KM_INFO, kein_GetMenuString(40));
					break;
				}
			case LC_TAME_STOP:
				{
					SendTameCommand(LC_TAME_STOP, t1);
					break;
				}
			case LC_TAME_ATTACK:
				{
					SendTameCommand(LC_TAME_ATTACK, t1);
					break;
				}
			case LC_TAME_FOLLOWME:
				{
					SendTameCommand(LC_TAME_FOLLOWME, t1);
					break;
				}
			case LC_TAME_NAME:
				{
					SendTameCommand( LC_TAME_NAME, t1 );	
					break;
				}
			case LC_OPEN_TIMEMENU:
				{
					g_bTimeMenuOn = true;
					break;
				}
			case LC_CLOSE_TIMEMENU:
				{
					g_bTimeMenuOn = false;
					break;
				}
			case LC_CLOSE_ALL:
				{
					g_bTimeMenuOn = false; g_ExplainMenuOn = false;
					CloseAllMenu();
					break;
				}
			case LC_EXPLAIN_OPEN:
				{
					g_ExplainMenuOn = true;
					break;
				}
			case LC_EXPLAIN_CLOSE:
				{
					g_ExplainMenuOn = false;
					break;
				}
			case LC_EAR_MESSAGE_REFUSE: 
				{
					ChatMgr.SetRefuseWhiper(t1);//021025 lsw
					break;
				}
			case LC_EAR_MESSAGE_OK: 
				{
					ChatMgr.SetAcceptWhiper(t1);//021025 lsw
					break;
				}
			case LC_EAR_MESSAGE_REFUSE_WHO:
				{
					ChatMgr.DisplayRefuseList();
					break;
				}
			case LC_REQ_MAN_TO_MAN:	
				{
					SendReqManToMan(t1); 
					break;		// 0810 YGI
				}
			case LC_GREETING:
				{
					strcpy(GreetingStr, t1);
					AddCurrentStatusMessage(FONT_COLOR_SOLID_GREEN, lan->OutputMessage(3,49), GreetingStr);//010215 lsw
					AddCurrentStatusMessage(FONT_COLOR_SOLID_GREEN, lan->OutputMessage(3,48));//010215 lsw
					break;
				}
			case LC_RESET_MAGIC_ARRAY:
				{
					if (SCharacterData.nCharacterData[SPELL] == PRIEST_SPELL)
					{
						MagicSetting2(); // 盔贰~ 橇府胶飘 版快...
					}

					break;
				}
			case LC_MSG_ALL_NATION:
				{
					SendAllMsgNation(t1);
					break;
				}
			case LC_GUILD_EXIT:
				{
					SendGuildExit(t1);
					break;
				}
			case LC_GUILD_JOIN:
				{
					SendGuildJoin(t1);
					break;
				}
			case LC_GUILD_ALL_MSG:
				{
					SendGuildAllMsg(t1);
					break;
				}
			case LC_GUILD_CHANGE_EACH_LEVEL:

⌨️ 快捷键说明

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