add LUA functions for player levels in an instance
This commit is contained in:
parent
c17b4d5588
commit
4e07b26cc7
@ -14414,3 +14414,51 @@ int EQ2Emu_lua_GetChoiceSpawnID(lua_State* state) {
|
|||||||
lua_interface->SetInt32Value(state, spawn_id);
|
lua_interface->SetInt32Value(state, spawn_id);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int EQ2Emu_lua_GetZonePlayerMinLevel(lua_State* state) {
|
||||||
|
ZoneServer* zone = lua_interface->GetZone(state);
|
||||||
|
lua_interface->ResetFunctionStack(state);
|
||||||
|
|
||||||
|
int32 level = 0;
|
||||||
|
if (zone) {
|
||||||
|
level = zone->getGroupraidMinLevel();
|
||||||
|
}
|
||||||
|
lua_interface->SetInt32Value(state, level);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int EQ2Emu_lua_GetZonePlayerMaxLevel(lua_State* state) {
|
||||||
|
ZoneServer* zone = lua_interface->GetZone(state);
|
||||||
|
lua_interface->ResetFunctionStack(state);
|
||||||
|
|
||||||
|
int32 level = 0;
|
||||||
|
if (zone) {
|
||||||
|
level = zone->getGroupraidMaxLevel();
|
||||||
|
}
|
||||||
|
lua_interface->SetInt32Value(state, level);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int EQ2Emu_lua_GetZonePlayerAvgLevel(lua_State* state) {
|
||||||
|
ZoneServer* zone = lua_interface->GetZone(state);
|
||||||
|
lua_interface->ResetFunctionStack(state);
|
||||||
|
|
||||||
|
int32 level = 0;
|
||||||
|
if (zone) {
|
||||||
|
level = zone->getGroupraidAvgLevel();
|
||||||
|
}
|
||||||
|
lua_interface->SetInt32Value(state, level);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int EQ2Emu_lua_GetZonePlayerFirstLevel(lua_State* state) {
|
||||||
|
ZoneServer* zone = lua_interface->GetZone(state);
|
||||||
|
lua_interface->ResetFunctionStack(state);
|
||||||
|
|
||||||
|
int32 level = 0;
|
||||||
|
if (zone) {
|
||||||
|
level = zone->getGroupraidFirstLevel();
|
||||||
|
}
|
||||||
|
lua_interface->SetInt32Value(state, level);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
@ -667,4 +667,9 @@ int EQ2Emu_lua_CreatePersistedRespawn(lua_State* state);
|
|||||||
int EQ2Emu_lua_CreateChoiceWindow(lua_State* state);
|
int EQ2Emu_lua_CreateChoiceWindow(lua_State* state);
|
||||||
int EQ2Emu_lua_ClearChoice(lua_State* state);
|
int EQ2Emu_lua_ClearChoice(lua_State* state);
|
||||||
int EQ2Emu_lua_GetChoiceSpawnID(lua_State* state);
|
int EQ2Emu_lua_GetChoiceSpawnID(lua_State* state);
|
||||||
|
|
||||||
|
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);
|
||||||
#endif
|
#endif
|
@ -1572,6 +1572,11 @@ void LuaInterface::RegisterFunctions(lua_State* state) {
|
|||||||
lua_register(state,"CreateChoiceWindow", EQ2Emu_lua_CreateChoiceWindow);
|
lua_register(state,"CreateChoiceWindow", EQ2Emu_lua_CreateChoiceWindow);
|
||||||
lua_register(state,"ClearChoice", EQ2Emu_lua_ClearChoice);
|
lua_register(state,"ClearChoice", EQ2Emu_lua_ClearChoice);
|
||||||
lua_register(state,"GetChoiceSpawnID", EQ2Emu_lua_GetChoiceSpawnID);
|
lua_register(state,"GetChoiceSpawnID", EQ2Emu_lua_GetChoiceSpawnID);
|
||||||
|
|
||||||
|
lua_register(state,"GetZonePlayerMinLevel", EQ2Emu_lua_GetZonePlayerMinLevel);
|
||||||
|
lua_register(state,"GetZonePlayerMaxLevel", EQ2Emu_lua_GetZonePlayerMaxLevel);
|
||||||
|
lua_register(state,"GetZonePlayerAvgLevel", EQ2Emu_lua_GetZonePlayerAvgLevel);
|
||||||
|
lua_register(state,"GetZonePlayerFirstLevel", EQ2Emu_lua_GetZonePlayerFirstLevel);
|
||||||
}
|
}
|
||||||
|
|
||||||
void LuaInterface::LogError(const char* error, ...) {
|
void LuaInterface::LogError(const char* error, ...) {
|
||||||
|
@ -3005,8 +3005,10 @@ void WorldDatabase::LoadZoneInfo(ZoneServer* zone, int32 minLevel, int32 maxLeve
|
|||||||
zone->SetupInstance(CreateNewInstance(zone->GetZoneID(), minLevel, maxLevel, avgLevel, firstLevel));
|
zone->SetupInstance(CreateNewInstance(zone->GetZoneID(), minLevel, maxLevel, avgLevel, firstLevel));
|
||||||
zone->setGroupRaidLevels(minLevel, maxLevel, avgLevel, firstLevel);
|
zone->setGroupRaidLevels(minLevel, maxLevel, avgLevel, firstLevel);
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
zone->SetupInstance(zone->GetInstanceID());
|
zone->SetupInstance(zone->GetInstanceID());
|
||||||
|
LoadZonePlayerLevels(zone);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
zone->SetCanBind(atoul(row[23]));
|
zone->SetCanBind(atoul(row[23]));
|
||||||
zone->SetCanGate(atoul(row[24]));
|
zone->SetCanGate(atoul(row[24]));
|
||||||
@ -3016,6 +3018,18 @@ void WorldDatabase::LoadZoneInfo(ZoneServer* zone, int32 minLevel, int32 maxLeve
|
|||||||
safe_delete_array(escaped);
|
safe_delete_array(escaped);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void WorldDatabase::LoadZonePlayerLevels(ZoneServer* zone) {
|
||||||
|
Query query;
|
||||||
|
int32 ruleset_id;
|
||||||
|
MYSQL_RES* result = query.RunQuery2(Q_SELECT, "SELECT player_minlevel, player_maxlevel, player_avglevel, player_firstlevel FROM instances WHERE id = %u and zone_id = %u", zone->GetInstanceID(), zone->GetZoneID());
|
||||||
|
if (result && mysql_num_rows(result) > 0) {
|
||||||
|
MYSQL_ROW row;
|
||||||
|
row = mysql_fetch_row(result);
|
||||||
|
zone->setGroupRaidLevels(atoul(row[0]), atoul(row[1]), atoul(row[2]), atoul(row[3]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void WorldDatabase::LoadZoneInfo(ZoneInfo* zone_info) {
|
void WorldDatabase::LoadZoneInfo(ZoneInfo* zone_info) {
|
||||||
Query query;
|
Query query;
|
||||||
int32 ruleset_id;
|
int32 ruleset_id;
|
||||||
|
@ -218,6 +218,7 @@ public:
|
|||||||
void LoadCharacterQuestProgress(Client* client);
|
void LoadCharacterQuestProgress(Client* client);
|
||||||
void LoadCharacterFriendsIgnoreList(Player* player);
|
void LoadCharacterFriendsIgnoreList(Player* player);
|
||||||
void LoadZoneInfo(ZoneServer* zone, int32 minLevel=0, int32 maxLevel=0, int32 avgLevel=0, int32 firstLevel=0);
|
void LoadZoneInfo(ZoneServer* zone, int32 minLevel=0, int32 maxLevel=0, int32 avgLevel=0, int32 firstLevel=0);
|
||||||
|
void LoadZonePlayerLevels(ZoneServer* zone);
|
||||||
void LoadZoneInfo(ZoneInfo* zone_info);
|
void LoadZoneInfo(ZoneInfo* zone_info);
|
||||||
int32 GetZoneID(const char* name);
|
int32 GetZoneID(const char* name);
|
||||||
void SaveZoneInfo(int32 zone_id, const char* field, sint32 value);
|
void SaveZoneInfo(int32 zone_id, const char* field, sint32 value);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user