Skip to content

Commit e1ac7e2

Browse files
StrixGpatrikjuvonen
authored andcommitted
Add setPedArmor function for clientside peds (#811)
* Add setPedArmor function for clientside peds * Refactor * Use CClientPed instead of CClientEntity * Hard error
1 parent a914a58 commit e1ac7e2

File tree

4 files changed

+33
-1
lines changed

4 files changed

+33
-1
lines changed

Client/mods/deathmatch/logic/CStaticFunctionDefinitions.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2450,6 +2450,17 @@ bool CStaticFunctionDefinitions::SetPedOnFire(CClientEntity& Entity, bool bOnFir
24502450
return false;
24512451
}
24522452

2453+
bool CStaticFunctionDefinitions::SetPedArmor(CClientPed& Ped, float fArmor)
2454+
{
2455+
if (Ped.IsLocalEntity())
2456+
{
2457+
Ped.SetArmor(fArmor);
2458+
return true;
2459+
}
2460+
2461+
return false;
2462+
}
2463+
24532464
bool CStaticFunctionDefinitions::SetPedOxygenLevel(CClientEntity& Entity, float fOxygen)
24542465
{
24552466
if (IS_PED(&Entity))

Client/mods/deathmatch/logic/CStaticFunctionDefinitions.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,7 @@ class CStaticFunctionDefinitions
189189
static bool RemovePedFromVehicle(CClientPed* pPed);
190190
static bool WarpPedIntoVehicle(CClientPed* pPed, CClientVehicle* pVehicle, unsigned int uiSeat);
191191
static bool SetPedOxygenLevel(CClientEntity& Entity, float fOxygen);
192+
static bool SetPedArmor(CClientPed& Ped, float fArmor);
192193

193194
// Extra Clothes functions
194195
static bool GetBodyPartName(unsigned char ucID, SString& strOutName);

Client/mods/deathmatch/logic/luadefs/CLuaPedDefs.cpp

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ void CLuaPedDefs::LoadFunctions()
8787
{"warpPedIntoVehicle", WarpPedIntoVehicle},
8888
{"removePedFromVehicle", RemovePedFromVehicle},
8989
{"setPedOxygenLevel", SetPedOxygenLevel},
90+
{"setPedArmor", SetPedArmor},
9091
{"givePedWeapon", GivePedWeapon},
9192
{"isPedReloadingWeapon", IsPedReloadingWeapon},
9293
};
@@ -167,6 +168,7 @@ void CLuaPedDefs::AddClass(lua_State* luaVM)
167168
lua_classfunction(luaVM, "setControlState", "setPedControlState");
168169
lua_classfunction(luaVM, "warpIntoVehicle", "warpPedIntoVehicle");
169170
lua_classfunction(luaVM, "setOxygenLevel", "setPedOxygenLevel");
171+
lua_classfunction(luaVM, "setArmor", "setPedArmor");
170172
lua_classfunction(luaVM, "setWeaponSlot", "setPedWeaponSlot");
171173
lua_classfunction(luaVM, "setDoingGangDriveby", "setPedDoingGangDriveby");
172174
lua_classfunction(luaVM, "setFightingStyle", "setPedFightingStyle");
@@ -187,7 +189,7 @@ void CLuaPedDefs::AddClass(lua_State* luaVM)
187189
lua_classvariable(luaVM, "canBeKnockedOffBike", "setPedCanBeKnockedOffBike", "canPedBeKnockedOffBike");
188190
lua_classvariable(luaVM, "hasJetPack", NULL, "doesPedHaveJetPack");
189191
lua_classvariable(luaVM, "jetpack", NULL, "isPedWearingJetpack"); // introduced in 1.5.5-9.13846
190-
lua_classvariable(luaVM, "armor", NULL, "getPedArmor");
192+
lua_classvariable(luaVM, "armor", "setPedArmor", "getPedArmor");
191193
lua_classvariable(luaVM, "fightingStyle", "setPedFightingStyle", "getPedFightingStyle");
192194
lua_classvariable(luaVM, "cameraRotation", "setPedCameraRotation", "getPedCameraRotation");
193195
lua_classvariable(luaVM, "contactElement", NULL, "getPedContactElement");
@@ -2138,6 +2140,23 @@ int CLuaPedDefs::SetPedMoveAnim(lua_State* luaVM)
21382140
return 1;
21392141
}
21402142

2143+
int CLuaPedDefs::SetPedArmor(lua_State* luaVM)
2144+
{
2145+
CClientPed* pPed;
2146+
float fArmor;
2147+
CScriptArgReader argStream(luaVM);
2148+
argStream.ReadUserData(pPed);
2149+
argStream.ReadNumber(fArmor);
2150+
2151+
if (argStream.HasErrors())
2152+
{
2153+
return luaL_error(luaVM, argStream.GetFullErrorMessage());
2154+
}
2155+
2156+
lua_pushboolean(luaVM, CStaticFunctionDefinitions::SetPedArmor(*pPed, fArmor));
2157+
return 1;
2158+
}
2159+
21412160
int CLuaPedDefs::SetPedOxygenLevel(lua_State* luaVM)
21422161
{
21432162
// Verify the argument

Client/mods/deathmatch/logic/luadefs/CLuaPedDefs.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ class CLuaPedDefs : public CLuaDefs
7272
LUA_DECLARE(SetPedAnimationProgress);
7373
LUA_DECLARE(SetPedAnimationSpeed);
7474
LUA_DECLARE(SetPedMoveAnim);
75+
LUA_DECLARE(SetPedArmor);
7576
LUA_DECLARE(SetPedWeaponSlot);
7677
LUA_DECLARE(GivePedWeapon);
7778
LUA_DECLARE(IsPedReloadingWeapon);

0 commit comments

Comments
 (0)