mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-17 07:18:37 +00: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.
This commit is contained in:
+31
-29
@@ -253,19 +253,15 @@ int PerlembParser::EventCommon(
|
||||
|
||||
if (isPlayerQuest || isGlobalPlayerQuest) {
|
||||
return SendCommands(package_name.c_str(), sub_name, 0, mob, mob, nullptr);
|
||||
}
|
||||
else if (isItemQuest) {
|
||||
} else if (isItemQuest) {
|
||||
return SendCommands(package_name.c_str(), sub_name, 0, mob, mob, item_inst);
|
||||
}
|
||||
else if (isSpellQuest) {
|
||||
} else if (isSpellQuest) {
|
||||
if (mob) {
|
||||
return SendCommands(package_name.c_str(), sub_name, 0, mob, mob, nullptr);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
return SendCommands(package_name.c_str(), sub_name, 0, npcmob, mob, nullptr);
|
||||
}
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
return SendCommands(package_name.c_str(), sub_name, objid, npcmob, mob, nullptr);
|
||||
}
|
||||
}
|
||||
@@ -312,11 +308,11 @@ int PerlembParser::EventItem(
|
||||
}
|
||||
|
||||
int PerlembParser::EventSpell(
|
||||
QuestEventID evt, NPC *npc, Client *client, uint32 spell_id, uint32 extra_data,
|
||||
QuestEventID evt, NPC *npc, Client *client, uint32 spell_id, std::string data, uint32 extra_data,
|
||||
std::vector<EQ::Any> *extra_pointers
|
||||
)
|
||||
{
|
||||
return EventCommon(evt, 0, itoa(spell_id), npc, nullptr, client, extra_data, false, extra_pointers);
|
||||
return EventCommon(evt, spell_id, data.c_str(), npc, nullptr, client, extra_data, false, extra_pointers);
|
||||
}
|
||||
|
||||
bool PerlembParser::HasQuestSub(uint32 npcid, QuestEventID evt)
|
||||
@@ -1004,8 +1000,8 @@ void PerlembParser::GetQuestTypes(
|
||||
{
|
||||
if (event == EVENT_SPELL_EFFECT_CLIENT ||
|
||||
event == EVENT_SPELL_EFFECT_NPC ||
|
||||
event == EVENT_SPELL_BUFF_TIC_CLIENT ||
|
||||
event == EVENT_SPELL_BUFF_TIC_NPC ||
|
||||
event == EVENT_SPELL_EFFECT_BUFF_TIC_CLIENT ||
|
||||
event == EVENT_SPELL_EFFECT_BUFF_TIC_NPC ||
|
||||
event == EVENT_SPELL_FADE ||
|
||||
event == EVENT_SPELL_EFFECT_TRANSLOCATE_COMPLETE) {
|
||||
isSpellQuest = true;
|
||||
@@ -1042,31 +1038,31 @@ void PerlembParser::GetQuestPackageName(
|
||||
bool global
|
||||
)
|
||||
{
|
||||
if (!isPlayerQuest && !isGlobalPlayerQuest && !isItemQuest && !isSpellQuest) {
|
||||
if (
|
||||
!isPlayerQuest &&
|
||||
!isGlobalPlayerQuest &&
|
||||
!isItemQuest &&
|
||||
!isSpellQuest
|
||||
) {
|
||||
if (global) {
|
||||
isGlobalNPC = true;
|
||||
package_name = "qst_global_npc";
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
package_name = "qst_npc_";
|
||||
package_name += itoa(npcmob->GetNPCTypeID());
|
||||
package_name += std::to_string(npcmob->GetNPCTypeID());
|
||||
}
|
||||
}
|
||||
else if (isItemQuest) {
|
||||
} else if (isItemQuest) {
|
||||
// need a valid EQ::ItemInstance pointer check here..unsure how to cancel this process
|
||||
const EQ::ItemData *item = item_inst->GetItem();
|
||||
package_name = "qst_item_";
|
||||
package_name += itoa(item->ID);
|
||||
}
|
||||
else if (isPlayerQuest) {
|
||||
package_name += std::to_string(item->ID);
|
||||
} else if (isPlayerQuest) {
|
||||
package_name = "qst_player";
|
||||
}
|
||||
else if (isGlobalPlayerQuest) {
|
||||
} else if (isGlobalPlayerQuest) {
|
||||
package_name = "qst_global_player";
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
package_name = "qst_spell_";
|
||||
package_name += data;
|
||||
package_name += std::to_string(objid);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1525,11 +1521,17 @@ void PerlembParser::ExportEventVariables(
|
||||
break;
|
||||
}
|
||||
|
||||
case EVENT_SPELL_EFFECT_BUFF_TIC_CLIENT:
|
||||
case EVENT_SPELL_EFFECT_BUFF_TIC_NPC:
|
||||
case EVENT_SPELL_EFFECT_CLIENT:
|
||||
case EVENT_SPELL_EFFECT_NPC:
|
||||
case EVENT_SPELL_BUFF_TIC_CLIENT:
|
||||
case EVENT_SPELL_BUFF_TIC_NPC: {
|
||||
ExportVar(package_name.c_str(), "caster_id", extradata);
|
||||
case EVENT_SPELL_FADE: {
|
||||
Seperator sep(data);
|
||||
ExportVar(package_name.c_str(), "spell_id", objid);
|
||||
ExportVar(package_name.c_str(), "caster_id", sep.arg[0]);
|
||||
ExportVar(package_name.c_str(), "tics_remaining", sep.arg[1]);
|
||||
ExportVar(package_name.c_str(), "caster_level", sep.arg[2]);
|
||||
ExportVar(package_name.c_str(), "buff_slot", sep.arg[3]);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user