Jump to content

Auntie Mangos

Moderators
  • Posts

    2446
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Everything posted by Auntie Mangos

  1. It was also asked here: http://getmangos.eu/community/viewtopic.php?id=4961 Searching should have found this as well.
  2. See this thread.
  3. http://getmangos.eu/community/showthread.php?8896-mtmaps-(OpenMP)&p=98491&viewfull=1#post98491 =)
  4. What bug does the patch fix? What features does the patch add? just a small correction of aura type For which repository revision was the patch created? 8220 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. http://getmangos.eu/community/viewtopic.php?id=9071&highlight=tundra+stalker diff --git a/Unit2.cpp b/Unit.cpp index d5da2a9..844b013 100644 --- a/Unit2.cpp +++ b/Unit.cpp @@ -7854,7 +7854,7 @@ uint32 Unit::SpellDamageBonus(Unit *pVictim, SpellEntry const *spellProto, uint3 } else // Tundra Stalker { - if (pVictim->GetAura(SPELL_AURA_DUMMY, SPELLFAMILY_DEATHKNIGHT, UI64LIT(0x0400000000000000))) + if (pVictim->GetAura(SPELL_AURA_PERIODIC_DAMAGE, SPELLFAMILY_DEATHKNIGHT, UI64LIT(0x0400000000000000))) DoneTotalMod *= ((*i)->GetModifier()->m_amount+100.0f)/100.0f; break; } wowhead info on frost fever http://www.wowhead.com/?spell=55095 also the flags UI64LIT(0x0400000000000000) might have changed:confused: plz test and share comments
  5. It means there are no tables in your database. Can't do much without them Look here for db projects. UDB is most stable. http://getmangos.eu/community/viewtopic.php?id=84
  6. This is the bug report if needed: http://getmangos.eu/community/showpost.php?p=65600&postcount=10 now, I didn't test but I ask, are the 20 stars maximum counted as spell charges?
  7. I have a question: Is it possible to visualize the conflicts when applying a patch? Something like TortoiseSVN style, resolving conflicts manually, not just some bash lines: "error at line 124" whitespace trailing or something. I've read in this post http://getmangos.eu/community/viewtopic.php?id=4276 how to resolve conficts by making some modifications in the git config file, but that didn't help me. In short, after making how can i see what files were succesefuly patched, and if not resolve conflicts manualy in a graphic interface?
  8. I have played with Git a bit... and have read through the guides I guess the thing I'm just really having a hard time wrapping my head around is the hash build id's. Like what Dythzer mentioned here: http://getmangos.eu/community/showpost.php?p=46139&postcount=52 Maybe it's just too late at night and my head is just being a block of wood at the moment though.
  9. Hi I just want to update this! With Revision 6683 the bug still exists! (Bug Report: http://getmangos.eu/community/viewtopic.php?id=28984) Index: /win/VC80/shared.vcproj =================================================================== --- /win/VC80/shared.vcproj (Revision 6683) +++ /win/VC80/shared.vcproj (working copy) @@ -77,7 +77,7 @@ /> <Tool Name="VCLibrarianTool" - AdditionalDependencies=".\\g3dlite__$(PlatformName)_$(ConfigurationName)\\g3dlite.lib" + AdditionalDependencies=".\\g3dlite__$(PlatformName)_$(ConfigurationName)\\g3dlite.lib user32.lib" OutputFile=".\\shared__$(PlatformName)_$(ConfigurationName)\\shared.lib" SuppressStartupBanner="true" /> After patching this it works again! greetz
  10. just so you know... im not going to make everything you want...there will be a moment on which you'll have to learn to edit stuff yourself i'll check what's with the chars, the pics can be done like this: [img='.$charinfo['race'].] NOTE: not tested EDIT: again, new version...this time it's the last one unless there's an important bug somewhere <?php $reading = @fopen("config.php", 'r'); if ($reading) // if we can read the config.php file that's on the frontpage... of this thread: [url]http://getmangos.eu/community/viewtopic.php?id=11566[/url] include "config.php"; else // else, we define them here { $port = "3306"; $host = "localhost"; $user = "root"; $pass = "mangos"; $mangoscharacters = "characters"; $mangosrealm = "realmd"; } if (!(isset($_COOKIE['logged_in'])) && $_POST['password'] == "") // if the form is not posted and the cookie not present { ?> <html> <body> <form name="login" method="POST" action="<?php echo $_SERVER['PHP_SELF'];?>"> Username: <input type="text" name="username"> Password: <input type="password" name="password"> <input type="submit" value="Log in"> </form> </body> </html> <?php } else if (($_POST['username'] != "" && $_POST['password'] != "") || isset($_COOKIE['logged_in'])) // if something was posted or the cookie is present { if (!isset($_COOKIE['logged_in'])) // get the name and pass from the form and make the pass sha encrypted { $username = $_POST['username']; $password = $_POST['password']; $username = strtoupper($username); $password = strtoupper($password); $password = SHA1($username.':'.$password); } else // else, we read the cookie { $parts = explode(",", $_COOKIE['logged_in']); // split the cookie's contents at the comma $username = $parts[0]; // part 1 is the username $password = $parts[1]; // part 2 is the password } $class = array(1=>"Warrior",2=>"Paladin",3=>"Hunter",4=>"Rogue",5=>"Priest",6=>"Death Knight",7=>"Shaman",8=>"Mage",9=>"Warlock",11=>"Druid"); $race = array(1=>"Human",2=>"Orc",3=>"Dwarf",4=>"Night Elf",5=>"Undead",6=>"Tauren",7=>"Gnome",8=>"Troll",10=>"Blood Elf",11=>"Draenei"); $map = array(0=>"Eastern Kingdoms",1=>"Kalimdor",33=>"Shadowfang Keep",34=>"Stormwind Stockade",35=>"Stormwind Prison",36=>"Deadmines",43=>"Wailing Caverns",44=>"Monastery",47=>"Razorfen Kraul",48=>"Blackfathom",70=>"Uldaman",90=>"Gnomeragon",109=>"Sunken Temple",129=>"Razorfen Downs",169=>"Emerald Dream",189=>"Monastery",209=>"Tanaris",229=>"Black Rock Spire",230=>"Black Rock Depths",249=>"Onyxia Lair",269=>"Caverns Of Time",289=>"School of Necromancy",309=>"Zulgurub",329=>"Stratholme",349=>"Mauradon",369=>"Deeprun Tram",389=>"Orgrimmar",409=>"MoltenCore",429=>"DireMaul",469=>"Blackwing Lair",509=>"AhnQiraj",530=>"Dalaran",531=>"AhnQiraj Temple",532=>"Karazahn",533=>"Stratholme",534=>"Hyjal Past",540=>"Hellfire Military",542=>"Hellfire Demon",543=>"Hellfire Rampart",544=>"Hellfire Raid",545=>"Coilfang Pumping",546=>"Coilfang Marsh",547=>"Coilfang Draenei",548=>"Coilfang Raid",550=>"Tempest Keep Raid",552=>"Tempest Keep Arcane",553=>"Tempest Keep Atrium",554=>"Tempest Keep Factory",555=>"Auchindoun Shadow",556=>"Auchindoun Demon",557=>"Auchindoun Ethereal",558=>"Auchindoun Draenei",560=>"Hillsbrad Past",562=>"Blades Edge Arena",564=>"Black Temple",565=>"Gruuls Lair",566=>"Netherstorm BG",568=>"ZulAman",571=>"Northrend",574=>"Valgarde 70",575=>"Utgarde Pinnacle",576=>"Nexus 70",578=>"Nexus 80",580=>"Sunwell Plateau",595=>"Stratholme COT",598=>"Sunwell 5",599=>"Ulduar 70",600=>"Drak Theron Keep",602=>"Ulduar 80",603=>"Ulduar Raid",604=>"GunDrak",607=>"Northrend BG",608=>"Violet Hold",609=>"Ebon Hold",615=>"The Obsidian Sanctum",616=>"The Eye of Eternity",617=>"Dalaran Sewers",618=>"The Ring of Valor",619=>"Ahn'kahet: The Old Kingdom",624=>"Vault of Archavon",628=>"Isle of Conquest",631=>"Icecrown Citadel Raid",632=>"Forge of Souls",649=>"Argent Tournament Raid",650=>"Argent Tournament Dungeon",658=>"Pit Of Saron",668=>"Halls of Reflection",723=>"Stormwind",724=>"The Ruby Sanctum"); $gender = array(0=>"Male",1=>"Female"); $host = $host.":".$port; $connection = mysql_connect($host, $user, $pass); if ($connection) $connected_db = mysql_select_db($mangosrealm); if ($connection && $connected_db) { $query = mysql_query("SELECT `sha_pass_hash`, `id` FROM `account` WHERE `username` = '$username';"); if (mysql_num_rows($query) != 0) { $fields = mysql_fetch_assoc($query); $real_pass = $fields['sha_pass_hash']; $id = $fields['id']; if ($password == $real_pass) { setcookie("logged_in", $username.",".$password, time()+600); mysql_select_db($mangoscharacters); $getchars = mysql_query("SELECT * FROM `characters` WHERE `account` = '$id';"); //query to get all the char fields from the DB if ($getchars) { echo ' <table border="0.5"> <tr> <th>Picture</th> <th>Name</th> <th>Race</th> <th>Class</th> <th>Level</th> <th>Map</th> <th>Gender</th> </tr> '; for($i = 0; $i < mysql_num_rows($getchars); $i++) // process all chars, one by one { $charinfo = mysql_fetch_assoc($getchars); // get all the fields from the query echo ' <tr> <td>[img='.$charinfo['race'].] <td>'.$charinfo['name'].'</td> <td>'.$race[$charinfo['race']].'</td> <td>'.$class[$charinfo['class']].'</td> <td>'.$charinfo['level'].'</td> <td>'.$map[$charinfo['map']].'</td> <td>'.$gender[$charinfo['gender']].'</td> </tr> '; } echo ' </table> '; } else die("You don't have any characters"); } else die("Wrong pass!"); } else die("Account does not exist!"); } } ?> the image now has it's own column in the output, if the image is not found it will display "$race-$gender" (where $race is the race etc.) and it now processes all chars
  11. Hey guys, I recently installed MaNGOS following this guide (http://getmangos.eu/community/showthread.php?13121-World-of-Warcraft-Server-for-Windows-Installation-Guide). I can get mangosd.exe to run but I'm getting an error which causes it to close: 2010-06-23 22:23:29 Using configuration file mangosd.conf. 2010-06-23 22:23:29 World Database: 127.0.0.1;3306;root;snappy4;mangos 2010-06-23 22:23:29 MySQL client library: 5.0.56 2010-06-23 22:23:29 MySQL server ver: 5.1.41-community 2010-06-23 22:23:29 Character Database: 127.0.0.1;3306;root;snappy4;characters 2010-06-23 22:23:29 MySQL client library: 5.0.56 2010-06-23 22:23:29 MySQL server ver: 5.1.41-community 2010-06-23 22:23:29 Login Database: 127.0.0.1;3306;root;snappy4;realmd 2010-06-23 22:23:29 MySQL client library: 5.0.56 2010-06-23 22:23:29 MySQL server ver: 5.1.41-community 2010-06-23 22:23:29 Realm running as realm ID 1 2010-06-23 22:23:29 Using World DB: UDB 0.12.0 (391) for MaNGOS 9999 with SD2 SQL for rev. 1702 2010-06-23 22:23:29 Using creature EventAI: ACID 3.0.3 - Full Release for Mangos (3.3.0a Client) 2010-06-23 22:23:29 Using DataDir ./ 2010-06-23 22:23:29 WORLD: VMap support included. LineOfSight:1, getHeight:1 2010-06-23 22:23:29 WORLD: VMap data directory is: ./vmaps 2010-06-23 22:23:29 WORLD: VMap config keys are: vmap.enableLOS, vmap.enableHeight, vmap.ignoreMapIds, vmap.ignoreSpellIds 2010-06-23 22:23:29 ERROR:Map file './maps/0004331.map' is non-compatible version (outdated?). Please, create new using ad.exe program. 2010-06-23 22:23:29 ERROR:Correct *.map files not found in path './maps' or *.vmap/*vmdir files in './vmaps'. Please place *.map/*.vmap/*.vmdir files in appropriate directories or correct the DataDir value in the mangosd.conf file. I'm running MaNGOS 0.16, which should be compatible with 3.3.3.11723. I'm using the maps and dbc files extracted from a WoW client which has version 3.3.3.11723. Any help?
  12. Mirror image patch for 9589+ http://filebeam.com/f378031a38fd9d7f553ae3dadd19a5a3 based off of the patch by przemratajczak Remember to apply the Mirror Image sql file the Mirror Images will not attack there own fraction when dueling I could not find a way to fix that bug they Do work in PvE and Alliance vs Horde PvP I could not get them to be renamed to the players name they are using spell 58838 Inherit Master's Threat List - to know who to attack this patch also has http://getmangos.eu/community/showthread.php?13025-[fix]-TemporarySummons by pasdVn
  13. http://getmangos.eu/community/showthread.php?4579-[HOWTO]-GDB-Debugging if you use windows crappy crashlog will generate automaticaly in /Crashs directory.
  14. What bug does the patch fix? What features does the patch add? Living bomb final Explosion For which repository revision was the patch created? 8778 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. http://getmangos.eu/community/viewtopic.php?id=6492 Who has been writing this patch? Please include either forum user names or email addresses. Me Data in DBC are wrong now(at least in mine), so I have to hardcode IDs.... diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 8af7235..d951819 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -2338,6 +2338,21 @@ void Aura::HandleAuraDummy(bool apply, bool Real) m_target->CastSpell(m_target, 47287, true, NULL, this); return; } + case 44457: // Living Bomb Rank 1 + { + m_target->CastSpell(m_target,44461, false); + return; + } + case 55359: // Living Bomb Rank 2 + { + m_target->CastSpell(m_target, 55361, false); + return; + } + case 55360: // Living Bomb Rank 3 + { + m_target->CastSpell(m_target, 55362, false); + return; + } } if (caster && m_removeMode == AURA_REMOVE_BY_DEATH)
  15. both the same fixxes... identically with the other. diff -- git a / src / game / SpellAuras . cpp b / src / game / SpellAuras . cpp index 3a0862d . .0d28cb8 100644 --- a / src / game / SpellAuras . cpp +++ b / src / game / SpellAuras . cpp @@ - 2637 , 6 + 2637 , 9 @@ void Aura :: HandleAuraModShapeshift ( bool apply , bool Real ) case FORM_SHADOW : case FORM_STEALTH : break; + case FORM_SHADOWDANCE : + PowerType = POWER_ENERGY ; + break; case FORM_TREE : modelid = 864 ; break; @@ - 2682 , 7 + 2685 , 8 @@ void Aura :: HandleAuraModShapeshift ( bool apply , bool Real ) if( m_target -> m_ShapeShiftFormSpellId ) m_target -> RemoveAurasDueToSpell ( m_target -> m_ShapeShiftFormSpellId , this ); - m_target -> SetByteValue ( UNIT_FIELD_BYTES_2 , 3 , form ); + // For Shadow Dance we must apply Stealth form (30) instead of current (13) + m_target -> SetByteValue ( UNIT_FIELD_BYTES_2 , 3 , ( form == FORM_SHADOWDANCE ) ? uint8 ( FORM_STEALTH ) : form ); if( modelid > 0 ) m_target -> SetDisplayId ( modelid ); @@ - 2747 , 6 + 2751 , 10 @@ void Aura :: HandleAuraModShapeshift ( bool apply , bool Real ) m_target -> SetPower ( POWER_RAGE , Rage_val ); break; } + // Shadow Dance - apply stealth mode stand flag + case FORM_SHADOWDANCE : + m_target -> SetStandFlags ( UNIT_STAND_FLAGS_CREEP ); + break; default: break; } @@ - 2779 , 6 + 2787 , 10 @@ void Aura :: HandleAuraModShapeshift ( bool apply , bool Real ) if( Aura * dummy = m_target -> GetDummyAura ( 37324 ) ) m_target -> CastSpell ( m_target , 37325 , true , NULL , dummy ); break; + // Shadow Dance - remove stealth mode stand flag + case FORM_SHADOWDANCE : + m_target -> RemoveStandFlags ( UNIT_STAND_FLAGS_CREEP ); + break; default: break; } diff -- git a / src / game / Unit . h b / src / game / Unit . h index faefbef . .3f0e578 100644 --- a / src / game / Unit . h +++ b / src / game / Unit . h @@ - 167 , 6 + 167 , 7 @@ enum ShapeshiftForm FORM_GHOUL = 0x07 , FORM_DIREBEAR = 0x08 , FORM_CREATUREBEAR = 0x0E , + FORM_SHADOWDANCE = 0x0D , FORM_CREATURECAT = 0x0F , FORM_GHOSTWOLF = 0x10 , FORM_BATTLESTANCE = 0x11 ,
  16. bot addin' -added mangos_command_bot.sql for gm level toggle -added bear(was only dire bear) & moonkin w/casting(main) druid forms -added make sure at least 3 attackers before priest scream -fixed/updated death knight(now summons ghoul, gargoyle & army of the dead) -fixed hunter multi-shot(typo) -fixed shaman & druid cast heals on corpses & group heals smarter -rewrote warlock(added/reordered curses/spells, made casting smarter) -small shaman update(water totem order & weapon buff) http://filebeam.com/6e6a4bd93ad0de2510ac223916081627 if you have time to push this winslow that would be great i just noticed you are keeping your branch up to date...i'll have to check it out one thing i noticed is(no offense to thorazi) but if you want a "proper" Horde & Alliance grouping/trade patch use this one posted by patro http://getmangos.eu/community/showpost.php?p=71654&postcount=33 bug fixin' sry, Runsttren, but this commit is not right http://github.com/playerbot/mangos/commit/3a98c64085d5a38066bb1f124d8d88d1e2b64553 three things i noticed after that commit 1.(major) server crash: add a bot with a pet, select the pet and use the .die command on it 2.(minor) odd bot movement: the behaviour on bot movement is not always normal 3.(minor) add bot=no teleport to you: the bot when added to the world stay were they where last only summon after follow command i got the server crash in some different scenarios but none i could exactly recreate, i could generate them by sometimes by entering combat and next start adding all my bots(far away) or by using the .die command on the bots themselves(its not limited to the pets)...so i finally found a constant kill the bots pet! oddly enough if pet dies in normal gameplay mangos doesnt crash. to test i compiled the latest mangos with a playerbot commit before and it works fine am i the only one?...anyone else get this? thankin' everyone that contributes to playerbot
  17. Yeah, Copycat is the only project that I could find that supports this. Haven't tried it with the latest version though, and the project seems to have came to a halt Thread here: http://getmangos.eu/community/viewtopic.php?id=551 Sourcecode of latest version: http://trac2.assembla.com/MangosCopyCat/browser/dev_versions/0.3
  18. Check this out: http://getmangos.eu/community/viewtopic.php?id=27881
  19. Don't sweat it, you'd be surprised how easy it is to miss one line. It's getting to be a pretty big readme, but that just shows how much you can do with playerbot (which == awesome). I'll give all the help I can, although honestly I'm still sorting out git myself. As for playerbot, I'm working on talentspecs (almost halfway which is when I'll start sharing), but work is crazy right now and for some reason personal life's chosen the previous and current weeks as well to go crazy. Someone up there does not want me to finish the talentspecs but darn it I will! Anyway, I've found it to be a very friendly and helpful community here. Take some effort to find what you need first (something I need to work on now and again), after that feel free to ask. (pertaining to bots being invisible in instances) I was browsing the forums the other day... Just out of curiosity, would you perchance be talking about this bug?
  20. Besides the fish got away problem there is also the skillup problem. The code that matters is in line 1108 of file GameObject.cpp and 5282 of Player.cpp //GameObject.cpp switch(getLootState()) { case GO_READY: // ready for loot { // 1) skill must be >= base_zone_skill // 2) if skill == base_zone_skill => 5% chance // 3) chance is linear dependence from (base_zone_skill-skill) uint32 zone, subzone; GetZoneAndAreaId(zone,subzone); int32 zone_skill = sObjectMgr.GetFishingBaseSkillLevel(subzone); if (!zone_skill) zone_skill = sObjectMgr.GetFishingBaseSkillLevel(zone); //provide error, no fishable zone or area should be 0 if (!zone_skill) sLog.outErrorDb("Fishable areaId %u are not properly defined in `skill_fishing_base_level`.",subzone); int32 skill = player->GetSkillValue(SKILL_FISHING); int32 chance = skill - zone_skill + 5; int32 roll = irand(1,100); DEBUG_LOG("Fishing check (skill: %i zone min skill: %i chance %i roll: %i",skill,zone_skill,chance,roll); if (skill >= zone_skill && chance >= roll) { // prevent removing GO at spell cancel player->RemoveGameObject(this,false); SetOwnerGUID(player->GetGUID()); //fish catched player->UpdateFishingSkill(); //TODO: find reasonable value for fishing hole search GameObject* ok = LookupFishingHoleAround(20.0f + CONTACT_DISTANCE); if (ok) { player->SendLoot(ok->GetGUID(),LOOT_FISHINGHOLE); player->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_FISH_IN_GAMEOBJECT, ok->GetGOInfo()->id); SetLootState(GO_JUST_DEACTIVATED); } else player->SendLoot(GetGUID(),LOOT_FISHING); } else { // fish escaped, can be deleted now SetLootState(GO_JUST_DEACTIVATED); WorldPacket data(SMSG_FISH_ESCAPED, 0); player->GetSession()->SendPacket(&data); } break; } case GO_JUST_DEACTIVATED: // nothing to do, will be deleted at next update break; default: { SetLootState(GO_JUST_DEACTIVATED); WorldPacket data(SMSG_FISH_NOT_HOOKED, 0); player->GetSession()->SendPacket(&data); break; } } player->FinishSpell(CURRENT_CHANNELED_SPELL); return; } //Player.cpp bool Player::UpdateFishingSkill() { sLog.outDebug("UpdateFishingSkill"); uint32 SkillValue = GetPureSkillValue(SKILL_FISHING); int32 chance = SkillValue < 75 ? 100 : 2500/(SkillValue-50); uint32 gathering_skill_gain = sWorld.getConfig(CONFIG_SKILL_GAIN_GATHERING); return UpdateSkillPro(SKILL_FISHING,chance*10,gathering_skill_gain); } wowwiki explains it like this see http://www.wowwiki.com/Fishing#Increasing_fishing_skill To fix this two things are needed 1. in GameObject.cpp else { // fish escaped, can be deleted now SetLootState(GO_JUST_DEACTIVATED); WorldPacket data(SMSG_FISH_ESCAPED, 0); player->GetSession()->SendPacket(&data); } must be changed to something like { //junk allows skillup too. player->UpdateFishingSkill(); // loot for junk player->SendLoot(GetGUID(),LOOT_FISHINGJUNK); // dunno if need setlootstate (?) // SetLootState(GO_JUST_DEACTIVATED); } and this mus be handled in player.cpp correctly where is now if (loot_type == LOOT_FISHING) go->getFishLoot(loot,this); should be added above: if ((loot_type == LOOT_FISHINGJUNK) //Display junk loot window // [url]http://www.wowhead.com/?items=15.0&filter=qu=0;cr=69;crs=1;crv=0[/url] // but this is database todo no? if (loot_type == LOOT_FISHING) go->getFishLoot(loot,this); For correct skil increase something like this would do: 75 because of http://getmangos.eu/community/showthread.php?10914-[Fix]-Fishing-skillups-for-wotlk&highlight=fishing and 25000 because it wont eat values after the decimal point like 2500 -> *10 does bool Player::UpdateFishingSkill() { sLog.outDebug("UpdateFishingSkill"); uint32 SkillValue = GetPureSkillValue(SKILL_FISHING); int32 chance = SkillValue < 75 ? 100 : 25000/(SkillValue-75); uint32 gathering_skill_gain = sWorld.getConfig(CONFIG_SKILL_GAIN_GATHERING); return UpdateSkillPro(SKILL_FISHING,chance,gathering_skill_gain); } It is important to know that this is not correct way, since it will allow you to also gain skill with way less fishes fished. But it is good approximation matching the general mangos loot system.
  21. What bug does the patch fix? What features does the patch add? fixes weapon enchantment procs from weapon based spells (like mutilate) For which repository revision was the patch created? 9362 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. http://getmangos.eu/community/showthread.php?11743-%5BBUG%5D-Mutilate http://getmangos.eu/community/showthread.php?11761-%5BBUG%5D-%5B9061%5D-Rogue-Poisons Who has been writing this patch? Please include either forum user names or email addresses. me, thx to maly32167 for deadloop fix diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 7ba9448..4a46c7f 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -1297,6 +1297,29 @@ void Unit::DealSpellDamage(SpellNonMeleeDamage *damageInfo, bool durabilityLoss) // Call default DealDamage (send critical in hit info for threat calculation) CleanDamage cleanDamage(damageInfo->cleanDamage, BASE_ATTACK, damageInfo->HitInfo & SPELL_HIT_TYPE_CRIT ? MELEE_HIT_CRIT : MELEE_HIT_NORMAL); DealDamage(pVictim, damageInfo->damage, &cleanDamage, SPELL_DIRECT_DAMAGE, SpellSchoolMask(damageInfo->schoolMask), spellProto, durabilityLoss); + + // Check if effect can trigger anything actually (is this a right ATTR ?) + if( spellProto->AttributesEx3 & SPELL_ATTR_EX3_UNK16 ) + return; + + bool hasWeaponDmgEffect = false; + + for (uint32 i = 0; i < 3; ++i) + { + if (spellProto->Effect[i] == SPELL_EFFECT_WEAPON_DAMAGE_NOSCHOOL || spellProto->Effect[i] == SPELL_EFFECT_WEAPON_PERCENT_DAMAGE || spellProto->Effect[i] == SPELL_EFFECT_WEAPON_DAMAGE || spellProto->Effect[i] == SPELL_EFFECT_NORMALIZED_WEAPON_DMG) + { + hasWeaponDmgEffect = true; + break; + } + } + + if (!(damageInfo->HitInfo & HITINFO_MISS) && hasWeaponDmgEffect) + { + WeaponAttackType attType = GetWeaponAttackType(spellProto); + // on weapon hit casts + if(GetTypeId() == TYPEID_PLAYER && pVictim->isAlive()) + ((Player*)this)->CastItemCombatSpell(pVictim, attType); + } } //TODO for melee need create structure as in haven't found a better way to check for Effect Weapon Dmg , attribs won't work cause spells like "envenom" have them, and dmg class is too wide
  22. no crashes, no erros with 120+- online
  23. http://getmangos.eu/community/showpost.php?p=88335&postcount=25 works with 8734 (3.2.2)
  24. Hmm, this is not correct as I think. Have a look at the code one more time. Non-controlled pet could already be controlled by a special script. That is -by the way- the reason why I asked about this line at the beginning.... I'm not sure if there are really and controlled pets, that require a special AI... Edit: Found my old patch : http://getmangos.eu/community/viewtopic.php?id=753&highlight=Guardian
  25. What bug does the patch fix? What features does the patch add? It fixes damage formula for mobs, concerning Attack Power. For which repository revision was the patch created? 8078 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. http://getmangos.eu/community/viewtopic.php?id=8564 Who has been writing this patch? Please include either forum user names or email addresses. Me. [email protected] [HIGHLIGHT=diff]diff --git a/src/game/StatSystem.cpp b/src/game/StatSystem.cpp index 2e512c3..1880f2b 100644 --- a/src/game/StatSystem.cpp +++ b/src/game/StatSystem.cpp @@ -414,7 +414,7 @@ void Player::CalculateMinMaxDamage(WeaponAttackType attType, bool normalized, fl float att_speed = GetAPMultiplier(attType,normalized); - float base_value = GetModifierValue(unitMod, BASE_VALUE) + GetTotalAttackPowerValue(attType)/ 14.0f * att_speed; + float base_value = GetModifierValue(unitMod, BASE_VALUE) + GetTotalAttackPowerValue(attType) * att_speed / 14.0f; float base_pct = GetModifierValue(unitMod, BASE_PCT); float total_value = GetModifierValue(unitMod, TOTAL_VALUE); float total_pct = GetModifierValue(unitMod, TOTAL_PCT); @@ -802,8 +802,8 @@ void Creature::UpdateDamagePhysical(WeaponAttackType attType) return; UnitMods unitMod = UNIT_MOD_DAMAGE_MAINHAND; - - float base_value = GetModifierValue(unitMod, BASE_VALUE) + GetTotalAttackPowerValue(attType); + float dmg_from_ap = GetTotalAttackPowerValue(attType) * GetAPMultiplier(attType, false) / 14.0f; + float base_value = GetModifierValue(unitMod, BASE_VALUE) + dmg_from_ap; float base_pct = GetModifierValue(unitMod, BASE_PCT); float total_value = GetModifierValue(unitMod, TOTAL_VALUE); float total_pct = GetModifierValue(unitMod, TOTAL_PCT);[/HIGHLIGHT] It needs DB support. I've made a temp mini-patch to keep the damage a bit higher: [HIGHLIGHT=SQL]UPDATE creature_template SET mindmg = mindmg * 7, maxdmg = maxdmg * 7 WHERE unit_class != 0 AND attackpower != 0; UPDATE creature_template SET mindmg = (mindmg - (mindmg MOD 1)) WHERE (mindmg MOD 1) < 0.5 AND (mindmg MOD 1) > 0; UPDATE creature_template SET mindmg = (maxdmg - (maxdmg MOD 1)) WHERE (maxdmg MOD 1) < 0.5 AND (maxdmg MOD 1) > 0; UPDATE creature_template SET mindmg = (mindmg - (mindmg MOD 1) + 1) WHERE (mindmg MOD 1) > 0; UPDATE creature_template SET maxdmg = (maxdmg - (maxdmg MOD 1) + 1) WHERE (maxdmg MOD 1) > 0; UPDATE creature_template SET mindmg = 0.5943 + 1.407 * minlevel - 0.00058831 * minlevel * minlevel - 0.00074332 * minlevel * minlevel * minlevel + 0.0000137742 * minlevel * minlevel * minlevel * minlevel WHERE maxlevel < 81 AND rank = 0; UPDATE creature_template SET maxdmg = -0.18526 + 2.2117 * minlevel - 0.02589 * minlevel * minlevel - 0.0005102 * minlevel * minlevel * minlevel + 0.0000168259 * minlevel * minlevel * minlevel * minlevel WHERE maxlevel < 81 AND rank = 0; UPDATE creature_template SET attackpower = -0.19963 + 4.169 * minlevel + 0.032563 * minlevel * minlevel - 0.00200482 * minlevel * minlevel * minlevel + 0.000025775 * minlevel * minlevel * minlevel * minlevel WHERE maxlevel < 81 AND rank = 0; UPDATE creature_template SET mindmg = mindmg * baseattacktime / 2000 WHERE maxlevel < 81 AND rank = 0; UPDATE creature_template SET maxdmg = maxdmg * baseattacktime / 2000 WHERE maxlevel < 81 AND rank = 0;[/HIGHLIGHT] That's a very temporary DB 'fix'.
×
×
  • 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