2013-06-26 12:52:00 -07:00
|
|
|
#ifdef LUA_EQEMU
|
2013-05-16 15:35:55 -07:00
|
|
|
#include <sstream>
|
|
|
|
|
|
|
|
|
|
#include "lua.hpp"
|
|
|
|
|
#include <luabind/luabind.hpp>
|
2013-05-23 12:43:21 -07:00
|
|
|
#include <luabind/object.hpp>
|
2013-05-16 15:35:55 -07:00
|
|
|
|
2014-08-21 23:46:01 -07:00
|
|
|
#include "quest_parser_collection.h"
|
|
|
|
|
#include "quest_interface.h"
|
2013-05-16 15:35:55 -07:00
|
|
|
|
|
|
|
|
#include "masterentity.h"
|
2013-05-18 14:42:54 -07:00
|
|
|
#include "lua_item.h"
|
|
|
|
|
#include "lua_iteminst.h"
|
2013-05-16 15:35:55 -07:00
|
|
|
#include "lua_mob.h"
|
|
|
|
|
#include "lua_client.h"
|
|
|
|
|
#include "lua_npc.h"
|
2013-05-17 17:10:38 -07:00
|
|
|
#include "lua_spell.h"
|
2013-06-19 22:56:46 -07:00
|
|
|
#include "lua_corpse.h"
|
|
|
|
|
#include "lua_door.h"
|
|
|
|
|
#include "lua_object.h"
|
2013-07-13 13:53:41 -07:00
|
|
|
#include "lua_packet.h"
|
2015-06-05 12:23:42 -07:00
|
|
|
#include "lua_encounter.h"
|
2013-05-16 15:35:55 -07:00
|
|
|
#include "zone.h"
|
|
|
|
|
#include "lua_parser_events.h"
|
|
|
|
|
|
|
|
|
|
//NPC
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_npc_event_say(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
NPC* npc,
|
|
|
|
|
Mob *init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2013-05-19 12:13:44 -07:00
|
|
|
npc->DoQuestPause(init);
|
|
|
|
|
|
2013-05-16 15:35:55 -07:00
|
|
|
Lua_Client l_client(reinterpret_cast<Client*>(init));
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_client_o = luabind::adl::object(L, l_client);
|
2013-05-16 15:35:55 -07:00
|
|
|
l_client_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
|
|
|
|
|
lua_pushstring(L, data.c_str());
|
|
|
|
|
lua_setfield(L, -2, "message");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, extra_data);
|
|
|
|
|
lua_setfield(L, -2, "language");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_npc_event_trade(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
NPC* npc,
|
|
|
|
|
Mob *init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2025-02-03 16:51:09 -06:00
|
|
|
Lua_NPC l_npc(reinterpret_cast<NPC*>(npc));
|
|
|
|
|
luabind::adl::object l_npc_o = luabind::adl::object(L, l_npc);
|
|
|
|
|
l_npc_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "self");
|
|
|
|
|
|
[Logging] Implement Player Event Logging system (#2833)
* Plumbing
* Batch processing in world
* Cleanup
* Cleanup
* Update player_event_logs.cpp
* Add player zoning event
* Use generics
* Comments
* Add events
* Add more events
* AA_GAIN, AA_PURCHASE, FORAGE_SUCCESS, FORAGE_FAILURE
* FISH_SUCCESS, FISH_FAILURE, ITEM_DESTROY
* Add charges to ITEM_DESTROY
* WENT_ONLINE, WENT_OFFLINE
* LEVEL_GAIN, LEVEL_LOSS
* LOOT_ITEM
* MERCHANT_PURCHASE
* MERCHANT_SELL
* SKILL_UP
* Add events
* Add more events
* TASK_ACCEPT, TASK_COMPLETE, and TASK_UPDATE
* GROUNDSPAWN_PICKUP
* SAY
* REZ_ACCEPTED
* COMBINE_FAILURE and COMBINE_SUCCESS
* DROPPED_ITEM
* DEATH
* SPLIT_MONEY
* TRADER_PURCHASE and TRADER_SELL
* DISCOVER_ITEM
* Convert GM_COMMAND to use new macro
* Convert ZONING event to use macro
* Revert some code changes
* Revert "Revert some code changes"
This reverts commit d53682f997e89a053a660761085913245db91e9d.
* Add cereal generation support to repositories
* TRADE
* Formatting
* Cleanup
* Relocate discord_manager to discord folder
* Discord sending plumbing
* Rename UCS's Database class to UCSDatabase to be more specific and not collide with base Database class for repository usage
* More discord sending plumbing
* More discord message formatting work
* More discord formatting work
* Discord formatting of events
* Format WENT_ONLINE, WENT_OFFLINE
* Add merchant purchase event
* Handle Discord MERCHANT_SELL formatter
* Update player_event_discord_formatter.cpp
* Tweaks
* Implement retention truncation
* Put mutex locking on batch queue, put processor on its own thread
* Process on initial bootup
* Implement optional QS processing, implement keepalive from world to QS
* Reload player event settings when logs are reloaded in game
* Set settings defaults
* Update player_event_logs.cpp
* Update player_event_logs.cpp
* Set retention days on boot
* Update player_event_logs.cpp
* Player Handin Event Testing.
Testing player handin stuff.
* Cleanup.
* Finish NPC Handin.
* set a reference to the client inside of the trade object as well for plugins to process
* Fix for windows _inline
* Bump to cpp20 default, ignore excessive warnings on windows
* Bump FMT to 6.1.2 for cpp20 compat and swap fmt::join for Strings::Join
* Windows compile fixes
* Update CMakeLists.txt
* Update CMakeLists.txt
* Update CMakeLists.txt
* Create 2022_12_19_player_events_tables.sql
* [Formatters] Work on Discord Formatters
* Handin money.
* Format header
* [Formatters] Work on Discord Formatters
* Format
* Format
* [Formatters] More Formatter work, need to test further.
* [Formatters] More Work on Formatters.
* Add missing #endif
* [Formatters] Work on Formatters, fix Bot formatting in ^create help
* NPC Handin Discord Formatter
* Update player_event_logs.cpp
* Discover Item Discord Formatter
* Dropped Item Discord Formatter
* Split Money Discord Formatter
* Trader Discord Formatters
* Cleanup.
* Trade Event Discord Formatter Groundwork
* SAY don't record GM commands
* GM_Command don't record #help
* Update player_event_logs.cpp
* Fill in more event data
* Post rebase fixes
* Post rebase fix
* Discord formatting adjustments
* Add event deprecation or unimplemented tag support
* Trade events
* Add return money and sanity checks.
* Update schema
* Update ucs.cpp
* Update client.cpp
* Update 2022_12_19_player_events_tables.sql
* Implement archive single line
* Replace hackers table and functions with PossibleHack player event
* Replace very old eventlog table since the same events are covered by player event logs
* Update bot_command.cpp
* Record NPC kill events ALL / Named / Raid
* Add BatchEventProcessIntervalSeconds rule
* Naming
* Update CMakeLists.txt
* Update database_schema.h
* Remove logging function and methods
* DB version
* Cleanup SendPlayerHandinEvent
---------
Co-authored-by: Kinglykrab <kinglykrab@gmail.com>
Co-authored-by: Aeadoin <109764533+Aeadoin@users.noreply.github.com>
2023-02-12 21:31:01 -06:00
|
|
|
Lua_Client l_client(reinterpret_cast<Client *>(init));
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_client_o = luabind::adl::object(L, l_client);
|
2013-05-16 15:35:55 -07:00
|
|
|
l_client_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
2022-11-25 15:09:08 -05:00
|
|
|
|
2013-05-16 15:35:55 -07:00
|
|
|
lua_createtable(L, 0, 0);
|
2022-11-25 15:09:08 -05:00
|
|
|
const auto npc_id = npc->GetNPCTypeID();
|
|
|
|
|
|
|
|
|
|
if (extra_pointers) {
|
2014-08-31 20:27:02 -07:00
|
|
|
size_t sz = extra_pointers->size();
|
2022-11-25 15:09:08 -05:00
|
|
|
for (size_t i = 0; i < sz; ++i) {
|
|
|
|
|
auto prefix = fmt::format("item{}", i + 1);
|
|
|
|
|
auto* inst = std::any_cast<EQ::ItemInstance*>(extra_pointers->at(i));
|
2014-08-31 20:27:02 -07:00
|
|
|
|
|
|
|
|
Lua_ItemInst l_inst = inst;
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_inst_o = luabind::adl::object(L, l_inst);
|
2013-06-05 16:47:49 -07:00
|
|
|
l_inst_o.push(L);
|
|
|
|
|
|
|
|
|
|
lua_setfield(L, -2, prefix.c_str());
|
2013-05-27 17:24:31 -07:00
|
|
|
}
|
|
|
|
|
}
|
2013-06-05 16:47:49 -07:00
|
|
|
|
2022-11-25 15:09:08 -05:00
|
|
|
auto money_string = fmt::format("platinum.{}", npc_id);
|
2023-03-04 18:01:19 -05:00
|
|
|
uint32 money_value = !parse->GetVar(money_string).empty() ? Strings::ToUnsignedInt(parse->GetVar(money_string)) : 0;
|
2022-11-25 15:09:08 -05:00
|
|
|
|
|
|
|
|
lua_pushinteger(L, money_value);
|
2013-05-16 15:35:55 -07:00
|
|
|
lua_setfield(L, -2, "platinum");
|
|
|
|
|
|
2022-11-25 15:09:08 -05:00
|
|
|
money_string = fmt::format("gold.{}", npc_id);
|
2023-03-04 18:01:19 -05:00
|
|
|
money_value = !parse->GetVar(money_string).empty() ? Strings::ToUnsignedInt(parse->GetVar(money_string)) : 0;
|
2022-11-25 15:09:08 -05:00
|
|
|
|
|
|
|
|
lua_pushinteger(L, money_value);
|
2013-05-16 15:35:55 -07:00
|
|
|
lua_setfield(L, -2, "gold");
|
|
|
|
|
|
2022-11-25 15:09:08 -05:00
|
|
|
money_string = fmt::format("silver.{}", npc_id);
|
2023-03-04 18:01:19 -05:00
|
|
|
money_value = !parse->GetVar(money_string).empty() ? Strings::ToUnsignedInt(parse->GetVar(money_string)) : 0;
|
2022-11-25 15:09:08 -05:00
|
|
|
|
|
|
|
|
lua_pushinteger(L, money_value);
|
2013-05-16 15:35:55 -07:00
|
|
|
lua_setfield(L, -2, "silver");
|
|
|
|
|
|
2022-11-25 15:09:08 -05:00
|
|
|
money_string = fmt::format("copper.{}", npc_id);
|
2023-03-04 18:01:19 -05:00
|
|
|
money_value = !parse->GetVar(money_string).empty() ? Strings::ToUnsignedInt(parse->GetVar(money_string)) : 0;
|
2022-11-25 15:09:08 -05:00
|
|
|
|
|
|
|
|
lua_pushinteger(L, money_value);
|
2013-05-16 15:35:55 -07:00
|
|
|
lua_setfield(L, -2, "copper");
|
2022-11-25 15:09:08 -05:00
|
|
|
|
2025-02-03 16:51:09 -06:00
|
|
|
// set a reference to the NPC inside the trade object as well for plugins to process
|
|
|
|
|
l_npc_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "self");
|
|
|
|
|
|
[Logging] Implement Player Event Logging system (#2833)
* Plumbing
* Batch processing in world
* Cleanup
* Cleanup
* Update player_event_logs.cpp
* Add player zoning event
* Use generics
* Comments
* Add events
* Add more events
* AA_GAIN, AA_PURCHASE, FORAGE_SUCCESS, FORAGE_FAILURE
* FISH_SUCCESS, FISH_FAILURE, ITEM_DESTROY
* Add charges to ITEM_DESTROY
* WENT_ONLINE, WENT_OFFLINE
* LEVEL_GAIN, LEVEL_LOSS
* LOOT_ITEM
* MERCHANT_PURCHASE
* MERCHANT_SELL
* SKILL_UP
* Add events
* Add more events
* TASK_ACCEPT, TASK_COMPLETE, and TASK_UPDATE
* GROUNDSPAWN_PICKUP
* SAY
* REZ_ACCEPTED
* COMBINE_FAILURE and COMBINE_SUCCESS
* DROPPED_ITEM
* DEATH
* SPLIT_MONEY
* TRADER_PURCHASE and TRADER_SELL
* DISCOVER_ITEM
* Convert GM_COMMAND to use new macro
* Convert ZONING event to use macro
* Revert some code changes
* Revert "Revert some code changes"
This reverts commit d53682f997e89a053a660761085913245db91e9d.
* Add cereal generation support to repositories
* TRADE
* Formatting
* Cleanup
* Relocate discord_manager to discord folder
* Discord sending plumbing
* Rename UCS's Database class to UCSDatabase to be more specific and not collide with base Database class for repository usage
* More discord sending plumbing
* More discord message formatting work
* More discord formatting work
* Discord formatting of events
* Format WENT_ONLINE, WENT_OFFLINE
* Add merchant purchase event
* Handle Discord MERCHANT_SELL formatter
* Update player_event_discord_formatter.cpp
* Tweaks
* Implement retention truncation
* Put mutex locking on batch queue, put processor on its own thread
* Process on initial bootup
* Implement optional QS processing, implement keepalive from world to QS
* Reload player event settings when logs are reloaded in game
* Set settings defaults
* Update player_event_logs.cpp
* Update player_event_logs.cpp
* Set retention days on boot
* Update player_event_logs.cpp
* Player Handin Event Testing.
Testing player handin stuff.
* Cleanup.
* Finish NPC Handin.
* set a reference to the client inside of the trade object as well for plugins to process
* Fix for windows _inline
* Bump to cpp20 default, ignore excessive warnings on windows
* Bump FMT to 6.1.2 for cpp20 compat and swap fmt::join for Strings::Join
* Windows compile fixes
* Update CMakeLists.txt
* Update CMakeLists.txt
* Update CMakeLists.txt
* Create 2022_12_19_player_events_tables.sql
* [Formatters] Work on Discord Formatters
* Handin money.
* Format header
* [Formatters] Work on Discord Formatters
* Format
* Format
* [Formatters] More Formatter work, need to test further.
* [Formatters] More Work on Formatters.
* Add missing #endif
* [Formatters] Work on Formatters, fix Bot formatting in ^create help
* NPC Handin Discord Formatter
* Update player_event_logs.cpp
* Discover Item Discord Formatter
* Dropped Item Discord Formatter
* Split Money Discord Formatter
* Trader Discord Formatters
* Cleanup.
* Trade Event Discord Formatter Groundwork
* SAY don't record GM commands
* GM_Command don't record #help
* Update player_event_logs.cpp
* Fill in more event data
* Post rebase fixes
* Post rebase fix
* Discord formatting adjustments
* Add event deprecation or unimplemented tag support
* Trade events
* Add return money and sanity checks.
* Update schema
* Update ucs.cpp
* Update client.cpp
* Update 2022_12_19_player_events_tables.sql
* Implement archive single line
* Replace hackers table and functions with PossibleHack player event
* Replace very old eventlog table since the same events are covered by player event logs
* Update bot_command.cpp
* Record NPC kill events ALL / Named / Raid
* Add BatchEventProcessIntervalSeconds rule
* Naming
* Update CMakeLists.txt
* Update database_schema.h
* Remove logging function and methods
* DB version
* Cleanup SendPlayerHandinEvent
---------
Co-authored-by: Kinglykrab <kinglykrab@gmail.com>
Co-authored-by: Aeadoin <109764533+Aeadoin@users.noreply.github.com>
2023-02-12 21:31:01 -06:00
|
|
|
// set a reference to the client inside of the trade object as well for plugins to process
|
|
|
|
|
l_client_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
|
2013-05-16 15:35:55 -07:00
|
|
|
lua_setfield(L, -2, "trade");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_npc_event_hp(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
NPC* npc,
|
|
|
|
|
Mob *init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2013-05-16 15:35:55 -07:00
|
|
|
if(extra_data == 1) {
|
|
|
|
|
lua_pushinteger(L, -1);
|
|
|
|
|
lua_setfield(L, -2, "hp_event");
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(data));
|
2013-05-16 15:35:55 -07:00
|
|
|
lua_setfield(L, -2, "inc_hp_event");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(data));
|
2013-05-16 15:35:55 -07:00
|
|
|
lua_setfield(L, -2, "hp_event");
|
|
|
|
|
lua_pushinteger(L, -1);
|
|
|
|
|
lua_setfield(L, -2, "inc_hp_event");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_npc_single_mob(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
NPC* npc,
|
|
|
|
|
Mob *init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2013-05-16 15:35:55 -07:00
|
|
|
Lua_Mob l_mob(init);
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_mob_o = luabind::adl::object(L, l_mob);
|
2013-05-16 15:35:55 -07:00
|
|
|
l_mob_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_npc_single_client(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
NPC* npc,
|
|
|
|
|
Mob *init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2013-05-16 15:35:55 -07:00
|
|
|
Lua_Client l_client(reinterpret_cast<Client*>(init));
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_client_o = luabind::adl::object(L, l_client);
|
2013-05-16 15:35:55 -07:00
|
|
|
l_client_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_npc_task_accepted(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
NPC* npc,
|
|
|
|
|
Mob *init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2013-06-19 22:56:46 -07:00
|
|
|
Lua_Client l_client(reinterpret_cast<Client*>(init));
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_client_o = luabind::adl::object(L, l_client);
|
2013-06-19 22:56:46 -07:00
|
|
|
l_client_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(data));
|
2013-06-19 22:56:46 -07:00
|
|
|
lua_setfield(L, -2, "task_id");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_npc_popup(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
NPC* npc,
|
|
|
|
|
Mob *init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2013-05-16 15:35:55 -07:00
|
|
|
Lua_Mob l_mob(init);
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_mob_o = luabind::adl::object(L, l_mob);
|
2013-05-16 15:35:55 -07:00
|
|
|
l_mob_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(data));
|
2013-05-16 15:35:55 -07:00
|
|
|
lua_setfield(L, -2, "popup_id");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_npc_waypoint(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
NPC* npc,
|
|
|
|
|
Mob *init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2013-05-16 15:35:55 -07:00
|
|
|
Lua_Mob l_mob(init);
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_mob_o = luabind::adl::object(L, l_mob);
|
2013-05-16 15:35:55 -07:00
|
|
|
l_mob_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(data, -1));
|
2013-05-16 15:35:55 -07:00
|
|
|
lua_setfield(L, -2, "wp");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_npc_hate(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
NPC* npc,
|
|
|
|
|
Mob *init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2013-05-16 15:35:55 -07:00
|
|
|
Lua_Mob l_mob(init);
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_mob_o = luabind::adl::object(L, l_mob);
|
2013-05-16 15:35:55 -07:00
|
|
|
l_mob_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
|
2023-07-31 20:59:56 -04:00
|
|
|
lua_pushboolean(L, Strings::ToBool(data));
|
2013-05-16 15:35:55 -07:00
|
|
|
lua_setfield(L, -2, "joined");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_npc_signal(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
NPC* npc,
|
|
|
|
|
Mob *init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(data));
|
2013-06-12 15:04:26 -07:00
|
|
|
lua_setfield(L, -2, "signal");
|
2013-05-16 15:35:55 -07:00
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_npc_payload(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
NPC* npc,
|
|
|
|
|
Mob *init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[0]));
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
lua_setfield(L, -2, "payload_id");
|
|
|
|
|
|
|
|
|
|
lua_pushstring(L, sep.argplus[1]);
|
|
|
|
|
lua_setfield(L, -2, "payload_value");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void handle_npc_timer(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
NPC* npc,
|
|
|
|
|
Mob *init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2013-05-16 15:35:55 -07:00
|
|
|
lua_pushstring(L, data.c_str());
|
|
|
|
|
lua_setfield(L, -2, "timer");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_npc_death(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
NPC* npc,
|
|
|
|
|
Mob *init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2023-12-31 17:37:26 -05:00
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
|
2013-05-16 15:35:55 -07:00
|
|
|
Lua_Mob l_mob(init);
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_mob_o = luabind::adl::object(L, l_mob);
|
2013-05-16 15:35:55 -07:00
|
|
|
l_mob_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[0]));
|
2022-11-05 11:13:39 -04:00
|
|
|
lua_setfield(L, -2, "killer_id");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[1]));
|
2013-05-16 15:35:55 -07:00
|
|
|
lua_setfield(L, -2, "damage");
|
|
|
|
|
|
2023-07-31 20:59:56 -04:00
|
|
|
const uint32 spell_id = Strings::ToUnsignedInt(sep.arg[2]);
|
|
|
|
|
if (IsValidSpell(spell_id)) {
|
2013-05-17 17:10:38 -07:00
|
|
|
Lua_Spell l_spell(&spells[spell_id]);
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_spell_o = luabind::adl::object(L, l_spell);
|
2013-05-17 17:10:38 -07:00
|
|
|
l_spell_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "spell");
|
|
|
|
|
} else {
|
|
|
|
|
Lua_Spell l_spell(nullptr);
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_spell_o = luabind::adl::object(L, l_spell);
|
2013-05-17 17:10:38 -07:00
|
|
|
l_spell_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "spell");
|
|
|
|
|
}
|
2013-05-16 15:35:55 -07:00
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[3]));
|
2013-05-16 15:35:55 -07:00
|
|
|
lua_setfield(L, -2, "skill_id");
|
2022-11-05 11:13:39 -04:00
|
|
|
|
2023-12-31 17:37:26 -05:00
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[4]));
|
|
|
|
|
lua_setfield(L, -2, "killed_entity_id");
|
|
|
|
|
|
2024-02-24 23:57:49 -05:00
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[5]));
|
|
|
|
|
lua_setfield(L, -2, "combat_start_time");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[6]));
|
|
|
|
|
lua_setfield(L, -2, "combat_end_time");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToBigInt(sep.arg[7]));
|
|
|
|
|
lua_setfield(L, -2, "damage_received");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToBigInt(sep.arg[8]));
|
|
|
|
|
lua_setfield(L, -2, "healing_received");
|
|
|
|
|
|
2023-07-31 20:59:56 -04:00
|
|
|
if (extra_pointers && extra_pointers->size() >= 1) {
|
2022-11-06 10:36:57 -05:00
|
|
|
Lua_Corpse l_corpse(std::any_cast<Corpse*>(extra_pointers->at(0)));
|
|
|
|
|
luabind::adl::object l_corpse_o = luabind::adl::object(L, l_corpse);
|
|
|
|
|
l_corpse_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "corpse");
|
|
|
|
|
}
|
|
|
|
|
|
2023-07-31 20:59:56 -04:00
|
|
|
if (extra_pointers && extra_pointers->size() >= 2) {
|
2022-11-06 10:36:57 -05:00
|
|
|
Lua_NPC l_npc(std::any_cast<NPC*>(extra_pointers->at(1)));
|
2022-11-05 11:13:39 -04:00
|
|
|
luabind::adl::object l_npc_o = luabind::adl::object(L, l_npc);
|
|
|
|
|
l_npc_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "killed");
|
|
|
|
|
}
|
2013-05-16 15:35:55 -07:00
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_npc_cast(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
NPC* npc,
|
|
|
|
|
Mob *init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2023-07-31 20:59:56 -04:00
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
|
|
|
|
|
const uint32 spell_id = Strings::ToUnsignedInt(sep.arg[0]);
|
|
|
|
|
Lua_Spell l_spell(IsValidSpell(spell_id) ? &spells[spell_id] : nullptr);
|
|
|
|
|
luabind::adl::object l_spell_o = luabind::adl::object(L, l_spell);
|
|
|
|
|
l_spell_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "spell");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[1]));
|
|
|
|
|
lua_setfield(L, -2, "caster_id");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[2]));
|
|
|
|
|
lua_setfield(L, -2, "caster_level");
|
[Quest API] Add target ID and spell exports to events (#3620)
* [Quest API] Add target ID and spell exports to events
# Notes
- Add `$spell` export to `EVENT_CAST`, `EVENT_CAST_BEGIN`, `EVENT_CAST_BEGIN`, `EVENT_ITEM_CLICK`, `EVENT_ITEM_CLICK_CAST`, `EVENT_ITEM_CLICK_CLIENT`, `EVENT_ITEM_CLICK_CAST_CLIENT`, `EVENT_SPELL_EFFECT_BUFF_TIC_BOT`, `EVENT_SPELL_EFFECT_BUFF_TIC_CLIENT`, `EVENT_SPELL_EFFECT_BUFF_TIC_NPC`, `EVENT_SPELL_EFFECT_BOT`, `EVENT_SPELL_EFFECT_CLIENT`, `EVENT_SPELL_EFFECT_NPC`, `EVENT_SPELL_FADE`, `EVENT_DEATH`, `EVENT_DEATH_COMPLETE`, `EVENT_DEATH_ZONE`, `EVENT_DAMAGE_GIVEN`, and `EVENT_DAMAGE_TAKEN` in Perl.
- Add `$target_id` export to `EVENT_CAST`, `EVENT_CAST_BEGIN`, and `EVENT_CAST_ON` in Perl.
- Add `e.target_id` export to `EVENT_CAST`, `EVENT_CAST_BEGIN`, and `EVENT_CAST_ON` in Lua.
* Add $target/e.target exports.
* Update spells.cpp
2023-10-15 19:40:25 -04:00
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[3]));
|
|
|
|
|
lua_setfield(L, -2, "target_id");
|
|
|
|
|
|
|
|
|
|
if (extra_pointers && extra_pointers->size() == 1) {
|
|
|
|
|
Lua_Mob l_mob(std::any_cast<Mob*>(extra_pointers->at(0)));
|
|
|
|
|
luabind::adl::object l_mob_o = luabind::adl::object(L, l_mob);
|
|
|
|
|
l_mob_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "target");
|
|
|
|
|
}
|
2013-06-05 16:47:49 -07:00
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_npc_area(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
NPC* npc,
|
|
|
|
|
Mob *init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2022-07-27 10:00:09 -04:00
|
|
|
lua_pushinteger(L, *std::any_cast<int*>(extra_pointers->at(0)));
|
2013-06-22 20:47:11 -07:00
|
|
|
lua_setfield(L, -2, "area_id");
|
|
|
|
|
|
2022-07-27 10:00:09 -04:00
|
|
|
lua_pushinteger(L, *std::any_cast<int*>(extra_pointers->at(1)));
|
2013-06-22 20:47:11 -07:00
|
|
|
lua_setfield(L, -2, "area_type");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_npc_null(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
NPC* npc,
|
|
|
|
|
Mob *init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2013-05-16 15:35:55 -07:00
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_npc_loot_zone(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
NPC* npc,
|
|
|
|
|
Mob *init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2021-10-16 23:19:19 -05:00
|
|
|
Lua_Client l_client(reinterpret_cast<Client*>(init));
|
|
|
|
|
luabind::adl::object l_client_o = luabind::adl::object(L, l_client);
|
|
|
|
|
l_client_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
2022-11-25 15:09:08 -05:00
|
|
|
|
2022-07-27 10:00:09 -04:00
|
|
|
Lua_ItemInst l_item(std::any_cast<EQ::ItemInstance*>(extra_pointers->at(0)));
|
2021-10-16 23:19:19 -05:00
|
|
|
luabind::adl::object l_item_o = luabind::adl::object(L, l_item);
|
|
|
|
|
l_item_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "item");
|
2022-11-25 15:09:08 -05:00
|
|
|
|
2022-07-27 10:00:09 -04:00
|
|
|
Lua_Corpse l_corpse(std::any_cast<Corpse*>(extra_pointers->at(1)));
|
2021-10-16 23:19:19 -05:00
|
|
|
luabind::adl::object l_corpse_o = luabind::adl::object(L, l_corpse);
|
|
|
|
|
l_corpse_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "corpse");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_npc_spawn_zone(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
NPC* npc,
|
|
|
|
|
Mob *init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2022-11-05 11:13:39 -04:00
|
|
|
Lua_NPC l_npc(std::any_cast<NPC*>(init->CastToNPC()));
|
|
|
|
|
luabind::adl::object l_npc_o = luabind::adl::object(L, l_npc);
|
|
|
|
|
l_npc_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
}
|
|
|
|
|
|
2023-01-10 21:14:42 -05:00
|
|
|
void handle_npc_despawn_zone(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
NPC* npc,
|
|
|
|
|
Mob *init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
2023-01-10 21:14:42 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Lua_Mob l_mob(init);
|
|
|
|
|
luabind::adl::object l_mob_o = luabind::adl::object(L, l_mob);
|
|
|
|
|
l_mob_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
void handle_npc_damage(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
NPC* npc,
|
|
|
|
|
Mob* init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushnumber(L, Strings::ToUnsignedInt(sep.arg[0]));
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
lua_setfield(L, -2, "entity_id");
|
|
|
|
|
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushnumber(L, Strings::ToBigInt(sep.arg[1]));
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
lua_setfield(L, -2, "damage");
|
|
|
|
|
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushnumber(L, Strings::ToInt(sep.arg[2]));
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
lua_setfield(L, -2, "spell_id");
|
|
|
|
|
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushnumber(L, Strings::ToInt(sep.arg[3]));
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
lua_setfield(L, -2, "skill_id");
|
|
|
|
|
|
2023-07-31 20:59:56 -04:00
|
|
|
lua_pushboolean(L, Strings::ToBool(sep.arg[4]));
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
lua_setfield(L, -2, "is_damage_shield");
|
|
|
|
|
|
2023-07-31 20:59:56 -04:00
|
|
|
lua_pushboolean(L, Strings::ToBool(sep.arg[5]));
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
lua_setfield(L, -2, "is_avoidable");
|
|
|
|
|
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushnumber(L, Strings::ToInt(sep.arg[6]));
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
lua_setfield(L, -2, "buff_slot");
|
|
|
|
|
|
2023-07-31 20:59:56 -04:00
|
|
|
lua_pushboolean(L, Strings::ToBool(sep.arg[7]));
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
lua_setfield(L, -2, "is_buff_tic");
|
|
|
|
|
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushnumber(L, Strings::ToInt(sep.arg[8]));
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
lua_setfield(L, -2, "special_attack");
|
|
|
|
|
|
|
|
|
|
Lua_Mob l_mob(init);
|
|
|
|
|
luabind::adl::object l_mob_o = luabind::adl::object(L, l_mob);
|
|
|
|
|
l_mob_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_LOOT_ADDED to Perl/Lua (#3739)
* [Quest API] Add EVENT_ADDED_LOOT to Perl/Lua
# Perl
- Add `EVENT_ADDED_LOOT`.
- Exports `$item`, `$item_id`, `$item_name`, `$item_charges`, `$augment_one`, `$augment_two`, `$augment_three`, `$augment_four`, `$augment_five`, and `$augment_six`.
# Lua
- Add `event_added_loot`.
- Exports `e.item`, `e.item_id`, `e.item_name`, `e.item_charges`, `e.augment_one`, `e.augment_two`, `e.augment_three`, `e.augment_four`, `e.augment_five`, and `e.augment_six`.
# Notes
- Allows operators to perform events when loot is added to an NPC, such as removing the loot or keeping track of it.
* Update lua_parser_events.cpp
* Rename event.
* loot_added
* AddItem changese
2023-12-16 23:25:09 -05:00
|
|
|
void handle_npc_loot_added(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
NPC* npc,
|
|
|
|
|
Mob* init,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
if (extra_pointers && extra_pointers->size() == 1) {
|
|
|
|
|
auto *inst = std::any_cast<EQ::ItemInstance *>(extra_pointers->at(0));
|
|
|
|
|
auto *item = database.GetItem(inst->GetID());
|
|
|
|
|
|
|
|
|
|
if (item) {
|
|
|
|
|
Lua_Item l_item(item);
|
|
|
|
|
luabind::adl::object l_item_o = luabind::adl::object(L, l_item);
|
|
|
|
|
l_item_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "item");
|
|
|
|
|
} else {
|
|
|
|
|
Lua_Item l_item(nullptr);
|
|
|
|
|
luabind::adl::object l_item_o = luabind::adl::object(L, l_item);
|
|
|
|
|
l_item_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "item");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (inst) {
|
|
|
|
|
lua_pushinteger(L, inst->GetID());
|
|
|
|
|
lua_setfield(L, -2, "item_id");
|
|
|
|
|
|
|
|
|
|
lua_pushstring(L, inst->GetItem()->Name);
|
|
|
|
|
lua_setfield(L, -2, "item_name");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, inst->GetCharges());
|
|
|
|
|
lua_setfield(L, -2, "item_charges");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, inst->GetAugmentItemID(EQ::invaug::SOCKET_BEGIN));
|
|
|
|
|
lua_setfield(L, -2, "augment_one");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, inst->GetAugmentItemID(EQ::invaug::SOCKET_BEGIN + 1));
|
|
|
|
|
lua_setfield(L, -2, "augment_two");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, inst->GetAugmentItemID(EQ::invaug::SOCKET_BEGIN + 2));
|
|
|
|
|
lua_setfield(L, -2, "augment_three");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, inst->GetAugmentItemID(EQ::invaug::SOCKET_BEGIN + 3));
|
|
|
|
|
lua_setfield(L, -2, "augment_four");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, inst->GetAugmentItemID(EQ::invaug::SOCKET_BEGIN + 4));
|
|
|
|
|
lua_setfield(L, -2, "augment_five");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, inst->GetAugmentItemID(EQ::invaug::SOCKET_END));
|
|
|
|
|
lua_setfield(L, -2, "augment_six");
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-02-19 04:51:16 -05:00
|
|
|
void handle_npc_timer_pause_resume_start(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
NPC* npc,
|
|
|
|
|
Mob *init,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
|
|
|
|
|
lua_pushstring(L, sep.arg[0]);
|
|
|
|
|
lua_setfield(L, -2, "timer");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[1]));
|
|
|
|
|
lua_setfield(L, -2, "duration");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void handle_npc_timer_stop(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
NPC* npc,
|
|
|
|
|
Mob *init,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
lua_pushstring(L, data.c_str());
|
|
|
|
|
lua_setfield(L, -2, "timer");
|
|
|
|
|
}
|
|
|
|
|
|
2024-02-19 21:34:33 -05:00
|
|
|
void handle_npc_entity_variable(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
NPC* npc,
|
|
|
|
|
Mob *init,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
if (extra_pointers) {
|
|
|
|
|
if (extra_pointers->size() == 2) {
|
|
|
|
|
lua_pushstring(L, std::any_cast<std::string>(extra_pointers->at(0)).c_str());
|
|
|
|
|
lua_setfield(L, -2, "variable_name");
|
|
|
|
|
|
|
|
|
|
lua_pushstring(L, std::any_cast<std::string>(extra_pointers->at(1)).c_str());
|
|
|
|
|
lua_setfield(L, -2, "variable_value");
|
|
|
|
|
} else if (extra_pointers->size() == 3) {
|
|
|
|
|
lua_pushstring(L, std::any_cast<std::string>(extra_pointers->at(0)).c_str());
|
|
|
|
|
lua_setfield(L, -2, "variable_name");
|
|
|
|
|
|
|
|
|
|
lua_pushstring(L, std::any_cast<std::string>(extra_pointers->at(1)).c_str());
|
|
|
|
|
lua_setfield(L, -2, "old_value");
|
|
|
|
|
|
|
|
|
|
lua_pushstring(L, std::any_cast<std::string>(extra_pointers->at(2)).c_str());
|
|
|
|
|
lua_setfield(L, -2, "new_value");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-31 23:58:30 -04:00
|
|
|
void handle_npc_spell_blocked(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
NPC* npc,
|
|
|
|
|
Mob *init,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[0]));
|
|
|
|
|
lua_setfield(L, -2, "blocking_spell_id");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[1]));
|
|
|
|
|
lua_setfield(L, -2, "cast_spell_id");
|
|
|
|
|
|
|
|
|
|
const uint32 blocking_spell_id = Strings::ToUnsignedInt(sep.arg[0]);
|
|
|
|
|
|
|
|
|
|
Lua_Spell l_spell_one(IsValidSpell(blocking_spell_id) ? &spells[blocking_spell_id] : nullptr);
|
|
|
|
|
luabind::adl::object l_spell_one_o = luabind::adl::object(L, l_spell_one);
|
|
|
|
|
l_spell_one_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "blocking_spell");
|
|
|
|
|
|
|
|
|
|
const uint32 cast_spell_id = Strings::ToUnsignedInt(sep.arg[0]);
|
|
|
|
|
|
|
|
|
|
Lua_Spell l_spell_two(IsValidSpell(cast_spell_id) ? &spells[cast_spell_id] : nullptr);
|
|
|
|
|
luabind::adl::object l_spell_two_o = luabind::adl::object(L, l_spell_two);
|
|
|
|
|
l_spell_two_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "cast_spell");
|
|
|
|
|
}
|
|
|
|
|
|
2025-08-17 01:00:31 -04:00
|
|
|
void handle_npc_pet_command(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
NPC* npc,
|
|
|
|
|
Mob *init,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
lua_pushinteger(L, extra_data);
|
|
|
|
|
lua_setfield(L, -2, "pet_command");
|
|
|
|
|
|
|
|
|
|
lua_pushstring(L, data.c_str());
|
|
|
|
|
lua_setfield(L, -2, "pet_command_name");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
// Player
|
|
|
|
|
void handle_player_say(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2013-05-17 17:10:38 -07:00
|
|
|
lua_pushstring(L, data.c_str());
|
|
|
|
|
lua_setfield(L, -2, "message");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, extra_data);
|
|
|
|
|
lua_setfield(L, -2, "language");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_environmental_damage(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2015-01-30 23:15:48 -06:00
|
|
|
Seperator sep(data.c_str());
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[0]));
|
2015-01-30 23:15:48 -06:00
|
|
|
lua_setfield(L, -2, "env_damage");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[1]));
|
2015-01-30 23:15:48 -06:00
|
|
|
lua_setfield(L, -2, "env_damage_type");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[2]));
|
2015-01-30 23:15:48 -06:00
|
|
|
lua_setfield(L, -2, "env_final_damage");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_death(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2013-05-17 17:10:38 -07:00
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
Mob *o = entity_list.GetMobID(Strings::ToInt(sep.arg[0]));
|
2013-05-17 17:10:38 -07:00
|
|
|
Lua_Mob l_mob(o);
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_mob_o = luabind::adl::object(L, l_mob);
|
2013-05-17 17:10:38 -07:00
|
|
|
l_mob_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
|
2023-12-31 17:37:26 -05:00
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[0]));
|
2022-11-05 11:13:39 -04:00
|
|
|
lua_setfield(L, -2, "killer_id");
|
|
|
|
|
|
2023-12-31 17:37:26 -05:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[1]));
|
2013-05-17 17:10:38 -07:00
|
|
|
lua_setfield(L, -2, "damage");
|
|
|
|
|
|
2023-12-31 17:37:26 -05:00
|
|
|
const uint32 spell_id = Strings::ToUnsignedInt(sep.arg[2]);
|
|
|
|
|
if (IsValidSpell(spell_id)) {
|
2013-05-17 17:10:38 -07:00
|
|
|
Lua_Spell l_spell(&spells[spell_id]);
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_spell_o = luabind::adl::object(L, l_spell);
|
2013-05-17 17:10:38 -07:00
|
|
|
l_spell_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "spell");
|
|
|
|
|
} else {
|
|
|
|
|
Lua_Spell l_spell(nullptr);
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_spell_o = luabind::adl::object(L, l_spell);
|
2013-05-17 17:10:38 -07:00
|
|
|
l_spell_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "spell");
|
|
|
|
|
}
|
|
|
|
|
|
2023-12-31 17:37:26 -05:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[3]));
|
2013-06-12 15:04:26 -07:00
|
|
|
lua_setfield(L, -2, "skill");
|
2023-12-31 17:37:26 -05:00
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[4]));
|
|
|
|
|
lua_setfield(L, -2, "killed_entity_id");
|
2024-10-10 21:29:29 -04:00
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[5]));
|
|
|
|
|
lua_setfield(L, -2, "combat_start_time");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[6]));
|
|
|
|
|
lua_setfield(L, -2, "combat_end_time");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToBigInt(sep.arg[7]));
|
|
|
|
|
lua_setfield(L, -2, "damage_received");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToBigInt(sep.arg[8]));
|
|
|
|
|
lua_setfield(L, -2, "healing_received");
|
2013-05-17 17:10:38 -07:00
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_timer(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2013-05-17 17:10:38 -07:00
|
|
|
lua_pushstring(L, data.c_str());
|
|
|
|
|
lua_setfield(L, -2, "timer");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_discover_item(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2020-05-17 18:36:06 -07:00
|
|
|
const EQ::ItemData *item = database.GetItem(extra_data);
|
2013-05-17 17:10:38 -07:00
|
|
|
if(item) {
|
|
|
|
|
Lua_Item l_item(item);
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_item_o = luabind::adl::object(L, l_item);
|
2013-05-17 17:10:38 -07:00
|
|
|
l_item_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "item");
|
|
|
|
|
} else {
|
|
|
|
|
Lua_Item l_item(nullptr);
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_item_o = luabind::adl::object(L, l_item);
|
2013-05-17 17:10:38 -07:00
|
|
|
l_item_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "item");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_fish_forage_success(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2022-07-27 10:00:09 -04:00
|
|
|
Lua_ItemInst l_item(std::any_cast<EQ::ItemInstance*>(extra_pointers->at(0)));
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_item_o = luabind::adl::object(L, l_item);
|
2013-06-19 22:56:46 -07:00
|
|
|
l_item_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "item");
|
2013-06-03 16:49:47 -07:00
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_click_object(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2022-07-27 10:00:09 -04:00
|
|
|
Lua_Object l_object(std::any_cast<Object*>(extra_pointers->at(0)));
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_object_o = luabind::adl::object(L, l_object);
|
2013-06-19 22:56:46 -07:00
|
|
|
l_object_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "object");
|
2013-06-03 16:49:47 -07:00
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_click_door(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2022-07-27 10:00:09 -04:00
|
|
|
Lua_Door l_door(std::any_cast<Doors*>(extra_pointers->at(0)));
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_door_o = luabind::adl::object(L, l_door);
|
2013-06-19 22:56:46 -07:00
|
|
|
l_door_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "door");
|
2013-06-03 16:49:47 -07:00
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_signal(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(data));
|
2013-06-03 16:49:47 -07:00
|
|
|
lua_setfield(L, -2, "signal");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_payload(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[0]));
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
lua_setfield(L, -2, "payload_id");
|
|
|
|
|
|
|
|
|
|
lua_pushstring(L, sep.argplus[1]);
|
|
|
|
|
lua_setfield(L, -2, "payload_value");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void handle_player_popup_response(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(data));
|
2013-06-03 16:49:47 -07:00
|
|
|
lua_setfield(L, -2, "popup_id");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_pick_up(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2022-07-27 10:00:09 -04:00
|
|
|
Lua_ItemInst l_item(std::any_cast<EQ::ItemInstance*>(extra_pointers->at(0)));
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_item_o = luabind::adl::object(L, l_item);
|
2013-06-19 22:56:46 -07:00
|
|
|
l_item_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "item");
|
2013-06-03 16:49:47 -07:00
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_cast(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2022-03-10 21:46:27 -05:00
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
int spell_id = Strings::ToInt(sep.arg[0]);
|
2013-06-03 16:49:47 -07:00
|
|
|
if(IsValidSpell(spell_id)) {
|
|
|
|
|
Lua_Spell l_spell(&spells[spell_id]);
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_spell_o = luabind::adl::object(L, l_spell);
|
2013-06-03 16:49:47 -07:00
|
|
|
l_spell_o.push(L);
|
|
|
|
|
} else {
|
|
|
|
|
Lua_Spell l_spell(nullptr);
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_spell_o = luabind::adl::object(L, l_spell);
|
2013-06-03 16:49:47 -07:00
|
|
|
l_spell_o.push(L);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
lua_setfield(L, -2, "spell");
|
2022-11-25 15:09:08 -05:00
|
|
|
|
2023-07-31 20:59:56 -04:00
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[1]));
|
2022-03-10 21:46:27 -05:00
|
|
|
lua_setfield(L, -2, "caster_id");
|
2022-11-25 15:09:08 -05:00
|
|
|
|
2023-07-31 20:59:56 -04:00
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[2]));
|
2022-03-10 21:46:27 -05:00
|
|
|
lua_setfield(L, -2, "caster_level");
|
[Quest API] Add target ID and spell exports to events (#3620)
* [Quest API] Add target ID and spell exports to events
# Notes
- Add `$spell` export to `EVENT_CAST`, `EVENT_CAST_BEGIN`, `EVENT_CAST_BEGIN`, `EVENT_ITEM_CLICK`, `EVENT_ITEM_CLICK_CAST`, `EVENT_ITEM_CLICK_CLIENT`, `EVENT_ITEM_CLICK_CAST_CLIENT`, `EVENT_SPELL_EFFECT_BUFF_TIC_BOT`, `EVENT_SPELL_EFFECT_BUFF_TIC_CLIENT`, `EVENT_SPELL_EFFECT_BUFF_TIC_NPC`, `EVENT_SPELL_EFFECT_BOT`, `EVENT_SPELL_EFFECT_CLIENT`, `EVENT_SPELL_EFFECT_NPC`, `EVENT_SPELL_FADE`, `EVENT_DEATH`, `EVENT_DEATH_COMPLETE`, `EVENT_DEATH_ZONE`, `EVENT_DAMAGE_GIVEN`, and `EVENT_DAMAGE_TAKEN` in Perl.
- Add `$target_id` export to `EVENT_CAST`, `EVENT_CAST_BEGIN`, and `EVENT_CAST_ON` in Perl.
- Add `e.target_id` export to `EVENT_CAST`, `EVENT_CAST_BEGIN`, and `EVENT_CAST_ON` in Lua.
* Add $target/e.target exports.
* Update spells.cpp
2023-10-15 19:40:25 -04:00
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[3]));
|
|
|
|
|
lua_setfield(L, -2, "target_id");
|
|
|
|
|
|
|
|
|
|
if (extra_pointers && extra_pointers->size() == 1) {
|
|
|
|
|
Lua_Mob l_mob(std::any_cast<Mob*>(extra_pointers->at(0)));
|
|
|
|
|
luabind::adl::object l_mob_o = luabind::adl::object(L, l_mob);
|
|
|
|
|
l_mob_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "target");
|
|
|
|
|
}
|
2013-06-03 16:49:47 -07:00
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_task_fail(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(data));
|
2013-06-03 16:49:47 -07:00
|
|
|
lua_setfield(L, -2, "task_id");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_zone(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2022-03-12 16:11:27 -05:00
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[0]));
|
2022-03-12 16:11:27 -05:00
|
|
|
lua_setfield(L, -2, "from_zone_id");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[1]));
|
2022-11-05 11:38:03 -04:00
|
|
|
lua_setfield(L, -2, "from_instance_id");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[2]));
|
2022-11-05 11:38:03 -04:00
|
|
|
lua_setfield(L, -2, "from_instance_version");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[3]));
|
2013-06-03 16:49:47 -07:00
|
|
|
lua_setfield(L, -2, "zone_id");
|
2022-11-05 11:38:03 -04:00
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[4]));
|
2022-11-05 11:38:03 -04:00
|
|
|
lua_setfield(L, -2, "instance_id");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[5]));
|
2022-11-05 11:38:03 -04:00
|
|
|
lua_setfield(L, -2, "instance_version");
|
2013-06-03 16:49:47 -07:00
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_duel_win(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2022-07-27 10:00:09 -04:00
|
|
|
Lua_Client l_client(std::any_cast<Client*>(extra_pointers->at(1)));
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_client_o = luabind::adl::object(L, l_client);
|
2013-06-19 22:56:46 -07:00
|
|
|
l_client_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
2013-06-03 16:49:47 -07:00
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_duel_loss(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2022-07-27 10:00:09 -04:00
|
|
|
Lua_Client l_client(std::any_cast<Client*>(extra_pointers->at(0)));
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_client_o = luabind::adl::object(L, l_client);
|
2013-06-19 22:56:46 -07:00
|
|
|
l_client_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
2013-06-03 16:49:47 -07:00
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_loot(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2022-07-27 10:00:09 -04:00
|
|
|
Lua_ItemInst l_item(std::any_cast<EQ::ItemInstance*>(extra_pointers->at(0)));
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_item_o = luabind::adl::object(L, l_item);
|
2013-06-19 22:56:46 -07:00
|
|
|
l_item_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "item");
|
2013-06-03 16:49:47 -07:00
|
|
|
|
2022-07-27 10:00:09 -04:00
|
|
|
Lua_Corpse l_corpse(std::any_cast<Corpse*>(extra_pointers->at(1)));
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_corpse_o = luabind::adl::object(L, l_corpse);
|
2013-06-19 22:56:46 -07:00
|
|
|
l_corpse_o.push(L);
|
2013-06-03 16:49:47 -07:00
|
|
|
lua_setfield(L, -2, "corpse");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_task_stage_complete(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2013-06-03 16:49:47 -07:00
|
|
|
Seperator sep(data.c_str());
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[0]));
|
2013-06-03 16:49:47 -07:00
|
|
|
lua_setfield(L, -2, "task_id");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[1]));
|
2013-06-03 16:49:47 -07:00
|
|
|
lua_setfield(L, -2, "activity_id");
|
|
|
|
|
}
|
|
|
|
|
|
2023-02-05 22:53:37 -05:00
|
|
|
void handle_player_task_accepted(
|
|
|
|
|
QuestInterface* parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any>* extra_pointers
|
|
|
|
|
) {
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushinteger(L, Strings::ToInt(data));
|
2023-02-05 22:53:37 -05:00
|
|
|
lua_setfield(L, -2, "task_id");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_task_update(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2013-06-03 16:49:47 -07:00
|
|
|
Seperator sep(data.c_str());
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[0]));
|
2013-06-19 22:56:46 -07:00
|
|
|
lua_setfield(L, -2, "count");
|
2013-06-03 16:49:47 -07:00
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[1]));
|
2013-06-03 16:49:47 -07:00
|
|
|
lua_setfield(L, -2, "activity_id");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[2]));
|
2013-06-03 16:49:47 -07:00
|
|
|
lua_setfield(L, -2, "task_id");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_command(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2013-06-05 16:47:49 -07:00
|
|
|
Seperator sep(data.c_str(), ' ', 10, 100, true);
|
|
|
|
|
std::string command(sep.arg[0] + 1);
|
|
|
|
|
lua_pushstring(L, command.c_str());
|
|
|
|
|
lua_setfield(L, -2, "command");
|
|
|
|
|
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object args = luabind::newtable(L);
|
2013-06-05 16:47:49 -07:00
|
|
|
int max_args = sep.GetMaxArgNum();
|
|
|
|
|
for(int i = 1; i < max_args; ++i) {
|
2013-06-12 15:04:26 -07:00
|
|
|
if(strlen(sep.arg[i]) > 0) {
|
|
|
|
|
args[i] = std::string(sep.arg[i]);
|
2013-06-05 16:47:49 -07:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
args.push(L);
|
|
|
|
|
lua_setfield(L, -2, "args");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_combine(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2013-06-19 22:56:46 -07:00
|
|
|
lua_pushinteger(L, extra_data);
|
|
|
|
|
lua_setfield(L, -2, "recipe_id");
|
|
|
|
|
|
|
|
|
|
lua_pushstring(L, data.c_str());
|
2022-11-25 15:09:08 -05:00
|
|
|
lua_setfield(L, -2, "recipe_name");
|
2013-06-19 22:56:46 -07:00
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_feign(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2022-07-27 10:00:09 -04:00
|
|
|
Lua_NPC l_npc(std::any_cast<NPC*>(extra_pointers->at(0)));
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_npc_o = luabind::adl::object(L, l_npc);
|
2013-06-22 20:47:11 -07:00
|
|
|
l_npc_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_area(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2022-07-27 10:00:09 -04:00
|
|
|
lua_pushinteger(L, *std::any_cast<int*>(extra_pointers->at(0)));
|
2013-06-22 20:47:11 -07:00
|
|
|
lua_setfield(L, -2, "area_id");
|
|
|
|
|
|
2022-07-27 10:00:09 -04:00
|
|
|
lua_pushinteger(L, *std::any_cast<int*>(extra_pointers->at(1)));
|
2013-06-22 20:47:11 -07:00
|
|
|
lua_setfield(L, -2, "area_type");
|
2013-06-19 22:56:46 -07:00
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_respawn(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(data));
|
2013-06-26 12:52:00 -07:00
|
|
|
lua_setfield(L, -2, "option");
|
|
|
|
|
|
2023-07-31 20:59:56 -04:00
|
|
|
lua_pushboolean(L, Strings::ToBool(std::to_string(extra_data)));
|
2013-06-26 12:52:00 -07:00
|
|
|
lua_setfield(L, -2, "resurrect");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_packet(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2022-07-27 10:00:09 -04:00
|
|
|
Lua_Packet l_packet(std::any_cast<EQApplicationPacket*>(extra_pointers->at(0)));
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_packet_o = luabind::adl::object(L, l_packet);
|
2013-07-13 13:53:41 -07:00
|
|
|
l_packet_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "packet");
|
|
|
|
|
|
2023-07-31 20:59:56 -04:00
|
|
|
lua_pushboolean(L, Strings::ToBool(std::to_string(extra_data)));
|
2013-07-13 13:53:41 -07:00
|
|
|
lua_setfield(L, -2, "connecting");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_null(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2013-05-16 15:35:55 -07:00
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_use_skill(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2017-06-04 19:57:21 -04:00
|
|
|
Seperator sep(data.c_str());
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[0]));
|
2017-06-04 19:57:21 -04:00
|
|
|
lua_setfield(L, -2, "skill_id");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[1]));
|
2017-06-04 19:57:21 -04:00
|
|
|
lua_setfield(L, -2, "skill_level");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_test_buff(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2021-06-16 10:04:34 -05:00
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_combine_validate(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2019-11-18 19:39:03 -05:00
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
lua_pushinteger(L, extra_data);
|
|
|
|
|
lua_setfield(L, -2, "recipe_id");
|
|
|
|
|
|
|
|
|
|
lua_pushstring(L, sep.arg[0]);
|
|
|
|
|
lua_setfield(L, -2, "validate_type");
|
|
|
|
|
|
|
|
|
|
int zone_id = -1;
|
|
|
|
|
int tradeskill_id = -1;
|
|
|
|
|
if (strcmp(sep.arg[0], "check_zone") == 0) {
|
2023-02-06 17:22:01 -06:00
|
|
|
zone_id = Strings::ToInt(sep.arg[1]);
|
2019-11-18 19:39:03 -05:00
|
|
|
}
|
|
|
|
|
else if (strcmp(sep.arg[0], "check_tradeskill") == 0) {
|
2023-02-06 17:22:01 -06:00
|
|
|
tradeskill_id = Strings::ToInt(sep.arg[1]);
|
2019-11-18 19:39:03 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, zone_id);
|
|
|
|
|
lua_setfield(L, -2, "zone_id");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, tradeskill_id);
|
|
|
|
|
lua_setfield(L, -2, "tradeskill_id");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_bot_command(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2020-01-06 15:41:05 -05:00
|
|
|
Seperator sep(data.c_str(), ' ', 10, 100, true);
|
|
|
|
|
std::string bot_command(sep.arg[0] + 1);
|
|
|
|
|
lua_pushstring(L, bot_command.c_str());
|
|
|
|
|
lua_setfield(L, -2, "bot_command");
|
|
|
|
|
|
|
|
|
|
luabind::adl::object args = luabind::newtable(L);
|
|
|
|
|
int max_args = sep.GetMaxArgNum();
|
|
|
|
|
for (int i = 1; i < max_args; ++i) {
|
|
|
|
|
if (strlen(sep.arg[i]) > 0) {
|
|
|
|
|
args[i] = std::string(sep.arg[i]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
args.push(L);
|
|
|
|
|
lua_setfield(L, -2, "args");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_warp(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2021-08-31 01:08:31 -05:00
|
|
|
Seperator sep(data.c_str());
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushnumber(L, Strings::ToFloat(sep.arg[0]));
|
2021-08-31 01:08:31 -05:00
|
|
|
lua_setfield(L, -2, "from_x");
|
|
|
|
|
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushnumber(L, Strings::ToFloat(sep.arg[1]));
|
2021-08-31 01:08:31 -05:00
|
|
|
lua_setfield(L, -2, "from_y");
|
|
|
|
|
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushnumber(L, Strings::ToFloat(sep.arg[2]));
|
2021-08-31 01:08:31 -05:00
|
|
|
lua_setfield(L, -2, "from_z");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_quest_combine(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(data));
|
2021-09-19 16:22:51 -04:00
|
|
|
lua_setfield(L, -2, "container_slot");
|
|
|
|
|
}
|
2022-11-25 15:09:08 -05:00
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_consider(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(data));
|
2021-09-13 15:30:17 -04:00
|
|
|
lua_setfield(L, -2, "entity_id");
|
2023-02-12 23:32:04 -05:00
|
|
|
|
|
|
|
|
if (extra_pointers && extra_pointers->size() == 1) {
|
2024-03-27 11:31:38 -07:00
|
|
|
Lua_Mob l_mob(std::any_cast<Mob*>(extra_pointers->at(0)));
|
|
|
|
|
luabind::adl::object l_mob_o = luabind::adl::object(L, l_mob);
|
|
|
|
|
l_mob_o.push(L);
|
2023-02-12 23:32:04 -05:00
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
}
|
2021-09-13 15:30:17 -04:00
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_consider_corpse(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(data));
|
2021-09-12 23:39:09 -04:00
|
|
|
lua_setfield(L, -2, "corpse_entity_id");
|
2023-02-12 23:32:04 -05:00
|
|
|
|
|
|
|
|
if (extra_pointers && extra_pointers->size() == 1) {
|
|
|
|
|
Lua_Corpse l_corpse(std::any_cast<Corpse *>(extra_pointers->at(0)));
|
|
|
|
|
luabind::adl::object l_corpse_o = luabind::adl::object(L, l_corpse);
|
|
|
|
|
l_corpse_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "corpse");
|
|
|
|
|
}
|
2021-09-12 23:39:09 -04:00
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_inspect(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2022-10-29 19:49:48 -04:00
|
|
|
Lua_Mob l_mob(std::any_cast<Mob*>(extra_pointers->at(0)));
|
|
|
|
|
luabind::adl::object l_mob_o = luabind::adl::object(L, l_mob);
|
|
|
|
|
l_mob_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_aa_buy(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2022-11-16 22:02:16 -05:00
|
|
|
Seperator sep(data.c_str());
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[0]));
|
2022-11-16 22:02:16 -05:00
|
|
|
lua_setfield(L, -2, "aa_cost");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[1]));
|
2022-11-16 22:02:16 -05:00
|
|
|
lua_setfield(L, -2, "aa_id");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[2]));
|
2022-11-16 22:02:16 -05:00
|
|
|
lua_setfield(L, -2, "aa_previous_id");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[3]));
|
2022-11-16 22:02:16 -05:00
|
|
|
lua_setfield(L, -2, "aa_next_id");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_aa_gain(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(data));
|
2022-11-16 22:02:16 -05:00
|
|
|
lua_setfield(L, -2, "aa_gained");
|
|
|
|
|
}
|
|
|
|
|
|
2023-02-13 01:19:02 -05:00
|
|
|
void handle_player_aa_exp_gain(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushinteger(L, Strings::ToUnsignedBigInt(data));
|
2023-02-13 01:19:02 -05:00
|
|
|
lua_setfield(L, -2, "aa_exp_gained");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void handle_player_exp_gain(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushinteger(L, Strings::ToUnsignedBigInt(data));
|
2023-02-13 01:19:02 -05:00
|
|
|
lua_setfield(L, -2, "exp_gained");
|
|
|
|
|
}
|
|
|
|
|
|
2022-12-10 19:22:31 -05:00
|
|
|
void handle_player_level_up(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
2022-12-10 19:22:31 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(data));
|
2022-12-10 19:22:31 -05:00
|
|
|
lua_setfield(L, -2, "levels_gained");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void handle_player_level_down(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
2022-12-10 19:22:31 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(data));
|
2022-12-10 19:22:31 -05:00
|
|
|
lua_setfield(L, -2, "levels_lost");
|
|
|
|
|
}
|
|
|
|
|
|
2022-12-11 14:08:38 -05:00
|
|
|
void handle_player_gm_command(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
2022-12-11 14:08:38 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
lua_pushstring(L, data.c_str());
|
|
|
|
|
lua_setfield(L, -2, "message");
|
|
|
|
|
}
|
|
|
|
|
|
2023-01-08 21:46:40 -05:00
|
|
|
void handle_player_bot_create(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
2023-01-08 21:46:40 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
lua_pushstring(L, sep.arg[0]);
|
|
|
|
|
lua_setfield(L, -2, "bot_name");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[1]));
|
2023-01-08 21:46:40 -05:00
|
|
|
lua_setfield(L, -2, "bot_id");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[2]));
|
2023-01-08 21:46:40 -05:00
|
|
|
lua_setfield(L, -2, "bot_race");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[3]));
|
2023-01-08 21:46:40 -05:00
|
|
|
lua_setfield(L, -2, "bot_class");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[4]));
|
2023-01-08 21:46:40 -05:00
|
|
|
lua_setfield(L, -2, "bot_gender");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
void handle_player_damage(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushnumber(L, Strings::ToUnsignedInt(sep.arg[0]));
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
lua_setfield(L, -2, "entity_id");
|
|
|
|
|
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushnumber(L, Strings::ToBigInt(sep.arg[1]));
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
lua_setfield(L, -2, "damage");
|
|
|
|
|
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushnumber(L, Strings::ToInt(sep.arg[2]));
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
lua_setfield(L, -2, "spell_id");
|
|
|
|
|
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushnumber(L, Strings::ToInt(sep.arg[3]));
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
lua_setfield(L, -2, "skill_id");
|
|
|
|
|
|
2023-07-31 20:59:56 -04:00
|
|
|
lua_pushboolean(L, Strings::ToBool(sep.arg[4]));
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
lua_setfield(L, -2, "is_damage_shield");
|
|
|
|
|
|
2023-07-31 20:59:56 -04:00
|
|
|
lua_pushboolean(L, Strings::ToBool(sep.arg[5]));
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
lua_setfield(L, -2, "is_avoidable");
|
|
|
|
|
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushnumber(L, Strings::ToInt(sep.arg[6]));
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
lua_setfield(L, -2, "buff_slot");
|
|
|
|
|
|
2023-07-31 20:59:56 -04:00
|
|
|
lua_pushboolean(L, Strings::ToBool(sep.arg[7]));
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
lua_setfield(L, -2, "is_buff_tic");
|
|
|
|
|
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushnumber(L, Strings::ToInt(sep.arg[8]));
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
lua_setfield(L, -2, "special_attack");
|
|
|
|
|
|
|
|
|
|
if (extra_pointers && extra_pointers->size() >= 1) {
|
2023-01-30 06:01:12 -05:00
|
|
|
Lua_Mob l_mob(std::any_cast<Mob*>(extra_pointers->at(0)));
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
luabind::adl::object l_mob_o = luabind::adl::object(L, l_mob);
|
|
|
|
|
l_mob_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-01-30 06:01:12 -05:00
|
|
|
void handle_player_item_click(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:37:13 -06:00
|
|
|
std::string data,
|
2023-01-30 06:01:12 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushnumber(L, Strings::ToInt(data));
|
2023-01-30 06:01:12 -05:00
|
|
|
lua_setfield(L, -2, "slot_id");
|
|
|
|
|
|
|
|
|
|
if (extra_pointers && extra_pointers->size() >= 1) {
|
|
|
|
|
lua_pushnumber(L, std::any_cast<EQ::ItemInstance*>(extra_pointers->at(0))->GetID());
|
|
|
|
|
lua_setfield(L, -2, "item_id");
|
|
|
|
|
|
|
|
|
|
lua_pushstring(L, std::any_cast<EQ::ItemInstance*>(extra_pointers->at(0))->GetItem()->Name);
|
|
|
|
|
lua_setfield(L, -2, "item_name");
|
|
|
|
|
|
|
|
|
|
lua_pushnumber(L, std::any_cast<EQ::ItemInstance*>(extra_pointers->at(0))->GetItem()->Click.Effect);
|
|
|
|
|
lua_setfield(L, -2, "spell_id");
|
|
|
|
|
|
|
|
|
|
Lua_ItemInst l_item(std::any_cast<EQ::ItemInstance*>(extra_pointers->at(0)));
|
|
|
|
|
luabind::adl::object l_item_o = luabind::adl::object(L, l_item);
|
|
|
|
|
l_item_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "item");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-02-13 00:58:27 -05:00
|
|
|
void handle_player_destroy_item(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
if (extra_pointers && extra_pointers->size() >= 1) {
|
|
|
|
|
lua_pushnumber(L, std::any_cast<EQ::ItemInstance*>(extra_pointers->at(0))->GetID());
|
|
|
|
|
lua_setfield(L, -2, "item_id");
|
|
|
|
|
|
|
|
|
|
lua_pushstring(L, std::any_cast<EQ::ItemInstance*>(extra_pointers->at(0))->GetItem()->Name);
|
|
|
|
|
lua_setfield(L, -2, "item_name");
|
|
|
|
|
|
|
|
|
|
lua_pushnumber(L, std::any_cast<EQ::ItemInstance*>(extra_pointers->at(0))->IsStackable() ? std::any_cast<EQ::ItemInstance*>(extra_pointers->at(0))->GetCharges() : 1);
|
|
|
|
|
lua_setfield(L, -2, "quantity");
|
|
|
|
|
|
|
|
|
|
Lua_ItemInst l_item(std::any_cast<EQ::ItemInstance *>(extra_pointers->at(0)));
|
[Quest API] Add EVENT_DROP_ITEM_CLIENT to Perl/Lua (#2869)
* [Quest API] Add EVENT_DROP_ITEM_CLIENT to Perl/Lua
- Add `EVENT_DROP_ITEM_CLIENT`, exports `$quantity,` $item_name`, `$item_id`, `$spell_id`, `$slot_id`, and `$item`.
- Add `event_drop_item_client`, exports `e.quantity`, `e.item_name`, `e.item_id`, `e.spell_id`, `e.slot_id`, and `e.item`.
* Update inventory.cpp
* Update inventory.cpp
* Update lua_general.cpp
* Update inventory.cpp
2023-02-13 01:15:19 -05:00
|
|
|
|
|
|
|
|
luabind::adl::object l_item_o = luabind::adl::object(L, l_item);
|
|
|
|
|
l_item_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "item");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void handle_player_drop_item(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
lua_pushnumber(L, extra_data);
|
|
|
|
|
lua_setfield(L, -2, "slot_id");
|
|
|
|
|
|
|
|
|
|
if (extra_pointers && extra_pointers->size() == 1) {
|
|
|
|
|
EQ::ItemInstance* item_inst = std::any_cast<EQ::ItemInstance*>(extra_pointers->at(0));
|
|
|
|
|
|
|
|
|
|
lua_pushnumber(L, item_inst->IsStackable() ? item_inst->GetCharges() : 1);
|
|
|
|
|
lua_setfield(L, -2, "quantity");
|
|
|
|
|
|
|
|
|
|
lua_pushnumber(L, item_inst->GetItem()->ID);
|
|
|
|
|
lua_setfield(L, -2, "item_id");
|
|
|
|
|
|
|
|
|
|
lua_pushstring(L, item_inst->GetItem()->Name);
|
|
|
|
|
lua_setfield(L, -2, "item_name");
|
|
|
|
|
|
|
|
|
|
lua_pushnumber(L, item_inst->GetItem()->Click.Effect);
|
|
|
|
|
lua_setfield(L, -2, "spell_id");
|
|
|
|
|
|
|
|
|
|
Lua_Item l_item(item_inst->GetItem());
|
2023-02-13 00:58:27 -05:00
|
|
|
luabind::adl::object l_item_o = luabind::adl::object(L, l_item);
|
|
|
|
|
l_item_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "item");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-02-13 01:03:52 -05:00
|
|
|
void handle_player_target_change(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
if (extra_pointers && extra_pointers->size() == 1) {
|
|
|
|
|
Lua_Mob l_mob(std::any_cast<Mob*>(extra_pointers->at(0)));
|
|
|
|
|
luabind::adl::object l_mob_o = luabind::adl::object(L, l_mob);
|
|
|
|
|
l_mob_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-05-25 19:18:14 -04:00
|
|
|
void handle_player_memorize_scribe_spell(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
|
|
|
|
|
lua_pushnumber(L, Strings::ToUnsignedInt(sep.arg[0]));
|
|
|
|
|
lua_setfield(L, -2, "slot_id");
|
|
|
|
|
|
|
|
|
|
lua_pushnumber(L, Strings::ToUnsignedInt(sep.arg[1]));
|
|
|
|
|
lua_setfield(L, -2, "spell_id");
|
|
|
|
|
|
|
|
|
|
if (IsValidSpell(Strings::ToUnsignedInt(sep.arg[1]))) {
|
|
|
|
|
Lua_Spell l_spell(&spells[Strings::ToUnsignedInt(sep.arg[1])]);
|
|
|
|
|
luabind::adl::object l_spell_o = luabind::adl::object(L, l_spell);
|
|
|
|
|
l_spell_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "spell");
|
|
|
|
|
} else {
|
|
|
|
|
Lua_Spell l_spell(nullptr);
|
|
|
|
|
luabind::adl::object l_spell_o = luabind::adl::object(L, l_spell);
|
|
|
|
|
l_spell_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "spell");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-12-16 23:31:25 -05:00
|
|
|
void handle_player_ldon_points_gain_loss(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
|
|
|
|
|
lua_pushnumber(L, Strings::ToUnsignedInt(sep.arg[0]));
|
|
|
|
|
lua_setfield(L, -2, "theme_id");
|
|
|
|
|
|
|
|
|
|
lua_pushnumber(L, Strings::ToUnsignedInt(sep.arg[1]));
|
|
|
|
|
lua_setfield(L, -2, "points");
|
|
|
|
|
}
|
|
|
|
|
|
2023-12-16 23:47:13 -05:00
|
|
|
void handle_player_crystal_gain_loss(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
|
|
|
|
|
lua_pushnumber(L, Strings::ToUnsignedInt(sep.arg[0]));
|
|
|
|
|
lua_setfield(L, -2, "ebon_amount");
|
|
|
|
|
|
|
|
|
|
lua_pushnumber(L, Strings::ToUnsignedInt(sep.arg[1]));
|
|
|
|
|
lua_setfield(L, -2, "radiant_amount");
|
|
|
|
|
|
|
|
|
|
lua_pushboolean(L, Strings::ToBool(sep.arg[2]));
|
|
|
|
|
lua_setfield(L, -2, "is_reclaim");
|
|
|
|
|
}
|
|
|
|
|
|
2023-12-16 23:40:24 -05:00
|
|
|
void handle_player_alt_currency_gain_loss(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
|
|
|
|
|
lua_pushnumber(L, Strings::ToUnsignedInt(sep.arg[0]));
|
|
|
|
|
lua_setfield(L, -2, "currency_id");
|
|
|
|
|
|
|
|
|
|
lua_pushnumber(L, Strings::ToInt(sep.arg[1]));
|
|
|
|
|
lua_setfield(L, -2, "amount");
|
|
|
|
|
|
|
|
|
|
lua_pushnumber(L, Strings::ToUnsignedInt(sep.arg[2]));
|
|
|
|
|
lua_setfield(L, -2, "total");
|
|
|
|
|
}
|
|
|
|
|
|
2024-02-19 21:34:33 -05:00
|
|
|
void handle_player_entity_variable(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
if (extra_pointers) {
|
|
|
|
|
if (extra_pointers->size() == 2) {
|
|
|
|
|
lua_pushstring(L, std::any_cast<std::string>(extra_pointers->at(0)).c_str());
|
|
|
|
|
lua_setfield(L, -2, "variable_name");
|
|
|
|
|
|
|
|
|
|
lua_pushstring(L, std::any_cast<std::string>(extra_pointers->at(1)).c_str());
|
|
|
|
|
lua_setfield(L, -2, "variable_value");
|
|
|
|
|
} else if (extra_pointers->size() == 3) {
|
|
|
|
|
lua_pushstring(L, std::any_cast<std::string>(extra_pointers->at(0)).c_str());
|
|
|
|
|
lua_setfield(L, -2, "variable_name");
|
|
|
|
|
|
|
|
|
|
lua_pushstring(L, std::any_cast<std::string>(extra_pointers->at(1)).c_str());
|
|
|
|
|
lua_setfield(L, -2, "old_value");
|
|
|
|
|
|
|
|
|
|
lua_pushstring(L, std::any_cast<std::string>(extra_pointers->at(2)).c_str());
|
|
|
|
|
lua_setfield(L, -2, "new_value");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-08 21:20:33 -05:00
|
|
|
void handle_player_aa_loss(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
2024-03-31 23:58:30 -04:00
|
|
|
)
|
|
|
|
|
{
|
2024-03-08 21:20:33 -05:00
|
|
|
lua_pushinteger(L, Strings::ToInt(data));
|
|
|
|
|
lua_setfield(L, -2, "aa_lost");
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-31 23:58:30 -04:00
|
|
|
void handle_player_spell_blocked(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[0]));
|
|
|
|
|
lua_setfield(L, -2, "blocking_spell_id");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[1]));
|
|
|
|
|
lua_setfield(L, -2, "cast_spell_id");
|
|
|
|
|
|
|
|
|
|
const uint32 blocking_spell_id = Strings::ToUnsignedInt(sep.arg[0]);
|
|
|
|
|
|
|
|
|
|
Lua_Spell l_spell_one(IsValidSpell(blocking_spell_id) ? &spells[blocking_spell_id] : nullptr);
|
|
|
|
|
luabind::adl::object l_spell_one_o = luabind::adl::object(L, l_spell_one);
|
|
|
|
|
l_spell_one_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "blocking_spell");
|
|
|
|
|
|
|
|
|
|
const uint32 cast_spell_id = Strings::ToUnsignedInt(sep.arg[0]);
|
|
|
|
|
|
|
|
|
|
Lua_Spell l_spell_two(IsValidSpell(cast_spell_id) ? &spells[cast_spell_id] : nullptr);
|
|
|
|
|
luabind::adl::object l_spell_two_o = luabind::adl::object(L, l_spell_two);
|
|
|
|
|
l_spell_two_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "cast_spell");
|
|
|
|
|
}
|
|
|
|
|
|
2024-10-08 18:25:14 -04:00
|
|
|
void handle_player_read_item(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
lua_pushstring(L, data.c_str());
|
|
|
|
|
lua_setfield(L, -2, "text_file");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, extra_data);
|
|
|
|
|
lua_setfield(L, -2, "item_id");
|
|
|
|
|
|
|
|
|
|
if (extra_pointers) {
|
|
|
|
|
if (extra_pointers->size() == 7) {
|
|
|
|
|
lua_pushstring(L, std::any_cast<std::string>(extra_pointers->at(0)).c_str());
|
|
|
|
|
lua_setfield(L, -2, "book_text");
|
|
|
|
|
|
|
|
|
|
lua_pushboolean(L, std::any_cast<int8>(extra_pointers->at(1)));
|
|
|
|
|
lua_setfield(L, -2, "can_cast");
|
|
|
|
|
|
|
|
|
|
lua_pushboolean(L, std::any_cast<int8>(extra_pointers->at(2)));
|
|
|
|
|
lua_setfield(L, -2, "can_scribe");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, std::any_cast<int16>(extra_pointers->at(3)));
|
|
|
|
|
lua_setfield(L, -2, "slot_id");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, std::any_cast<int>(extra_pointers->at(4)));
|
|
|
|
|
lua_setfield(L, -2, "target_id");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, std::any_cast<uint8>(extra_pointers->at(5)));
|
|
|
|
|
lua_setfield(L, -2, "type");
|
|
|
|
|
|
|
|
|
|
Lua_ItemInst l_item(std::any_cast<EQ::ItemInstance*>(extra_pointers->at(6)));
|
|
|
|
|
luabind::adl::object l_item_o = luabind::adl::object(L, l_item);
|
|
|
|
|
l_item_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "item");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-05-14 21:46:25 -04:00
|
|
|
void handle_player_connect(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[0]));
|
|
|
|
|
lua_setfield(L, -2, "last_login");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[1]));
|
|
|
|
|
lua_setfield(L, -2, "seconds_since_last_login");
|
|
|
|
|
|
|
|
|
|
lua_pushboolean(L, Strings::ToBool(sep.arg[2]));
|
|
|
|
|
lua_setfield(L, -2, "is_first_login");
|
|
|
|
|
}
|
|
|
|
|
|
2025-08-17 01:00:31 -04:00
|
|
|
void handle_player_pet_command(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
lua_pushinteger(L, extra_data);
|
|
|
|
|
lua_setfield(L, -2, "pet_command");
|
|
|
|
|
|
|
|
|
|
lua_pushstring(L, data.c_str());
|
|
|
|
|
lua_setfield(L, -2, "pet_command_name");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
// Item
|
|
|
|
|
void handle_item_click(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
|
|
|
|
EQ::ItemInstance* item,
|
|
|
|
|
Mob *mob,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2013-06-04 23:22:03 -07:00
|
|
|
lua_pushinteger(L, extra_data);
|
2013-06-19 22:56:46 -07:00
|
|
|
lua_setfield(L, -2, "slot_id");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_item_timer(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
|
|
|
|
EQ::ItemInstance* item,
|
|
|
|
|
Mob *mob,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2013-06-19 22:56:46 -07:00
|
|
|
lua_pushstring(L, data.c_str());
|
|
|
|
|
lua_setfield(L, -2, "timer");
|
2013-06-04 23:22:03 -07:00
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_item_proc(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
|
|
|
|
EQ::ItemInstance* item,
|
|
|
|
|
Mob *mob,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2013-06-20 14:03:22 -07:00
|
|
|
Lua_Mob l_mob(mob);
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_mob_o = luabind::adl::object(L, l_mob);
|
2013-06-20 14:03:22 -07:00
|
|
|
l_mob_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "target");
|
|
|
|
|
|
|
|
|
|
if(IsValidSpell(extra_data)) {
|
|
|
|
|
Lua_Spell l_spell(&spells[extra_data]);
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_spell_o = luabind::adl::object(L, l_spell);
|
2013-06-20 14:03:22 -07:00
|
|
|
l_spell_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "spell");
|
|
|
|
|
} else {
|
|
|
|
|
Lua_Spell l_spell(nullptr);
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_spell_o = luabind::adl::object(L, l_spell);
|
2013-06-20 14:03:22 -07:00
|
|
|
l_spell_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "spell");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_item_loot(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
|
|
|
|
EQ::ItemInstance* item,
|
|
|
|
|
Mob *mob,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2013-06-20 14:03:22 -07:00
|
|
|
if(mob && mob->IsCorpse()) {
|
|
|
|
|
Lua_Corpse l_corpse(mob->CastToCorpse());
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_corpse_o = luabind::adl::object(L, l_corpse);
|
2013-06-20 14:03:22 -07:00
|
|
|
l_corpse_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "corpse");
|
|
|
|
|
} else {
|
|
|
|
|
Lua_Corpse l_corpse(nullptr);
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_corpse_o = luabind::adl::object(L, l_corpse);
|
2013-06-20 14:03:22 -07:00
|
|
|
l_corpse_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "corpse");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_item_equip(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
|
|
|
|
EQ::ItemInstance* item,
|
|
|
|
|
Mob *mob,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2013-06-21 14:20:30 -07:00
|
|
|
lua_pushinteger(L, extra_data);
|
|
|
|
|
lua_setfield(L, -2, "slot_id");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_item_augment(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
|
|
|
|
EQ::ItemInstance* item,
|
|
|
|
|
Mob *mob,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2022-07-27 10:00:09 -04:00
|
|
|
Lua_ItemInst l_item(std::any_cast<EQ::ItemInstance*>(extra_pointers->at(0)));
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_item_o = luabind::adl::object(L, l_item);
|
2013-06-21 14:20:30 -07:00
|
|
|
l_item_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "aug");
|
2013-06-22 01:32:41 -07:00
|
|
|
|
|
|
|
|
lua_pushinteger(L, extra_data);
|
|
|
|
|
lua_setfield(L, -2, "slot_id");
|
2013-06-21 14:20:30 -07:00
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_item_augment_insert(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
|
|
|
|
EQ::ItemInstance* item,
|
|
|
|
|
Mob *mob,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2022-07-27 10:00:09 -04:00
|
|
|
Lua_ItemInst l_item(std::any_cast<EQ::ItemInstance*>(extra_pointers->at(0)));
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_item_o = luabind::adl::object(L, l_item);
|
2013-06-21 14:20:30 -07:00
|
|
|
l_item_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "item");
|
2013-06-22 01:32:41 -07:00
|
|
|
|
|
|
|
|
lua_pushinteger(L, extra_data);
|
|
|
|
|
lua_setfield(L, -2, "slot_id");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_item_augment_remove(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
|
|
|
|
EQ::ItemInstance* item,
|
|
|
|
|
Mob *mob,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2022-07-27 10:00:09 -04:00
|
|
|
Lua_ItemInst l_item(std::any_cast<EQ::ItemInstance*>(extra_pointers->at(0)));
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_item_o = luabind::adl::object(L, l_item);
|
2013-06-22 01:32:41 -07:00
|
|
|
l_item_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "item");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, extra_data);
|
|
|
|
|
lua_setfield(L, -2, "slot_id");
|
|
|
|
|
|
2022-07-27 10:00:09 -04:00
|
|
|
lua_pushboolean(L, *std::any_cast<bool*>(extra_pointers->at(1)));
|
2013-06-22 01:32:41 -07:00
|
|
|
lua_setfield(L, -2, "destroyed");
|
2013-06-21 14:20:30 -07:00
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_item_null(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
|
|
|
|
EQ::ItemInstance* item,
|
|
|
|
|
Mob *mob,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2013-05-16 15:35:55 -07:00
|
|
|
}
|
|
|
|
|
|
2024-02-19 04:51:16 -05:00
|
|
|
void handle_item_timer_pause_resume_start(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
|
|
|
|
EQ::ItemInstance* item,
|
|
|
|
|
Mob *mob,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
|
|
|
|
|
lua_pushstring(L, sep.arg[0]);
|
|
|
|
|
lua_setfield(L, -2, "timer");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[1]));
|
|
|
|
|
lua_setfield(L, -2, "duration");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void handle_item_timer_stop(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
|
|
|
|
EQ::ItemInstance* item,
|
|
|
|
|
Mob *mob,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
lua_pushstring(L, data.c_str());
|
|
|
|
|
lua_setfield(L, -2, "timer");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
// Spell
|
|
|
|
|
void handle_spell_event(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Mob* mob,
|
|
|
|
|
Client* client,
|
|
|
|
|
uint32 spell_id,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2022-11-16 22:02:16 -05:00
|
|
|
if (mob) {
|
|
|
|
|
Lua_Mob l_mob(mob);
|
|
|
|
|
luabind::adl::object l_mob_o = luabind::adl::object(L, l_mob);
|
|
|
|
|
l_mob_o.push(L);
|
2023-07-31 20:59:56 -04:00
|
|
|
} else if (client) {
|
2013-06-20 14:03:22 -07:00
|
|
|
Lua_Mob l_client(client);
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_client_o = luabind::adl::object(L, l_client);
|
2013-06-05 16:47:49 -07:00
|
|
|
l_client_o.push(L);
|
|
|
|
|
} else {
|
|
|
|
|
Lua_Mob l_mob(nullptr);
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_mob_o = luabind::adl::object(L, l_mob);
|
2013-06-05 16:47:49 -07:00
|
|
|
l_mob_o.push(L);
|
|
|
|
|
}
|
2013-06-20 14:03:22 -07:00
|
|
|
|
2013-06-05 16:47:49 -07:00
|
|
|
lua_setfield(L, -2, "target");
|
|
|
|
|
|
[Quest API] Convert Spell Events to similar formats and exports. (#1618)
* [Quest API] Convert Spell Events to similar formats and exports.
Export spell ID, caster ID, caster level, tics remaining, and buff slot to Perl/Lua spell events.
- Export e.buff_slot, e.caster_id, e.caster_level, e.spell_id, and e.tics_remaining to `event_spell_buff_tic`, `event_spell_effect`, and `event_spell_fade` in Lua.
- Export $buff_slot, $caster_id, $caster_level, $spell_id, $tics_remaining to `EVENT_SPELL_EFFECT_BUFF_TIC_CLIENT`, `EVENT_SPELL_EFFECT_BUFF_TIC_NPC`, `EVENT_SPELL_EFFECT_CLIENT`, `EVENT_SPELL_EFFECT_NPC`, and `EVENT_SPELL_FADE` in Perl.
* Formatting.
* Remove debug variable.
2021-10-20 16:02:12 -04:00
|
|
|
lua_pushinteger(L, spell_id);
|
|
|
|
|
lua_setfield(L, -2, "spell_id");
|
2013-06-20 14:03:22 -07:00
|
|
|
|
[Quest API] Convert Spell Events to similar formats and exports. (#1618)
* [Quest API] Convert Spell Events to similar formats and exports.
Export spell ID, caster ID, caster level, tics remaining, and buff slot to Perl/Lua spell events.
- Export e.buff_slot, e.caster_id, e.caster_level, e.spell_id, and e.tics_remaining to `event_spell_buff_tic`, `event_spell_effect`, and `event_spell_fade` in Lua.
- Export $buff_slot, $caster_id, $caster_level, $spell_id, $tics_remaining to `EVENT_SPELL_EFFECT_BUFF_TIC_CLIENT`, `EVENT_SPELL_EFFECT_BUFF_TIC_NPC`, `EVENT_SPELL_EFFECT_CLIENT`, `EVENT_SPELL_EFFECT_NPC`, and `EVENT_SPELL_FADE` in Perl.
* Formatting.
* Remove debug variable.
2021-10-20 16:02:12 -04:00
|
|
|
Seperator sep(data.c_str());
|
2013-06-20 14:03:22 -07:00
|
|
|
|
2023-07-31 20:59:56 -04:00
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[0]));
|
[Quest API] Convert Spell Events to similar formats and exports. (#1618)
* [Quest API] Convert Spell Events to similar formats and exports.
Export spell ID, caster ID, caster level, tics remaining, and buff slot to Perl/Lua spell events.
- Export e.buff_slot, e.caster_id, e.caster_level, e.spell_id, and e.tics_remaining to `event_spell_buff_tic`, `event_spell_effect`, and `event_spell_fade` in Lua.
- Export $buff_slot, $caster_id, $caster_level, $spell_id, $tics_remaining to `EVENT_SPELL_EFFECT_BUFF_TIC_CLIENT`, `EVENT_SPELL_EFFECT_BUFF_TIC_NPC`, `EVENT_SPELL_EFFECT_CLIENT`, `EVENT_SPELL_EFFECT_NPC`, and `EVENT_SPELL_FADE` in Perl.
* Formatting.
* Remove debug variable.
2021-10-20 16:02:12 -04:00
|
|
|
lua_setfield(L, -2, "caster_id");
|
2013-06-20 14:03:22 -07:00
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[1]));
|
2013-06-20 14:03:22 -07:00
|
|
|
lua_setfield(L, -2, "tics_remaining");
|
|
|
|
|
|
2023-07-31 20:59:56 -04:00
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[2]));
|
2013-06-20 14:03:22 -07:00
|
|
|
lua_setfield(L, -2, "caster_level");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[3]));
|
2013-06-05 16:47:49 -07:00
|
|
|
lua_setfield(L, -2, "buff_slot");
|
2022-11-25 15:09:08 -05:00
|
|
|
|
[Quest API] Convert Spell Events to similar formats and exports. (#1618)
* [Quest API] Convert Spell Events to similar formats and exports.
Export spell ID, caster ID, caster level, tics remaining, and buff slot to Perl/Lua spell events.
- Export e.buff_slot, e.caster_id, e.caster_level, e.spell_id, and e.tics_remaining to `event_spell_buff_tic`, `event_spell_effect`, and `event_spell_fade` in Lua.
- Export $buff_slot, $caster_id, $caster_level, $spell_id, $tics_remaining to `EVENT_SPELL_EFFECT_BUFF_TIC_CLIENT`, `EVENT_SPELL_EFFECT_BUFF_TIC_NPC`, `EVENT_SPELL_EFFECT_CLIENT`, `EVENT_SPELL_EFFECT_NPC`, and `EVENT_SPELL_FADE` in Perl.
* Formatting.
* Remove debug variable.
2021-10-20 16:02:12 -04:00
|
|
|
Lua_Spell l_spell(spell_id);
|
|
|
|
|
luabind::adl::object l_spell_o = luabind::adl::object(L, l_spell);
|
|
|
|
|
l_spell_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "spell");
|
2013-06-20 14:03:22 -07:00
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_translocate_finish(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Mob* mob,
|
|
|
|
|
Client* client,
|
|
|
|
|
uint32 spell_id,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2022-11-16 22:02:16 -05:00
|
|
|
if (mob) {
|
|
|
|
|
Lua_Mob l_mob(mob);
|
|
|
|
|
luabind::adl::object l_mob_o = luabind::adl::object(L, l_mob);
|
|
|
|
|
l_mob_o.push(L);
|
2023-07-31 20:59:56 -04:00
|
|
|
} else if (client) {
|
2013-06-20 14:03:22 -07:00
|
|
|
Lua_Mob l_client(client);
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_client_o = luabind::adl::object(L, l_client);
|
2013-06-20 14:03:22 -07:00
|
|
|
l_client_o.push(L);
|
|
|
|
|
} else {
|
|
|
|
|
Lua_Mob l_mob(nullptr);
|
2014-06-23 16:56:37 -07:00
|
|
|
luabind::adl::object l_mob_o = luabind::adl::object(L, l_mob);
|
2013-06-20 14:03:22 -07:00
|
|
|
l_mob_o.push(L);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
lua_setfield(L, -2, "target");
|
2013-06-04 23:22:03 -07:00
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_equip_item(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2022-02-22 20:04:08 -05:00
|
|
|
lua_pushnumber(L, extra_data);
|
|
|
|
|
lua_setfield(L, -2, "item_id");
|
|
|
|
|
|
|
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushnumber(L, Strings::ToInt(sep.arg[0]));
|
2022-02-22 20:04:08 -05:00
|
|
|
lua_setfield(L, -2, "item_quantity");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushnumber(L, Strings::ToInt(sep.arg[1]));
|
2022-02-22 20:04:08 -05:00
|
|
|
lua_setfield(L, -2, "slot_id");
|
2022-11-25 15:09:08 -05:00
|
|
|
|
2022-02-22 20:04:08 -05:00
|
|
|
Lua_ItemInst l_item(extra_data);
|
|
|
|
|
luabind::adl::object l_item_o = luabind::adl::object(L, l_item);
|
|
|
|
|
l_item_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "item");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_spell_null(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Mob* mob,
|
|
|
|
|
Client* client,
|
|
|
|
|
uint32 spell_id,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
}
|
2013-06-26 12:52:00 -07:00
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_encounter_timer(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Encounter* encounter,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2015-06-02 12:25:09 -07:00
|
|
|
lua_pushstring(L, data.c_str());
|
|
|
|
|
lua_setfield(L, -2, "timer");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_encounter_load(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Encounter* encounter,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2015-06-05 12:23:42 -07:00
|
|
|
if (encounter) {
|
|
|
|
|
Lua_Encounter l_enc(encounter);
|
|
|
|
|
luabind::adl::object l_enc_o = luabind::adl::object(L, l_enc);
|
|
|
|
|
l_enc_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "encounter");
|
|
|
|
|
}
|
2015-06-02 15:21:27 -07:00
|
|
|
if (extra_pointers) {
|
2022-07-27 10:00:09 -04:00
|
|
|
std::string *str = std::any_cast<std::string*>(extra_pointers->at(0));
|
2015-06-02 15:21:27 -07:00
|
|
|
lua_pushstring(L, str->c_str());
|
|
|
|
|
lua_setfield(L, -2, "data");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_encounter_unload(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Encounter* encounter,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2015-06-02 15:21:27 -07:00
|
|
|
if (extra_pointers) {
|
2022-07-27 10:00:09 -04:00
|
|
|
std::string *str = std::any_cast<std::string*>(extra_pointers->at(0));
|
2015-06-02 15:21:27 -07:00
|
|
|
lua_pushstring(L, str->c_str());
|
|
|
|
|
lua_setfield(L, -2, "data");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_encounter_null(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Encounter* encounter,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2015-06-02 12:25:09 -07:00
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_skill_up(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2022-04-25 11:18:52 -05:00
|
|
|
Seperator sep(data.c_str());
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[0]));
|
2022-04-25 11:18:52 -05:00
|
|
|
lua_setfield(L, -2, "skill_id");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[1]));
|
2022-04-25 11:18:52 -05:00
|
|
|
lua_setfield(L, -2, "skill_value");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[2]));
|
2022-04-25 11:18:52 -05:00
|
|
|
lua_setfield(L, -2, "skill_max");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[3]));
|
2022-04-25 11:18:52 -05:00
|
|
|
lua_setfield(L, -2, "is_tradeskill");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_language_skill_up(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2022-04-25 11:18:52 -05:00
|
|
|
Seperator sep(data.c_str());
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[0]));
|
2022-04-25 11:18:52 -05:00
|
|
|
lua_setfield(L, -2, "skill_id");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[1]));
|
2022-04-25 11:18:52 -05:00
|
|
|
lua_setfield(L, -2, "skill_value");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[2]));
|
2022-04-25 11:18:52 -05:00
|
|
|
lua_setfield(L, -2, "skill_max");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_alt_currency_merchant(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2022-09-28 04:02:42 -04:00
|
|
|
Seperator sep(data.c_str());
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[0]));
|
2022-09-28 04:02:42 -04:00
|
|
|
lua_setfield(L, -2, "currency_id");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[1]));
|
2022-09-28 04:02:42 -04:00
|
|
|
lua_setfield(L, -2, "npc_id");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[2]));
|
2022-09-28 04:02:42 -04:00
|
|
|
lua_setfield(L, -2, "merchant_id");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[3]));
|
2022-09-28 04:02:42 -04:00
|
|
|
lua_setfield(L, -2, "item_id");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[4]));
|
2022-09-28 04:02:42 -04:00
|
|
|
lua_setfield(L, -2, "item_cost");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_player_merchant(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2022-09-28 04:02:42 -04:00
|
|
|
Seperator sep(data.c_str());
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[0]));
|
2022-09-28 04:02:42 -04:00
|
|
|
lua_setfield(L, -2, "npc_id");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[1]));
|
2022-09-28 04:02:42 -04:00
|
|
|
lua_setfield(L, -2, "merchant_id");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[2]));
|
2022-09-28 04:02:42 -04:00
|
|
|
lua_setfield(L, -2, "item_id");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[3]));
|
2022-09-28 04:02:42 -04:00
|
|
|
lua_setfield(L, -2, "item_quantity");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[4]));
|
2022-09-28 04:02:42 -04:00
|
|
|
lua_setfield(L, -2, "item_cost");
|
|
|
|
|
}
|
|
|
|
|
|
2023-01-14 23:23:48 -05:00
|
|
|
void handle_player_augment_insert(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
2023-01-14 23:23:48 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Lua_ItemInst l_item(std::any_cast<EQ::ItemInstance*>(extra_pointers->at(0)));
|
|
|
|
|
luabind::adl::object l_item_o = luabind::adl::object(L, l_item);
|
|
|
|
|
l_item_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "item");
|
|
|
|
|
|
|
|
|
|
Lua_ItemInst l_augment(std::any_cast<EQ::ItemInstance*>(extra_pointers->at(1)));
|
|
|
|
|
luabind::adl::object l_augment_o = luabind::adl::object(L, l_augment);
|
|
|
|
|
l_augment_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "augment");
|
|
|
|
|
|
|
|
|
|
Seperator sep(data.c_str());
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[0]));
|
2023-01-14 23:23:48 -05:00
|
|
|
lua_setfield(L, -2, "item_id");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[1]));
|
2023-01-14 23:23:48 -05:00
|
|
|
lua_setfield(L, -2, "item_slot");
|
|
|
|
|
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[2]));
|
2023-01-14 23:23:48 -05:00
|
|
|
lua_setfield(L, -2, "augment_id");
|
|
|
|
|
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[3]));
|
2023-01-14 23:23:48 -05:00
|
|
|
lua_setfield(L, -2, "augment_slot");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void handle_player_augment_remove(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
2023-01-14 23:23:48 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Lua_ItemInst l_item(std::any_cast<EQ::ItemInstance*>(extra_pointers->at(0)));
|
|
|
|
|
luabind::adl::object l_item_o = luabind::adl::object(L, l_item);
|
|
|
|
|
l_item_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "item");
|
|
|
|
|
|
|
|
|
|
Lua_ItemInst l_augment(std::any_cast<EQ::ItemInstance*>(extra_pointers->at(2)));
|
|
|
|
|
luabind::adl::object l_augment_o = luabind::adl::object(L, l_augment);
|
|
|
|
|
l_augment_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "augment");
|
|
|
|
|
|
|
|
|
|
Seperator sep(data.c_str());
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[0]));
|
2023-01-14 23:23:48 -05:00
|
|
|
lua_setfield(L, -2, "item_id");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[1]));
|
2023-01-14 23:23:48 -05:00
|
|
|
lua_setfield(L, -2, "item_slot");
|
|
|
|
|
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[2]));
|
2023-01-14 23:23:48 -05:00
|
|
|
lua_setfield(L, -2, "augment_id");
|
|
|
|
|
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[3]));
|
2023-01-14 23:23:48 -05:00
|
|
|
lua_setfield(L, -2, "augment_slot");
|
|
|
|
|
|
|
|
|
|
lua_pushboolean(L, Strings::ToBool(sep.arg[4]));
|
|
|
|
|
lua_setfield(L, -2, "destroyed");
|
|
|
|
|
}
|
|
|
|
|
|
2024-02-19 04:51:16 -05:00
|
|
|
void handle_player_timer_pause_resume_start(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
|
|
|
|
|
lua_pushstring(L, sep.arg[0]);
|
|
|
|
|
lua_setfield(L, -2, "timer");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[1]));
|
|
|
|
|
lua_setfield(L, -2, "duration");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void handle_player_timer_stop(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Client* client,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
lua_pushstring(L, data.c_str());
|
|
|
|
|
lua_setfield(L, -2, "timer");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
// Bot
|
|
|
|
|
|
2022-11-16 22:02:16 -05:00
|
|
|
void handle_bot_null(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Bot* bot,
|
|
|
|
|
Mob* init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
2022-11-16 22:02:16 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void handle_bot_cast(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Bot* bot,
|
|
|
|
|
Mob* init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
2022-11-16 22:02:16 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2022-11-05 11:09:47 -04:00
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
|
2023-07-31 20:59:56 -04:00
|
|
|
const uint32 spell_id = Strings::ToUnsignedInt(sep.arg[0]);
|
|
|
|
|
Lua_Spell l_spell(IsValidSpell(spell_id) ? &spells[spell_id] : nullptr);
|
|
|
|
|
luabind::adl::object l_spell_o = luabind::adl::object(L, l_spell);
|
|
|
|
|
l_spell_o.push(L);
|
2022-11-16 22:02:16 -05:00
|
|
|
lua_setfield(L, -2, "spell");
|
2022-11-25 15:09:08 -05:00
|
|
|
|
2023-07-31 20:59:56 -04:00
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[1]));
|
2022-11-16 22:02:16 -05:00
|
|
|
lua_setfield(L, -2, "caster_id");
|
2022-11-25 15:09:08 -05:00
|
|
|
|
2023-07-31 20:59:56 -04:00
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[2]));
|
2022-11-16 22:02:16 -05:00
|
|
|
lua_setfield(L, -2, "caster_level");
|
[Quest API] Add target ID and spell exports to events (#3620)
* [Quest API] Add target ID and spell exports to events
# Notes
- Add `$spell` export to `EVENT_CAST`, `EVENT_CAST_BEGIN`, `EVENT_CAST_BEGIN`, `EVENT_ITEM_CLICK`, `EVENT_ITEM_CLICK_CAST`, `EVENT_ITEM_CLICK_CLIENT`, `EVENT_ITEM_CLICK_CAST_CLIENT`, `EVENT_SPELL_EFFECT_BUFF_TIC_BOT`, `EVENT_SPELL_EFFECT_BUFF_TIC_CLIENT`, `EVENT_SPELL_EFFECT_BUFF_TIC_NPC`, `EVENT_SPELL_EFFECT_BOT`, `EVENT_SPELL_EFFECT_CLIENT`, `EVENT_SPELL_EFFECT_NPC`, `EVENT_SPELL_FADE`, `EVENT_DEATH`, `EVENT_DEATH_COMPLETE`, `EVENT_DEATH_ZONE`, `EVENT_DAMAGE_GIVEN`, and `EVENT_DAMAGE_TAKEN` in Perl.
- Add `$target_id` export to `EVENT_CAST`, `EVENT_CAST_BEGIN`, and `EVENT_CAST_ON` in Perl.
- Add `e.target_id` export to `EVENT_CAST`, `EVENT_CAST_BEGIN`, and `EVENT_CAST_ON` in Lua.
* Add $target/e.target exports.
* Update spells.cpp
2023-10-15 19:40:25 -04:00
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[3]));
|
|
|
|
|
lua_setfield(L, -2, "target_id");
|
|
|
|
|
|
|
|
|
|
if (extra_pointers && extra_pointers->size() == 1) {
|
|
|
|
|
Lua_Mob l_mob(std::any_cast<Mob*>(extra_pointers->at(0)));
|
|
|
|
|
luabind::adl::object l_mob_o = luabind::adl::object(L, l_mob);
|
|
|
|
|
l_mob_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "target");
|
|
|
|
|
}
|
2022-11-16 22:02:16 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void handle_bot_combat(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Bot* bot,
|
|
|
|
|
Mob* init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
2022-11-16 22:02:16 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Lua_Mob l_mob(init);
|
|
|
|
|
luabind::adl::object l_mob_o = luabind::adl::object(L, l_mob);
|
|
|
|
|
l_mob_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
|
2023-07-31 20:59:56 -04:00
|
|
|
lua_pushboolean(L, Strings::ToBool(data));
|
2022-11-16 22:02:16 -05:00
|
|
|
lua_setfield(L, -2, "joined");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void handle_bot_death(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Bot* bot,
|
|
|
|
|
Mob* init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
2022-11-16 22:02:16 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
Mob *o = entity_list.GetMobID(Strings::ToInt(sep.arg[0]));
|
2022-11-16 22:02:16 -05:00
|
|
|
Lua_Mob l_mob(o);
|
|
|
|
|
luabind::adl::object l_mob_o = luabind::adl::object(L, l_mob);
|
|
|
|
|
l_mob_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
|
2023-12-31 17:37:26 -05:00
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[0]));
|
|
|
|
|
lua_setfield(L, -2, "killer_id");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[1]));
|
2022-11-16 22:02:16 -05:00
|
|
|
lua_setfield(L, -2, "damage");
|
|
|
|
|
|
2023-07-31 20:59:56 -04:00
|
|
|
const uint32 spell_id = Strings::ToUnsignedInt(sep.arg[2]);
|
2022-11-16 22:02:16 -05:00
|
|
|
if (IsValidSpell(spell_id)) {
|
|
|
|
|
Lua_Spell l_spell(&spells[spell_id]);
|
|
|
|
|
luabind::adl::object l_spell_o = luabind::adl::object(L, l_spell);
|
|
|
|
|
l_spell_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "spell");
|
|
|
|
|
} else {
|
|
|
|
|
Lua_Spell l_spell(nullptr);
|
|
|
|
|
luabind::adl::object l_spell_o = luabind::adl::object(L, l_spell);
|
|
|
|
|
l_spell_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "spell");
|
|
|
|
|
}
|
2022-11-05 11:09:47 -04:00
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[3]));
|
2022-11-16 22:02:16 -05:00
|
|
|
lua_setfield(L, -2, "skill");
|
2023-12-31 17:37:26 -05:00
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[4]));
|
|
|
|
|
lua_setfield(L, -2, "killed_entity_id");
|
2022-11-05 11:09:47 -04:00
|
|
|
}
|
|
|
|
|
|
2022-11-16 22:02:16 -05:00
|
|
|
void handle_bot_popup_response(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Bot* bot,
|
|
|
|
|
Mob* init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
2022-11-16 22:02:16 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Lua_Mob l_mob(init);
|
|
|
|
|
luabind::adl::object l_mob_o = luabind::adl::object(L, l_mob);
|
|
|
|
|
l_mob_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(data));
|
2022-11-16 22:02:16 -05:00
|
|
|
lua_setfield(L, -2, "popup_id");
|
2022-11-05 11:09:47 -04:00
|
|
|
}
|
|
|
|
|
|
2022-11-16 22:02:16 -05:00
|
|
|
void handle_bot_say(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Bot* bot,
|
|
|
|
|
Mob* init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
2022-11-16 22:02:16 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Lua_Client l_client(reinterpret_cast<Client*>(init));
|
|
|
|
|
luabind::adl::object l_client_o = luabind::adl::object(L, l_client);
|
|
|
|
|
l_client_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
|
|
|
|
|
lua_pushstring(L, data.c_str());
|
|
|
|
|
lua_setfield(L, -2, "message");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, extra_data);
|
|
|
|
|
lua_setfield(L, -2, "language");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void handle_bot_signal(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Bot* bot,
|
|
|
|
|
Mob *init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
2022-11-16 22:02:16 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(data));
|
2022-11-16 22:02:16 -05:00
|
|
|
lua_setfield(L, -2, "signal");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
void handle_bot_payload(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Bot* bot,
|
|
|
|
|
Mob *init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[0]));
|
[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)
* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.
# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.
# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.
# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.
* Cleanup parser events.
2022-12-04 17:47:49 -05:00
|
|
|
lua_setfield(L, -2, "payload_id");
|
|
|
|
|
|
|
|
|
|
lua_pushstring(L, sep.argplus[1]);
|
|
|
|
|
lua_setfield(L, -2, "payload_value");
|
|
|
|
|
}
|
|
|
|
|
|
2022-11-16 22:02:16 -05:00
|
|
|
void handle_bot_slay(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Bot* bot,
|
|
|
|
|
Mob *init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
2022-11-16 22:02:16 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Lua_Mob l_mob(init);
|
|
|
|
|
luabind::adl::object l_mob_o = luabind::adl::object(L, l_mob);
|
|
|
|
|
l_mob_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void handle_bot_target_change(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Bot* bot,
|
|
|
|
|
Mob *init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
2022-11-16 22:02:16 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Lua_Mob l_mob(init);
|
|
|
|
|
luabind::adl::object l_mob_o = luabind::adl::object(L, l_mob);
|
|
|
|
|
l_mob_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void handle_bot_timer(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Bot* bot,
|
|
|
|
|
Mob *init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
2022-11-16 22:02:16 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
lua_pushstring(L, data.c_str());
|
|
|
|
|
lua_setfield(L, -2, "timer");
|
|
|
|
|
}
|
|
|
|
|
|
2022-11-25 15:09:08 -05:00
|
|
|
void handle_bot_trade(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Bot* bot,
|
|
|
|
|
Mob *init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
2022-11-25 15:09:08 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Lua_Client l_client(reinterpret_cast<Client*>(init));
|
|
|
|
|
luabind::adl::object l_client_o = luabind::adl::object(L, l_client);
|
|
|
|
|
l_client_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
|
|
|
|
|
lua_createtable(L, 0, 0);
|
|
|
|
|
const auto bot_id = bot->GetBotID();
|
|
|
|
|
|
|
|
|
|
if (extra_pointers) {
|
|
|
|
|
size_t sz = extra_pointers->size();
|
|
|
|
|
for (size_t i = 0; i < sz; ++i) {
|
|
|
|
|
auto prefix = fmt::format("item{}", i + 1);
|
|
|
|
|
auto* inst = std::any_cast<EQ::ItemInstance*>(extra_pointers->at(i));
|
|
|
|
|
|
|
|
|
|
Lua_ItemInst l_inst = inst;
|
|
|
|
|
luabind::adl::object l_inst_o = luabind::adl::object(L, l_inst);
|
|
|
|
|
l_inst_o.push(L);
|
|
|
|
|
|
|
|
|
|
lua_setfield(L, -2, prefix.c_str());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
auto money_string = fmt::format("platinum.{}", bot_id);
|
2023-03-04 18:01:19 -05:00
|
|
|
uint32 money_value = !parse->GetVar(money_string).empty() ? Strings::ToUnsignedInt(parse->GetVar(money_string)) : 0;
|
2022-11-25 15:09:08 -05:00
|
|
|
|
|
|
|
|
lua_pushinteger(L, money_value);
|
|
|
|
|
lua_setfield(L, -2, "platinum");
|
|
|
|
|
|
|
|
|
|
money_string = fmt::format("gold.{}", bot_id);
|
2023-03-04 18:01:19 -05:00
|
|
|
money_value = !parse->GetVar(money_string).empty() ? Strings::ToUnsignedInt(parse->GetVar(money_string)) : 0;
|
2022-11-25 15:09:08 -05:00
|
|
|
|
|
|
|
|
lua_pushinteger(L, money_value);
|
|
|
|
|
lua_setfield(L, -2, "gold");
|
|
|
|
|
|
|
|
|
|
money_string = fmt::format("silver.{}", bot_id);
|
2023-03-04 18:01:19 -05:00
|
|
|
money_value = !parse->GetVar(money_string).empty() ? Strings::ToUnsignedInt(parse->GetVar(money_string)) : 0;
|
2022-11-25 15:09:08 -05:00
|
|
|
|
|
|
|
|
lua_pushinteger(L, money_value);
|
|
|
|
|
lua_setfield(L, -2, "silver");
|
|
|
|
|
|
|
|
|
|
money_string = fmt::format("copper.{}", bot_id);
|
2023-03-04 18:01:19 -05:00
|
|
|
money_value = !parse->GetVar(money_string).empty() ? Strings::ToUnsignedInt(parse->GetVar(money_string)) : 0;
|
2022-11-25 15:09:08 -05:00
|
|
|
|
|
|
|
|
lua_pushinteger(L, money_value);
|
|
|
|
|
lua_setfield(L, -2, "copper");
|
|
|
|
|
|
|
|
|
|
lua_setfield(L, -2, "trade");
|
|
|
|
|
}
|
|
|
|
|
|
2022-11-16 22:02:16 -05:00
|
|
|
void handle_bot_use_skill(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Bot* bot,
|
|
|
|
|
Mob *init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
2022-11-16 22:02:16 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Seperator sep(data.c_str());
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[0]));
|
2022-11-16 22:02:16 -05:00
|
|
|
lua_setfield(L, -2, "skill_id");
|
|
|
|
|
|
2023-02-06 17:22:01 -06:00
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[1]));
|
2022-11-16 22:02:16 -05:00
|
|
|
lua_setfield(L, -2, "skill_level");
|
|
|
|
|
}
|
|
|
|
|
|
2023-01-26 19:49:20 -05:00
|
|
|
void handle_bot_equip_item(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Bot* bot,
|
|
|
|
|
Mob* init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
2023-01-26 19:49:20 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
lua_pushnumber(L, extra_data);
|
|
|
|
|
lua_setfield(L, -2, "item_id");
|
|
|
|
|
|
|
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushnumber(L, Strings::ToInt(sep.arg[0]));
|
2023-01-26 19:49:20 -05:00
|
|
|
lua_setfield(L, -2, "item_quantity");
|
|
|
|
|
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushnumber(L, Strings::ToInt(sep.arg[1]));
|
2023-01-26 19:49:20 -05:00
|
|
|
lua_setfield(L, -2, "slot_id");
|
|
|
|
|
|
|
|
|
|
Lua_ItemInst l_item(extra_data);
|
|
|
|
|
luabind::adl::object l_item_o = luabind::adl::object(L, l_item);
|
|
|
|
|
l_item_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "item");
|
|
|
|
|
}
|
|
|
|
|
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
void handle_bot_damage(
|
2023-01-26 19:49:20 -05:00
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Bot* bot,
|
|
|
|
|
Mob* init,
|
2023-01-31 20:30:34 -06:00
|
|
|
std::string data,
|
2023-01-26 19:49:20 -05:00
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushnumber(L, Strings::ToUnsignedInt(sep.arg[0]));
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
lua_setfield(L, -2, "entity_id");
|
2023-01-26 19:49:20 -05:00
|
|
|
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushnumber(L, Strings::ToBigInt(sep.arg[1]));
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
lua_setfield(L, -2, "damage");
|
2023-01-26 19:49:20 -05:00
|
|
|
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushnumber(L, Strings::ToInt(sep.arg[2]));
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
lua_setfield(L, -2, "spell_id");
|
|
|
|
|
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushnumber(L, Strings::ToInt(sep.arg[3]));
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
lua_setfield(L, -2, "skill_id");
|
|
|
|
|
|
2023-07-31 20:59:56 -04:00
|
|
|
lua_pushboolean(L, Strings::ToBool(sep.arg[4]));
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
lua_setfield(L, -2, "is_damage_shield");
|
2023-01-26 19:49:20 -05:00
|
|
|
|
2023-07-31 20:59:56 -04:00
|
|
|
lua_pushboolean(L, Strings::ToBool(sep.arg[5]));
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
lua_setfield(L, -2, "is_avoidable");
|
|
|
|
|
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushnumber(L, Strings::ToInt(sep.arg[6]));
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
lua_setfield(L, -2, "buff_slot");
|
|
|
|
|
|
2023-07-31 20:59:56 -04:00
|
|
|
lua_pushboolean(L, Strings::ToBool(sep.arg[7]));
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
lua_setfield(L, -2, "is_buff_tic");
|
|
|
|
|
|
2023-03-04 18:01:19 -05:00
|
|
|
lua_pushnumber(L, Strings::ToInt(sep.arg[8]));
|
[Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804)
* [Quest API] Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua.
# Perl
- Add `EVENT_DAMAGE_GIVEN`.
- Add `EVENT_DAMAGE_TAKEN`.
- Both events export `$entity_id`, `$damage`, `$spell_id`, `$skill_id`, `$is_damage_shield`, `$is_avoidable`, `$buff_slot`, `$is_buff_tic`, `$special_attack`.
# Lua
- Add `event_damage_given`.
- Add `event_damage_taken`.
- Both events export `e.entity_id`, `e.damage`, `e.spell_id`, `e.skill_id`, `e.is_damage_shield`, `e.is_avoidable`, `e.buff_slot`, `e.is_buff_tic`, `e.special_attack`, and `e.other`.
# Notes
- These events allow operators to have events fire based on damage given or taken, as well as keep better track of a Bot, Client, or NPC's damage per second or otherwise.
- Special Attack is only useful for NPCs, but allows you to see if the attack is Rampage, AERampage, or Chaotic Stab.
* Cleanup.
2023-01-29 14:35:17 -05:00
|
|
|
lua_setfield(L, -2, "special_attack");
|
|
|
|
|
|
|
|
|
|
Lua_Mob l_mob(init);
|
|
|
|
|
luabind::adl::object l_mob_o = luabind::adl::object(L, l_mob);
|
|
|
|
|
l_mob_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
}
|
2023-01-26 19:49:20 -05:00
|
|
|
|
2023-12-16 23:23:38 -05:00
|
|
|
void handle_bot_level_up(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Bot* bot,
|
|
|
|
|
Mob *init,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
lua_pushinteger(L, Strings::ToInt(data));
|
|
|
|
|
lua_setfield(L, -2, "levels_gained");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void handle_bot_level_down(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Bot* bot,
|
|
|
|
|
Mob *init,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
lua_pushinteger(L, Strings::ToInt(data));
|
|
|
|
|
lua_setfield(L, -2, "levels_lost");
|
|
|
|
|
}
|
|
|
|
|
|
2024-02-19 04:51:16 -05:00
|
|
|
void handle_bot_timer_pause_resume_start(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Bot* bot,
|
|
|
|
|
Mob *init,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
|
|
|
|
|
lua_pushstring(L, sep.arg[0]);
|
|
|
|
|
lua_setfield(L, -2, "timer");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[1]));
|
|
|
|
|
lua_setfield(L, -2, "duration");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void handle_bot_timer_stop(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Bot* bot,
|
|
|
|
|
Mob *init,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
lua_pushstring(L, data.c_str());
|
|
|
|
|
lua_setfield(L, -2, "timer");
|
|
|
|
|
}
|
|
|
|
|
|
2024-02-19 21:34:33 -05:00
|
|
|
void handle_bot_entity_variable(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Bot* bot,
|
|
|
|
|
Mob *init,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
if (extra_pointers) {
|
|
|
|
|
if (extra_pointers->size() == 2) {
|
|
|
|
|
lua_pushstring(L, std::any_cast<std::string>(extra_pointers->at(0)).c_str());
|
|
|
|
|
lua_setfield(L, -2, "variable_name");
|
|
|
|
|
|
|
|
|
|
lua_pushstring(L, std::any_cast<std::string>(extra_pointers->at(1)).c_str());
|
|
|
|
|
lua_setfield(L, -2, "variable_value");
|
|
|
|
|
} else if (extra_pointers->size() == 3) {
|
|
|
|
|
lua_pushstring(L, std::any_cast<std::string>(extra_pointers->at(0)).c_str());
|
|
|
|
|
lua_setfield(L, -2, "variable_name");
|
|
|
|
|
|
|
|
|
|
lua_pushstring(L, std::any_cast<std::string>(extra_pointers->at(1)).c_str());
|
|
|
|
|
lua_setfield(L, -2, "old_value");
|
|
|
|
|
|
|
|
|
|
lua_pushstring(L, std::any_cast<std::string>(extra_pointers->at(2)).c_str());
|
|
|
|
|
lua_setfield(L, -2, "new_value");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-31 23:58:30 -04:00
|
|
|
void handle_bot_spell_blocked(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Bot* bot,
|
|
|
|
|
Mob *init,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[0]));
|
|
|
|
|
lua_setfield(L, -2, "blocking_spell_id");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[1]));
|
|
|
|
|
lua_setfield(L, -2, "cast_spell_id");
|
|
|
|
|
|
|
|
|
|
const uint32 blocking_spell_id = Strings::ToUnsignedInt(sep.arg[0]);
|
|
|
|
|
|
|
|
|
|
Lua_Spell l_spell_one(IsValidSpell(blocking_spell_id) ? &spells[blocking_spell_id] : nullptr);
|
|
|
|
|
luabind::adl::object l_spell_one_o = luabind::adl::object(L, l_spell_one);
|
|
|
|
|
l_spell_one_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "blocking_spell");
|
|
|
|
|
|
|
|
|
|
const uint32 cast_spell_id = Strings::ToUnsignedInt(sep.arg[0]);
|
|
|
|
|
|
|
|
|
|
Lua_Spell l_spell_two(IsValidSpell(cast_spell_id) ? &spells[cast_spell_id] : nullptr);
|
|
|
|
|
luabind::adl::object l_spell_two_o = luabind::adl::object(L, l_spell_two);
|
|
|
|
|
l_spell_two_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "cast_spell");
|
|
|
|
|
}
|
|
|
|
|
|
2025-07-10 15:08:08 -04:00
|
|
|
// Zone
|
|
|
|
|
|
|
|
|
|
void handle_zone_null(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Zone* zone,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void handle_zone_click_door(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Zone* zone,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Lua_Door l_door(std::any_cast<Doors*>(extra_pointers->at(0)));
|
|
|
|
|
luabind::adl::object l_door_o = luabind::adl::object(L, l_door);
|
|
|
|
|
l_door_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "door");
|
|
|
|
|
|
|
|
|
|
Lua_Client l_client(std::any_cast<Client*>(extra_pointers->at(1)));
|
|
|
|
|
luabind::adl::object l_client_o = luabind::adl::object(L, l_client);
|
|
|
|
|
l_client_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void handle_zone_click_object(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Zone* zone,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Lua_Object l_object(std::any_cast<Object*>(extra_pointers->at(0)));
|
|
|
|
|
luabind::adl::object l_object_o = luabind::adl::object(L, l_object);
|
|
|
|
|
l_object_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "object");
|
|
|
|
|
|
|
|
|
|
Lua_Client l_client(std::any_cast<Client*>(extra_pointers->at(1)));
|
|
|
|
|
luabind::adl::object l_client_o = luabind::adl::object(L, l_client);
|
|
|
|
|
l_client_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void handle_zone_death(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Zone* zone,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
|
|
|
|
|
Lua_Mob l_mob(std::any_cast<Mob*>(extra_pointers->at(2)));
|
|
|
|
|
luabind::adl::object l_mob_o = luabind::adl::object(L, l_mob);
|
|
|
|
|
l_mob_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[0]));
|
|
|
|
|
lua_setfield(L, -2, "killer_id");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[1]));
|
|
|
|
|
lua_setfield(L, -2, "damage");
|
|
|
|
|
|
|
|
|
|
const uint32 spell_id = Strings::ToUnsignedInt(sep.arg[2]);
|
|
|
|
|
if (IsValidSpell(spell_id)) {
|
|
|
|
|
Lua_Spell l_spell(&spells[spell_id]);
|
|
|
|
|
luabind::adl::object l_spell_o = luabind::adl::object(L, l_spell);
|
|
|
|
|
l_spell_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "spell");
|
|
|
|
|
} else {
|
|
|
|
|
Lua_Spell l_spell(nullptr);
|
|
|
|
|
luabind::adl::object l_spell_o = luabind::adl::object(L, l_spell);
|
|
|
|
|
l_spell_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "spell");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[3]));
|
|
|
|
|
lua_setfield(L, -2, "skill_id");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[4]));
|
|
|
|
|
lua_setfield(L, -2, "killed_entity_id");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[5]));
|
|
|
|
|
lua_setfield(L, -2, "combat_start_time");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[6]));
|
|
|
|
|
lua_setfield(L, -2, "combat_end_time");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToBigInt(sep.arg[7]));
|
|
|
|
|
lua_setfield(L, -2, "damage_received");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToBigInt(sep.arg[8]));
|
|
|
|
|
lua_setfield(L, -2, "healing_received");
|
|
|
|
|
|
|
|
|
|
if (extra_pointers && extra_pointers->size() >= 1) {
|
|
|
|
|
Lua_Corpse l_corpse(std::any_cast<Corpse*>(extra_pointers->at(0)));
|
|
|
|
|
luabind::adl::object l_corpse_o = luabind::adl::object(L, l_corpse);
|
|
|
|
|
l_corpse_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "corpse");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (extra_pointers && extra_pointers->size() >= 2) {
|
|
|
|
|
Lua_NPC l_npc(std::any_cast<NPC*>(extra_pointers->at(1)));
|
|
|
|
|
luabind::adl::object l_npc_o = luabind::adl::object(L, l_npc);
|
|
|
|
|
l_npc_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "killed");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void handle_zone_despawn(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Zone* zone,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Lua_NPC l_npc(std::any_cast<NPC*>(extra_pointers->at(0)));
|
|
|
|
|
luabind::adl::object l_npc_o = luabind::adl::object(L, l_npc);
|
|
|
|
|
l_npc_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void handle_zone_enter(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Zone* zone,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Lua_Client l_client(std::any_cast<Client*>(extra_pointers->at(0)));
|
|
|
|
|
luabind::adl::object l_client_o = luabind::adl::object(L, l_client);
|
|
|
|
|
l_client_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void handle_zone_loot(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Zone* zone,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Lua_Client l_client(std::any_cast<Client*>(extra_pointers->at(2)));
|
|
|
|
|
luabind::adl::object l_client_o = luabind::adl::object(L, l_client);
|
|
|
|
|
l_client_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
|
|
|
|
|
Lua_ItemInst l_item(std::any_cast<EQ::ItemInstance*>(extra_pointers->at(0)));
|
|
|
|
|
luabind::adl::object l_item_o = luabind::adl::object(L, l_item);
|
|
|
|
|
l_item_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "item");
|
|
|
|
|
|
|
|
|
|
Lua_Corpse l_corpse(std::any_cast<Corpse*>(extra_pointers->at(1)));
|
|
|
|
|
luabind::adl::object l_corpse_o = luabind::adl::object(L, l_corpse);
|
|
|
|
|
l_corpse_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "corpse");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void handle_zone_payload(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Zone* zone,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToInt(sep.arg[0]));
|
|
|
|
|
lua_setfield(L, -2, "payload_id");
|
|
|
|
|
|
|
|
|
|
lua_pushstring(L, sep.argplus[1]);
|
|
|
|
|
lua_setfield(L, -2, "payload_value");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void handle_zone_pickup(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Zone* zone,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Lua_ItemInst l_item(std::any_cast<EQ::ItemInstance*>(extra_pointers->at(0)));
|
|
|
|
|
luabind::adl::object l_item_o = luabind::adl::object(L, l_item);
|
|
|
|
|
l_item_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "item");
|
|
|
|
|
|
|
|
|
|
Lua_Client l_client(std::any_cast<Client*>(extra_pointers->at(1)));
|
|
|
|
|
luabind::adl::object l_client_o = luabind::adl::object(L, l_client);
|
|
|
|
|
l_client_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void handle_zone_popup(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Zone* zone,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
lua_pushinteger(L, Strings::ToInt(data));
|
|
|
|
|
lua_setfield(L, -2, "popup_id");
|
|
|
|
|
|
|
|
|
|
Lua_Client l_client(std::any_cast<Client*>(extra_pointers->at(0)));
|
|
|
|
|
luabind::adl::object l_client_o = luabind::adl::object(L, l_client);
|
|
|
|
|
l_client_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void handle_zone_signal(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Zone* zone,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
lua_pushinteger(L, Strings::ToInt(data));
|
|
|
|
|
lua_setfield(L, -2, "signal");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void handle_zone_spawn(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Zone* zone,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Lua_NPC l_npc(std::any_cast<NPC*>(extra_pointers->at(0)));
|
|
|
|
|
luabind::adl::object l_npc_o = luabind::adl::object(L, l_npc);
|
|
|
|
|
l_npc_o.push(L);
|
|
|
|
|
lua_setfield(L, -2, "other");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void handle_zone_timer(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Zone* zone,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
lua_pushstring(L, data.c_str());
|
|
|
|
|
lua_setfield(L, -2, "timer");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void handle_zone_timer_pause_resume_start(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Zone* zone,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
Seperator sep(data.c_str());
|
|
|
|
|
|
|
|
|
|
lua_pushstring(L, sep.arg[0]);
|
|
|
|
|
lua_setfield(L, -2, "timer");
|
|
|
|
|
|
|
|
|
|
lua_pushinteger(L, Strings::ToUnsignedInt(sep.arg[1]));
|
|
|
|
|
lua_setfield(L, -2, "duration");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void handle_zone_timer_stop(
|
|
|
|
|
QuestInterface *parse,
|
|
|
|
|
lua_State* L,
|
|
|
|
|
Zone* zone,
|
|
|
|
|
std::string data,
|
|
|
|
|
uint32 extra_data,
|
|
|
|
|
std::vector<std::any> *extra_pointers
|
|
|
|
|
) {
|
|
|
|
|
lua_pushstring(L, data.c_str());
|
|
|
|
|
lua_setfield(L, -2, "timer");
|
|
|
|
|
}
|
|
|
|
|
|
2022-11-16 22:02:16 -05:00
|
|
|
#endif
|