Jump to content

przemratajczak

Members
  • Posts

    346
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Everything posted by przemratajczak

  1. // Not used for summon? case SPELL_EFFECT_SUMMON_PHANTASM: { //Snake Trap exception if(m_spellInfo->EffectMiscValueB[i] == 2301) break; if(m_caster->GetPetGUID()) return SPELL_FAILED_ALREADY_HAVE_SUMMON; if(m_caster->GetCharmGUID()) return SPELL_FAILED_ALREADY_HAVE_CHARM; break; } this exception enables summon hunters pet and snake trap serpents. I don't know where to find other spells with SPELL_EFFECT_SUMMON_PHANTASM (probably some DBC?) so if the comment given by mangos devs is right and only Snake trap is using it maybe it could be deleted instead creating exception. And also im not sure if this code is safe (tested ingame and works fine) so posted in detached post.
  2. I also have got this crash it is probably somehow related to multithreading. I tried this approach. After this server started crashing somewhere at if (target->processed), and after checking target crashlog became messed i pasted one few post above and in mtmaps thread. we should lookup for solution both multithreading locks and proc triggering code i think.
  3. maybe not the best approach but at least it should work http://www.pastebin.org/71484 -- apply poison triggering spells DELETE FROM creature_template_addon WHERE entry IN (19921,19833); INSERT INTO creature_template_addon VALUES (19921,0,0,0,0,0,'34657 0'), (19833,0,0,0,0,0,'6645 0'); -- make them friendly for each other that they won't attack at stats (player faction) apply UPDATE creature_template SET faction_A = 35, faction_H = 35 WHERE entry IN (19833,19921);
  4. MaNGOS 9088 SD2 1537 UDB 386 crashlog: http://www.pastebin.org/70721 Sorce is probably here: // add HoTs to amount healed in bgs if( pCaster->GetTypeId() == TYPEID_PLAYER ) if( BattleGround *bg = ((Player*)pCaster)->GetBattleGround() ) bg->UpdatePlayerScore(((Player*)pCaster), SCORE_HEALING_DONE, gain); [u]m_target->getHostileRefManager().threatAssist(pCaster, float(gain) * 0.5f, GetSpellProto());[/u] SpellEntry const* spellProto = GetSpellProto(); // heal for caster damage
  5. MaNGOS 9088 SD2 1537 UDB 386 Bug: When Tauren (don't know other races) try to use Barber chair, skin tones are displaied propperly, but cost is always set to 0 and after accepting changes nothing happes. Skin tone remains unchanged. With alliance characters everything is working just fine. Found it while rewrtinting thenecromancer druid skins patch. additionaly there is message in server.log 2010-01-03 03:16:46 ERROR:SESSION: opcode CMSG_ALTER_APPEARANCE (0x0426) have unprocessed tail data (read stop at 12 from 16) 2010-01-03 03:17:04 ERROR:SESSION: opcode CMSG_ALTER_APPEARANCE (0x0426) have unprocessed tail data (read stop at 12 from 16)
  6. MaNGOS 9035 (instider/old) + OpenMP mtmaps UDB 385 SD2 1513 Debian 5 http://www.pastebin.org/70560 http://www.pastebin.org/70561 http://www.pastebin.org/70562 and many more with occurence 1-4h during day when population around ~700, but becoming rare after ~21:00 when pop drops below 400. I think that those are caused by mtmaps but I'm not sure. Previously i suffered of constantly crashing MySQL. Reinstaled and reconf MySQL application that it is working stable now. anyone seen somethong like that?
  7. MaNGOS 9035 (instider/old) + OpenMP mtmaps UDB 385 SD2 1513 http://www.pastebin.org/70560 http://www.pastebin.org/70561 http://www.pastebin.org/70562 and many more with occurence 1-4h during day when population around ~700, but becoming rare after ~21:00 when pop drops below 400. I think that those are caused by mtmaps but I'm not sure. Previously i suffered of constantly crashing MySQL. Reinstaled and reconf MySQL application that it is working stable now.
  8. it is also not procing from effects of Frost Trap. other traps and spells that should proc spell are directly casted by player ( respective shots and traps has has assigned final effect spells) are working fine. Frost trap has assigned spell 63487 which triggers two other spells and thos handle final effects. Maybe this is a clue.
  9. @ up + //Check Caster for combat + if(m_caster->isInCombat() && IsNonCombatSpell(m_spellInfo) && !m_caster->isIgnoreUnitState(m_spellInfo) + && !m_spellInfo->SpellFamilyFlags & SPELLFAMILYFLAG_ROGUE_STEALTH && m_spellInfo->SpellFamilyFlags & SPELLFAMILYFLAG_ROGUE_VANISH) // Vanish hack + return SPELL_FAILED_AFFECTING_COMBAT; there is typo probably, you cannot use !m_spellInfo->SpellFamilyFlags & SPELLFAMILYFLAG_ROGUE_STEALTHas bool. Pobably you meant && !(m_spellInfo->SpellFamilyFlags & SPELLFAMILYFLAG_ROGUE_STEALTH) && (m_spellInfo->SpellFamilyFlags & SPELLFAMILYFLAG_ROGUE_VANISH) ) as to patch V6a Fingers of Frost is not procing from spells that has chilled effect as a proc spell (fo example Ice Armor) on MaNGOS 9088. I know it is kind of offtopic because aura262 effect is working fine ;-)
  10. stop posting players complaints. lookup for real source of problem. what is messed? some kind of spell is not procing? there is effect of this spell that is not handled? auras does not stack? bonus dmg is screwd? than what should be the correct formula? and create detached thread this is closed one. noone will answer.
  11. pasdVn can you update it please? there was some changes in pet handling and merging shown more errors than simple conflicts. I used it on 3.1.3 and could't complain at all. Wish to have it also on 3.2.2a
  12. tested on 9046 with your fix works as intended. Thank you.
  13. MaNGOS 9046 UDB 386 SD2: 1520 Bug: Spell Deterrence has old "in front" requirement. Since 3.2.0 this condition was removed HowToReproduce: 1) Create hunter and learn him spell 19263 2) Find NPC with equal lvl 3) prepare macro for shot spell (or find npc with ranged skill) .cast back 8995 4) cast Deterrence and use macro if you will be faceing npc than shot will miss, else shot will get you HowItShouldWork: Despite of Orientation you should be able to avoid shot proposed fix: I'm c++ begginer and don't know MaNGOS structure enough, but found check for ranged melee attacks that prevents Deterrence from deflecting. Adding exeption restore functionality. diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index dc2e436..f1a4755 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -2694,8 +2694,8 @@ SpellMissInfo Unit::MeleeSpellHitResult(Unit *pVictim, SpellEntry const *spell, // Ranged attack cannot be parry/dodge only deflect if (attType == RANGED_ATTACK) { - // only if in front - if (pVictim->HasInArc(M_PI,this)) + // only if in front except Deterrence + if (pVictim->HasInArc(M_PI,this) || (spell->Attributes == 327696 && spell->AttributesEx & SPELL_ATTR_EX_UNK4)) { int32 deflect_chance = pVictim->GetTotalAuraModifier(SPELL_AURA_DEFLECT_SPELLS)*100; tmp+=deflect_chance; Also spell->Attributes == 327696 && spell->AttributesEx & SPELL_ATTR_EX_UNK4 has Bladestorm and Whirlwind that should also affect all surrounding targets. Maybe more generic fix is needed.
  14. i'm not expert but i was wondering: do those 2 statements are equal? // Mechanic bleed aura state if(GetAllSpellMechanicMask(m_spellProto) & (1 << (MECHANIC_BLEED-1))) m_target->ModifyAuraState(AURA_STATE_BLEEDING, true); // Bleeding aura state if(GetEffectMechanic(m_spellProto, m_effIndex) == MECHANIC_BLEED) m_target->ModifyAuraState(AURA_STATE_BLEEDING, true);
  15. for those who are using insider42/stable updated to rev9046 http://www.sendspace.com/file/rjconb tested vs NPC and works fine
  16. i think trinity formula is wrong. when defense is equal to level*5 healing should be 0. max cup is achieved when defense = level*5+140. so it is not scaling from 0 but between level*5 <=> level*5+140. also cooldown was hacked. there is detached spell that is handling spell cooldown (insider branch code is using it) my sollution (framework based on TC2, diff taken from insiders repo, for clean mangos apply only "+" lines) diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index aec0b52..c4378e9 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -1857,20 +1857,44 @@ void Unit::CalcAbsorbResist(Unit *pVictim,SpellSchoolMask schoolMask, DamageEffe break; } case SPELLFAMILY_PALADIN: - { - // Ardent Defender - if (spellProto->SpellIconID == 2135) - { - // uses 66233 as a cooldown for healing effect - if (!((Player*)pVictim)->HasAura(66233)) - preventDeathSpell = (*i)->GetSpellProto(); - - if(pVictim->GetHealth() - RemainingDamage <= pVictim->GetMaxHealth() * 0.7f) - RemainingDamage -= RemainingDamage * currentAbsorb / 100; - - continue; - } - } + { + // Ardent Defender + if (spellProto->SpellIconID == 2135 && pVictim->GetTypeId() == TYPEID_PLAYER) + { + int32 remainingHealth = pVictim->GetHealth() - RemainingDamage; + uint32 allowedHealth = pVictim->GetMaxHealth() * 0.35f; + // If damage kills us + if (remainingHealth <= 0 && !((Player*)pVictim)->HasAura(66233)) + { + // Cast healing spell, completely avoid damage + RemainingDamage = 0; + + uint32 defenseSkillValue = pVictim->GetDefenseSkillValue(); + uint32 baseLevelSkillValue = pVictim->getLevel() * 5; + // If player does not achieve even lvl cap of defense return 0% + float pctFromDefense = (defenseSkillValue <= baseLevelSkillValue) ? 0.0f : + // If player overexeceded maxlevelcap+140 return 100% + (((defenseSkillValue - baseLevelSkillValue) >= 140) ? 1.0f : + // else scale pct + ((float(defenseSkillValue) - float(baseLevelSkillValue)) / 140)); + + int32 healAmount = pVictim->GetMaxHealth() * (*i)->GetSpellProto()->EffectBasePoints[1] * pctFromDefense / 100; + pVictim->CastCustomSpell(pVictim, 66235, &healAmount, NULL, NULL, true); + pVictim->CastSpell(pVictim, 66233, true); + } + else if (remainingHealth < allowedHealth) + { + // Reduce damage that brings us under 35% (or full damage if we are already under 35%) by x% + uint32 damageToReduce = (pVictim->GetHealth() < allowedHealth) + ? RemainingDamage + : allowedHealth - remainingHealth; + RemainingDamage -= damageToReduce * currentAbsorb / 100; + } + continue; + + } + break; + } case SPELLFAMILY_PRIEST: { // Guardian Spirit @@ -2180,31 +2204,6 @@ void Unit::CalcAbsorbResist(Unit *pVictim,SpellSchoolMask schoolMask, DamageEffe } break; } - // Ardent Defender - case SPELLFAMILY_PALADIN: - { - // Ardent Defender - if (preventDeathSpell->SpellIconID == 2135) - { - int32 healAmount = preventDeathSpell->EffectBasePoints[1]; // get from dummy aura instead? - int32 defRate = pVictim->GetDefenseSkillValue(); - defRate -= (pVictim->getLevel() * 5); - - // if no defence rating bonus don't absorb - if (!defRate || defRate < 0) - break; - - int32 heal = int32(defRate * pVictim->GetMaxHealth() * healAmount / 14000) - pVictim->GetHealth(); - if(heal > 0) - { - //cast heal - pVictim->CastCustomSpell(pVictim, 66235, &heal, NULL, NULL, true); - pVictim->CastSpell(pVictim, 66233, true); - } - RemainingDamage = 0; - } - break; - } // Guardian Spirit case SPELLFAMILY_PRIEST: {
  17. it is certainly broken, at least in final commit of the "old" branch. debuff http://thottbot.com/s66233 with visible icon is not applied if death preventing effect triggers. I'll check it once more todays evening.
  18. I can confirm it since 3.1.3, not only chain lightning is bugged. also hunters Volley and few other spells are involved.
  19. afaik ACE-based mtmaps does not support windows environment.
  20. unsupported officialy by now http://github.com/mangos/mangos/commits/330
  21. MaNGOS 8935 + OpenMP mtmaps Hi, I've got problems with interpetation this crashlog: http://www.pastebin.org/65714 [color=green]#2 0x0000000000722a76 in ThreatManager::addThreat (this=0x7f4b7cc5d4e8, pVictim=0x162a6770, pThreat=, crit=, schoolMask=, pThreatSpell=) at ../../../src/game/ThreatManager.cpp:395 [/color] void ThreatManager::addThreat(Unit* pVictim, float pThreat, bool crit, SpellSchoolMask schoolMask, SpellEntry const *pThreatSpell) { //function deals with adding threat and adding players and pets into ThreatList //mobs, NPCs, guards have ThreatList and HateOfflineList //players and pets have only InHateListOf //HateOfflineList is used co contain unattackable victims (in-flight, in-water, GM etc.) // not to self if (pVictim == getOwner()) return; // not to GM if (!pVictim || (pVictim->GetTypeId() == TYPEID_PLAYER && ((Player*)pVictim)->isGameMaster()) ) return; // not to dead and not for dead if(!pVictim->isAlive() || !getOwner()->isAlive() ) return; assert(getOwner()->GetTypeId()== TYPEID_UNIT); float threat = ThreatCalcHelper::calcThreat(pVictim, iOwner, pThreat, crit, schoolMask, pThreatSpell); [color=Red]HostileReference* ref = iThreatContainer.addThreat(pVictim, threat);[/color] btw. i was wondering why !pVictim check is below if (pVictim == getOwner()) but it's not the point that im going to ask. ############################## [color="Green"]#1 0x00000000007229c0 in ThreatContainer::addThreat (this=0x162a6770,[color="Red"] pVictim=0x0[/color], pThreat=0) at ../../../src/game/ThreatManager.cpp:242 [/color] HostileReference* ThreatContainer::addThreat(Unit* pVictim, float pThreat) { [color=Red]HostileReference* ref = getReferenceByTarget(pVictim);[/color] if(ref) ref->addThreat(pThreat); return ref; } How can it be that pVictim is lost between those two functions? there is no void that could modify argument. is it caused by multithreading?
  22. http://www.warcrafter.net/sandbox i don't know if it can be reference tool but friend form offi shown me this as good working.you can compare it with characters from wowarmory and see if it works.
  23. you certainly cannot cast spells through the angle made of stairs and flat groud at the end of them. Even spell casting from buttom to top of stairs is difficult and frequently fails. This was my first expression when got access to retail account ;-) some time ago.
  24. Checked one by one on 8969 and thos are realy needed: -- Hunting party -- Fericious Inspiration -- Frenzy -- Impr Stormstrike -- Concussive Barrage othet three I don't know by now. Entrapment - Snake Trap and Freezing Trap are pretty messed right now. Maste Tactician - "successfull attack" could mean anything need diging up wiki or retail info. Bloodsurge - testers told me that it is working. But they can be wrong (for example when proc too frequently for them it is also "working good";-). Please review listed above
  25. is it still needed after http://github.com/mangos/mangos/commit/72f7a7ee56c63672faa7786b1d162a7a3b9ab406 ?
×
×
  • 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