Nouveau probleme avec mon script

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

mrt_myloulou

Geek
Messages
97
Score réaction
30
Points
85
Bonjour j'aimerai modifier mon code pour que les player doivent appuyer sur la touche "E" en ayant ayant un certain job et un entité dans la machine et par la suite cella donne l'argent au player et si il na pas le bon job la machine ne fonctionne pas

pour le moment tous le monde peu mettre l'entité en question est recolté l'argent par terre

voici le code a modifier

Code:
function ENT:StartTouch(ent,ply) if table.HasValue(Drugs,ent:GetClass()) then ent:Remove() ent:EmitSound( "buttons/button"..math.random(1,9,12)..".wav" ) DarkRP.createMoneyBag(self:GetPos() + self:GetForward() * -70, math.random(drugMin,drugMax)) elseif ent:GetClass() == "spawned_weapon" and table.HasValue(Weapons,ent:GetWeaponClass()) then ent:Remove() ent:EmitSound( "buttons/button"..math.random(1,9,12)..".wav" ) DarkRP.createMoneyBag(self:GetPos() + self:GetForward() * -70, math.random(weaponMin,weaponMax)) elseif table.HasValue(Printers,ent:GetClass()) then ent:Remove() ent:EmitSound( "buttons/button"..math.random(1,9,12)..".wav" ) DarkRP.createMoneyBag(self:GetPos() + self:GetForward() * -70, math.random(printerMin,printerMax)) end
end
J'espere avoir été compréhensible
 
edouard292

edouard292

Geek suprême
Messages
423
Score réaction
108
Points
150
Tiens mrt :D :

function ENT:AcceptInput( Name, Activator, Caller )
if Name == "Use" && IsValid( Caller ) && Caller:IsPlayer() then -- permet de vérifier si le caller (celui qui appel) est valid et est un joueur
net.Start( "ton_net" ) -- start ton net
net.Send( Caller ) -- send le net sur le caller
end
end
 
  • Initiateur de la discussion
mrt_myloulou

mrt_myloulou

Geek
Messages
97
Score réaction
30
Points
85
J'ai compris pas grand chose xD
je doit le mettre ton truc dans mon code ?
 
While True

While True

Geek suprême
Messages
445
Score réaction
395
Points
190
Pour ce faire il faut sauvegarder l'entité qui touche, puis attendre une input (use) d'un joueur, et à ce moment là supprimer l'entité et donner l'argent.
Voilà le code :
Maintenant, je te conseille, si tu veux apprendre, de lire et de bien tout comprendre, et même essayer de trouver une alternative,
il y a plein de façons de faire, certaines sont mieux que d'autres, et d'ailleurs ce que je t'ai donné n'est probablement pas la meilleure, mais elle est relativement courte.

[EDIT] Il faut refaire l'indentation qui n'est pas reprise lors du c/p depuis mon éditeur de texte
Code:
function ENT:Initialize() self.state = nil
end
function ENT:StartTouch(ent) if table.HasValue(Drugs,ent:GetClass()) then ent:EmitSound( "buttons/button"..math.random(1,9,12)..".wav" ) self.state = {class="drug", ent=ent} elseif ent:GetClass() == "spawned_weapon" and table.HasValue(Weapons,ent:GetWeaponClass()) then ent:EmitSound( "buttons/button"..math.random(1,9,12)..".wav" ) self.state = {class="weap", ent=ent} elseif table.HasValue(Printers,ent:GetClass()) then ent:EmitSound( "buttons/button"..math.random(1,9,12)..".wav" ) self.state = {class="print", ent=ent} end
end
function ENT:EndTouch(ent) if self.state != nil and self.state.ent == ent then self.state = nil end
end
function ENT:AcceptInput( name, activator, caller) if self.state == nil then return end if name == "Use" and caller:IsPlayer() and caller:Team() == TEAM_BEMATISTE then local pos = self:GetPos() + self:GetForward() * -70 if self.state.class == "drug" then DarkRP.createMoneyBag(pos, math.random(drugMin,drugMax)) elseif self.state.class == "weap" then DarkRP.createMoneyBag(pos, math.random(weaponMin,weaponMax)) else -- printer DarkRP.createMoneyBag(pos, math.random(printerMin,printerMax)) end self.state.ent:Remove() self.state = nil end
end
 
  • Initiateur de la discussion
mrt_myloulou

mrt_myloulou

Geek
Messages
97
Score réaction
30
Points
85
UP
 
Gauthier Plus

Gauthier Plus

Geek suprême
Messages
717
Score réaction
310
Points
180
While True à dit:
Pour ce faire il faut sauvegarder l'entité qui touche, puis attendre une input (use) d'un joueur, et à ce moment là supprimer l'entité et donner l'argent.
Voilà le code :
Maintenant, je te conseille, si tu veux apprendre, de lire et de bien tout comprendre, et même essayer de trouver une alternative,
il y a plein de façons de faire, certaines sont mieux que d'autres, et d'ailleurs ce que je t'ai donné n'est probablement pas la meilleure, mais elle est relativement courte.

[EDIT] Il faut refaire l'indentation qui n'est pas reprise lors du c/p depuis mon éditeur de texte
Code:
function ENT:Initialize() self.state = nil
end
function ENT:StartTouch(ent) if table.HasValue(Drugs,ent:GetClass()) then ent:EmitSound( "buttons/button"..math.random(1,9,12)..".wav" ) self.state = {class="drug", ent=ent} elseif ent:GetClass() == "spawned_weapon" and table.HasValue(Weapons,ent:GetWeaponClass()) then ent:EmitSound( "buttons/button"..math.random(1,9,12)..".wav" ) self.state = {class="weap", ent=ent} elseif table.HasValue(Printers,ent:GetClass()) then ent:EmitSound( "buttons/button"..math.random(1,9,12)..".wav" ) self.state = {class="print", ent=ent} end
end
function ENT:EndTouch(ent) if self.state != nil and self.state.ent == ent then self.state = nil end
end
function ENT:AcceptInput( name, activator, caller) if self.state == nil then return end if name == "Use" and caller:IsPlayer() and caller:Team() == TEAM_BEMATISTE then local pos = self:GetPos() + self:GetForward() * -70 if self.state.class == "drug" then DarkRP.createMoneyBag(pos, math.random(drugMin,drugMax)) elseif self.state.class == "weap" then DarkRP.createMoneyBag(pos, math.random(weaponMin,weaponMax)) else -- printer DarkRP.createMoneyBag(pos, math.random(printerMin,printerMax)) end self.state.ent:Remove() self.state = nil end
end
mrt_myloulou à dit:
Pourquoi ce up ?
 
  • Initiateur de la discussion
mrt_myloulou

mrt_myloulou

Geek
Messages
97
Score réaction
30
Points
85
@Gauthier Plus car je n'est toujour pas trouver la sollution
 
Discord d'entraide
Rejoignz-nous sur Discord