diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/def_blood_furnace.h | 17 | ||||
-rw-r--r-- | src/game/Group.cpp | 7 | ||||
-rw-r--r-- | src/game/Level1.cpp | 12 | ||||
-rw-r--r-- | src/game/Spell.cpp | 5 | ||||
-rw-r--r-- | src/game/SpellEffects.cpp | 5 | ||||
-rw-r--r-- | src/trinitycore/CMakeLists.txt | 1 |
6 files changed, 31 insertions, 16 deletions
diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/def_blood_furnace.h b/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/def_blood_furnace.h index 52677a6da37..b845c66823f 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/def_blood_furnace.h +++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/def_blood_furnace.h @@ -1,18 +1,6 @@ /* Copyright (C) 2006 - 2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/> - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ + * This program is free software licensed under GPL version 2 + * Please see the included DOCS/LICENSE.TXT for more information */ #ifndef DEF_BLOOD_FURNACE_H #define DEF_BLOOD_FURNACE_H @@ -39,4 +27,3 @@ #define DATA_PRISON_CELL8 20 #endif - diff --git a/src/game/Group.cpp b/src/game/Group.cpp index 24e5601abe8..c08d1236c32 100644 --- a/src/game/Group.cpp +++ b/src/game/Group.cpp @@ -1511,7 +1511,12 @@ void Group::ResetInstances(uint8 method, Player* SendMsgTo) // if the map is loaded, reset it Map *map = MapManager::Instance().FindMap(p->GetMapId(), p->GetInstanceId()); if(map && map->IsDungeon()) - isEmpty = ((InstanceMap*)map)->Reset(method); + { + if(p->CanReset()) + isEmpty = ((InstanceMap*)map)->Reset(method); + else + isEmpty = !map->HavePlayers(); + } if(SendMsgTo) { diff --git a/src/game/Level1.cpp b/src/game/Level1.cpp index 43e7fb74660..51e94452399 100644 --- a/src/game/Level1.cpp +++ b/src/game/Level1.cpp @@ -55,6 +55,15 @@ bool ChatHandler::HandleNpcSayCommand(const char* args) pCreature->MonsterSay(args, LANG_UNIVERSAL, 0); + // make some emotes + char lastchar = args[strlen(args) - 1]; + switch(lastchar) + { + case '?': pCreature->HandleEmoteCommand(EMOTE_ONESHOT_QUESTION); break; + case '!': pCreature->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION); break; + default: pCreature->HandleEmoteCommand(EMOTE_ONESHOT_TALK); break; + } + return true; } @@ -73,6 +82,9 @@ bool ChatHandler::HandleNpcYellCommand(const char* args) pCreature->MonsterYell(args, LANG_UNIVERSAL, 0); + // make an emote + pCreature->HandleEmoteCommand(EMOTE_ONESHOT_SHOUT); + return true; } diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 89eb18f2486..ed818d95570 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -3251,6 +3251,11 @@ void Spell::SendSpellGo() //sLog.outDebug("Sending SMSG_SPELL_GO id=%u", m_spellInfo->Id); uint32 castFlags = CAST_FLAG_UNKNOWN3; + + // triggered spells with spell visual != 0 + if(m_IsTriggeredSpell || m_triggeredByAuraSpell) + castFlags |= CAST_FLAG_UNKNOWN0; + if(m_spellInfo->Attributes & SPELL_ATTR_REQ_AMMO) castFlags |= CAST_FLAG_AMMO; // arrows/bullets visual if ((m_caster->GetTypeId() == TYPEID_PLAYER || diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 2aa9413ede9..01e7ec07c05 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -4157,6 +4157,11 @@ void Spell::EffectTaunt(uint32 /*i*/) unitTarget->getThreatManager().addThreat(m_caster, itsThreat - myThreat); } + //Set aggro victim to caster + if( !unitTarget->getThreatManager().getOnlineContainer().empty() ) + if(HostilReference* forcedVictim = unitTarget->getThreatManager().getOnlineContainer().getReferenceByTarget(m_caster)) + unitTarget->getThreatManager().setCurrentVictim(forcedVictim); + if(((Creature*)unitTarget)->IsAIEnabled && !((Creature*)unitTarget)->HasReactState(REACT_PASSIVE)) ((Creature*)unitTarget)->AI()->AttackStart(m_caster); } diff --git a/src/trinitycore/CMakeLists.txt b/src/trinitycore/CMakeLists.txt index 268b38f55a5..81dfb849ce7 100644 --- a/src/trinitycore/CMakeLists.txt +++ b/src/trinitycore/CMakeLists.txt @@ -43,6 +43,7 @@ trinityauth trinityconfig vmaps ZThread +termcap g3dlite readline gomp |