Creation d'un 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 je créer actuellement un script pour gmod qui quand on vas mettre un certain objet dans cette machine ou obtient de l'argent mais mon probleme c'est que si je fait apparaitre l'argent devant la machine et que je la tourne a 180° alors l'argent spawn derrier. donc je voudrais que les player qui mette l'objet dans la machine se fasse give entre 2000 a 3000 $

j’espère avoir été compréhensible

Voici le code a modifier

Code:
function ENT:StartTouch(ent) if table.HasValue(Drugs,ent:GetClass()) then ent:Remove() ent:EmitSound( "buttons/button1.wav" ) DarkRP.createMoneyBag(self:GetPos()- Vector(0,-75,-40), math.random(1000,2000)) elseif ent:GetClass() == "spawned_weapon" and table.HasValue(Weapons,ent:GetWeaponClass()) then ent:Remove() ent:EmitSound( "buttons/button1.wav" ) DarkRP.createMoneyBag(self:GetPos()- Vector(0,-75,-40), math.random(5000,10000)) elseif table.HasValue(Printers,ent:GetClass()) then ent:Remove() ent:EmitSound( "buttons/button1.wav" ) DarkRP.createMoneyBag(self:GetPos()- Vector(0,-75,-30), math.random(2000,3000)) end
end
 
M

Membre supprimé 85513

Anonyme
cherche sur le wiki une fonction DarkRP money un truc comme ça
 
anthonin lahterman

anthonin lahterman

Geek suprême
Messages
589
Score réaction
124
Points
150
Code:
ply:addMoney(200)
Normalement, si sa marche pas mets une maj a Add
 
Dernière édition:
Gladiateur45

Gladiateur45

Geek suprême
Messages
472
Score réaction
39
Points
140
A la place de
Code:
 DarkRP.createMoneyBag(self:GetPos()- Vector(0,-75,-40), math.random(5000,10000))
Met
Code:
Player:AddMoney(mat.random(2000,3000))
 
M

Membre supprimé 70413

Anonyme
Le problème c'est qu'il peut pas récupérer le player exact il me semble avec le Touch donc je conseil déjà pour faire spawn par rapport à une entité au lieu de "Vector(,0,00)" plutôt "self:GetUp() * 5" et tu adaptes avec Up, Right, Forward, j'espère avoir été compréhensible
 
Thomas Mailler

Thomas Mailler

Geek suprême
Messages
657
Score réaction
155
Points
100
mrt_myloulou à dit:
Bonjour je créer actuellement un script pour gmod qui quand on vas mettre un certain objet dans cette machine ou obtient de l'argent mais mon probleme c'est que si je fait apparaitre l'argent devant la machine et que je la tourne a 180° alors l'argent spawn derrier. donc je voudrais que les player qui mette l'objet dans la machine se fasse give entre 2000 a 3000 $

j’espère avoir été compréhensible

Voici le code a modifier

Code:
function ENT:StartTouch(ent) if table.HasValue(Drugs,ent:GetClass()) then ent:Remove() ent:EmitSound( "buttons/button1.wav" ) DarkRP.createMoneyBag(self:GetPos()- Vector(0,-75,-40), math.random(1000,2000)) elseif ent:GetClass() == "spawned_weapon" and table.HasValue(Weapons,ent:GetWeaponClass()) then ent:Remove() ent:EmitSound( "buttons/button1.wav" ) DarkRP.createMoneyBag(self:GetPos()- Vector(0,-75,-40), math.random(5000,10000)) elseif table.HasValue(Printers,ent:GetClass()) then ent:Remove() ent:EmitSound( "buttons/button1.wav" ) DarkRP.createMoneyBag(self:GetPos()- Vector(0,-75,-30), math.random(2000,3000)) end
end
Je te conseil de créer un spawn pour ta machine pour éviter d'avoirs de l'argent dans le mur ou alors tout simplement mettre un code (je vais essayer de me renseigner) qui give l'argent directement dans son compte banquaire ou autre...
 
brh450

brh450

Geek suprême
Messages
611
Score réaction
180
Points
120
Gladiateur45 à dit:
A la place de
Code:
 DarkRP.createMoneyBag(self:GetPos()- Vector(0,-75,-40), math.random(5000,10000))
Met
Code:
Player:AddMoney(mat.random(2000,3000))
Pas de Majuscule au Player:addMoney()
 
  • J'aime
Réactions: Fresh mentos
  • Initiateur de la discussion
mrt_myloulou

mrt_myloulou

Geek
Messages
97
Score réaction
30
Points
85
j'ai tester
Code:
ply:giveMoney(200)
et
Code:
ply:GiveMoney(200)
et cella me marque sa



et pour
Code:
Player:AddMoney(mat.random(2000,3000))
sa met a peu prés la meme chose
 
brh450

brh450

Geek suprême
Messages
611
Score réaction
180
Points
120
mrt_myloulou à dit:
j'ai tester
Code:
ply:giveMoney(200)
et
Code:
ply:GiveMoney(200)
et cella me marque sa



et pour
Code:
Player:AddMoney(mat.random(2000,3000))
sa met a peu prés la meme chose
Tu dois modifier le "ply" Ou le "Player"

*Edit : Je viens de regarder ton code et tu ne déclare jamais la personne qui dépose
 
  • Initiateur de la discussion
mrt_myloulou

mrt_myloulou

Geek
Messages
97
Score réaction
30
Points
85
comment je peu déclare la personne qui vas recevoir l'argent ?
 
M

Membre supprimé 70413

Anonyme
Justement j'ai préciser au dessus que cela est limite impossible de le récupérer..
 
  • Initiateur de la discussion
mrt_myloulou

mrt_myloulou

Geek
Messages
97
Score réaction
30
Points
85
ton truc marche j'ai mit

Code:
DarkRP.createMoneyBag(self:GetPos()- self:GetUp() * 5, math.random(1000,2000))
mais je voudrais savoir sic'est possible de faire give l'argent au player qui met l'entites dans la machine
 
Dernière édition:
brh450

brh450

Geek suprême
Messages
611
Score réaction
180
Points
120
mrt_myloulou à dit:
ton truc marche j'ai mit

Code:
DarkRP.createMoneyBag(self:GetPos()- self:GetUp() * 5, math.random(1000,2000))
mais je voudrais savoir sic'est possible de faire give l'argent au player qui met l'entites dans la machine
Impossible ...
(Enfin possible mais assez compliqué)
 
  • J'aime
Réactions: Membre supprimé 70413
  • Initiateur de la discussion
mrt_myloulou

mrt_myloulou

Geek
Messages
97
Score réaction
30
Points
85
bah je les mit sa marche
 
Makss

Makss

Psychopathe
Messages
830
Score réaction
990
Points
310
Code:
ent:GetOwner():addMoney(math.random(1000,2000))
non ?
 
brh450

brh450

Geek suprême
Messages
611
Score réaction
180
Points
120
Makss à dit:
Code:
ent:GetOwner():addMoney(math.random(1000,2000))
non ?
Ça va envoyer l'argent à l'acheteur de l'objet alors que e n'est pas forcément à lui qu'il faudra le donner
 
anthonin lahterman

anthonin lahterman

Geek suprême
Messages
589
Score réaction
124
Points
150
brh450 à dit:
Ça va envoyer l'argent à l'acheteur de l'objet alors que e n'est pas forcément à lui qu'il faudra le donner
Je sais pas si c'est possible mais in peut pas récup celui qui l'a pick uo avec son physgun (ou gravgun) et de donner l'argent a lui, ce serait olus logique non?
 
brh450

brh450

Geek suprême
Messages
611
Score réaction
180
Points
120
anthonin lahterman à dit:
Je sais pas si c'est possible mais in peut pas récup celui qui l'a pick uo avec son physgun (ou gravgun) et de donner l'argent a lui, ce serait olus logique non?
C'est le seul moyen que j'ai trouvé c'est possible à l'aide d'un petit script
 
  • J'aime
Réactions: anthonin lahterman
While True

While True

Geek suprême
Messages
445
Score réaction
395
Points
190
Tu aimes les math/physique ? Parce que c'est tout le sujet ici :) Allez on y va !

Tu auras remarqué que tu fais apparaitre un billet à ces positions :
Code:
 self:GetPos()- Vector(0,-75,-40)
Imaginons maintenant que l'objet est positionné en v(0,0,0) :
Dans ce cas, l'argent sera d'office positionné en v(0-0, 0 - (-75), 0 - (-40) ) soit en v(0,75,40).
Tu as remarqué que la position n'est pas dépendante de l'orientation de l'objet.

La solution : Utiliser l'orientation de l'objet dans le calcul de la position, il y a plusieurs façons de le faire, mais en voici une relativement simple : ( comme Slawer l'avait intelligemment proposé )
1 - On récupère la position de l'objet
Code:
 self:GetPos()
2. On récupère l'orientation de l'objet
Code:
 self:GetForward()
Notez qu'on peut utiliser GetAngles(), ou encore GetUp, Down, mais ici on veut récupérer le vecteur normal orienté vers l'avant.
3. On réunit le tout et on traite correctement :
Code:
 self:GetPos() + self:GetForward()*50
Notez le *50, en effet GetForward() donne un vecteur normalisé (donc de longueur 1), ce qu'on veut c'est par exemple l'avoir à 50 unités devant nous, alors on multiplie par 50, plutôt simple non ?

Pour finir cela donne :
Code:
 DarkRP.createMoneyBag(self:GetPos() + self:GetForward()*50, math.random(1000,2000))
 
Dernière édition:
  • J'aime
Réactions: Taink et anthonin lahterman
  • Initiateur de la discussion
mrt_myloulou

mrt_myloulou

Geek
Messages
97
Score réaction
30
Points
85
Merci j'avez test le truc de @Slawer et j'avez mit la meme chose que toi
 
Discord d'entraide
Rejoignz-nous sur Discord