18 uint32 ev = luaL_checkunsigned(L, 1);
21 luaL_error(L,
"0 is not a valid event");
24 luaL_checktype(L, lua_gettop(L), LUA_TFUNCTION);
26 int functionRef = lua_ref(L,
true);
36 uint32 ev = luaL_checkunsigned(L, 1);
39 luaL_error(L,
"0 is not a valid event");
42 luaL_checktype(L, lua_gettop(L), LUA_TFUNCTION);
44 int functionRef = lua_ref(L,
true);
54 uint32 ev = luaL_checkunsigned(L, 1);
57 luaL_error(L,
"0 is not a valid event");
60 luaL_checktype(L, lua_gettop(L), LUA_TFUNCTION);
62 int functionRef = lua_ref(L,
true);
72 uint32 ev = luaL_checkunsigned(L, 1);
75 luaL_error(L,
"0 is not a valid event");
78 luaL_checktype(L, lua_gettop(L), LUA_TFUNCTION);
80 int functionRef = lua_ref(L,
true);
90 uint32 ev = luaL_checkunsigned(L, 1);
93 luaL_error(L,
"0 is not a valid event");
96 luaL_checktype(L, lua_gettop(L), LUA_TFUNCTION);
98 int functionRef = lua_ref(L,
true);
108 uint32 entry = luaL_checkunsigned(L, 1);
109 uint32 ev = luaL_checkunsigned(L, 2);
112 luaL_error(L,
"0 is not a valid event");
115 luaL_checktype(L, lua_gettop(L), LUA_TFUNCTION);
117 int functionRef = lua_ref(L,
true);
127 uint32 entry = luaL_checkunsigned(L, 1);
128 uint32 ev = luaL_checkunsigned(L, 2);
131 luaL_error(L,
"0 is not a valid event");
134 luaL_checktype(L, lua_gettop(L), LUA_TFUNCTION);
136 int functionRef = lua_ref(L,
true);
146 uint32 entry = luaL_checkunsigned(L, 1);
147 uint32 ev = luaL_checkunsigned(L, 2);
150 luaL_error(L,
"0 is not a valid event");
153 luaL_checktype(L, lua_gettop(L), LUA_TFUNCTION);
155 int functionRef = lua_ref(L,
true);
165 uint32 entry = luaL_checkunsigned(L, 1);
166 uint32 ev = luaL_checkunsigned(L, 2);
169 luaL_error(L,
"0 is not a valid event");
172 luaL_checktype(L, lua_gettop(L), LUA_TFUNCTION);
174 int functionRef = lua_ref(L,
true);
184 uint32 menu_id = luaL_checkunsigned(L, 1);
185 uint32 ev = luaL_checkunsigned(L, 2);
188 luaL_error(L,
"0 is not a valid event");
191 luaL_checktype(L, lua_gettop(L), LUA_TFUNCTION);
193 int functionRef = lua_ref(L,
true);
203 uint32 entry = luaL_checkunsigned(L, 1);
204 uint32 ev = luaL_checkunsigned(L, 2);
207 luaL_error(L,
"0 is not a valid event");
210 luaL_checktype(L, lua_gettop(L), LUA_TFUNCTION);
212 int functionRef = lua_ref(L,
true);
222 uint32 entry = luaL_checkunsigned(L, 1);
223 uint32 ev = luaL_checkunsigned(L, 2);
226 luaL_error(L,
"0 is not a valid event");
229 luaL_checktype(L, lua_gettop(L), LUA_TFUNCTION);
231 int functionRef = lua_ref(L,
true);
240 sEluna->Push(L,
"ElunaEngine");
254 uint32 questId = luaL_checkunsigned(L, 1);
280 const char* message = luaL_checkstring(L, 1);
295 const char* message = luaL_checkstring(L, 1);
304 bool onlyGM = luaL_optbool(L, 2,
false);
307 int tbl = lua_gettop(L);
311 for (SessionMap::const_iterator it = sessions.begin(); it != sessions.end(); ++it)
315 if (player->GetSession() && ((team >=
TEAM_NEUTRAL || player->GetTeamId() == team) && (!onlyGM || player->IsGuildMaster())))
320 lua_settable(L, tbl);
332 uint32 mapID = luaL_checkunsigned(L, 1);
333 uint32 instanceID = luaL_optunsigned(L, 2, 0);
336 Map* map =
sMapMgr->FindMap(mapID, instanceID);
341 int tbl = lua_gettop(L);
347 Player* player = itr->GetSource();
355 lua_settable(L, tbl);
366 const char* query = luaL_checkstring(L, 1);
381 const char* query = luaL_checkstring(L, 1);
392 const char* query = luaL_checkstring(L, 1);
407 const char* query = luaL_checkstring(L, 1);
418 const char* query = luaL_checkstring(L, 1);
433 const char* query = luaL_checkstring(L, 1);
444 const char* name = luaL_checkstring(L, 1);
452 uint32 mapid = luaL_checkunsigned(L, 1);
487 uint32 lowguid = luaL_checkunsigned(L, 1);
495 uint32 lowguid = luaL_checkunsigned(L, 1);
503 uint32 lowguid = luaL_checkunsigned(L, 1);
504 uint32 entry = luaL_checkunsigned(L, 2);
512 uint32 lowguid = luaL_checkunsigned(L, 1);
513 uint32 entry = luaL_checkunsigned(L, 2);
520 luaL_checktype(L, 1, LUA_TFUNCTION);
521 uint32 delay = luaL_checkunsigned(L, 2);
522 uint32 repeats = luaL_checkunsigned(L, 3);
525 int functionRef = lua_ref(L,
true);
526 sEluna->Push(L,
sEluna->m_EventMgr.AddEvent(&
sEluna->m_EventMgr.GlobalEvents, functionRef, delay, repeats));
532 int eventId = luaL_checkinteger(L, 1);
533 bool all_Events = luaL_optbool(L, 1,
false);
536 sEluna->m_EventMgr.RemoveEvent(eventId);
538 sEluna->m_EventMgr.RemoveEvent(&
sEluna->m_EventMgr.GlobalEvents, eventId);
544 bool all_Events = luaL_optbool(L, 1,
false);
547 sEluna->m_EventMgr.RemoveEvents();
549 sEluna->m_EventMgr.RemoveEvents(&
sEluna->m_EventMgr.GlobalEvents);
557 int spawntype = luaL_checkinteger(L, 1);
558 uint32 entry = luaL_checkunsigned(L, 2);
559 uint32 mapID = luaL_checkunsigned(L, 3);
560 uint32 instanceID = luaL_checkunsigned(L, 4);
561 float x = luaL_checknumber(L, 5);
562 float y = luaL_checknumber(L, 6);
563 float z = luaL_checknumber(L, 7);
564 float o = luaL_checknumber(L, 8);
565 bool save = luaL_optbool(L, 9,
false);
566 uint32 durorresptime = luaL_optunsigned(L, 10, 0);
571 Map* map =
sMapMgr->FindMap(mapID, instanceID);
599 sEluna->Push(L, creature);
612 sEluna->Push(L, creature);
629 if (!object->
Create(lowguid, objectInfo->
entry, map, x, y, z, o, 0.0f, 0.0f, 0.0f, 0.0f, 100,
GOState::GO_STATE_READY))
635 object->SetPhaseMask(phase,
false);
638 object->SetRespawnTime(durorresptime);
666 uint16 opcode = luaL_checkunsigned(L, 1);
667 size_t size = luaL_checkunsigned(L, 2);
670 luaL_error(L,
"Invalid opcode type (%d)", opcode);
810 std::string subject = luaL_checkstring(L, ++i);
811 std::string text = luaL_checkstring(L, ++i);
812 uint32 receiverGUIDLow = luaL_checkunsigned(L, ++i);
815 uint32 delay = luaL_optunsigned(L, ++i, 0);
816 int32 argAmount = lua_gettop(L);
822 uint8 addedItems = 0;
825 uint32 entry = luaL_checkunsigned(L, ++i);
826 uint32 amount = luaL_checkunsigned(L, ++i);
831 luaL_error(L,
"Item entry %d does not exist", entry);
836 luaL_error(L,
"Item entry %d has invalid amount %d", entry, amount);
841 item->SaveToDB(trans);
855 uint32 a = luaL_checkunsigned(L, 1);
856 uint32 b = luaL_checkunsigned(L, 2);
864 uint32 a = luaL_checkunsigned(L, 1);
865 uint32 b = luaL_checkunsigned(L, 2);
873 uint32 a = luaL_checkunsigned(L, 1);
874 uint32 b = luaL_checkunsigned(L, 2);
882 uint32 a = luaL_checkunsigned(L, 1);
883 uint32 b = luaL_checkunsigned(L, 2);
891 uint32 a = luaL_checkunsigned(L, 1);
892 uint32 b = luaL_checkunsigned(L, 2);
900 uint32 a = luaL_checkunsigned(L, 1);
922 luaL_checktype(L, 1, LUA_TTABLE);
923 uint32 mountA = luaL_checkunsigned(L, 2);
924 uint32 mountH = luaL_checkunsigned(L, 3);
925 uint32 price = luaL_optunsigned(L, 4, 0);
926 uint32 pathId = luaL_optunsigned(L, 5, 0);
929 std::list<TaxiPathNodeEntry> nodes;
931 int start = lua_gettop(L);
935 while (lua_next(L, -2) != 0)
937 luaL_checktype(L, -1, LUA_TTABLE);
939 while (lua_next(L, -2) != 0)
941 lua_insert(L, end++);
948 lua_remove(L, --end);
952 while (end - start < 8)
954 lua_pushunsigned(L, 0);
955 lua_insert(L, end++);
959 entry->
mapid = luaL_checkunsigned(L, start);
960 entry->
x = luaL_checknumber(L, start + 1);
961 entry->
y = luaL_checknumber(L, start + 2);
962 entry->
z = luaL_checknumber(L, start + 3);
964 entry->
actionFlag = luaL_checkunsigned(L, start + 4);
965 entry->
delay = luaL_checkunsigned(L, start + 5);
969 nodes.push_back(*entry);
972 lua_remove(L, --end);
994 uint32 entry = luaL_checkunsigned(L, 1);
998 luaL_error(L,
"Invalid locale index (%d)", loc_idx);
1005 luaL_error(L,
"Invalid item entry (%d)", entry);
1009 std::string name = temp->
Name1;
1013 std::ostringstream oss;
1015 "|Hitem:" << entry <<
":0:0:0:0:0:0:0:0:0|h[" << name <<
"]|h|r";
1017 sEluna->Push(L, oss.str());
DBCStorage< GameObjectDisplayInfoEntry > sGameObjectDisplayInfoStore(GameObjectDisplayInfofmt)
DBCStorage< MapEntry > sMapStore(MapEntryfmt)
static constexpr TempSummonType TEMPSUMMON_MANUAL_DESPAWN
static constexpr TempSummonType TEMPSUMMON_TIMED_OR_DEAD_DESPAWN
void StartEluna(bool restart)
@ REGTYPE_GAMEOBJECT_GOSSIP
@ REGTYPE_CREATURE_GOSSIP
@ MAIL_STATIONERY_DEFAULT
uint32 GUID_LOPART(uint64 x)
uint32 GUID_ENPART(uint64 x)
uint64 MAKE_NEW_GUID(uint32 l, uint32 e, uint32 h)
uint32 GUID_HIPART(uint64 guid)
Skyfire::AutoPtr< ResultSet, Skyfire::Mutex > QueryResult
const uint32 ItemQualityColors[MAX_ITEM_QUALITY]
Skyfire::AutoPtr< Transaction, Skyfire::Mutex > SQLTransaction
uint32 GetDBTableGUIDLow() const
bool Create(uint32 guidlow, Map *map, uint32 Entry, uint32 vehId, uint32 team, float x, float y, float z, float ang, const CreatureData *data=NULL)
bool LoadCreatureFromDB(uint32 guid, Map *map, bool addToMap=true)
bool Create(uint32 guidlow, uint32 name_id, Map *map, float x, float y, float z, float ang, float rotation0, float rotation1, float rotation2, float rotation3, uint32 animprogress, GOState go_state, uint32 artKit=0)
bool LoadGameObjectFromDB(uint32 guid, Map *map, bool addToMap=true)
static Item * CreateItem(uint32 itemEntry, uint32 count, Player const *player=NULL)
static uint32 AddPath(std::list< TaxiPathNodeEntry > nodes, uint32 mountA, uint32 mountH, uint32 price=0, uint32 pathId=0)
void SendMailTo(SQLTransaction &trans, MailReceiver const &receiver, MailSender const &sender, MailCheckMask checked=MAIL_CHECK_MASK_NONE, uint32 deliver_delay=0)
MailDraft & AddItem(Item *item)
uint8 GetSpawnMode() const
TempSummon * SummonCreature(uint32 entry, Position const &pos, SummonPropertiesEntry const *properties=NULL, uint32 duration=0, Unit *summoner=NULL, uint32 spellId=0, uint32 vehId=0)
PlayerList const & GetPlayers() const
LinkedListHead::Iterator< MapReference const > const_iterator
static void SaveAllPlayers()
static Player * FindPlayerByName(std::string const &name)
static Player * FindPlayer(uint64)
static void GetLocaleString(const StringVector &data, int loc_idx, std::string &value)
WorldSession * GetSession() const
void SetTempSummonType(TempSummonType type)
void SetPhaseMask(uint32 newPhaseMask, bool update) override
static Player * GetPlayer(WorldObject &object, uint64 guid)
void KickPlayer()
Kick a player out of the World.
CharacterDatabaseWorkerPool CharacterDatabase
Accessor to the character database.
WorldDatabaseWorkerPool WorldDatabase
Accessor to the world database.
#define NUM_OPCODE_HANDLERS
UNORDERED_MAP< uint32, WorldSession * > SessionMap
int GetLuaEngine(lua_State *L)
int RemoveEventById(lua_State *L)
int bit_rshift(lua_State *L)
int WorldDBExecute(lua_State *L)
int GetGUIDType(lua_State *L)
static int GetUnitGUID(lua_State *L)
int RegisterGroupEvent(lua_State *L)
int RegisterVehicleEvent(lua_State *L)
int GetPlayerCount(lua_State *L)
int CreatePacket(lua_State *L)
int GetGUIDLow(lua_State *L)
int GetGUIDEntry(lua_State *L)
int SaveAllPlayers(lua_State *L)
int CreateLuaEvent(lua_State *L)
int GetMapById(lua_State *L)
int GetPlayerByName(lua_State *L)
int GetGuildByName(lua_State *L)
int AuthDBExecute(lua_State *L)
int GetGameTime(lua_State *L)
int GetItemLink(lua_State *L)
int RegisterGameObjectEvent(lua_State *L)
int SendMail(lua_State *L)
int bit_lshift(lua_State *L)
int RegisterGuildEvent(lua_State *L)
int VendorRemoveAllItems(lua_State *L)
static int GetPlayerGUID(lua_State *L)
int RegisterCreatureGossipEvent(lua_State *L)
int GetPlayerByGUID(lua_State *L)
int AddVendorItem(lua_State *L)
static int GetObjectGUID(lua_State *L)
int bit_not(lua_State *L)
int RegisterItemGossipEvent(lua_State *L)
int GetPlayersInMap(lua_State *L)
int VendorRemoveItem(lua_State *L)
int GetCoreVersion(lua_State *L)
int RegisterGameObjectGossipEvent(lua_State *L)
int RegisterPlayerGossipEvent(lua_State *L)
int CharDBQuery(lua_State *L)
int AddTaxiPath(lua_State *L)
int RegisterPlayerEvent(lua_State *L)
int GetPlayersInWorld(lua_State *L)
int RemoveEvents(lua_State *L)
int GetQuest(lua_State *L)
int RegisterItemEvent(lua_State *L)
int CharDBExecute(lua_State *L)
int bit_xor(lua_State *L)
int SendWorldMessage(lua_State *L)
int WorldDBQuery(lua_State *L)
int GetGuildByLeaderGUID(lua_State *L)
int PerformIngameSpawn(lua_State *L)
int RegisterCreatureEvent(lua_State *L)
int AuthDBQuery(lua_State *L)
int RegisterServerEvent(lua_State *L)
int bit_and(lua_State *L)
int ReloadEluna(lua_State *L)
static int GetItemGUID(lua_State *L)
LoginDatabaseWorkerPool LoginDatabase