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

📄 guildmanager.cpp

📁 墨香最新私服
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	CHATMGR->AddMsg(CTC_SYSMSG, CHATMGR->GetChatMsg(56));
	//付农 盎脚
	OBJECTMGR->ApplyOverInfoOptionToAll();
}

void CGuildManager::DeleteMemberSyn()
{
	MSG_DWORD msg;
	msg.Category = MP_GUILD;
	msg.Protocol = MP_GUILD_DELETEMEMBER_SYN;
	msg.dwObjectID = HEROID;
	msg.dwData = m_SelectedMemberID;
	NETWORK->Send(&msg, sizeof(msg));
}

void CGuildManager::DeleteMemberResult(DWORD PlayerIDX)
{		
	//CHAT MSG
	if(HERO->GetGuildMemberRank() == GUILD_MASTER)
	{

	}
	else if(HEROID == PlayerIDX)
	{

	}
	else
	{
	}

	//DO DELETE
	m_Guild.DeleteMember(PlayerIDX);
}

void CGuildManager::SetCreating(BOOL val)
{
	m_bCreateing = val;
}

void CGuildManager::AddMemberSyn(DWORD PlayerIDX)
{
	if(HERO->GetGuildMemberRank() < GUILD_VICEMASTER)
	{
		CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(297) );
		return;
	}
	if( m_Guild.CanAddMember() == FALSE)
	{
		CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(168) );
		return;
	}
	MSG_DWORD msg;
	msg.Category = MP_GUILD;
	msg.Protocol = MP_GUILD_ADDMEMBER_SYN;
	msg.dwData = PlayerIDX;
	msg.dwObjectID = HEROID;
	NETWORK->Send(&msg, sizeof(msg));
}

void CGuildManager::AddMemberAccept()
{
	MSG_DWORD msg;
	msg.Category = MP_GUILD;
	msg.Protocol = MP_GUILD_INVITE_ACCEPT;
	msg.dwObjectID = HEROID;
	msg.dwData = m_RequestPlayerID;

	NETWORK->Send(&msg, sizeof(msg));
	GAMEIN->GetGuildInviteDlg()->SetActive(FALSE);
}

void CGuildManager::AddMemberDeny()
{
	MSG_DWORD msg;
	msg.Category = MP_GUILD;
	msg.Protocol = MP_GUILD_INVITE_DENY;
	msg.dwObjectID = HEROID;
	msg.dwData = m_RequestPlayerID;

	NETWORK->Send(&msg, sizeof(msg));
	GAMEIN->GetGuildInviteDlg()->SetActive(FALSE);
	CHATMGR->AddMsg(CTC_SYSMSG, CHATMGR->GetChatMsg(36));
}

void CGuildManager::SecedeSyn()
{
	MSGBASE msg;
	msg.Category = MP_GUILD;
	msg.Protocol = MP_GUILD_SECEDE_SYN;
	msg.dwObjectID = HEROID;
	NETWORK->Send(&msg, sizeof(msg));
	GAMEIN->GetGuildDlg()->SetActive(FALSE);
}

void CGuildManager::ShowErrMsg(BYTE bType)
{
	switch(bType)
	{
	case eGuildErr_AddMember_OtherGuild:
		CHATMGR->AddMsg(CTC_SYSMSG, CHATMGR->GetChatMsg(38)); break;
	case eGuildErr_AddMember_AlreadyMember:
		CHATMGR->AddMsg(CTC_SYSMSG, CHATMGR->GetChatMsg(39)); break;
	case eGuildErr_AddMember_TargetNotDay:
		CHATMGR->AddMsg(CTC_SYSMSG, CHATMGR->GetChatMsg(703)); break;
	default:
		ASSERTMSG(0, "GUILD - No ErrType");
	}
}

char* CGuildManager::GetMemberName(DWORD MemberID)
{
	return m_Guild.GetMemberName(MemberID);
}


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

	((CPlayer*)pObject)->SetGuildIdx(pInfo->dwData2);
	((CPlayer*)pObject)->SetGuildMarkName(pInfo->dwData3);
	
	pObject->SetGuildMark();
	
	OBJECTMGR->ApplyOverInfoOptionToAll();
}

void CGuildManager::LoadLevelUpInfo()
{
	CMHFile file;
#ifdef _FILE_BIN_
	file.Init("Resource/GuildLevel.bin","rb");
#else
	file.Init("Resource/GuildLevel.txt","rt");
#endif
	if(file.IsInited() == FALSE)
	{
		ASSERTMSG(0, "Fail To Load a File : GuildLevel");
		return;
	}
	
	for(int n=0;n<MAX_GUILD_STEP;++n)
	{
		m_LevelUpInfo[n] = file.GetDword();
	}

	file.Release();
}

void CGuildManager::LevelUpSyn()
{
	if(m_Guild.GetLevel() == GUILD_2LEVEL)
	{
		CHATMGR->AddMsg(CTC_SYSMSG, CHATMGR->GetChatMsg(710));
		return;
	}
	if(m_Guild.GetLevel() == MAX_GUILD_LEVEL)
	{
		CHATMGR->AddMsg(CTC_SYSMSG, CHATMGR->GetChatMsg(708));
		return;
	}
	if(m_Guild.GetLevel() == GUILD_4LEVEL)
	{
		if(ABILITYMGR->GetAbilityLevel(ABILITYINDEX_MUNPA, HERO->GetAbilityGroup()) != 1)
		{
			CHATMGR->AddMsg(CTC_SYSMSG, CHATMGR->GetChatMsg(108));
			return;
		}
		if( HERO->GetMoney() < GetLevelUpMoney(m_Guild.GetLevel()) )
		{
			CHATMGR->AddMsg(CTC_SYSMSG, CHATMGR->GetChatMsg(108));
			return;
		}
	}
	else
	{
		//漂扁 八荤
		if(ABILITYMGR->GetAbilityLevel(ABILITYINDEX_LEADERSHIP, HERO->GetAbilityGroup()) <= m_Guild.GetLevel())
		{
			CHATMGR->AddMsg(CTC_SYSMSG, CHATMGR->GetChatMsg(108));
			return;
		}
		if( HERO->GetMoney() < GetLevelUpMoney(m_Guild.GetLevel()) )
		{
			CHATMGR->AddMsg(CTC_SYSMSG, CHATMGR->GetChatMsg(108));
			return;
		}
	}
	MSGBASE msg;
	msg.Category = MP_GUILD;
	msg.Protocol = MP_GUILD_LEVELUP_SYN;
	msg.dwObjectID = HEROID;
	NETWORK->Send(&msg, sizeof(msg));	
}

MONEYTYPE CGuildManager::GetLevelUpMoney(BYTE GuildLevel)
{
	if((GuildLevel == 0) || (GuildLevel > MAX_GUILD_LEVEL))
	{
		return 0;
	}
	return m_LevelUpInfo[GuildLevel-1];
}

BOOL CGuildManager::CanEntryGuild(char* date)
{
	SYSTEMTIME ti;
	GetLocalTime(&ti);
	DWORD day;

	char buf[5];
	strncpy(buf, &date[0],4);
	day = atoi(buf);
	if( ti.wYear > day)
		return TRUE;
	
	char dbuf[3];
	strncpy(dbuf, &date[5], 2);
	day = atoi(dbuf);
	if(ti.wMonth > day)
		return TRUE;
	
	strncpy(dbuf, &date[8], 2);
	day = atoi(dbuf);
	if(ti.wDay >= day)
		return TRUE;
	
	return FALSE;
}

BOOL CGuildManager::SetSelectedMemberID()
{
	int num;
	DWORD PlayerIDX;
	num = GAMEIN->GetGuildDlg()->GetSelectedColumn();
	if(num == -1)
		return FALSE;
	PlayerIDX = m_Guild.GetMemberIdx(num);
	if(PlayerIDX == HEROID)
		return FALSE;
	if(m_Guild.IsMember(PlayerIDX) == FALSE)
	{
		return FALSE;
	}
	m_SelectedMemberID = PlayerIDX;
	return TRUE;
}

char* CGuildManager::GetSelectedMemberName()
{
	return m_Guild.GetMemberName(m_SelectedMemberID);
}

BYTE CGuildManager::GetGuildLevel()
{
	return m_Guild.GetLevel();
}

void CGuildManager::ChangeMemberRank(BYTE Rank)
{
	if(HERO->GetGuildMemberRank() != GUILD_MASTER)
	{
		CHATMGR->AddMsg(CTC_SYSMSG, CHATMGR->GetChatMsg(297));
		return;
	}
	if(m_SelectedMemberID == 0)
	{
		CHATMGR->AddMsg(CTC_SYSMSG, CHATMGR->GetChatMsg(714));
		return;
	}
	if(m_Guild.IsMember(m_SelectedMemberID) == FALSE)
	{		
		CHATMGR->AddMsg(CTC_SYSMSG, CHATMGR->GetChatMsg(720));
		return;
	}	
	GUILDMEMBERINFO* pInfo;
	pInfo = m_Guild.GetMemberInfo(m_SelectedMemberID);
	if(pInfo == 0)
		return;
	if(pInfo->Rank == Rank)
	{
		CHATMGR->AddMsg(CTC_SYSMSG, CHATMGR->GetChatMsg(724));
		return;
	}
	int rt = m_Guild.IsVacancy(Rank);
	if(rt == eRankPos_Err)
	{
		CHATMGR->AddMsg(CTC_SYSMSG, CHATMGR->GetChatMsg(719));
		return;
	}

	MSG_DWORDBYTE msg;
	msg.Category = MP_GUILD;
	msg.Protocol = MP_GUILD_CHANGERANK_SYN;
	msg.dwObjectID = HEROID;
	msg.dwData = m_SelectedMemberID;
	msg.bData = Rank;
	NETWORK->Send(&msg, sizeof(msg));
}

void CGuildManager::GiveNickNameSyn(char* NickName)
{
	SEND_GUILD_NICKNAME msg;
	msg.Category = MP_GUILD;
	msg.Protocol = MP_GUILD_GIVENICKNAME_SYN;
	msg.dwObjectID = HEROID;
	msg.TargetIdx = m_SelectedMemberID;
	SafeStrCpy(msg.NickName, NickName, MAX_GUILD_NICKNAME+1);
	NETWORK->Send(&msg, sizeof(msg));
}

char* CGuildManager::GetRankName(BYTE rank)
{
	if(GUILDMGR->GetGuildLevel() == MAX_GUILD_LEVEL)
	{
		switch(rank)
		{
		case GUILD_MASTER: return CHATMGR->GetChatMsg(154);
		case GUILD_VICEMASTER: return CHATMGR->GetChatMsg(157);
		case GUILD_SENIOR: return CHATMGR->GetChatMsg(156);
		case GUILD_MEMBER: return CHATMGR->GetChatMsg(155);
		default: ASSERTMSG(0, "秦寸登绰 巩颇 瘤困啊 绝嚼聪促. Invalid Munpa Rank."); return "";
		}
	}
	else
	{
		switch(rank)
		{
		case GUILD_MASTER: return CHATMGR->GetChatMsg(711);
		case GUILD_VICEMASTER: return CHATMGR->GetChatMsg(712);
		case GUILD_MEMBER: return CHATMGR->GetChatMsg(713);		
		default: ASSERTMSG(0, "秦寸登绰 巩颇 瘤困啊 绝嚼聪促. Invalid Munpa Rank."); return "";
		}
	}
}

void CGuildManager::SetActiveFunc(BOOL val)
{
	m_bActiveFunc = val;
}

BOOL CGuildManager::IsActiveFunc()
{
	return m_bActiveFunc;
}

void CGuildManager::GuildWarehouseInfoSyn(BYTE TabNum)
{
	if(HERO->GetGuildIdx() == 0)
	{
		return;
	}
	MSG_BYTE msg;
	msg.Category = MP_ITEM;
	msg.Protocol = MP_ITEM_GUILD_WAREHOUSE_INFO_SYN;
	msg.dwObjectID = HEROID;
	msg.bData = TabNum;
	NETWORK->Send(&msg, sizeof(msg));
}

void CGuildManager::GuildWarehouseLeave(BYTE TabNum)
{
	MSG_BYTE msg;
	msg.Category = MP_ITEM;
	msg.Protocol = MP_ITEM_GUILD_WAREHOUSE_LEAVE;
	msg.dwObjectID = HEROID;
	msg.bData = TabNum;
	NETWORK->Send(&msg, sizeof(msg));
}

BOOL CGuildManager::CanUseWarehouse()
{
	if(MAP->GetMapNum() == m_Guild.GetLocation())
		return TRUE;
	CHATMGR->AddMsg(CTC_SYSMSG, CHATMGR->GetChatMsg(725));
	return FALSE;
}

⌨️ 快捷键说明

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