Many of the functions found here seem to be read correctly upon casting my test spell:
https://github.com/EQEmu/Server/wiki/Lua-Mob
Here is an example script which all displays as it should when the spell is cast and triggers a script to be run from global/spells.
Code:
function event_spell_effect(e)
local P_LVL = e.target:GetLevel();
local P_RACE = e.target:GetBaseRace();
local P_STR = e.target:GetSTR();
local Mana = e.target:GetMana();
local ManaCost = (P_LVL*5);
local NewMana = (Mana - ManaCost);
e.target:Message(15, "My LEVEL IS: "..P_LVL);
e.target:Message(15, "My RACE IS: "..P_RACE);
e.target:Message(15, "My STR IS: "..P_STR);
e.target:Message(15, "My INITIAL MANA IS: "..Mana);
e.target:Message(15, "MANACOST TO CAST THIS SPELL IS: "..ManaCost);
e.target:Message(15, "My MANA TOTAL AFTER CASTING IS: "..NewMana);
if(NewMana < 0) then e.target:Message(5, "You do not have enough mana to use this ability.");
elseif (NewMana >= 0) then e.target:SetMana(NewMana);
end
end
What one of my goals is to have a spell cast and trigger a script that will cast another spell or trigger the global_player file to cast another spell based on the conditions I specify.
I've tried variations of Selfcast /CastSpell /CastToClient /SignalClient /SignalAllClients etc. and can not seem to get the script to recognize just who e.target really is.
I have figured out how to do so in the lua global_player file, I was just trying to avoid constant access to the player file if I can do so in a separate spell file.