apendix
Members-
Posts
33 -
Joined
-
Last visited
Never -
Donations
0.00 GBP
About apendix
- Birthday 01/01/1970
apendix's Achievements
Advanced Member (3/3)
0
Reputation
-
apendix joined the community
-
maybe better solution http://code.google.com/p/trinitycore/issues/detail?id=1994&colspec=ID%20Type%20Status%20Stars%20Priority%20Summary%20Reporter%20Attachments%20Com
-
// 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
-
any news or ideas how to stop using WPE hack?
-
why dev does not put it into the oficial revison in mangos?
-
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
-
i am not exactly sure but i think the DB part is still missing
-
try to drop characters_aura in your character DB
-
[patch] Dash fix - disable Dash when not in Cat Form.
apendix replied to Auntie Mangos's topic in ... under reviewOld
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; -
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.
-
wrong section, pls mod delete it
-
original author is Astellar , i have only tested his patch
-
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';
-
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; }
-
yes i think this bug
-
any progress with this important bug?
Contact Us
To contact us
click here
You can also email us at [email protected]
Privacy Policy | Terms & Conditions
You can also email us at [email protected]
Privacy Policy | Terms & Conditions
Copyright © getMaNGOS. All rights Reserved.
This website is in no way associated with or endorsed by Blizzard Entertainment®
This website is in no way associated with or endorsed by Blizzard Entertainment®