Jump to content

DENNO

Members
  • Posts

    12
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Everything posted by DENNO

  1. Can here so. http://paste2.org/p/1875109
  2. In 3.3.5 spell 19574 and 34471 it is obliged remove all effects controls, with pet and owner.
  3. http://ru-mangos.ru/showthread.php?t=4334&highlight=70718
  4. Try here so: DELETE FROM `spell_proc_event` WHERE `entry` IN (51698, 51700, 51701); INSERT INTO `spell_proc_event` VALUES (51698, 0x7F, 8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000002, 0.000000, 0.000000, 3), (51700, 0x7F, 8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000002, 0.000000, 0.000000, 3), (51701, 0x7F, 8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000002, 0.000000, 0.000000, 3);
  5. For 11426 revision. diff --git a/src/game/AuctionHouseMgr.cpp b/src/game/AuctionHouseMgr.cpp diff --git a/src/game/MapManager.cpp b/src/game/MapManager.cpp index cece28f..5930b1e 100644 --- a/src/game/MapManager.cpp +++ b/src/game/MapManager.cpp @@ -173,11 +173,14 @@ bool MapManager::CanPlayerEnter(uint32 mapid, Player* player) Group* group = player->GetGroup(); if (!group || !group->isRaidGroup()) { - // probably there must be special opcode, because client has this string constant in GlobalStrings.lua - // TODO: this is not a good place to send the message - player->GetSession()->SendAreaTriggerMessage("You must be in a raid group to enter %s instance", mapName); - DEBUG_LOG("MAP: Player '%s' must be in a raid group to enter instance of '%s'", player->GetName(), mapName); - return false; + if (player->isAlive()) // no area message for ghost player + { + // probably there must be special opcode, because client has this string constant in GlobalStrings.lua + // TODO: this is not a good place to send the message + player->GetSession()->SendAreaTriggerMessage("You must be in a raid group to enter %s instance", mapName); + DEBUG_LOG("MAP: Player '%s' must be in a raid group to enter instance of '%s'", player->GetName(), mapName); + return false; + } } } } diff --git a/src/game/MiscHandler.cpp b/src/game/MiscHandler.cpp index d03cb8f..3d70e41 100644 --- a/src/game/MiscHandler.cpp +++ b/src/game/MiscHandler.cpp @@ -806,6 +806,49 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPacket & recv_data) GetPlayer()->SendTransferAborted(at->target_mapId, TRANSFER_ABORT_DIFFICULTY, GetPlayer()->GetDifficulty(mapEntry->IsRaid())); return; } + + // ressurect to teleport in instance + if (mapEntry->IsDungeon() || mapEntry->IsRaid()) + { + if (!GetPlayer()->isAlive()) + { + Group* group = GetPlayer()->GetGroup(); + Corpse* corpse = GetPlayer()->GetCorpse(); + uint32 corpsemapid = corpse->GetMapId(); + MapEntry const* corpseMapEntry = sMapStore.LookupEntry(corpsemapid); + + if (group) + { + if (corpsemapid != GetPlayer()->GetMapId()) + { + if (corpseMapEntry->IsDungeon() && corpseMapEntry->ghost_entrance_map >= 0) + { + GetPlayer()->ResurrectPlayer(0.5f); + GetPlayer()->SpawnCorpseBones(); + + // not area message + if (!group->isRaidGroup() && mapEntry->IsRaid()) + return; + } + } + } + else + { + if (corpsemapid != GetPlayer()->GetMapId()) + { + if (corpseMapEntry->IsDungeon() && corpseMapEntry->ghost_entrance_map >= 0) + { + GetPlayer()->ResurrectPlayer(0.5f); + GetPlayer()->SpawnCorpseBones(); + + // not area message + if (mapEntry->IsRaid()) + return; + } + } + } + } + } } GetPlayer()->TeleportTo(at->target_mapId, at->target_X, at->target_Y, at->target_Z, at->target_Orientation, TELE_TO_NOT_LEAVE_TRANSPORT); diff --git a/src/game/MovementHandler.cpp b/src/game/MovementHandler.cpp index 7ecd4bd..ea77930 100644 --- a/src/game/MovementHandler.cpp +++ b/src/game/MovementHandler.cpp @@ -169,17 +169,6 @@ void WorldSession::HandleMoveWorldportAckOpcode() GetPlayer()->m_taxi.ClearTaxiDestinations(); } - // resurrect character at enter into instance where his corpse exist after add to map - Corpse *corpse = GetPlayer()->GetCorpse(); - if (corpse && corpse->GetType() != CORPSE_BONES && corpse->GetMapId() == GetPlayer()->GetMapId()) - { - if( mEntry->IsDungeon() ) - { - GetPlayer()->ResurrectPlayer(0.5f); - GetPlayer()->SpawnCorpseBones(); - } - } - if (mInstance) { Difficulty diff = GetPlayer()->GetDifficulty(mEntry->IsRaid()); diff --git a/src/game/Player.cpp b/src/game/Player.cpp index b3bf4c0..d455b41 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -4446,13 +4446,6 @@ void Player::BuildPlayerRepop() // there must be SMSG.STOP_MIRROR_TIMER // there we must send 888 opcode - // the player cannot have a corpse already, only bones which are not returned by GetCorpse - if(GetCorpse()) - { - sLog.outError("BuildPlayerRepop: player %s(%d) already has a corpse", GetName(), GetGUIDLow()); - MANGOS_ASSERT(false); - } - // create a corpse and place it at the player's location Corpse *corpse = CreateCorpse(); if(!corpse)
  6. look Spell.cpp case TARGET_ALL_PARTY_AROUND_CASTER: case TARGET_ALL_PARTY_AROUND_CASTER_2: case TARGET_ALL_PARTY: { switch(m_spellInfo->Id) { case 70893: // Culling the Herd case 53434: // Call of the Wild { if (Unit *owner = m_caster->GetOwner()) targetUnitMap.push_back(owner); break; } default: { FillRaidOrPartyTargets(targetUnitMap, m_caster, m_caster, radius, false, true, true); break; } } break; }
  7. Look in void Aura::HandleModMechanicImmunity(bool apply, bool /*Real*/)
  8. Fixed correct work http://www.wowhead.com/?item=43534 DELETE FROM `spell_proc_event` WHERE `entry` IN (58617); INSERT INTO `spell_proc_event` VALUES (58617, 0x00, 15, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0);
  9. Fixed proc items http://www.wowhead.com/?item=47464 and http://www.wowhead.com/?item=47303 diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 166cbaa..ae04460 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -6541,6 +6541,22 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, Aura* triggeredB // spirit if (GetStat(STAT_SPIRIT) > stat) { trigger_spell_id = 60235;stat = GetStat(STAT_SPIRIT); } } + else if (auraSpellInfo->Id==67771) // Death's Choice (Item Level 258) + { + float stat = 0.0f; + // strength + if (GetStat(STAT_STRENGTH) > stat) { trigger_spell_id = 67773;stat = GetStat(STAT_STRENGTH); } + // agility + if (GetStat(STAT_AGILITY) > stat) { trigger_spell_id = 67772;stat = GetStat(STAT_AGILITY); } + } + else if (auraSpellInfo->Id==67702) // Death's Choise (Item Level 245) + { + float stat = 0.0f; + // strength + if (GetStat(STAT_STRENGTH) > stat) { trigger_spell_id = 67708;stat = GetStat(STAT_STRENGTH); } + // agility + if (GetStat(STAT_AGILITY) > stat) { trigger_spell_id = 67703;stat = GetStat(STAT_AGILITY); } + } //else if (auraSpellInfo->Id==31255) // Deadly Swiftness (Rank 1) //else if (auraSpellInfo->Id==5301) // Defensive State (DND) //else if (auraSpellInfo->Id==13358) // Defensive State (DND)
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use