mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-17 11:28:25 +00:00
[Quest API] Add Spell Blocked Event to Perl/Lua (#4217)
* [Spells] Add Unblockable Spell Table and Spell Blocked Event - Add `EVENT_SPELL_BLOCKED`, exports `$blocking_spell_id`, `$cast_spell_id`, `$blocking_spell`, and `$cast_spell`. - Add `event_spell_blocked`, exports `e.blocking_spell_id`, `e.cast_spell_id`, `e.blocking_spell`, and `e.cast_spell`. - Adds `spells_unblockable` table with a `spell_id` and `is_unblockable` column. - This table will need to be populated based on known spells that should be unblockable. - This event will allow operators to perform events when spells are blocked. * Cleanup * Cleanup * Update spells.cpp * Remove unused repositories. * Finalize * Update lua_parser_events.cpp
This commit is contained in:
@@ -202,6 +202,7 @@ const char* QuestEventSubroutines[_LargestEventID] = {
|
||||
"EVENT_ENTITY_VARIABLE_SET",
|
||||
"EVENT_ENTITY_VARIABLE_UPDATE",
|
||||
"EVENT_AA_LOSS",
|
||||
"EVENT_SPELL_BLOCKED",
|
||||
|
||||
// Add new events before these or Lua crashes
|
||||
"EVENT_SPELL_EFFECT_BOT",
|
||||
@@ -1937,6 +1938,25 @@ void PerlembParser::ExportEventVariables(
|
||||
break;
|
||||
}
|
||||
|
||||
case EVENT_SPELL_BLOCKED: {
|
||||
Seperator sep(data);
|
||||
const uint32 blocking_spell_id = Strings::ToUnsignedInt(sep.arg[0]);
|
||||
const uint32 cast_spell_id = Strings::ToUnsignedInt(sep.arg[1]);
|
||||
|
||||
ExportVar(package_name.c_str(), "blocking_spell_id", blocking_spell_id);
|
||||
ExportVar(package_name.c_str(), "cast_spell_id", cast_spell_id);
|
||||
|
||||
if (IsValidSpell(blocking_spell_id)) {
|
||||
ExportVar(package_name.c_str(), "blocking_spell", "Spell", (void*) &spells[blocking_spell_id]);
|
||||
}
|
||||
|
||||
if (IsValidSpell(cast_spell_id)) {
|
||||
ExportVar(package_name.c_str(), "cast_spell", "Spell", (void*) &spells[cast_spell_id]);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
//tradeskill events
|
||||
case EVENT_COMBINE_SUCCESS:
|
||||
case EVENT_COMBINE_FAILURE: {
|
||||
|
||||
Reference in New Issue
Block a user