| | 618 | // Mingo's Fortune Giblets |
| | 619 | case 40802: |
| | 620 | { |
| | 621 | if (m_caster->GetTypeId() != TYPEID_PLAYER) return; |
| | 622 | |
| | 623 | Player *player = (Player*)m_caster; |
| | 624 | uint32 newitemid; |
| | 625 | |
| | 626 | switch(urand(1,20)) |
| | 627 | { |
| | 628 | case 1: newitemid = 32688; break; |
| | 629 | case 2: newitemid = 32689; break; |
| | 630 | case 3: newitemid = 32690; break; |
| | 631 | case 4: newitemid = 32691; break; |
| | 632 | case 5: newitemid = 32692; break; |
| | 633 | case 6: newitemid = 32693; break; |
| | 634 | case 7: newitemid = 32700; break; |
| | 635 | case 8: newitemid = 32701; break; |
| | 636 | case 9: newitemid = 32702; break; |
| | 637 | case 10: newitemid = 32703; break; |
| | 638 | case 11: newitemid = 32704; break; |
| | 639 | case 12: newitemid = 32705; break; |
| | 640 | case 13: newitemid = 32706; break; |
| | 641 | case 14: newitemid = 32707; break; |
| | 642 | case 15: newitemid = 32708; break; |
| | 643 | case 16: newitemid = 32709; break; |
| | 644 | case 17: newitemid = 32710; break; |
| | 645 | case 18: newitemid = 32711; break; |
| | 646 | case 19: newitemid = 32712; break; |
| | 647 | case 20: newitemid = 32713; break; |
| | 648 | } |
| | 649 | ItemPosCountVec dest; |
| | 650 | uint8 msg = player->CanStoreNewItem( NULL_BAG, NULL_SLOT, dest, newitemid, 1, false); |
| | 651 | if (msg != EQUIP_ERR_OK) |
| | 652 | { |
| | 653 | player->SendEquipError(msg, NULL, NULL); |
| | 654 | return; |
| | 655 | } |
| | 656 | Item *pItem = player->StoreNewItem(dest, newitemid, true, Item::GenerateItemRandomPropertyId(newitemid)); |
| | 657 | |
| | 658 | if (!pItem) |
| | 659 | { |
| | 660 | player->SendEquipError(EQUIP_ERR_ITEM_NOT_FOUND, NULL, NULL); |
| | 661 | return; |
| | 662 | } |
| | 663 | player->SendNewItem(pItem, 1, true, true); |
| | 664 | |
| | 665 | return; |
| | 666 | } |
| | 667 | // Encapsulate Voidwalker |
| | 668 | case 29364: |
| | 669 | { |
| | 670 | if (!unitTarget || unitTarget->GetTypeId() != TYPEID_UNIT || ((Creature*)unitTarget)->isPet()) return; |
| | 671 | |
| | 672 | Creature* creatureTarget = (Creature*)unitTarget; |
| | 673 | GameObject* pGameObj = new GameObject; |
| | 674 | |
| | 675 | if (!creatureTarget || !pGameObj) return; |
| | 676 | |
| | 677 | if (!pGameObj->Create(objmgr.GenerateLowGuid(HIGHGUID_GAMEOBJECT), 181574, creatureTarget->GetMap(), |
| | 678 | creatureTarget->GetPositionX(), creatureTarget->GetPositionY(), creatureTarget->GetPositionZ(), |
| | 679 | creatureTarget->GetOrientation(), 0, 0, 0, 0, 100, 1)) |
| | 680 | { |
| | 681 | delete pGameObj; |
| | 682 | return; |
| | 683 | } |
| | 684 | |
| | 685 | pGameObj->SetRespawnTime(0); |
| | 686 | pGameObj->SetOwnerGUID(m_caster->GetGUID()); |
| | 687 | pGameObj->SetUInt32Value(GAMEOBJECT_LEVEL, m_caster->getLevel()); |
| | 688 | pGameObj->SetSpellId(m_spellInfo->Id); |
| | 689 | |
| | 690 | MapManager::Instance().GetMap(creatureTarget->GetMapId(), pGameObj)->Add(pGameObj); |
| | 691 | |
| | 692 | WorldPacket data(SMSG_GAMEOBJECT_SPAWN_ANIM_OBSOLETE, 8); |
| | 693 | data << uint64(pGameObj->GetGUID()); |
| | 694 | m_caster->SendMessageToSet(&data,true); |
| | 695 | |
| | 696 | return; |
| | 697 | } |
| | 698 | // Demon Broiled Surprise |
| | 699 | case 43723: |
| | 700 | { |
| | 701 | if (!unitTarget || unitTarget->isAlive() || unitTarget->GetTypeId() != TYPEID_UNIT || |
| | 702 | ((Creature*)unitTarget)->isPet()) return; |
| | 703 | |
| | 704 | Player *player = (Player*)m_caster; |
| | 705 | |
| | 706 | if (!player) return; |
| | 707 | |
| | 708 | player->CastSpell(unitTarget, 43753, true); |
| | 709 | |
| | 710 | if (player->GetQuestStatus(11379) == QUEST_STATUS_INCOMPLETE && unitTarget->GetEntry() == 19973) |
| | 711 | player->CastedCreatureOrGO(19973, unitTarget->GetGUID(), 43723); |
| | 712 | |
| | 713 | return; |
| | 714 | } |