int NFCHeroPropertyModule::OnObjectHeroRecordEvent(const NFGUID& self, const RECORD_EVENT_DATA& xEventData, const NFIDataList::TData& oldVar, const NFIDataList::TData& newVar) { std::ostringstream stream; NF_SHARE_PTR<NFIRecord> pHeroRecord = m_pKernelModule->FindRecord(self, xEventData.strRecordName); if (nullptr == pHeroRecord) { return 0; } switch (xEventData.nOpType) { case NFIRecord::RecordOptype::Add: { const NFGUID& xHeroGUID = pHeroRecord->GetObject(xEventData.nRow, NFrame::Player::PlayerHero::PlayerHero_GUID); OnHeroPropertyUpdate(self, xHeroGUID); } break; case NFIRecord::RecordOptype::Del: { } break; case NFIRecord::RecordOptype::Update: { switch (xEventData.nCol) { case NFrame::Player::PlayerHero::PlayerHero_Level: case NFrame::Player::PlayerHero::PlayerHero_Star: case NFrame::Player::PlayerHero::PlayerHero_Equip1: case NFrame::Player::PlayerHero::PlayerHero_Equip2: case NFrame::Player::PlayerHero::PlayerHero_Equip3: case NFrame::Player::PlayerHero::PlayerHero_Equip4: case NFrame::Player::PlayerHero::PlayerHero_Equip5: case NFrame::Player::PlayerHero::PlayerHero_Equip6: case NFrame::Player::PlayerHero::PlayerHero_Talent1: case NFrame::Player::PlayerHero::PlayerHero_Talent2: case NFrame::Player::PlayerHero::PlayerHero_Talent3: case NFrame::Player::PlayerHero::PlayerHero_Talent4: case NFrame::Player::PlayerHero::PlayerHero_Talent5: { const NFGUID& xHeroGUID = pHeroRecord->GetObject(xEventData.nRow, NFrame::Player::PlayerHero::PlayerHero_GUID); OnHeroPropertyUpdate(self, xHeroGUID); } break; default: break; } } break; default: break; } return 0; }
bool NFCGuildModule::GetOnlineMember( const NFGUID& self, const NFGUID& xGuild, NFDataList& varMemberList, NFDataList& varGameList) { NF_SHARE_PTR<NFIObject> pGuildObject = m_pGuildDataModule->GetGuild(xGuild); if (!pGuildObject.get()) { return false; } NF_SHARE_PTR<NFIRecord> pMemberRecord = m_pKernelModule->FindRecord(xGuild, NFrame::Guild::R_GuildMemberList()); if (!pMemberRecord.get()) { return false; } for (int i = 0; i< pMemberRecord->GetRows(); i++) { if (!pMemberRecord->IsUsed(i)) { continue; } const NFINT64 nOnline = pMemberRecord->GetInt(i, NFrame::Guild::GuildMemberList_Online); const NFINT64 nGameID = pMemberRecord->GetInt(i, NFrame::Guild::GuildMemberList_GameID); const NFGUID& xID = pMemberRecord->GetObject(i, NFrame::Guild::GuildMemberList_GUID); if (nOnline > 0 && !xID.IsNull()) { varMemberList.Add(xID); varGameList.Add(nGameID); } } return true; }
bool NFCTeamModule::GetMemberList(const NFGUID& self, const NFGUID& xTeam, std::vector<NFGUID>& xmemberList) { NF_SHARE_PTR<NFIRecordManager> pRecordManager = m_pCommonRedisModule->GetCacheRecordInfo(xTeam, NFrame::Team::ThisName()); if (!pRecordManager) { return false; } NF_SHARE_PTR<NFIRecord> pMemberRecord = pRecordManager->GetElement(NFrame::Team::MemberList::ThisName()); if (!pMemberRecord.get()) { return false; } for (int i = 0; i < pMemberRecord->GetRows(); i++) { if (!pMemberRecord->IsUsed(i)) { continue; } const NFINT64 nOnline = pMemberRecord->GetInt(i, NFrame::Team::MemberList::Online); const NFINT64 nGameID = pMemberRecord->GetInt(i, NFrame::Team::MemberList::GameID); const NFGUID& xID = pMemberRecord->GetObject(i, NFrame::Team::MemberList::GUID); if (!xID.IsNull()) { xmemberList.push_back(xID); } } return true; }
int NFCSLGBuildingModule::CheckProduceData( const NFGUID& self ) { NF_SHARE_PTR<NFIRecord> pProduce = m_pKernelModule->FindRecord(self, "BuildingProduce"); if (NULL == pProduce.get()) { m_pLogModule->LogNormal(NFILogModule::NLL_ERROR_NORMAL, self, "this is no [BuildingProduce] Record!", "", __FUNCTION__, __LINE__); return false; } for (int i = 0; i < pProduce->GetRows(); i++) { if (!pProduce->IsUsed(i)) { continue; } const int nNowTime = pPluginManager->GetNowTime(); const NFGUID xBuildID = pProduce->GetObject(i, "BuildingGUID"); const std::string strItemID = pProduce->GetString(i, "ItemID"); const int nLeftCount = pProduce->GetInt(i, "LeftCount"); const NFINT64 nLastOnceBeginTime = pProduce->GetInt(i, "OnceStartTime"); const NFINT64 nOnceTime = pProduce->GetInt(i, "OnceTime"); const int nPassTime = nNowTime - nLastOnceBeginTime; if (nPassTime <= 0) { continue; } const int nCount = nPassTime/nOnceTime; if (nCount >= nLeftCount) { //add Item //TO ADD pProduce->Remove(i); } else { //add Item //TO ADD pProduce->SetInt(i, "", nLeftCount - nCount); //NFDataList varHeart; //varHeart << xBuildID; //varHeart << strItemID; const std::string strHeartname = GetProduceHeartName(self, xBuildID, strItemID); const int nTime = (nCount + 1) * nOnceTime - nPassTime; m_pScheduleModule->AddSchedule(self, strHeartname, this, &NFCSLGBuildingModule::OnProduceHeartBeat, /*varHeart, */nTime, 1); } } return 0; }
const NFGUID& NFCPropertyManager::GetPropertyObject(const std::string& strPropertyName) { NF_SHARE_PTR<NFIProperty> pProperty = GetElement(strPropertyName); if (pProperty) { return pProperty->GetObject(); } return NULL_OBJECT; }
const NFGUID& NFCRecordManager::GetRecordObject(const std::string& strRecordName, const int nRow, const std::string& strColTag) { NF_SHARE_PTR<NFIRecord> pRecord = GetElement(strRecordName); if (pRecord.get()) { return pRecord->GetObject(nRow, strColTag); } return NULL_OBJECT; }
NFIDENTID NFCObject::GetRecordObject(const std::string& strRecordName, const int nRow, const std::string& strColTag) { NF_SHARE_PTR<NFIRecord> pRecord = GetRecordManager()->GetElement(strRecordName); if (pRecord.get()) { return pRecord->GetObject(nRow, strColTag); } return NFIDENTID(); }
NFIDENTID NFCObject::GetPropertyObject(const std::string& strPropertyName) { NF_SHARE_PTR<NFIProperty> pProperty = GetPropertyManager()->GetElement(strPropertyName); if (pProperty.get()) { return pProperty->GetObject(); } return NFIDENTID(); }
int NFCSLGBuildingModule::CheckBuildingStatusEnd( const NFGUID& self ) { NF_SHARE_PTR<NFIRecord> pRecord = m_pKernelModule->FindRecord(self, "BuildingList"); if (NULL == pRecord.get()) { m_pLogModule->LogNormal(NFILogModule::NLL_ERROR_NORMAL, self, "this is no [BuildingList] Record!", "", __FUNCTION__, __LINE__); return 1; } const NFINT64 nNowTime = pPluginManager->GetNowTime(); for (int i= 0; i < pRecord->GetRows(); i++) { if (!pRecord->IsUsed(i)) { continue; } const NFINT64 nEndTime = pRecord->GetInt(i, "StateEndTime"); const NFGUID& xBuildID = pRecord->GetObject(i, "BuildingGUID"); const int& nStatus = pRecord->GetInt(i, "State"); float fTime = nEndTime - nNowTime; if (fTime <= 0.0f) { fTime = 0.1f; } if (nStatus == NFMsg::EBS_IDLE) { continue; } else if(nStatus == NFMsg::EBS_UPGRADE) { //NFDataList varHeart; //varHeart << xBuildID; m_pScheduleModule->AddSchedule(self, "OnUpgradeHeartBeat", this, &NFCSLGBuildingModule::OnUpgradeHeartBeat, /*varHeart, */fTime, 1); } else if(nStatus == NFMsg::EBS_BOOST) { //NFDataList varHeart; //varHeart << xBuildID; m_pScheduleModule->AddSchedule(self, "OnUpgradeHeartBeat", this, &NFCSLGBuildingModule::OnUpgradeHeartBeat, /*varHeart, */fTime, 1); } } return 0; }
bool NFCHeroPropertyModule::CalHeroEquipProperty(const NFGUID& self, const NFGUID& xHeroGUID, NFIDataList& xDataList) { NF_SHARE_PTR<NFIRecord> pHeroRecord = m_pKernelModule->FindRecord(self, NFrame::Player::R_PlayerHero()); if (nullptr == pHeroRecord) { return false; } NFCDataList varFind; if (pHeroRecord->FindObject(NFrame::Player::PlayerHero_GUID, xHeroGUID, varFind) != 1) { return false; } const int nRow = varFind.Int(0); NF_SHARE_PTR<NFIRecord> pHeroPropertyRecord = m_pKernelModule->FindRecord(self, NFrame::Player::R_HeroPropertyValue()); if (nullptr == pHeroPropertyRecord) { return false; } ////////////////////Equip////////////////////////////////////////////////////// xDataList.Clear(); for (int i = 0; i < pHeroPropertyRecord->GetCols(); ++i) { xDataList.AddInt(0); } for (int i = NFrame::Player::PlayerHero_Equip1; i <= NFrame::Player::PlayerHero_Equip6; ++i) { NFCDataList EquipDataList; const NFGUID xEquipID = pHeroRecord->GetObject(nRow, i); if (!xEquipID.IsNull() && m_pEquipPropertyModule->CalEquipProperty(self, xEquipID, EquipDataList)) { //one equip for (int j = 0; j < pHeroPropertyRecord->GetCols(); ++j) { int nOldValue = xDataList.Int(j); int nEquipValue = EquipDataList.Int(j); xDataList.SetInt(j, nOldValue + nEquipValue); } } } return true; }
NFGUID NFCHeroModule::GetHeroGUID(const NFGUID& self, const std::string& strID) { NF_SHARE_PTR<NFIRecord> pHeroRecord = m_pKernelModule->FindRecord(self, NFrame::Player::PlayerHero::ThisName()); if (nullptr == pHeroRecord) { return NFGUID(); } int nRow = pHeroRecord->FindString(NFrame::Player::PlayerHero::ConfigID, strID); if (nRow < 0) { return NFGUID(); } return pHeroRecord->GetObject(nRow, NFrame::Player::PlayerHero::GUID); }
const NFGUID& NFCPackModule::CreateEquip( const NFGUID& self, const std::string& strConfigName ) { NF_SHARE_PTR<NFIObject> pObject = m_pKernelModule->GetObject( self ); if ( NULL == pObject ) { return NULL_OBJECT; } //还得确定有这个装备 bool bExist = m_pElementModule->ExistElement( strConfigName ); if ( !bExist ) { return NULL_OBJECT; } int nItemType = m_pElementModule->GetPropertyInt(strConfigName, NFrame::Item::ItemType()); if ( NFMsg::EItemType::EIT_EQUIP != nItemType ) { return NULL_OBJECT; } NF_SHARE_PTR<NFIRecord> pRecord = pObject->GetRecordManager()->GetElement( NFrame::Player::R_BagEquipList() ); if (!pRecord) { return NULL_OBJECT; } NFGUID ident = m_pUUIDModule->CreateGUID(); NF_SHARE_PTR<NFIDataList> var = pRecord->GetInitData(); var->SetObject(NFrame::Player::BagEquipList_GUID, ident); var->SetString(NFrame::Player::BagEquipList_ConfigID, strConfigName.c_str()); var->SetInt(NFrame::Player::BagEquipList_Date, NFTime::GetNowTime()); int nAddRow = pRecord->AddRow(-1, *var); if (nAddRow > 0) { return pRecord->GetObject(nAddRow, NFrame::Player::BagEquipList_GUID); } return NULL_OBJECT; }
bool NFCTeamModule::GetTeamInfo(const NFGUID& self, const NFGUID& xTeam, NFMsg::TeamInfo& xTeamInfo) { if (xTeam.IsNull()) { return false; } NF_SHARE_PTR<NFIPropertyManager> pPropertyManager = m_pCommonRedisModule->GetCachePropertyInfo(xTeam, NFrame::Team::ThisName()); NF_SHARE_PTR<NFIRecordManager> pRecordManager = m_pCommonRedisModule->GetCacheRecordInfo(xTeam, NFrame::Team::ThisName()); if (!pPropertyManager) { return false; } if (!pRecordManager) { return false; } NF_SHARE_PTR<NFIRecord> pMemberRecord = pRecordManager->GetElement(NFrame::Team::MemberList::ThisName()); if (!pMemberRecord.get()) { return false; } NFGUID xCaptain = pPropertyManager->GetPropertyObject(NFrame::Team::Captain()); if (!xCaptain.IsNull()) { return false; } *xTeamInfo.mutable_team_id() = NFINetModule::NFToPB(xTeam); *xTeamInfo.mutable_captain_id() = NFINetModule::NFToPB(xCaptain); for (int i = 0; i < pMemberRecord->GetRows(); i++) { if (!pMemberRecord->IsUsed(i)) { continue; } NFMsg::TeammemberInfo* pMemberinfo = xTeamInfo.add_teammemberinfo(); if (!pMemberinfo) { continue; } std::string strName = pMemberRecord->GetString(i, NFrame::Team::MemberList::Name); const int nLevel = pMemberRecord->GetInt32(i, NFrame::Team::MemberList::Level); const int nJob = pMemberRecord->GetInt32(i, NFrame::Team::MemberList::Job); const NFGUID xPlayerID = pMemberRecord->GetObject(i, NFrame::Team::MemberList::GUID); pMemberinfo->set_name(strName); pMemberinfo->set_nlevel(nLevel); pMemberinfo->set_job(nJob); pMemberinfo->set_headicon(""); *pMemberinfo->mutable_player_id() = NFINetModule::NFToPB(xPlayerID); } return true; }
bool NFCCreateRoleModule::ConvertPropertyManagerToPB(const NF_SHARE_PTR<NFIPropertyManager>& pProps, NFMsg::ObjectPropertyList * pPropertyData) { if (pProps) { NF_SHARE_PTR<NFIProperty> xPropert = pProps->First(); while (xPropert) { if (xPropert->GetCache() || xPropert->GetSave()) { switch (xPropert->GetType()) { case NFDATA_TYPE::TDATA_INT: { NFMsg::PropertyInt* pData = pPropertyData->add_property_int_list(); pData->set_property_name(xPropert->GetKey()); pData->set_data(xPropert->GetInt()); } break; case NFDATA_TYPE::TDATA_FLOAT: { NFMsg::PropertyFloat* pData = pPropertyData->add_property_float_list(); pData->set_property_name(xPropert->GetKey()); pData->set_data(xPropert->GetFloat()); } break; case NFDATA_TYPE::TDATA_OBJECT: { NFMsg::PropertyObject* pData = pPropertyData->add_property_object_list(); pData->set_property_name(xPropert->GetKey()); *(pData->mutable_data()) = NFINetModule::NFToPB(xPropert->GetObject()); } break; case NFDATA_TYPE::TDATA_STRING: { NFMsg::PropertyString* pData = pPropertyData->add_property_string_list(); pData->set_property_name(xPropert->GetKey()); pData->set_data(xPropert->GetString()); std::cout << xPropert->GetKey() << " " << xPropert->GetString() << std::endl; } break; case NFDATA_TYPE::TDATA_VECTOR2: { NFMsg::PropertyVector2* pData = pPropertyData->add_property_vector2_list(); pData->set_property_name(xPropert->GetKey()); *(pData->mutable_data()) = NFINetModule::NFToPB(xPropert->GetVector2()); } break; case NFDATA_TYPE::TDATA_VECTOR3: { NFMsg::PropertyVector3* pData = pPropertyData->add_property_vector3_list(); pData->set_property_name(xPropert->GetKey()); *(pData->mutable_data()) = NFINetModule::NFToPB(xPropert->GetVector3()); } break; default: break; } } xPropert = pProps->Next(); } } return false; }
bool NFCCreateRoleModule::ConvertRecordToPB(const NF_SHARE_PTR<NFIRecord>& pRecord, NFMsg::ObjectRecordBase * pRecordData) { pRecordData->set_record_name(pRecord->GetName()); for (int iRow = 0; iRow < pRecord->GetRows(); iRow++) { if (!pRecord->IsUsed(iRow)) { continue; } NFMsg::RecordAddRowStruct* pRowData = pRecordData->add_row_struct(); if (!pRowData) { continue; } pRowData->set_row(iRow); for (int iCol = 0; iCol < pRecord->GetCols(); iCol++) { const int nType = pRecord->GetColType(iCol); switch (nType) { case TDATA_INT: { NFMsg::RecordInt* pPropertyData = pRowData->add_record_int_list(); const NFINT64 xPropertyValue = pRecord->GetInt(iRow, iCol); if (pPropertyData) { pPropertyData->set_col(iCol); pPropertyData->set_row(iRow); pPropertyData->set_data(xPropertyValue); } } break; case TDATA_FLOAT: { NFMsg::RecordFloat* pPropertyData = pRowData->add_record_float_list(); const double xPropertyValue = pRecord->GetFloat(iRow, iCol); if (pPropertyData) { pPropertyData->set_col(iCol); pPropertyData->set_row(iRow); pPropertyData->set_data(xPropertyValue); } } break; case TDATA_STRING: { NFMsg::RecordString* pPropertyData = pRowData->add_record_string_list(); const std::string& xPropertyValue = pRecord->GetString(iRow, iCol); if (pPropertyData) { pPropertyData->set_col(iCol); pPropertyData->set_row(iRow); pPropertyData->set_data(xPropertyValue); } } break; case TDATA_OBJECT: { NFMsg::RecordObject* pPropertyData = pRowData->add_record_object_list(); const NFGUID xPropertyValue = pRecord->GetObject(iRow, iCol); if (pPropertyData) { pPropertyData->set_col(iCol); pPropertyData->set_row(iRow); *pPropertyData->mutable_data() = NFINetModule::NFToPB(xPropertyValue); } } break; case TDATA_VECTOR2: { NFMsg::RecordVector2* pPropertyData = pRowData->add_record_vector2_list(); const NFVector2 xPropertyValue = pRecord->GetVector2(iRow, iCol); if (pPropertyData) { pPropertyData->set_col(iCol); pPropertyData->set_row(iRow); NFMsg::Vector2* pVec = pPropertyData->mutable_data(); pVec->set_x(xPropertyValue.X()); pVec->set_y(xPropertyValue.Y()); } } break; case TDATA_VECTOR3: { NFMsg::RecordVector3* pPropertyData = pRowData->add_record_vector3_list(); const NFVector3 xPropertyValue = pRecord->GetVector3(iRow, iCol); if (pPropertyData) { pPropertyData->set_col(iCol); pPropertyData->set_row(iRow); NFMsg::Vector3* pVec = pPropertyData->mutable_data(); pVec->set_x(xPropertyValue.X()); pVec->set_y(xPropertyValue.Y()); pVec->set_z(xPropertyValue.Z()); } } break; default: break; } } } return true; }
const bool NFCObjectSaveModule::SaveDataToNoSql( const NFIDENTID& self ) { NF_SHARE_PTR<NFIObject> pObject = m_pKernelModule->GetObject( self ); if ( pObject.get() ) { NF_SHARE_PTR<NFIPropertyManager> pProManager = pObject->GetPropertyManager(); NF_SHARE_PTR<NFIRecordManager> pRecordManager = pObject->GetRecordManager(); std::vector<std::string> vFieldVec; std::vector<std::string> vValueVec; //witch property to save std::string strName; NF_SHARE_PTR<NFIProperty> xProperty = pProManager->First(strName); while (xProperty) { if (xProperty->GetSave()) { vFieldVec.push_back(strName); vValueVec.push_back(xProperty->ToString()); } strName.clear(); xProperty = pProManager->Next(strName); } //witch Record to save NF_SHARE_PTR<NFIRecord> xRecord = pRecordManager->First(strName); while (xRecord) { if (xRecord->GetSave()) { NFMsg::PlayerRecordBase xRecordData; xRecordData.set_record_name(strName); for (int i = 0; i < xRecord->GetRows(); ++i) { if(xRecord->IsUsed(i)) { for (int j = 0; j < xRecord->GetCols(); ++j) { switch (xRecord->GetColType(j)) { case TDATA_INT: { NFMsg::RecordInt* pRecordInt = xRecordData.add_record_int_list(); pRecordInt->set_row(i); pRecordInt->set_col(j); pRecordInt->set_data(xRecord->GetInt(i, j)); } break; case TDATA_FLOAT: { NFMsg::RecordFloat* xRecordFloat = xRecordData.add_record_float_list(); xRecordFloat->set_row(i); xRecordFloat->set_col(j); xRecordFloat->set_data(xRecord->GetFloat(i, j)); } break; case TDATA_STRING: { NFMsg::RecordString* xRecordString = xRecordData.add_record_string_list(); xRecordString->set_row(i); xRecordString->set_col(j); xRecordString->set_data(xRecord->GetString(i, j)); } break; case TDATA_OBJECT: { NFMsg::RecordObject* xRecordObejct = xRecordData.add_record_object_list(); xRecordObejct->set_row(i); xRecordObejct->set_col(j); *xRecordObejct->mutable_data() = NFINetModule::NFToPB(xRecord->GetObject(i, j)); } break; default: break; } } } } std::string strRecordValue; if(xRecordData.SerializeToString(&strRecordValue)) { vFieldVec.push_back(strName); vValueVec.push_back(strRecordValue); } } strName.clear(); xRecord = pRecordManager->Next(strName); } const std::string& strClass = m_pKernelModule->GetPropertyString(self, "ClassName"); if(!m_pClusterSQLModule->Updata(strClass, self.ToString(), vFieldVec, vValueVec)) { return false; } return true; } return false; }