Modifier un fichier (lua)

  • Initiateur de la discussion
Alex Schultz

Alex Schultz

Geek suprême
Messages
141
Score réaction
14
Points
115
Bonjour à tous, la plupart d'entre vous doit connaître l'addon VJ Base, et bien je voudrais modifier une de ses entités : le Admin health Kit, qui donne 1.000.000 de pv, j'ai changé le fichier pour qu'il donne seulement 100 pv. Le problème c'est que je ne sais pas quoi rajouter pour lui dire de ne pas dépasser par exemple 700 pv, car cette entité se cumule et les joueurs en abusent en absorbant des milliers de pv, si vous avez une idée ce serait génial, voici le fichier en question :

if (!file.Exists("autorun/vj_base_autorun.lua","LUA")) then return end
AddCSLuaFile("shared.lua")
include("shared.lua")


---------------------------------------------------------------------------------------------------------------------------------------------
function ENT:Initialize()
self:SetModel("models/avp3/props/hive_03.mdl")
self:PhysicsInit(SOLID_VPHYSICS)
self:SetMoveType(MOVETYPE_VPHYSICS)
self:SetSolid(SOLID_VPHYSICS)
self:SetUseType(SIMPLE_USE)

local phys = self:GetPhysicsObject()
if phys and phys:IsValid() then
phys:Wake()
end
end
---------------------------------------------------------------------------------------------------------------------------------------------
function ENT:PhysicsCollide(data, physobj)
end
---------------------------------------------------------------------------------------------------------------------------------------------
function ENT:Use(activator, caller)
if activator:IsPlayer() then
self:EmitSound(Sound("npc/vort/health_charge.wav"),70,100)
activator:SetHealth(activator:Health() +100)
activator:PrintMessage(HUD_PRINTTALK, "")
self:Remove()
end
end
---------------------------------------------------------------------------------------------------------------------------------------------
function ENT:OnTakeDamage(dmginfo)
self:GetPhysicsObject():AddVelocity(dmginfo:GetDamageForce() * 0.1)
end


Je suppose qu'il faut rajouter quelque chose après : activator:SetHealth(activator:Health() +100), comme SetMaxHealth = 700, mais déjà essayé ^^
Merci d'avoir pris le temps de lire et encore plus si vous avez la solution :)
 
  • Banni
Esteb.

Esteb.

Esteb's Sheitan
Messages
162
Score réaction
64
Points
160
Donne moi le fichier : shared.lua
Il est possible qu'une variable puisse résoudre ton problème.
 
  • J'aime
Réactions: Giovanni Mikovitch
  • Initiateur de la discussion
Alex Schultz

Alex Schultz

Geek suprême
Messages
141
Score réaction
14
Points
115
Voici le fichier :

if (!file.Exists("autorun/vj_base_autorun.lua","LUA")) then return end

ENT.Base = "base_gmodentity"
ENT.Type = "anim"
ENT.PrintName = "Admin Health Kit"
ENT.Author = "DrVrej"
ENT.Contact = "http://steamcommunity.com/groups/vrejgaming"
ENT.Purpose = "Gives a lot of health when taken."
ENT.Instructions = "Don't change anything."
ENT.Category = "VJ Base"

ENT.Spawnable = true
ENT.AdminOnly = true
---------------------------------------------------------------------------------------------------------------------------------------------
function ENT:Draw()
self:DrawModel()

local ledcolor = Color(0,255,0,255)
local Position = self:GetPos() + self:GetForward()*7 + self:GetUp()*6 + self:GetRight()*2
local Angles = self:GetAngles()
Angles:RotateAroundAxis(Angles:Right(), Vector(90, 90, 90).x)
Angles:RotateAroundAxis(Angles:Up(), Vector(90, 90, 90).y)
Angles:RotateAroundAxis(Angles:Forward(), Vector(90, 90, 90).z)
cam.Start3D2D(Position, Angles, 0.07)
draw.SimpleText("Admin Health Kit", "DermaLarge", 31, -22, ledcolor, 1, 1)
cam.End3D2D()
end

 
  • Banni
Esteb.

Esteb.

Esteb's Sheitan
Messages
162
Score réaction
64
Points
160
Alex Schultz à dit:
Voici le fichier :

if (!file.Exists("autorun/vj_base_autorun.lua","LUA")) then return end

ENT.Base = "base_gmodentity"
ENT.Type = "anim"
ENT.PrintName = "Admin Health Kit"
ENT.Author = "DrVrej"
ENT.Contact = "http://steamcommunity.com/groups/vrejgaming"
ENT.Purpose = "Gives a lot of health when taken."
ENT.Instructions = "Don't change anything."
ENT.Category = "VJ Base"

ENT.Spawnable = true
ENT.AdminOnly = true
---------------------------------------------------------------------------------------------------------------------------------------------
function ENT:Draw()
self:DrawModel()

local ledcolor = Color(0,255,0,255)
local Position = self:GetPos() + self:GetForward()*7 + self:GetUp()*6 + self:GetRight()*2
local Angles = self:GetAngles()
Angles:RotateAroundAxis(Angles:Right(), Vector(90, 90, 90).x)
Angles:RotateAroundAxis(Angles:Up(), Vector(90, 90, 90).y)
Angles:RotateAroundAxis(Angles:Forward(), Vector(90, 90, 90).z)
cam.Start3D2D(Position, Angles, 0.07)
draw.SimpleText("Admin Health Kit", "DermaLarge", 31, -22, ledcolor, 1, 1)
cam.End3D2D()
end

Franchement, Très étrange j'ai pas trop de temps sorry <3 Bonne chance
 
  • J'aime
Réactions: Giovanni Mikovitch
  • Banni
Esteb.

Esteb.

Esteb's Sheitan
Messages
162
Score réaction
64
Points
160
Fait un mini addons qui fait qu'on ne puisse dépasser les 100hp.
 
  • J'aime
Réactions: Giovanni Mikovitch
Z3k4

Z3k4

Helpeur Divin
Messages
4 495
Score réaction
1 513
Points
580
Le SetMaxHealth permet juste de définir le nombre maximum de pv que tu peux atteindre normalement, mais tu peux clairement le contourner en utilisant un SetHealth(), pour faire ce que tu veux faire, tu dois ajouter une conditon :

Code:
if !activator:Health() + 100 > 700 then
activator:SetHealth(activator:Health() + 100)
end
 
  • J'aime
Réactions: NoaGamingFR
  • Initiateur de la discussion
Alex Schultz

Alex Schultz

Geek suprême
Messages
141
Score réaction
14
Points
115
Merci de vos réponses mais
if !activator:Health() + 100 > 700 then
activator:SetHealth(activator:Health() + 100)
end
ne fonctionne pas hélas :(
 
NoaGamingFR

NoaGamingFR

Wait :)
Messages
3 650
Score réaction
625
Points
340
Alex Schultz à dit:
Merci de vos réponses mais
if !activator:Health() + 100 > 700 then
activator:SetHealth(activator:Health() + 100)
end
ne fonctionne pas hélas :(
Tu l'as mit ou ont peut avoir le code ou tu l'as inséré ?
 
  • Initiateur de la discussion
Alex Schultz

Alex Schultz

Geek suprême
Messages
141
Score réaction
14
Points
115
Je l'ai mis comme ça :

function ENT:Use(activator, caller)
if activator:IsPlayer() then
self:EmitSound(Sound("npc/vort/health_charge.wav"),70,100)
activator:SetHealth(activator:Health() +100)
activator:PrintMessage(HUD_PRINTTALK, "Le mucus vous régénère!")
self:Remove()
end
if !activator:Health() + 100 > 700 then
activator:SetHealth(activator:Health() + 100)
end
end
 
NoaGamingFR

NoaGamingFR

Wait :)
Messages
3 650
Score réaction
625
Points
340
Alex Schultz à dit:
Je l'ai mis comme ça :

function ENT:Use(activator, caller)
if activator:IsPlayer() then
self:EmitSound(Sound("npc/vort/health_charge.wav"),70,100)
activator:SetHealth(activator:Health() +100)
activator:PrintMessage(HUD_PRINTTALK, "Le mucus vous régénère!")
self:Remove()
end
if !activator:Health() + 100 > 700 then
activator:SetHealth(activator:Health() + 100)
end
end
Il faut faire :

Code:
function ENT:Use(activator, caller) if activator:IsPlayer() then if !activator:Health() + 100 < 700 then activator:SetHealth(activator:Health() + 100) self:EmitSound(Sound("npc/vort/health_charge.wav"),70,100) activator:SetHealth(activator:Health() +100) activator:PrintMessage(HUD_PRINTTALK, "Le mucus vous régénère!") self:Remove() end end
end
J'suis nul mais je pense que ce soit cela, car il as mit que si c'est plus haut que 700, j'ai mit en dessous, à test.
 
  • Initiateur de la discussion
Alex Schultz

Alex Schultz

Geek suprême
Messages
141
Score réaction
14
Points
115
Je viens de mettre ce que tu as min, mais maintenant je ne peux pas ramasser l'entité :/
 
NoaGamingFR

NoaGamingFR

Wait :)
Messages
3 650
Score réaction
625
Points
340
Alex Schultz à dit:
Je viens de mettre ce que tu as min, mais maintenant je ne peux pas ramasser l'entité :/
J'regarde après.
 
Z3k4

Z3k4

Helpeur Divin
Messages
4 495
Score réaction
1 513
Points
580
Met "if not activator:Health() + 100 > 700 then"
 
  • J'aime
Réactions: Frite's Corp.
Discord d'entraide
Rejoignz-nous sur Discord