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

📄 peacewarmodemanager.cpp

📁 墨香最新私服
💻 CPP
字号:
// PeaceWarModeManager.cpp: implementation of the CPeaceWarModeManager class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "PeaceWarModeManager.h"

#include "MoveManager.h"
#include "ObjectManager.h"
#include "ObjectStateManager.h"
#include "AppearanceManager.h"
#include "GameIn.h"


#include "CharStateDialog.h"



//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
GLOBALTON(CPeaceWarModeManager);
CPeaceWarModeManager::CPeaceWarModeManager()
{

}

CPeaceWarModeManager::~CPeaceWarModeManager()
{

}

void CPeaceWarModeManager::InitPeace_WarMode(CPlayer* pPlayer)
{
	BOOL bPeace = pPlayer->GetCharacterTotalInfo()->bPeace;
	if(bPeace == TRUE)
		//MOVEMGR->SetWalkMode(pPlayer);
		MOVEMGR->SetRunMode(pPlayer);		// ¹«Á¶°Ç ¶Ù±â·Î... [6/3/2003]
	else
		MOVEMGR->SetRunMode(pPlayer);	
	
//	Peace_WarMode( pPlayer, bPeace );
//KES CHARSTATEDLG 031016
//	if( pPlayer == HERO )
//	if( GAMEIN->GetCharStateDialog() )
//		GAMEIN->GetCharStateDialog()->SetPeaceWarMode( bPeace );
}

void CPeaceWarModeManager::ToggleHeroPeace_WarMode()
{
	if( MOVEMGR->IsMoving(HERO) )
		MOVEMGR->HeroMoveStop();

	// »óŰ¡ None À϶§¸¸ ¹Ù²Ü¼ö ÀÖ´Ù.
	if( HERO->GetState() != eObjectState_None &&
		HERO->GetState() != eObjectState_Move &&
		HERO->GetState() != eObjectState_Immortal )
		return;

	BOOL bPeace = HERO->GetCharacterTotalInfo()->bPeace;
	bPeace = !bPeace;	// Åä±Û ½ÃÅ´


// ¸¸¾à ÀüÅõ¸ðµå·Î ¹Ù²Ù´Âµ¥ °È±âÀÌ¸é ¶Ù±â·Î ¹Ù²Û´Ù.
//	if(bPeace==FALSE && MOVEMGR->GetMoveMode(HERO) == eMoveMode_Walk)
//	{
//		MOVEMGR->ToggleHeroMoveMode();
//	}
// ¸¸¾à ÆòÈ­¸ðµå·Î ¹Ù²Ù´Âµ¥ ¶Ù±âÀÌ¸é °È±â·Î ¹Ù²Û´Ù.
//	if(bPeace==TRUE && MOVEMGR->GetMoveMode(HERO) == eMoveMode_Run)
//	{
//		MOVEMGR->ToggleHeroMoveMode();
//	}

	Peace_WarMode(HERO,bPeace);

	// ¼­¹ö¿¡ ¸Þ¼¼Áö º¸³¿
	MSGBASE msg;
	msg.Category = MP_PEACEWARMODE;
	if(bPeace)
		msg.Protocol = MP_PEACEWARMODE_PEACE;
	else
		msg.Protocol = MP_PEACEWARMODE_WAR;
	msg.dwObjectID = HEROID;
	NETWORK->Send(&msg,sizeof(msg));

//KES CHARSTATEDLG 031016
//	if(GAMEIN->GetCharStateDialog())
//		GAMEIN->GetCharStateDialog()->SetPeaceWarMode( bPeace );
}

void CPeaceWarModeManager::Peace_WarMode(CPlayer* pPlayer, BOOL bPeace)
{
	pPlayer->SetPeaceMode(bPeace?true:false);
	if(bPeace) //ÆòÈ­ ¸ðµå
	{
		// ÀÚ¼¼¸¦ ¹Ù²Ù´Â ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
		if(pPlayer->GetObjectKind() == eObjectKind_Player)
		{
			if( pPlayer->GetWeaponEquipType() == WP_GWUN ||
				pPlayer->GetWeaponEquipType() == WP_AMGI )
				APPEARANCEMGR->HideWeapon(pPlayer);
			(pPlayer)->SetBaseMotion();
		}
	}
	else //ÀüÅõ ¸ðµå
	{
		if(pPlayer->GetObjectKind() == eObjectKind_Player)
		{			
			APPEARANCEMGR->ShowWeapon(pPlayer);
			(pPlayer)->SetBaseMotion();
		}
	}
	if(pPlayer->GetState() == eObjectState_None)
		OBJECTSTATEMGR->EndObjectState(pPlayer,eObjectState_None);
}

BOOL CPeaceWarModeManager::IsPeaceMode(CPlayer* pPlayer)
{
	return pPlayer->GetCharacterTotalInfo()->bPeace;
}

void CPeaceWarModeManager::NetworkMsgParse(BYTE Protocol,void* pMsg)
{
	CPlayer* pObject;
	MSGBASE* pmsg = (MSGBASE*)pMsg;
	pObject = (CPlayer*)OBJECTMGR->GetObject(pmsg->dwObjectID);
	ASSERT(pObject);
	if(pObject==NULL)
		return;
	ASSERT(pObject->GetObjectKind() == eObjectKind_Player);	
	
	switch(Protocol) 
	{
	case MP_PEACEWARMODE_PEACE:
		{
			Peace_WarMode(pObject,TRUE);
		}
		break;
	case MP_PEACEWARMODE_WAR:
		{
			Peace_WarMode(pObject,FALSE);
		}
		break;
	}
}

⌨️ 快捷键说明

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