Problème avec mon entité

  • Initiateur de la discussion
Legende

Legende

Geek suprême
Messages
332
Score réaction
75
Points
130
Salut :) , j'ai un problème avec mon entité et je n'ai pas trouvé la solution . Je vous explique :

- J'ai fait une caisse et dans son init.lua j'ai créé une table qui contient les entités que la caisse stock mais le problème c'est que quand il y'a 2 caisses sur la map et que je mets dans la première caisse X et dans la deuxième caisse je mets Z et quand j'ouvre le menu qui doit afficher normalement les entités stocker dans la première caisse elle contient X et Z (qui est normalement dans la deuxième caisse) pareille quand j'ouvre la deuxième caisse elle contient Z et X (qui lui doit être normalement dans la deuxième) .

Je voudrais savoir comment faire pour que la table affecte seulement une caisse et n'additionne pas le contenu des autres caisses qui sont sur la map.

PS: J'ai mis des couleurs pour essayer de rendre mes explications plus compréhensibles .
 
ZarosOVH

ZarosOVH

Modérateur
Membre du Staff
Messages
6 527
Score réaction
5 488
Points
1 295
@Makss @Slawer @slownls @RazzMo (et les autres)


Après @Legende ils arriverons surement à t'aider si tu leur montre le code que tu as fais ;)
 
RazzMo

RazzMo

Geek suprême
Messages
314
Score réaction
192
Points
120
Bonjour,

Est-il possible de voir ton code ?

Cordialement,
Raz'
 
Makss

Makss

Psychopathe
Messages
830
Score réaction
990
Points
310
Tu peux utiliser une table avec comme clé l'entité de la caisse et en value les items, exemple :
Code:
local tableCaisses = {	[entity_caisse] = {	Z,	X	}
}
EDIT : La façon à @RazzMo est meilleure
 
Dernière édition:
Feytone

Feytone

Chuck Norris
Messages
4 741
Score réaction
1 301
Points
600
Tu crées un id, key de ta table, pour chaque caisse non ?
 
RazzMo

RazzMo

Geek suprême
Messages
314
Score réaction
192
Points
120
Makss à dit:
Tu peux utiliser une table avec comme clé l'entité de la caisse et en value les items, exemple :
Code:
local tableCaisses = { [entity_caisse] = { Z, X }
}
Regarde c'est pas plus compliquer que sa

function ENT:Initialize()
self.caisse = {
z,
x
}
end

et quand tu ajoute quelque chose bah tu fais

self.caisse[ x ]
 
  • J'aime
Réactions: Makss
Feytone

Feytone

Chuck Norris
Messages
4 741
Score réaction
1 301
Points
600
RazzMo à dit:
Regarde c'est pas plus compliquer que sa

function ENT:Initialize()
self.caisse = {
z,
x
}
end

et quand tu ajoute quelque chose bah tu fais

self.caisse[ x ]
Du coup pas besoin de x,z vu qu'on différence maintenant les caisses par le self
 
RazzMo

RazzMo

Geek suprême
Messages
314
Score réaction
192
Points
120
Feytone à dit:
Du coup pas besoin de x,z vu qu'on différence maintenant les caisses par le self
J'ai pas réellement compris le délire mes en gros avec le self sa va faire en sorte que les deux table de chaque entités sois différencier.
 
Feytone

Feytone

Chuck Norris
Messages
4 741
Score réaction
1 301
Points
600
RazzMo à dit:
J'ai pas réellement compris le délire mes en gros avec le self sa va faire en sorte que les deux table de chaque entités sois différencier.
Oui non mais lui différenciait ses caisses avec x et z (bref une inconnue) donc tu peux retirer x et y.
 
Makss

Makss

Psychopathe
Messages
830
Score réaction
990
Points
310
Feytone à dit:
Oui non mais lui différenciait ses caisses avec x et z (bref une inconnue) donc tu peux retirer x et y.
Non ;
dans une caisse il mettais X et dans l'autre il mettais Z, le problème est que les deux caisses contiennent X et Z alors qu'une devrais contenir X et l'autre Z
 
Feytone

Feytone

Chuck Norris
Messages
4 741
Score réaction
1 301
Points
600
Makss à dit:
Non ;
dans une caisse il mettais X et dans l'autre il mettais Z, le problème est que les deux caisses contiennent X et Z alors qu'une devrais contenir X et l'autre Z
Annnh. J'avais ap compris
 
  • Initiateur de la discussion
Legende

Legende

Geek suprême
Messages
332
Score réaction
75
Points
130
Voila une partie du code

AddCSLuaFile( "cl_init.lua" )
AddCSLuaFile( "shared.lua" )
include('shared.lua')

local cltouch = 0
local contenu = {}

function ENT:Initialize()
self:SetModel("models/props_junk/wood_crate001a.mdl")
self:physicsInit( SOLID_VPHYSICS )
self:SetMoveType( MOVETYPE_VPHYSICS )
self:SetSolid( SOLID_VPHYSICS )
self:SetUseType( SIMPLE_USE )

self:SetLife(0)
self:SetSize(0)
end


function ENT:StartTouch(e)

if not IsValid(e) then return end

if (table.HasValue(ConfigCrate.StockageItems,e:GetClass())) then
if CurTime() < cltouch then return end
if self:GetSize() < ConfigCrate.StockageSmall then
cltouch = CurTime() + 1
table.insert(contenu,e:GetClass())
self:SetSize(self:GetSize() + 1)
e:Remove()
end
end
end
 
RazzMo

RazzMo

Geek suprême
Messages
314
Score réaction
192
Points
120
Bonjour,

Si j'ai bien compris ta table c'est contenu, c'est un table global donc se qu'il faut tu face c'est,

function ENT:Initialize()
self:SetModel("models/props_junk/wood_crate001a.mdl")
self:physicsInit( SOLID_VPHYSICS )
self:SetMoveType( MOVETYPE_VPHYSICS )
self:SetSolid( SOLID_VPHYSICS )
self:SetUseType( SIMPLE_USE )

self:SetLife(0)
self:SetSize(0)
self.contenu = {}

end

puis dans ton starttouch,

function ENT:StartTouch(e)

if not IsValid(e) then return end

if (table.HasValue(ConfigCrate.StockageItems,e:GetClass())) then
if CurTime() < cltouch then return end
if self:GetSize() < ConfigCrate.StockageSmall then
cltouch = CurTime() + 1
table.insert(self.contenu,e:GetClass())
self:SetSize(self:GetSize() + 1)
e:Remove()
end
end
end

j'ai pas tres bien compris ton code mais je crois que c'est sa
 
  • Initiateur de la discussion
Legende

Legende

Geek suprême
Messages
332
Score réaction
75
Points
130
Ok je teste demain , merci d'avance et bonne soirée ;)
 
NOX3R

NOX3R

Geek suprême
Messages
436
Score réaction
148
Points
130
chienne du 38 à dit:
Je vien de voir qu'en signature ta mit Amphisia , le serveur que j'ai filesteal y'a 2 jours

Et il est content --' Kappa
 
Discord d'entraide
Rejoignz-nous sur Discord