Add GetRaidIDByCharID to Perl/Lua.

This commit is contained in:
Alex 2020-03-08 21:11:56 -04:00
parent 2a9248697e
commit cede38f562
6 changed files with 48 additions and 0 deletions

View File

@ -2180,6 +2180,22 @@ uint32 Database::GetGroupIDByCharID(uint32 character_id)
return atoi(row[0]);
}
uint32 Database::GetRaidIDByCharID(uint32 character_id) {
std::string query = fmt::format(
SQL(
SELECT raidid
FROM raid_members
WHERE charid = '{}'
),
character_id
);
auto results = QueryDatabase(query);
for (auto row = results.begin(); row != results.end(); ++row) {
return atoi(row[0]);
}
return 0;
}
/**
* @param log_settings
*/

View File

@ -134,6 +134,7 @@ public:
uint32 GetCharacterInfo(const char* iName, uint32* oAccID = 0, uint32* oZoneID = 0, uint32* oInstanceID = 0, float* oX = 0, float* oY = 0, float* oZ = 0);
uint32 GetGuildIDByCharID(uint32 char_id);
uint32 GetGroupIDByCharID(uint32 char_id);
uint32 GetRaidIDByCharID(uint32 char_id);
void GetAccountName(uint32 accountid, char* name, uint32* oLSAccountID = 0);
void GetCharName(uint32 char_id, char* name);

View File

@ -3204,6 +3204,23 @@ XS(XS__getgroupidbycharid) {
XSRETURN(1);
}
XS(XS__getraididbycharid);
XS(XS__getraididbycharid) {
dXSARGS;
if (items != 1)
Perl_croak(aTHX_ "Usage: quest::getraididbycharid(uint32 char_id)");
dXSTARG;
int RETVAL;
uint32 char_id = (int) SvUV(ST(0));
RETVAL = quest_manager.getraididbycharid(char_id);
XSprePUSH;
PUSHi((IV)RETVAL);
XSRETURN(1);
}
XS(XS__SetRunning);
XS(XS__SetRunning) {
dXSARGS;
@ -3979,6 +3996,7 @@ EXTERN_C XS(boot_quest) {
newXS(strcpy(buf, "getguildnamebyid"), XS__getguildnamebyid, file);
newXS(strcpy(buf, "getguildidbycharid"), XS__getguildidbycharid, file);
newXS(strcpy(buf, "getgroupidbycharid"), XS__getgroupidbycharid, file);
newXS(strcpy(buf, "getraididbycharid"), XS__getraididbycharid, file);
newXS(strcpy(buf, "getlevel"), XS__getlevel, file);
newXS(strcpy(buf, "getplayerburiedcorpsecount"), XS__getplayerburiedcorpsecount, file);
newXS(strcpy(buf, "getplayercorpsecount"), XS__getplayercorpsecount, file);

View File

@ -866,6 +866,10 @@ int lua_get_group_id_by_char_id(uint32 char_id) {
return database.GetGroupIDByCharID(char_id);
}
int lua_get_raid_id_by_char_id(uint32 char_id) {
return database.GetRaidIDByCharID(char_id);
}
uint32 lua_create_instance(const char *zone, uint32 version, uint32 duration) {
return quest_manager.CreateInstance(zone, version, duration);
}
@ -1738,6 +1742,7 @@ luabind::scope lua_register_general() {
luabind::def("get_guild_name_by_id", &lua_get_guild_name_by_id),
luabind::def("get_guild_id_by_char_id", &lua_get_guild_id_by_char_id),
luabind::def("get_group_id_by_char_id", &lua_get_group_id_by_char_id),
luabind::def("get_raid_id_by_char_id", &lua_get_raid_id_by_char_id),
luabind::def("create_instance", &lua_create_instance),
luabind::def("destroy_instance", &lua_destroy_instance),
luabind::def("update_instance_timer", &lua_update_instance_timer),

View File

@ -2890,6 +2890,13 @@ int QuestManager::getgroupidbycharid(uint32 char_id) {
return 0;
}
int QuestManager::getraididbycharid(uint32 char_id) {
if (char_id > 0) {
return database.GetRaidIDByCharID(char_id);
}
return 0;
}
void QuestManager::SetRunning(bool val)
{
QuestManagerCurrentQuestVars();

View File

@ -253,6 +253,7 @@ public:
const char* getguildnamebyid(int guild_id);
int getguildidbycharid(uint32 char_id);
int getgroupidbycharid(uint32 char_id);
int getraididbycharid(uint32 char_id);
void SetRunning(bool val);
bool IsRunning();
void FlyMode(GravityBehavior flymode);