www.pudn.com > 3D_OnlineGame_Humen.rar > CmdAsk.cpp


#include "stdafx.h" 
#include "XMudClient.h" 
#include "CommandCheck.h" 
#include "MenuCreateNew.h" 
#include "CommunicateMsg.h" 
#include "midi.h" 
#include "faceplate.h" 
#include "CmdFunction.h" 
#include "FileFunctionItem.h" 
#include "D3DRMScreen.h" 
#include "MapInfo.h" 
#include "NpcInfo.h" 
#include "MainScreen.h" 
extern CMainScreen m_MainScreen; 
extern CList npcAsklist; 
 
extern rmfullglobals myglobs; 
extern int g_nGameState; 
extern CMenuCreateNew m_MenuCreateNew; 
extern SOCKET hLCltForRSvrSock; 
extern BOOL g_bGetInputMessage; 
extern CStringList g_strlistChannel; 
extern CStringList g_strlistSelfMsg; 
extern CStringList g_strlistMesssage; 
extern CStringList g_strlistPlayerOnline; 
extern CListplayerlist; 
extern CListequiplist; 
extern CListequiprentlist; 
extern CList itemlist; 
extern CRITICAL_SECTION csAnimation; 
extern CList  animationlist; 
extern CRITICAL_SECTION csMaplist; 
extern CList  maplist; 
extern CList  npclist; 
extern char g_tszPathName[256]; 
BOOL GetNpcAskInfo(CStringList * strComList) 
{ 
	npcAsklist.RemoveAll(); 
	CNpcAskInfo *lpNpcAskInfo; 
	int i,j; 
	CStringList strls; 
	CString strtmp,parm; 
	LPTSTR lpsz; 
	char *ps; 
	BOOL bFindHead=FALSE; 
 
	strtmp = strComList->GetHead(); 
	lpsz = strtmp.GetBuffer(strtmp.GetLength()+1); 
	parm=CString(","); 
	ps=strtok(lpsz,(const char*)parm); 
	ps=strtok(NULL,(const char*)parm); 
	strls.AddTail(ps); 
	for(;;) 
	{ 
		ps=strtok(NULL,(const char*)parm); 
		if(ps==NULL)break; 
		strls.AddTail(ps); 
	} 
 
	j = strls.GetCount(); 
	for(i=0;i j) 
				return FALSE; 
 
			strtmp = strls.GetAt( strls.FindIndex(i+2)); 
			if(lstrcmp("'RCEND'",strtmp))return FALSE; 
 
			lpNpcAskInfo = new CNpcAskInfo; 
			if(!lpNpcAskInfo)return FALSE; 
 
			strtmp = strls.GetAt( strls.FindIndex(i+1)); 
			lpNpcAskInfo->m_sCNAME = strtmp = strtmp.Mid(1,strtmp.GetLength()-2); 
 
			lpNpcAskInfo->m_iSHOW = 0; 
			lpNpcAskInfo->m_sENAME = ""; 
 
			strtmp = strls.GetAt( strls.FindIndex(i+3)); 
			if(!lstrcmp("'NPCASKEND'",strtmp)) 
			{ 
				npcAsklist.AddTail(lpNpcAskInfo); 
				break; 
			} 
			i = i+2; 
			npcAsklist.AddTail(lpNpcAskInfo); 
		} 
	} 
	strls.RemoveAll(); 
 
	return TRUE; 
} 
void SrvCmdAsk(CStringList * strComList) 
{ 
	CString sztmp; 
	CString szOK = strComList->GetAt(strComList->FindIndex(1)); 
	if(szOK == "FAIL") 
		sztmp = szGreenLow; 
	else 
		sztmp = szGreenHigt; 
	sztmp += strComList->GetAt(strComList->FindIndex(2)); 
	sztmp.SetAt(sztmp.Find(",",0),0); 
	AddSelfMsg((char*)(LPCSTR)sztmp); 
	strComList->RemoveHead(); 
	strComList->RemoveHead(); 
	GetNpcAskInfo(strComList); 
	m_MainScreen.mFirstFD.nShowState = SHOWNPCASK; 
	m_MainScreen.mFirstFD.bReDraw[0] = TRUE; 
	m_MainScreen.mFirstFD.bReDraw[1] = TRUE; 
	m_MainScreen.mFirstFD.ResetCount(); 
} 
void SrvCmdLook(CStringList * strComList) 
{ 
	CString sztmp; 
	CString szOK = strComList->GetAt(strComList->FindIndex(1)); 
 
	if(szOK == "FAIL") 
		sztmp = szGreenLow; 
	else 
		sztmp = szGreenHigt; 
	sztmp += strComList->GetAt(strComList->FindIndex(2)); 
	AddSelfMsg((char*)(LPCSTR)sztmp); 
}