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

📄 stepmigration.cpp

📁 国内著名网络游戏dragon的服务端完整源码 内附完整数据库结构
💻 CPP
字号:
// StepMigration.cpp: implementation of the CStepMigration class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "StepMigration.h"

#include "MyLog.h"
#include "Main.h"
#include "CharList.h"

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

CStepMigration::CStepMigration()
{
	m_vtBuffer.clear();
}

CStepMigration::~CStepMigration()
{
	m_vtBuffer.clear();
}

///////////////////////////////////////////////////////////////////////////////
// Public Method
///////////////////////////////////////////////////////////////////////////////

void CStepMigration::Load(char* pData)
{	// 单捞鸥海捞胶俊辑 巩磊凯 历厘篮 箭磊 0阑 NULL肺 牢侥窍骨肺 1究 哗辑 肺靛
	char aBuffer[MAX_STEP];
	memcpy(aBuffer, pData, MAX_STEP);

	for (int i = 0; i < MAX_STEP; ++i)
	{
		*(pData + i) -= 1;
	}

	memcpy(aBuffer, pData, MAX_STEP);
	CheckStepInfo(pData);
}

void CStepMigration::Save(char* pData)
{	// 单捞鸥海捞胶俊辑 巩磊凯 历厘篮 箭磊 0阑 NULL肺 牢侥窍骨肺 1究 歹秦辑 历厘
	CheckStepInfo(pData);

	char aBuffer[MAX_STEP];
	memcpy(aBuffer, pData, MAX_STEP);

	for (int i = 0; i < MAX_STEP; ++i)
	{
		*(pData + i) += 1;
	}
}

///////////////////////////////////////////////////////////////////////////////
// Protected Method
///////////////////////////////////////////////////////////////////////////////

void CStepMigration::CheckStepInfo(char* pData)
{	// 某腐磐狼 窜拌 沥焊 八荤
	m_vtBuffer.assign(pData, pData + MAX_STEP);
	
	CheckClassStep(CLS_STEP);
	CheckDualClass(DUAL_CLS);
	CheckCombatPoint(CSP_STEP);
	CheckExpStep(EXP_STEP);

	for (int i = T01_STEP; i <= T13_STEP; ++i)
	{
		CheckTacStep(i);
	}

	copy(m_vtBuffer.begin(), m_vtBuffer.end(), pData);
	*(pData + MAX_STEP) = 0;

	m_vtBuffer.clear();
}

///////////////////////////////////////////////////////////////////////////////
// Private Method
///////////////////////////////////////////////////////////////////////////////

void CStepMigration::CheckClassStep(int nStepType)
{	// 努贰胶 窜拌 八荤
	const char cStep = m_vtBuffer[nStepType];

	if (cStep >= 0 && cStep <= 5)
	{
		return;
	}

	MyLog(LOG_NORMAL, "[%d]Class Step : %d", nStepType, cStep);
	m_vtBuffer[nStepType] = 0;
}

void CStepMigration::CheckDualClass(int nStepType)
{	// 掂倔 努贰胶 辆幅 八荤
	const char cStep = m_vtBuffer[nStepType];

	if (cStep >= WARRIOR && cStep <= PRIEST)
	{
		return;
	}

	MyLog(LOG_NORMAL, "[%d]Dual Class : %d", nStepType, cStep);
	m_vtBuffer[nStepType] = WARRIOR;
}

void CStepMigration::CheckExpStep(int nStepType)
{	// 版氰摹 窜拌 八荤
	const char cStep = m_vtBuffer[nStepType];

	if (cStep >= 0 && cStep <= NPC_Lev_Ref[MAX_EXP_LEVEL].nStep)
	{	// 单捞鸥海捞胶俊辑 历厘捞 登瘤 臼绰 巩磊
		switch (cStep)
		{
		case 31:
			{
				m_vtBuffer[nStepType] = 32;
				break;
			}
		case 38:
			{
				m_vtBuffer[nStepType] = 39;
				break;
			}
		}
		
		return;
	}

	MyLog(LOG_NORMAL, "[%d]Experience Step : %d", nStepType, cStep);
	m_vtBuffer[nStepType] = 0;
}

void CStepMigration::CheckTacStep(int nStepType)
{	// 版氰摹 窜拌 八荤
	const char cStep = m_vtBuffer[nStepType];
	
	if (cStep >= 0 && cStep <= NPC_Lev_Ref[MAX_TAC_LEVEL].nStep)
	{	// 单捞鸥海捞胶俊辑 历厘捞 登瘤 臼绰 巩磊
		switch (cStep)
		{
		case 31:
			{
				m_vtBuffer[nStepType] = 32;
				break;
			}
		case 38:
			{
				m_vtBuffer[nStepType] = 39;
				break;
			}
		}
		
		return;
	}

	MyLog(LOG_NORMAL, "[%d]Tactic Step : %d", nStepType, cStep);
	m_vtBuffer[nStepType] = 0;
}

void CStepMigration::CheckCombatPoint(int nStepType)
{	// 傈捧胶懦 器牢磐 八荤
	const char cStep = m_vtBuffer[nStepType];

	if (cStep >= 0 && cStep <= NPC_Lev_Ref[MAX_EXP_LEVEL].nCspMax)
	{
		return;
	}

	MyLog(LOG_NORMAL, "[%d]Combat Point : %d", nStepType, cStep);
	m_vtBuffer[nStepType] = 0;
}

⌨️ 快捷键说明

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