From 38a84cae935bde9d9823fb3678738d7be929698e Mon Sep 17 00:00:00 2001 From: Gangsta <48196367+GangstaEQ@users.noreply.github.com> Date: Sun, 1 Aug 2021 18:58:05 -0700 Subject: [PATCH] [Quest API] Sit method (#1449) * quest api sit method * alphabetical * Fix * fix again * Ok real fix unprivated * Add Lua Export Co-authored-by: ProducerZekServer Co-authored-by: Akkadius --- zone/client.cpp | 4 ++++ zone/client.h | 1 + zone/lua_client.cpp | 8 +++++++- zone/lua_client.h | 3 ++- zone/perl_client.cpp | 14 ++++++++++++++ 5 files changed, 28 insertions(+), 2 deletions(-) diff --git a/zone/client.cpp b/zone/client.cpp index ea2ea6fdd..29ab42c9e 100644 --- a/zone/client.cpp +++ b/zone/client.cpp @@ -2010,6 +2010,10 @@ void Client::Stand() { SetAppearance(eaStanding, false); } +void Client::Sit() { + SetAppearance(eaSitting, false); +} + void Client::ChangeLastName(const char* in_lastname) { memset(m_pp.last_name, 0, sizeof(m_pp.last_name)); strn0cpy(m_pp.last_name, in_lastname, sizeof(m_pp.last_name)); diff --git a/zone/client.h b/zone/client.h index c20c9057c..1da699d9b 100644 --- a/zone/client.h +++ b/zone/client.h @@ -394,6 +394,7 @@ public: void Duck(); void Stand(); + void Sit(); virtual void SetMaxHP(); int32 LevelRegen(); diff --git a/zone/lua_client.cpp b/zone/lua_client.cpp index 29699aeff..10f0e372c 100644 --- a/zone/lua_client.cpp +++ b/zone/lua_client.cpp @@ -94,6 +94,11 @@ void Lua_Client::Duck() { self->Duck(); } +void Lua_Client::Sit() { + Lua_Safe_Call_Void(); + self->Sit(); +} + void Lua_Client::DyeArmorBySlot(uint8 slot, uint8 red, uint8 green, uint8 blue) { Lua_Safe_Call_Void(); self->DyeArmorBySlot(slot, red, green, blue); @@ -2080,7 +2085,7 @@ void Lua_Client::SetAAEXPModifier(uint32 zone_id, double aa_modifier) { void Lua_Client::SetEXPModifier(uint32 zone_id, double exp_modifier) { Lua_Safe_Call_Void(); - self->SetEXPModifier(zone_id, exp_modifier); + self->SetEXPModifier(zone_id, exp_modifier); } void Lua_Client::AddLDoNLoss(uint32 theme_id) { @@ -2181,6 +2186,7 @@ luabind::scope lua_register_client() { .def("SetAFK", (void(Lua_Client::*)(uint8))&Lua_Client::SetAFK) .def("GetAnon", (int(Lua_Client::*)(void))&Lua_Client::GetAnon) .def("SetAnon", (void(Lua_Client::*)(uint8))&Lua_Client::SetAnon) + .def("Sit", (void(Lua_Client::*)(void))&Lua_Client::Sit) .def("Duck", (void(Lua_Client::*)(void))&Lua_Client::Duck) .def("DyeArmorBySlot", (void(Lua_Client::*)(uint8,uint8,uint8,uint8))&Lua_Client::DyeArmorBySlot) .def("DyeArmorBySlot", (void(Lua_Client::*)(uint8,uint8,uint8,uint8,uint8))&Lua_Client::DyeArmorBySlot) diff --git a/zone/lua_client.h b/zone/lua_client.h index 1d44640e7..65219af22 100644 --- a/zone/lua_client.h +++ b/zone/lua_client.h @@ -31,6 +31,7 @@ public: } void SendSound(); + void Sit(); void Save(); void Save(int commit_now); void SaveBackup(); @@ -56,7 +57,7 @@ public: bool GetGM(); void SetBaseClass(int v); void SetBaseRace(int v); - void SetBaseGender(int v); + void SetBaseGender(int v); int GetClassBitmask(); int GetRaceBitmask(); int GetBaseFace(); diff --git a/zone/perl_client.cpp b/zone/perl_client.cpp index 1fc989bf7..e1aab97fc 100644 --- a/zone/perl_client.cpp +++ b/zone/perl_client.cpp @@ -2111,6 +2111,19 @@ XS(XS_Client_IsStanding) XSRETURN(1); } +XS(XS_Client_Sit); +XS(XS_Client_Sit) { + dXSARGS; + if (items != 1) + Perl_croak(aTHX_ "Usage: Client::Sit(THIS)"); + { + Client *THIS; + VALIDATE_THIS_IS_CLIENT; + THIS->Sit(); + } + XSRETURN_EMPTY; +} + XS(XS_Client_IsSitting); /* prototype to pass -Wmissing-prototypes */ XS(XS_Client_IsSitting) { dXSARGS; @@ -5702,6 +5715,7 @@ XS(boot_Client) { newXSproto(strcpy(buf, "SetTitleSuffix"), XS_Client_SetTitleSuffix, file, "$$;$"); newXSproto(strcpy(buf, "SetZoneFlag"), XS_Client_SetZoneFlag, file, "$$"); newXSproto(strcpy(buf, "SilentMessage"), XS_Client_SilentMessage, file, "$$"); + newXSproto(strcpy(buf, "Sit"), XS_Client_Sit, file, "$"); newXSproto(strcpy(buf, "SlotConvert2"), XS_Client_SlotConvert2, file, "$$"); newXSproto(strcpy(buf, "Stand"), XS_Client_Stand, file, "$"); newXSproto(strcpy(buf, "SummonItem"), XS_Client_SummonItem, file, "$$;$$$$$$$$");