diff options
| -rw-r--r-- | dep/src/g3dlite/Makefile.am | 41 | ||||
| -rw-r--r-- | dep/src/zlib/Makefile.am | 56 | ||||
| -rw-r--r-- | dep/src/zthread/Makefile.am | 132 | ||||
| -rw-r--r-- | sql/updates/1261_world.sql | 1 | ||||
| -rw-r--r-- | sql/updates/1265_world.sql | 1 | ||||
| -rw-r--r-- | src/bindings/scripts/ScriptMgr.cpp | 24 | ||||
| -rw-r--r-- | src/bindings/scripts/ScriptMgr.h | 2 | ||||
| -rw-r--r-- | src/bindings/scripts/scripts/go/go_scripts.cpp | 19 | ||||
| -rw-r--r-- | src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp | 57 | ||||
| -rw-r--r-- | src/game/MiscHandler.cpp | 74 | ||||
| -rw-r--r-- | src/game/NPCHandler.cpp | 4 | ||||
| -rw-r--r-- | src/game/ScriptCalls.cpp | 2 | ||||
| -rw-r--r-- | src/game/ScriptCalls.h | 4 | 
13 files changed, 186 insertions, 231 deletions
diff --git a/dep/src/g3dlite/Makefile.am b/dep/src/g3dlite/Makefile.am deleted file mode 100644 index 0130a29f571..00000000000 --- a/dep/src/g3dlite/Makefile.am +++ /dev/null @@ -1,41 +0,0 @@ -## Modified for Trinity <http://www.trinitycore.org/> -## -## Permission is hereby granted, free of charge, to any person obtaining a copy -## of this software and associated documentation files (the "Software"), to deal -## in the Software without restriction, including without limitation the rights -## to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -## copies of the Software, and to permit persons to whom the Software is furnished -## to do so, subject to the following conditions: -##  -## The above copyright notice and this permission notice shall be included in all -## copies or substantial portions of the Software. -##  -## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -## AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -## WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -## CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -## Process this file with automake to produce Makefile.in - -## CPP flags for includes, defines, etc. -AM_CPPFLAGS = -I$(srcdir) -I$(srcdir)/../../include -I$(srcdir)/../../include/g3dlite - -noinst_LIBRARIES = libg3dlite.a -libg3dlite_a_SOURCES = \ -	AABox.cpp \ -	Box.cpp \ -	Crypto.cpp \ -	format.cpp \ -	Matrix3.cpp \ -	Plane.cpp \ -	System.cpp \ -	Triangle.cpp \ -	Vector3.cpp \ -	Vector4.cpp - -EXTRA_DIST = \ -	license.html - - diff --git a/dep/src/zlib/Makefile.am b/dep/src/zlib/Makefile.am deleted file mode 100644 index 9be7fb3b97e..00000000000 --- a/dep/src/zlib/Makefile.am +++ /dev/null @@ -1,56 +0,0 @@ -## Modified for Trinity <http://www.trinitycore.org/> -## -## Permission is hereby granted, free of charge, to any person obtaining a copy -## of this software and associated documentation files (the "Software"), to deal -## in the Software without restriction, including without limitation the rights -## to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -## copies of the Software, and to permit persons to whom the Software is furnished -## to do so, subject to the following conditions: -##  -## The above copyright notice and this permission notice shall be included in all -## copies or substantial portions of the Software. -##  -## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -## AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -## WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -## CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -## Process this file with automake to produce Makefile.in - -## CPP flags for includes, defines, etc. -AM_CPPFLAGS = -I$(srcdir) -I$(srcdir)/../../include -I$(srcdir)/../../include/zlib - -## Build zlib as convenience library. -#  libzlib conveniece library will later be reused by ... -noinst_LIBRARIES = libzlib.a -libzlib_a_SOURCES = \ -	adler32.c \ -	compress.c \ -	crc32.c \ -	deflate.c \ -	example.c \ -	gzio.c \ -	infback.c \ -	inffast.c \ -	inflate.c \ -	inftrees.c \ -	trees.c \ -	uncompr.c \ -	zutil.c - -## Additional files to include when running 'make dist' -#  Nothing yet. -EXTRA_DIST = \ -	crc32.h \ -	deflate.h \ -	inffast.h \ -	inffixed.h \ -	inflate.h \ -	inftrees.h \ -	trees.h \ -	zconf.h \ -	zlib.h \ -	zutil.h - diff --git a/dep/src/zthread/Makefile.am b/dep/src/zthread/Makefile.am deleted file mode 100644 index df92221c926..00000000000 --- a/dep/src/zthread/Makefile.am +++ /dev/null @@ -1,132 +0,0 @@ -## Copyright (c) 2005, Eric Crahen -## Modified for Trinity <http://www.trinitycore.org/> -## -## Permission is hereby granted, free of charge, to any person obtaining a copy -## of this software and associated documentation files (the "Software"), to deal -## in the Software without restriction, including without limitation the rights -## to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -## copies of the Software, and to permit persons to whom the Software is furnished -## to do so, subject to the following conditions: -##  -## The above copyright notice and this permission notice shall be included in all -## copies or substantial portions of the Software. -##  -## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -## AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -## WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -## CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -## Process this file with automake to produce Makefile.in - -## CPP flags for includes, defines, etc. -AM_CPPFLAGS = -I$(srcdir)/../../include -I$(srcdir)/../../include/zthread - -## Build ZThread as shared library. -#  libZThread shared library will later be reused by realm list daemon -#  and world server daemon. -lib_LTLIBRARIES = libZThread.la -libZThread_la_SOURCES = \ -	AtomicCount.cxx \ -	Condition.cxx \ -	ConcurrentExecutor.cxx \ -	CountingSemaphore.cxx \ -	FastMutex.cxx \ -	FastRecursiveMutex.cxx \ -	Mutex.cxx \ -	RecursiveMutexImpl.cxx \ -	RecursiveMutex.cxx \ -	Monitor.cxx \ -	PoolExecutor.cxx \ -	PriorityCondition.cxx \ -	PriorityInheritanceMutex.cxx \ -	PriorityMutex.cxx \ -	PrioritySemaphore.cxx \ -	Semaphore.cxx \ -	SynchronousExecutor.cxx \ -	Thread.cxx \ -	ThreadedExecutor.cxx \ -	ThreadImpl.cxx \ -	ThreadLocalImpl.cxx \ -	ThreadQueue.cxx \ -	Time.cxx \ -	ThreadOps.cxx - -## libtool settings -#  API versioning -#  Link against dependencies  -#  How to increase version info: -#  - only bug fixes implemented: -#    bump the version to LTZTHREAD_CURRENT:LTZTHREAD_REVISION+1:LTZTHREAD_AGE -#  - augmented the interface: -#    bump the version to LTZTHREAD_CURRENT+1:0:LTZTHREAD_AGE+1 -#  - broken old interface: -#    bump the version to LTZTHREAD_CURRENT+1:0:0 -LTZTHREAD_CURRENT = 2 -LTZTHREAD_REVISION = 3 -LTZTHREAD_AGE = 2 -libZThread_la_LDFLAGS = -version-info $(LTZTHREAD_CURRENT):$(LTZTHREAD_REVISION):$(LTZTHREAD_AGE) - -## Additional files to include when running 'make dist' -#  Header files. -EXTRA_DIST = \ -	ConditionImpl.h \ -	Debug.h \ -	DeferredInterruptionScope.h \ -	FastLock.h \ -	FastRecursiveLock.h \ -	IntrusivePtr.h \ -	Monitor.h \ -	MutexImpl.h \ -	RecursiveMutexImpl.h \ -	Scheduling.h \ -	SemaphoreImpl.h \ -	State.h \ -	Status.h \ -	TSS.h \ -	ThreadImpl.h \ -	ThreadOps.h \ -	ThreadQueue.h \ -	TimeStrategy.h \ -	config.h - -#  Implementation specific files. -EXTRA_DIST += \ -	linux/AtomicCount.cxx \ -	linux/AtomicFastLock.h \ -	linux/FastRecursiveLock.h \ -	macos/FastLock.h \ -	macos/Monitor.cxx \ -	macos/Monitor.h \ -	macos/TSS.h \ -	macos/ThreadOps.cxx \ -	macos/ThreadOps.h \ -	macos/UpTimeStrategy.h \ -	posix/ConditionRecursiveLock.h \ -	posix/FastLock.h \ -	posix/FtimeStrategy.h \ -	posix/GetTimeOfDayStrategy.h \ -	posix/Monitor.cxx \ -	posix/Monitor.h \ -	posix/PriorityOps.h \ -	posix/TSS.h \ -	posix/ThreadOps.cxx \ -	posix/ThreadOps.h \ -	solaris/FastRecursiveLock.h \ -	vanilla/DualMutexRecursiveLock.h \ -	vanilla/SimpleAtomicCount.cxx \ -	vanilla/SimpleRecursiveLock.h \ -	win32/AtomicCount.cxx \ -	win32/AtomicFastLock.h \ -	win32/AtomicFastRecursiveLock.h \ -	win32/FastLock.h \ -	win32/FastRecursiveLock.h \ -	win32/Monitor.cxx \ -	win32/Monitor.h \ -	win32/PerformanceCounterStrategy.h \ -	win32/TSS.h \ -	win32/ThreadOps.cxx \ -	win32/ThreadOps.h \ -	win9x/AtomicCount.cxx \ -	win9x/AtomicFastLock.h diff --git a/sql/updates/1261_world.sql b/sql/updates/1261_world.sql new file mode 100644 index 00000000000..3f97153d3dd --- /dev/null +++ b/sql/updates/1261_world.sql @@ -0,0 +1 @@ +UPDATE `gameobject_template` SET `scriptname` = 'go_sacred_fire_of_life' WHERE `entry` = 175944; diff --git a/sql/updates/1265_world.sql b/sql/updates/1265_world.sql new file mode 100644 index 00000000000..5b5b87523cc --- /dev/null +++ b/sql/updates/1265_world.sql @@ -0,0 +1 @@ +UPDATE `gameobject_template` SET `scriptname`='go_skull_pile' WHERE `entry`=185913; diff --git a/src/bindings/scripts/ScriptMgr.cpp b/src/bindings/scripts/ScriptMgr.cpp index 09bbf7955e8..7987d5f1788 100644 --- a/src/bindings/scripts/ScriptMgr.cpp +++ b/src/bindings/scripts/ScriptMgr.cpp @@ -2303,6 +2303,30 @@ bool GossipSelectWithCode( Player *player, Creature *_Creature, uint32 sender, u  }  TRINITY_DLL_EXPORT +bool GOSelect( Player *player, GameObject *_GO, uint32 sender, uint32 action ) +{ +    debug_log("TSCR: Gossip selection, sender: %d, action: %d",sender, action); + +    Script *tmpscript = m_scripts[_GO->GetGOInfo()->ScriptId]; +    if(!tmpscript || !tmpscript->pGOSelect) return false; + +    player->PlayerTalkClass->ClearMenus(); +    return tmpscript->pGOSelect(player,_GO,sender,action); +} + +TRINITY_DLL_EXPORT +bool GOSelectWithCode( Player *player, GameObject *_GO, uint32 sender, uint32 action, const char* sCode ) +{ +    debug_log("TSCR: Gossip selection, sender: %d, action: %d",sender, action); + +    Script *tmpscript = m_scripts[_GO->GetGOInfo()->ScriptId]; +    if(!tmpscript || !tmpscript->pGOSelectWithCode) return false; + +    player->PlayerTalkClass->ClearMenus(); +    return tmpscript->pGOSelectWithCode(player,_GO,sender,action,sCode); +} + +TRINITY_DLL_EXPORT  bool QuestAccept( Player *player, Creature *_Creature, Quest const *_Quest )  {      Script *tmpscript = m_scripts[_Creature->GetScriptId()]; diff --git a/src/bindings/scripts/ScriptMgr.h b/src/bindings/scripts/ScriptMgr.h index 7d814c373da..69ade0e4a45 100644 --- a/src/bindings/scripts/ScriptMgr.h +++ b/src/bindings/scripts/ScriptMgr.h @@ -45,6 +45,8 @@ struct Script      bool (*pQuestAccept         )(Player*, Creature*, Quest const* );      bool (*pGossipSelect        )(Player*, Creature*, uint32 , uint32 );      bool (*pGossipSelectWithCode)(Player*, Creature*, uint32 , uint32 , const char* ); +    bool (*pGOSelect            )(Player*, GameObject*, uint32 , uint32 ); +    bool (*pGOSelectWithCode    )(Player*, GameObject*, uint32 , uint32 , const char* );      bool (*pQuestSelect         )(Player*, Creature*, Quest const* );      bool (*pQuestComplete       )(Player*, Creature*, Quest const* );      uint32 (*pNPCDialogStatus   )(Player*, Creature* ); diff --git a/src/bindings/scripts/scripts/go/go_scripts.cpp b/src/bindings/scripts/scripts/go/go_scripts.cpp index faa55482b8a..bfa0eff3dd8 100644 --- a/src/bindings/scripts/scripts/go/go_scripts.cpp +++ b/src/bindings/scripts/scripts/go/go_scripts.cpp @@ -219,6 +219,20 @@ bool GOHello_go_ethereum_prison(Player *player, GameObject* _GO)  return true;  } +/*###### +## go_sacred_fire_of_life +######*/ + +#define NPC_ARIKARA  10882 + +bool GOHello_go_sacred_fire_of_life(Player* pPlayer, GameObject* pGO) +{ +    if (pGO->GetGoType() == GAMEOBJECT_TYPE_GOOBER) +        pPlayer->SummonCreature(NPC_ARIKARA, -5008.338, -2118.894, 83.657, 0.874, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000); + +    return true; +} +  void AddSC_go_scripts()  {      Script *newscript; @@ -283,5 +297,10 @@ void AddSC_go_scripts()      newscript->pGOHello =           &GOHello_go_ethereum_prison;      newscript->RegisterSelf(); +    newscript = new Script; +    newscript->Name = "go_sacred_fire_of_life"; +    newscript->pGOHello =           &GOHello_go_sacred_fire_of_life; +    newscript->RegisterSelf(); +  } diff --git a/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp b/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp index 90ba27b2511..914714dd4aa 100644 --- a/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp +++ b/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp @@ -491,6 +491,56 @@ CreatureAI* GetAI_npc_isla_starmaneAI(Creature *_Creature)      return (CreatureAI*)thisAI;  } +/*###### +## go_skull_pile +######*/ +#define GOSSIP_S_DARKSCREECHER_AKKARAI         "Summon Darkscreecher Akkarai" +#define GOSSIP_S_KARROG         "Summon Karrog" +#define GOSSIP_S_GEZZARAK_THE_HUNTRESS         "Summon Gezzarak the Huntress" +#define GOSSIP_S_VAKKIZ_THE_WINDRAGER         "Summon Vakkiz the Windrager" + +bool GossipHello_go_skull_pile(Player *player, GameObject* _GO) +{ +    if (player->GetQuestStatus(11885) == QUEST_STATUS_INCOMPLETE) +    { +        player->ADD_GOSSIP_ITEM(1, GOSSIP_S_DARKSCREECHER_AKKARAI, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); +        player->ADD_GOSSIP_ITEM(2, GOSSIP_S_KARROG, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); +        player->ADD_GOSSIP_ITEM(3, GOSSIP_S_GEZZARAK_THE_HUNTRESS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3); +        player->ADD_GOSSIP_ITEM(4, GOSSIP_S_VAKKIZ_THE_WINDRAGER, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4); +    } + +    player->SEND_GOSSIP_MENU(_GO->GetGOInfo()->questgiver.gossipID, _GO->GetGUID()); +    return true; +} + +void SendActionMenu_go_skull_pile(Player *player, GameObject* _GO, uint32 action) +{ +    switch(action) +    { +        case GOSSIP_ACTION_INFO_DEF + 1: +              player->CastSpell(player,40642,false); +            break; +        case GOSSIP_ACTION_INFO_DEF + 2: +              player->CastSpell(player,40640,false); +            break; +        case GOSSIP_ACTION_INFO_DEF + 3: +              player->CastSpell(player,40632,false); +            break; +        case GOSSIP_ACTION_INFO_DEF + 4: +              player->CastSpell(player,40644,false); +            break; +    } +} + +bool GossipSelect_go_skull_pile(Player *player, GameObject* _GO, uint32 sender, uint32 action ) +{ +    switch(sender) +    { +        case GOSSIP_SENDER_MAIN:    SendActionMenu_go_skull_pile(player, _GO, action); break; +    } +    return true; +} +  void AddSC_terokkar_forest()  {      Script *newscript; @@ -532,5 +582,12 @@ void AddSC_terokkar_forest()      newscript->GetAI = &GetAI_npc_isla_starmaneAI;      newscript->pQuestAccept = &QuestAccept_npc_isla_starmane;      newscript->RegisterSelf(); + +    newscript = new Script; +    newscript->Name="go_skull_pile"; +    newscript->pGOHello  = &GossipHello_go_skull_pile; +    newscript->pGOSelect = &GossipSelect_go_skull_pile; +    newscript->RegisterSelf(); +  } diff --git a/src/game/MiscHandler.cpp b/src/game/MiscHandler.cpp index 7b1a3731d16..35842906e49 100644 --- a/src/game/MiscHandler.cpp +++ b/src/game/MiscHandler.cpp @@ -26,6 +26,7 @@  #include "Opcodes.h"  #include "Log.h"  #include "Player.h" +#include "GossipDef.h"  #include "World.h"  #include "ObjectMgr.h"  #include "WorldSession.h" @@ -68,6 +69,79 @@ void WorldSession::HandleRepopRequestOpcode( WorldPacket & /*recv_data*/ )      GetPlayer()->RepopAtGraveyard();  } +void WorldSession::HandleGossipSelectOptionOpcode( WorldPacket & recv_data ) +{ +    CHECK_PACKET_SIZE(recv_data,8+4+4); + +    sLog.outDebug("WORLD: CMSG_GOSSIP_SELECT_OPTION"); + +    uint32 option; +    uint32 unk; +    uint64 guid; +    std::string code = ""; + +    recv_data >> guid >> unk >> option; + +    if(_player->PlayerTalkClass->GossipOptionCoded( option )) +    { +        // recheck +        CHECK_PACKET_SIZE(recv_data,8+4+1); +        sLog.outBasic("reading string"); +        recv_data >> code; +        sLog.outBasic("string read: %s", code.c_str()); +    } + +    Creature *unit = NULL; +    GameObject *go = NULL; +    if(IS_CREATURE_GUID(guid)) +    { +        unit = ObjectAccessor::GetNPCIfCanInteractWith(*_player, guid, UNIT_NPC_FLAG_NONE); +        if (!unit) +        { +            sLog.outDebug( "WORLD: HandleGossipSelectOptionOpcode - Unit (GUID: %u) not found or you can't interact with him.", uint32(GUID_LOPART(guid)) ); +            return; +        } +    } +    else if(IS_GAMEOBJECT_GUID(guid)) +    { +        go = ObjectAccessor::GetGameObject(*_player, guid); +        if (!go) +        { +            sLog.outDebug( "WORLD: HandleGossipSelectOptionOpcode - GameObject (GUID: %u) not found.", uint32(GUID_LOPART(guid)) ); +            return; +        } +    } +    else +    { +        sLog.outDebug( "WORLD: HandleGossipSelectOptionOpcode - unsupported GUID type for highguid %u. lowpart %u.", uint32(GUID_HIPART(guid)), uint32(GUID_LOPART(guid)) ); +    } + +    // remove fake death +    if(GetPlayer()->hasUnitState(UNIT_STAT_DIED)) +        GetPlayer()->RemoveSpellsCausingAura(SPELL_AURA_FEIGN_DEATH); + +    if(!code.empty()) +    { +        if(unit) +        { +            if(!Script->GossipSelectWithCode( _player, unit, _player->PlayerTalkClass->GossipOptionSender( option ), _player->PlayerTalkClass->GossipOptionAction( option ), code.c_str()) ) +                unit->OnGossipSelect( _player, option ); +        } +        else +            Script->GOSelectWithCode( _player, go, _player->PlayerTalkClass->GossipOptionSender( option ), _player->PlayerTalkClass->GossipOptionAction( option ), code.c_str()); +    } +    else +    { +        if(unit) +        { +            if(!Script->GossipSelect( _player, unit, _player->PlayerTalkClass->GossipOptionSender( option ), _player->PlayerTalkClass->GossipOptionAction( option )) ) +                unit->OnGossipSelect( _player, option ); +        } +        else +            Script->GOSelect( _player, go, _player->PlayerTalkClass->GossipOptionSender( option ), _player->PlayerTalkClass->GossipOptionAction( option )); +    } +} +  void WorldSession::HandleWhoOpcode( WorldPacket & recv_data )  {      CHECK_PACKET_SIZE(recv_data,4+4+1+1+4+4+4+4); diff --git a/src/game/NPCHandler.cpp b/src/game/NPCHandler.cpp index b52afb42b24..134789a4e31 100644 --- a/src/game/NPCHandler.cpp +++ b/src/game/NPCHandler.cpp @@ -306,7 +306,7 @@ void WorldSession::HandleGossipHelloOpcode( WorldPacket & recv_data )      }  } -void WorldSession::HandleGossipSelectOptionOpcode( WorldPacket & recv_data ) +/*void WorldSession::HandleGossipSelectOptionOpcode( WorldPacket & recv_data )  {      CHECK_PACKET_SIZE(recv_data,8+4+4); @@ -349,7 +349,7 @@ void WorldSession::HandleGossipSelectOptionOpcode( WorldPacket & recv_data )          if (!Script->GossipSelect (_player, unit, _player->PlayerTalkClass->GossipOptionSender (option), _player->PlayerTalkClass->GossipOptionAction (option)))             unit->OnGossipSelect (_player, option);      } -} +}*/  void WorldSession::HandleSpiritHealerActivateOpcode( WorldPacket & recv_data )  { diff --git a/src/game/ScriptCalls.cpp b/src/game/ScriptCalls.cpp index 66d41304f7f..b042c1aafac 100644 --- a/src/game/ScriptCalls.cpp +++ b/src/game/ScriptCalls.cpp @@ -64,6 +64,8 @@ bool LoadScriptingModule(char const* libName)          ||!(testScript->QuestAccept         =(scriptCallQuestAccept         )TRINITY_GET_PROC_ADDR(testScript->hScriptsLib,"QuestAccept"         ))          ||!(testScript->GossipSelect        =(scriptCallGossipSelect        )TRINITY_GET_PROC_ADDR(testScript->hScriptsLib,"GossipSelect"        ))          ||!(testScript->GossipSelectWithCode=(scriptCallGossipSelectWithCode)TRINITY_GET_PROC_ADDR(testScript->hScriptsLib,"GossipSelectWithCode")) +        ||!(testScript->GOSelect            =(scriptCallGOSelect            )TRINITY_GET_PROC_ADDR(testScript->hScriptsLib,"GOSelect"            )) +        ||!(testScript->GOSelectWithCode    =(scriptCallGOSelectWithCode    )TRINITY_GET_PROC_ADDR(testScript->hScriptsLib,"GOSelectWithCode"    ))          ||!(testScript->QuestSelect         =(scriptCallQuestSelect         )TRINITY_GET_PROC_ADDR(testScript->hScriptsLib,"QuestSelect"         ))          ||!(testScript->QuestComplete       =(scriptCallQuestComplete       )TRINITY_GET_PROC_ADDR(testScript->hScriptsLib,"QuestComplete"       ))          ||!(testScript->NPCDialogStatus     =(scriptCallNPCDialogStatus     )TRINITY_GET_PROC_ADDR(testScript->hScriptsLib,"NPCDialogStatus"     )) diff --git a/src/game/ScriptCalls.h b/src/game/ScriptCalls.h index e1de919272e..b95c82eb13e 100644 --- a/src/game/ScriptCalls.h +++ b/src/game/ScriptCalls.h @@ -45,6 +45,8 @@ typedef bool(TRINITY_IMPORT * scriptCallGossipHello) (Player *player, Creature *  typedef bool(TRINITY_IMPORT * scriptCallQuestAccept) (Player *player, Creature *_Creature, Quest const *);  typedef bool(TRINITY_IMPORT * scriptCallGossipSelect)(Player *player, Creature *_Creature, uint32 sender, uint32 action);  typedef bool(TRINITY_IMPORT * scriptCallGossipSelectWithCode)( Player *player, Creature *_Creature, uint32 sender, uint32 action, const char* sCode ); +typedef bool(TRINITY_IMPORT * scriptCallGOSelect)(Player *player, GameObject *_GO, uint32 sender, uint32 action); +typedef bool(TRINITY_IMPORT * scriptCallGOSelectWithCode)( Player *player, GameObject *_GO, uint32 sender, uint32 action, const char* sCode );  typedef bool(TRINITY_IMPORT * scriptCallQuestSelect)( Player *player, Creature *_Creature, Quest const* );  typedef bool(TRINITY_IMPORT * scriptCallQuestComplete)(Player *player, Creature *_Creature, Quest const*);  typedef uint32(TRINITY_IMPORT * scriptCallNPCDialogStatus)( Player *player, Creature *_Creature); @@ -75,6 +77,8 @@ typedef struct      scriptCallQuestAccept QuestAccept;      scriptCallGossipSelect GossipSelect;      scriptCallGossipSelectWithCode GossipSelectWithCode; +    scriptCallGOSelect GOSelect; +    scriptCallGOSelectWithCode GOSelectWithCode;      scriptCallQuestSelect QuestSelect;      scriptCallQuestComplete QuestComplete;      scriptCallNPCDialogStatus NPCDialogStatus;  | 
