Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
item_scripts.cpp
Go to the documentation of this file.
1/*
2* This file is part of Project SkyFire https://www.projectskyfire.org.
3* See LICENSE.md file for Copyright information
4*/
5
6 /* ScriptData
7 SDName: Item_Scripts
8 SD%Complete: 100
9 SDComment: Items for a range of different items. See content below (in script)
10 SDCategory: Items
11 EndScriptData */
12
13 /* ContentData
14 item_nether_wraith_beacon(i31742) Summons creatures for quest Becoming a Spellfire Tailor (q10832)
15 item_flying_machine(i34060, i34061) Engineering crafted flying machines
16 item_gor_dreks_ointment(i30175) Protecting Our Own(q10488)
17 item_only_for_flight Items which should only useable while flying
18 EndContentData */
19
20#include "ScriptMgr.h"
21#include "ScriptedCreature.h"
22#include "Spell.h"
23#include "Player.h"
24
25 /*#####
26 # item_only_for_flight
27 #####*/
28
33
35{
36public:
37 item_only_for_flight() : ItemScript("item_only_for_flight") { }
38
39 bool OnUse(Player* player, Item* item, SpellCastTargets const& /*targets*/) OVERRIDE
40 {
41 uint32 itemId = item->GetEntry();
42 bool disabled = false;
43
44 //for special scripts
45 switch (itemId)
46 {
47 case 24538:
48 if (player->GetAreaId() != 3628)
49 disabled = true;
50 break;
51 case 34489:
52 if (player->GetZoneId() != 4080)
53 disabled = true;
54 break;
55 case 34475:
56 if (const SpellInfo* spellInfo = sSpellMgr->GetSpellInfo(SPELL_ARCANE_CHARGES))
58 break;
59 }
60
61 // allow use in flight only
62 if (player->IsInFlight() && !disabled)
63 return false;
64
65 // error
66 player->SendEquipError(EQUIP_ERR_CLIENT_LOCKED_OUT, item, NULL);
67 return true;
68 }
69};
70
71/*#####
72# item_nether_wraith_beacon
73#####*/
74
76{
77public:
78 item_nether_wraith_beacon() : ItemScript("item_nether_wraith_beacon") { }
79
80 bool OnUse(Player* player, Item* /*item*/, SpellCastTargets const& /*targets*/) OVERRIDE
81 {
82 if (player->GetQuestStatus(10832) == QUEST_STATUS_INCOMPLETE)
83 {
84 if (Creature* nether = player->SummonCreature(22408, player->GetPositionX(), player->GetPositionY() + 20, player->GetPositionZ(), 0, TempSummonType::TEMPSUMMON_TIMED_DESPAWN, 180000))
85 nether->AI()->AttackStart(player);
86
87 if (Creature* nether = player->SummonCreature(22408, player->GetPositionX(), player->GetPositionY() - 20, player->GetPositionZ(), 0, TempSummonType::TEMPSUMMON_TIMED_DESPAWN, 180000))
88 nether->AI()->AttackStart(player);
89 }
90 return false;
91 }
92};
93
94/*#####
95# item_gor_dreks_ointment
96#####*/
97
99{
100public:
101 item_gor_dreks_ointment() : ItemScript("item_gor_dreks_ointment") { }
102
103 bool OnUse(Player* player, Item* item, SpellCastTargets const& targets) OVERRIDE
104 {
105 if (targets.GetUnitTarget() && targets.GetUnitTarget()->GetTypeId() == TypeID::TYPEID_UNIT &&
106 targets.GetUnitTarget()->GetEntry() == 20748 && !targets.GetUnitTarget()->HasAura(32578))
107 return false;
108
109 player->SendEquipError(EQUIP_ERR_CLIENT_LOCKED_OUT, item, NULL);
110 return true;
111 }
112};
113
114/*#####
115# item_incendiary_explosives
116#####*/
117
119{
120public:
121 item_incendiary_explosives() : ItemScript("item_incendiary_explosives") { }
122
123 bool OnUse(Player* player, Item* item, SpellCastTargets const & /*targets*/) OVERRIDE
124 {
125 if (player->FindNearestCreature(26248, 15) || player->FindNearestCreature(26249, 15))
126 return false;
127 else
128 {
129 player->SendEquipError(EQUIP_ERR_OUT_OF_RANGE, item, NULL);
130 return true;
131 }
132 }
133};
134
135/*#####
136# item_mysterious_egg
137#####*/
138
140{
141public:
142 item_mysterious_egg() : ItemScript("item_mysterious_egg") { }
143
144 bool OnExpire(Player* player, ItemTemplate const* /*pItemProto*/) OVERRIDE
145 {
146 ItemPosCountVec dest;
147 uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, 39883, 1); // Cracked Egg
148 if (msg == EQUIP_ERR_OK)
149 player->StoreNewItem(dest, 39883, true, Item::GenerateItemRandomPropertyId(39883));
150
151 return true;
152 }
153};
154
155/*#####
156# item_disgusting_jar
157#####*/
158
160{
161public:
162 item_disgusting_jar() : ItemScript("item_disgusting_jar") { }
163
164 bool OnExpire(Player* player, ItemTemplate const* /*pItemProto*/) OVERRIDE
165 {
166 ItemPosCountVec dest;
167 uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, 44718, 1); // Ripe Disgusting Jar
168 if (msg == EQUIP_ERR_OK)
169 player->StoreNewItem(dest, 44718, true, Item::GenerateItemRandomPropertyId(44718));
170
171 return true;
172 }
173};
174
175/*#####
176# item_pile_fake_furs
177#####*/
178
199
200#define CaribouTrapsNum 15
207
209{
210public:
211 item_pile_fake_furs() : ItemScript("item_pile_fake_furs") { }
212
213 bool OnUse(Player* player, Item* /*item*/, SpellCastTargets const & /*targets*/) OVERRIDE
214 {
215 GameObject* go = NULL;
216 for (uint8 i = 0; i < CaribouTrapsNum; ++i)
217 {
218 go = player->FindNearestGameObject(CaribouTraps[i], 5.0f);
219 if (go)
220 break;
221 }
222
223 if (!go)
224 return false;
225
227 return true;
228
229 float x, y, z;
230 go->GetClosePoint(x, y, z, go->GetObjectSize() / 3, 7.0f);
231 go->SummonGameObject(GO_HIGH_QUALITY_FUR, go->GetPositionX(), go->GetPositionY(), go->GetPositionZ(), 0, 0, 0, 0, 0, 1000);
233 {
234 summon->SetVisible(false);
235 summon->SetReactState(REACT_PASSIVE);
237 }
238 return false;
239 }
240};
241
242/*#####
243# item_petrov_cluster_bombs
244#####*/
245
252
254{
255public:
256 item_petrov_cluster_bombs() : ItemScript("item_petrov_cluster_bombs") { }
257
258 bool OnUse(Player* player, Item* /*item*/, const SpellCastTargets & /*targets*/) OVERRIDE
259 {
260 if (player->GetZoneId() != ZONE_ID_HOWLING)
261 return false;
262
263 if (!player->GetTransport() || player->GetAreaId() != AREA_ID_SHATTERED_STRAITS)
264 {
265 if (const SpellInfo* spellInfo = sSpellMgr->GetSpellInfo(SPELL_PETROV_BOMB))
267
268 return true;
269 }
270
271 return false;
272 }
273};
274
275/*######
276# item_dehta_trap_smasher
277# For quest 11876, Help Those That Cannot Help Themselves
278######*/
306
307#define MammothTrapsNum 22
316
318{
319public:
320 item_dehta_trap_smasher() : ItemScript("item_dehta_trap_smasher") { }
321
322 bool OnUse(Player* player, Item* /*item*/, const SpellCastTargets & /*targets*/) OVERRIDE
323 {
324 if (player->GetQuestStatus(QUEST_CANNOT_HELP_THEMSELVES) != QUEST_STATUS_INCOMPLETE)
325 return false;
326
327 Creature* pMammoth = player->FindNearestCreature(NPC_TRAPPED_MAMMOTH_CALF, 5.0f);
328 if (!pMammoth)
329 return false;
330
331 GameObject* pTrap = NULL;
332 for (uint8 i = 0; i < MammothTrapsNum; ++i)
333 {
334 pTrap = player->FindNearestGameObject(MammothTraps[i], 11.0f);
335 if (pTrap)
336 {
337 pMammoth->AI()->DoAction(1);
339 player->KilledMonsterCredit(NPC_TRAPPED_MAMMOTH_CALF, 0);
340 return true;
341 }
342 }
343 return false;
344 }
345};
346
348{
351};
352
354{
355public:
356 item_trident_of_nazjan() : ItemScript("item_Trident_of_Nazjan") { }
357
358 bool OnUse(Player* player, Item* item, const SpellCastTargets & /*targets*/) OVERRIDE
359 {
360 if (player->GetQuestStatus(QUEST_THE_EMISSARY) == QUEST_STATUS_INCOMPLETE)
361 {
362 if (Creature* pLeviroth = player->FindNearestCreature(NPC_LEVIROTH, 10.0f)) // spell range
363 {
364 pLeviroth->AI()->AttackStart(player);
365 return false;
366 }
367 else
368 player->SendEquipError(EQUIP_ERR_OUT_OF_RANGE, item, NULL);
369 }
370 else
371 player->SendEquipError(EQUIP_ERR_CLIENT_LOCKED_OUT, item, NULL);
372 return true;
373 }
374};
375
381
383{
384public:
385 item_captured_frog() : ItemScript("item_captured_frog") { }
386
387 bool OnUse(Player* player, Item* item, SpellCastTargets const& /*targets*/) OVERRIDE
388 {
389 if (player->GetQuestStatus(QUEST_THE_PERFECT_SPIES) == QUEST_STATUS_INCOMPLETE)
390 {
391 if (player->FindNearestCreature(NPC_VANIRAS_SENTRY_TOTEM, 10.0f))
392 return false;
393 else
394 player->SendEquipError(EQUIP_ERR_OUT_OF_RANGE, item, NULL);
395 }
396 else
397 player->SendEquipError(EQUIP_ERR_CLIENT_LOCKED_OUT, item, NULL);
398 return true;
399 }
400};
401
403{
404public:
405 item_eye_of_black_prince() : ItemScript("item_eye_of_black_prince") { }
406
407 bool OnUse(Player* /*player*/, Item* item, SpellCastTargets const& /*targets*/) OVERRIDE {
408 switch (item->GetEntry())
409 {
411 // Heart of Fear
412 // Shek'zeer
413 case 86865: // Kri'tak, Imperial Scepter of the Swarm - Raid Finder
414 case 86227: // Kri'tak, Imperial Scepter of the Swarm - Normal
415 case 86990: // Kri'tak, Imperial Scepter of the Swarm - Heroic
416 // Shek'zeer
417 case 86864: // Claws of Shek'zeer - Raid Finder
418 case 86226: // Claws of Shek'zeer - Normal
419 case 86988: // Claws of Shek'zeer - Heroic
420
421 // Terrace of Endless Spring
422 // Tsulong
423 case 86886: // Loshan, Terror Incarnate - Raid Finder
424 case 86328: // Loshan, Terror Incarnate - Normal
425 case 87164: // Loshan, Terror Incarnate - Heroic
426 // Tsulong
427 case 86879: // Gao-Rei, Staff of the Legendary Protector - Raid Finder
428 case 86321: // Gao-Rei, Staff of the Legendary Protector - Normal
429 case 87156: // Gao-Rei, Staff of the Legendary Protector - Heroic
430 // Lei Shi
431 case 86889: // Taoren, the Soul Burner - Raid Finder
432 case 86331: // Taoren, the Soul Burner - Normal
433 case 87168: // Taoren, the Soul Burner - Heroic
434 // Lei Shi
435 case 86910: // Spiritsever - Raid Finder
436 case 86391: // Spiritsever - Normal
437 case 87166: // Spiritsever - Heroic
438 // Lei Shi
439 case 86893: // Jin'ya, Orb of the Waterspeaker - Raid Finder
440 case 86335: // Jin'ya, Orb of the Waterspeaker - Normal
441 case 87170: // Jin'ya, Orb of the Waterspeaker - Heroic
442 // Sha of Fear
443 case 86906: // Kilrak, Jaws of Terror - Raid Finder
444 case 86387: // Kilrak, Jaws of Terror - Normal
445 case 87173: // Kilrak, Jaws of Terror - Heroic
446 // Sha of Fear
447 case 86905: // Shin'ka, Execution of Dominion - Raid Finder
448 case 86386: // Shin'ka, Execution of Dominion - Normal
449 case 87176: // Shin'ka, Execution of Dominion - Heroic
451 // Last Stand of the Zandalari
452 // Jin'Rokh
453 case 95640: // Soulblade of the Breaking Storm - Raid Finder
454 case 94730: // Soulblade of the Breaking Storm - Normal
455 case 96012: // Soulblade of the Breaking Storm - Thunderforged
456 case 96384: // Soulblade of the Breaking Storm - Heroic
457 case 96756: // Soulblade of the Breaking Storm - Heroic Thunderforged
458 // Jin'Rokh
459 case 95632: // Worldbreaker's Stormscythe - Raid Finder
460 case 94722: // Worldbreaker's Stormscythe - Normal
461 case 96004: // Worldbreaker's Stormscythe - Thunderforged
462 case 96376: // Worldbreaker's Stormscythe - Heroic
463 case 96748: // Worldbreaker's Stormscythe - Heroic Thunderforged
464 // Horridon
465 case 95657: // Dinomancer's Spiritbinding Spire - Raid Finder
466 case 94749: // Dinomancer's Spiritbinding Spire - Normal
467 case 96029: // Dinomancer's Spiritbinding Spire - Thunderforged
468 case 96401: // Dinomancer's Spiritbinding Spire - Heroic
469 case 96773: // Dinomancer's Spiritbinding Spire - Heroic Thunderforged
470 // Horridon
471 case 95647: // Jalak's Maelstrom Staff - Raid Finder
472 case 94740: // Jalak's Maelstrom Staff - Normal
473 case 96019: // Jalak's Maelstrom Staff - Thunderforged
474 case 96391: // Jalak's Maelstrom Staff - Heroic
475 case 96763: // Jalak's Maelstrom Staff - Heroic Thunderforged
476 // Horridon
477 case 95660: // Venomlord's Totemic Wand - Raid Finder
478 case 94755: // Venomlord's Totemic Wand - Normal
479 case 96032: // Venomlord's Totemic Wand - Thunderforged
480 case 96404: // Venomlord's Totemic Wand - Heroic
481 case 96776: // Venomlord's Totemic Wand - Heroic Thunderforged
482 // Council of Elders
483 case 95666: // Kura-Kura, Kazra'jin's Skullcleaver - Raid Finder
484 case 94759: // Kura-Kura, Kazra'jin's Skullcleaver - Normal
485 case 96038: // Kura-Kura, Kazra'jin's Skullcleaver - Thunderforged
486 case 96410: // Kura-Kura, Kazra'jin's Skullcleaver - Heroic
487 case 96782: // Kura-Kura, Kazra'jin's Skullcleaver - Heroic Thunderforged
488 // Council of Elders
489 case 95670: // Amun-Thoth, Sul's Spiritrending Talons - Raid Finder
490 case 94760: // Amun-Thoth, Sul's Spiritrending Talons - Normal
491 case 96042: // Amun-Thoth, Sul's Spiritrending Talons - Thunderforged
492 case 96414: // Amun-Thoth, Sul's Spiritrending Talons - Heroic
493 case 96786: // Amun-Thoth, Sul's Spiritrending Talons - Heroic Thunderforged
494 // Council of Elders
495 case 95675: // Zerat, Malakk's Soulburning Greatsword - Raid Finder
496 case 94758: // Zerat, Malakk's Soulburning Greatsword - Normal
497 case 96047: // Zerat, Malakk's Soulburning Greatsword - Thunderforged
498 case 96419: // Zerat, Malakk's Soulburning Greatsword - Heroic
499 case 96791: // Zerat, Malakk's Soulburning Greatsword - Heroic Thunderforged
500
501 // Forgotten Depths
502 // Tortos
503 case 95686: // Shellsplitter Greataxe - Raid Finder
504 case 94768: // Shellsplitter Greataxe - Normal
505 case 96058: // Shellsplitter Greataxe - Thunderforged
506 case 96430: // Shellsplitter Greataxe - Heroic
507 case 96802: // Shellsplitter Greataxe - Heroic Thunderforged
508 // Tortos
509 case 95678: // Shattered Tortoiseshell Longbow - Raid Finder
510 case 94769: // Shattered Tortoiseshell Longbow - Normal
511 case 96050: // Shattered Tortoiseshell Longbow - Thunderforged
512 case 96422: // Shattered Tortoiseshell Longbow - Heroic
513 case 96794: // Shattered Tortoiseshell Longbow - Heroic Thunderforged
514 // Megaera
515 case 95698: // Megaera's Poisoned Fang - Raid Finder
516 case 94788: // Megaera's Poisoned Fang - Normal
517 case 96070: // Megaera's Poisoned Fang - Thunderforged
518 case 96442: // Megaera's Poisoned Fang - Heroic
519 case 96814: // Megaera's Poisoned Fang - Heroic Thunderforged
520 // Ji'kun
521 case 95720: // Giorgio's Caduceus of Pure Moods - Raid Finder
522 case 94805: // Giorgio's Caduceus of Pure Moods - Normal
523 case 96092: // Giorgio's Caduceus of Pure Moods - Thunderforged
524 case 96464: // Giorgio's Caduceus of Pure Moods - Heroic
525 case 96836: // Giorgio's Caduceus of Pure Moods - Heroic Thunderforged
526
527 // Halls of Flesh-Shapping
528 // Durumu
529 case 95743: // Ritual Dagger of the Mind's Eye - Raid Finder
530 case 94922: // Ritual Dagger of the Mind's Eye - Normal
531 case 96115: // Ritual Dagger of the Mind's Eye - Thunderforged
532 case 96487: // Ritual Dagger of the Mind's Eye - Heroic
533 case 96859: // Ritual Dagger of the Mind's Eye - Heroic Thunderforged
534 // Durumu
535 case 95728: // Durumu's Baleful Gaze - Raid Finder
536 case 94814: // Durumu's Baleful Gaze - Normal
537 case 96100: // Durumu's Baleful Gaze - Thunderforged
538 case 96472: // Durumu's Baleful Gaze - Heroic
539 case 96844: // Durumu's Baleful Gaze - Heroic Thunderforged
540 // Primordius
541 case 95758: // Acid-Spine Bonemace - Raid Finder
542 case 94937: // Acid-Spine Bonemace - Normal
543 case 96130: // Acid-Spine Bonemace - Thunderforged
544 case 96502: // Acid-Spine Bonemace - Heroic
545 case 96874: // Acid-Spine Bonemace - Heroic Thunderforged
546 // Dark Animus
547 case 95774: // Athame of the Sanguine Ritual - Raid Finder
548 case 94955: // Athame of the Sanguine Ritual - Normal
549 case 96146: // Athame of the Sanguine Ritual - Thunderforged
550 case 96518: // Athame of the Sanguine Ritual - Heroic
551 case 96890: // Athame of the Sanguine Ritual - Heroic Thunderforged
552 // Dark Animus
553 case 95770: // Hand of the Dark Animus - Raid Finder
554 case 94954: // Hand of the Dark Animus - Normal
555 case 96142: // Hand of the Dark Animus - Thunderforged
556 case 96514: // Hand of the Dark Animus - Heroic
557 case 96886: // Hand of the Dark Animus - Heroic Thunderforged
558
559 // Pinnacle of Storms
560 // Iron Qon
561 case 95780: // Iron Qon's Boot Knife - Raid Finder
562 case 94971: // Iron Qon's Boot Knife - Normal
563 case 96152: // Iron Qon's Boot Knife - Thunderforged
564 case 96524: // Iron Qon's Boot Knife - Heroic
565 case 96896: // Iron Qon's Boot Knife - Heroic Thunderforged
566 // Iron Qon
567 case 95790: // Qon's Flaming Scimitar - Raid Finder
568 case 94964: // Qon's Flaming Scimitar - Normal
569 case 96162: // Qon's Flaming Scimitar - Thunderforged
570 case 96534: // Qon's Flaming Scimitar - Heroic
571 case 96906: // Qon's Flaming Scimitar - Heroic Thunderforged
572 // Iron Qon
573 case 95781: // Voice of the Quilen - Raid Finder
574 case 94963: // Voice of the Quilen - Normal
575 case 96153: // Voice of the Quilen - Thunderforged
576 case 96525: // Voice of the Quilen - Heroic
577 case 96897: // Voice of the Quilen - Heroic Thunderforged
578 // Twin Consorts
579 case 95791: // Wu-Lai, Bladed Fan of the Consorts - Raid Finder
580 case 94973: // Wu-Lai, Bladed Fan of the Consorts - Normal
581 case 96163: // Wu-Lai, Bladed Fan of the Consorts - Thunderforged
582 case 96535: // Wu-Lai, Bladed Fan of the Consorts - Heroic
583 case 96907: // Wu-Lai, Bladed Fan of the Consorts - Heroic Thunderforged
584 // Twin Consorts
585 case 95795: // Suen-Wo, Spire of the Falling Sun - Raid Finder
586 case 94974: // Suen-Wo, Spire of the Falling Sun - Normal
587 case 96167: // Suen-Wo, Spire of the Falling Sun - Thunderforged
588 case 96539: // Suen-Wo, Spire of the Falling Sun - Heroic
589 case 96911: // Suen-Wo, Spire of the Falling Sun - Heroic Thunderforged
590 // Lei Shen
591 case 95803: // Shan-Dun, Breaker of Hope - Raid Finder
592 case 94983: // Shan-Dun, Breaker of Hope - Normal
593 case 96175: // Shan-Dun, Breaker of Hope - Thunderforged
594 case 96547: // Shan-Dun, Breaker of Hope - Heroic
595 case 96919: // Shan-Dun, Breaker of Hope - Heroic Thunderforged
596 // Lei Shen
597 case 95809: // Uroe, Harbinger of Terror - Raid Finder
598 case 94982: // Uroe, Harbinger of Terror - Normal
599 case 96181: // Uroe, Harbinger of Terror - Thunderforged
600 case 96553: // Uroe, Harbinger of Terror - Heroic
601 case 96925: // Uroe, Harbinger of Terror - Heroic Thunderforged
602 // Lei Shen
603 case 95815: // Torall, Rod of the Shattered Throne - Raid Finder
604 case 94988: // Torall, Rod of the Shattered Throne - Normal
605 case 96187: // Torall, Rod of the Shattered Throne - Thunderforged
606 case 96559: // Torall, Rod of the Shattered Throne - Heroic
607 case 96931: // Torall, Rod of the Shattered Throne - Heroic Thunderforged
608
609 // Shared Boss Loot
610 case 95877: // Bo-Ris, Horror in the Night - Raid Finder
611 case 95498: // Bo-Ris, Horror in the Night - Normal
612 case 96249: // Bo-Ris, Horror in the Night - Thunderforged
613 case 96621: // Bo-Ris, Horror in the Night - Heroic
614 case 96993: // Bo-Ris, Horror in the Night - Heroic Thunderforged
615 // Shared Boss Loot
616 case 95862: // Darkwood Spiritstaff - Raid Finder
617 case 95507: // Darkwood Spiritstaff - Normal
618 case 96234: // Darkwood Spiritstaff - Thunderforged
619 case 96606: // Darkwood Spiritstaff - Heroic
620 case 96978: // Darkwood Spiritstaff - Heroic Thunderforged
621 // Shared Boss Loot
622 case 95876: // Do-tharak, the Swordbreaker - Raid Finder
623 case 95502: // Do-tharak, the Swordbreaker - Normal
624 case 96248: // Do-tharak, the Swordbreaker - Thunderforged
625 case 96620: // Do-tharak, the Swordbreaker - Heroic
626 case 96992: // Do-tharak, the Swordbreaker - Heroic Thunderforged
627 // Shared Boss Loot
628 case 95860: // Fyn's Flickering Dagger - Raid Finder
629 case 95501: // Fyn's Flickering Dagger - Normal
630 case 96232: // Fyn's Flickering Dagger - Thunderforged
631 case 96604: // Fyn's Flickering Dagger - Heroic
632 case 96976: // Fyn's Flickering Dagger - Heroic Thunderforged
633 // Shared Boss Loot
634 case 95875: // Greatsword of Frozen Hells - Raid Finder
635 case 95505: // Greatsword of Frozen Hells - Normal
636 case 96247: // Greatsword of Frozen Hells - Thunderforged
637 case 96619: // Greatsword of Frozen Hells - Heroic
638 case 96991: // Greatsword of Frozen Hells - Heroic Thunderforged
639 // Shared Boss Loot
640 case 95858: // Invocation of the Dawn - Raid Finder
641 case 95499: // Invocation of the Dawn - Normal
642 case 96230: // Invocation of the Dawn - Thunderforged
643 case 96602: // Invocation of the Dawn - Heroic
644 case 96974: // Invocation of the Dawn - Heroic Thunderforged
645 // Shared Boss Loot
646 case 95867: // Jerthud, Graceful Hand of the Savior - Raid Finder
647 case 95500: // Jerthud, Graceful Hand of the Savior - Normal
648 case 96239: // Jerthud, Graceful Hand of the Savior - Thunderforged
649 case 96611: // Jerthud, Graceful Hand of the Savior - Heroic
650 case 96983: // Jerthud, Graceful Hand of the Savior - Heroic Thunderforged
651 // Shared Boss Loot
652 case 95859: // Miracoran, the Vehement Chord - Raid Finder
653 case 95503: // Miracoran, the Vehement Chord - Normal
654 case 96231: // Miracoran, the Vehement Chord - Thunderforged
655 case 96603: // Miracoran, the Vehement Chord - Heroic
656 case 96975: // Miracoran, the Vehement Chord - Heroic Thunderforged
657 // Shared Boss Loot
658 case 95866: // Nadagast's Exsanguinator - Raid Finder
659 case 95506: // Nadagast's Exsanguinator - Normal
660 case 96238: // Nadagast's Exsanguinator - Thunderforged
661 case 96610: // Nadagast's Exsanguinator - Heroic
662 case 96982: // Nadagast's Exsanguinator - Heroic Thunderforged
663 // Shared Boss Loot
664 case 97129: // Tia-Tia, the Scything Star - Raid Finder
665 case 97126: // Tia-Tia, the Scything Star - Normal
666 case 97128: // Tia-Tia, the Scything Star - Thunderforged
667 case 97127: // Tia-Tia, the Scything Star - Heroic
668 case 97130: // Tia-Tia, the Scything Star - Heroic Thunderforged
669 // Shared Boss Loot
670 case 95861: // Zeeg's Ancient Kegsmasher - Raid Finder
671 case 95504: // Zeeg's Ancient Kegsmasher - Normal
672 case 96233: // Zeeg's Ancient Kegsmasher - Thunderforged
673 case 96605: // Zeeg's Ancient Kegsmasher - Heroic
674 case 96977: // Zeeg's Ancient Kegsmasher - Heroic Thunderforged
675 return true;
676 break;
677
678 default:
679 return false;
680 break;
681 }
682 }
683};
684
std::uint8_t uint8
Definition Define.h:79
std::uint32_t uint32
Definition Define.h:77
#define OVERRIDE
Definition Define.h:60
@ GO_STATE_READY
Definition GameObject.h:577
@ EQUIP_ERR_OUT_OF_RANGE
Definition Item.h:53
@ EQUIP_ERR_CLIENT_LOCKED_OUT
Definition Item.h:67
@ EQUIP_ERR_OK
Definition Item.h:28
@ TYPEID_UNIT
Definition Object.h:54
@ TEMPSUMMON_TIMED_DESPAWN
Definition Object.h:70
@ TEMPSUMMON_DEAD_DESPAWN
Definition Object.h:74
std::vector< ItemPosCount > ItemPosCountVec
Definition Player.h:777
@ QUEST_STATUS_INCOMPLETE
Definition QuestDef.h:89
#define sSpellMgr
Definition SpellMgr.h:744
@ NULL_BAG
Definition Unit.h:336
@ NULL_SLOT
Definition Unit.h:337
@ REACT_PASSIVE
Definition Unit.h:1156
@ UNIT_FLAG_IMMUNE_TO_PC
Definition Unit.h:633
@ UNIT_FIELD_FLAGS
CreatureAI * AI() const
Definition Creature.h:483
void SetGoState(GOState state)
Definition Item.h:202
static int32 GenerateItemRandomPropertyId(uint32 item_id)
Definition Item.cpp:575
ItemScript(const char *name)
static void SendCastResult(Player *caster, SpellInfo const *spellInfo, uint8 cast_count, SpellCastResult result, SpellCustomErrors customError=SPELL_CUSTOM_ERROR_NONE, Opcodes opcode=SMSG_CAST_FAILED)
Definition Spell.cpp:3874
virtual void DoAction(int32)
Definition UnitAI.h:126
GameObject * FindNearestGameObject(uint32 entry, float range) const
Definition Object.cpp:2810
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
Definition Object.cpp:2801
GameObject * SummonGameObject(uint32 entry, float x, float y, float z, float ang, float rotation0, float rotation1, float rotation2, float rotation3, uint32 respawnTime)
Definition Object.cpp:2729
void GetClosePoint(float &x, float &y, float &z, float size, float distance2d=0, float angle=0) const
Definition Object.cpp:3070
float GetObjectSize() const
Definition Object.cpp:3100
TempSummon * SummonCreature(uint32 id, Position const &pos, TempSummonType spwtype=TempSummonType::TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0) const
Definition Object.cpp:2703
bool OnUse(Player *player, Item *item, SpellCastTargets const &) OVERRIDE
bool OnUse(Player *player, Item *, const SpellCastTargets &) OVERRIDE
bool OnExpire(Player *player, ItemTemplate const *) OVERRIDE
bool OnUse(Player *, Item *item, SpellCastTargets const &) OVERRIDE
bool OnUse(Player *player, Item *item, SpellCastTargets const &targets) OVERRIDE
bool OnUse(Player *player, Item *item, SpellCastTargets const &) OVERRIDE
bool OnExpire(Player *player, ItemTemplate const *) OVERRIDE
bool OnUse(Player *player, Item *, SpellCastTargets const &) OVERRIDE
bool OnUse(Player *player, Item *item, SpellCastTargets const &) OVERRIDE
bool OnUse(Player *player, Item *, const SpellCastTargets &) OVERRIDE
bool OnUse(Player *player, Item *, SpellCastTargets const &) OVERRIDE
bool OnUse(Player *player, Item *item, const SpellCastTargets &) OVERRIDE
#define CaribouTrapsNum
CapturedFrog
@ NPC_VANIRAS_SENTRY_TOTEM
@ QUEST_THE_PERFECT_SPIES
void AddSC_item_scripts()
PetrovClusterBombs
@ ZONE_ID_HOWLING
@ SPELL_PETROV_BOMB
@ AREA_ID_SHATTERED_STRAITS
const uint32 CaribouTraps[CaribouTrapsNum]
@ QUEST_CANNOT_HELP_THEMSELVES
@ NPC_TRAPPED_MAMMOTH_CALF
PileFakeFur
@ NPC_NESINGWARY_TRAPPER
@ GO_HIGH_QUALITY_FUR
TheEmissary
@ NPC_LEVIROTH
@ QUEST_THE_EMISSARY
#define MammothTrapsNum
const uint32 MammothTraps[MammothTrapsNum]
OnlyForFlight
@ SPELL_ARCANE_CHARGES
@ NPC_LEVIROTH
float GetPositionZ() const
Definition Object.h:330
float GetOrientation() const
Definition Object.h:331
float GetPositionX() const
Definition Object.h:328
float GetPositionY() const
Definition Object.h:329
#define CaribouTrapsNum
const uint32 CaribouTraps[CaribouTrapsNum]
@ GO_MAMMOTH_TRAP_12
@ GO_MAMMOTH_TRAP_17
@ GO_MAMMOTH_TRAP_7
@ GO_MAMMOTH_TRAP_13
@ GO_MAMMOTH_TRAP_2
@ GO_MAMMOTH_TRAP_4
@ GO_MAMMOTH_TRAP_6
@ GO_MAMMOTH_TRAP_21
@ GO_MAMMOTH_TRAP_1
@ GO_MAMMOTH_TRAP_20
@ GO_MAMMOTH_TRAP_19
@ GO_MAMMOTH_TRAP_3
@ GO_MAMMOTH_TRAP_14
@ GO_MAMMOTH_TRAP_5
@ GO_MAMMOTH_TRAP_16
@ GO_MAMMOTH_TRAP_15
@ GO_MAMMOTH_TRAP_18
@ GO_MAMMOTH_TRAP_10
@ QUEST_CANNOT_HELP_THEMSELVES
@ GO_MAMMOTH_TRAP_11
@ GO_MAMMOTH_TRAP_9
@ GO_MAMMOTH_TRAP_8
@ GO_MAMMOTH_TRAP_22
@ GO_CARIBOU_TRAP_6
@ GO_CARIBOU_TRAP_12
@ GO_CARIBOU_TRAP_4
@ GO_CARIBOU_TRAP_5
@ GO_CARIBOU_TRAP_2
@ GO_CARIBOU_TRAP_11
@ GO_CARIBOU_TRAP_10
@ GO_CARIBOU_TRAP_13
@ GO_CARIBOU_TRAP_15
@ GO_HIGH_QUALITY_FUR
@ GO_CARIBOU_TRAP_9
@ GO_CARIBOU_TRAP_8
@ GO_CARIBOU_TRAP_3
@ GO_CARIBOU_TRAP_14
@ GO_CARIBOU_TRAP_1
@ GO_CARIBOU_TRAP_7
#define MammothTrapsNum
const uint32 MammothTraps[MammothTrapsNum]