Giter Site home page Giter Site logo

elunaluaengine / eluna Goto Github PK

View Code? Open in Web Editor NEW
360.0 37.0 332.0 3.61 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

Contributors

55honey avatar anzz1 avatar billy1arm avatar conradbunton avatar easelm avatar elmsroth avatar foereaper avatar francescoborzi avatar grymskvll avatar h0zen avatar heyitsbench avatar ithorgrim avatar kitzunu avatar myles512 avatar niam5 avatar nyeriah avatar r-o-b-o-t-o avatar redskull-666 avatar rochet2 avatar ryancheung avatar salja avatar shauren avatar terrorblade avatar tikki100 avatar ultranix avatar westtunger avatar winfidonarleyan avatar wizzymore avatar xivan0ff avatar zwisus avatar

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

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 ==========

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)

GetRelativePoint deg to rad

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

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.

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

Config option

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

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

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?

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.

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!

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.

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.

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.

Cmake folder and disable

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

Item move methods

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

CreateGuardian

I hope this one could be implemented

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

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

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)
         {

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)

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!

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)"

GetHeight

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

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.

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()

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.

Fix TC wotlk travis

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

Init AI

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

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.