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

📄 n_eventnpc.cpp

📁 mud游戏人在江湖
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// N_EventNpc.cpp: implementation of the CN_EventNpc class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "..\..\..\goods\Goods\Goods.h"
#include "..\..\Npc.h"
#include "..\..\..\Common.h"
#include "N_EventNpc.h"
#include "..\..\..\config.h"
#include "..\..\..\commandcheck.h"

extern char g_tszPathName[256];
extern rmfullglobals myglobs;

extern void GetXFileName(CPlayerInfo * lpPlayerInfo);

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CN_EventNpc::CN_EventNpc(char *szPath, char *szNpcFile):CN_Disciple(szPath, szNpcFile)
{
	FILE *pFile = NULL;
	char szFileName[512], szBuf1[512], szBuf2[512];

	int nAskType = 0;
	g_HasEvent = 0;
	g_pNpcEvent = NULL;
	list<CEventAsk>::iterator iterEventAsk;
	char szKeyWord[128] = "NULL";

	nLimitCount = 0;
	strcpy(szFileName, szPath);
	strcat(szFileName, "\\");
	strcat(szFileName, szNpcFile);

    pFile = fopen(szFileName,"r");
	if(pFile != NULL)
	{
        while(fscanf(pFile,"%s",szBuf1)!=EOF)
		{
            if(strcmp(szBuf1,"ㄆン") == 0)
			{
				fscanf(pFile,"%s",szBuf1);

				if(strcmp(szBuf1,"礚") != 0)
				{
					strcpy(szBuf2, g_tszPathName);
					strcat(szBuf2, "\\Event\\");
					strcat(szBuf2, szBuf1);
					LoadNpcEventFile(szBuf2);

					for(iterEventAsk = (g_pNpcEvent->EventAskList).begin(); iterEventAsk != (g_pNpcEvent->EventAskList).end(); iterEventAsk++)
					{

						switch(iterEventAsk->AskType)
						{
							case EV_KEYWORD_Visible		:
									nAskType = NPCASK_visible;
									break;
							case EV_KEYWORD_Invisible	:
									nAskType = 0;
									break;
							default						:
									nAskType = 0;
									break;
						}

						strcpy(szKeyWord,(iterEventAsk->KeyWord).c_str());
						AddAsk(szKeyWord, nAskType, "");
					}
				}
			}else if(!strcmp(szBuf1,"禦芥"))	{
				FILE *sfp=NULL;
				int kp=0;
				fscanf(pFile,"%s",szBuf1);

				if(strcmp(szBuf1,"礚") != 0)	{
					strcpy(szBuf2, g_tszPathName);
					strcat(szBuf2, "\\Event\\");
					strcat(szBuf2, szBuf1);
					sfp = fopen(szBuf2,"r");
					nAsk = 0;	
					 while(fscanf(sfp,"%s",szBuf1)!=EOF)	{
						 //AssSale(szBuf1, 0,"");
					 }
				}

			}
		}	// while
		fclose(pFile);

	}else{
	}
}

CN_EventNpc::~CN_EventNpc()
{

}

void CN_EventNpc::LoadNpcEventFile(char *szNpcEventFile)
{

    // Load NPC Event File
    FILE *pFile;
    CString szStr;

    //char szBuf1[64], szBuf2[64], szBuf3[64], szBuf4[64];
	char szBuf1[512], szBuf2[512], szBuf3[512], szBuf4[512];

    int nBuf1 = 0, nBuf2 = 0, nBuf3 = 0, nBuf4 = 0;

    CEventAsk*   pEventAsk = NULL;
    CEventLimit* pEventLimit = NULL;
    CEventRun*   pEventRun = NULL;

// initialize g_pNpcEvent start

    pFile = fopen(szNpcEventFile,"r");
	if(pFile != NULL)
	{
		g_pNpcEvent = new CNpcEvent;
		g_HasEvent = 1;

        (g_pNpcEvent->EventAskList).clear();

        while(fscanf(pFile,"%s",szBuf1)!=EOF)     //while [AskItem]
		{
            szStr = szBuf1;
            if(szStr == "[AskEnd]")
            {
                continue;
            }
            else if(szStr == "[AskItem]")
            {
                if(fscanf(pFile, "%s %s %s", szBuf1, szBuf2, szBuf3) == 3)
                {
                    nBuf1 = atoi(szBuf2);
                    nBuf2 = atoi(szBuf3);
                    pEventAsk = new CEventAsk(szBuf1, nBuf1, nBuf2);
                    while(fscanf(pFile,"%s",szBuf1)!=EOF)     //while [Default]
                    {
                        szStr = szBuf1;
                        if(szStr == "[AskEnd]")
                        {
                            break;
                        }
                        else if(szStr == "[DefaultEnd]")
                        {
                            break;
                        }
                        else if(szStr == "[Default]")
                        {
// Read Default EventRun data

                            fscanf(pFile,"%s",szBuf1);
                            szStr = szBuf1;

                            if(szStr == "[No]")
                            {
                                fscanf(pFile,"%s",szBuf1);

                                if(strcmp(szBuf1, "NULLMSG") == 0)
                                {
                                    strcpy(szBuf1, "");
                                }

                                pEventAsk->MsgDefaultWhenNo = szBuf1;
                                while(fscanf(pFile,"%s",szBuf1)!=EOF)     //while [Event] when [No]
                                {
                                    szStr = szBuf1;
                                    if(szStr == "[NoEnd]")
                                    {
                                        break;
                                    }
                                    if(szStr == "[EventRun]")
                                    {
                                        if(fscanf(pFile, "%s %s %s %s", szBuf1, szBuf2, szBuf3, szBuf4) == 4)
                                        {
                                            pEventRun = new CEventRun;
                                            nBuf1 = atoi(szBuf1);
                                            pEventRun->EventRunType = nBuf1;
                                            pEventRun->EventRunItemName = szBuf2;
                                             nBuf3 = atoi(szBuf3);
                                            pEventRun->EventRunValue = nBuf3;
    		                                nBuf4 = atoi(szBuf4);
              				                pEventRun->EventRunGoodKind = nBuf4;
                                        }
                                        (pEventAsk->DefaultEventRunListWhenNo).push_back(*pEventRun);
                                        delete pEventRun;
                                    }
                                }    //while [Default Event] when [No]
                            }    //if [Default No]
                            fscanf(pFile,"%s",szBuf1);
                            szStr = szBuf1;

                            if(szStr == "[Yes]")
                            {
                                fscanf(pFile,"%s",szBuf1);
                                if(strcmp(szBuf1, "NULLMSG") == 0)
                                {
                                    strcpy(szBuf1, "");
                                }
                                pEventAsk->MsgDefaultWhenYes = szBuf1;
                                while(fscanf(pFile,"%s",szBuf1)!=EOF)     //while [Event] when [Yes]
                                {
                                    szStr = szBuf1;
                                    if(szStr == "[YesEnd]")
                                    {
                                        break;
                                    }
                                    else if(szStr == "[EventRun]")
                                    {
                                        if(fscanf(pFile, "%s %s %s %s", szBuf1, szBuf2, szBuf3, szBuf4) == 4)
                                        {
                                            pEventRun = new CEventRun;
                                            nBuf1 = atoi(szBuf1);
                                            pEventRun->EventRunType = nBuf1;

                                            pEventRun->EventRunItemName = szBuf2;
                                            nBuf3 = atoi(szBuf3);   
                                            pEventRun->EventRunValue = nBuf3;

⌨️ 快捷键说明

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