Jump to content

darkstalker

Members
  • Posts

    717
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Everything posted by darkstalker

  1. other thing thats missing is threat from absorved damage
  2. Discovered a "bug" related to this. It blocks non-triggered casts caused by other spells effects, like Chimera Shot (53209) trigggers a 1500 ms gcd in category 133, then the sting effect gets blocked by gcd check (like Spell 53353: Chimera Shot - Serpent) cause it has the same category 133. Setting the sting effect as triggered fixes it, but maybe should add an extra check to identify spells casted from client side (as opposed to casts from spell handlers). It could be just a dbc "redundant data bug" in this case.
  3. you might want to use std::tr1::regex instead of boost::regex to avoid the extra dependency
  4. read the code for the "additemset" command
  5. been thinking of rewriting this as a differential calculation against last casted spell, that way the latency constant dissapears and would have a more fail-safe and consistent result.
  6. the "level 90 requirement" is usually put there by DB developers to close unfinished instances
  7. confirmed, snakes stay till they die.
  8. whats the purpose of having a vmap disable option if it breaks stuff..
  9. you could just add things with a different phase
  10. * What bug does the patch fix? What features does the patch add? fixes a typo in invisibility and detect invisibility aura handlers that can cause incorrect aura remove effect. * For which repository revision was the patch created? 10432 * Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. no * Who has been writing this patch? Please include either forum user names or email addresses. darkstalker diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 59d5192..92e449d 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -3936,7 +3936,7 @@ void Aura::HandleInvisibility(bool apply, bool Real) target->m_invisibilityMask = 0; Unit::AuraList const& auras = target->GetAurasByType(SPELL_AURA_MOD_INVISIBILITY); for(Unit::AuraList::const_iterator itr = auras.begin(); itr != auras.end(); ++itr) - target->m_invisibilityMask |= (1 << m_modifier.m_miscvalue); + target->m_invisibilityMask |= (1 << (*itr)->GetModifier()->m_miscvalue); // only at real aura remove and if not have different invisibility auras. if(Real && target->m_invisibilityMask == 0) @@ -3970,7 +3970,7 @@ void Aura::HandleInvisibilityDetect(bool apply, bool Real) target->m_detectInvisibilityMask = 0; Unit::AuraList const& auras = target->GetAurasByType(SPELL_AURA_MOD_INVISIBILITY_DETECTION); for(Unit::AuraList::const_iterator itr = auras.begin(); itr != auras.end(); ++itr) - target->m_detectInvisibilityMask |= (1 << m_modifier.m_miscvalue); + target->m_detectInvisibilityMask |= (1 << (*itr)->GetModifier()->m_miscvalue); } if(Real && target->GetTypeId()==TYPEID_PLAYER) ((Player*)target)->GetCamera().UpdateVisibilityForOwner();
  11. That kind of timers require periodic update to work (rougly 100ms), so its extra work to do. I fetch the time only when i need it, not on every world update tick. And its not just one gcd timer, its actually one per category. That is what makes some abilities independant of the gcd or have a special gcd trait.
  12. This patch implements server side global cooldown checking using data provided in Spell.dbc (StartRecoveryCategory, StartRecoveryTime), player stats (haste rating) and latency to provide a more accurate result. Testing and feedback needed ;> patch for 10432: v1: http://paste2.org/p/974537 v2: http://paste2.org/p/980906 v3: http://paste2.org/p/995984 Changelog: v1: Original version v2: Use time difference against last casted spell instead of future cooldown time. That way the latency variable gets "cancelled off", providing more accurate and fail-safe result v3: implemented gcd cancel on interrupted cast (as displayed on client)
  13. it works, but as i said before, its a forceful method. If you got care for not corrupting your DB's then you can use my script.
  14. whats wrong with my patch version? i tested it for months and works fine
  15. this might work: std::istringstream ss(sWorld.getConfig(CONFIG_STRING_CUSTOM_AREAS)); char filler; std::set<uint32> areas; while (!ss) { uint32 areaid = 0; ss >> areaid; ss >> filler; if (areaid) areas.insert(areaid); } if (areas.find(pPlayer->GetAreaId()) != areas.end()) { // stuff here }
  16. you could write a metacompiler that converts lua to C++
  17. type casting of classes with mutiple inheritance causes this pointer adjustment, that might break code that uses C style casts
  18. Is it possible to attach a script to a player? like doing SetClientControl(pPlayer, false) and then controlling it with a PlayerAI like you do with a creature. Would be nice for implementing mind-control spells like the ones used in boss encounters.
  19. in that case could use std::tr1::array
  20. darkstalker

    Afk?

    its not afk anymore, its <Away>
  21. you losing too much brain cells compiling 2 separate projects?
×
×
  • 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