Forum > Miscellaneous
[QUESTION] [Trinitycore]Flying Mounts Spell Requirements
(1/4) > >>
Nupper:
Changes Made Player.cpp Before:
--- Code: ---bool Player::CanFlyInZone(uint32 mapid, uint32 zone) const { // continent checked in SpellInfo::CheckLocation at cast and area update uint32 v_map = GetVirtualMapForMapAndZone(mapid, zone); return v_map != 571 || HasSpell(54197); // 54197 = Cold Weather Flying } --- End code --- After
--- Code: ---bool Player::CanFlyInZone(uint32 mapid, uint32 zone) const { // continent checked in SpellInfo::CheckLocation at cast and area update uint32 v_map = GetVirtualMapForMapAndZone(mapid, zone); return v_map != 571 || HasSpell(54197); // 54197 = Cold Weather Flying return v_map != 869 || HasSpell(93333); // 93333 = Flight Master's License } --- End code ---
Spell_generic.Cpp. First part Before
--- Code: ---enum Mounts { SPELL_COLD_WEATHER_FLYING = 54197,
// Magic Broom SPELL_MAGIC_BROOM_60 = 42680, SPELL_MAGIC_BROOM_100 = 42683, SPELL_MAGIC_BROOM_150 = 42667, SPELL_MAGIC_BROOM_280 = 42668,
// Headless Horseman's Mount SPELL_HEADLESS_HORSEMAN_MOUNT_60 = 51621, SPELL_HEADLESS_HORSEMAN_MOUNT_100 = 48024, SPELL_HEADLESS_HORSEMAN_MOUNT_150 = 51617, SPELL_HEADLESS_HORSEMAN_MOUNT_280 = 48023,
// Winged Steed of the Ebon Blade SPELL_WINGED_STEED_150 = 54726, SPELL_WINGED_STEED_280 = 54727,
// Big Love Rocket SPELL_BIG_LOVE_ROCKET_0 = 71343, SPELL_BIG_LOVE_ROCKET_60 = 71344, SPELL_BIG_LOVE_ROCKET_100 = 71345, SPELL_BIG_LOVE_ROCKET_150 = 71346, SPELL_BIG_LOVE_ROCKET_310 = 71347,
// Invincible SPELL_INVINCIBLE_60 = 72281, SPELL_INVINCIBLE_100 = 72282, SPELL_INVINCIBLE_150 = 72283, SPELL_INVINCIBLE_310 = 72284,
// Blazing Hippogryph SPELL_BLAZING_HIPPOGRYPH_150 = 74854, SPELL_BLAZING_HIPPOGRYPH_280 = 74855,
// Celestial Steed SPELL_CELESTIAL_STEED_60 = 75619, SPELL_CELESTIAL_STEED_100 = 75620, SPELL_CELESTIAL_STEED_150 = 75617, SPELL_CELESTIAL_STEED_280 = 75618, SPELL_CELESTIAL_STEED_310 = 76153,
// X-53 Touring Rocket SPELL_X53_TOURING_ROCKET_150 = 75957, SPELL_X53_TOURING_ROCKET_280 = 75972, SPELL_X53_TOURING_ROCKET_310 = 76154 }; --- End code --- After
--- Code: ---enum Mounts { SPELL_COLD_WEATHER_FLYING = 54197, SPELL_OSHOTH_FLYING = 93333,
// Magic Broom SPELL_MAGIC_BROOM_60 = 42680, SPELL_MAGIC_BROOM_100 = 42683, SPELL_MAGIC_BROOM_150 = 42667, SPELL_MAGIC_BROOM_280 = 42668,
// Headless Horseman's Mount SPELL_HEADLESS_HORSEMAN_MOUNT_60 = 51621, SPELL_HEADLESS_HORSEMAN_MOUNT_100 = 48024, SPELL_HEADLESS_HORSEMAN_MOUNT_150 = 51617, SPELL_HEADLESS_HORSEMAN_MOUNT_280 = 48023,
// Winged Steed of the Ebon Blade SPELL_WINGED_STEED_150 = 54726, SPELL_WINGED_STEED_280 = 54727,
// Big Love Rocket SPELL_BIG_LOVE_ROCKET_0 = 71343, SPELL_BIG_LOVE_ROCKET_60 = 71344, SPELL_BIG_LOVE_ROCKET_100 = 71345, SPELL_BIG_LOVE_ROCKET_150 = 71346, SPELL_BIG_LOVE_ROCKET_310 = 71347,
// Invincible SPELL_INVINCIBLE_60 = 72281, SPELL_INVINCIBLE_100 = 72282, SPELL_INVINCIBLE_150 = 72283, SPELL_INVINCIBLE_310 = 72284,
// Blazing Hippogryph SPELL_BLAZING_HIPPOGRYPH_150 = 74854, SPELL_BLAZING_HIPPOGRYPH_280 = 74855,
// Celestial Steed SPELL_CELESTIAL_STEED_60 = 75619, SPELL_CELESTIAL_STEED_100 = 75620, SPELL_CELESTIAL_STEED_150 = 75617, SPELL_CELESTIAL_STEED_280 = 75618, SPELL_CELESTIAL_STEED_310 = 76153,
// X-53 Touring Rocket SPELL_X53_TOURING_ROCKET_150 = 75957, SPELL_X53_TOURING_ROCKET_280 = 75972, SPELL_X53_TOURING_ROCKET_310 = 76154 }; --- End code --- Second part Before
--- Code: ---// Triggered spell id dependent on riding skill and zone bool canFly = false; uint32 map = GetVirtualMapForMapAndZone(target->GetMapId(), target->GetZoneId()); if (map == 530 || (map == 571 && target->HasSpell(SPELL_COLD_WEATHER_FLYING))) canFly = true; --- End code --- After
--- Code: ---// Triggered spell id dependent on riding skill and zone bool canFly = false; uint32 map = GetVirtualMapForMapAndZone(target->GetMapId(), target->GetZoneId()); if (map == 530 || (map == 571 && target->HasSpell(SPELL_COLD_WEATHER_FLYING) || (map == 869 && target->HasSpell(SPELL_OSHOTH_FLYING)))) canFly = true; --- End code ---
What happons (Without or With spell) You mount but you dismount when you change Area. The Spell Should be Required but it still mounts if you don't have.
MapID: 869 Spell: 93333
schlumpf:
--- Quote from: "Nupper" ---Changes Made Player.cpp
--- Code: ---bool Player::CanFlyInZone(uint32 mapid, uint32 zone) const { // continent checked in SpellInfo::CheckLocation at cast and area update uint32 v_map = GetVirtualMapForMapAndZone(mapid, zone); return v_map != 571 || HasSpell(54197); // 54197 = Cold Weather Flying return v_map != 869 || HasSpell(93333); // 93333 = Flight Master's License } --- End code ---
--- End quote --- You return twice. This can't be correct. Haven't read the other changes. Also, prefer posting changes as diff, not just how the new file looks. People usually don't know how it looked before, so spotting your changes is hard.
Nupper:
--- Quote from: "schlumpf" --- --- Quote from: "Nupper" ---Changes Made Player.cpp
--- Code: ---bool Player::CanFlyInZone(uint32 mapid, uint32 zone) const { // continent checked in SpellInfo::CheckLocation at cast and area update uint32 v_map = GetVirtualMapForMapAndZone(mapid, zone); return v_map != 571 || HasSpell(54197); // 54197 = Cold Weather Flying return v_map != 869 || HasSpell(93333); // 93333 = Flight Master's License } --- End code ---
--- End quote --- You return twice. This can't be correct. Haven't read the other changes. Also, prefer posting changes as diff, not just how the new file looks. People usually don't know how it looked before, so spotting your changes is hard. --- End quote ---
Updated.
schlumpf:
You still return twice. Also,
--- Code: ---if (map == 530 || (map == 571 && target->HasSpell(SPELL_COLD_WEATHER_FLYING) || (map == 869 && target->HasSpell(SPELL_OSHOTH_FLYING)))) --- End code ---
has the new condition inserted at the wrong place making it
--- Code: ---expansion01|| (northrend && has_coldweather || (your_map && has_your_spell)) --- End code ---
Nupper:
--- Quote from: "schlumpf" ---You still return twice. Also,
--- Code: ---if (map == 530 || (map == 571 && target->HasSpell(SPELL_COLD_WEATHER_FLYING) || (map == 869 && target->HasSpell(SPELL_OSHOTH_FLYING)))) --- End code ---
has the new condition inserted at the wrong place making it
--- Code: ---expansion01|| (northrend && has_coldweather || (your_map && has_your_spell)) --- End code ---
--- End quote ---
How do i make it not return twice.
Navigation
[0] Message Index
[#] Next page
|