Jump to content

qsa

Members
  • Posts

    289
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Everything posted by qsa

  1. Just letting you know there is problem applying this patch and there's a typo. *i --> *itr on 37th line Other than this looks fine. thanks
  2. Thanks for this one, I always wondered is those work. Been too lazy to actually check. Will sure test.
  3. In this case, thanks to QAston. Altho shame on him for implementing this inside item getting code.
  4. Description of the bug? Implementing auras : 254 SPELL_AURA_MOD_DISARM_SHIELD 278 SPELL_AURA_MOD_DISARM_RANGED. For which repository revision was the patch created? 8071 Well, basically title says it all, implementing two disarm related auras used in various spells. I tried to keep the changes to minimal and use already defined methods. IsUseEquipedWeapon() had to be used to Unit class ( from Player ), it just more logical place for it. Some names are little bit misleading since SPELL_AURA_MOD_DISARM_SHIELD also effects off-hand weapons. The aura flags are taken from some patch I've found on my hdd. Not sure where it came from or who are the original creators. Thanks guys, guessing those flags is a nasty job you made my part so much easier . commit b623c1b2113e269338fb01a114dc3930a05dce38 Author: sixsixnine <[email protected]> Date: Thu Jun 25 18:40:11 2009 +0300 + Implementing auras : 254 SPELL_AURA_MOD_DISARM_SHIELD and 278 SPELL_AURA_MOD_DISARM_RANGED. + Moved IsUseEquipedWeapon() to Unit class. ( should be renamed ) Signed-off-by: sixsixnine <[email protected]> diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 5f9d114..77477f9 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -6683,7 +6683,7 @@ void Player::_ApplyItemBonuses(ItemPrototype const *proto, uint8 slot, bool appl ApplyFeralAPBonus(feral_bonus, apply); } - if(!IsUseEquipedWeapon(slot==EQUIPMENT_SLOT_MAINHAND)) + if(!IsUseEquipedWeapon(attType)) return; if (proto->Delay) @@ -8524,7 +8524,7 @@ Item* Player::GetWeaponForAttack(WeaponAttackType attackType, bool useable) cons if(!useable) return item; - if( item->IsBroken() || !IsUseEquipedWeapon(attackType==BASE_ATTACK) ) + if( item->IsBroken() || !IsUseEquipedWeapon(attackType) ) return NULL; return item; @@ -8539,7 +8539,7 @@ Item* Player::GetShield(bool useable) const if(!useable) return item; - if( item->IsBroken()) + if( item->IsBroken() || !IsUseEquipedWeapon(OFF_ATTACK)) return NULL; return item; diff --git a/src/game/Player.h b/src/game/Player.h index 5da208a..67849a7 100644 --- a/src/game/Player.h +++ b/src/game/Player.h @@ -1117,11 +1117,6 @@ class MANGOS_DLL_SPEC Player : public Unit void AddArmorProficiency(uint32 newflag) { m_ArmorProficiency |= newflag; } uint32 GetWeaponProficiency() const { return m_WeaponProficiency; } uint32 GetArmorProficiency() const { return m_ArmorProficiency; } - bool IsUseEquipedWeapon( bool mainhand ) const - { - // disarm applied only to mainhand weapon - return !IsInFeralForm() && (!mainhand || !HasFlag(UNIT_FIELD_FLAGS,UNIT_FLAG_DISARMED) ); - } bool IsTwoHandUsed() const { Item* mainItem = GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND); diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index b27873f..ad677c5 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -306,7 +306,7 @@ pAuraHandler AuraHandler[TOTAL_AURAS]= &Aura::HandleNULL, //251 SPELL_AURA_MOD_ENEMY_DODGE &Aura::HandleNULL, //252 haste all? &Aura::HandleNULL, //253 SPELL_AURA_MOD_BLOCK_CRIT_CHANCE - &Aura::HandleNULL, //254 SPELL_AURA_MOD_DISARM_SHIELD disarm Shield + &Aura::HandleAuraModDisarm, //254 SPELL_AURA_MOD_DISARM_SHIELD disarm Shield/offhand &Aura::HandleNoImmediateEffect, //255 SPELL_AURA_MOD_MECHANIC_DAMAGE_TAKEN_PERCENT implemented in Unit::SpellDamageBonus &Aura::HandleNoReagentUseAura, //256 SPELL_AURA_NO_REAGENT_USE Use SpellClassMask for spell select &Aura::HandleNULL, //257 SPELL_AURA_MOD_TARGET_RESIST_BY_SPELL_CLASS Use SpellClassMask for spell select @@ -330,7 +330,7 @@ pAuraHandler AuraHandler[TOTAL_AURAS]= &Aura::HandleNoImmediateEffect, //275 SPELL_AURA_MOD_IGNORE_SHAPESHIFT Use SpellClassMask for spell select &Aura::HandleNULL, //276 mod damage % mechanic? &Aura::HandleNoImmediateEffect, //277 SPELL_AURA_MOD_MAX_AFFECTED_TARGETS Use SpellClassMask for spell select - &Aura::HandleNULL, //278 SPELL_AURA_MOD_DISARM_RANGED disarm ranged weapon + &Aura::HandleAuraModDisarm, //278 SPELL_AURA_MOD_DISARM_RANGED disarm ranged weapon &Aura::HandleNULL, //279 visual effects? 58836 and 57507 &Aura::HandleNULL, //280 SPELL_AURA_MOD_TARGET_ARMOR_PCT &Aura::HandleNULL, //281 SPELL_AURA_MOD_HONOR_GAIN @@ -3511,14 +3511,43 @@ void Aura::HandleAuraModDisarm(bool apply, bool Real) if(!Real) return; - if(!apply && m_target->HasAuraType(SPELL_AURA_MOD_DISARM)) + if(!apply && m_target->HasAuraType(GetModifier()->m_auraname)) return; - // not sure for it's correctness + uint32 flags = 0; + uint32 field = 0; + WeaponAttackType attack_type = BASE_ATTACK; + uint32 slot = EQUIPMENT_SLOT_OFFHAND; + + switch (GetModifier()->m_auraname) + { + case SPELL_AURA_MOD_DISARM: + { + field = UNIT_FIELD_FLAGS; + flags = UNIT_FLAG_DISARMED; + slot = EQUIPMENT_SLOT_MAINHAND; + } + break; + case SPELL_AURA_MOD_DISARM_SHIELD: + { + field = UNIT_FIELD_FLAGS_2; + flags = UNIT_FLAG2_DISARM_OFFHAND; + attack_type = OFF_ATTACK; + } + break; + case SPELL_AURA_MOD_DISARM_RANGED: + { + field = UNIT_FIELD_FLAGS_2; + flags = UNIT_FLAG2_DISARM_RANGED; + attack_type = OFF_ATTACK; + } + break; + } + if(apply) - m_target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED); + m_target->SetFlag(field, flags); else - m_target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED); + m_target->RemoveFlag(field, flags); // only at real add/remove aura if (m_target->GetTypeId() != TYPEID_PLAYER) @@ -3529,11 +3558,14 @@ void Aura::HandleAuraModDisarm(bool apply, bool Real) return; if (apply) - m_target->SetAttackTime(BASE_ATTACK,BASE_ATTACK_TIME); + m_target->SetAttackTime(attack_type, BASE_ATTACK_TIME); else ((Player *)m_target)->SetRegularAttackTime(); - m_target->UpdateDamagePhysical(BASE_ATTACK); + if(Item *_item = ((Player*)m_target)->GetItemByPos( INVENTORY_SLOT_BAG_0, slot )) + ((Player*)m_target)->_ApplyItemMods(_item, slot, !apply); + + m_target->UpdateDamagePhysical(attack_type); } void Aura::HandleAuraModStun(bool apply, bool Real) diff --git a/src/game/StatSystem.cpp b/src/game/StatSystem.cpp index a37627f..cae5dc0 100644 --- a/src/game/StatSystem.cpp +++ b/src/game/StatSystem.cpp @@ -430,7 +430,7 @@ void Player::CalculateMinMaxDamage(WeaponAttackType attType, bool normalized, bo weapon_mindamage = lvl*0.85*att_speed; weapon_maxdamage = lvl*1.25*att_speed; } - else if(!IsUseEquipedWeapon(attType==BASE_ATTACK)) //check if player not in form but still can't use weapon (broken/etc) + else if(!IsUseEquipedWeapon(attType)) //check if player not in form but still can't use weapon (broken/etc) { weapon_mindamage = BASE_MINDAMAGE; weapon_maxdamage = BASE_MAXDAMAGE; diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 636c3ff..31fa896 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -224,6 +224,9 @@ void Unit::Update( uint32 p_time ) bool Unit::haveOffhandWeapon() const { + if (!IsUseEquipedWeapon(OFF_ATTACK)) + return false; + if(GetTypeId() == TYPEID_PLAYER) return ((Player*)this)->GetWeaponForAttack(OFF_ATTACK,true); else @@ -2918,7 +2921,7 @@ float Unit::GetUnitBlockChance() const if(GetTypeId() == TYPEID_PLAYER) { Player const* player = (Player const*)this; - if(player->CanBlock() ) + if(player->CanBlock() && player->IsUseEquipedWeapon(OFF_ATTACK)) { Item *tmpitem = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND); if(tmpitem && !tmpitem->IsBroken() && tmpitem->GetProto()->Block) @@ -11914,7 +11917,7 @@ bool Unit::IsTriggeredAtSpellProcEvent(Unit *pVictim, Aura* aura, SpellEntry con else item = ((Player*)this)->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_RANGED); - if (!((Player*)this)->IsUseEquipedWeapon(attType==BASE_ATTACK)) + if (!IsUseEquipedWeapon(attType)) return false; if(!item || item->IsBroken() || item->GetProto()->Class != ITEM_CLASS_WEAPON || !((1<<item->GetProto()->SubClass) & spellProto->EquippedItemSubClassMask)) @@ -11924,7 +11927,7 @@ bool Unit::IsTriggeredAtSpellProcEvent(Unit *pVictim, Aura* aura, SpellEntry con { // Check if player is wearing shield Item *item = ((Player*)this)->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND); - if(!item || item->IsBroken() || item->GetProto()->Class != ITEM_CLASS_ARMOR || !((1<<item->GetProto()->SubClass) & spellProto->EquippedItemSubClassMask)) + if(!item || item->IsBroken() || !IsUseEquipedWeapon(OFF_ATTACK) || item->GetProto()->Class != ITEM_CLASS_ARMOR || !((1<<item->GetProto()->SubClass) & spellProto->EquippedItemSubClassMask)) return false; } } diff --git a/src/game/Unit.h b/src/game/Unit.h index cbfbde3..04d609b 100644 --- a/src/game/Unit.h +++ b/src/game/Unit.h @@ -531,6 +531,8 @@ enum UnitFlags2 UNIT_FLAG2_UNK1 = 0x00000002, // Hide unit model (show only player equip) UNIT_FLAG2_COMPREHEND_LANG = 0x00000008, UNIT_FLAG2_FORCE_MOVE = 0x00000040, + UNIT_FLAG2_DISARM_OFFHAND = 0x00000080, + UNIT_FLAG2_DISARM_RANGED = 0x00000400, UNIT_FLAG2_REGENERATE_POWER = 0x00000800 }; @@ -899,6 +901,24 @@ class MANGOS_DLL_SPEC Unit : public WorldObject uint32 getAttackTimer(WeaponAttackType type) const { return m_attackTimer[type]; } bool isAttackReady(WeaponAttackType type = BASE_ATTACK) const { return m_attackTimer[type] == 0; } bool haveOffhandWeapon() const; + bool IsUseEquipedWeapon( WeaponAttackType attackType ) const + { + bool disarmed = false; + switch(attackType) + { + case BASE_ATTACK: + disarmed = HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED); + break; + case OFF_ATTACK: + disarmed = HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_DISARM_OFFHAND); + break; + case RANGED_ATTACK: + disarmed = HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_DISARM_RANGED); + break; + } + + return !IsInFeralForm() && !disarmed; + } bool canReachWithAttack(Unit *pVictim) const; uint32 m_extraAttacks; http://paste2.org/p/284693 Take care.
  5. I'm pretty sure those are posted automatically. Anyway, adding similar assert. (removed not interesting threads ) mangos rev : 7973 ( bit old, I know ) warning: Can't read pathname for load map: Input/output error. Core was generated by `...r/bin/mangos-worldd'. Program terminated with signal 6, Aborted. Thread 1 (process 21843): #0 0x00007f3dcbcf2095 in raise () from /lib/libc.so.6 No symbol table info available. #1 0x00007f3dcbcf3af0 in abort () from /lib/libc.so.6 No symbol table info available. #2 0x00007f3dcbceb2df in __assert_fail () from /lib/libc.so.6 No symbol table info available. #3 0x00000000007c37cf in Bag::StoreItem (this=0x7f3db7bd4560, slot=39 '\\'', pItem=0x7f3da9f6ba60) at ../../../src/game/Bag.cpp:150 __PRETTY_FUNCTION__ = "void Bag::StoreItem(uint8, Item*, bool)" #4 0x00000000006be4e7 in Player::_StoreItem (this=0x7f3db6ff6d70, pos=4903, pItem=0x7f3da9f6ba60, count=1, clone=false, update=255) at ../../../src/game/Player.cpp:10359 pBag = (class Bag *) 0x552d bag = 19 '\\023' slot = 39 '\\'' pItem2 = <value optimized out> #5 0x00000000006be809 in Player::StoreItem (this=0x7f3db6ff6d70, dest=@0x42dc8f50, pItem=0x7f3da9f6ba60, update=<value optimized out>) at ../../../src/game/Player.cpp:10297 pos = 21843 count = 4294967295 lastItem = (class Item *) 0x7f3da9f6ba60 entry = 2901 #6 0x00000000006e691d in Player::BuyItemFromVendor (this=0x7f3db6ff6d70, vendorguid=<value optimized out>, item=2901, count=<value optimized out>, bagguid=<value optimized out>, slot=39 '\\'') at ../../../src/game/Player.cpp:17445 it = <value optimized out> dest = {<std::_Vector_base<ItemPosCount,std::allocator<ItemPosCount> >> = { _M_impl = {<std::allocator<ItemPosCount>> = {<__gnu_cxx::new_allocator<ItemPosCount>> = {<No data fields>}, <No data fields>}, _M_start = 0x7f3da1910b20, _M_finish = 0x7f3da1910b28, _M_end_of_storage = 0x7f3da1910b28}}, <No data fields>} pCreature = (class Creature *) 0x7f3dba308ea0 vItems = <value optimized out> vendor_slot = 1 crItem = (const VendorItem *) 0x7f3dc0ff50f0 price = 68 #7 0x00000000007afe45 in WorldSession::Update (this=0x5e20550) at ../../../src/game/WorldSession.cpp:207 packet = (WorldPacket *) 0x7f3da7f1f710 currTime = <value optimized out> #8 0x00000000007a7353 in World::UpdateSessions (this=0xc3ac00, diff=195) at ../../../src/game/World.cpp:2717 next = {_M_cur = 0x7f3db6b14100, _M_ht = 0xc3acb8} #9 0x00000000007a7a74 in World::Update (this=0xc3ac00, diff=195) at ../../../src/game/World.cpp:1521 No locals. #10 0x0000000000507fad in WorldRunnable::run (this=<value optimized out>) at ../../../src/mangosd/WorldRunnable.cpp:65 diff = 195 realCurrTime = 309037645 realPrevTime = <value optimized out> prevSleepTime = 50 #11 0x000000000085f44a in ACE_Based::Thread::ThreadTask (param=0x552d) at ../../../src/shared/Threading.cpp:159 No locals. #12 0x00007f3dcc7c23f7 in start_thread () from /lib/libpthread.so.0 No symbol table info available. #13 0x00007f3dcbd97b3d in clone () from /lib/libc.so.6 No symbol table info available. #14 0x0000000000000000 in ?? () No symbol table info available. 2009-06-24 15:17:14 ERROR:HandleMoveNotActiveMover: incorrect mover guid: mover is 000000000001FDD9 and should be 000000000001FDD9 instead of 000000000001FDD9 2009-06-24 15:17:15 ERROR:Aura::TriggerSpell: Spell 13810 have 0 in EffectTriggered[1], not handled custom case? 2009-06-24 15:17:15 ERROR:HandleMoveNotActiveMover: incorrect mover guid: mover is 0000000000017322 and should be 0000000000017322 instead of 0000000000017322 2009-06-24 15:17:15 ERROR:HandleMoveNotActiveMover: incorrect mover guid: mover is 0000000000001672 and should be 0000000000001672 instead of 0000000000001672 2009-06-24 15:17:15 ERROR:HandleMoveNotActiveMover: incorrect mover guid: mover is 000000000002473D and should be 000000000002473D instead of 000000000002473D 2009-06-24 15:17:17 ERROR:Aura::TriggerSpell: Spell 13810 have 0 in EffectTriggered[1], not handled custom case? 2009-06-24 15:17:18 ERROR:HandleMoveNotActiveMover: incorrect mover guid: mover is 000000000001620C and should be 000000000001620C instead of 000000000001620C 2009-06-24 15:17:26 ERROR:HandleMoveNotActiveMover: incorrect mover guid: mover is 0000000000016A6D and should be 0000000000016A6D instead of 0000000000016A6D 2009-06-24 15:17:29 ERROR:HandleMoveNotActiveMover: incorrect mover guid: mover is 0000000000011F24 and should be 0000000000011F24 instead of 0000000000011F24 2009-06-24 15:17:29 ERROR:HandleMoveNotActiveMover: incorrect mover guid: mover is 0000000000016F89 and should be 0000000000016F89 instead of 0000000000016F89 2009-06-24 15:17:29 ERROR:HandleMoveNotActiveMover: incorrect mover guid: mover is 000000000002649A and should be 000000000002649A instead of 000000000002649A 2009-06-24 15:17:29 ERROR:HandleMoveNotActiveMover: incorrect mover guid: mover is 000000000002413A and should be 000000000002413A instead of 000000000002413A 2009-06-24 15:17:29 ERROR:HandleMoveNotActiveMover: incorrect mover guid: mover is 0000000000015AB4 and should be 0000000000015AB4 instead of 0000000000015AB4 2009-06-24 15:17:30 ERROR:SESSION: received unexpected opcode CMSG_GUILD_ROSTER (0x0089) the player has not logged in yet 2009-06-24 15:17:31 ERROR:HandleMoveNotActiveMover: incorrect mover guid: mover is 000000000001620C and should be 000000000001620C instead of 000000000001620C 2009-06-24 15:17:31 ERROR:HandleMoveNotActiveMover: incorrect mover guid: mover is 00000000000056C3 and should be 00000000000056C3 instead of 00000000000056C3 2009-06-24 15:17:31 ERROR:HandleMoveNotActiveMover: incorrect mover guid: mover is 0000000000017444 and should be 0000000000017444 instead of 0000000000017444 2009-06-24 15:17:31 ERROR:HandleMoveNotActiveMover: incorrect mover guid: mover is 0000000000024B20 and should be 0000000000024B20 instead of 0000000000024B20 2009-06-24 15:17:31 ERROR:HandleMoveNotActiveMover: incorrect mover guid: mover is 0000000000024743 and should be 0000000000024743 instead of 0000000000024743 2009-06-24 15:17:31 ERROR:HandleMoveNotActiveMover: incorrect mover guid: mover is 0000000000026767 and should be 0000000000026767 instead of 0000000000026767 2009-06-24 15:17:31 ERROR:HandleMoveNotActiveMover: incorrect mover guid: mover is 00000000000036F9 and should be 00000000000036F9 instead of 00000000000036F9 2009-06-24 15:17:31 ERROR:HandleMoveNotActiveMover: incorrect mover guid: mover is 0000000000016FC0 and should be 0000000000016FC0 instead of 0000000000016FC0 2009-06-24 15:17:31 ERROR:HandleMoveNotActiveMover: incorrect mover guid: mover is 0000000000026392 and should be 0000000000026392 instead of 0000000000026392 2009-06-24 15:17:32 ERROR:SPELL: wrong map (0 instead 530) target coordinates for spell ID 17334 2009-06-24 15:17:47 ERROR:SPELL: wrong map (530 instead 546) target coordinates for spell ID 35715 2009-06-24 15:17:53 ERROR:SESSION: received unexpected opcode CMSG_CONTACT_LIST (0x0066) the player has not logged in yet 2009-06-24 15:17:58 ERROR:HandleMoveNotActiveMover: incorrect mover guid: mover is 0000000000016849 and should be 0000000000016849 instead of 0000000000016849 2009-06-24 15:18:00 ERROR:Summoned pet (Entry: 18201) not have pet stats data in DB 2009-06-24 15:18:14 ERROR:Auras: Unknown Shapeshift Type: 15 2009-06-24 15:18:20 ERROR:SCRIPT_COMMAND_FIELD_SET call for wrong field 159 (max count: 148) in object (TypeId: 3). 2009-06-24 15:18:28 ERROR:Table `game_graveyard_zone` incomplete: Zone 3702 Team 67 does not have a linked graveyard. 2009-06-24 15:18:34 ERROR:HandleMoveNotActiveMover: incorrect mover guid: mover is 0000000000016849 and should be 0000000000016849 instead of 0000000000016849 2009-06-24 15:18:34 ERROR:HandleMoveNotActiveMover: incorrect mover guid: mover is 000000000002568C and should be 000000000002568C instead of 000000000002568C 2009-06-24 15:18:34 ERROR:HandleMoveNotActiveMover: incorrect mover guid: mover is 00000000000175C4 and should be 00000000000175C4 instead of 00000000000175C4 2009-06-24 15:18:54 ERROR:CreatureEventAI: Event 2050102 ACTION_T_UPDATE_TEMPLATE call with param1 == current entry. Creature 20806 2009-06-24 15:18:59 ERROR:HandleMoveNotActiveMover: incorrect mover guid: mover is 0000000000017322 and should be 0000000000017322 instead of 0000000000017322 2009-06-24 15:19:00 ERROR:HandleMoveNotActiveMover: incorrect mover guid: mover is 0000000000021F30 and should be 0000000000021F30 instead of 0000000000021F30 2009-06-24 15:19:00 ERROR:HandleMoveNotActiveMover: incorrect mover guid: mover is 000000000002473D and should be 000000000002473D instead of 000000000002473D 2009-06-24 15:19:03 ERROR:Gameobject (GUID: 470300 Entry: 184839) not created: it have not exist entry in `gameobject_template`. Map: 530 (X: 3158.319580 Y: 7050.047363 Z: 161.337982) ang: 5.031782 rotation0: 0.000000 rotation1: 0.000000 rotation2: 0.000000 rotation3: 0.000000 2009-06-24 15:19:08 ERROR:Gameobject (GUID: 470305 Entry: 184839) not created: it have not exist entry in `gameobject_template`. Map: 530 (X: 3158.244873 Y: 7054.952148 Z: 161.406158) ang: 5.267402 rotation0: 0.000000 rotation1: 0.000000 rotation2: 0.000000 rotation3: 0.000000 EDIT: nevermind, i've been under the rock for awhile, I think this issue was resolved in layer revision. sorry
  6. Tested, look fine. 10h not yet encountered this sort of problems. Thank you very much.
  7. mangos revision 7940 Adding some crash logs which are unique after 9704 ( I assume either 7911 or 7929 ) I'm pretty sure its the buffer changes at 7911 in object.cpp Problem may be thats ByteBuffer wont resize properly at reaching reserved capacity? We might have this problem before, but since initial buffer was larger ( 10 times ) resize wasn't ever used. Or change at UpdateData::BuildPacket/UpdateData::Compress ? http://filebeam.com/9e5b0b480131ba1760c6c9213c700a4e Take care.
  8. I think you miss Lifebloom (0x1000000000LL) right there. Haven't tested yet, but looks fine to me.
  9. Anyone beside me noticed this bug or ..?
  10. I think I found the problem. My auto-compile script. Apparently I was using non-patched core while using new maps. I totally did not expect it. But apparently they ( new maps ) are loaded "just fine" by old core. For now it looks fine. My bad really, sorry As soon as i gather some proper logs I post them. Sorry again. PS: can be nice idea adding check just like for dbc files, preventing load. Just for silly bunnies like me. Im pretty sure extractor version is stored in map file headers. PSS: Thanks.
  11. Not like this. Adding below about 5 minutes worth of runtime on local (single client) using those maps ( extracted from 308a client ). Extractor used is one compiled locally using the provided patch. http://pastebin.com/m3de317c4 Using the old maps I do get the warning once in a while, but clearly not like this. I will re-extract using the extractor added in last rev. and retest, reporting the result. Take care.
  12. There are few problems I'v noticed using those maps. - Movement generators random/confused etc seems to be almost totally screwed. - Blink and alike totally not usable. Under valgring I'm getting a lot of "Conditional jump or move depends on uninitialised value(s)" related to various map related calculations. My guess is that those maps aren't properly loaded by the server. Take care.
  13. What bug does the patch fix? What features does the patch add? Vampiric Touch uses old, pre-wotlk formula/trigger spell. For which SubVersion revision was the patch created? 7201 Who has been writing this patch? Please include either forum user names or email addresses. myself ( entire line of code ) diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 4d93544..690fb5e 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -5004,10 +5004,8 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu if(triggeredByAura->GetCasterGUID() != pVictim->GetGUID()) return false; - // energize amount - basepoints0 = triggerAmount*damage/100; - pVictim->CastCustomSpell(pVictim,34919,&basepoints0,NULL,NULL,true,castItem,triggeredByAura); - return true; // no hidden cooldown + pVictim->CastSpell(pVictim,57669,true,castItem,triggeredByAura); + return true; // no hidden cooldown } // Divine Aegis if (dummySpell->SpellIconID == 2820) Take care.
×
×
  • 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