Coder Social home page Coder Social logo

elunaluaengine / eluna Goto Github PK

View Code? Open in Web Editor NEW
359.0 37.0 331.0 3.6 MB

Eluna Lua Engine © for WoW Emulators

Home Page: https://elunaluaengine.github.io

License: GNU General Public License v3.0

C++ 99.56% C 0.32% CMake 0.12%
eluna-lua-engine mangos cmangos trinitycore cpp lua eluna azerothcore

eluna's Introduction

Eluna

About

Eluna Lua Engine © is a lua engine embedded to World of Warcraft emulators. Eluna supports MaNGOS, CMaNGOS, TrinityCore and AzerothCore. We are currently working hard to make Eluna better from inside and outside.

If you are having trouble with installation or scripts, please feel free to open an issue. For documentation and reference see Eluna API and Lua reference manual.

Special thanks to MaNGOS for their continued support and use of Eluna. Please head over to their forums and show them some love!

Community

You can join the official Eluna Discord server, where you'll be able to find resources, releases and support provided by the community.

Documentation

Source

Eluna source code: Source

Core sources and forks with required modifications for Eluna:

TrinityCore WotLK automerge

Official MaNGOS Zero with Eluna
Official MaNGOS One with Eluna
Official MaNGOS Two with Eluna

Eluna cMaNGOS Classic - maintained by Niam5
Eluna cMaNGOS TBC - maintained by Niam5
Eluna cMaNGOS WoTLK - maintained by Niam5

AzerothCore Eluna Module

Links

Current maintainers

Former maintainers

eluna's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eluna's Issues

Change in LuaEngine.cpp load sequence

// break if we don't find dir
if (!hFile)
{
    TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "Eluna::No `scripts` directory found!");
    return;
}

Instead of breaking, create directory and re-initialize engine, kgo!

PLAYER_EVENT_ON_CHANNEL_CHAT

PLAYER_EVENT_ON_CHANNEL_CHAT = 22, / / ​​(event, player, msg, Type, lang, channel)
does not respond to the channels registered player.

Dont trigger GiveXP hook

Option not to trigger XP change hook for the player when using GiveXP method.
Otherwise results to infinite loop when using it on XP gaining events, which many seem to try.

Init AI

Reimplement AI initialization for creatures on TC on reload eluna.
Cant be done on mangos without a little stupid core modifications : |

Item move methods

Add methods to move items around inventory.
Could also revisit other item methods the same time.

GetRelativePoint deg to rad

Would be better to take in radians than degrees for unit method GetRelativePoint
Dont forget to check gameobject method too.

no CMakeLists.txt

got an error: on TC-Wotlk (bce564b2007ec427808a41a466faa27dc377a85e) after doing
~/dev/Eluna-TC-Wotlk/build$ make clean
~/dev/Eluna-TC-Wotlk/build$ cmake ../ -DPREFIX=/home//server -DCONF_DIR=/home//server/conf -DTOOLS=1 -DSCRIPTS=1 -DSERVERS=1 -DLIBSDIR=/home//server/lib

[...]
CMake Error at src/CMakeLists.txt:19 (add_subdirectory):
The source directory

 /home/<doesnotmatter>/dev/Eluna-TC-Wotlk/src/LuaEngine

does not contain a CMakeLists.txt file.

-- Configuring incomplete, errors occurred!

CreateGuardian

I hope this one could be implemented

pPlayer:CreateGuardian(entry, duration, angle)
pUnit:CreateGuardian(entry, duration, angle)

Fix TC wotlk travis

Fix travis build.
Travis has old stuff installed that doesnt match TC requirements.

ScriptMgr.cpp Changes from Trinity Source

TrinityCore/TrinityCore@8bcde41

  •    virtual uint32 GetDialogStatus(Player* /*player*/, Creature* /*creature*/) { return 100; }
    
  •    virtual uint32 GetDialogStatus(Player* /*player*/, Creature* /*creature*/) { return DIALOG_STATUS_SCRIPTED_NO_STATUS; }
    

and ...

  •    virtual uint32 GetDialogStatus(Player* /*player*/, GameObject* /*go*/) { return 100; }
    
  •    virtual uint32 GetDialogStatus(Player* /*player*/, GameObject* /*go*/) { return DIALOG_STATUS_SCRIPTED_NO_STATUS; }
    

It will compile still, but causes a client crash from mem access.

Crash on :RemoveItem()

Hey there,
I found an error (latest build) where the server will crash when you try to use player:RemoveItem() before the player got saved to the DB.

Hackfix in Lua atm:
player:SaveToDB()
player:RemoveItem()

Config option

We could add a config option for enabling and disabling the engine.
Arc has has it too

On GossipHello Trigger

On GossipHello, for example item gossip hook, if you have a script triggered on the hearthstone you will keep casting this spell 8690, should not cast any spell.
Thank you

EquipItem() possible changes?

As discussed, possibly change method to not add item if player does not have the specific item in his inventory, maybe add bool argument? Ideas? Suggestions?

Setting to change the script folder

Check that cmake doesnt autocreate scripts folder to release
Also fix that its created to the build folder, not automatically to release.

Creating a setting to change the script folder is now needed.

Crash on RemoveRef

http://emudevs.com/showthread.php/3430-object-crash

Possibly related logs

Object::~Object - guid=4611686018431374650, typeid=1, entry=49426 deleted but still in world!!
Item slot 255

/home/desktop/fireball/src/server/game/Entities/Object/Object.cpp:119 in ~Object ASSERTION FAILED:
  false
./worldserver(_ZN4ItemD1Ev+0x5b9) [0xfaba79]
./worldserver(_ZN4ItemD0Ev+0x9) [0xfabaa9]
./worldserver() [0xba3d09]
./worldserver(_ZN6Player16DestroyItemCountEjjbb+0x194) [0xba4134]
./worldserver(_ZN9LuaPlayer10RemoveItemEP9lua_StateP6Player+0x6f) [0x185a36f]
./worldserver(_ZN13ElunaTemplateI6PlayerE5thunkEP9lua_State+0x4f) [0x186bcbf]
./worldserver() [0x18807dd]
./worldserver() [0x188d7c4]
./worldserver() [0x1880f69]
./worldserver() [0x187fe89]
./worldserver() [0x1881291]
./worldserver(lua_pcallk+0x58) [0x1886898]
./worldserver(_ZN5Eluna11ExecuteCallEP9lua_Stateii+0x37) [0x1840367]
./worldserver(_ZN5Eluna6OnChatEP6PlayerjjRSs+0x1f9) [0x18325a9]
./worldserver(_ZN12WorldSession23HandleMessagechatOpcodeER11WorldPacket+0x30ce) [0x102dc9e]
./worldserver(_ZN12WorldSession6UpdateEjR12PacketFilter+0x55f) [0xe02d8f]
./worldserver(_ZN5World14UpdateSessionsEj+0xe1) [0xebbf81]
./worldserver(_ZN5World6UpdateEj+0x1ad) [0xebc2fd]
./worldserver(_ZN13WorldRunnable3runEv+0xe9) [0x9e6949]
./worldserver(_ZN9ACE_Based6Thread10ThreadTaskEPv+0xa) [0x10e4c3a]
/usr/local/lib/libACE-6.0.3.so(_ZN21ACE_OS_Thread_Adapter6invokeEv+0x86) [0x7f0e6ff371a6]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x8182) [0x7f0e6f0f1182]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7f0e6e5fe30d]
Invalid read of size 4
==10330==    at 0x183ED30: Eluna::RemoveRef(void const*) (in /home/desktop/server/bin/worldserver)
==10330==    by 0xF13076: AuctionHouseMgr::~AuctionHouseMgr() (in /home/desktop/server/bin/worldserver)
==10330==    by 0xCDA173: ACE_Singleton<AuctionHouseMgr, ACE_Null_Mutex>::~ACE_Singleton() (in /home/desktop/server/bin/worldserver)
==10330==    by 0xCDA1B1: ACE_Singleton<AuctionHouseMgr, ACE_Null_Mutex>::cleanup(void*) (in /home/desktop/server/bin/worldserver)
==10330==    by 0x51436A4: ACE_OS_Exit_Info::call_hooks() (Cleanup.cpp:162)
==10330==    by 0x5185947: ACE_Object_Manager::fini() (Object_Manager.cpp:723)
==10330==    by 0x5186309: ACE_OS_Object_Manager::fini() (Object_Manager_Base.cpp:296)
==10330==    by 0x518645F: ACE_OS_Object_Manager::~ACE_OS_Object_Manager() (Object_Manager_Base.cpp:107)
==10330==    by 0x51864A8: ACE_OS_Object_Manager::~ACE_OS_Object_Manager() (Object_Manager_Base.cpp:108)
==10330==    by 0x5185EB4: ACE_OS_Object_Manager_Manager::~ACE_OS_Object_Manager_Manager() (Object_Manager_Base.cpp:489)
==10330==    by 0x69CE899: __cxa_finalize (cxa_finalize.c:56)
==10330==    by 0x512BBE2: ??? (in /usr/local/lib/libACE-6.0.3.so)
==10330==  Address 0x8 is not stack'd, malloc'd or (recently) free'd
==10330== 
==10330== 
==10330== Process terminating with default action of signal 11 (SIGSEGV)
==10330==  Access not within mapped region at address 0x8
==10330==    at 0x183ED30: Eluna::RemoveRef(void const*) (in /home/desktop/server/bin/worldserver)
==10330==    by 0xF13076: AuctionHouseMgr::~AuctionHouseMgr() (in /home/desktop/server/bin/worldserver)
==10330==    by 0xCDA173: ACE_Singleton<AuctionHouseMgr, ACE_Null_Mutex>::~ACE_Singleton() (in /home/desktop/server/bin/worldserver)
==10330==    by 0xCDA1B1: ACE_Singleton<AuctionHouseMgr, ACE_Null_Mutex>::cleanup(void*) (in /home/desktop/server/bin/worldserver)
==10330==    by 0x51436A4: ACE_OS_Exit_Info::call_hooks() (Cleanup.cpp:162)
==10330==    by 0x5185947: ACE_Object_Manager::fini() (Object_Manager.cpp:723)
==10330==    by 0x5186309: ACE_OS_Object_Manager::fini() (Object_Manager_Base.cpp:296)
==10330==    by 0x518645F: ACE_OS_Object_Manager::~ACE_OS_Object_Manager() (Object_Manager_Base.cpp:107)
==10330==    by 0x51864A8: ACE_OS_Object_Manager::~ACE_OS_Object_Manager() (Object_Manager_Base.cpp:108)
==10330==    by 0x5185EB4: ACE_OS_Object_Manager_Manager::~ACE_OS_Object_Manager_Manager() (Object_Manager_Base.cpp:489)
==10330==    by 0x69CE899: __cxa_finalize (cxa_finalize.c:56)
==10330==    by 0x512BBE2: ??? (in /usr/local/lib/libACE-6.0.3.so)

Bug: Locals Gossip Menu Option

Hello. I'm having a small problem when merging Trinity and Eluna... Before the merge, My locals_gossip_menu_option works correctly. After, the menus still come up, but no longer do anything when you click on them for interaction. I have no errors or conflicts when merging.

Everything else seems working just fine... Just locals_gossip_menu_options not working after merging with Eluna.

Perform ingame spawn

I have a problem with using PeformIngameSpawn.

function CreateNPC(EntryID, SpawnMap, SpawnX, SpawnY, SpawnZ, SpawnO)
    local ID = nil;

    for NPCID,NPCTable in pairs(NPC) do
        ID = NPCID;

        if(NPC[ID] == nil or not(NPC[ID]["IsCreated"])) then
            ID = ID - 1;
            break;
        end
    end

    if(ID == nil) then
        ID = 0;
    else
        ID = ID + 1;
    end

    NPC[ID] = {
        ["IsCreated"] = true,
        ["GameID"] = nil,
        ["EntryID"] = EntryID,
        ["Name"] = nil,
        ["Level"] = nil,
        ["SpawnMap"] = SpawnMap,
        ["SpawnX"] = SpawnX,
        ["SpawnY"] = SpawnY,
        ["SpawnZ"] = SpawnZ,
        ["SpawnO"] = SpawnO
    };

    NPC[ID]["GameID"] = PerformIngameSpawn(1, NPC[ID]["EntryID"], NPC[ID]["SpawnMap"], NPC[ID]["SpawnX"], NPC[ID]["SpawnY"], NPC[ID]["SpawnZ"], NPC[ID]["SpawnO"], 0, 0, 1);

    if(NPC[ID]["GameID"] == nil) then
        print("NPC ID: " .. ID .. " has failed to spawn.");

        NPC[ID]["IsCreated"] = false;
        return false;
    end

    print("NPC ID: " .. ID .. " has successfully spawned.");

    NPC[ID]["Name"] = NPC[ID]["GameID"]:GetName();
    NPC[ID]["Level"] = NPC[ID]["GameID"]:GetLevel();
    return ID;
end
CreateNPC(29611, Player[PlayerID]["GameID"]:GetMapId(), Player[PlayerID]["GameID"]:GetX(), Player[PlayerID]["GameID"]:GetY(), Player[PlayerID]["GameID"]:GetZ(), Player[PlayerID]["GameID"]:GetO());
.reload eluna
Eluna Nova Lua Engine loaded.
Eluna Nova::Loaded 1 Lua scripts
Reloaded Eluna Nova Engine
TC> Kreatyve [Human <Alliance>][Warrior][Level: 80] has connected.
NPC ID: 0 has failed to spawn.
Kreatyve [Human <Alliance>][Warrior][Level: 80] has disconnected.

So I don't know why it's not working.
Meybe you can look for the problem or provide an example. of how to use PerformIngameSpawn.

PerformIngameSpawn no longer triggering

Updating local source with trinity after commit 1a5c0ad
seems to break PerformIngameSpawn. Haven't had a lot of time to go over trinity's recent commits to find out why, but I figured you all might want to know.

DBC edit function

Change DBC editing function to directly edit the loaded DBC data on mangos and TC.
See mangos for an example.

Currently this is handled by loading the modified DBC to a map and inserting custom data to it then. (like spell DBC is handled)

Build Error cataclysm Eluna

So I just copy and paste the files for cataclysm in the source folder, I re-cmaked. Build and I get those errors:

1>------ Build started: Project: ZERO_CHECK, Configuration: Release x64 ------
2>------ Build started: Project: revision.h, Configuration: Release x64 ------
3>------ Build started: Project: game, Configuration: Release x64 ------
3> ChatHandler.cpp
3> LootHandler.cpp
3>........\TrinityCore\src\server\game\Handlers\LootHandler.cpp(242): error C2039: 'IsNonMeleeSpellCasted' : is not a member of 'Player'
3> E:/server/cata/TrinityCore/src/server/game/Entities/Player\Player.h(1213) : see declaration of 'Player'
3>........\TrinityCore\src\server\game\Handlers\ChatHandler.cpp(382): error C2039: 'FillMessageData' : is not a member of 'ChatHandler'
3> E:/server/cata/TrinityCore/src/server/game/Chat\Chat.h(50) : see declaration of 'ChatHandler'
3>........\TrinityCore\src\server\game\Handlers\ChatHandler.cpp(382): error C3861: 'FillMessageData': identifier not found
3>........\TrinityCore\src\server\game\Handlers\ChatHandler.cpp(440): error C2039: 'FillMessageData' : is not a member of 'ChatHandler'
3> E:/server/cata/TrinityCore/src/server/game/Chat\Chat.h(50) : see declaration of 'ChatHandler'
3>........\TrinityCore\src\server\game\Handlers\ChatHandler.cpp(440): error C3861: 'FillMessageData': identifier not found
3>........\TrinityCore\src\server\game\Handlers\ChatHandler.cpp(458): error C2039: 'FillMessageData' : is not a member of 'ChatHandler'
3> E:/server/cata/TrinityCore/src/server/game/Chat\Chat.h(50) : see declaration of 'ChatHandler'
3>........\TrinityCore\src\server\game\Handlers\ChatHandler.cpp(458): error C3861: 'FillMessageData': identifier not found
3>........\TrinityCore\src\server\game\Handlers\ChatHandler.cpp(480): error C2039: 'FillMessageData' : is not a member of 'ChatHandler'
3> E:/server/cata/TrinityCore/src/server/game/Chat\Chat.h(50) : see declaration of 'ChatHandler'
3>........\TrinityCore\src\server\game\Handlers\ChatHandler.cpp(480): error C3861: 'FillMessageData': identifier not found
3>........\TrinityCore\src\server\game\Handlers\ChatHandler.cpp(662): error C2039: 'FillMessageData' : is not a member of 'ChatHandler'
3> E:/server/cata/TrinityCore/src/server/game/Chat\Chat.h(50) : see declaration of 'ChatHandler'
3>........\TrinityCore\src\server\game\Handlers\ChatHandler.cpp(662): error C3861: 'FillMessageData': identifier not found
3>........\TrinityCore\src\server\game\Handlers\ChatHandler.cpp(695): error C2039: 'FillMessageData' : is not a member of 'ChatHandler'
3> E:/server/cata/TrinityCore/src/server/game/Chat\Chat.h(50) : see declaration of 'ChatHandler'
3>........\TrinityCore\src\server\game\Handlers\ChatHandler.cpp(695): error C3861: 'FillMessageData': identifier not found
3>........\TrinityCore\src\server\game\Handlers\ChatHandler.cpp(842): error C2039: 'FillMessageData' : is not a member of 'ChatHandler'
3> E:/server/cata/TrinityCore/src/server/game/Chat\Chat.h(50) : see declaration of 'ChatHandler'
3>........\TrinityCore\src\server\game\Handlers\ChatHandler.cpp(842): error C3861: 'FillMessageData': identifier not found
4>------ Build started: Project: LuaEngine, Configuration: Release x64 ------
4> LuaFunctions.cpp
4>e:\server\cata\trinitycore\src\luaengine\UnitMethods.h(1086): error C2664: 'void WorldObject::MonsterWhisper(const char *,const Player *,bool)' : cannot convert parameter 2 from 'uint64' to 'const Player *'
4> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
4>e:\server\cata\trinitycore\src\luaengine\UnitMethods.h(1096): error C2664: 'void WorldObject::MonsterTextEmote(const char *,const WorldObject *,bool)' : cannot convert parameter 2 from 'uint64' to 'const WorldObject *'
4> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
4>e:\server\cata\trinitycore\src\luaengine\UnitMethods.h(1105): error C2664: 'void WorldObject::MonsterSay(const char *,uint32,const WorldObject *)' : cannot convert parameter 3 from 'uint64' to 'const WorldObject *'
4> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
4>e:\server\cata\trinitycore\src\luaengine\UnitMethods.h(1114): error C2664: 'void WorldObject::MonsterYell(const char *,uint32,const WorldObject *)' : cannot convert parameter 3 from 'uint64' to 'const WorldObject *'
4> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
4>e:\server\cata\trinitycore\src\luaengine\CreatureMethods.h(509): error C2664: 'CreatureAI::Talk' : cannot convert parameter 2 from 'uint64' to 'const WorldObject *'
4> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
5>------ Build started: Project: worldserver, Configuration: Release x64 ------
5>LINK : fatal error LNK1181: cannot open input file '..\game\Release\game.lib'
6>------ Build started: Project: ALL_BUILD, Configuration: Release x64 ------
6> Build all projects
7>------ Skipped Build: Project: INSTALL, Configuration: Release x64 ------
7>Project not selected to build for this solution configuration
========== Build: 3 succeeded, 3 failed, 17 up-to-date, 1 skipped ==========

ID of Npc_Taxi, Npc_special...

FIRST TO SAY: Sorry for my english, i try to do my best.

Hi, recently i compile this server. My first compile.

I use github, etc. so i got updated, and i see a "npc_tax.cpp" i supose is a Taxi NPC.

But cant see the ID to spawn.

Same happens with npc_special , npc_inkeeper , npc_proffesion

GetHeight

Make the method global and make it return nil on invalid coords or if no height.

Compilation broken with gcc

Compilation seem to be broken on Debian 64bits, with gcc 4.4, rev eb3655b

Code:

src/server/LuaEngine/LuaEngine.cpp: In member function 'void Eluna::LuaEventMap::ScriptEventCancel(int)':
src/server/LuaEngine/LuaEngine.cpp:736: error: no matching function for call to 'std::multimap<unsigned int, Eluna::LuaEventMap::eventData, std::less<unsigned int>, std::allocator<std::pair<const unsigned int, Eluna::LuaEventMap::eventData> > >::erase(std::_Rb_tree_const_iterator<std::pair<const unsigned int, Eluna::LuaEventMap::eventData> >)'
/usr/include/c++/4.4/bits/stl_multimap.h:502: note: candidates are: void std::multimap<_Key, _Tp, _Compare, _Alloc>::erase(typename std::_Rb_tree<_Key, std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _Key, _Tp> >, _Compare, typename _Alloc::rebind<std::pair<const _Key, _Tp> >::other>::iterator) [with _Key = unsigned int, _Tp = Eluna::LuaEventMap::eventData, _Compare = std::less<unsigned int>, _Alloc = std::allocator<std::pair<const unsigned int, Eluna::LuaEventMap::eventData> >]
/usr/include/c++/4.4/bits/stl_multimap.h:517: note:                 typename std::_Rb_tree<_Key, std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _Key, _Tp> >, _Compare, typename _Alloc::rebind<std::pair<const _Key, _Tp> >::other>::size_type std::multimap<_Key, _Tp, _Compare, _Alloc>::erase(const _Key&) [with _Key = unsigned int, _Tp = Eluna::LuaEventMap::eventData, _Compare = std::less<unsigned int>, _Alloc = std::allocator<std::pair<const unsigned int, Eluna::LuaEventMap::eventData> >]
/usr/include/c++/4.4/bits/stl_multimap.h:532: note:                 void std::multimap<_Key, _Tp, _Compare, _Alloc>::erase(typename std::_Rb_tree<_Key, std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _Key, _Tp> >, _Compare, typename _Alloc::rebind<std::pair<const _Key, _Tp> >::other>::iterator, typename std::_Rb_tree<_Key, std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _Key, _Tp> >, _Compare, typename _Alloc::rebind<std::pair<const _Key, _Tp> >::other>::iterator) [with _Key = unsigned int, _Tp = Eluna::LuaEventMap::eventData, _Compare = std::less<unsigned int>, _Alloc = std::allocator<std::pair<const unsigned int, Eluna::LuaEventMap::eventData> >]

Here is the diff file to correct it :

+++ b/src/server/LuaEngine/LuaEngine.cpp
@@ -728,7 +728,7 @@ void Eluna::LuaEventMap::ScriptEventCancel(int funcRef)
     if (ScriptEventsEmpty())
         return;

-    for (EventStore::const_iterator itr = _eventMap.begin(); itr != _eventMap.end();)
+    for (EventStore::iterator itr = _eventMap.begin(); itr != _eventMap.end();)
     {
         if (funcRef == itr->second.funcRef)
         {

LootHandler HandleLootOpcode issue

I found a issue at:

void WorldSession::HandleLootOpcode(WorldPacket& recvData)
{
    TC_LOG_DEBUG("network", "WORLD: CMSG_LOOT");

    uint64 guid;
    recvData >> guid;

    // Check possible cheat
    if (!_player->IsAlive())
        return;

    GetPlayer()->SendLoot(guid, LOOT_CORPSE);

    // interrupt cast
    if (GetPlayer()->IsNonMeleeSpellCasted(false))
        GetPlayer()->InterruptNonMeleeSpells(false);
}

"IsNonMeleeSpellCasted(false)" should be "IsNonMeleeSpellCast(false)"

FindUnit

We should implement all for example map methods that you can use to get players and creatures by low guid on a map. and all similar methods.

Reload eluna doesnt delete old events correctly

Old events stay when you use a reload command.
At least for players.
The problem does not occur in normal use as RemoveEvents works as intended and everything works fine after a restart too.

Just a bug with .reload eluna as well as with method to delete all events possibly

Cmake folder and disable

Make cmake to create scripts folder and add cmake option to disable Eluna on compile. (also config option?)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.