这篇教程C++ GetBagSlot函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中GetBagSlot函数的典型用法代码示例。如果您正苦于以下问题:C++ GetBagSlot函数的具体用法?C++ GetBagSlot怎么用?C++ GetBagSlot使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了GetBagSlot函数的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: GetSlotvoid Item::UpdateDuration(Player* owner, uint32 diff){ if (!GetUInt32Value(ITEM_FIELD_DURATION)) return; //DEBUG_LOG("Item::UpdateDuration Item (Entry: %u Duration %u Diff %u)",GetEntry(),GetUInt32Value(ITEM_FIELD_DURATION),diff); if (GetUInt32Value(ITEM_FIELD_DURATION)<=diff) { uint32 itemId = this->GetEntry(); owner->DestroyItem(GetBagSlot(), GetSlot(), true); if (itemId == 39878) //Mysterious Egg { if (Item* Item = owner->StoreNewItemInInventorySlot(39883, 1)) owner->SendNewItem(Item, 1, true, false); } if (itemId == 44717) //Disgusting Jar { if (Item* Item = owner->StoreNewItemInInventorySlot(44718, 1)) owner->SendNewItem(Item, 1, true, false); } return; } SetUInt32Value(ITEM_FIELD_DURATION, GetUInt32Value(ITEM_FIELD_DURATION) - diff); SetState(ITEM_CHANGED, owner); // save new time in database}
开发者ID:klaas-netherstorm,项目名称:Mangos,代码行数:30,
示例2: GetSlotvoid Item::UpdateDuration(Player* owner, uint32 diff){ if (!GetUInt32Value(ITEM_FIELD_DURATION)) return; //DEBUG_LOG("Item::UpdateDuration Item (Entry: %u Duration %u Diff %u)",GetEntry(),GetUInt32Value(ITEM_FIELD_DURATION),diff); if (GetUInt32Value(ITEM_FIELD_DURATION)<=diff) { owner->DestroyItem(GetBagSlot(), GetSlot(), true); //Some items with duration create new item after expire if((GetProto()->ExtraFlags & ITEM_EXTRA_CREATE_ITEM_ON_EXPIRE) && !loot.empty()) { for(LootItemList::iterator itr = loot.items.begin(); itr != loot.items.end(); ++itr) { if (Item* Item = owner->StoreNewItemInInventorySlot((*itr).itemid, (*itr).count)) owner->SendNewItem(Item,(*itr).count, true, false); } } return; } SetUInt32Value(ITEM_FIELD_DURATION, GetUInt32Value(ITEM_FIELD_DURATION) - diff); SetState(ITEM_CHANGED, owner); // save new time in database //Remove refundable flag for next time if item is no logner refundable if(HasFlag(ITEM_FIELD_FLAGS, ITEM_FLAGS_REFUNDABLE)) if(!GetUInt32Value(ITEM_FIELD_CREATE_PLAYED_TIME) || (GetOwner() && GetOwner()->m_Played_time[0] > (GetUInt32Value(ITEM_FIELD_CREATE_PLAYED_TIME) + 2*60*60))) RemoveFlag(ITEM_FIELD_FLAGS, ITEM_FLAGS_REFUNDABLE);}
开发者ID:3raZar3,项目名称:Dark-Ice,代码行数:31,
示例3: GetSlotvoid Item::UpdateDuration(Player* owner, uint32 diff){ if (!GetUInt32Value(ITEM_FIELD_DURATION)) return; //DEBUG_LOG("Item::UpdateDuration Item (Entry: %u Duration %u Diff %u)",GetEntry(),GetUInt32Value(ITEM_FIELD_DURATION),diff); if (GetUInt32Value(ITEM_FIELD_DURATION)<=diff) { owner->DestroyItem(GetBagSlot(), GetSlot(), true); owner->HandleDestroyItemReplace(GetEntry(), GetBagSlot(), GetSlot(), GetPos()); return; } SetUInt32Value(ITEM_FIELD_DURATION, GetUInt32Value(ITEM_FIELD_DURATION) - diff); SetState(ITEM_CHANGED, owner); // save new time in database}
开发者ID:SeTM,项目名称:mangos,代码行数:17,
示例4: GetOwnerGUIDstd::string Item::GetDebugInfo() const{ std::stringstream sstr; sstr << Object::GetDebugInfo() << "/n" << std::boolalpha << "Owner: " << GetOwnerGUID().ToString() << " Count: " << GetCount() << " BagSlot: " << std::to_string(GetBagSlot()) << " Slot: " << std::to_string(GetSlot()) << " Equipped: " << IsEquipped(); return sstr.str();}
开发者ID:ElunaLuaEngine,项目名称:ElunaTrinityWotlk,代码行数:9,
示例5: GetEntryBag::~Bag() { for (uint8 i = 0; i < MAX_BAG_SIZE; ++i) if (Item *item = m_bagslot[i]) { if (item->IsInWorld()) { sLog->outCrash( "Item %u (slot %u, bag slot %u) in bag %u (slot %u, bag slot %u, m_bagslot %u) is to be deleted but is still in world.", item->GetEntry(), (uint32) item->GetSlot(), (uint32) item->GetBagSlot(), GetEntry(), (uint32) GetSlot(), (uint32) GetBagSlot(), (uint32) i); item->RemoveFromWorld(); } delete m_bagslot[i]; }}
开发者ID:Bootz,项目名称:DeepshjirRepack,代码行数:14,
示例6: TC_LOG_FATALBag::~Bag(){ for (uint8 i = 0; i < MAX_BAG_SIZE; ++i) if (Item* item = m_bagslot[i]) { if (item->IsInWorld()) { TC_LOG_FATAL("entities.player.items", "Item %u (slot %u, bag slot %u) in bag %u (slot %u, bag slot %u, m_bagslot %u) is to be deleted but is still in world.", item->GetEntry(), (uint32)item->GetSlot(), (uint32)item->GetBagSlot(), GetEntry(), (uint32)GetSlot(), (uint32)GetBagSlot(), (uint32)i); item->RemoveFromWorld(); } delete m_bagslot[i]; }}
开发者ID:Caydan,项目名称:WoWSCore548,代码行数:15,
示例7: Itemvoid Item::UpdateDuration(Player* owner, uint32 diff){ if (!GetUInt32Value(ITEM_FIELD_DURATION)) return; sLog.outDebug("Item::UpdateDuration Item (Entry: %u Duration %u Diff %u)",GetEntry(),GetUInt32Value(ITEM_FIELD_DURATION),diff); if (GetUInt32Value(ITEM_FIELD_DURATION)<=diff) { owner->DestroyItem(GetBagSlot(), GetSlot(), true); return; } SetUInt32Value(ITEM_FIELD_DURATION, GetUInt32Value(ITEM_FIELD_DURATION) - diff); SetState(ITEM_CHANGED); // save new time in database}
开发者ID:Bootz,项目名称:TC-One,代码行数:16,
示例8: TC_LOG_DEBUGvoid Item::UpdateDuration(Player* owner, uint32 diff){ if (!GetUInt32Value(ITEM_FIELD_DURATION)) return; TC_LOG_DEBUG("entities.player.items", "Item::UpdateDuration Item (Entry: %u Duration %u Diff %u)", GetEntry(), GetUInt32Value(ITEM_FIELD_DURATION), diff); if (GetUInt32Value(ITEM_FIELD_DURATION) <= diff) { sScriptMgr->OnItemExpire(owner, GetTemplate()); owner->DestroyItem(GetBagSlot(), GetSlot(), true); return; } SetUInt32Value(ITEM_FIELD_DURATION, GetUInt32Value(ITEM_FIELD_DURATION) - diff); SetState(ITEM_CHANGED, owner); // save new time in database}
开发者ID:ElunaLuaEngine,项目名称:ElunaTrinityWotlk,代码行数:17,
示例9: GetSlotvoid Item::UpdateDuration(Player* owner, uint32 diff){ if (!GetUInt32Value(ITEM_FIELD_DURATION)) return; // DEBUG_LOG("Item::UpdateDuration Item (Entry: %u Duration %u Diff %u)", GetEntry(), GetUInt32Value(ITEM_FIELD_DURATION), diff); if (GetUInt32Value(ITEM_FIELD_DURATION) <= diff) { if (uint32 newItemId = sObjectMgr.GetItemExpireConvert(GetEntry())) owner->ConvertItem(this, newItemId); else owner->DestroyItem(GetBagSlot(), GetSlot(), true); return; } SetUInt32Value(ITEM_FIELD_DURATION, GetUInt32Value(ITEM_FIELD_DURATION) - diff); SetState(ITEM_CHANGED, owner); // save new time in database}
开发者ID:Splash,项目名称:mangos,代码行数:19,
示例10: Itemvoid Item::UpdateDuration(Player* owner, uint32 diff){ if (!GetUInt32Value(ITEM_FIELD_DURATION)) return; sLog.outDebug("Item::UpdateDuration Item (Entry: %u Duration %u Diff %u)",GetEntry(),GetUInt32Value(ITEM_FIELD_DURATION),diff); if (GetUInt32Value(ITEM_FIELD_DURATION)<=diff) { uint32 itemId = this->GetEntry(); Script->ItemExpire(owner, GetProto()); owner->DestroyItem(GetBagSlot(), GetSlot(), true); ItemPosCountVec dest; if (itemId == 39878) //Mysterious Egg { uint8 msg = owner->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, 39883, 1); if (msg == EQUIP_ERR_OK) { Item* item = owner->StoreNewItem(dest,39883,true); if (item) owner->SendNewItem(item,1,false,true); } } if (itemId == 44717) //Disgusting Jar { uint8 msg = owner->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, 44718, 1); if (msg == EQUIP_ERR_OK) { Item* item = owner->StoreNewItem(dest,44718,true); if (item) owner->SendNewItem(item,1,false,true); } } return; } SetUInt32Value(ITEM_FIELD_DURATION, GetUInt32Value(ITEM_FIELD_DURATION) - diff); SetState(ITEM_CHANGED, owner); // save new time in database}
开发者ID:Sanzzes,项目名称:wopc-core,代码行数:41,
示例11: GetSlotvoid Item::UpdateDuration(Player* owner, uint32 diff){ if (!GetUInt32Value(ITEM_FIELD_DURATION)) return; //DEBUG_LOG("Item::UpdateDuration Item (Entry: %u Duration %u Diff %u)",GetEntry(),GetUInt32Value(ITEM_FIELD_DURATION),diff); if (GetUInt32Value(ITEM_FIELD_DURATION)<=diff) { owner->DestroyItem(GetBagSlot(), GetSlot(), true); return; } SetUInt32Value(ITEM_FIELD_DURATION, GetUInt32Value(ITEM_FIELD_DURATION) - diff); SetState(ITEM_CHANGED, owner); // save new time in database //Remove refundable flag for next time if item is no logner refundable if(HasFlag(ITEM_FIELD_FLAGS, ITEM_FLAGS_REFUNDABLE)) if(!GetUInt32Value(ITEM_FIELD_CREATE_PLAYED_TIME) || (GetOwner() && GetOwner()->m_Played_time[0] > (GetUInt32Value(ITEM_FIELD_CREATE_PLAYED_TIME) + 2*60*60))) RemoveFlag(ITEM_FIELD_FLAGS, ITEM_FLAGS_REFUNDABLE);}
开发者ID:Nny,项目名称:Core,代码行数:21,
示例12: GetGUIDbool Item::ItemContainerLoadLootFromDB(){ // Loads the money and item loot associated with an openable item from the DB // Default. If there are no records for this item then it will be rolled for in Player::SendLoot() m_lootGenerated = false; ObjectGuid::LowType container_id = GetGUID().GetCounter(); // Save this for later use loot.containerID = container_id; // First, see if there was any money loot. This gets added directly to the container. PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_ITEMCONTAINER_MONEY); stmt->setUInt32(0, container_id); PreparedQueryResult money_result = CharacterDatabase.Query(stmt); if (money_result) { Field* fields = money_result->Fetch(); loot.gold = fields[0].GetUInt32(); } // Next, load any items that were saved stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_ITEMCONTAINER_ITEMS); stmt->setUInt32(0, container_id); PreparedQueryResult item_result = CharacterDatabase.Query(stmt); if (item_result) { // Get a LootTemplate for the container item. This is where // the saved loot was originally rolled from, we will copy conditions from it LootTemplate const* lt = LootTemplates_Item.GetLootFor(GetEntry()); if (lt) { do { // Create an empty LootItem LootItem loot_item = LootItem(); // Fill in the rest of the LootItem from the DB Field* fields = item_result->Fetch(); // item_id, itm_count, follow_rules, ffa, blocked, counted, under_threshold, needs_quest, rnd_prop, rnd_suffix loot_item.itemid = fields[0].GetUInt32(); loot_item.count = fields[1].GetUInt32(); loot_item.follow_loot_rules = fields[2].GetBool(); loot_item.freeforall = fields[3].GetBool(); loot_item.is_blocked = fields[4].GetBool(); loot_item.is_counted = fields[5].GetBool(); loot_item.canSave = true; loot_item.is_underthreshold = fields[6].GetBool(); loot_item.needs_quest = fields[7].GetBool(); loot_item.randomPropertyId = fields[8].GetInt32(); loot_item.randomSuffix = fields[9].GetUInt32(); // Copy the extra loot conditions from the item in the loot template lt->CopyConditions(&loot_item); // If container item is in a bag, add that player as an allowed looter if (GetBagSlot()) loot_item.allowedGUIDs.insert(GetOwner()->GetGUID().GetCounter()); // Finally add the LootItem to the container loot.items.push_back(loot_item); // Increment unlooted count loot.unlootedCount++; } while (item_result->NextRow()); } } // Mark the item if it has loot so it won't be generated again on open m_lootGenerated = !loot.isLooted(); return m_lootGenerated;}
开发者ID:winetaster,项目名称:InfinityCore,代码行数:78,
注:本文中的GetBagSlot函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ GetBase函数代码示例 C++ GetBagSize函数代码示例 |