Probleme give health item

Avant toute chose, pensez à vérifier si un topic avec le même problème que le votre n’a pas déjà été créé !

Votre topic doit au minimum contenir les informations suivantes :

Bonjour, bonsoir

● Machine locale: VPS
● Framework utilisé: ESX
● Nom de la ressource : esx_pharmacy

● Quand est-ce que l’erreur apparaît aucune
● bonjour, j’ai un souci avec un give health avec un item, j’aimerais que cet item de que 15 hp

RegisterNetEvent('esx_pharmacy:usePommade')
AddEventHandler('esx_pharmacy:usePommade', function(itemName, hp_regen)
  local ped    = GetPlayerPed(-1)
  local health = GetEntityHealth(ped)
  local max    = GetEntityMaxHealth(ped)

  if health > 0 and health < max then

    TriggerServerEvent('esx_pharmacy:removeItem', itemName)
    ESX.UI.Menu.CloseAll()
    ESX.ShowNotification(_U('use_pommade'))

    health = health + (max / hp_regen)
    if health > max then
      health = max
    end
    SetEntityHealth(ped, health)
  end

Bonjour,

Je ne comprends pas bien le problème, surtout cette parti: “que cet item de que 15 hp” .

a oui désoler, je voulais dire j’amerais que cet item donne que 15 hp/

Ok, je vois dans ce code que la variable hp_regen va déterminer combien de hp à rendre. Il faut donc trouver où est appelé l’event : “esx_pharmacy:usePommade”, je pense que c’est dans un fichier serveur. Ensuite, modifier la valeur pour qu ça ne rendre que 15 hp

voila le code, est je ne vois rien de ce que vous dite.

ESX.RegisterUsableItem(‘pommade’, function(source)
local xPlayers = ESX.GetPlayers()
local hasAmbulance = false

for i = 1, #xPlayers, 1 do
local xPlayer = ESX.GetPlayerFromId(xPlayers[i])
if xPlayer.job.name == ‘ambulance’ then
hasAmbulance = true
break
end
end

if not hasAmbulance then
TriggerClientEvent(‘esx_pharmacy:usePommade’, source, ‘pommade’, 1)
else
TriggerClientEvent(‘esx:showNotification’, source, _U(‘has_ambulance’))
end
end)

mais comme vous le voyer il est déja sur 1.

Le 1 est utiliser dans une division, donc ça met le max à chaque foi. Pour mettre 15 hp donc 15% du max, il faut juste faire un petit calcul simple:

100 / x = 15 => x = 100 / 15 => x = 6.66667

Donc, au lieu de mettre 1 tu mes 6.66667 et ça ajoutera que 15 hp

je vien de le faire sa me rajoute toujours le max hp.

Tu as du mal modifier ou pas sauvegarder car c’est ce qu’il faut faire.

je dois le faire coté client est server ou juste coté serveur ?

Juste dans ton coté serveur, donc remplacer :

TriggerClientEvent(‘esx_pharmacy:usePommade’, source, ‘pommade’, 1)

par

TriggerClientEvent(‘esx_pharmacy:usePommade’, source, ‘pommade’, 6.66667)

donc, c’est bien ce que j’ai fait, sa me donne toujours max hp.

Il doit y avoir un autre problème alors, mais je ne sais pas lequel.