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;
    }
Exemple #2
0
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);
}
Exemple #3
0
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;
    }