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

📄 munpamanager.cpp

📁 墨香最新私服
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	{
		//鉴辑 林狼
		GAMEIN->GetMunpaDialog()->ShowMunpaMode(eMunpaMode_MgeSemiMember);
		GAMEIN->GetMunpaDialog()->SetMgeSemiMembersInfo(info);
	}
	else 
	{
		//鉴辑 林狼
		GAMEIN->GetMunpaDialog()->ShowMunpaMode(eMunpaMode_SemiMembers);
		GAMEIN->GetMunpaDialog()->SetSemiMembersInfo(info);
	}
	GAMEIN->GetMunpaDialog()->RefreshDlg();
}

void CMunpaManager::MunpaBoardInfo()
{
	DWORD MunpaID = GAMEIN->GetMunpaDialog()->GetMunpaID();
	MSG_DWORD msg;
	msg.Category = MP_MUNPA;
	msg.Protocol = MP_MUNPA_BOARD_INFO_SYN;
	msg.dwObjectID = HEROID;
	msg.dwData = MunpaID;

	NETWORK->Send(&msg, sizeof(msg));
}

void CMunpaManager::MunpaBoardInfoResult(SEND_MUNPA_BOARD_INFO* info)
{
	GAMEIN->GetMunpaDialog()->ShowMunpaMode(eMunpaMode_MgeBoard);
	GAMEIN->GetMunpaDialog()->SetUsedBoardInfo(info);
	GAMEIN->GetMunpaDialog()->AddMunpaMode(eMunpaMode_MgeBoard);
	GAMEIN->GetMunpaDialog()->RefreshDlg();
}

void CMunpaManager::RegularMembersInfoSyn(DWORD GotoPage)
{
	DWORD MunpaID = GAMEIN->GetMunpaDialog()->GetMunpaID();

	MSG_DWORD2 msg;
	msg.Category = MP_MUNPA;
	msg.Protocol = MP_MUNPA_REGULARMEMBERS_INFO_SYN;
	msg.dwObjectID = HEROID;
	msg.dwData1 = MunpaID;
	msg.dwData2 = GotoPage; 
	NETWORK->Send(&msg, sizeof(msg));

	GAMEIN->GetMunpaDialog()->SetCurPage(GotoPage);
}

void CMunpaManager::RegularMembersInfoResult(SEND_MUNPA_REGULARMEMBER_LIST* pInfo)
{
	if((pInfo->MunpaID == HERO->GetMunpaIdx()) && (HERO->GetMunpaMemberRank() == MUNPA_MASTER))
	{
		GAMEIN->GetMunpaDialog()->ShowMunpaMode(eMunpaMode_MgeRegularMember);
		GAMEIN->GetMunpaDialog()->SetMgeRegularMembersInfo(pInfo);
	}
	else 
	{
		GAMEIN->GetMunpaDialog()->ShowMunpaMode(eMunpaMode_RegularMembers);
		GAMEIN->GetMunpaDialog()->SetRegularMembersInfo(pInfo);
	}
	GAMEIN->GetMunpaDialog()->RefreshDlg();
}

BOOL CMunpaManager::IsMunpaMaster(CHero* pHero)
{
	if(pHero->GetMunpaIdx() != GAMEIN->GetMunpaDialog()->GetMunpaID())
		return FALSE;
	if(pHero->GetMunpaMemberRank() != MUNPA_MASTER)
		return FALSE;
	return TRUE;
}

void CMunpaManager::CreateMunpaBoardSyn(DWORD RCRank, DWORD RSRank, DWORD WCRank, DWORD DCRank, char* Name)
{
	if(!IsMunpaMaster(HERO))
	{
		ASSERTMSG(0, "泅犁 巩颇狼 规厘捞 酒囱单 霸矫魄 积己 滚瓢阑 穿抚. No Master Created the Board.");
		return;
	}
	SEND_MUNPA_BOARD_RANK_INFO msg;
	msg.Category = MP_MUNPA;
	msg.Protocol = MP_MUNPA_CREATEBOARD_SYN;
	msg.dwObjectID = HEROID;
	msg.RContentRank = RCRank;
	msg.RSubjectRank = RSRank;
	msg.WContentRank = WCRank;
	msg.DContentRank = DCRank;
	msg.ID = HERO->GetMunpaIdx();
	strcpy(msg.MunpaBoardName, Name);
	
	NETWORK->Send(&msg, sizeof(msg));
}

void CMunpaManager::CreateBoardResult(SEND_MUNPA_BOARD_INFO* info)
{
	CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(108) );
	MunpaHomeSyn(HERO->GetMunpaIdx());
	// 包府 葛靛肺 窍妨搁 罐酒坷绰 沥焊啊 腹澜. 弊成 权栏肺 啊鲤 -_- 酒鲤~!
/*
	GAMEIN->GetMunpaDialog()->ShowMunpaMode(eMunpaMode_MgeBoard);
	GAMEIN->GetMunpaDialog()->SetUsedBoardInfo(info);
	GAMEIN->GetMunpaDialog()->AddMunpaMode(eMunpaMode_MgeBoard);
	GAMEIN->GetMunpaDialog()->RefreshDlg();
*/

//	SetMunpaInfo(msg);
//	MunpaBoardInfo();
}

void CMunpaManager::DeleteBoardSyn(DWORD BoardID, BOOL bLast)
{
	SEND_MUNPACCEPT_INFO msg;
	msg.Category = MP_MUNPA;
	msg.Protocol = MP_MUNPA_DELETEBOARD_SYN;
	msg.dwObjectID = HEROID;
	msg.MunpaID = HERO->GetMunpaIdx();
	msg.TargetID = BoardID;
	msg.bLast = bLast;

	NETWORK->Send(&msg, sizeof(msg));
}

void CMunpaManager::DeleteBoardResult(BOOL bLast)
{
//	GAMEIN->GetChatDialog()->AddChatMsg(WHOLE, RGBA_MAKE(255,255,255,255), "霸矫魄捞 昏力登菌嚼聪促.");
	CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(39) );

	if(bLast)
		MunpaBoardInfo();
}

void CMunpaManager::BoardRankInfoSyn(DWORD BoardIDX)
{
	MSG_DWORD msg;
	msg.Category = MP_MUNPA;
	msg.Protocol = MP_MUNPA_BOARDRANK_INFO_SYN;
	msg.dwObjectID = HEROID;
	msg.dwData = BoardIDX;

	NETWORK->Send(&msg, sizeof(msg));
}

void CMunpaManager::BoardRankInfoResult(SEND_MUNPA_BOARD_RANK_INFO* msg)
{
	GAMEIN->GetMunpaDialog()->SetBoardRankInfo(msg->MunpaBoardName, msg->RSubjectRank, msg->RContentRank, msg->WContentRank, msg->DContentRank, msg->ID);
	GAMEIN->GetMunpaDialog()->ShowMunpaMode(eMunpaMode_CreateBoard);
	GAMEIN->GetMunpaDialog()->AddMunpaMode(eMunpaMode_ModBoard);
}

void CMunpaManager::ModifyBoardRankInfoSyn(DWORD RCRank, DWORD RSRank, DWORD WCRank, DWORD DCRank, char* Name)
{
	if(!IsMunpaMaster(HERO))
	{
		ASSERTMSG(0, "泅犁 巩颇狼 规厘捞 酒囱单 霸矫魄 积己 滚瓢阑 穿抚. No Master Created the Board.");
		return;
	}
	
	SEND_MUNPA_BOARD_RANK_INFO msg;
	msg.Category = MP_MUNPA;
	msg.Protocol = MP_MUNPA_BOARD_MODIFYRANK_INFO_SYN;
	msg.dwObjectID = HEROID;
	msg.RContentRank = RCRank;
	msg.RSubjectRank = RSRank;
	msg.WContentRank = WCRank;
	msg.DContentRank = DCRank;
	msg.ID = GAMEIN->GetMunpaDialog()->GetSelectedBoardID();
	strcpy(msg.MunpaBoardName, Name);
	
	NETWORK->Send(&msg, sizeof(msg));
}

void CMunpaManager::ModifyIntroMsg(char* pIntroMsg)
{
	MUNPA_MODIFY_INTRO msg;
	msg.Category = MP_MUNPA;
	msg.Protocol = MP_MUNPA_MODIFY_INTROMSG_SYN;
	msg.dwObjectID = HEROID;
	msg.MunpaID = GAMEIN->GetMunpaDialog()->GetMunpaID();
	strcpy(msg.MunpaIntro, pIntroMsg);

	NETWORK->Send(&msg, sizeof(msg));
}

void CMunpaManager::SetMunpaInfo(MUNPA_HOME_INFO* HomeInfo)
{
	GAMEIN->GetMunpaDialog()->SetHomeInfo(HomeInfo);
	m_Munpa.ClearBoardInfo();
	for(int i=0; i< MAX_MUNPA_BOARD_NUM; ++i)
	{
		if(HomeInfo->BoardInfo[i].BoardIDX)
			m_Munpa.SetBoardInfo(&HomeInfo->BoardInfo[i]);
		else 
			break;
	}

	SetMunpaCurBoardNum(HomeInfo->BoardNum);
}

char* CMunpaManager::GetMunpaBoardName(int i)
{
	return m_Munpa.GetBoardName(i);
}

//////////////////////////////////////////////////////////////////////////
//霸矫魄
void CMunpaManager::BoardSubjectListSyn(int n,DWORD Page)
{
	DWORD BoardID;
	if( n == -1 )
		BoardID = GAMEIN->GetMunpaDialog()->GetSelectedBoardID();
	else
	{
		BoardID = GetBoardID(n);
	}
	if(!BoardID)
		return;
	
	MSG_DWORD3 msg;
	msg.Category = MP_MUNPA;
	msg.Protocol = MP_MUNPA_BOARD_SUBJECTLIST_SYN;
	msg.dwObjectID = HEROID;
	msg.dwData1 = BoardID;
	msg.dwData2 = Page;
	msg.dwData3 = GAMEIN->GetMunpaDialog()->GetMunpaID();
	
	GAMEIN->GetMunpaDialog()->SetSelectedBoardID(BoardID);
	GAMEIN->GetMunpaDialog()->SetCurPage(Page);
	
	NETWORK->Send(&msg, sizeof(msg));
}

DWORD CMunpaManager::GetBoardID(int n)
{
	return m_Munpa.GetBoardID(n);
}

void CMunpaManager::BoardWriteSyn(DWORD RootContentsID)
{
	if(IsWriting() == TRUE) //滚瓢 咯矾锅 喘范阑 锭 咯矾锅 殿废 登绰巴 规瘤
		return;
	if(strcmp(GAMEIN->GetMunpaDialog()->GetMBW_SubjectEdit(), "") == 0)
	{
		WINDOWMGR->MsgBox(MBI_MUNPABOARDNOCONTENT, MBT_OK, CHATMGR->GetChatMsg(306));
		return;
	}
	
	SEND_BOARD_CONTENT_INFO msg;
	msg.Category = MP_MUNPA;
	msg.Protocol = MP_MUNPA_BOARD_WRITE_SYN;
	msg.dwObjectID = HEROID;
	msg.BoardIDX = GAMEIN->GetMunpaDialog()->GetSelectedBoardID();
	msg.RootContentsID = RootContentsID;
	strcpy(msg.Subject,GAMEIN->GetMunpaDialog()->GetMBW_SubjectEdit());
	GAMEIN->GetMunpaDialog()->GetMBW_WriteContents(msg.Content);

	NETWORK->Send(&msg,msg.GetMsgLength());
	
	SetWriting(TRUE);
}

void CMunpaManager::BoardModifySyn(DWORD OriginalContentID)
{
	SEND_BOARD_CONTENT_INFO msg;
	msg.Category = MP_MUNPA;
	msg.Protocol = MP_MUNPA_BOARD_MODIFY_SYN;
	msg.dwObjectID = HEROID;
	msg.BoardIDX = GAMEIN->GetMunpaDialog()->GetSelectedBoardID();
	msg.RootContentsID = OriginalContentID;
	strcpy(msg.Subject,GAMEIN->GetMunpaDialog()->GetMBW_SubjectEdit());
	GAMEIN->GetMunpaDialog()->GetMBW_WriteContents(msg.Content);

	NETWORK->Send(&msg,msg.GetMsgLength());
}

void CMunpaManager::BoardReadSyn(DWORD ContentIDX, DWORD n)
{
	if(ContentIDX == 0)
		return;
	
	MSG_DWORD3 msg;
	msg.Category = MP_MUNPA;
	msg.Protocol = MP_MUNPA_BOARD_CONTENTS_SYN;
	msg.dwObjectID = HEROID;
	msg.dwData1 = GAMEIN->GetMunpaDialog()->GetSelectedBoardID();
	msg.dwData2 = ContentIDX;
	msg.dwData3 = n;

	NETWORK->Send(&msg,sizeof(msg));
}

void CMunpaManager::BoardReadResult(SEND_MUNPA_BOARD_CONTENT_INFO* pmsg)
{
	GAMEIN->GetMunpaDialog()->SetBoardContentInfo(pmsg);
	GAMEIN->GetMunpaDialog()->ShowMunpaMode(eMunpaMode_MunpaBoardRead);
	if(strcmp(HERO->GetObjectName(), pmsg->BoardListInfo.WriterName) != 0)
	{
		GAMEIN->GetMunpaDialog()->AddMunpaMode(eMunpaMode_MunpaBoardRead);
		// 磊脚捞 敬 臂捞 酒匆版快
		BYTE Rank;
		if(IsMunpaMember(HERO))
			Rank = HERO->GetMunpaMemberRank();
		else
			Rank = MUNPA_NOTMEMBER;

		if(Rank >= pmsg->WCRank)
			GAMEIN->GetMunpaDialog()->AddMunpaMode(eMunpaMode_MunpaBoardRead_Reple);
		if(Rank >= pmsg->DCRank)
			GAMEIN->GetMunpaDialog()->AddMunpaMode(eMunpaMode_MunpaBoardRead_Delete);
	}
	
	else
	{
		// 磊脚捞 敬 臂老 版快
		GAMEIN->GetMunpaDialog()->AddMunpaMode(eMunpaMode_MunpaBoardRead_Modify);
	}
}

void CMunpaManager::BoardSubjectListResult(SEND_MUNPA_BOARD_LIST_INFO* pmsg)
{
	GAMEIN->GetMunpaDialog()->ShowMunpaMode(eMunpaMode_MunpaBoardList);
	GAMEIN->GetMunpaDialog()->SetBoardListInfo(pmsg);
}

void CMunpaManager::DeleteBoardContentsSyn(DWORD ContentsIDx)
{
	MSG_DWORD2 msg;
	msg.Category = MP_MUNPA;
	msg.Protocol = MP_MUNPA_BOARD_DELETE_SYN;
	msg.dwObjectID = HEROID;
	msg.dwData1 = GAMEIN->GetMunpaDialog()->GetSelectedBoardID();
	msg.dwData2 = ContentsIDx;

	NETWORK->Send(&msg,sizeof(msg));

}

BOOL CMunpaManager::IsMunpaMember(CHero* pHero)
{
	if(pHero->GetMunpaIdx() != GAMEIN->GetMunpaDialog()->GetMunpaID())
		return FALSE;

	else if(pHero->GetMunpaMemberRank() <= MUNPA_SEMIMEMBER)
		return FALSE;

	return TRUE;
}

BOOL CMunpaManager::CanUseWareHouse(BYTE TabNum)
{
	if(!IsMunpaMember(HERO))
	{
		//芒绊 捞侩鼻茄捞 绝嚼聪促.
		CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(45) );
		return FALSE;
	}
	else if(HERO->GetMunpaMemberRank() < GetWarehouseRank(TabNum))
	{
		CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(48) );
		return FALSE;
	}
	else
		return TRUE;
}

void CMunpaManager::NoAuthority()
{
	GAMEIN->GetMunpaDialog()->ShowMunpaMode(eMunpaMode_NoAuthority);
}

void CMunpaManager::MunpaWarehouseInfoSyn(DWORD MunpaID, BYTE TabNum)
{
	MSG_DWORD2 msg;
	msg.Category = MP_ITEM;
	msg.Protocol = MP_ITEM_MUNPA_WAREHOUSE_INFO_SYN;
	msg.dwObjectID = HEROID;
	msg.dwData1 = MunpaID;
	msg.dwData2 = TabNum;

	NETWORK->Send(&msg, sizeof(msg));
}

void CMunpaManager::MarkChange(MSG_DWORD3* pInfo)
{
	CObject* pObject = OBJECTMGR->GetObject(pInfo->dwData1);
	ASSERT(pObject);
	if( !pObject ) return;

	((CPlayer*)pObject)->SetMunpaID(pInfo->dwData2);
	((CPlayer*)pObject)->SetMunpaMemberRank(pInfo->dwData3);
	
	if(((CPlayer*)pObject)->GetMunpaMemberRank() != MUNPA_SEMIMEMBER)
	{
		pObject->SetMunpaMark();
	}	

	OBJECTMGR->ApplyOverInfoOptionToAll();
}

⌨️ 快捷键说明

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