Skip to content

Scripts/WanderingIsle: Implement quest 29421 Only the Worthy Shall Pass#31624

Open
Saburo-Arasaka wants to merge 16 commits intoTrinityCore:masterfrom
Saburo-Arasaka:li-fei
Open

Scripts/WanderingIsle: Implement quest 29421 Only the Worthy Shall Pass#31624
Saburo-Arasaka wants to merge 16 commits intoTrinityCore:masterfrom
Saburo-Arasaka:li-fei

Conversation

@Saburo-Arasaka
Copy link
Contributor

DB/WanderingIsle: Implement quest 29421

DB/WanderingIsle: Implement quest 29421
DB/WanderingIsle: Implement quest 29421
@Saburo-Arasaka Saburo-Arasaka changed the title DB/WanderingIsle: Implement quest 29421 DB/WanderingIsle: Implement quest 29421 Only the Worthy Shall Pass Jan 18, 2026
case Events::Event_shadow_kick:
{
if (me->GetVictim())
me->CastSpell(me->GetVictim(), Spells::spell_flying_shadow_kick);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

DoCastVictim

}
case Events::Event_shadow_kick_stun:
{
if (me->GetVictim())
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

DoCastVictim

{
PreventDefaultAction();

GetCaster()->CastSpell(GetCaster()->GetVictim(), Spells::spell_fury_kick_damage, true);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

caster can be null unless the spell is caster only

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

how i can do it?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

check for null pointer?

if (!GetCaster())
return;

damage = 0;
me->SetFaction(35);
me->CombatStop();
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SetImmuneToPc

player->RemoveAurasDueToSpell(Spells::spell_fire_crash_phase_shift);

Map* map = player->GetMap();
Creature* lifei = map->GetCreatureBySpawnId(Guids::Li_Fei_quest_guid);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

StringId + FindCreatureWithOptions

if (!lifei)
return;

sCreatureTextMgr->SendChat(lifei, Li_Fei_Talk_0, player);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is bad, we use Creature::Talk


_playerGuid.Clear();
_playerGuid = summoner->ToPlayer()->GetGUID();
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SetImmuneToPC


void IsSummonedBy(WorldObject* summoner) override
{
if (me->GetAreaId() != 5849)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

magic number

{
float distance = 4.0f;
float orientation = GetCaster()->GetVictim()->GetOrientation();
float targetX = GetCaster()->GetVictim()->GetPositionX() - distance * std::cos(orientation);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

create a ponter to caster and pass it along

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what u mean? li-fei must tp on back of player

player->CastSpell(player, Spells::spell_fire_crash_cove);

Map* map = player->GetMap();
Creature* lifei = map->GetCreatureBySpawnId(Guids::Li_Fei_for_summon_guid);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

StringId + FindCreatureWithOptions

if (!lifei)
return;

TempSummon* lifeiClone = lifei->SummonPersonalClone(lifei->GetPosition(), TEMPSUMMON_MANUAL_DESPAWN, 0s, 0, 0, player->ToPlayer());
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

are you sure of this? personal clones weren't a thing until WoD-Legion

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no, im not sure, but it pretty works

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Personal clones are not a thing in Mop

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Personal clones are not a thing in Mop

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah, ok , i ll change

Comment on lines 8 to 10
-- Talks
INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
(54135, 0, 0, 'Ты $gзаслужил:заслужила; право пройти. Хо ждет тебя.', 12, 0, 100, 0, 0, 0, 0, 0, 'Мастер Ли Фэй to Player');
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing DELETE statement and our creature_text is english only.

@mdX7 mdX7 changed the title DB/WanderingIsle: Implement quest 29421 Only the Worthy Shall Pass Scripts/WanderingIsle: Implement quest 29421 Only the Worthy Shall Pass Feb 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants