[GLua] Obtenir l'owner d'une entité externe

  • Initiateur de la discussion Stormz
  • Date de début
  • Initiateur de la discussion
Stormz

Stormz

Bambi
Messages
35
Score réaction
3
Points
35
Bonjour, j'ai fais un programme pour obtenir l'owner d'une entité externe c'est à dire qui est considéré "v" dans une boucle en pairs.

Code:
for _, v in pairs( ents.FindByClass( ent_class ) ) do -- ent_class est définie plus haut en local if IsValid( v ) then if v:CPPIGetOwner():Nick() == ply:Nick() then -- mon code end end
end
Le code ne fonctionne pas melheuresement pourtant dans ma tête le code m'a l'air bon si quelqu'un peut m'aider, bonne journée ;)
 
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
Stormz à dit:
Bonjour, j'ai fais un programme pour obtenir l'owner d'une entité externe c'est à dire qui est considéré "v" dans une boucle en pairs.

Code:
for _, v in pairs( ents.FindByClass( ent_class ) ) do -- ent_class est définie plus haut en local if IsValid( v ) then if v:CPPIGetOwner():Nick() == ply:Nick() then -- mon code end end
end
Le code ne fonctionne pas melheuresement pourtant dans ma tête le code m'a l'air bon si quelqu'un peut m'aider, bonne journée ;)
ply est définit ?
 
  • Initiateur de la discussion
Stormz

Stormz

Bambi
Messages
35
Score réaction
3
Points
35
thepsyca à dit:
ply est définit ?
Oui enfin il est défini en "all" donc ca donne all:Nick() vu que je suis dans un ENT:Think() for _,all in pairs^^
 
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
Compare avec des prints au pire :
Code:
for _, v in pairs( ents.FindByClass( ent_class ) ) do -- ent_class est définie plus haut en local if IsValid( v ) print( "valid ok" )then if v:CPPIGetOwner():Nick() == ply:Nick() then -- mon code else print( v:CPPIGetOwner():Nick() .." != ".. ply:Nick()) end end
end
 
  • Initiateur de la discussion
Stormz

Stormz

Bambi
Messages
35
Score réaction
3
Points
35
thepsyca à dit:
Compare avec des prints au pire :
Code:
for _, v in pairs( ents.FindByClass( ent_class ) ) do -- ent_class est définie plus haut en local if IsValid( v ) print( "valid ok" )then if v:CPPIGetOwner():Nick() == ply:Nick() then -- mon code else print( v:CPPIGetOwner():Nick() .." != ".. ply:Nick()) end end
end
Yep merci j'avais oublié l'astuce des prints
 
  • Initiateur de la discussion
Stormz

Stormz

Bambi
Messages
35
Score réaction
3
Points
35
thepsyca à dit:
Compare avec des prints au pire :
Code:
for _, v in pairs( ents.FindByClass( ent_class ) ) do -- ent_class est définie plus haut en local if IsValid( v ) print( "valid ok" )then if v:CPPIGetOwner():Nick() == ply:Nick() then -- mon code else print( v:CPPIGetOwner():Nick() .." != ".. ply:Nick()) end end
end
Finalement ca me mets un attempt to index a nil value sur cette ligne "if v:CPPIGetOwner():Nick() == all:Nick() then"
 
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
Stormz à dit:
Finalement ca me mets un attempt to index a nil value sur cette ligne "if v:CPPIGetOwner():Nick() == all:Nick() then"
Surement " all:Nick()" t'es sur de ça ?
 
  • Initiateur de la discussion
Stormz

Stormz

Bambi
Messages
35
Score réaction
3
Points
35
thepsyca à dit:
Surement " all:Nick()" t'es sur de ça ?
Oui sur all correspond à -->

Code:
for _,all in pairs(player.GetAll()) do if all:GetPos():Distance( self:GetPos() ) < 70 then if IsValid( all ) && all:IsPlayer() && all:Alive() then if all:Nick() == owner:Nick() then -- owner est défini plus haut
 
Z3k4

Z3k4

Helpeur Divin
Messages
4 495
Score réaction
1 513
Points
580
Stormz à dit:
Oui sur all correspond à -->

Code:
for _,all in pairs(player.GetAll()) do if all:GetPos():Distance( self:GetPos() ) < 70 then if IsValid( all ) && all:IsPlayer() && all:Alive() then if all:Nick() == owner:Nick() then -- owner est défini plus haut
T'as mis un for dans un for dans un think ?
 
  • Initiateur de la discussion
Stormz

Stormz

Bambi
Messages
35
Score réaction
3
Points
35
Z3k4 à dit:
T'as mis un for dans un for dans un think ?
Oui deux boucles dans un Think je sais rip l'opti mais je m'en occupe après de ça je veux deja fonder la base
 
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
Code:
function ENT:Touch(hitEnt) self:SetNWEntity("XXX", hitEnt)
end
function ENT:Think() local ent = self:GetNWEntity("XXX")
local nameply = ent:CPPIGetOwner():Nick()
end
 
Discord d'entraide
Rejoignz-nous sur Discord