1
0

LUA Function GetSpellRequiredLevel(Player) added to retrun the required level for the spell based on the adventure class

This commit is contained in:
Emagi 2025-01-09 13:34:32 -05:00
parent f86add3c05
commit b1b9ab8ed9
3 changed files with 26 additions and 0 deletions

View File

@ -14462,3 +14462,25 @@ int EQ2Emu_lua_GetZonePlayerFirstLevel(lua_State* state) {
lua_interface->SetInt32Value(state, level);
return 1;
}
int EQ2Emu_lua_GetSpellRequiredLevel(lua_State* state) {
if (!lua_interface)
return 0;
LuaSpell* spell = lua_interface->GetCurrentSpell(state);
Spawn* spawn = lua_interface->GetSpawn(state);
lua_interface->ResetFunctionStack(state);
if (!spell) {
lua_interface->LogError("%s: LUA GetSpellRequiredLevel command error: you must use this function in a spellscript!", lua_interface->GetScriptName(state));
return 0;
}
if(!spawn || !spawn->IsPlayer()) {
lua_interface->LogError("%s: LUA GetSpellRequiredLevel command error: spawn is not provided as first argument or is invalid (not player or null)!", lua_interface->GetScriptName(state));
return 0;
}
lua_interface->SetInt32Value(state, spell->spell->GetLevelRequired((Player*)spawn));
return 1;
}

View File

@ -672,4 +672,6 @@ int EQ2Emu_lua_GetZonePlayerMinLevel(lua_State* state);
int EQ2Emu_lua_GetZonePlayerMaxLevel(lua_State* state);
int EQ2Emu_lua_GetZonePlayerAvgLevel(lua_State* state);
int EQ2Emu_lua_GetZonePlayerFirstLevel(lua_State* state);
int EQ2Emu_lua_GetSpellRequiredLevel(lua_State* state);
#endif

View File

@ -1577,6 +1577,8 @@ void LuaInterface::RegisterFunctions(lua_State* state) {
lua_register(state,"GetZonePlayerMaxLevel", EQ2Emu_lua_GetZonePlayerMaxLevel);
lua_register(state,"GetZonePlayerAvgLevel", EQ2Emu_lua_GetZonePlayerAvgLevel);
lua_register(state,"GetZonePlayerFirstLevel", EQ2Emu_lua_GetZonePlayerFirstLevel);
lua_register(state,"GetSpellRequiredLevel", EQ2Emu_lua_GetSpellRequiredLevel);
}
void LuaInterface::LogError(const char* error, ...) {