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

📄 herobank.cpp

📁 网络游戏魔域源代码 测试可以完整变异
💻 CPP
字号:
//---------------------------------------------------------------
// HeroBank.cpp
//---------------------------------------------------------------
#include "Hero.h"
#include "AllMsg.h"
#include "GameMsg.h"
#include "3dGameMap.h"
#include "GameDataSet.h"
#include "GamePlayerSet.h"

//---------------------------------------------------------------
void CHero::QueryMoney()
{
	CMsgItem msg;
	if(msg.Create(m_objBank.GetId(), 0, ITEMACT_QUERYMONEYSAVED))
		msg.Send();
}
//---------------------------------------------------------------
void CHero::DrawMoney(DWORD dwMoney)
{
	CMsgItem msg;
	if(msg.Create(m_objBank.GetId(), dwMoney, ITEMACT_DRAWMONEY))
		msg.Send();
	this->QueryMoney();
}
//---------------------------------------------------------------
void CHero::SaveMoney(DWORD dwMoney)
{
	if(dwMoney > g_objHero.GetMoney())
		return;
	CMsgItem msg;
	if(msg.Create(m_objBank.GetId(), dwMoney, ITEMACT_SAVEMONEY))
		msg.Send();
	this->QueryMoney();
}
//---------------------------------------------------------------
BOOL CHero::DropMoney(DWORD dwMoney, int x, int y)
{
	if(g_objGameMap.GetType() & MAPTYPE_FAMILY)
	{
		OBJID idCanNotDrop = 100146;
		g_objGameMsg.AddMsg(g_objGameDataSet.GetStr(idCanNotDrop));
		return false;
	}
	if (dwMoney < 100)
	{
		OBJID idDropMoneyLimit = 100038;
		g_objGameMsg.AddMsg(g_objGameDataSet.GetStr(idDropMoneyLimit));
		return false;
	}

	if (this->GetMoney() < dwMoney)
	{
		OBJID idMoneyNotEnough = 100039;
		g_objGameMsg.AddMsg(g_objGameDataSet.GetStr(idMoneyNotEnough));
		return false;
	}

	CMyPos posCell;
	g_objGameMap.Screen2Cell(x, y, posCell.x, posCell.y);

	CMyPos posHero = g_objHero.GetAlignPos();
	int nDir = g_objGameMap.GetDirection(posHero.x, posHero.y, posCell.x, posCell.y);

	/* 
	posCell.x = posHero.x+_DELTA_X[nDir];
	posCell.y = posHero.y+_DELTA_Y[nDir];

	CellInfo* pInfo = g_objGameMap.GetCell(posCell.x, posCell.y);
	if(!pInfo || g_objGameMap.GetMapItem(posCell) || g_objGameMap.GetGroundMask(pInfo) != 0)
	*/ 
	{
		// 八格随机方向
		int nX[8]={1, -1, 0, 1, 1, -1, -1, 0};
		int nY[8]={1, -1, 1, 0, -1, 1, 0, -1};
		for(int i = 0; i < 8; i ++)
		{
			CMyPos posItem;
			posItem.x = posHero.x + nX[i];
			posItem.y = posHero.y + nY[i];
			CellInfo* pInfo = g_objGameMap.GetCell(posItem.x, posItem.y);
			if(pInfo)
			{
				if(!g_objGameMap.Get3DMapItem(posItem) && g_objGameMap.GetGroundMask(pInfo) == 0
					&& !g_objPlayerSet.GetPlayer(posItem.x, posItem.y))
				{
					posCell = posItem;
					break;
				}
			}
		}
		
		if (i >= 8)
		{
			OBJID idCanNotDrop = 100040;
			g_objGameMsg.AddMsg(g_objGameDataSet.GetStr(idCanNotDrop));
			return false;
		}
	}

	CMsgItem msg;
	if(msg.Create(dwMoney, posCell.x, posCell.y, ITEMACT_DROPMONEY))
		msg.Send();

	return true;
}
//---------------------------------------------------------------
DWORD CHero::GetSavedMoney()
{
	return m_objBank.GetMoney();
}
//---------------------------------------------------------------
void CHero::SetSavedMoney(DWORD dwMoney)
{
	m_objBank.SetMoney(dwMoney);
	::PostCmd(CMD_FLASHBANKMONEY);
}
//---------------------------------------------------------------
void CHero::OpenBank(OBJID idBank)
{
	m_objBank.Open(idBank);
	this->QueryMoney();
}
//---------------------------------------------------------------
void CHero::CloseBank()
{
	m_objBank.Close();
}
//---------------------------------------------------------------

⌨️ 快捷键说明

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