Jump to content

domingo

Members
  • Posts

    27
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Everything posted by domingo

  1. wiki explanation on binary spells: AFAIK all player spells do have mechanic set if non-physical spell applies non-damaging debuff ... So spell is binary in my understanding if it has spell mechanic or effect mechanic set. But as I wrote, it might be wrong, I'd imagine there might be some spell attribute that governs whether spell is binary (or partially resistable).
  2. I've recently played a little bit with spell resistances. My inspiration was mostly 'well known wiki', topics about resistances, spell hit, penetration, etc ... What this patch implements: binary spell resistance and melee/ranged spell resistances (aka Cheap Shot resist). As I am on dead end from point of information, here I share my work: http://github.com/modom/mangos/tree/resistances Open points (where I am at dead end because of lack of informations): - Binary spell recognition - I think spell can be considered as binary if it has some mechanic set. It's probably wrong - there is probably some attribute that marks the spell as binary (or partially resistible). Or the decision should be done just by checking for damage effects. - I guess that mechanic & debuff resistances should be processed in resist roll, not hit roll. - Unavoidable overlevel resistance for partially resistible spells is set to 5 per level, but there are different informations to have this value up to 8 per level. - 5% base resistance to crowd control mechanic: I read it somewhere, but consider it as unconfirmed (early break of cc effect is not implemented). - I guessed that total spell resistance can go up to 100%, if victim has some mechanic/debuff resistances in addition to school resistance (for example rogue with Fleet Footed and pre-WotLK Master Poisoner talents, being enchanted with snare resist spells and having 175+ nature resistance, resisting other rogues crippling poison) - but this is wild guess, maybe 75% is total resistance that can be attained. Anyway, this patch is intended to be used with procflag (because of spell hit part), although there are some conflicts and merged sources have to be edited a little by hand (Unit::CalcAbsorbResist() use). 1
  3. Where can I find this information ? Google was not friendly to me in this matter ... And why log in client works then ?
  4. When I removed the ?hack? (1 DOT damage on full resist, patch in GIT updated), I get such resist logs (only this patch): DoT (Corruption): 50% resist: <victim> suffers 5 Shadow damage from <caster>'s Corruption. (5 resisted) 100% resist: <caster>'s Corruption does not affect <victim>. <victim> resisted. (Tick resisted). full absorb, with any resist: <caster>'s Corruption was absorbed by <victim> for a moment. (Tick absorbed) Health Leech (Siphon Life): 50% resist: <caster>'s Siphon Life hits <victim> for 8 Shadow damage. (8 resisted) 100% resist: <caster>'s Siphon Life was fully resisted by <victim>. full absorb, with any resist: <caster>'s Siphon Life was absorbed by <victim>. (maybe health leech should use SMSG_PERIODICAURALOG instead of SMSG_SPELLNONMELEEDAMAGELOG ? log text makes more sense to me) Direct Damage (Shadowbolt): same as health leech. Looks more-or-less ok to me. Without both patches: I get 'fully resist' direct damage logs on 50% resist, negative damage log on 75% resist (and no sct log :-)) ... and full damage on any kind of DoT resist (although damage done is correct).
  5. I have to object. It is just HIGHLY probable that hash is unique. Theoretically you can have 2 same hashes :-) (But that's improbable).
  6. Hmm ... so that's why on clean mangos there is DOT full-resist not reducing all damage but keeping 1 ? I'll try to play with it ... I didn't specifically play with resists on your patch, I'll try it ... that information (maybe wrong) is from how I understood your changes related to damage -> no changes to periodic & environmetal damage logs in clean.
  7. GIT: http://github.com/modom/mangos/tree/resist_log
  8. That wouldn't be a big problem, it's just naming convention. Few days ago I persuaded myself to do local mirror of svn repository and whole mirror of mangos repository on my PC has ~220MB (svn 1.4.6). Pity I did it for nothing ... That way it satisfied both conditions of being accessible without internet connection and to limit downloading of new revisions to just once, even when applying many patches with many conflicting sources (that patching process mostly solved automatically). so nothing for more advanced users who wants to add some patches into core & compile for themselves, they have to use GIT now ... To be honest, what I dislike on GIT is mostly non-existing GUI backend like SVN Tortoise and unusable default revision numbering. The revision numbering can be worked around as it is now in process (well I worked with ClearCase few years ago where revision number also was unknown term - solved by labelling on release). What I really dislike is missing tortoise-like backend. Not because of svn update (that is bugged anyway in tortoise) or patch creation - for both I used commandline svn up / svn diff ... but the 'trivial' thing of showing me which sources/directories have been changed and because of quite good 'patch apply'.
  9. Well, problem is different. On offi, the loot content (and locked state) of any inventory container is saved. So if you lockpick container and get item A, B, C and take just A and close loot window, container remains in your inventory. Later you have just to click on it to open - you don't have to pick it again - and you get to loot B and C. Until you throw away that container or loot it completely. Maybe 'gift' system should be reused for this functionality to work ?
  10. DBC - Data Base Client ... so it is almost obvious that there must exist some DBS :-) That are more complete, used by offi servers - and 'private'. We are just lucky that heavy snowstorm decided that their client needs so much data to for correct display and usage of spells (and other things).
  11. IMAO they should have two accounts: with gm level 0 for normal play and gm level > 0 for GM stuff.
  12. <div class='quotetop'>QUOTE (Azureus @ Aug 14 2008, 09:26 PM) <{POST_SNAPBACK}></div> That's problem with ACID scripts. <div class='quotetop'>QUOTE (Azureus @ Aug 14 2008, 09:26 PM) <{POST_SNAPBACK}></div> So my update was not correct at least it won't crash the server ...
  13. <div class='quotetop'>QUOTE (Azureus @ Aug 14 2008, 03:25 PM) <{POST_SNAPBACK}></div> It should not, at least on WIN. What I wonder are crashes ... if you get text message for completing some opvp objective and server still works then it should be ok.
  14. What about: New public method in World.h: void SendMangosString(uint32 strid, uint32 zone = 0, WorldSession *self = 0, uint32 team = 0); Code in World.cpp: /// Send a packet to all players (of selected team if team != 0) in the zone (world if zone == 0), except self (if self != NULL) void World::SendMangosString(uint32 strid, uint32 zone, WorldSession *self, uint32 team) { std::map<int, WorldPacket> packets; for (SessionMap::iterator itr = m_sessions.begin(); itr != m_sessions.end(); itr++) { if (itr->second && itr->second->GetPlayer() && itr->second->GetPlayer()->IsInWorld() && (zone == 0 || itr->second->GetPlayer()->GetZoneId() == zone) && itr->second != self && (team == 0 || itr->second->GetPlayer()->GetTeam() == team) ) { int locidx = itr->second->GetSessionDbLocaleIndex(); std::map<int, WorldPacket>::iterator ipkt = packets.find(locidx); if (ipkt == packets.end()) { ipkt = packets.insert(std::Pair<int, WorldPacket>(locidx, WorldPacket())).first; ChatHandler::FillMessageData(&ipkt->second, NULL, CHAT_MSG_SYSTEM, LANG_UNIVERSAL, NULL, 0, objmgr.GetMangosString(strid, locidx), NULL); } itr->second->SendPacket(&ipkt->second); } } } And then replacing all sWorld.SendZoneText(X,objmgr.GetMangosString(Y)); with sWorld.SendMangosString(X, Y); in OutdoorPvP*.cpp files ... Will it help ? Compiles OK ... but I didn't checked if it works OK. Patch link (for 6458): http://filebeam.com/3ec8b85ff189cfc42952ea06be7f04af
  15. <div class='quotetop'>QUOTE (Butch3r @ Aug 12 2008, 11:16 AM) <{POST_SNAPBACK}></div> <div class='quotetop'>QUOTE (w12x @ Aug 12 2008, 01:59 PM) <{POST_SNAPBACK}></div> <div class='quotetop'>QUOTE (Butch3r @ Aug 12 2008, 03:15 PM) <{POST_SNAPBACK}></div> Easy way (just search+replace): use GetMangosStringForDBCLocale() as replacement for GetMangosString(). It uses locale from DBC files on server side. Might cause problems when players use client with locale different from server locale. Correct way: create replacement for sWorld.SendZoneText(X, GetMangosString(Y)) that would use GetSession()->GetMangosString() for every player separately (they can have different client locales). Use that replacement instead.
  16. It's about 5s. See comments on improved gouge talent on various wow info pages - last rank enables rogue to restealth before victim can act (DR, insignia, incapacitate removing abilities etc not taken into account).
  17. Binary / partially resistable spells are about resists, not about ability to crit ... DoTs don't crit ...
  18. Binary spell - a spell whose effects are fully applied or is completely resisted. Nothing in between. As opposed to partially resistable spells that apply effect with lessened efficiency. Only damage spells can be partially resistable, but not all are - those that apply additional auras generally aren't. Do someone have an idea how to detect which spells are binary ? Is there some attribute that marks the spell as binary (or opposite, spell as partially resistable) ? Or it should be decided by it's effects ? What about: partially resistable spells are those that have damage effect and don't have apply aura effect ? Maybe they also need spell or effect (for apply aura effect) mechanic ? All other spells are binary. (I know, resistance currently works only for damage part of spells, all other effects are applied ...)
  19. <div class='quotetop'>QUOTE (yiuu @ Jul 14 2008, 03:03 AM) <{POST_SNAPBACK}></div> [/b] While it was made to be alone, it merges and works nicely with several bigger patches (arena, procflag) and numerous small ones ... OP just meant: if you want to use it with another patch, it's your problem to make it compatible ...
  20. Maybe something like: - last update before going inactive (where 'evade mode' could be activated -> I think that is problem you want to solve: inactive mobs keeping threat on player, thus endless combat mode) - first update on inactive mobs going active ?
  21. When checking for invalid packet length, you rely on specific behavior of cheat. By checking player state correctness, you don't rely on specific cheat behavior and you are able to detect cheater anytime, regardless of his tools.
  22. Check player height, presence of flying mount / levitate-like auras and movement falling flag (and gm flag) ... that should be enough to detect fly / no-damage-fall cheaters ...
  23. Nontrivial conflicts with 6218 in GameObject.cpp and SpellHandler.cpp ...
×
×
  • 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