@@ -235,6 +235,73 @@ function Adjustments:Multipliers()
235235 end )
236236end
237237
238+ function Adjustments :ApplyPlayerStats ()
239+ if not Config .PlayerStatsByGender .enabled then return end
240+
241+ local gender = self :GetPlayerGender ()
242+ if not gender then return end
243+
244+ local stats = Config .PlayerStatsByGender [gender ]
245+ if not stats then return end
246+
247+
248+ SetPlayerMaxStamina (ESX .playerId , 100.0 )
249+ RestorePlayerStamina (ESX .playerId , 100.0 )
250+ SetRunSprintMultiplierForPlayer (ESX .playerId , stats .stamina )
251+ SetSwimMultiplierForPlayer (ESX .playerId , stats .stamina )
252+
253+ SetPedMoveRateOverride (ESX .PlayerData .ped , stats .stamina )
254+
255+ SetPlayerMeleeWeaponDamageModifier (ESX .playerId , stats .strength )
256+ SetPlayerWeaponDamageModifier (ESX .playerId , stats .strength )
257+ end
258+
259+ function Adjustments :GetPlayerGender ()
260+ if not ESX .PlayerLoaded then return end
261+
262+ if Config .PlayerStatsByGender .useCharacterData then
263+ if ESX .PlayerData .sex then
264+ return ESX .PlayerData .sex == ' m' and ' male' or ' female'
265+ end
266+
267+ if ESX .PlayerData .gender then
268+ return ESX .PlayerData .gender == 0 and ' male' or ' female'
269+ end
270+ else
271+ local model = GetEntityModel (ESX .PlayerData .ped )
272+ if model == ` mp_m_freemode_01` then
273+ return ' male'
274+ elseif model == ` mp_f_freemode_01` then
275+ return ' female'
276+ end
277+
278+ if IsPedMale (ESX .PlayerData .ped ) then
279+ return ' male'
280+ else
281+ return ' female'
282+ end
283+ end
284+
285+ return nil
286+ end
287+
288+ function Adjustments :RefreshPlayerStats ()
289+ if not Config .PlayerStatsByGender .enabled then return end
290+
291+ local gender = self :GetPlayerGender ()
292+ if not gender then return end
293+
294+ local stats = Config .PlayerStatsByGender [gender ]
295+ if not stats then return end
296+
297+ SetRunSprintMultiplierForPlayer (ESX .playerId , stats .stamina )
298+ SetSwimMultiplierForPlayer (ESX .playerId , stats .stamina )
299+ SetPedMoveRateOverride (ESX .PlayerData .ped , stats .stamina )
300+
301+ SetPlayerMeleeWeaponDamageModifier (ESX .playerId , stats .strength )
302+ SetPlayerWeaponDamageModifier (ESX .playerId , stats .strength )
303+ end
304+
238305function Adjustments :Load ()
239306 self :RemoveHudComponents ()
240307 self :DisableAimAssist ()
@@ -250,4 +317,16 @@ function Adjustments:Load()
250317 self :WantedLevel ()
251318 self :DisableRadio ()
252319 self :Multipliers ()
320+
321+ AddEventHandler (' esx:playerLoaded' , function (xPlayer , isNew , skin )
322+ self :ApplyPlayerStats ()
323+ end )
324+
325+ AddEventHandler (' skinchanger:modelLoaded' , function ()
326+ self :RefreshPlayerStats ()
327+ end )
328+
329+ AddEventHandler (' esx:onPlayerSpawn' , function ()
330+ self :RefreshPlayerStats ()
331+ end )
253332end
0 commit comments