[Release] Advanced Medic System

  • Initiateur de la discussion Alain LeThug
  • Date de début
  • Initiateur de la discussion
Alain LeThug

Alain LeThug

Psychopathe
Messages
1 012
Score réaction
211
Points
280
Bonjour, je vous présente mon deuxième script.
C'est un PNJ dans lequel on peut recevoir des soins. Ils n'atteignent pas 100 HP pour ajouter du réalisme et donner du travail au réel(s) médecins.

Lorsque vous n'avez pas le minimum d'argent (50 euros), le PNJ vous affiche un message d'erreur.
Lorsque votre vie est à 100, le PNJ vous affiche un message d'erreur.

https://mega.nz/#!9w4VEJZL!Hb3HkG-bJZrUWEVmyQn-N0emLBxDFwsf9BgYFyIZnhA
Pour toute suggestion concernante l'addon ou problème avec celui ci, contactez moi en MP ou sur :
http://steamcommunity.com/id/anonymbe/

 
Dernière édition:
AyZenSantos

AyZenSantos

Psychopathe
Messages
3 361
Score réaction
753
Points
300
Domage qu'il en existe déjà plein ^^
 
  • Initiateur de la discussion
Alain LeThug

Alain LeThug

Psychopathe
Messages
1 012
Score réaction
211
Points
280
AyZenSantos à dit:
Domage qu'il en existe déjà plein ^^
C'est pas un inconvénient, c'est une chance d'en faire un meilleur ^^
 
Feytone

Feytone

Chuck Norris
Messages
4 741
Score réaction
1 301
Points
600
T'aurais pu pousser ^^'

(Au niveau des noms notamment : pack de vie quoi ^^)
 
  • Initiateur de la discussion
Alain LeThug

Alain LeThug

Psychopathe
Messages
1 012
Score réaction
211
Points
280
Feytone à dit:
T'aurais pu pousser ^^'

(Au niveau des noms notamment : pack de vie quoi ^^)
Dans la vrai vie on te vends pas un pack de vie mdr
 
Feytone

Feytone

Chuck Norris
Messages
4 741
Score réaction
1 301
Points
600
Alain LeThug à dit:
Dans la vrai vie on te vends pas un pack de vie mdr
C'est bien ce que je dis...
Choisissez un pack ci-dessous x))
 
  • J'aime
Réactions: Alain LeThug
  • Initiateur de la discussion
Alain LeThug

Alain LeThug

Psychopathe
Messages
1 012
Score réaction
211
Points
280
Feytone à dit:
C'est bien ce que je dis...
Choisissez un pack ci-dessous x))
Fin quand je dis pack, c'est une sorte de plusieurs choix qui regroupent plusieurs manipulation médicales ^^
 
Valfunde

Valfunde

Helpeur Divin
Messages
3 800
Score réaction
1 235
Points
450
Le design est vraiment pas beau je trouve... Un design de base serait même je pense plus beau...
 
  • Initiateur de la discussion
Alain LeThug

Alain LeThug

Psychopathe
Messages
1 012
Score réaction
211
Points
280
Valfunde à dit:
Le design est vraiment pas beau je trouve... Un design de base serait même je pense plus beau...
Tu proposerait quel genre de design ?
 
Valfunde

Valfunde

Helpeur Divin
Messages
3 800
Score réaction
1 235
Points
450
Alain LeThug à dit:
Tu proposerait quel genre de design ?
Aucune idée, mais la je trouve que les couleurs, formes, etc, ça ne va pas ensemble, mais fais des tests, et surtout fait ce qui te plait ;)
 
  • Initiateur de la discussion
Alain LeThug

Alain LeThug

Psychopathe
Messages
1 012
Score réaction
211
Points
280
Valfunde à dit:
Aucune idée, mais la je trouve que les couleurs, formes, etc, ça ne va pas ensemble, mais fais des tests, et surtout fait ce qui te plait ;)
Ça me plait comme ça moi xD je vais essayer de faire un autre derma
 
Feytone

Feytone

Chuck Norris
Messages
4 741
Score réaction
1 301
Points
600
Je suis relativement du même avis pour le derma... ça fait un peu jouet... Comme les dermas de @slownls
 
  • J'aime
Réactions: Valfunde
A

Amane

Geek
Messages
216
Score réaction
51
Points
75
>La police d'écriture est moche
>Le PNJ à les bras façon Magic System
>Le code est pas hyper propre et possède des failles
 
Feytone

Feytone

Chuck Norris
Messages
4 741
Score réaction
1 301
Points
600
Amane à dit:
>Le PNJ à les bras façon Magic System
On s'en fout du model et ça s'appelle la T-Pose.
 
  • J'aime
Réactions: Kitsu
A

Amane

Geek
Messages
216
Score réaction
51
Points
75
Feytone à dit:
On s'en fout du model et ça s'appelle la T-Pose.
Non,on s'enfou pas du modèle justement. Si on veut faire un truc un minimum propre,le modèle compte aussi. Après si t'es un pseudo-codeur,c'est sur que ça doit pas trop te déranger.
 
Feytone

Feytone

Chuck Norris
Messages
4 741
Score réaction
1 301
Points
600
Amane à dit:
Non,on s'enfou pas du modèle justement. Si on veut faire un truc un minimum propre,le modèle compte aussi. Après si t'es un pseudo-codeur,c'est sur que ça doit pas trop te déranger.
quel rapport entre un model et coder ? Il aurait foutu un model hl2 ça aurait été pareil : ça se change en 2 secondes. Tu parles de pseudo-codeur mais tu appelles ça "Magic System"...
 
A

Amane

Geek
Messages
216
Score réaction
51
Points
75
Feytone à dit:
quel rapport entre un model et coder ? Il aurait foutu un model hl2 ça aurait été pareil : ça se change en 2 secondes. Tu parles de pseudo-codeur mais tu appelles ça "Magic System"...
Le "magic system" c'était pour la blague,le génie.
Ensuite "quel rapport entre un model et coder" peut être car tu peut modifier les actions du modèle etc.. (dont le problème de pose) via du code ??
 
Feytone

Feytone

Chuck Norris
Messages
4 741
Score réaction
1 301
Points
600
Amane à dit:
Le "magic system" c'était pour la blague,le génie.
Ensuite "quel rapport entre un model et coder" peut être car tu peut modifier les actions du modèle etc.. (dont le problème de pose) via du code ??
On ne joue pas sur la pose d'un playermodel hors c'est ce qu'il a pris... Il aurait mis un ragdoll tu n'en aurais pas parlé. Bref, ce n'est qu'un model, ça se change comme les textes ou la police.
 
A

Amane

Geek
Messages
216
Score réaction
51
Points
75
Feytone à dit:
On ne joue pas sur la pose d'un playermodel hors c'est ce qu'il a pris... Il aurait mis un ragdoll tu n'en aurais pas parlé. Bref, ce n'est qu'un model, ça se change comme les textes ou la police.
Oui,et justement je lui dit qu'il devrait changer ça. C'est un conseil;
 
  • Initiateur de la discussion
Alain LeThug

Alain LeThug

Psychopathe
Messages
1 012
Score réaction
211
Points
280
Amane à dit:
>La police d'écriture est moche
>Le PNJ à les bras façon Magic System
>Le code est pas hyper propre et possède des failles
C'est un peu évident que le code soit pas sur, je débute, après je ne cherche pas la perfection du début.
Amane à dit:
Non,on s'enfou pas du modèle justement. Si on veut faire un truc un minimum propre,le modèle compte aussi. Après si t'es un pseudo-codeur,c'est sur que ça doit pas trop te déranger.
Quand tu parle de pseudo codeur tu parle de toi surement, je ne me suis en aucun cas proclamé en tant que codeur.
 
A

Amane

Geek
Messages
216
Score réaction
51
Points
75
Alain LeThug à dit:
C'est un peu évident que le code soit pas sur, je débute, après je ne cherche pas la perfection du début.

Quand tu parle de pseudo codeur tu parle de toi surement, je ne me suis en aucun cas proclamé en tant que codeur.
??? Mon deuxième message était destiné à Feytone. Ça ce vois un peu non ? Je le cite.
 
NicolasStr_

NicolasStr_

Geek
Messages
74
Score réaction
44
Points
80
Et si, par pur hasard, tu fesais le même net pour tous les packs, ca te permettrait tout de même d'optimiser ton code un max, et d'éviter les différents exploits:

CODE MIS A JOUR PLUS BAS :)

PS: Pas testé, merci de confirmer, mais en tout cas tu peux voir comment j'évite l'exploit et j'optimise mon code.
 
Dernière édition:
NicolasStr_

NicolasStr_

Geek
Messages
74
Score réaction
44
Points
80
Attention,
ENT:GetClass() ne fonctionnera seulement si tu le mets dans init.lua de ton entity.
 
A

Amane

Geek
Messages
216
Score réaction
51
Points
75
NicolasStr_ à dit:
Et si, par pur hasard, tu fesais le même net pour tous les packs, ca te permettrait tout de même d'optimiser ton code un max, et d'éviter les différents exploits:

Voici ton net serverside
Code:
local limite_sante = 100 -- LE JOUEUR NE POURRA PAS ALLER PLUS HAUT QUE CETTE SANTE
local say_good = "Vous avez été soigné! Attention, cela ne vaut pas les soins du médecin"
local say_bad = "Dommage mais votre portefeuille ne vous permet de vous prendre quelques soins."
local rdmdiff = 10
local distance = 70
net.Receive( "buy_health" , function ( len , ply ) for k,v in pairs(ents.GetAll()) do if v:GetClass() == ENT:GetClass() && ply:GetPos():Distance(v:GetPos()) < distance then local health_table = net.ReadTable() if health_table.health - rdmdiff >= 100 then rdmdiff == 0 end if ply:getDarkRPVar("money") >= health_table.cost && ply:Health() < limite_sante then ply:addMoney( - health_table.cost ) DarkRP.notify(ply,0,7,say) ply:SetHealth(math.random( health_table.health - rdmdiff, health_table.health + rdmdiff )) else DarkRP.notify(ply,1,7,say_bad) end end end
end)
Et ton net à envoyer clientside lorsque par exemple, on appuie sur le bouton:
Code:
health_table = {}
health_table.cost = 200 -- COUT DU SOIN
health_table.health = 100 -- SANTE A DONNER
net.Start("buy_health")
net.WriteTable(health_table)
net.SendToServer()
PS: Pas testé, merci de confirmer, mais en tout cas tu peux voir comment j'évite l'exploit et j'optimise mon code.
Sauf que si le mec injecte du lua et envoie la table modifié en disant que le cost est inférieur,il peut ptet ce give de la tune (pas sur,me semblait avoir vu un truc ou si tu va trop dans le négatif tu peut faire un truc) ou avoir des soins gratos
 
NicolasStr_

NicolasStr_

Geek
Messages
74
Score réaction
44
Points
80
Nop, ca vérifierait qu'il soit à coté de l'entité vendeur de santé avant toute opération.
S'il souhaite le lancer à coté d'une entité, ca fonctionnera, tant qu'il est dans le rayon, comme s'il passait par le derma (donc en prenant l'argent et tout)
Concernant les pv à donner, j'ai oublié une ligne de code :O en copiant mon statement

Donc:

Voici ton net serverside
Code:
local limite_sante = 100 -- LE JOUEUR NE POURRA PAS ALLER PLUS HAUT QUE CETTE SANTE
local say_good = "Infirmier : Je vous ai soigné, passez chez un médecin, il vous donnera de meilleurs soins que moi, bonne journée."
local say_bad = "Dommage mais votre portefeuille ne vous permets de vous prendre quelques soins."
local rdmdiff = 10
local distance = 70
net.Receive( "buy_health" , function ( len , ply ) for k,v in pairs(ents.GetAll()) do if v:GetClass() == ENT:GetClass() && ply:GetPos():Distance(v:GetPos()) < distance then local health_table = net.ReadTable() if health_table.health > limite_sante then health_table.health == limite_sante end if health_table.health - rdmdiff >= 100 then rdmdiff == 0 end if ply:getDarkRPVar("money") >= health_table.cost && ply:Health() < limite_sante then ply:addMoney( - health_table.cost ) DarkRP.notify(ply,0,7,say) ply:SetHealth(math.random( health_table.health - rdmdiff, health_table.health + rdmdiff )) else DarkRP.notify(ply,1,7,say_bad) end end end
end)
Et ton net à envoyer clientside lorsque par exemple, on appuie sur le bouton:
Code:
health_table = {}
health_table.cost = 200 -- COUT DU SOIN
health_table.health = 100 -- SANTE A DONNER
net.Start("buy_health")
net.WriteTable(health_table)
net.SendToServer()
 
A

Amane

Geek
Messages
216
Score réaction
51
Points
75
NicolasStr_ à dit:
Nop, ca vérifierait qu'il soit à coté de l'entité vendeur de santé avant toute opération.
S'il souhaite le lancer à coté d'une entité, ca fonctionnera, tant qu'il est dans le rayon, comme s'il passait par le derma (donc en prenant l'argent et tout)
Concernant les pv à donner, j'ai oublié une ligne de code :O en copiant mon statement

Donc:

Voici ton net serverside
Code:
local limite_sante = 100 -- LE JOUEUR NE POURRA PAS ALLER PLUS HAUT QUE CETTE SANTE
local say_good = "Infirmier : Je vous ai soigné, passez chez un médecin, il vous donnera de meilleurs soins que moi, bonne journée."
local say_bad = "Dommage mais votre portefeuille ne vous permets de vous prendre quelques soins."
local rdmdiff = 10
local distance = 70
net.Receive( "buy_health" , function ( len , ply ) for k,v in pairs(ents.GetAll()) do if v:GetClass() == ENT:GetClass() && ply:GetPos():Distance(v:GetPos()) < distance then local health_table = net.ReadTable() if health_table.health > limite_sante then health_table.health == limite_sante end if health_table.health - rdmdiff >= 100 then rdmdiff == 0 end if ply:getDarkRPVar("money") >= health_table.cost && ply:Health() < limite_sante then ply:addMoney( - health_table.cost ) DarkRP.notify(ply,0,7,say) ply:SetHealth(math.random( health_table.health - rdmdiff, health_table.health + rdmdiff )) else DarkRP.notify(ply,1,7,say_bad) end end end
end)
Et ton net à envoyer clientside lorsque par exemple, on appuie sur le bouton:
Code:
health_table = {}
health_table.cost = 200 -- COUT DU SOIN
health_table.health = 100 -- SANTE A DONNER
net.Start("buy_health")
net.WriteTable(health_table)
net.SendToServer()
Ah yep j'avais pas vu le check (en même temps,cpas pour me trouver une excuse mais faudrait faire un plugin xenforo pour le lua).
 
Valfunde

Valfunde

Helpeur Divin
Messages
3 800
Score réaction
1 235
Points
450
Amane à dit:
Ah yep j'avais pas vu le check (en même temps,cpas pour me trouver une excuse mais faudrait faire un plugin xenforo pour le lua).
Tu peux déjà mettre la syntaxe php y'a des couleurs c'est sympa :p
 
Joe Leroi

Joe Leroi

Chuck Norris
Messages
4 368
Score réaction
933
Points
605
Pourquoi faire que des NPC Medic ? Cela ne sert à rien, puisqu'il en existe plsieurs, bien plus complet et roleplay que le tient. De plus, ton derma n'est pas terrible !

Essaye de changer, et faire d'autre truc invente !
 
Steinman78

Steinman78

Psychopathe
Messages
805
Score réaction
916
Points
330
Je vais un peu jouer sur les mots, mais le "advanced" est en trop dans le titre
 
  • J'aime
Réactions: Membre supprimé 70413
Joe Leroi

Joe Leroi

Chuck Norris
Messages
4 368
Score réaction
933
Points
605
Steinman78 à dit:
Je vais un peu jouer sur les mots, mais le "advanced" est en trop dans le titre
Je suis totalement d'accord !

@Alain LeThug je te conseille vivement de changer et de faire plus des truc complet, que simplement un NPC basique
 
Valfunde

Valfunde

Helpeur Divin
Messages
3 800
Score réaction
1 235
Points
450
Joe Leroi à dit:
Je suis totalement d'accord !

@Alain LeThug je te conseille vivement de changer et de faire plus des truc complet, que simplement un NPC basique
Il débute, il va pas te pondre un script de cook ou une connerie comme ça, libre à lui de faire ce qu'il veut mais faut pas lui en demander trop, c'est ses premiers scripts.
 
A

Amane

Geek
Messages
216
Score réaction
51
Points
75
Steinman78 à dit:
Je vais un peu jouer sur les mots, mais le "advanced" est en trop dans le titre
le "medic system" aussi,juste pnj medic en vrai mais bon :hap:
 
  • J'aime
Réactions: Steinman78
Joe Leroi

Joe Leroi

Chuck Norris
Messages
4 368
Score réaction
933
Points
605
Valfunde à dit:
Pour le moment sur ton script ce que je vois c'est des DFrames donc bon... Rien de plus complexe... Tu y passe juste plus de temps car tu mise tout sur le design...
Oui, mais pas que des Dframe tkt :) Il y'a une base de donnée, etc... pour le système de la banque, jobs, et assurance, tous utilisent une base de donnée :) Car le médecin, c'est pas tu viens tu te soigne, c'est bien bien plus complexe que cela !
 
Valfunde

Valfunde

Helpeur Divin
Messages
3 800
Score réaction
1 235
Points
450
Joe Leroi à dit:
Oui, mais pas que des Dframe tkt :) Il y'a une base de donnée, etc... pour le système de la banque, jobs, et assurance, tous utilisent une base de donnée :) Car le médecin, c'est pas tu viens tu te soigne, c'est bien bien plus complexe que cela !
Un system de base de donné pour le system de job ? :x
 
Joe Leroi

Joe Leroi

Chuck Norris
Messages
4 368
Score réaction
933
Points
605
Valfunde à dit:
Un system de base de donné pour le system de job ? :x
Yep :) tu verra (petit spoil, il y'a deux catégorie, entrepreneur, et chercheur d'emploi, les entrepreneurs font apparaître leur annonce, et les chercheurs d'emplois, peuvent être recruter, et tout les X secondes, reçoivent un salaire directement payé par l'entrepreneur !
 
Joe Leroi

Joe Leroi

Chuck Norris
Messages
4 368
Score réaction
933
Points
605
Joe Leroi à dit:
Yep :) tu verra (petit spoil, il y'a deux catégorie, entrepreneur, et chercheur d'emploi, les entrepreneurs font apparaître leur annonce, et les chercheurs d'emplois, peuvent être recruter, et tout les X secondes, reçoivent un salaire directement payé par l'entrepreneur !
Mais cela arrivera dans une futur maj :) Car pour l'instant, je n'ai pas le temps d'effectuer ce système, mais la c'est vague ce que je t'ai dit, c'est on va dire 10% du résultat final de l'appli jobs.
 
  • Initiateur de la discussion
Alain LeThug

Alain LeThug

Psychopathe
Messages
1 012
Score réaction
211
Points
280
NicolasStr_ à dit:
Nop, ca vérifierait qu'il soit à coté de l'entité vendeur de santé avant toute opération.
S'il souhaite le lancer à coté d'une entité, ca fonctionnera, tant qu'il est dans le rayon, comme s'il passait par le derma (donc en prenant l'argent et tout)
Concernant les pv à donner, j'ai oublié une ligne de code :O en copiant mon statement

Donc:

Voici ton net serverside
Code:
local limite_sante = 100 -- LE JOUEUR NE POURRA PAS ALLER PLUS HAUT QUE CETTE SANTE
local say_good = "Infirmier : Je vous ai soigné, passez chez un médecin, il vous donnera de meilleurs soins que moi, bonne journée."
local say_bad = "Dommage mais votre portefeuille ne vous permets de vous prendre quelques soins."
local rdmdiff = 10
local distance = 70
net.Receive( "buy_health" , function ( len , ply ) for k,v in pairs(ents.GetAll()) do if v:GetClass() == ENT:GetClass() && ply:GetPos():Distance(v:GetPos()) < distance then local health_table = net.ReadTable() if health_table.health > limite_sante then health_table.health == limite_sante end if health_table.health - rdmdiff >= 100 then rdmdiff == 0 end if ply:getDarkRPVar("money") >= health_table.cost && ply:Health() < limite_sante then ply:addMoney( - health_table.cost ) DarkRP.notify(ply,0,7,say) ply:SetHealth(math.random( health_table.health - rdmdiff, health_table.health + rdmdiff )) else DarkRP.notify(ply,1,7,say_bad) end end end
end)
Et ton net à envoyer clientside lorsque par exemple, on appuie sur le bouton:
Code:
health_table = {}
health_table.cost = 200 -- COUT DU SOIN
health_table.health = 100 -- SANTE A DONNER
net.Start("buy_health")
net.WriteTable(health_table)
net.SendToServer()
Plus sérieusement, j'ai rien compris au code, for k,v in pairs c'est quoi ?
 
  • Initiateur de la discussion
Alain LeThug

Alain LeThug

Psychopathe
Messages
1 012
Score réaction
211
Points
280
Joe Leroi à dit:
Je suis totalement d'accord !

@Alain LeThug je te conseille vivement de changer et de faire plus des truc complet, que simplement un NPC basique
Tu propose quoi ? Je n'ai actuellement pas d'idées
 
A

Amane

Geek
Messages
216
Score réaction
51
Points
75
Alain LeThug à dit:
Plus sérieusement, j'ai rien compris au code, for k,v in pairs c'est quoi ?
for key in values si tu préfère.
 
  • J'aime
Réactions: Alain LeThug
A

Amane

Geek
Messages
216
Score réaction
51
Points
75
En gros il récup toute les entités et pour chaque entité il check qq chose via value (value étant l'entité ciblé) ce qui déclenche un if si c'est la bonne entité

EDIT : J'ai oublié de précisé que c'est compatible avec n'importe quelle table,vu que ents.Getall return une table


Si tu veut mieux comprendre
 
Dernière édition:
  • J'aime
Réactions: Alain LeThug
Discord d'entraide
Rejoignz-nous sur Discord