Jump to content

stealthfox

Members
  • Posts

    17
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

stealthfox's Achievements

Member

Member (2/3)

0

Reputation

  1. Mutilate is only adding at most 150 weapon damage to mainhand and some of it gets blocked occasionally. Its a combination of issues.
  2. This patch works good enough.
  3. wow...ya that would definitely fix an error. I can't believe that got in there in the first place.
  4. Count is some number between 7 and 10 or through some strange calculation its a number around 17. Unit.cpp int32 level = int32(getLevel()); if (level > (int32)spellProto->maxLevel && spellProto->maxLevel > 0) level = (int32)spellProto->maxLevel; else if (level < (int32)spellProto->baseLevel) level = (int32)spellProto->baseLevel; level-= (int32)spellProto->spellLevel; float basePointsPerLevel = spellProto->EffectRealPointsPerLevel[effect_index]; float randomPointsPerLevel = spellProto->EffectDicePerLevel[effect_index]; int32 basePoints = int32(effBasePoints + level * basePointsPerLevel); int32 randomPoints = int32(spellProto->EffectDieSides[effect_index] + level * randomPointsPerLevel); float comboDamage = spellProto->EffectPointsPerComboPoint[effect_index]; // range can have possitive and negative values, so order its for irand int32 randvalue = int32(spellProto->EffectBaseDice[effect_index]) >= randomPoints ? irand(randomPoints, int32(spellProto->EffectBaseDice[effect_index])) : irand(int32(spellProto->EffectBaseDice[effect_index]), randomPoints); int32 value = basePoints + randvalue; This is the formula used to generate the 7 to 10. Unit.cpp if(spellProto->Attributes & SPELL_ATTR_LEVEL_DAMAGE_CALCULATION && spellProto->spellLevel && spellProto->Effect[effect_index] != SPELL_EFFECT_WEAPON_PERCENT_DAMAGE && spellProto->Effect[effect_index] != SPELL_EFFECT_KNOCK_BACK && (spellProto->Effect[effect_index] != SPELL_EFFECT_APPLY_AURA || spellProto->EffectApplyAuraName[effect_index] != SPELL_AURA_MOD_DECREASE_SPEED)) value = int32(value*0.25f*exp(getLevel()*(70-spellProto->spellLevel)/1000.0f)); The above would generate the 17.
  5. I got my new laptop this week and I'm currently installing all the files and setting it all up. I'll start testing once its all set up correctly. I think it has to do with trigger spells and the triggerspell method but I'm not positive. Edit: I've done some testing and the problem lies in the triggered spells. Mutilate is correctly triggering the mainhand and offhand weapondamage spell, BUT those spells are doing incorrect damage. The next step is to figure out how those spells are being called and what information they are getting to give off incorrect weapon damage. So, the problem is not in the triggerspell method. I think that it may be how the triggered spells are being read. The spell effect of weapon damage is stored in the array Effect[] when it is read off of the DBC file. There are no references to Mutilate outside of the normal system, thus it is being called through the normal method and is using the array Effect[] to calculate its weapon damage. NOTE: Under further investigation, I have found that the two triggered spells have a SpellEffect ID of 0. What this means is that according to our system, the triggered spells are not calculating the WeaponDamage but are doing something else. I'm gonna keep searching to see what they are actually doing. The problem is either during the call when the weapon damage is being calculated or it is a deeply nested problem.
  6. Sorry all I haven't been working on this too much. School started for me and I'm waiting for a laptop I just ordered to come in (my compile times are really long right now like 30+ min). So...once my laptop comes in I'll be able to test and debug and fix a lot quicker...until then, I guess I can't do much to help.
  7. I'm trying to determine whether Mutilate is a spell that triggers 2 more spells or if it just adds weapon damage to a melee strike. Also, I'm unsure whether all of the damage information is contained within the Spell.dbc file or if there needs to be external coding to adjust for missing damage calculations. If it is all within the Spell.dbc file then I think it would be best and easiest to trigger the other 2 spells linked to Mutilate. I think as well that all of the Mutilate spell ranks are linked to 2 other spells. I'm not that knowledgeable of the Mangos core so some help on how EffectTriggerSpell(uint32 effIndex) functions would be appreciated. It would seem that Mutilate adds additional non-armor reduced damage and in order to create that effect it would have to be pure damage, not weapon damage. I'm going to play around w/ the coding to see if I get any results.
  8. 32768. Built-in windows xp calculator can convert hexadecimal to decimal (0x???? to normal numbers).
  9. If anyone knows where the code for Mutilate is located within the source files, please post the location.
  10. Hmm...under further review you are correct. The offhand weapon damage should be 60+ higher without Dual Wield Specialization and even more with it. http://www.wowwiki.com/Mutilate Notice the formula portion - "Offhand Base Damage = (Base Damage * Offhand Reduction) + ( Mutilate Bonus Damage * (1 + (.1 * Dual Wield Specialization Rank)))" and also - The formula above has been changed to reflect what actually happens regarding offhand damage. Previously, the Mutilate Bonus Damage was listed as being reduced by the offhand penalty. However, it is in fact not reduced by the offhand penalty. Also, not only is the bonus damage not reduced, 5/5 DW Specialization increases it by 50%. This means the offhand bonus ends up being 101 if you don't have DW Specialization, and 151.5 if you have 5/5 DW Specialization. Now if I only knew where the actual spell code is located...it should be an easy fix.
  11. Using Mangos rev 9045 I tested Mutilate rank 6 using a lvl 80 Human Rogue w/ only Worn Daggers against mobs in the Booty Bay area. Without any talents or spells, mainhand dealt 43-45 dmg and offhand dealt 22-23 more or less. Without any talents or poisons, Mutilate dealt 245 main hand and 125-130 off hand more or less. With Dual Wield Specialization, Mutilate dealt 245 main hand and 185 off hand more or less. So, the formula for Mutilate under Mangos is 100% weapon damage for main hand + 181 weapon damage (Mutilate rank 6) before armor reduction and 100% weapon damage off hand + 90-91 weapon damage (without Dual Wield Specialization) or 181 / 10 * rank of Dual Wield Specialization (in the test I had 50% increased off hand weapon damage from Dual Wield Specialization). Now for poison test. I used Deadly Poison I on both weapons and applied the poison using Shiv. The poison increased the weapon damage by the 20% that it was supposed to using Mutilate. Conclusion, the formula for Mutilate is accurate. The weapon damage or the armor reduction may be off, but Mutilate works like it should. The bugs for Rogue talents lie in Cold Blood and Seal Fate. Cold Blood doesn't proc a critical strike on the offhand weapon and Seal Fate does not add the extra combo point. [Edit:] I searched the source code and the main files don't even reference Cold Blood. Also, this is what resulted for Seal Fate: Unit.cpp bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const *procSpell, uint32 procFlags, uint32 procEx, uint32 cooldown) { ... // Finish movies that add combo case 14189: // Seal Fate (Netherblade set) case 14157: // Ruthlessness { // Need add combopoint AFTER finish movie (or they dropped in finish phase) break; } ... } The above code is NOT a FIX or a PATCH.
  12. Please read the post before replying too early. My post wasn't a FIX or a PATCH or anything. I simply posted the ACTUAL CODE that is in Mangos rev 9045 so that the community can see where the problem is located and so they can help fix the problem.
  13. If any of you want to try and fix it here is the code: Mangos Rev 9045 SpellEffects.cpp void Spell::EffectWeaponDmg(uint32 i) { ... case SPELLFAMILY_ROGUE: { // Mutilate (for each hand) if(m_spellInfo->SpellFamilyFlags & UI64LIT(0x600000000)) { bool found = false; // fast check if(unitTarget->HasAuraState(AURA_STATE_DEADLY_POISON)) found = true; // full aura scan else { Unit::AuraMap const& auras = unitTarget->GetAuras(); for(Unit::AuraMap::const_iterator itr = auras.begin(); itr!=auras.end(); ++itr) { if(itr->second->GetSpellProto()->Dispel == DISPEL_POISON) { found = true; break; } } } [b] if(found) totalDamagePercentMod *= 1.2f; // 120% if poisoned[/b] } ... } The other code just checks to see if the unit is behind the target. [Edit:] I can't seem to find any more information from the source files on Mutilate...so I guess this is it. Seems the poison should work if the poison/aura check is working properly. I see a lot of people complaining about Mutilate. I'm new to source code development in Mangos so I don't know how much help I can give, but it would be nice if Mutilate got fixed.
  14. I believe ubuntu supports gcc and you should be able to get it through your package manager.
×
×
  • 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