Jump to content

apendix

Members
  • Posts

    33
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

About apendix

  • Birthday 01/01/1970

apendix's Achievements

Advanced Member

Advanced Member (3/3)

0

Reputation

  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; }
×
×
  • 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