bool OnGossipHello(Player* player, Creature* creature) { uint8 count = 0; player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, "Информация о перековке", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+14); if (isEquiped(player, EQUIPMENT_SLOT_HEAD, count)) player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_INTERACT_1, "Голова", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2, "Стоимость перековки:", 10000000, true); if (isEquiped(player, EQUIPMENT_SLOT_SHOULDERS, count)) player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_INTERACT_1, "Плечо", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3, "Стоимость перековки:", 10000000, true); if (isEquiped(player, EQUIPMENT_SLOT_BACK, count)) player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_INTERACT_1, "Спина", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4, "Стоимость перековки:", 10000000, true); if (isEquiped(player, EQUIPMENT_SLOT_CHEST, count)) player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_INTERACT_1, "Грудь", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5, "Стоимость перековки:", 10000000, true); if (isEquiped(player, EQUIPMENT_SLOT_WRISTS, count)) player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_INTERACT_1, "Запястья", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+6, "Стоимость перековки:", 5000000, true); if (isEquiped(player, EQUIPMENT_SLOT_HANDS, count)) player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_INTERACT_1, "Кисти рук", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+7, "Стоимость перековки:", 10000000, true); if (isEquiped(player, EQUIPMENT_SLOT_WAIST, count)) player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_INTERACT_1, "Пояс", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+8, "Стоимость перековки:", 5000000, true); if (isEquiped(player, EQUIPMENT_SLOT_LEGS, count)) player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_INTERACT_1, "Ноги", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+9, "Стоимость перековки:", 10000000, true); if (isEquiped(player, EQUIPMENT_SLOT_FEET, count)) player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_INTERACT_1, "Ступни", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+10, "Стоимость перековки:", 10000000, true); if (isEquiped(player, EQUIPMENT_SLOT_MAINHAND, count)) player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_INTERACT_1, "Правая рука", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+11, "Стоимость перековки:", 20000000, true); if (isEquiped(player, EQUIPMENT_SLOT_OFFHAND, count)) player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_INTERACT_1, "Левая рука", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+12, "Стоимость перековки:", 20000000, true); if (isEquiped(player, EQUIPMENT_SLOT_RANGED, count)) player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_INTERACT_1, "Левая рука", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+13, "Стоимость перековки:", 20000000, true); if (count > 0) player->SEND_GOSSIP_MENU(55000, creature->GetGUID()); else ChatHandler(player).PSendSysMessage("|cfff4b25eМастер перековки шепчет:|r |cfffcedbbИз всех одетых на вас предметов я ни один не смогу перековать. Приходите позже, когда раздобудете других вещей.|r"); return true; }
bool Equipment::canEquip(const Item* item) const { if (!item->canEquip() || isEquiped(item)) return false; EquipmentSlot slot = item->getEquipmentSlot(); return !items.count(slot) || items.at(slot).size() < getMaxItems(slot); }
PItem Equipment::removeItem(Item* item) { if (isEquiped(item)) unequip(item); return Inventory::removeItem(item); }
bool OnGossipHello(Player* player, Creature* creature) { uint8 count = 0; if (isEquiped(player, EQUIPMENT_SLOT_HEAD, count)) player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, "Голова", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2); if (isEquiped(player, EQUIPMENT_SLOT_SHOULDERS, count)) player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, "Плечо", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3); if (isEquiped(player, EQUIPMENT_SLOT_BACK, count)) player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, "Спина", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4); if (isEquiped(player, EQUIPMENT_SLOT_CHEST, count)) player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, "Грудь", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5); if (isEquiped(player, EQUIPMENT_SLOT_WRISTS, count)) player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, "Запястья", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+6); if (isEquiped(player, EQUIPMENT_SLOT_HANDS, count)) player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, "Кисти рук", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+7); if (isEquiped(player, EQUIPMENT_SLOT_LEGS, count)) player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, "Ноги", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+8); if (isEquiped(player, EQUIPMENT_SLOT_FEET, count)) player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, "Ступни", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+9); if (isEquiped(player, EQUIPMENT_SLOT_FINGER1, count)) player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, "Палец", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+10); if (isEquiped(player, EQUIPMENT_SLOT_FINGER2, count)) player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, "Палец", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+11); if (isEquiped(player, EQUIPMENT_SLOT_MAINHAND, count)) player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, "Правая рука", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+12); if (isEquiped(player, EQUIPMENT_SLOT_OFFHAND, count)) player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, "Левая рука", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+13); if (count > 0) player->SEND_GOSSIP_MENU(55001, creature->GetGUID()); else ChatHandler(player).PSendSysMessage("|cfff4b25eМастер наложения чар шепчет:|r |cfffcedbbНа вас не экипировано ни одного предмета который я смогла бы зачаровать.|r"); return true; }