CommandCheck.cpp
上传用户:garry_shen
上传日期:2015-04-15
资源大小:45647k
文件大小:27k
- #include "stdafx.h"
- #include "XMudClient.h"
- #include "CommandCheck.h"
- #include "MenuCreateNew.h"
- #include "MenuLoadOldPlay.h"
- #include "CommunicateMsg.h"
- #include "midi.h"
- #include "faceplate.h"
- #include "CmdFunction.h"
- #include "InitInternet.h"
- #include "ChessWnd.h"
- #include "MainScreen.h"
- #include "3DFunction.h"
- #include "D3DRMScreen.h"
- #include "MyMusic.h"
- extern LPDIRECT3DRMFRAME3 g_lpplayer;
- extern LPDIRECT3DRMFRAME3 g_sFrame;
- extern D3DVECTOR g_PlayAndCameraPos;
- extern CList <animationCallbackArgs *, animationCallbackArgs *> animationlist;
- extern PathInfo info;
- extern int g_playerState;
- extern LPDIRECT3DRM3 g_lpD3DRM;
- extern rmfullglobals myglobs;
- extern int g_nGameState;
- extern CMenuCreateNew m_MenuCreateNew;
- extern CMenuLoadOldPlay m_MenuLoadOldPlay;
- extern SOCKET hLCltForRSvrSock;
- extern BOOL g_bGetInputMessage;
- extern CList<CPlayerInfo*,CPlayerInfo*>playerlist;
- extern D3DVECTOR g_lightgammer;
- extern LPDIRECT3DRMLIGHT g_parallel;
- extern CMainScreen m_MainScreen;
- extern int playershout = 0;
- CStringList g_strlistChannel;
- CStringList g_strlistSelfMsg;
- CStringList g_strlistMesssage;
- CStringList g_strlistPlayerOnline;
- CStringList g_strlistOnline;
- CStringList g_equiprentlist;
- CStringList ListCom;
- TOldMsg m_OldMsg;
- extern long GetParameterLength(CString MyString);
- extern BOOL g_Clear3DMessage[2];
- extern BOOL bSelectDefault;
- extern void SaveConfigFile(void);
- void SendShowMsg(char *ps)
- {
- long ExLength=0;
- CString szRecMess, szTmp, szName;
- szRecMess = ps;
- szTmp = szName = szRecMess.Left(5);
- if(!stricmp(szTmp,szNewColor))
- {
- ExLength = GetParameterLength(szRecMess);
- szTmp = szName = szRecMess.Left(5+ExLength);
- }
- for(int i=5+ExLength;i<szRecMess.GetLength();i++){
- register unsigned char sTmpCh;
- sTmpCh = szRecMess.GetAt(i);
- szTmp += sTmpCh;
- if(IsDBCSLeadByte(sTmpCh)){
- if(++i<szRecMess.GetLength()){
- szTmp += szRecMess.GetAt(i);
- }else{
- break;
- }
- }
- if(szTmp.GetLength() >= 79){
- if(g_strlistMesssage.GetCount() > 17){
- g_strlistMesssage.RemoveHead();
- }
- g_strlistMesssage.AddTail(szTmp);
- szTmp = szName;
- }
- }
- if(szTmp.GetLength() > 5+ExLength){
- if(g_strlistMesssage.GetCount() > 17){
- g_strlistMesssage.RemoveHead();
- }
- g_strlistMesssage.AddTail(szTmp);
- szTmp = szName;
- }
- g_Clear3DMessage[0]=TRUE;
- g_Clear3DMessage[1]=TRUE;
- }
- void AddSelfMsg(CString ps)
- {
- CString szRecMess, szTmp, szName;
- int Scroll = 0;
- szRecMess = ps;
- szTmp = szName = szRecMess.Left(5);
- for(int i=5;i<szRecMess.GetLength();i++)
- {
- register unsigned char sTmpCh;
- sTmpCh = szRecMess.GetAt(i);
- szTmp += sTmpCh;
- if(IsDBCSLeadByte(sTmpCh))
- {
- if(++i<szRecMess.GetLength())
- {
- szTmp += szRecMess.GetAt(i);
- }
- else
- {
- break;
- }
- }
- if(szTmp.GetLength() >= 79)
- {
- if(g_strlistSelfMsg.GetCount() > 99)
- {
- g_strlistSelfMsg.RemoveHead();
- }
- g_strlistSelfMsg.AddTail(szTmp);
- szTmp = szName;
- Scroll++;
- }
- }
- if(szTmp.GetLength() > 5)
- {
- if(g_strlistSelfMsg.GetCount() > 99)
- {
- g_strlistSelfMsg.RemoveHead();
- }
- g_strlistSelfMsg.AddTail(szTmp);
- szTmp = szName;
- Scroll++;
- }
- m_MainScreen.mTalkFD.bReDraw[0]=TRUE;
- m_MainScreen.mTalkFD.bReDraw[1]=TRUE;
- m_MainScreen.DisplaySelfMessage(TRUE);
- }
- void GetCommandMsg(CString strMsg)
- {
- if(strMsg.IsEmpty())
- return;
- switch(g_nGameState){
- case GAME_CREATEPLAYER:
- if(g_bGetInputMessage){
- if(strMsg.IsEmpty()){
- g_bGetInputMessage = FALSE;
- return;
- }
- m_MenuCreateNew.CreateNewInputMsg(strMsg);
- }
- break;
- default:
- break;
- }
- return;
- }
- void InitCommandList()
- {
- ListCom.AddTail("JoinChannel");
- ListCom.AddTail("Channel");
- ListCom.AddTail("Talk");
- ListCom.AddTail("Shout");
- ListCom.AddTail("Tell");
- ListCom.AddTail("Who-l");
- ListCom.AddTail("Who");
- ListCom.AddTail("LeaveChannel");
- ListCom.AddTail("DefendTell");
- ListCom.AddTail("DefendDel");
- ListCom.AddTail("GetOut");
- ListCom.AddTail("Ask");
- //ListCom.AddTail("Look");
- ListCom.AddTail("Apprentice");
- ListCom.AddTail("Skill");
- ListCom.AddTail("Fight");
- ListCom.AddTail("Kill");
- ListCom.AddTail("DaZuo");
- ListCom.AddTail("TuNa");
- ListCom.AddTail("YunGong");
- ListCom.AddTail("Mapping");
- ListCom.AddTail("Escape");
- ListCom.AddTail("Restart");
- ListCom.AddTail("Use");
- ListCom.AddTail("Look");
- ListCom.AddTail("Give");
- ListCom.AddTail("Drop");
- ListCom.AddTail("Arm");
- ListCom.AddTail("Unarm");
- ListCom.AddTail("Practice");
- ListCom.AddTail("JoinTeam");
- ListCom.AddTail("LeaveTeam");
- ListCom.AddTail("Who-t");
- ListCom.AddTail("Format");
- ListCom.AddTail("Unformat");
- ListCom.AddTail("Assign");
- ListCom.AddTail("Cancel");
- ListCom.AddTail("NewLeader");
- ListCom.AddTail("NewFamily");
- ListCom.AddTail("NewNPC");
- ListCom.AddTail("SetSkill");
- ListCom.AddTail("Exit");
- ListCom.AddTail("MusicOff");
- ListCom.AddTail("MusicOn");
- ListCom.AddTail("+");
- ListCom.AddTail("-");
- ListCom.AddTail("SwitchPort");
- ListCom.AddTail("AcceptFight");
- ListCom.AddTail("RejectFight");
- ListCom.AddTail("Save");
- ListCom.AddTail("Help");
- ListCom.AddTail("Rent");
- }
- void CheckInputCom(char * szSendMsg)
- {
- CComApprentice m_ComApprentice;
- CPlayerInfo *lpPlayerInfo;
- CChessWnd m_ChessWnd;
- lpPlayerInfo = playerlist.GetHead();
- CStringList strls;
- CString parm,strtmp;
- CString msg;
- char *ps;
- int i = 0,j;
- msg=(LPSTR)DONT_KNOW;
- parm=CString(" ntr");
- ps=strtok(szSendMsg,(const char*)parm);
- while (ps) {
- strls.AddTail(ps);
- ps=strtok(NULL,(const char*)parm);
- }
- if(strls.GetCount() < 1) return;
- strtmp=strls.GetHead();
- if(strtmp[0] == ':') {
- if( (GetTickCount() - myglobs.nWaitNext) > 1000 )
- {
- POSITION pos;
- CMainScreen::TEmote * lpEmote;
- strtmp = strtmp.Right(strtmp.GetLength()-1);
- pos = m_MainScreen.listAllEmote.GetHeadPosition();
- while (pos != NULL)
- {
- lpEmote = m_MainScreen.listAllEmote.GetNext(pos);
- if(lpEmote->szEmote == strtmp)
- {
- pos = m_MainScreen.listAllEmote.GetHeadPosition();
- break;
- }
- }
- if(pos != NULL) {
- bool bErr = false;
- CString szName;
- szName.Empty();
- if(strls.GetCount() == 1) {
- if(!(lpEmote->nType & EMT_HAVE_NONAME))
- bErr = true;
- }else {
- szName = strls.GetAt(strls.FindIndex(1));
- if(szName == "me") {
- if(!(lpEmote->nType & EMT_HAVE_SELF))
- bErr = true;
- }else if(!(lpEmote->nType & EMT_HAVE_TARGET))
- bErr = true;
- }
- if(bErr) {
- szName = strtmp;
- strtmp.Format("%s硂