Besoin d'aide pour un ajout de fonction

  • Initiateur de la discussion Thomas Mailler
  • Date de début
  • Initiateur de la discussion
Thomas Mailler

Thomas Mailler

Geek suprême
Messages
657
Score réaction
155
Points
100
Bonjour,
J'apprend en se moment le GLua et je suis aidé par la communauté mTx et par des tutos ytb.
Je commence à comprendre enfin le rôle de ces codes mais j'ai un problème :
Quand j'ai recopié à l'identique le code d'un ytb histoire d'apprendre mais IG quand je le spawn j'obtient sa :

ERREUR :

Code:
[ERROR] lua/entities/testentity/init.lua:9: attempt to call method 'PhisicsInit' (a nil value) 1. unknown - lua/entities/testentity/init.lua:9 2. Spawn - [C]:-1 3. SpawnFunction - gamemodes/base/entities/entities/base_entity/init.lua:70 4. Spawn_SENT - gamemodes/sandbox/gamemode/commands.lua:655 5. unknown - gamemodes/sandbox/gamemode/commands.lua:720 6. unknown - lua/includes/modules/concommand.lua:54
Voilà donc l'entité spawn mais je peut pas la bouger.
Je vous mais les codes de mon entité :

INIT.lua :

Code:
AddCSLuaFile("cl_init.lua")
AddCSLuaFile("shared.lua")
include("shared.lua")
function ENT:Initialize() self:SetModel("models/hunter/blocks/cube025x025x025.mdl") self:PhisicsInit(SOLID_VPHYSICS) self:SetMoveType(MOVETYPE_VPHYSICS) self:SetSolid(SOLID_VPHISICS) self:SetColor(Color(120,255,120)) local phys = self:GetPhisicsObject() if phys:InValid() then phis:Wake() end
end

cl_init.lua :

Code:
include("shared.lua")
function ENT:Draw() self:DrawModel()
end
Shared.lua :

Code:
ENT.Type = "anim"
ENT.Base = "base_gmodentity"
ENT.PrintName = "Test Entity"
ENT.Spawnable = true
Il y aurait un moyen de régler le problème ?
Merci de l'aide
Thomas
 
edouard292

edouard292

Geek suprême
Messages
423
Score réaction
108
Points
150
PhysicsInit(SOLID_VPHYSICS) != PhisicInit :D
 
  • J'aime
Réactions: Thomas Mailler
Vyn

Vyn

Bambi
Messages
16
Score réaction
16
Points
30
Tu as écrit "PhisicsInit" à la place de "PhysicsInit"
 
  • J'aime
Réactions: Thomas Mailler
  • Initiateur de la discussion
Thomas Mailler

Thomas Mailler

Geek suprême
Messages
657
Score réaction
155
Points
100
Merci les gars @Vyn @edouard292
 
  • Initiateur de la discussion
Thomas Mailler

Thomas Mailler

Geek suprême
Messages
657
Score réaction
155
Points
100
UP !
J'ai un nouveau problème je voudrais mettre que quand je fait utiliser (e) sur l'entité sa me donne de la vie

LE CODE :
Code:
function ENT:Use(a , c) c:SetHealth(c:SetHealth() + 1337)
end
L'ERREUR QUE SA FAIT :
Code:
[ERROR] lua/entities/testentity/init.lua:26: bad argument #1 to 'SetHealth' (number expected, got no value) 1. SetHealth - [C]:-1 2. unknown - lua/entities/testentity/init.lua:26
[ERROR] lua/entities/testentity/init.lua:26: bad argument #1 to 'SetHealth' (number expected, got no value) 1. SetHealth - [C]:-1 2. unknown - lua/entities/testentity/init.lua:26
[ERROR] lua/entities/testentity/init.lua:26: bad argument #1 to 'SetHealth' (number expected, got no value) 1. SetHealth - [C]:-1 2. unknown - lua/entities/testentity/init.lua:26
[ERROR] lua/entities/testentity/init.lua:26: bad argument #1 to 'SetHealth' (number expected, got no value) 1. SetHealth - [C]:-1 2. unknown - lua/entities/testentity/init.lua:26
[ERROR] lua/entities/testentity/init.lua:26: bad argument #1 to 'SetHealth' (number expected, got no value) 1. SetHealth - [C]:-1 2. unknown - lua/entities/testentity/init.lua:26
[ERROR] lua/entities/testentity/init.lua:26: bad argument #1 to 'SetHealth' (number expected, got no value) 1. SetHealth - [C]:-1 2. unknown - lua/entities/testentity/init.lua:26
[ERROR] lua/entities/testentity/init.lua:26: bad argument #1 to 'SetHealth' (number expected, got no value) 1. SetHealth - [C]:-1 2. unknown - lua/entities/testentity/init.lua:26
[ERROR] lua/entities/testentity/init.lua:26: bad argument #1 to 'SetHealth' (number expected, got no value) 1. SetHealth - [C]:-1 2. unknown - lua/entities/testentity/init.lua:26
[ERROR] lua/entities/testentity/init.lua:26: bad argument #1 to 'SetHealth' (number expected, got no value) 1. SetHealth - [C]:-1 2. unknown - lua/entities/testentity/init.lua:26
Merci d'avance
 
Vyn

Vyn

Bambi
Messages
16
Score réaction
16
Points
30
Tu y es presque, la fonction "SetHealth" prend en argument la valeur a laquelle la vie doit être mise:
Quand tu fais "c:SetHealth(c:SetHealth() + 1337)", le deuxième "SetHealth" (en rouge) attend que tu lui donne une valeur dans les parenthèses, ce qui te donne l'erreur que tu as.
Si tu veux ajouter 1337 points de vie au joueur, tu dois récupérer sa vie actuelle avec la fonction "Health" et non "SetHealth", ce qui te donne:
Code:
c:SetHealth(c:Health() + 1337)
Tu peux aller voir ces liens pour mieux comprendre (si tu comprends l'anglais):
http://wiki.garrysmod.com/page/Entity/SetHealth
http://wiki.garrysmod.com/page/Entity/Health

Fait attention à la vie maximum que tu as défini aussi:
http://wiki.garrysmod.com/page/Entity/GetMaxHealth
 
Dernière édition:
  • Initiateur de la discussion
Thomas Mailler

Thomas Mailler

Geek suprême
Messages
657
Score réaction
155
Points
100
Vyn à dit:
Tu y es presque, la fonction "SetHealt" prend en argument la valeur a laquelle la vie doit être mise:
Quand tu fait "c:SetHealth(c:SetHealth() + 1337)", le deuxième "SetHealt" (en rouge) attend que tu lui donne une valeur dans les parenthèses, ce qui te donne l'erreur que tu as.
Si tu veux ajouter 1337 points de vie au joueur, tu dois récupérer sa vie actuelle avec la fonction "Healt" et non "SetHealt", ce qui te donne:
c:SetHealth(c:Health() + 1337)

Tu peux aller voir ces liens pour mieux comprendre (si tu comprends l'anglais):
http://wiki.garrysmod.com/page/Entity/SetHealth
http://wiki.garrysmod.com/page/Entity/Health

Fait attention a la vie maximum que tu as définit aussi:
http://wiki.garrysmod.com/page/Entity/GetMaxHealth
Oui je comprend l'anglais mais je fais vite fait et je remarque pas les erreur heuresement tu es la ;)
 
  • Initiateur de la discussion
Thomas Mailler

Thomas Mailler

Geek suprême
Messages
657
Score réaction
155
Points
100
Bonjour :
je suis entrain de dev en se moment un npc medecin qui redonnerais de la vie mais quand je fais utiliser "e" sa me donne la masse de vie .
Ne me sorter pas de mettre 100 au lieu de 1300 car ceci n'est pas mon problème
Se que je voudrais c'est que je puisse mettre une limite à 100 c'est à dire que quand je j'arrive à 100 de vie le npc ne me donne plus de vie
CODE A MODIFIER :
Code:
function ENT:Use(a , c) c:SetHealth(c:SetHealth() + 100)
end
 
Vyn

Vyn

Bambi
Messages
16
Score réaction
16
Points
30
1: Tu as laissé le deuxième "SetHealth", ton code te feras une erreur.
2: Tu peux récupérer la vie maximum d'un joueur avec la fonction "GetMaxHealth" que je t'ai donné précédemment (http://wiki.garrysmod.com/page/Entity/GetMaxHealth).

Donc si tu veux juste qu'il regagne toute sa vie:
Code:
c:SetHealth(c:GetMaxHealth())
Si tu veux vraiment bloquer à 100 tu mets une condition.
 
  • Initiateur de la discussion
Thomas Mailler

Thomas Mailler

Geek suprême
Messages
657
Score réaction
155
Points
100
Vyn à dit:
1: Tu as laissé le deuxième "SetHealth", ton code te feras une erreur.
2: Tu peux récupérer la vie maximum d'un joueur avec la fonction "GetMaxHealth" que je t'ai donné précédemment (http://wiki.garrysmod.com/page/Entity/GetMaxHealth).

Donc si tu veux juste qu'il regagne toute sa vie:
Code:
c:SetHealth(c:GetMaxHealth())
Si tu veux vraiment bloquer à 100 tu mets une condition.
Ouait dsl mais tkt j'ai corrigé j'ai juste repris l'autre code et pour les conditions je vais vois sa merci
 
  • Initiateur de la discussion
Thomas Mailler

Thomas Mailler

Geek suprême
Messages
657
Score réaction
155
Points
100
J'ai pas compris je doit mettre

Code:
function ENT:Use(a , c)
print( Entity( 1 ):GetMaxHealth() )
end
Ou sa :

Code:
function ENT:Use(a , c) c:SetHealth(c:GetMaxHealth() + 100)
end
ou sa

Code:
function ENT:Use(a , c) print( Entity( 1 ):GetMaxHealth() ) c:SetHealth(c:GetMaxHealth() + 100)
end
 
Vyn

Vyn

Bambi
Messages
16
Score réaction
16
Points
30
Si tu fais: c:GetMaxHealth(), tu obtiens la vie max que le joueur peut avoir (normalement)
Si tu fais c:SetHealth(100), tu mets la vie du joueur à 100

Donc si tu fais c:SetHealth(c:GetMaxHealth()), tu mets la vie du joueur à la vie max qu'il peut avoir (donc tu le soignes totalement)
 
Dernière édition:
  • J'aime
Réactions: Steinman78
brh450

brh450

Geek suprême
Messages
611
Score réaction
180
Points
120
Thomas Mailler à dit:
J'ai pas compris je doit mettre

Code:
function ENT:Use(a , c)
print( Entity( 1 ):GetMaxHealth() )
end
Ou sa :

Code:
function ENT:Use(a , c) c:SetHealth(c:GetMaxHealth() + 100)
end
ou sa

Code:
function ENT:Use(a , c) print( Entity( 1 ):GetMaxHealth() ) c:SetHealth(c:GetMaxHealth() + 100)
end
Pour commencer, tu dois comprendre que les exemples sur le wiki sont la a titre ... D'exemple ....
Il ne faut donc pas copier le code comme ça.
Code:
print( Entity( 1 ):GetMaxHealth() )
ça veut dire affiche dans la console la vie maximale du joueur 1 hors ce n'est pas ce que tu cherches.

Pour commencer n'utilise pas de simple lettre pour tes fonctions si tu veux comprendre.
Code:
function ENT:Use(a , Caller) -- Le "c" dans ton code représente le "Caller" soit la personne qui Utilise l'entitée Caller:SetHealth(Caller:GetMaxHealth()) -- Pas besoins de mettre le +100 car le "Caller:GetMaxHealth()" permet de 'voir' la vie maximale du joueurs et le "Caller:SetHealth()" permet de lui donner un nombre de vie précis .
-- Les deux Combinés servent a donner au joueurs la vie maximale qu'il peut avoir
end
J’espère que ça t’aidera ;)
 
  • J'aime
Réactions: Thomas Mailler et Vyn
  • Initiateur de la discussion
Thomas Mailler

Thomas Mailler

Geek suprême
Messages
657
Score réaction
155
Points
100
UP :
Bonjour,
je suis entrain de dev un tout nouveau printer en lua mais j'ai une erreur qui s'affiche :
Code:
[ERROR] lua/entities/printer/init.lua:18: attempt to call method 'InValid' (a nil value) 1. unknown - lua/entities/printer/init.lua:18
Le code à modifier :
Ligne 18 :
Code:
 if phys:InValid() then
 
KarboM09

KarboM09

Geek suprême
Messages
229
Score réaction
40
Points
130
brh450 à dit:
Pour commencer, tu dois comprendre que les exemples sur le wiki sont la a titre ... D'exemple ....
Il ne faut donc pas copier le code comme ça.
Code:
print( Entity( 1 ):GetMaxHealth() )
ça veut dire affiche dans la console la vie maximale du joueur 1 hors ce n'est pas ce que tu cherches.

Pour commencer n'utilise pas de simple lettre pour tes fonctions si tu veux comprendre.
Code:
function ENT:Use(a , Caller) -- Le "c" dans ton code représente le "Caller" soit la personne qui Utilise l'entitée Caller:SetHealth(Caller:GetMaxHealth()) -- Pas besoins de mettre le +100 car le "Caller:GetMaxHealth()" permet de 'voir' la vie maximale du joueurs et le "Caller:SetHealth()" permet de lui donner un nombre de vie précis .
-- Les deux Combinés servent a donner au joueurs la vie maximale qu'il peut avoir
end
J’espère que ça t’aidera ;)
Sympa sa ma aider aussi ;)
 
  • J'aime
Réactions: brh450
brh450

brh450

Geek suprême
Messages
611
Score réaction
180
Points
120
Thomas Mailler à dit:
UP :
Bonjour,
je suis entrain de dev un tout nouveau printer en lua mais j'ai une erreur qui s'affiche :
Code:
[ERROR] lua/entities/printer/init.lua:18: attempt to call method 'InValid' (a nil value) 1. unknown - lua/entities/printer/init.lua:18
Le code à modifier :
Ligne 18 :
Code:
 if phys:InValid() then
InValid() ne veut rien dire ^^
Tu voulais sûrement mettre :IsValid() ??
 
  • J'aime
Réactions: Thomas Mailler
  • Initiateur de la discussion
Thomas Mailler

Thomas Mailler

Geek suprême
Messages
657
Score réaction
155
Points
100
brh450 à dit:
InValid() ne veut rien dire ^^
Tu voulais sûrement mettre :IsValid() ??
Ah oui merci j'avais pas vus je suis vraiment crevé heuresement tu es la
 
  • J'aime
Réactions: brh450
Discord d'entraide
Rejoignz-nous sur Discord