本网站可以出售:只需60000元直接拥有。QQ:939804642
您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ MAKE_PAIR32函数代码示例

51自学网 2021-06-01 22:01:49
  C++
这篇教程C++ MAKE_PAIR32函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中MAKE_PAIR32函数的典型用法代码示例。如果您正苦于以下问题:C++ MAKE_PAIR32函数的具体用法?C++ MAKE_PAIR32怎么用?C++ MAKE_PAIR32使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了MAKE_PAIR32函数的24个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: Relocate

bool Transport::Create(uint32 guidlow, uint32 entry, uint32 mapid, float x, float y, float z, float ang, uint32 animprogress, uint32 dynflags){    Relocate(x, y, z, ang);    // instance id and phaseMask isn't set to values different from std.    if (!IsPositionValid())    {        sLog->outError("Transport (GUID: %u) not created. Suggested coordinates isn't valid (X: %f Y: %f)",            guidlow, x, y);        return false;    }    Object::_Create(guidlow, 0, HIGHGUID_MO_TRANSPORT);    GameObjectTemplate const* goinfo = sObjectMgr->GetGameObjectTemplate(entry);    if (!goinfo)    {        sLog->outErrorDb("Transport not created: entry in `gameobject_template` not found, guidlow: %u map: %u  (X: %f Y: %f Z: %f) ang: %f", guidlow, mapid, x, y, z, ang);        return false;    }    m_goInfo = goinfo;    SetFloatValue(OBJECT_FIELD_SCALE_X, goinfo->size);    SetUInt32Value(GAMEOBJECT_FACTION, goinfo->faction);    //SetUInt32Value(GAMEOBJECT_FLAGS, goinfo->flags);    SetUInt32Value(GAMEOBJECT_FLAGS, MAKE_PAIR32(0x28, 0x64));    SetUInt32Value(GAMEOBJECT_LEVEL, m_period);    SetEntry(goinfo->entry);    SetDisplayId(goinfo->displayId);    SetGoState(GO_STATE_READY);    SetGoType(GameobjectTypes(goinfo->type));    SetGoAnimProgress(animprogress);    if (dynflags)        SetUInt32Value(GAMEOBJECT_DYNAMIC, MAKE_PAIR32(0, dynflags));    SetName(goinfo->name);    SetZoneScript();    return true;}
开发者ID:Kheos,项目名称:TrinityCore,代码行数:47,


示例2: OnObjectDBLoad

void BattleGround::OnObjectDBLoad(Creature* creature){    const BattleGroundEventIdx eventId = sBattleGroundMgr.GetCreatureEventIndex(creature->GetGUIDLow());    if (eventId.event1 == BG_EVENT_NONE)        return;    m_EventObjects[MAKE_PAIR32(eventId.event1, eventId.event2)].creatures.push_back(creature->GetObjectGuid());    if (!IsActiveEvent(eventId.event1, eventId.event2))        SpawnBGCreature(creature->GetObjectGuid(), RESPAWN_ONE_DAY);}
开发者ID:MonstermoshCOM,项目名称:server,代码行数:9,


示例3: Relocate

bool Transport::Create(uint32 guidlow, uint32 mapid, float x, float y, float z, float ang, uint32 animprogress, uint32 dynflags){    Relocate(x,y,z,ang);    SetMapId(mapid);    if(!IsPositionValid())    {        sLog.outError("ERROR: Transport (GUID: %u) not created. Suggested coordinates isn't valid (X: %f Y: %f)",            guidlow,x,y);        return false;    }    Object::_Create(guidlow, 0, HIGHGUID_MO_TRANSPORT);    GameObjectInfo const* goinfo = objmgr.GetGameObjectInfo(guidlow);    if (!goinfo)    {        sLog.outErrorDb("Transport not created: entry in `gameobject_template` not found, guidlow: %u map: %u  (X: %f Y: %f Z: %f) ang: %f",guidlow, mapid, x, y, z, ang);        return false;    }    m_goInfo = goinfo;    SetFloatValue(OBJECT_FIELD_SCALE_X, goinfo->size);    SetUInt32Value(GAMEOBJECT_FACTION, goinfo->faction);    //SetUInt32Value(GAMEOBJECT_FLAGS, goinfo->flags);    SetUInt32Value(GAMEOBJECT_FLAGS, MAKE_PAIR32(0x28, 0x64));    SetUInt32Value(GAMEOBJECT_LEVEL, m_period);    SetEntry(goinfo->id);    SetUInt32Value(GAMEOBJECT_DISPLAYID, goinfo->displayId);    SetGoState(1);    SetGoType(GameobjectTypes(goinfo->type));    SetGoAnimProgress(animprogress);    if(dynflags)        SetUInt32Value(GAMEOBJECT_DYNAMIC, MAKE_PAIR32(0, dynflags));    return true;}
开发者ID:Ledeet,项目名称:mangos,代码行数:44,


示例4: Relocate

bool Transport::Create(uint32 guidlow, uint32 entry, uint32 mapid, float x, float y, float z, float ang, uint32 animprogress, uint32 dynflags){    Relocate(x, y, z, ang);    if (!IsPositionValid())    {        sLog->outError("Transport (GUID: %u) not created. Suggested coordinates isn't valid (X: %f Y: %f)",            guidlow, x, y);        return false;    }    Object::_Create(guidlow, 0, HIGHGUID_MO_TRANSPORT);    GameObjectTemplate const* goinfo = sObjectMgr->GetGameObjectTemplate(entry);    if (!goinfo)    {        sLog->outErrorDb("Transport not created: entry in `gameobject_template` not found, guidlow: %u map: %u  (X: %f Y: %f Z: %f) ang: %f", guidlow, mapid, x, y, z, ang);        return false;    }    m_goInfo = goinfo;    TransportTemplate const* tInfo = sTransportMgr->GetTransportTemplate(entry);    if (!tInfo)    {        sLog->outError("Transport %u (name: %s) will not be created, missing `transport_template` entry.", entry, goinfo->name.c_str());        return false;    }    _transportInfo = tInfo;    // initialize waypoints    _nextFrame = tInfo->keyFrames.begin();    _currentFrame = _nextFrame++;    SetFloatValue(OBJECT_FIELD_SCALE_X, goinfo->size);    SetUInt32Value(GAMEOBJECT_FACTION, goinfo->faction);    SetUInt32Value(GAMEOBJECT_FLAGS, goinfo->flags);    SetUInt32Value(GAMEOBJECT_LEVEL, tInfo->pathTime);    SetEntry(goinfo->entry);    SetUInt32Value(GAMEOBJECT_DISPLAYID, goinfo->displayId);    SetGoState(GO_STATE_READY);    SetGoType(GameobjectTypes(goinfo->type));    SetGoAnimProgress(animprogress);    if (dynflags)        SetUInt32Value(GAMEOBJECT_DYNAMIC, MAKE_PAIR32(0, dynflags));    SetName(goinfo->name);    return true;}
开发者ID:Devilcleave,项目名称:TrilliumEMU,代码行数:54,


示例5: SpawnEvent

void BattleGround::SpawnEvent(uint8 event1, uint8 event2, bool spawn){    // stop if we want to spawn something which was already spawned    // or despawn something which was already despawned    if (event2 == BG_EVENT_NONE || (spawn && m_ActiveEvents[event1] == event2)            || (!spawn && m_ActiveEvents[event1] != event2))        return;    if (spawn)    {        // if event gets spawned, the current active event mus get despawned        SpawnEvent(event1, m_ActiveEvents[event1], false);        m_ActiveEvents[event1] = event2;                    // set this event to active    }    else        m_ActiveEvents[event1] = BG_EVENT_NONE;             // no event active if event2 gets despawned    GuidVector::const_iterator itr = m_EventObjects[MAKE_PAIR32(event1, event2)].creatures.begin();    for (; itr != m_EventObjects[MAKE_PAIR32(event1, event2)].creatures.end(); ++itr)        SpawnBGCreature(*itr, (spawn) ? RESPAWN_IMMEDIATELY : RESPAWN_ONE_DAY);    GuidVector::const_iterator itr2 = m_EventObjects[MAKE_PAIR32(event1, event2)].gameobjects.begin();    for (; itr2 != m_EventObjects[MAKE_PAIR32(event1, event2)].gameobjects.end(); ++itr2)        SpawnBGObject(*itr2, (spawn) ? RESPAWN_IMMEDIATELY : RESPAWN_ONE_DAY);}
开发者ID:MonstermoshCOM,项目名称:server,代码行数:24,


示例6: ASSERT

/*Transport::~Transport(){    ASSERT(_passengers.empty());    UnloadStaticPassengers();}*/bool Transport::Create(uint32 guidlow, uint32 entry, uint32 mapid, float x, float y, float z, float ang, uint32 animprogress, uint32 dynflags){    Relocate(x, y, z, ang);    if (!IsPositionValid())    {        IC_LOG_ERROR("entities.transport", "Transport (GUID: %u) not created. Suggested coordinates isn't valid (X: %f Y: %f)",            guidlow, x, y);        return false;    }    Object::_Create(guidlow, 0, HIGHGUID_MO_TRANSPORT);    GameObjectTemplate const* goinfo = sObjectMgr->GetGameObjectTemplate(entry);    if (!goinfo)    {        IC_LOG_ERROR("sql.sql", "Transport not created: entry in `gameobject_template` not found, guidlow: %u map: %u  (X: %f Y: %f Z: %f) ang: %f", guidlow, mapid, x, y, z, ang);        return false;    }    m_goInfo = goinfo;    SetObjectScale(goinfo->size);    SetUInt32Value(GAMEOBJECT_FACTION, goinfo->faction);    SetUInt32Value(GAMEOBJECT_FLAGS, goinfo->flags);    SetUInt32Value(GAMEOBJECT_LEVEL, m_period);    SetEntry(goinfo->entry);    SetDisplayId(goinfo->displayId);    SetGoState(GO_STATE_READY);    SetGoType(GameobjectTypes(goinfo->type));    SetGoAnimProgress(animprogress);    if (dynflags)        SetUInt32Value(GAMEOBJECT_DYN_FLAGS, MAKE_PAIR32(0, dynflags));    SetName(goinfo->name);    SetZoneScript();    return true;}
开发者ID:aikon-com-cn,项目名称:Infinity-Core,代码行数:52,


示例7: LoadDBCStores

//.........这里部分代码省略.........    LoadDBC(availableDbcLocales,bad_dbc_files,sGtBarberShopCostBaseStore,dbcPath,"gtBarberShopCostBase.dbc");    LoadDBC(availableDbcLocales,bad_dbc_files,sGtCombatRatingsStore,     dbcPath,"gtCombatRatings.dbc");    LoadDBC(availableDbcLocales,bad_dbc_files,sGtChanceToMeleeCritBaseStore, dbcPath,"gtChanceToMeleeCritBase.dbc");    LoadDBC(availableDbcLocales,bad_dbc_files,sGtChanceToMeleeCritStore, dbcPath,"gtChanceToMeleeCrit.dbc");    LoadDBC(availableDbcLocales,bad_dbc_files,sGtChanceToSpellCritBaseStore, dbcPath,"gtChanceToSpellCritBase.dbc");    LoadDBC(availableDbcLocales,bad_dbc_files,sGtChanceToSpellCritStore, dbcPath,"gtChanceToSpellCrit.dbc");    LoadDBC(availableDbcLocales,bad_dbc_files,sGtOCTClassCombatRatingScalarStore,dbcPath,"gtOCTClassCombatRatingScalar.dbc");    LoadDBC(availableDbcLocales,bad_dbc_files,sGtOCTRegenHPStore,        dbcPath,"gtOCTRegenHP.dbc");    //LoadDBC(availableDbcLocales,bad_dbc_files,sGtOCTRegenMPStore,        dbcPath,"gtOCTRegenMP.dbc");       -- not used currently    LoadDBC(availableDbcLocales,bad_dbc_files,sGtRegenHPPerSptStore,     dbcPath,"gtRegenHPPerSpt.dbc");    LoadDBC(availableDbcLocales,bad_dbc_files,sGtRegenMPPerSptStore,     dbcPath,"gtRegenMPPerSpt.dbc");    LoadDBC(availableDbcLocales,bad_dbc_files,sHolidaysStore,            dbcPath,"Holidays.dbc");    LoadDBC(availableDbcLocales,bad_dbc_files,sItemStore,                dbcPath,"Item.dbc");    LoadDBC(availableDbcLocales,bad_dbc_files,sItemBagFamilyStore,       dbcPath,"ItemBagFamily.dbc");    //LoadDBC(availableDbcLocales,bad_dbc_files,sItemDisplayInfoStore,     dbcPath,"ItemDisplayInfo.dbc");     -- not used currently    //LoadDBC(availableDbcLocales,bad_dbc_files,sItemCondExtCostsStore,    dbcPath,"ItemCondExtCosts.dbc");    LoadDBC(availableDbcLocales,bad_dbc_files,sItemExtendedCostStore,    dbcPath,"ItemExtendedCost.dbc");    LoadDBC(availableDbcLocales,bad_dbc_files,sItemLimitCategoryStore,   dbcPath,"ItemLimitCategory.dbc");    LoadDBC(availableDbcLocales,bad_dbc_files,sItemRandomPropertiesStore,dbcPath,"ItemRandomProperties.dbc");    LoadDBC(availableDbcLocales,bad_dbc_files,sItemRandomSuffixStore,    dbcPath,"ItemRandomSuffix.dbc");    LoadDBC(availableDbcLocales,bad_dbc_files,sItemSetStore,             dbcPath,"ItemSet.dbc");    LoadDBC(availableDbcLocales,bad_dbc_files,sLockStore,                dbcPath,"Lock.dbc");    LoadDBC(availableDbcLocales,bad_dbc_files,sMailTemplateStore,        dbcPath,"MailTemplate.dbc");    LoadDBC(availableDbcLocales,bad_dbc_files,sMapStore,                 dbcPath,"Map.dbc");    LoadDBC(availableDbcLocales,bad_dbc_files,sMapDifficultyStore,       dbcPath,"MapDifficulty.dbc");    // fill data    for(uint32 i = 1; i < sMapDifficultyStore.GetNumRows(); ++i)        if(MapDifficultyEntry const* entry = sMapDifficultyStore.LookupEntry(i))            sMapDifficultyMap[MAKE_PAIR32(entry->MapId,entry->Difficulty)] = MapDifficulty(entry->resetTime,entry->maxPlayers);    sMapDifficultyStore.Clear();    LoadDBC(availableDbcLocales,bad_dbc_files,sMovieStore,               dbcPath,"Movie.dbc");    LoadDBC(availableDbcLocales,bad_dbc_files,sQuestFactionRewardStore,  dbcPath,"QuestFactionReward.dbc");    LoadDBC(availableDbcLocales,bad_dbc_files,sQuestSortStore,           dbcPath,"QuestSort.dbc");    LoadDBC(availableDbcLocales,bad_dbc_files,sQuestXPLevelStore,        dbcPath,"QuestXP.dbc");    LoadDBC(availableDbcLocales,bad_dbc_files,sPvPDifficultyStore,       dbcPath,"PvpDifficulty.dbc");    for(uint32 i = 0; i < sPvPDifficultyStore.GetNumRows(); ++i)        if (PvPDifficultyEntry const* entry = sPvPDifficultyStore.LookupEntry(i))            if (entry->bracketId > MAX_BATTLEGROUND_BRACKETS)                ASSERT(false && "Need update MAX_BATTLEGROUND_BRACKETS by DBC data");    LoadDBC(availableDbcLocales,bad_dbc_files,sRandomPropertiesPointsStore, dbcPath,"RandPropPoints.dbc");    LoadDBC(availableDbcLocales,bad_dbc_files,sScalingStatDistributionStore, dbcPath,"ScalingStatDistribution.dbc");    LoadDBC(availableDbcLocales,bad_dbc_files,sScalingStatValuesStore,   dbcPath,"ScalingStatValues.dbc");    LoadDBC(availableDbcLocales,bad_dbc_files,sSkillLineStore,           dbcPath,"SkillLine.dbc");    LoadDBC(availableDbcLocales,bad_dbc_files,sSkillLineAbilityStore,    dbcPath,"SkillLineAbility.dbc");    LoadDBC(availableDbcLocales,bad_dbc_files,sSoundEntriesStore,        dbcPath,"SoundEntries.dbc");    LoadDBC(availableDbcLocales,bad_dbc_files,sSpellStore,               dbcPath,"Spell.dbc");    for(uint32 i = 1; i < sSpellStore.GetNumRows(); ++i)    {        SpellEntry const * spell = sSpellStore.LookupEntry(i);        if(spell && spell->Category)            sSpellCategoryStore[spell->Category].insert(i);        // DBC not support uint64 fields but SpellEntry have SpellFamilyFlags mapped at 2 uint32 fields        // uint32 field already converted to bigendian if need, but must be swapped for correct uint64 bigendian view        #if MANGOS_ENDIAN == MANGOS_BIGENDIAN        std::swap(*((uint32*)(&spell->SpellFamilyFlags)),*(((uint32*)(&spell->SpellFamilyFlags))+1));        #endif    }
开发者ID:BACKUPLIB,项目名称:dbc_browser,代码行数:66,


示例8: LoadDBCStores

//.........这里部分代码省略.........    LoadDBC(availableDbcLocales, bad_dbc_files, sGtBarberShopCostBaseStore,   dbcPath, "gtBarberShopCostBase.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sGtCombatRatingsStore,        dbcPath, "gtCombatRatings.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sGtChanceToMeleeCritBaseStore, dbcPath, "gtChanceToMeleeCritBase.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sGtChanceToMeleeCritStore,    dbcPath, "gtChanceToMeleeCrit.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sGtChanceToSpellCritBaseStore, dbcPath, "gtChanceToSpellCritBase.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sGtChanceToSpellCritStore,    dbcPath, "gtChanceToSpellCrit.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sGtOCTClassCombatRatingScalarStore,    dbcPath, "gtOCTClassCombatRatingScalar.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sGtOCTRegenHPStore,           dbcPath, "gtOCTRegenHP.dbc");    //LoadDBC(dbcCount, availableDbcLocales, bad_dbc_files, sGtOCTRegenMPStore,           dbcPath, "gtOCTRegenMP.dbc");       -- not used currently    LoadDBC(availableDbcLocales, bad_dbc_files, sGtRegenHPPerSptStore,        dbcPath, "gtRegenHPPerSpt.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sGtRegenMPPerSptStore,        dbcPath, "gtRegenMPPerSpt.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sHolidaysStore,               dbcPath, "Holidays.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sItemStore,                   dbcPath, "Item.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sItemBagFamilyStore,          dbcPath, "ItemBagFamily.dbc");    //LoadDBC(dbcCount, availableDbcLocales, bad_dbc_files, sItemDisplayInfoStore,        dbcPath, "ItemDisplayInfo.dbc");     -- not used currently    //LoadDBC(dbcCount, availableDbcLocales, bad_dbc_files, sItemCondExtCostsStore,       dbcPath, "ItemCondExtCosts.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sItemExtendedCostStore,       dbcPath, "ItemExtendedCost.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sItemLimitCategoryStore,      dbcPath, "ItemLimitCategory.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sItemRandomPropertiesStore,   dbcPath, "ItemRandomProperties.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sItemRandomSuffixStore,       dbcPath, "ItemRandomSuffix.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sItemSetStore,                dbcPath, "ItemSet.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sLFGDungeonStore,             dbcPath, "LFGDungeons.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sLockStore,                   dbcPath, "Lock.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sMailTemplateStore,           dbcPath, "MailTemplate.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sMapStore,                    dbcPath, "Map.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sMapDifficultyStore,          dbcPath, "MapDifficulty.dbc");    // fill data    for (uint32 i = 1; i < sMapDifficultyStore.GetNumRows(); ++i)        if (MapDifficultyEntry const* entry = sMapDifficultyStore.LookupEntry(i))            sMapDifficultyMap[MAKE_PAIR32(entry->MapId, entry->Difficulty)] = MapDifficulty(entry->resetTime, entry->maxPlayers, entry->areaTriggerText[0] != '/0');    sMapDifficultyStore.Clear();    LoadDBC(availableDbcLocales, bad_dbc_files, sMovieStore,                  dbcPath, "Movie.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sOverrideSpellDataStore,      dbcPath, "OverrideSpellData.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sPvPDifficultyStore,          dbcPath, "PvpDifficulty.dbc");    for (uint32 i = 0; i < sPvPDifficultyStore.GetNumRows(); ++i)        if (PvPDifficultyEntry const* entry = sPvPDifficultyStore.LookupEntry(i))            if (entry->bracketId > MAX_BATTLEGROUND_BRACKETS)                ASSERT(false && "Need update MAX_BATTLEGROUND_BRACKETS by DBC data");    LoadDBC(availableDbcLocales, bad_dbc_files, sQuestXPStore,                dbcPath, "QuestXP.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sQuestFactionRewardStore,     dbcPath, "QuestFactionReward.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sQuestSortStore,              dbcPath, "QuestSort.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sRandomPropertiesPointsStore, dbcPath, "RandPropPoints.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sScalingStatDistributionStore, dbcPath, "ScalingStatDistribution.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sScalingStatValuesStore,      dbcPath, "ScalingStatValues.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sSkillLineStore,              dbcPath, "SkillLine.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sSkillLineAbilityStore,       dbcPath, "SkillLineAbility.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sSoundEntriesStore,           dbcPath, "SoundEntries.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sSpellStore,                  dbcPath, "Spell.dbc", &CustomSpellEntryfmt, &CustomSpellEntryIndex);    for (uint32 i = 1; i < sSpellStore.GetNumRows(); ++i)    {        SpellEntry const* spell = sSpellStore.LookupEntry(i);        if (spell && spell->Category)            sSpellCategoryStore[spell->Category].insert(i);    }    for (uint32 j = 0; j < sSkillLineAbilityStore.GetNumRows(); ++j)
开发者ID:Atreyos,项目名称:FaceCore,代码行数:67,


示例9: LoadDBCStores

//.........这里部分代码省略.........            sCharFacialHairMap.insert({ entry->Race | (entry->Gender << 8) | (entry->Variation << 16), entry });    for (CharSectionsEntry const* entry : sCharSectionsStore)        if (entry->Race && ((1 << (entry->Race - 1)) & RACEMASK_ALL_PLAYABLE) != 0) // ignore nonplayable races            sCharSectionMap.insert({ entry->GenType | (entry->Gender << 8) | (entry->Race << 16), entry });    for (CharStartOutfitEntry const* outfit : sCharStartOutfitStore)        sCharStartOutfitMap[outfit->Race | (outfit->Class << 8) | (outfit->Gender << 16)] = outfit;    for (EmotesTextSoundEntry const* entry : sEmotesTextSoundStore)        sEmotesTextSoundMap[EmotesTextSoundKey(entry->EmotesTextId, entry->RaceId, entry->SexId)] = entry;    for (FactionEntry const* faction : sFactionStore)    {        if (faction->team)        {            SimpleFactionsList& flist = sFactionTeamMap[faction->team];            flist.push_back(faction->ID);        }    }    for (GameObjectDisplayInfoEntry const* info : sGameObjectDisplayInfoStore)    {        if (info->maxX < info->minX)            std::swap(*(float*)(&info->maxX), *(float*)(&info->minX));        if (info->maxY < info->minY)            std::swap(*(float*)(&info->maxY), *(float*)(&info->minY));        if (info->maxZ < info->minZ)            std::swap(*(float*)(&info->maxZ), *(float*)(&info->minZ));    }    // fill data    for (MapDifficultyEntry const* entry : sMapDifficultyStore)        sMapDifficultyMap[MAKE_PAIR32(entry->MapId, entry->Difficulty)] = MapDifficulty(entry->resetTime, entry->maxPlayers, entry->areaTriggerText[0] != '/0');    for (NamesProfanityEntry const* namesProfanity : sNamesProfanityStore)    {        ASSERT(namesProfanity->Language < TOTAL_LOCALES || namesProfanity->Language == -1);        std::wstring wname;        bool conversionResult = Utf8toWStr(namesProfanity->Name, wname);        ASSERT(conversionResult);        if (namesProfanity->Language != -1)            NamesProfaneValidators[namesProfanity->Language].emplace_back(wname, Trinity::regex::perl | Trinity::regex::icase | Trinity::regex::optimize);        else            for (uint32 i = 0; i < TOTAL_LOCALES; ++i)                NamesProfaneValidators[i].emplace_back(wname, Trinity::regex::perl | Trinity::regex::icase | Trinity::regex::optimize);    }    for (NamesReservedEntry const* namesReserved : sNamesReservedStore)    {        ASSERT(namesReserved->Language < TOTAL_LOCALES || namesReserved->Language == -1);        std::wstring wname;        bool conversionResult = Utf8toWStr(namesReserved->Name, wname);        ASSERT(conversionResult);        if (namesReserved->Language != -1)            NamesReservedValidators[namesReserved->Language].emplace_back(wname, Trinity::regex::perl | Trinity::regex::icase | Trinity::regex::optimize);        else            for (uint32 i = 0; i < TOTAL_LOCALES; ++i)                NamesReservedValidators[i].emplace_back(wname, Trinity::regex::perl | Trinity::regex::icase | Trinity::regex::optimize);    }    for (PvPDifficultyEntry const* entry : sPvPDifficultyStore)    {        ASSERT(entry->bracketId < MAX_BATTLEGROUND_BRACKETS, "PvpDifficulty bracket (%d) exceeded max allowed value (%d)", entry->bracketId, MAX_BATTLEGROUND_BRACKETS);
开发者ID:lasyan3,项目名称:TrinityCore,代码行数:67,


示例10: time

void InstanceResetScheduler::LoadResetTimes(){    time_t now = time(NULL);    time_t today = (now / DAY) * DAY;    time_t oldest_reset_time = now;    // NOTE: Use DirectPExecute for tables that will be queried later    // get the current reset times for normal instances (these may need to be updated)    // these are only kept in memory for InstanceSaves that are loaded later    // resettime = 0 in the DB for raid/heroic instances so those are skipped    typedef std::pair<uint32 /*PAIR32(map,difficulty)*/, time_t> ResetTimeMapDiffType;    typedef std::map<uint32, ResetTimeMapDiffType> InstResetTimeMapDiffType;    InstResetTimeMapDiffType instResetTime;    QueryResult *result = CharacterDatabase.Query("SELECT id, map, difficulty, resettime FROM instance WHERE resettime > 0");    if( result )    {        do        {            if(time_t resettime = time_t((*result)[3].GetUInt64()))            {                uint32 id = (*result)[0].GetUInt32();                uint32 mapid = (*result)[1].GetUInt32();                uint32 difficulty = (*result)[2].GetUInt32();                instResetTime[id] = ResetTimeMapDiffType(MAKE_PAIR32(mapid,difficulty), resettime);            }        }        while (result->NextRow());        delete result;        // update reset time for normal instances with the max creature respawn time + X hours        result = CharacterDatabase.Query("SELECT MAX(respawntime), instance FROM creature_respawn WHERE instance > 0 GROUP BY instance");        if( result )        {            do            {                Field *fields = result->Fetch();                uint32 instance = fields[1].GetUInt32();                time_t resettime = time_t(fields[0].GetUInt64() + 2 * HOUR);                InstResetTimeMapDiffType::iterator itr = instResetTime.find(instance);                if(itr != instResetTime.end() && itr->second.second != resettime)                {                    CharacterDatabase.DirectPExecute("UPDATE instance SET resettime = '"UI64FMTD"' WHERE id = '%u'", uint64(resettime), instance);                    itr->second.second = resettime;                }            }            while (result->NextRow());            delete result;        }        // schedule the reset times        for(InstResetTimeMapDiffType::iterator itr = instResetTime.begin(); itr != instResetTime.end(); ++itr)            if(itr->second.second > now)                ScheduleReset(true, itr->second.second, InstanceResetEvent(RESET_EVENT_DUNGEON, PAIR32_LOPART(itr->second.first),Difficulty(PAIR32_HIPART(itr->second.first)),itr->first));    }    // load the global respawn times for raid/heroic instances    uint32 diff = sWorld.getConfig(CONFIG_UINT32_INSTANCE_RESET_TIME_HOUR) * HOUR;    result = CharacterDatabase.Query("SELECT mapid, difficulty, resettime FROM instance_reset");    if(result)    {        do        {            Field *fields = result->Fetch();            uint32 mapid = fields[0].GetUInt32();            Difficulty difficulty = Difficulty(fields[1].GetUInt32());            uint64 oldresettime = fields[2].GetUInt64();            MapDifficulty const* mapDiff = GetMapDifficultyData(mapid,difficulty);            if(!mapDiff)            {                sLog.outError("InstanceSaveManager::LoadResetTimes: invalid mapid(%u)/difficulty(%u) pair in instance_reset!", mapid, difficulty);                CharacterDatabase.DirectPExecute("DELETE FROM instance_reset WHERE mapid = '%u' AND difficulty = '%u'", mapid,difficulty);                continue;            }            // update the reset time if the hour in the configs changes            uint32 offset = sMapStore.LookupEntry(mapid)->instanceResetOffset;            uint64 start_point = INSTANCE_RESET_SCHEDULE_START_TIME + offset + diff;            uint64 newresettime = start_point + uint32((oldresettime - start_point) / DAY) * DAY;            if(oldresettime != newresettime)                CharacterDatabase.DirectPExecute("UPDATE instance_reset SET resettime = '"UI64FMTD"' WHERE mapid = '%u' AND difficulty = '%u'", newresettime, mapid, difficulty);            SetResetTimeFor(mapid,difficulty,newresettime);        } while(result->NextRow());        delete result;    }    // clean expired instances, references to them will be deleted in CleanupInstances    // must be done before calculating new reset times    m_InstanceSaves._CleanupExpiredInstancesAtTime(now);    // calculate new global reset times for expired instances and those that have never been reset yet    // add the global reset times to the priority queue    for(MapDifficultyMap::const_iterator itr = sMapDifficultyMap.begin(); itr != sMapDifficultyMap.end(); ++itr)    {        uint32 map_diff_pair = itr->first;        uint32 mapid = PAIR32_LOPART(map_diff_pair);        Difficulty difficulty = Difficulty(PAIR32_HIPART(map_diff_pair));//.........这里部分代码省略.........
开发者ID:nos4r2zod,项目名称:mangos,代码行数:101,


示例11: AddMenuItem

/** * @name AddMenuItem * @brief Adds a localized gossip menu item from db by menu id and menu item id. * @param menuId Gossip menu id. * @param menuItemId Gossip menu item id. * @param sender Identifier of the current menu. * @param action Custom action given to OnGossipHello. */void GossipMenu::AddMenuItem(uint32 menuId, uint32 menuItemId, uint32 sender, uint32 action){    /// Find items for given menu id.    GossipMenuItemsMapBounds bounds = sObjectMgr->GetGossipMenuItemsMapBounds(menuId);    /// Return if there are none.    if (bounds.first == bounds.second)        return;    /// Iterate over each of them.    for (GossipMenuItemsContainer::const_iterator itr = bounds.first; itr != bounds.second; ++itr)    {        /// Find the one with the given menu item id.        if (itr->second.OptionIndex != menuItemId)            continue;        /// Store texts for localization.        std::string strOptionText = itr->second.OptionText;        std::string strBoxText = itr->second.BoxText;        /// Check need of localization.        if (GetLocale() > LOCALE_enUS)            /// Find localizations from database.            if (GossipMenuItemsLocale const* no = sObjectMgr->GetGossipMenuItemsLocale(MAKE_PAIR32(menuId, menuItemId)))            {                /// Translate texts if there are any.                ObjectMgr::GetLocaleString(no->OptionText, GetLocale(), strOptionText);                ObjectMgr::GetLocaleString(no->BoxText, GetLocale(), strBoxText);            }        /// Add menu item with existing method. Menu item id -1 is also used in ADD_GOSSIP_ITEM macro.        AddMenuItem(-1, itr->second.OptionIcon, strOptionText, sender, action, strBoxText, itr->second.BoxMoney, itr->second.BoxCoded);    }}
开发者ID:Exodius,项目名称:chuspi,代码行数:41,


示例12: GetMapDifficultyData

MapDifficulty const* GetMapDifficultyData(uint32 mapId, Difficulty difficulty){    MapDifficultyMap::const_iterator itr = sMapDifficultyMap.find(MAKE_PAIR32(mapId,difficulty));    return itr != sMapDifficultyMap.end() ? &itr->second : NULL;}
开发者ID:ZajicekDuracel,项目名称:mangos,代码行数:5,


示例13: ResetTimeMapDiffType

void InstanceSaveManager::LoadResetTimes(){    time_t now = GameTime::GetGameTime();    time_t today = (now / DAY) * DAY;    // NOTE: Use DirectPExecute for tables that will be queried later    // get the current reset times for normal instances (these may need to be updated)    // these are only kept in memory for InstanceSaves that are loaded later    // resettime = 0 in the DB for raid/heroic instances so those are skipped    typedef std::pair<uint32 /*PAIR32(map, difficulty)*/, time_t> ResetTimeMapDiffType;    typedef std::map<uint32, ResetTimeMapDiffType> InstResetTimeMapDiffType;    InstResetTimeMapDiffType instResetTime;    // index instance ids by map/difficulty pairs for fast reset warning send    typedef std::multimap<uint32 /*PAIR32(map, difficulty)*/, uint32 /*instanceid*/ > ResetTimeMapDiffInstances;    typedef std::pair<ResetTimeMapDiffInstances::const_iterator, ResetTimeMapDiffInstances::const_iterator> ResetTimeMapDiffInstancesBounds;    ResetTimeMapDiffInstances mapDiffResetInstances;    if (QueryResult result = CharacterDatabase.Query("SELECT id, map, difficulty, resettime FROM instance ORDER BY id ASC"))    {        do        {            Field* fields = result->Fetch();            uint32 instanceId = fields[0].GetUInt32();            // Mark instance id as being used            sMapMgr->RegisterInstanceId(instanceId);            if (time_t resettime = time_t(fields[3].GetUInt64()))            {                uint32 mapid = fields[1].GetUInt16();                uint32 difficulty = fields[2].GetUInt8();                instResetTime[instanceId] = ResetTimeMapDiffType(MAKE_PAIR32(mapid, difficulty), resettime);                mapDiffResetInstances.insert(ResetTimeMapDiffInstances::value_type(MAKE_PAIR32(mapid, difficulty), instanceId));            }        }        while (result->NextRow());        // schedule the reset times        for (InstResetTimeMapDiffType::iterator itr = instResetTime.begin(); itr != instResetTime.end(); ++itr)            if (itr->second.second > now)                ScheduleReset(true, itr->second.second, InstResetEvent(0, PAIR32_LOPART(itr->second.first), Difficulty(PAIR32_HIPART(itr->second.first)), itr->first));    }    // load the global respawn times for raid/heroic instances    uint32 diff = sWorld->getIntConfig(CONFIG_INSTANCE_RESET_TIME_HOUR) * HOUR;    if (QueryResult result = CharacterDatabase.Query("SELECT mapid, difficulty, resettime FROM instance_reset"))    {        do        {            Field* fields = result->Fetch();            uint32 mapid = fields[0].GetUInt16();            Difficulty difficulty = Difficulty(fields[1].GetUInt8());            uint64 oldresettime = fields[2].GetUInt64();            MapDifficulty const* mapDiff = GetMapDifficultyData(mapid, difficulty);            if (!mapDiff)            {                TC_LOG_ERROR("misc", "InstanceSaveManager::LoadResetTimes: invalid mapid(%u)/difficulty(%u) pair in instance_reset!", mapid, difficulty);                PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GLOBAL_INSTANCE_RESETTIME);                stmt->setUInt16(0, uint16(mapid));                stmt->setUInt8(1, uint8(difficulty));                CharacterDatabase.DirectExecute(stmt);                continue;            }            // update the reset time if the hour in the configs changes            uint64 newresettime = (oldresettime / DAY) * DAY + diff;            if (oldresettime != newresettime)            {                PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GLOBAL_INSTANCE_RESETTIME);                stmt->setUInt64(0, uint64(newresettime));                stmt->setUInt16(1, uint16(mapid));                stmt->setUInt8(2, uint8(difficulty));                CharacterDatabase.DirectExecute(stmt);            }            InitializeResetTimeFor(mapid, difficulty, newresettime);        } while (result->NextRow());    }    // calculate new global reset times for expired instances and those that have never been reset yet    // add the global reset times to the priority queue    for (MapDifficultyMap::const_iterator itr = sMapDifficultyMap.begin(); itr != sMapDifficultyMap.end(); ++itr)    {        uint32 map_diff_pair = itr->first;        uint32 mapid = PAIR32_LOPART(map_diff_pair);        Difficulty difficulty = Difficulty(PAIR32_HIPART(map_diff_pair));        MapDifficulty const* mapDiff = &itr->second;        if (!mapDiff->resetTime)            continue;        // the reset_delay must be at least one day        uint32 period = uint32(((mapDiff->resetTime * sWorld->getRate(RATE_INSTANCE_RESET_TIME))/DAY) * DAY);        if (period < DAY)            period = DAY;//.........这里部分代码省略.........
开发者ID:Refuge89,项目名称:TrinityCore,代码行数:101,


示例14: time

void InstanceSaveManager::LoadResetTimes(){    time_t now = time(NULL);    time_t today = (now / DAY) * DAY;    // NOTE: Use DirectPExecute for tables that will be queried later    // get the current reset times for normal instances (these may need to be updated)    // these are only kept in memory for InstanceSaves that are loaded later    // resettime = 0 in the DB for raid/heroic instances so those are skipped    typedef std::pair<uint32 /*PAIR32(map, difficulty)*/, time_t> ResetTimeMapDiffType;    typedef std::map<uint32, ResetTimeMapDiffType> InstResetTimeMapDiffType;    InstResetTimeMapDiffType instResetTime;    // index instance ids by map/difficulty pairs for fast reset warning send    typedef std::multimap<uint32 /*PAIR32(map, difficulty)*/, uint32 /*instanceid*/ > ResetTimeMapDiffInstances;    ResetTimeMapDiffInstances mapDiffResetInstances;    QueryResult result = CharacterDatabase.Query("SELECT id, map, difficulty, resettime FROM instance ORDER BY id ASC");    if (result)    {        do        {            Field* fields = result->Fetch();            uint32 instanceId = fields[0].GetUInt32();            // Instances are pulled in ascending order from db and nextInstanceId is initialized with 1,            // so if the instance id is used, increment until we find the first unused one for a potential new instance            if (sMapMgr->GetNextInstanceId() == instanceId)                sMapMgr->SetNextInstanceId(instanceId + 1);            // Mark instance id as being used            sMapMgr->RegisterInstanceId(instanceId);            if (time_t resettime = time_t(fields[3].GetUInt32()))            {                uint32 mapid = fields[1].GetUInt16();                uint32 difficulty = fields[2].GetUInt8();                instResetTime[instanceId] = ResetTimeMapDiffType(MAKE_PAIR32(mapid, difficulty), resettime);                mapDiffResetInstances.insert(ResetTimeMapDiffInstances::value_type(MAKE_PAIR32(mapid, difficulty), instanceId));            }        }        while (result->NextRow());        // update reset time for normal instances with the max creature respawn time + X hours        if (PreparedQueryResult result2 = CharacterDatabase.Query(CharacterDatabase.GetPreparedStatement(CHAR_SEL_MAX_CREATURE_RESPAWNS)))        {            do            {                Field* fields = result2->Fetch();                uint32 instance = fields[1].GetUInt32();                time_t resettime = time_t(fields[0].GetUInt32() + 2 * HOUR);                InstResetTimeMapDiffType::iterator itr = instResetTime.find(instance);                if (itr != instResetTime.end() && itr->second.second != resettime)                {                    CharacterDatabase.DirectPExecute("UPDATE instance SET resettime = '"UI64FMTD"' WHERE id = '%u'", uint64(resettime), instance);                    itr->second.second = resettime;                }            }            while (result->NextRow());        }        // schedule the reset times        for (InstResetTimeMapDiffType::iterator itr = instResetTime.begin(); itr != instResetTime.end(); ++itr)            if (itr->second.second > now)                ScheduleReset(true, itr->second.second, InstResetEvent(0, PAIR32_LOPART(itr->second.first), Difficulty(PAIR32_HIPART(itr->second.first)), itr->first));    }    // load the global respawn times for raid/heroic instances    uint32 diff = sWorld->getIntConfig(CONFIG_INSTANCE_RESET_TIME_HOUR) * HOUR;    result = CharacterDatabase.Query("SELECT mapid, difficulty, resettime FROM instance_reset");    if (result)    {        do        {            Field* fields = result->Fetch();            uint32 mapid = fields[0].GetUInt16();            Difficulty difficulty = Difficulty(fields[1].GetUInt8());            uint64 oldresettime = fields[2].GetUInt32();            MapDifficulty const* mapDiff = GetMapDifficultyData(mapid, difficulty);            if (!mapDiff)            {                sLog->outError("InstanceSaveManager::LoadResetTimes: invalid mapid(%u)/difficulty(%u) pair in instance_reset!", mapid, difficulty);                CharacterDatabase.DirectPExecute("DELETE FROM instance_reset WHERE mapid = '%u' AND difficulty = '%u'", mapid, difficulty);                continue;            }            // update the reset time if the hour in the configs changes            uint64 newresettime = (oldresettime / DAY) * DAY + diff;            if (oldresettime != newresettime)                CharacterDatabase.DirectPExecute("UPDATE instance_reset SET resettime = '%u' WHERE mapid = '%u' AND difficulty = '%u'", uint32(newresettime), mapid, difficulty);            SetResetTimeFor(mapid, difficulty, newresettime);        } while (result->NextRow());    }    ResetTimeMapDiffInstances::const_iterator in_itr;//.........这里部分代码省略.........
开发者ID:Krill156,项目名称:FreyaCore,代码行数:101,


示例15: SetResetTimeFor

void InstanceSaveManager::SetResetTimeFor(uint32 mapid, Difficulty d, time_t t){    ResetTimeByMapDifficultyMap::iterator itr = m_resetTimeByMapDifficulty.find(MAKE_PAIR32(mapid, d));    ASSERT(itr != m_resetTimeByMapDifficulty.end());    itr->second = t;}
开发者ID:Refuge89,项目名称:TrinityCore,代码行数:6,


示例16: LoadDBCStores

//.........这里部分代码省略.........    LoadDBC(availableDbcLocales, bad_dbc_files, sGlyphSlotStore,              dbcPath, "GlyphSlot.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sGtBarberShopCostBaseStore,   dbcPath, "gtBarberShopCostBase.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sGtCombatRatingsStore,        dbcPath, "gtCombatRatings.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sGtChanceToMeleeCritBaseStore, dbcPath, "gtChanceToMeleeCritBase.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sGtChanceToMeleeCritStore,    dbcPath, "gtChanceToMeleeCrit.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sGtChanceToSpellCritBaseStore, dbcPath, "gtChanceToSpellCritBase.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sGtChanceToSpellCritStore,    dbcPath, "gtChanceToSpellCrit.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sGtOCTClassCombatRatingScalarStore,    dbcPath, "gtOCTClassCombatRatingScalar.dbc");    //LoadDBC(availableDbcLocales, bad_dbc_files, sGtOCTRegenHPStore,           dbcPath, "gtOCTRegenHP.dbc");    //LoadDBC(dbcCount, availableDbcLocales, bad_dbc_files, sGtOCTRegenMPStore,           dbcPath, "gtOCTRegenMP.dbc");       -- not used currently    //LoadDBC(availableDbcLocales, bad_dbc_files, sGtRegenHPPerSptStore,        dbcPath, "gtRegenHPPerSpt.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sGtRegenMPPerSptStore,        dbcPath, "gtRegenMPPerSpt.dbc");    LoadDBC(availableDbcLocales,bad_dbc_files,sGuildPerksStore,               dbcPath,"GuildPerkSpells.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sHolidaysStore,               dbcPath, "Holidays.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sItemBagFamilyStore,          dbcPath, "ItemBagFamily.dbc");    //LoadDBC(dbcCount, availableDbcLocales, bad_dbc_files, sItemDisplayInfoStore,        dbcPath, "ItemDisplayInfo.dbc");     -- not used currently    //LoadDBC(dbcCount, availableDbcLocales, bad_dbc_files, sItemCondExtCostsStore,       dbcPath, "ItemCondExtCosts.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sItemExtendedCostStore,       dbcPath, "ItemExtendedCost.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sItemLimitCategoryStore,      dbcPath, "ItemLimitCategory.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sItemRandomPropertiesStore,   dbcPath, "ItemRandomProperties.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sItemRandomSuffixStore,       dbcPath, "ItemRandomSuffix.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sItemSetStore,                dbcPath, "ItemSet.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sItemReforgeStore,            dbcPath, "ItemReforge.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sLFGDungeonStore,             dbcPath, "LFGDungeons.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sLockStore,                   dbcPath, "Lock.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sMailTemplateStore,           dbcPath, "MailTemplate.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sMapStore,                    dbcPath, "Map.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sMapDifficultyStore,          dbcPath, "MapDifficulty.dbc");    // fill data    for (uint32 i = 1; i < sMapDifficultyStore.GetNumRows(); ++i)        if (MapDifficultyEntry const* entry = sMapDifficultyStore.LookupEntry(i))            sMapDifficultyMap[MAKE_PAIR32(entry->MapId, entry->Difficulty)] = MapDifficulty(entry->resetTime, entry->maxPlayers, entry->areaTriggerText > 0);    // HACK for map 0, data removed in 4.0 - by LordJZ    /// ToDo: Find a way to correctly fix this    sMapDifficultyMap[MAKE_PAIR32(0/*map*/, 0/*difficulty*/)] = MapDifficulty(0/*resetTime*/ ,0/*mapPlayers*/, false /*HasErrorMessage*/);    sMapDifficultyStore.Clear();    LoadDBC(availableDbcLocales, bad_dbc_files, sMovieStore,                  dbcPath, "Movie.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sMountCapabilityStore,        dbcPath, "MountCapability.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sMountTypeStore,              dbcPath, "MountType.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sOverrideSpellDataStore,      dbcPath, "OverrideSpellData.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sPvPDifficultyStore,          dbcPath, "PvpDifficulty.dbc");    for (uint32 i = 0; i < sPvPDifficultyStore.GetNumRows(); ++i)        if (PvPDifficultyEntry const* entry = sPvPDifficultyStore.LookupEntry(i))            if (entry->bracketId > MAX_BATTLEGROUND_BRACKETS)                ASSERT(false && "Need update MAX_BATTLEGROUND_BRACKETS by DBC data");    LoadDBC(availableDbcLocales, bad_dbc_files, sQuestXPStore,                dbcPath, "QuestXP.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sQuestFactionRewardStore,     dbcPath, "QuestFactionReward.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sQuestSortStore,              dbcPath, "QuestSort.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sRandomPropertiesPointsStore, dbcPath, "RandPropPoints.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sScalingStatDistributionStore, dbcPath, "ScalingStatDistribution.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sScalingStatValuesStore,      dbcPath, "ScalingStatValues.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sSkillLineStore,              dbcPath, "SkillLine.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sSkillLineAbilityStore,       dbcPath, "SkillLineAbility.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sSoundEntriesStore,           dbcPath, "SoundEntries.dbc");    LoadDBC(availableDbcLocales, bad_dbc_files, sSpellAuraOptionsStore,       dbcPath, "SpellAuraOptions.dbc"/*, &CustomSpellAuraOptionsEntryfmt, &CustomSpellAuraOptionsEntryIndex*/);    LoadDBC(availableDbcLocales, bad_dbc_files, sSpellAuraRestrictionsStore,  dbcPath, "SpellAuraRestrictions.dbc", &CustomSpellAuraRestrictionsEntryfmt, &CustomSpellAuraRestrictionsEntryIndex);    LoadDBC(availableDbcLocales, bad_dbc_files, sSpellCastingRequirementsStore, dbcPath, "SpellCastingRequirements.dbc"/*, &CustomSpellCastingRequirementsEntryfmt, &CustomSpellCastingRequirementsEntryIndex*/);
开发者ID:Exodius,项目名称:Atlantiss,代码行数:67,


示例17: GetLocale

/** * @name AddMenuItem * @brief Adds a localized gossip menu item from db by menu id and menu item id. * @param menuId Gossip menu id. * @param menuItemId Gossip menu item id. * @param sender Identifier of the current menu. * @param action Custom action given to OnGossipHello. */void GossipMenu::AddMenuItem(uint32 menuId, uint32 menuItemId, uint32 sender, uint32 action){    /// Find items for given menu id.    GossipMenuItemsMapBounds bounds = sObjectMgr->GetGossipMenuItemsMapBounds(menuId);    /// Return if there are none.    if (bounds.first == bounds.second)        return;    /// Iterate over each of them.    for (GossipMenuItemsContainer::const_iterator itr = bounds.first; itr != bounds.second; ++itr)    {        /// Find the one with the given menu item id.        if (itr->second.OptionIndex != menuItemId)            continue;        /// Store texts for localization.        std::string strOptionText, strBoxText;        BroadcastTextEntry const* optionBroadcastText = sBroadcastTextStore.LookupEntry(itr->second.OptionBroadcastTextId);        BroadcastTextEntry const* boxBroadcastText = sBroadcastTextStore.LookupEntry(itr->second.BoxBroadcastTextId);        /// OptionText        if (optionBroadcastText)            strOptionText = DB2Manager::GetBroadcastTextValue(optionBroadcastText, GetLocale());        else            strOptionText = itr->second.OptionText;        /// BoxText        if (boxBroadcastText)            strBoxText = DB2Manager::GetBroadcastTextValue(boxBroadcastText, GetLocale());        else            strBoxText = itr->second.BoxText;        /// Check need of localization.        if (GetLocale() != DEFAULT_LOCALE)        {            if (!optionBroadcastText)            {                /// Find localizations from database.                if (GossipMenuItemsLocale const* gossipMenuLocale = sObjectMgr->GetGossipMenuItemsLocale(MAKE_PAIR32(menuId, menuItemId)))                    ObjectMgr::GetLocaleString(gossipMenuLocale->OptionText, GetLocale(), strOptionText);            }            if (!boxBroadcastText)            {                /// Find localizations from database.                if (GossipMenuItemsLocale const* gossipMenuLocale = sObjectMgr->GetGossipMenuItemsLocale(MAKE_PAIR32(menuId, menuItemId)))                    ObjectMgr::GetLocaleString(gossipMenuLocale->BoxText, GetLocale(), strBoxText);            }        }        /// Add menu item with existing method. Menu item id -1 is also used in ADD_GOSSIP_ITEM macro.        AddMenuItem(-1, itr->second.OptionIcon, strOptionText, sender, action, strBoxText, itr->second.BoxMoney, itr->second.BoxCoded);    }}
开发者ID:Diyvol,项目名称:TrinityCore,代码行数:62,


示例18: GetLFGExpansionEntry

LFGDungeonExpansionEntry const* GetLFGExpansionEntry(uint32 dungeonId, uint32 expansion){    LFGDungeonExpansionMap::const_iterator itr = sLFGDungeonExpansionMap.find(MAKE_PAIR32(dungeonId,expansion));    return itr != sLFGDungeonExpansionMap.end() ? itr->second : NULL;}
开发者ID:BACKUPLIB,项目名称:Darkportalwow,代码行数:5,


示例19: time

void InstanceResetScheduler::LoadResetTimes(){    time_t now = time(NULL);    time_t today = (now / DAY) * DAY;    // NOTE: Use DirectPExecute for tables that will be queried later    // get the current reset times for normal instances (these may need to be updated)    // these are only kept in memory for InstanceSaves that are loaded later    // resettime = 0 in the DB for raid/heroic instances so those are skipped    typedef std::pair<uint32 /*PAIR32(map,difficulty)*/, time_t> ResetTimeMapDiffType;    typedef std::map<uint32, ResetTimeMapDiffType> InstResetTimeMapDiffType;    InstResetTimeMapDiffType instResetTime;    // index instance ids by map/difficulty pairs for fast reset warning send    typedef std::multimap<uint32 /*PAIR32(map,difficulty)*/, uint32 /*instanceid*/ > ResetTimeMapDiffInstances;    ResetTimeMapDiffInstances mapDiffResetInstances;    QueryResult *result = CharacterDatabase.Query("SELECT id, map, difficulty, resettime FROM instance WHERE resettime > 0");    if( result )    {        do        {            if(time_t resettime = time_t((*result)[3].GetUInt64()))            {                uint32 id = (*result)[0].GetUInt32();                uint32 mapid = (*result)[1].GetUInt32();                uint32 difficulty = (*result)[2].GetUInt32();                instResetTime[id] = ResetTimeMapDiffType(MAKE_PAIR32(mapid,difficulty), resettime);                mapDiffResetInstances.insert(ResetTimeMapDiffInstances::value_type(MAKE_PAIR32(mapid,difficulty),id));            }        }        while (result->NextRow());        delete result;        // update reset time for normal instances with the max creature respawn time + X hours        result = WorldDatabase.Query("SELECT MAX(respawntime), instance FROM creature_respawn WHERE instance > 0 GROUP BY instance");        if( result )        {            do            {                Field *fields = result->Fetch();                uint32 instance = fields[1].GetUInt32();                time_t resettime = time_t(fields[0].GetUInt64() + 2 * HOUR);                InstResetTimeMapDiffType::iterator itr = instResetTime.find(instance);                if(itr != instResetTime.end() && itr->second.second != resettime)                {                    CharacterDatabase.DirectPExecute("UPDATE instance SET resettime = '"UI64FMTD"' WHERE id = '%u'", uint64(resettime), instance);                    itr->second.second = resettime;                }            }            while (result->NextRow());            delete result;        }        // schedule the reset times        for(InstResetTimeMapDiffType::iterator itr = instResetTime.begin(); itr != instResetTime.end(); ++itr)            if(itr->second.second > now)                ScheduleReset(true, itr->second.second, InstanceResetEvent(0, PAIR32_LOPART(itr->second.first),Difficulty(PAIR32_HIPART(itr->second.first)),itr->first));    }    // load the global respawn times for raid/heroic instances    uint32 diff = sWorld.getConfig(CONFIG_UINT32_INSTANCE_RESET_TIME_HOUR) * HOUR;    result = CharacterDatabase.Query("SELECT mapid, difficulty, resettime FROM instance_reset");    if(result)    {        do        {            Field *fields = result->Fetch();            uint32 mapid = fields[0].GetUInt32();            Difficulty difficulty = Difficulty(fields[1].GetUInt32());            uint64 oldresettime = fields[2].GetUInt64();            MapDifficulty const* mapDiff = GetMapDifficultyData(mapid,difficulty);            if(!mapDiff)            {                sLog.outError("InstanceSaveManager::LoadResetTimes: invalid mapid(%u)/difficulty(%u) pair in instance_reset!", mapid, difficulty);                CharacterDatabase.DirectPExecute("DELETE FROM instance_reset WHERE mapid = '%u' AND difficulty = '%u'", mapid,difficulty);                continue;            }            // update the reset time if the hour in the configs changes            uint64 newresettime = (oldresettime / DAY) * DAY + diff;            if(oldresettime != newresettime)                CharacterDatabase.DirectPExecute("UPDATE instance_reset SET resettime = '"UI64FMTD"' WHERE mapid = '%u' AND difficulty = '%u'", newresettime, mapid, difficulty);            SetResetTimeFor(mapid,difficulty,newresettime);        } while(result->NextRow());        delete result;    }    // clean expired instances, references to them will be deleted in CleanupInstances    // must be done before calculating new reset times    m_InstanceSaves._CleanupExpiredInstancesAtTime(now);    // calculate new global reset times for expired instances and those that have never been reset yet    // add the global reset times to the priority queue    for(MapDifficultyMap::const_iterator itr = sMapDifficultyMap.begin(); itr != sMapDifficultyMap.end(); ++itr)    {        uint32 map_diff_pair = itr->first;//.........这里部分代码省略.........
开发者ID:bombapiter,项目名称:mangos,代码行数:101,


示例20: LoadDBCStores

//.........这里部分代码省略.........    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtBarberShopCostBaseStore,dbcPath,"gtBarberShopCostBase.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtCombatRatingsStore,     dbcPath,"gtCombatRatings.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtChanceToMeleeCritBaseStore, dbcPath,"gtChanceToMeleeCritBase.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtChanceToMeleeCritStore, dbcPath,"gtChanceToMeleeCrit.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtChanceToSpellCritBaseStore, dbcPath,"gtChanceToSpellCritBase.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtChanceToSpellCritStore, dbcPath,"gtChanceToSpellCrit.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtOCTClassCombatRatingScalarStore,dbcPath,"gtOCTClassCombatRatingScalar.dbc");    //LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtOCTRegenHPStore,        dbcPath,"gtOCTRegenHP.dbc");    //LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtOCTRegenMPStore,        dbcPath,"gtOCTRegenMP.dbc");       -- not used currently    //LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtRegenHPPerSptStore,     dbcPath,"gtRegenHPPerSpt.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtRegenMPPerSptStore,     dbcPath,"gtRegenMPPerSpt.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sHolidaysStore,            dbcPath,"Holidays.dbc");    //LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemStore,                dbcPath,"Item.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemBagFamilyStore,       dbcPath,"ItemBagFamily.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemClassStore,           dbcPath,"ItemClass.dbc");    //LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemDisplayInfoStore,     dbcPath,"ItemDisplayInfo.dbc");     -- not used currently    //LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemCondExtCostsStore,    dbcPath,"ItemCondExtCosts.dbc");    //LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemExtendedCostStore,    dbcPath,"ItemExtendedCost.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemLimitCategoryStore,   dbcPath,"ItemLimitCategory.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemRandomPropertiesStore,dbcPath,"ItemRandomProperties.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemRandomSuffixStore,    dbcPath,"ItemRandomSuffix.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemSetStore,             dbcPath,"ItemSet.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sLockStore,                dbcPath,"Lock.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sMailTemplateStore,        dbcPath,"MailTemplate.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sMapStore,                 dbcPath,"Map.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sMapDifficultyStore,       dbcPath,"MapDifficulty.dbc");    // fill data    for(uint32 i = 1; i < sMapDifficultyStore.GetNumRows(); ++i)        if(MapDifficultyEntry const* entry = sMapDifficultyStore.LookupEntry(i))            sMapDifficultyMap[MAKE_PAIR32(entry->MapId,entry->Difficulty)] = MapDifficulty(entry->resetTime,entry->maxPlayers);    sMapDifficultyStore.Clear();    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sMovieStore,               dbcPath,"Movie.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sOverrideSpellDataStore,   dbcPath,"OverrideSpellData.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sQuestFactionRewardStore,  dbcPath,"QuestFactionReward.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sQuestSortStore,           dbcPath,"QuestSort.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sQuestXPLevelStore,        dbcPath,"QuestXP.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sPvPDifficultyStore,       dbcPath,"PvpDifficulty.dbc");    for(uint32 i = 0; i < sPvPDifficultyStore.GetNumRows(); ++i)        if (PvPDifficultyEntry const* entry = sPvPDifficultyStore.LookupEntry(i))            if (entry->bracketId > MAX_BATTLEGROUND_BRACKETS)                STRAWBERRY_ASSERT(false && "Need update MAX_BATTLEGROUND_BRACKETS by DBC data");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sRandomPropertiesPointsStore, dbcPath,"RandPropPoints.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sScalingStatDistributionStore, dbcPath,"ScalingStatDistribution.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sScalingStatValuesStore,   dbcPath,"ScalingStatValues.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sSkillLineStore,           dbcPath,"SkillLine.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sSkillLineAbilityStore,    dbcPath,"SkillLineAbility.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sSkillRaceClassInfoStore,  dbcPath,"SkillRaceClassInfo.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sSoundEntriesStore,        dbcPath,"SoundEntries.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sSpellStore,               dbcPath,"Spell.dbc");    for(uint32 i = 1; i < sSpellStore.GetNumRows(); ++i)    {        if(SpellEntry const * spell = sSpellStore.LookupEntry(i))        {            if(SpellCategoriesEntry const* category = spell->GetSpellCategories())                if(uint32 cat = category->Category)                    sSpellCategoryStore[cat].insert(i);            // DBC not support uint64 fields but SpellEntry have SpellFamilyFlags mapped at 2 uint32 fields            // uint32 field already converted to bigendian if need, but must be swapped for correct uint64 bigendian view            #if STRAWBERRY_ENDIAN == STRAWBERRY_BIGENDIAN
开发者ID:Kanyesz89,项目名称:StrawberryCore-501Beta,代码行数:67,


示例21: LoadDBCStores

void LoadDBCStores(const std::string& dataPath){    std::string dbcPath = dataPath+"dbc/";    const uint32 DBCFilesCount = 80;    barGoLink bar( DBCFilesCount );    StoreProblemList bad_dbc_files;    uint32 availableDbcLocales = 0xFFFFFFFF;    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sAreaStore,                dbcPath,"AreaTable.dbc");    // must be after sAreaStore loading    for(uint32 i = 0; i < sAreaStore.GetNumRows(); ++i)           // areaflag numbered from 0    {        if(AreaTableEntry const* area = sAreaStore.LookupEntry(i))        {            // fill AreaId->DBC records            sAreaFlagByAreaID.insert(AreaFlagByAreaID::value_type(uint16(area->ID),area->exploreFlag));            // fill MapId->DBC records ( skip sub zones and continents )            if(area->zone==0 && area->mapid != 0 && area->mapid != 1 && area->mapid != 530 && area->mapid != 571 )                sAreaFlagByMapID.insert(AreaFlagByMapID::value_type(area->mapid,area->exploreFlag));        }    }    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sAchievementStore,         dbcPath,"Achievement.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sAchievementCriteriaStore, dbcPath,"Achievement_Criteria.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sAreaTriggerStore,         dbcPath,"AreaTrigger.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sAreaGroupStore,           dbcPath,"AreaGroup.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sAuctionHouseStore,        dbcPath,"AuctionHouse.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sBankBagSlotPricesStore,   dbcPath,"BankBagSlotPrices.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sBattlemasterListStore,    dbcPath,"BattlemasterList.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sBarberShopStyleStore,     dbcPath,"BarberShopStyle.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sCharStartOutfitStore,     dbcPath,"CharStartOutfit.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sCharTitlesStore,          dbcPath,"CharTitles.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sChatChannelsStore,        dbcPath,"ChatChannels.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sChrClassesStore,          dbcPath,"ChrClasses.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sChrRacesStore,            dbcPath,"ChrRaces.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sCinematicSequencesStore,  dbcPath,"CinematicSequences.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sCreatureDisplayInfoStore, dbcPath,"CreatureDisplayInfo.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sCreatureFamilyStore,      dbcPath,"CreatureFamily.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sCreatureSpellDataStore,   dbcPath,"CreatureSpellData.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sCreatureTypeStore,        dbcPath,"CreatureType.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sCurrencyTypesStore,       dbcPath,"CurrencyTypes.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sDurabilityCostsStore,     dbcPath,"DurabilityCosts.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sDurabilityQualityStore,   dbcPath,"DurabilityQuality.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sEmotesStore,              dbcPath,"Emotes.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sEmotesTextStore,          dbcPath,"EmotesText.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sFactionStore,             dbcPath,"Faction.dbc");    for (uint32 i=0;i<sFactionStore.GetNumRows(); ++i)    {        FactionEntry const * faction = sFactionStore.LookupEntry(i);        if (faction && faction->team)        {            SimpleFactionsList &flist = sFactionTeamMap[faction->team];            flist.push_back(i);        }    }    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sFactionTemplateStore,     dbcPath,"FactionTemplate.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGameObjectDisplayInfoStore,dbcPath,"GameObjectDisplayInfo.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGemPropertiesStore,       dbcPath,"GemProperties.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGlyphPropertiesStore,     dbcPath,"GlyphProperties.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGlyphSlotStore,           dbcPath,"GlyphSlot.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtBarberShopCostBaseStore,dbcPath,"gtBarberShopCostBase.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtCombatRatingsStore,     dbcPath,"gtCombatRatings.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtChanceToMeleeCritBaseStore, dbcPath,"gtChanceToMeleeCritBase.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtChanceToMeleeCritStore, dbcPath,"gtChanceToMeleeCrit.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtChanceToSpellCritBaseStore, dbcPath,"gtChanceToSpellCritBase.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtChanceToSpellCritStore, dbcPath,"gtChanceToSpellCrit.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtOCTRegenHPStore,        dbcPath,"gtOCTRegenHP.dbc");    //LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtOCTRegenMPStore,        dbcPath,"gtOCTRegenMP.dbc");       -- not used currently    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtRegenHPPerSptStore,     dbcPath,"gtRegenHPPerSpt.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtRegenMPPerSptStore,     dbcPath,"gtRegenMPPerSpt.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sHolidaysStore,            dbcPath,"Holidays.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemStore,                dbcPath,"Item.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemBagFamilyStore,       dbcPath,"ItemBagFamily.dbc");    //LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemDisplayInfoStore,     dbcPath,"ItemDisplayInfo.dbc");     -- not used currently    //LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemCondExtCostsStore,    dbcPath,"ItemCondExtCosts.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemExtendedCostStore,    dbcPath,"ItemExtendedCost.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemLimitCategoryStore,   dbcPath,"ItemLimitCategory.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemRandomPropertiesStore,dbcPath,"ItemRandomProperties.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemRandomSuffixStore,    dbcPath,"ItemRandomSuffix.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemSetStore,             dbcPath,"ItemSet.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sLockStore,                dbcPath,"Lock.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sMailTemplateStore,        dbcPath,"MailTemplate.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sMapStore,                 dbcPath,"Map.dbc");    LoadDBC(availableDbcLocales,bar,bad_dbc_files,sMapDifficultyStore,       dbcPath,"MapDifficulty.dbc");    // fill data    for(uint32 i = 1; i < sMapDifficultyStore.GetNumRows(); ++i)        if(MapDifficultyEntry const* entry = sMapDifficultyStore.LookupEntry(i))            sMapDifficultyMap[MAKE_PAIR32(entry->MapId,entry->Difficulty)] = MapDifficulty(entry->resetTime,entry->maxPlayers);    sMapDifficultyStore.Clear();//.........这里部分代码省略.........
开发者ID:ZajicekDuracel,项目名称:mangos,代码行数:101,


示例22: time

void InstanceSaveManager::LoadResetTimes(){    time_t now = time(NULL);    time_t today = (now / DAY) * DAY;    // NOTE: Use DirectPExecute for tables that will be queried later    // get the current reset times for normal instances (these may need to be updated)    // these are only kept in memory for InstanceSaves that are loaded later    // resettime = 0 in the DB for raid instances so those are skipped    typedef std::pair<uint32, time_t> ResetTimeMapDiffType;    typedef std::map<uint32, ResetTimeMapDiffType> InstResetTimeMapDiffType;    InstResetTimeMapDiffType instResetTime;    // index instance ids by map pairs for fast reset warning send    typedef std::multimap<uint32, uint32 /*instanceid*/ > ResetTimeMapDiffInstances;    ResetTimeMapDiffInstances mapDiffResetInstances;    QueryResult result = CharacterDatabase.Query("SELECT id, map, resettime FROM instance ORDER BY id ASC");    if (result)    {        do        {            Field* fields = result->Fetch();            uint32 instanceId = fields[0].GetUInt32();            // Instances are pulled in ascending order from db and nextInstanceId is initialized with 1,            // so if the instance id is used, increment until we find the first unused one for a potential new instance            if (sMapMgr->GetNextInstanceId() == instanceId)                sMapMgr->SetNextInstanceId(instanceId + 1);            // Mark instance id as being used            sMapMgr->RegisterInstanceId(instanceId);            if (time_t resettime = time_t(fields[3].GetUInt32()))            {                uint32 mapid = fields[1].GetUInt16();                instResetTime[instanceId] = ResetTimeMapDiffType(MAKE_PAIR32(mapid), resettime);                mapDiffResetInstances.insert(ResetTimeMapDiffInstances::value_type(MAKE_PAIR32(mapid), instanceId));            }        }        while (result->NextRow());        // update reset time for normal instances with the max creature respawn time + X hours        if (PreparedQueryResult result2 = CharacterDatabase.Query(CharacterDatabase.GetPreparedStatement(CHAR_SEL_MAX_CREATURE_RESPAWNS)))        {            do            {                Field* fields = result2->Fetch();                uint32 instance = fields[1].GetUInt32();                time_t resettime = time_t(fields[0].GetUInt32() + 2 * HOUR);                InstResetTimeMapDiffType::iterator itr = instResetTime.find(instance);                if (itr != instResetTime.end() && itr->second.second != resettime)                {                    CharacterDatabase.DirectPExecute("UPDATE instance SET resettime = '"UI64FMTD"' WHERE id = '%u'", uint64(resettime), instance);                    itr->second.second = resettime;                }            }            while (result->NextRow());        }        // schedule the reset times        for (InstResetTimeMapDiffType::iterator itr = instResetTime.begin(); itr != instResetTime.end(); ++itr)            if (itr->second.second > now)                ScheduleReset(true, itr->second.second, InstResetEvent(0, PAIR32_LOPART(itr->second.first), itr->first));    }    // load the global respawn times for raid instances    uint32 diff = sWorld->getIntConfig(CONFIG_INSTANCE_RESET_TIME_HOUR) * HOUR;    result = CharacterDatabase.Query("SELECT mapid, resettime FROM instance_reset");    if (result)    {        do        {            Field* fields = result->Fetch();            uint32 mapid = fields[0].GetUInt16();            uint64 oldresettime = fields[2].GetUInt32();            // update the reset time if the hour in the configs changes            uint64 newresettime = (oldresettime / DAY) * DAY + diff;            if (oldresettime != newresettime)                CharacterDatabase.DirectPExecute("UPDATE instance_reset SET resettime = '%u' WHERE mapid = '%u'", uint32(newresettime), mapid);            SetResetTimeFor(mapid, newresettime);        } while (result->NextRow());    }    ResetTimeMapDiffInstances::const_iterator in_itr;}
开发者ID:Maduse,项目名称:Trinity-Zero,代码行数:90,


示例23: DespawnEvent

void BattleGroundDS::DespawnEvent(uint8 event1, uint8 event2){    BGObjects::const_iterator itr2 = m_EventObjects[MAKE_PAIR32(event1, event2)].gameobjects.begin();    for(; itr2 != m_EventObjects[MAKE_PAIR32(event1, event2)].gameobjects.end(); ++itr2)        DespawnBGObject(*itr2);}
开发者ID:3raZar3,项目名称:Dark-Ice,代码行数:6,


示例24: time

void DungeonResetScheduler::LoadResetTimes(){    time_t const now = time(NULL);    time_t const today = (now / DAY) * DAY;    time_t const nextWeek = today + (7 * DAY);    // NOTE: Use DirectPExecute for tables that will be queried later    // get the current reset times for normal instances (these may need to be updated)    // these are only kept in memory for InstanceSaves that are loaded later    // resettime = 0 in the DB for raid/heroic instances so those are skipped    typedef std::pair<uint32 /*PAIR32(map,difficulty)*/, time_t> ResetTimeMapDiffType;    typedef std::map<uint32, ResetTimeMapDiffType> InstResetTimeMapDiffType;    InstResetTimeMapDiffType instResetTime;    QueryResult *result = CharacterDatabase.Query("SELECT id, map, difficulty, resettime FROM instance WHERE resettime > 0");    if( result )    {        do        {            if (time_t resettime = time_t((*result)[3].GetUInt64()))            {                uint32 id = (*result)[0].GetUInt32();                uint32 mapid = (*result)[1].GetUInt32();                uint32 difficulty = (*result)[2].GetUInt32();                MapEntry const* mapEntry = sMapStore.LookupEntry(mapid);                MapDifficultyEntry const* mapDiff = GetMapDifficultyData(mapid,Difficulty(difficulty));                if (!mapEntry || !mapEntry->IsDungeon() || !mapDiff)                {                    sMapPersistentStateMgr.DeleteInstanceFromDB(id);                    continue;                }                //if in DBC no resettime - sedule resettime from DB                if (!mapDiff->resetTime)                    instResetTime[id] = ResetTimeMapDiffType(MAKE_PAIR32(mapid,difficulty), resettime);            }        }        while (result->NextRow());        delete result;        // update reset time for normal instances with the max creature respawn time + X hours        result = CharacterDatabase.Query("SELECT MAX(respawntime), instance FROM creature_respawn WHERE instance > 0 GROUP BY instance");        if( result )        {            do            {                Field* fields = result->Fetch();                time_t resettime    = time_t(fields[0].GetUInt64() + 2 * HOUR);                uint32 instance     = fields[1].GetUInt32();                InstResetTimeMapDiffType::iterator itr = instResetTime.find(instance);                if(itr != instResetTime.end() && itr->second.second != resettime)                {                    CharacterDatabase.DirectPExecute("UPDATE instance SET resettime = '" UI64FMTD "' WHERE id = '%u'", uint64(resettime), instance);                    itr->second.second = resettime;                }            }            while (result->NextRow());            delete result;        }        // schedule the reset times        for(InstResetTimeMapDiffType::iterator itr = instResetTime.begin(); itr != instResetTime.end(); ++itr)            if(itr->second.second > now)                ScheduleReset(true, itr->second.second, DungeonResetEvent(RESET_EVENT_NORMAL_DUNGEON, PAIR32_LOPART(itr->second.first),Difficulty(PAIR32_HIPART(itr->second.first)),itr->first));    }    // load the global respawn times for raid/heroic instances    uint32 diff = sWorld.getConfig(CONFIG_UINT32_INSTANCE_RESET_TIME_HOUR) * HOUR;    result = CharacterDatabase.Query("SELECT mapid, difficulty, resettime FROM instance_reset");    if(result)    {        do        {            Field* fields = result->Fetch();            time_t oldresettime;            uint32 mapid = fields[0].GetUInt32();            Difficulty difficulty = Difficulty(fields[1].GetUInt32());            uint64 _oldresettime = fields[2].GetUInt64();            if (_oldresettime > uint64(time(NULL) + INSTANCE_MAX_RESET_OFFSET))            {                MapDifficultyEntry const* mapDiff = GetMapDifficultyData(mapid,Difficulty(difficulty));                oldresettime = DungeonResetScheduler::CalculateNextResetTime(mapDiff);                sLog.outErrorDb("Wrong reset time in group_instance corrected to: %ld", oldresettime);            }            else                oldresettime = time_t(_oldresettime);            MapEntry const* mapEntry = sMapStore.LookupEntry(mapid);            if (!mapEntry || !mapEntry->IsDungeon() || !GetMapDifficultyData(mapid,difficulty))            {                sLog.outError("MapPersistentStateManager::LoadResetTimes: invalid mapid(%u)/difficulty(%u) pair in instance_reset!", mapid, difficulty);                CharacterDatabase.DirectPExecute("DELETE FROM instance_reset WHERE mapid = '%u' AND difficulty = '%u'", mapid,difficulty);                continue;//.........这里部分代码省略.........
开发者ID:klyxmaster,项目名称:mangos,代码行数:101,



注:本文中的MAKE_PAIR32函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ MAKE_PTR函数代码示例
C++ MAKE_PAIR函数代码示例
51自学网自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1