Jump to content

KAPATEJIb

Members
  • Posts

    436
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Everything posted by KAPATEJIb

  1. diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 2db68f7..89e1ff9 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -5226,6 +5226,13 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu triggered_spell_id = 28810; break; } + // Glyph of Prayer of Healing + case 55680: + { + basepoints0 = int32(damage * 20 / 100 / 2); // divided in two ticks + triggered_spell_id = 56161; + break; + } // Glyph of Dispel Magic case 55677: {
  2. Talent works for me at my branch and should work at clean
  3. Compile errors under linux. first at (newskintone == -1) second at (skintone != newskintone && newskintone != -1) it gives a error about these strings: because of limit of data diapason result is always false (first); result is always true (second) it's because "newskintone" is declared as "uint8", changing it to "int8" should help but idk, maybe this will cause an additional issues it also can be fixed by way of changing -1 to 0
  4. only one bug: barbershop doesn't works - pressing at "OK" button just doesn't make anything, you can sit for a hours with clicking it but no result ok, for tauren's all works ok, but for others - no... Any solutions? There should be a check like "if (players->GetRace() == tauren)" to fix it, but where we need to add the check?
  5. can't compile with your patch because of typos. Now it's fixed author: gs94 diff --git a/src/game/CharacterHandler.cpp b/src/game/CharacterHandler.cpp index 26d2c82..38d7309 100644 --- a/src/game/CharacterHandler.cpp +++ b/src/game/CharacterHandler.cpp @@ -1076,8 +1076,8 @@ void WorldSession::HandleAlterAppearance( WorldPacket & recv_data ) { DEBUG_LOG("CMSG_ALTER_APPEARANCE"); - uint32 Hair, Color, FacialHair; - recv_data >> Hair >> Color >> FacialHair; + uint32 Hair, Color, FacialHair, SkinTone; + recv_data >> Hair >> Color >> FacialHair >> SkinTone; BarberShopStyleEntry const* bs_hair = sBarberShopStyleStore.LookupEntry(Hair); @@ -1089,7 +1089,12 @@ void WorldSession::HandleAlterAppearance( WorldPacket & recv_data ) if(!bs_facialHair || bs_facialHair->type != 2 || bs_facialHair->race != _player->getRace() || bs_facialHair->gender != _player->getGender()) return; - uint32 Cost = _player->GetBarberShopCost(bs_hair->hair_id, Color, bs_facialHair->hair_id); + BarberShopStyleEntry const* bs_skinTone = sBarberShopStyleStore.LookupEntry(SkinTone); + + if(!bs_skinTone || bs_skinTone->type != 3 || bs_skinTone->race != _player->getRace() || bs_skinTone->gender != _player->getGender()) + return; + + uint32 Cost = _player->GetBarberShopCost(bs_hair->hair_id, Color, bs_facialHair->hair_id, bs_skinTone->hair_id); // 0 - ok // 1,3 - not enough money @@ -1114,6 +1119,7 @@ void WorldSession::HandleAlterAppearance( WorldPacket & recv_data ) _player->SetByteValue(PLAYER_BYTES, 2, uint8(bs_hair->hair_id)); _player->SetByteValue(PLAYER_BYTES, 3, uint8(Color)); _player->SetByteValue(PLAYER_BYTES_2, 0, uint8(bs_facialHair->hair_id)); + _player->SetByteValue(PLAYER_BYTES, 0, uint8(bs_skinTone->hair_id)); _player->GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_VISIT_BARBER_SHOP, 1); diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 8d08e08..93f0dd6 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -20700,7 +20700,7 @@ bool Player::CanCaptureTowerPoint() ); } -uint32 Player::GetBarberShopCost(uint8 newhairstyle, uint8 newhaircolor, uint8 newfacialhair) +uint32 Player::GetBarberShopCost(uint8 newhairstyle, uint8 newhaircolor, uint8 newfacialhair, uint8 newskintone) { uint32 level = getLevel(); @@ -20710,8 +20710,10 @@ uint32 Player::GetBarberShopCost(uint8 newhairstyle, uint8 newhaircolor, uint8 n uint8 hairstyle = GetByteValue(PLAYER_BYTES, 2); uint8 haircolor = GetByteValue(PLAYER_BYTES, 3); uint8 facialhair = GetByteValue(PLAYER_BYTES_2, 0); + uint8 skintone = GetByteValue(PLAYER_BYTES, 0); - if((hairstyle == newhairstyle) && (haircolor == newhaircolor) && (facialhair == newfacialhair)) + if((hairstyle == newhairstyle) && (haircolor == newhaircolor) && (facialhair == newfacialhair) && + (skintone == newskintone)) return 0; GtBarberShopCostBaseEntry const *bsc = sGtBarberShopCostBaseStore.LookupEntry(level - 1); @@ -20730,6 +20732,9 @@ uint32 Player::GetBarberShopCost(uint8 newhairstyle, uint8 newhaircolor, uint8 n if(facialhair != newfacialhair) cost += bsc->cost * 0.75f; // +3/4 of price + if(skintone != newskintone) + cost += bsc->cost * 0.5f; // +1/2 of price + return uint32(cost); } diff --git a/src/game/Player.h b/src/game/Player.h index e218063..fe09fef 100644 --- a/src/game/Player.h +++ b/src/game/Player.h @@ -1150,7 +1150,7 @@ class MANGOS_DLL_SPEC Player : public Unit std::string afkMsg; std::string dndMsg; - uint32 GetBarberShopCost(uint8 newhairstyle, uint8 newhaircolor, uint8 newfacialhair); + uint32 GetBarberShopCost(uint8 newhairstyle, uint8 newhaircolor, uint8 newfacialhair, uint8 newskintone); PlayerSocial *GetSocial() { return m_social; } diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 084e122..d15cf52 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -3161,25 +3161,86 @@ void Aura::HandleAuraModShapeshift(bool apply, bool Real) modelid = ssEntry->modelID_A; else { - // players are a bit difficult since the dbc has seldomly an horde modelid - // so we add hacks here to set the right model - if (Player::TeamForRace(target->getRace()) == ALLIANCE) - modelid = ssEntry->modelID_A; - else // 3.2.3 only the moonkin form has this information - modelid = ssEntry->modelID_H; - + // The following are the different shapeshifting models for cat/bear forms according + // to hair color for druids and skin tone for tauren introduced in patch 3.2 + if (form == FORM_CAT || form == FORM_BEAR || form == FORM_DIREBEAR) + { + if (Player::TeamForRace(target->getRace()) == ALLIANCE) + { + uint8 hairColour = target->GetByteValue(PLAYER_BYTES, 3); + if (form == FORM_CAT) + { + if (hairColour >= 0 && hairColour <= 2) modelid = 29407; + else if (hairColour == 3 || hairColour == 5) modelid = 29405; + else if (hairColour == 6) modelid = 892; + else if (hairColour == 7) modelid = 29406; + else if (hairColour == 4) modelid = 29408; + } + else + { + if (hairColour >= 0 && hairColour <= 2) modelid = 29413; + else if (hairColour == 3 || hairColour == 5) modelid = 29415; + else if (hairColour == 6) modelid = 29414; + else if (hairColour == 7) modelid = 29417; + else if (hairColour == 4) modelid = 29416; + } + } + else if (Player::TeamForRace(target->getRace()) == HORDE) + { + uint8 skinColour = target->GetByteValue(PLAYER_BYTES, 0); + if (target->getGender() == GENDER_MALE) + { + if (form == FORM_CAT) + { + if (skinColour >= 0 && skinColour <= 5) modelid = 29412; + else if (skinColour >= 6 && skinColour <= 8) modelid = 29411; + else if (skinColour >= 9 && skinColour <= 11) modelid = 29410; + else if (skinColour >= 12 && skinColour <= 14 || skinColour == 18) modelid = 29409; + else if (skinColour >= 15 && skinColour <= 17) modelid = 8571; + } + else + { + if (skinColour >= 0 && skinColour <= 2) modelid = 29418; + else if (skinColour >= 3 && skinColour <= 5 || skinColour >= 12 && skinColour <= 14) modelid = 29419; + else if (skinColour >= 9 && skinColour <= 11 || skinColour >= 15 && skinColour <= 17) modelid = 29420; + else if (skinColour >= 6 && skinColour <= 8) modelid = 2289; + else if (skinColour == 18) modelid = 29421; + } + } + else + { + if (form == FORM_CAT) + { + if (skinColour >= 0 && skinColour <= 3) modelid = 29412; + else if (skinColour == 4 || skinColour == 5) modelid = 29411; + else if (skinColour == 6 || skinColour == 7) modelid = 29410; + else if (skinColour == 8 || skinColour == 9) modelid = 8571; + else if (skinColour == 10) modelid = 29409; + } + else + { + if (skinColour == 0 || skinColour == 1) modelid = 29418; + else if (skinColour == 2 || skinColour == 3) modelid = 29419; + else if (skinColour == 4 || skinColour == 5) modelid = 2289; + else if (skinColour >= 6 && skinColour <= 9) modelid = 29420; + else if (skinColour == 10) modelid = 29421; + } + } + } + } + else + { + if (Player::TeamForRace(target->getRace()) == ALLIANCE) modelid = ssEntry->modelID_A; + if (Player::TeamForRace(target->getRace()) == HORDE) modelid = ssEntry->modelID_H; + } // no model found, if player is horde we look here for our hardcoded modelids if (!modelid && Player::TeamForRace(target->getRace()) == HORDE) { - switch(form) { case FORM_CAT: - modelid = 8571; - break; case FORM_BEAR: case FORM_DIREBEAR: - modelid = 2289; break; case FORM_FLIGHT: modelid = 20872;
  6. my version diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 4303e17..11db5c1 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -6797,6 +6802,9 @@ void Spell::DoSummonTotem(SpellEffectIndex eff_idx, uint8 slot_dbc) modOwner->ApplySpellMod(m_spellInfo->Id, SPELLMOD_DURATION, duration); pTotem->SetDuration(duration); + if (m_spellInfo->Id == 16190) + damage = m_caster->GetMaxHealth() * m_spellInfo->CalculateSimpleValue(EFFECT_INDEX_1) / 100; + if (damage) // if not spell info, DB values used { pTotem->SetMaxHealth(damage);
  7. without mod or with disabled vmaps? looks funny, slime at Ruins of Lordaeron (arena) cause a damage, seems it works like lava
  8. still won't work EDIT: It just a problem with command "patch -p1 <" will see if it works after code moving to right place
  9. this patch will broke Spirit of Redemption talent work because this talent has our interrupt flag maybe it just a joke from blizzard... anyway i can't find any non-hack solution for this
  10. i heard reports from my offy players about this 0.5-1.5 second delay before remove aura, so this isn't a bug
  11. i was tried this, but seems it doesn't work... it still applying periodic heal without talent
  12. it's not hard to fix, just add another condition in "if" http://ru-mangos.ru/showthread.php?t=1280
  13. but there is no spell for that with aura 286
  14. as i understand it's related to latest changes with BIH. I was reverted this in my repo to be able compile again... also there is a typo with bool StaticMapTree::UnloadMap(VMapManager2 *vm) should be void StaticMapTree::UnloadMap(VMapManager2 *vm)
  15. compile errors with latest Lynx3d repo 1>------ Build started: Project: shared, Configuration: Release Win32 ------ 1>Extract revision 1>Compiling... 1>MapTree.cpp 1>BIH.cpp 1>c1xx : fatal error C1083: Cannot open source file: '..\\..\\..\\src\\shared\\vmap\\BIH.cpp': No such file or directory 1>c:\\mang\\dep\\ACE_wrappers\\ace/OS_NS_string.inl(222) : warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup. See online help for details. 1> H:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\include\\string.h(207) : see declaration of 'strdup' 1>c:\\mang\\dep\\ACE_wrappers\\ace/OS_NS_stdlib.inl(310) : warning C4996: 'putenv': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _putenv. See online help for details. 1> H:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\include\\stdlib.h(864) : see declaration of 'putenv' 1>c:\\mang\\dep\\ACE_wrappers\\ace/OS_NS_unistd.inl(59) : warning C4996: 'access': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _access. See online help for details. 1> H:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\include\\io.h(303) : see declaration of 'access' 1>c:\\mang\\dep\\ACE_wrappers\\ace/OS_NS_unistd.inl(131) : warning C4996: 'chdir': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _chdir. See online help for details. 1> H:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\include\\direct.h(127) : see declaration of 'chdir' 1>c:\\mang\\dep\\ACE_wrappers\\ace/OS_NS_unistd.inl(156) : warning C4996: 'rmdir': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _rmdir. See online help for details. 1> H:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\include\\direct.h(129) : see declaration of 'rmdir' 1>c:\\mang\\dep\\ACE_wrappers\\ace/OS_NS_unistd.inl(377) : warning C4996: 'getcwd': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _getcwd. See online help for details. 1> H:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\include\\direct.h(121) : see declaration of 'getcwd' 1>c:\\mang\\dep\\ACE_wrappers\\ace/OS_NS_unistd.inl(983) : warning C4996: 'swab': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _swab. See online help for details. 1> H:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\include\\stdlib.h(865) : see declaration of 'swab' 1>c:\\mang\\dep\\ACE_wrappers\\ace/OS_NS_unistd.inl(1127) : warning C4996: 'unlink': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _unlink. See online help for details. 1> H:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\include\\stdio.h(301) : see declaration of 'unlink' 1>..\\..\\src\\shared\\vmap\\MapTree.cpp(317) : warning C4018: '<' : signed/unsigned mismatch 1>c:\\mang\\src\\shared\\vmap\\maptree.cpp(322) : error C4716: 'VMAP::StaticMapTree::UnloadMap' : must return a value 1>Build log was saved at "file://c:\\mang\\win\\VC90\\shared__Win32_Release\\BuildLog.htm" 1>shared - 2 error(s), 9 warning(s)
  16. bug confirmed, i think related to new ACE realmd code. What operational system you are using? I have this bug at Windows 2003 server x64
  17. it looks like a memory leak... but i didn't seen any leaks for a long time I has average 2d of uptime at my local server with ~200 online.
  18. did you test your patch? It think this can make Will of the Forsaken to remove another CC effects that shouldn't be removed by this spell - it will start to work like insignia because you set mechanic=IMMUNE_TO_MOVEMENT_IMPAIRMENT_AND_LOSS_CONTROL_MASK; then remove auras with this mechanic m_target->RemoveAurasAtMechanicImmunity(mechanic,GetId()); Here MY version diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index e8b4529..b205b12 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -2736,10 +2736,14 @@ void Spell::cast(bool skipCheck) { if (m_spellInfo->Mechanic == MECHANIC_BANDAGE) // Bandages AddPrecastSpell(11196); // Recently Bandaged + else if(m_spellInfo->Id == 7744) + AddTriggeredSpell(72757); else if(m_spellInfo->Id == 20594) // Stoneskin AddTriggeredSpell(65116); // Stoneskin - armor 10% for 8 sec else if(m_spellInfo->Id == 71904) // Chaos Bane strength buff AddTriggeredSpell(73422); + else if(m_spellInfo->Id == 42292) + AddTriggeredSpell(72752); break; } case SPELLFAMILY_MAGE:
  19. ok, now it should work core patch DB patch part in Unit.cpp is too hacky, better to remove it
  20. probably related to this code block or other code that remove/apply UNIT_FLAG_MOUNT // cleanup mounted state (it will set correctly at aura loading if player saved at mount. SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, 0); // cleanup unit flags (will be re-applied if need at aura load). RemoveFlag( UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_NOT_ATTACKABLE_1 | UNIT_FLAG_OOC_NOT_ATTACKABLE | UNIT_FLAG_PASSIVE | UNIT_FLAG_LOOTING | UNIT_FLAG_PET_IN_COMBAT | UNIT_FLAG_SILENCED | UNIT_FLAG_PACIFIED | UNIT_FLAG_STUNNED | UNIT_FLAG_IN_COMBAT | UNIT_FLAG_DISARMED | UNIT_FLAG_CONFUSED | UNIT_FLAG_FLEEING | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_SKINNABLE | UNIT_FLAG_MOUNT | UNIT_FLAG_TAXI_FLIGHT ); SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP_ATTACKABLE ); // must be set in void Player::InitStatsForLevel(bool reapplyMods) file Player.cpp maybe at Unit.cpp void Unit::Mount(uint32 mount, uint32 spellId) SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, mount); it doesn't store original player size
  21. then we need to find from what revision it started... at first from what client patch, for example i didn't ever seen this bug at 3.3.2 patch, any confirm?
  22. does someone have any ideas why it happens? Maybe some mount or other flags are removed at entering into the game? Or maybe server starts thinking about a player as a player without mount but that had big size. As i see, i never get this bug when I'm playing with gnome or dwarf character, i can walk though doorway of Stormwind's bank, but i can't jump here, it's like roof level is lowered, it's invisible wall above O_o This bug is critical and needs to be fixed because it brokes gameplay at Alterac Valley battleground and other BG's
  23. Funny, this was reverted in http://github.com/mangos/mangos/commit/a3f6b5e78c02704e6607861dc89ab72e4fdd0e8b
  24. It happens when you login into game on mount
×
×
  • 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