現成的代碼,這以前寫的代碼

 2023-11-07 阅读 26 评论 0

摘要:之前是玩家背包每個東西都是滿的,副本掉落,會掉很多東西,因為玩家背包都滿了,需要發送郵件,當時主程就要求這些東西作為一封郵件發出去 首先是獲取之前db_req中有沒有郵件 bool bDBMailExist = m_userMailStrategy->GetExistMailWi

之前是玩家背包每個東西都是滿的,副本掉落,會掉很多東西,因為玩家背包都滿了,需要發送郵件,當時主程就要求這些東西作為一封郵件發出去

首先是獲取之前db_req中有沒有郵件

bool bDBMailExist =  m_userMailStrategy->GetExistMailWithAttach(db_req->mutable_mails(), pDBMail);

現成的代碼。如果存在給這些郵件直接添加附件

m_userMailStrategy->AddAttachTo(gameEle, pDBMail);
m_userMailStrategy->AddAttachTo(gameEle, pUserMail);
bool CUserMailStrategy::AddAttachTo(const struct_game_element& gameEle, db_user_mail* pDBMail)
{ASSERT(pDBMail);::google::protobuf::RepeatedPtrField< ::db_mail_attach >::iterator iter = pDBMail->mutable_attachs()->begin();for (; iter != pDBMail->mutable_attachs()->end(); ++iter){if (iter->mutable_element()->type() == gameEle.type()){if (gameEle.type() != struct_game_element::EELEMENTTYPE_ITEM || iter->mutable_element()->id() == gameEle.id())//非道具類型直接疊加
            {iter->mutable_element()->set_num(iter->mutable_element()->num() + gameEle.num());return true;}}}db_mail_attach* pAttach = pDBMail->add_attachs();pAttach->set_attach_id(CMailMgr::GetInstance()->CreateId(eIdType_MailAttach));pAttach->mutable_element()->CopyFrom(gameEle);return true;
}

說實話我不喜歡寫這些代碼,在某些特殊出現的情況下的優化,實在是太花時間,現在我要優化,看著這些我都蛋疼,這樣的代碼很容易出錯,寫的時候要小心,哎,還是按照這個模式來吧。

不過如果剛開始設計的好,這些需求實現起來應該也簡單

我來寫代碼了。轉載于:https://www.cnblogs.com/zzyoucan/p/4846612.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/167782.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息