Jump to content

apendix

Members
  • Posts

    33
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Everything posted by apendix

  1. apendix

    anti WPE

    maybe better solution http://code.google.com/p/trinitycore/issues/detail?id=1994&colspec=ID%20Type%20Status%20Stars%20Priority%20Summary%20Reporter%20Attachments%20Com
  2. apendix

    anti WPE

    // prevent equipping bag in the same slot from its inside if (IsBagPos(dst) && srcbag == dstslot) { SendEquipError(EQUIP_ERR_ITEMS_CANT_BE_SWAPPED, pSrcItem, pDstItem); return; } put it into player.cpp you can test it , it is from trinity forum
  3. apendix

    anti WPE

    any news or ideas how to stop using WPE hack?
  4. apendix

    Death Bug

    why dev does not put it into the oficial revison in mangos?
  5. apendix

    anti WPE

    i can confirm, i dont know if it is working on 3.2.2 patch , but on 3.1.3. is this hack very usefull for noob people
  6. i am not exactly sure but i think the DB part is still missing
  7. try to drop characters_aura in your character DB
  8. i use this and works fine too diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 321c18d..95a7841 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -2774,6 +2774,8 @@ void Aura::HandleAuraModShapeshift(bool apply, bool Real) // add/remove the shapeshift aura's boosts HandleShapeshiftBoosts(apply); + m_target->UpdateSpeed(MOVE_RUN, true); + if(m_target->GetTypeId() == TYPEID_PLAYER) ((Player*)m_target)->InitDataForForm(); } diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 2db68f7..0213a02 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -9264,6 +9264,21 @@ void Unit::UpdateSpeed(UnitMoveType mtype, bool forced) return; } + // Remove Druid Dash bonus if not in Cat Form + if (m_form != FORM_CAT) + { + AuraList const& speed_increase_auras = GetAurasByType(SPELL_AURA_MOD_INCREASE_SPEED); + for(AuraList::const_iterator itr = speed_increase_auras.begin(); itr != speed_increase_auras.end(); ++itr) + { + const SpellEntry* aura_proto = (*itr)->GetSpellProto(); + if (aura_proto->SpellFamilyName == SPELLFAMILY_DRUID && aura_proto->SpellIconID == 959) + { + main_speed_mod -= (*itr)->GetModifier()->m_amount; + break; + } + } + } + float bonus = non_stack_bonus > stack_bonus ? non_stack_bonus : stack_bonus; // now we ready for speed calculation float speed = main_speed_mod ? bonus*(100.0f + main_speed_mod)/100.0f : bonus;
  9. revision 8480 Sd 1392 YTDB 507 crash after this ../../../src/game/MapInstanced.cpp:124 in CreateInstance ASSERTION FAILED: NewInstanceId /opt/mangos/bin/mangos-worldd(_ZN12WorldSession28HandleMoveWorldportAckOp codeEv+0x233) [0x7f28f3] /opt/mangos/bin/mangos-worldd(_ZN12WorldSession6UpdateEj+0x1ee) [0x79393e] /opt/mangos/bin/mangos-worldd(_ZN5World14UpdateSessionsEj+0xf5) [0x789185] /opt/mangos/bin/mangos-worldd(_ZN5World6UpdateEj+0x169) [0x789479] /opt/mangos/bin/mangos-worldd(_ZN13WorldRunnable3runEv+0xdc) [0x4df64c] /opt/mangos/bin/mangos-worldd(_ZN9ACE_Based6Thread10ThreadTaskEPv+0x1c) [0x832a2c] /lib/libpthread.so.0 [0x7f6236295fc7] /lib/libc.so.6(clone+0x6d) [0x7f62358655ad] mangos-worldd: ../../../src/game/MapInstanced.cpp:124: Map* MapInstanced::CreateInstance(uint32, Player*): Assertion `"NewInstanceId" &&0' failed. and another one ../../../src/game/Object.h:482 in GetMap ASSERTION FAILED: m_currMap /opt/eq2/bin/mangos-worldd(_ZNK6Player12GetViewPointEv+0x28) [0x66a5b8] /opt/eq2/bin/mangos-worldd(_ZN5Group22UpdatePlayerOutOfRangeEP6Player+0xb0) [0x57cf00] /opt/eq2/bin/mangos-worldd(_ZN6Player6UpdateEj+0x504) [0x6bed44] /opt/eq2/bin/mangos-worldd(_ZN3Map6UpdateERKj+0x8d) [0x5e70cd] /opt/eq2/bin/mangos-worldd(_ZN10MapManager6UpdateEj+0x169) [0x5f7d59] /opt/eq2/bin/mangos-worldd(_ZN5World6UpdateEj+0x2b2) [0x7896d2] /opt/eq2/bin/mangos-worldd(_ZN13WorldRunnable3runEv+0xdc) [0x4df64c] /opt/eq2/bin/mangos-worldd(_ZN9ACE_Based6Thread10ThreadTaskEPv+0x1c) [0x832b3c] /lib/libpthread.so.0 [0x7f8d4953cfc7] /lib/libc.so.6(clone+0x6d) [0x7f8d48b0c5ad] mangos-worldd: ../../../src/game/Object.h:482: Map* WorldObject::GetMap() const: Assertion `"m_currMap" &&0' failed.
  10. original author is Astellar , i have only tested his patch
  11. this is spell disable patch diff --git a/src/game/Chat.cpp b/src/game/Chat.cpp index 3444776..2685798 100644 --- a/src/game/Chat.cpp +++ b/src/game/Chat.cpp @@ -454,6 +454,7 @@ ChatCommand * ChatHandler::getCommandTable() { "spell_scripts", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadSpellScriptsCommand, "", NULL }, { "spell_target_position", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadSpellTargetPositionCommand, "", NULL }, { "spell_threats", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadSpellThreatsCommand, "", NULL }, + { "spell_disabled", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadSpellDisabledCommand, "", NULL }, { NULL, 0, false, NULL, "", NULL } }; diff --git a/src/game/Chat.h b/src/game/Chat.h index 18ef9cc..08cb422 100644 --- a/src/game/Chat.h +++ b/src/game/Chat.h @@ -380,6 +380,7 @@ class ChatHandler bool HandleReloadSpellTargetPositionCommand(const char* args); bool HandleReloadSpellThreatsCommand(const char* args); bool HandleReloadSpellPetAurasCommand(const char* args); + bool HandleReloadSpellDisabledCommand(const char* args); bool HandleResetAchievementsCommand(const char * args); bool HandleResetAllCommand(const char * args); diff --git a/src/game/Level3.cpp b/src/game/Level3.cpp index 6eeaff4..1b1c243 100644 --- a/src/game/Level3.cpp +++ b/src/game/Level3.cpp @@ -162,6 +162,7 @@ bool ChatHandler::HandleReloadAllSpellCommand(const char*) HandleReloadSpellTargetPositionCommand("a"); HandleReloadSpellThreatsCommand("a"); HandleReloadSpellPetAurasCommand("a"); + HandleReloadSpellDisabledCommand("a"); return true; } @@ -812,6 +813,17 @@ bool ChatHandler::HandleReloadLocalesQuestCommand(const char* /*arg*/) return true; } +bool ChatHandler::HandleReloadSpellDisabledCommand(const char* /*arg*/) +{ + sLog.outString( "Re-Loading spell disabled table..."); + + objmgr.LoadSpellDisabledEntrys(); + + SendGlobalSysMessage("DB table `spell_disabled` reloaded."); + + return true; +} + bool ChatHandler::HandleLoadScriptsCommand(const char* args) { if(!LoadScriptingModule(args)) return true; diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp index 8f3e5e1..7ac4dea 100644 --- a/src/game/ObjectMgr.cpp +++ b/src/game/ObjectMgr.cpp @@ -6735,6 +6735,46 @@ const char *ObjectMgr::GetMangosString(int32 entry, int locale_idx) const return "<error>"; } +void ObjectMgr::LoadSpellDisabledEntrys() +{ + m_spell_disabled.clear(); // need for reload case + QueryResult *result = WorldDatabase.Query("SELECT entry, ischeat_spell FROM spell_disabled where active=1"); + + uint32 total_count = 0; + uint32 cheat_spell_count=0; + + if( !result ) + { + barGoLink bar( 1 ); + bar.step(); + + sLog.outString(); + sLog.outString( ">> Loaded %u disabled spells", total_count ); + return; + } + + barGoLink bar( result->GetRowCount() ); + + Field* fields; + do + { + bar.step(); + fields = result->Fetch(); + uint32 spellid = fields[0].GetUInt32(); + bool ischeater = fields[1].GetBool(); + m_spell_disabled[spellid] = ischeater; + ++total_count; + if(ischeater) + ++cheat_spell_count; + + } while ( result->NextRow() ); + + delete result; + + sLog.outString(); + sLog.outString( ">> Loaded %u disabled spells ( %u - is cheaters spells)", total_count, cheat_spell_count); +} + void ObjectMgr::LoadFishingBaseSkillLevel() { mFishingBaseForArea.clear(); // for reload case diff --git a/src/game/ObjectMgr.h b/src/game/ObjectMgr.h index 7aa3e30..3a64f38 100644 --- a/src/game/ObjectMgr.h +++ b/src/game/ObjectMgr.h @@ -694,7 +694,21 @@ class ObjectMgr static bool CheckDeclinedNames(std::wstring mainpart, DeclinedName const& names); - int GetIndexForLocale(LocaleConstant loc); + void LoadSpellDisabledEntrys(); + uint8 IsSpellDisabled(uint32 spellid) + { + uint8 result=0; + SpellDisabledMap::const_iterator itr = m_spell_disabled.find(spellid); + if(itr != m_spell_disabled.end()) + { + result=1; + if(itr->second != 0) + result=2; + } + return result; + } + + int GetIndexForLocale(LocaleConstant loc); LocaleConstant GetLocaleForIndex(int i); uint16 GetConditionId(ConditionType condition, uint32 value1, uint32 value2); @@ -813,6 +827,9 @@ class ObjectMgr typedef std::set<std::wstring> ReservedNamesMap; ReservedNamesMap m_ReservedNames; + typedef UNORDERED_MAP<uint32, uint32> SpellDisabledMap; + SpellDisabledMap m_spell_disabled; + GraveYardMap mGraveYardMap; GameTeleMap m_GameTeleMap; diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 338c00e..b011eb1 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -2246,6 +2246,19 @@ void Spell::Prepare(SpellCastTargets const* targets, Aura* triggeredByAura) return; } + if(uint8 result = objmgr.IsSpellDisabled(m_spellInfo->Id)) + { + if(m_caster->GetTypeId() == TYPEID_PLAYER) + { + sLog.outDebug("Player %s cast a spell %u which was disabled by server administrator", m_caster->GetName(), m_spellInfo->Id); + if(result == 2) + sLog.outChar("Player %s cast a spell %u which was disabled by server administrator and marked as CheatSpell", m_caster->GetName(), m_spellInfo->Id); + } + SendCastResult(SPELL_FAILED_SPELL_UNAVAILABLE); + finish(false); + return; + } + // Fill cost data m_powerCost = CalculatePowerCost(); diff --git a/src/game/World.cpp b/src/game/World.cpp index 1bfe545..8cca693 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -1259,6 +1259,9 @@ void World::SetInitialWorldSettings() sLog.outString( "Loading Player Corpses..." ); objmgr.LoadCorpses(); + sLog.outString( "Loading Spell disabled..." ); + objmgr.LoadSpellDisabledEntrys(); + sLog.outString( "Loading Loot Tables..." ); sLog.outString(); LoadLootTables(); sql part of this patch CREATE TABLE spell_disabled ( entry int(11) unsigned NOT NULL default '0' COMMENT 'spell entry', ischeat_spell tinyint(3) unsigned NOT NULL default '0' COMMENT 'mark spell as cheat', active tinyint(3) unsigned NOT NULL default '1' COMMENT 'enable check of this spell', PRIMARY KEY (entry) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Dissabled Spell System';
  12. you can test this patch diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 23020ca..cc6562e 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -1774,6 +1774,33 @@ void Spell::EffectDummy(uint32 i) } return; } + switch(m_spellInfo->Id) + { + // Death Grip + case 49560: + case 49576: + { + if (!unitTarget || !m_caster) + return; + + float x = m_caster->GetPositionX(); + float y = m_caster->GetPositionY(); + float z = m_caster->GetPositionZ()+1; + float orientation = unitTarget->GetOrientation(); + + m_caster->CastSpell(unitTarget,51399,true,NULL); + + if(unitTarget->GetTypeId() != TYPEID_PLAYER) + { + unitTarget->GetMap()->CreatureRelocation((Creature*)unitTarget,x,y,z,orientation); + ((Creature*)unitTarget)->SendMonsterMove(x, y, z, orientation, MONSTER_MOVE_UNK12, 1); + } + else + unitTarget->NearTeleportTo(x,y,z,orientation,false); + + return; + } + } break; }
  13. revision 8392 ytdb 504 sd latest i think this talent does not working anymore, can anyone confirm this?
  14. try test something like this diff --git a/src/game/Item.cpp b/src/game/Item.cpp index 52ed24b..e9475e1 100644 --- a/src/game/Item.cpp +++ b/src/game/Item.cpp @@ -741,6 +741,10 @@ bool Item::IsFitToSpellRequirements(SpellEntry const* spellInfo) const { ItemPrototype const* proto = GetProto(); + //Lava Lash + if (spellInfo->Id==60103 && spellInfo->EquippedItemClass==ITEM_CLASS_WEAPON) + return true; + if (spellInfo->EquippedItemClass != -1) // -1 == any item class { if(spellInfo->EquippedItemClass != int32(proto->Class))
  15. i agree with you ,it will be very helpful
  16. patch can you apply with command git apply xxx.patch ( for example git apply /pathtopatch/hungerofblood.patch)
  17. hi, try these crash fixes and the report if it help you diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index b86d35b..7970f7c 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -7018,7 +7018,7 @@ void Aura::UnregisterSingleCastAura() else { sLog.outError("Couldn't find the caster of the single target aura (SpellId %u), may crash later!", GetId()); - assert(false); + //assert(false); } m_isSingleTargetAura = false; } diff --git a/src/game/Object.h b/src/game/Object.h index 1a697fe..651e344 100644 --- a/src/game/Object.h +++ b/src/game/Object.h @@ -421,7 +421,10 @@ class MANGOS_DLL_SPEC WorldObject : public Object float GetDistanceZ(const WorldObject* obj) const; bool IsInMap(const WorldObject* obj) const { - return IsInWorld() && obj->IsInWorld() && (GetMap() == obj->GetMap()) && InSamePhase(obj); + if(obj) + return IsInWorld() && obj->IsInWorld() && (GetMap() == obj->GetMap()) && InSamePhase(obj); + else + return false; } bool IsWithinDist3d(float x, float y, float z, float dist2compare) const; bool IsWithinDist2d(float x, float y, float dist2compare) const;
  18. waza123 why are you report same crash so many time? why you spam this topic? you make here chaos
  19. addon chatcopy can help you with these fake messages
×
×
  • 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