STEAM GROUP
Entraide GMod - Lua - modèles - EntrdGmod.fr
STEAM GROUP
Entraide GMod - Lua - modèles - EntrdGmod.fr
16
IN-GAME
92
ONLINE
Founded
March 9, 2016
Language
French
Lonos May 8, 2016 @ 11:07pm
Script ?
Bonjour,
Avant tout je ne sais pas si j'ai le droit de faire une demande d'un script particulier contre de l'argent ! Je le fait dans l’espoir que mon post de soit pas supprimé !

Je cherche une personne qui sais dev lua !
Pour faire un script qui permettrais que lorsque l'on veut un job, on clique normal sur choisir avec le F4 mais sa donne une tenue ! Et par exemple (pour mon serveur ) Que la tenue ne spawn que pour certain job sinon c'est normal sa le met directement
Avec un système de hiérarchie par exemple certain job ne pourront être pris que si un supérieur lui donne ... Et qu'il est le métier de base dans l'armée donc la c'est recrue afin de passer Soldat SS ..
Je compte rémunéré si le script ne dépasse pas une certain somme mais on verra avec la personne en question !
Donc si quelqu'un est tenté !!
Cordialement
Maxence
< >
Showing 1-15 of 41 comments
Diablos May 9, 2016 @ 1:06am 
Bonjour,
Nous ne supprimons pas les scripts payants, pourquoi cela serait interdit ? Un gros travail peut (doit) mériter de l'argent parfois.
En ce qui concerne ta demande, tu devrais donner plus de précisions sur comment ça marcherait. Personnellement, je ne comprends pas comment cela se ferait : En fonction du job, il y'a certains models qui sont donnés mais des personnes de rang supérieur peuvent se donner des models aussi ? Essaie de plus développer s'il te plait, j'essaierais de voir si je peux te faire ça.

Bonne journée!
Lonos May 9, 2016 @ 8:42am 
Je explique mieux :

Un script qui permet :

- A certain métiers de ne pas le pouvoir le prendre via Le F4 même si on le voit

- Si je me met un métier que je peux ex : Recrue et que je veux passer Soldat

- Il faut que un supérieur ex : Commander procure une tenue en faisant F4/Objet : Tenue de Soldat et cela fait spawn un model (donc sa je le changerais moi même )

- Et dés que la recrue prend la tenue cela le transforme en Soldat ! (changement de metier)

-Et comme sa on peut prendre les gens qui sont apte a devenir soldat , sergent ...

- Et impossible que le ex : Le Commender prend une tenue via F4/Objet et la prenne !

- Que l'on puisse config par exemple le commender peut mettre un Bras droit (mais que le commander ne puisse pas mettre les grades que a accès le bras droit ) et que le bras droit peut mettre caporal et que caporal puisse mettre soldat et soldat II ...

Mais je pense qu'il faut pas que tu te base sur les métiers direct !
Mais que tu fasse un système qui permet de crée les irritants ...

J’espère t'avoir mieux expliqué
Merci d'avance
Diablos May 9, 2016 @ 9:03am 
L'idée n'est pas bête, mais il faudrait créer une entité par grade. Ceci dit c'est largement possible et pas compliqué à faire, donc honnêtement je pense que tu pourrais le faire toi-même. Dans la fonction ENT:USE[wiki.garrysmod.com], y'a le caller que tu peux changeTeam[wiki.darkrp.com]. Si tu fais chaque entité, ensuite la seule chose à changer est le Model de l'entité et la TEAM_ différente dans la fonction changeTeam. Il faut bien évidemment créer les TEAM_ dans le fichier job, ça va de soit, et mettre les entités en vente dans le menu F4 en les autorisant uniquement par certains grades avec la ligne allowed. Enfin tout est cohérente et assez facile dans l'ensemble.
Fait-moi part de tes éventuels soucis rencontrés, je t'aiderais en conséquence mais inutile de s'embêter à payer car c'est pas très compliqué.

Bonne journée!
Lonos May 9, 2016 @ 10:08am 
Merci !
Donc alors j'ai regardé les entites d'un autre addon pour voir comment cela se présenter !

voici :

AddCSLuaFile() ENT.Type = "anim" ENT.Spawnable = false ENT.AdminSpawnable = true ENT.Model = "models/props_c17/TrapPropeller_Lever.mdl"

Et je le transforme en :

AddCSLuaFile() ENT.Type = "anim" ENT.Spawnable = true ENT.AdminSpawnable = true ENT.Model = "models/pasencorechoisis.mdl"

Voilas après je commences ENT:USE ...
Et je t'envois au fur et a mesure
Last edited by Lonos; May 9, 2016 @ 10:15am
Lonos May 9, 2016 @ 10:25am 
Et voilas un autre truc
AddCSLuaFile() ENT.Type = "anim" ENT.Spawnable = true ENT.AdminSpawnable = true ENT.Model = "models/german/headgear/grenadier_helm.mdl" if ENT:Use( Entity caller ) then Player:changeTeam(TEAM_SSOBERSHUTZE) end
Diablos May 9, 2016 @ 10:53am 
Attention, c'est bien beau mais tu me donnes du code comme ça. Pense à bien le comprendre et trier ce qui est utile et ce qui ne l'est pas. Le premier code est bon, personnellement je mets le ENT.Model dans une fonction ENT:Initialize pour gérer la physique de l'entité également, mais bon ça doit tout de même marcher.

Mettre un if ENT:Use( Entity caller ) then n'a aucun sens : L'entité gère des fonctions prédéfinies, donc on met pas un "if" (plutôt un "function") : c'est soit on va utiliser l'entité et déclencher la fonction, soit non. De plus, regarde bien les arguments (regarde la page Wiki de Garry's Mod ci-dessus) : Tu mets Entity caller, pas de virgule pour les différencier, et tu n'as pas écrit tous les arguments demandés par la fonction : parfois, ils sont optionnels, mais quand ce n'est pas précisé, tu peux tout de même les écrire si tu ne les utilises pas.

Ensuite, dans la fonction ENT:Use, tu écris la ligne Player:changeTeam(TEAM_SSOBERSHUTZE). Des soucis élémentaires : Player n'est pas initialisé, en regardant la description de la fonction ENT:Use sur le Wiki on voit que c'est le deuxième argument qui représente le joueur, (le "caller", donc la personne qui appelle la fonction). Ca serait donc caller au lieu de Player.
Un autre soucis : regarde les arguments de changeTeam (tout est donné au dessus pour les liens si tu ne trouves pas) : on demande deux paramètres optionnels dont le premier serait de forcer le joueur à aller dans la Team, une valeur booléenne où il faut donc renseigner true pour que le joueur puisse y'aller. Le code final corrigé (je ne devrais pas le donner pour te laisser apprendre, mais bon je suis gentil) serait donc :

AddCSLuaFile() ENT.Type = "anim" ENT.Spawnable = true ENT.AdminSpawnable = true ENT.Model = "models/german/headgear/grenadier_helm.mdl" function ENT:Use( activator, caller, useType, value ) -- Il est vrai que dans le cas présent, les deux derniers arguments sont optionnels mais vu que ce n'est pas tout le temps le cas, pour bien le montrer je les mets) caller:changeTeam(TEAM_SSOBERSHUTZE, true) -- On force le joueur (deuxième argument important à préciser malgré le fait qu'il soit optionnel) à aller dans la TEAM rentré) self:Remove() -- Ici, on demande au "self" (lui-même, l'entité donc) de se supprimer lui-même après une utilisation. [A VERIFIER] : Il est possible que certains gamemodes gèrent déjà cette suppression après une utilisation mais nous pouvons directement le faire "normalement". end

A savoir que AdminSpawnable ne sert, à mes yeux, à rien. Je n'ai pas utilisé de fonction ENT:Initialize ce qui serait quand même conseillé, pour gérer la façon dont va retomber l'entité et d'autres paramètres à prendre en compte. Je mettrais dans ton exemple :

function ENT:Initialize() -- Regardez les arguments de ENT:Initialize(), à savoir qu'il n'y en a pas ici self:SetModel("models/german/headgear/grenadier_helm.mdl") self:PhysicsInit(SOLID_VPHYSICS) -- On gère la physique de l'entité (qui est ici solide) self:SetMoveType(MOVETYPE_VPHYSICS) -- Gère la façon dont il tombe self:SetSolid(SOLID_VPHYSICS) -- Gère la physique self:SetUseType(SIMPLE_USE) -- Le type d'utilisation de l'entité : Ici c'est un simple bouton d'utilisation préssée. end

Egalement et pour finir, sache que nous utilisons toujours self quand nous parlons de l'entité elle-même et nous sommes dans une fonction spécifique à l'entité. Il est important de comprendre toutes les lignes écrites au-dessus pour que tu comprennes un minimum ce que tu fais : Tu peux donc te renseigner sur chaque ligne (même si j'ai déjà mis des commentaires à côté) en allant sur le Wiki de Garry's Mod qui peut te donner de plus amples informations : voir ici[wiki.garrysmod.com].

Il ne tient plus qu'à toi de placer ma fonction ENT:Initialize() puis ma fonction ENT:Use().

Bonne journée/soirée!
Last edited by Diablos; May 9, 2016 @ 11:26am
Lonos May 9, 2016 @ 10:58am 
Merci pour ta réponse ! Je relis et essaie donc de comprend le code !
C'est trés gentils de ta pars de m'expliquer car cela ne me donne pas que le code mais aussi sa permet d'apprend a quoi sert car tu détailles TOUT !!
Merci Merci
Diablos May 9, 2016 @ 11:26am 
Y'a pas de soucis, je suis fait pour ça. Donner du code sans l'expliquer et sans que personne ne le comprenne, c'est ne pas le respecter. Pour avoir un code structuré et clair, il faut le comprendre. Si personne n'enseigne cette méthode, nous n'avancerons pas :steamhappy:.
Lonos May 9, 2016 @ 1:47pm 
Je ne sais pas pourquoi cela n'a pas fonctionné j'ai regardé dans entities et rien alors j'ai donc mis dans objet via darkrpmodification mais non plus le truc veut pas spawn
Une idée ?
Diablos May 9, 2016 @ 11:20pm 
Tu peux en effet mettre ton dossier dans "entities" dans le darkrpmodification. Ton nom de dossier est "entities/theentity.lua", "entities/theentity/shared.lua", ou autre chose ? L'entité n'est pas apparu dans le menu de Sandbox ou n'apparaît pas en cliquant sur l'icône ?
Pour le premier cas, une erreur de code ou de gestion des fonctions : essaie de différencier côté client, serveur et partagé (avec des fichiers cl_init, init et shared), en mettant tout de même des fonctions (car sinon tu peux tomber sur le deuxième problème au-dessus), comme faire function ENT:Draw() end dans le côté client.

De toute façon, j'essaie ça ce soir et je te dis alors la source du problème si tu ne la trouves pas.
Lonos May 10, 2016 @ 10:52am 
J'ai fait du coup (car je l'avais mal fait ) Tenue/lua/entities/tenuetest/shared.lua
Mais cela n'a pas fonctionné et la pour séparé je ne comprend pas bien ce qu'il faut faire
Diablos May 10, 2016 @ 11:25am 
Ton nom de dossier est en majuscule, en l'occurence on en met pas pour que le tout soit détecté. Tu fais ce test sur serveur dédié ou en solo ? Parfois, mettre des fichiers sur les serveurs solo ne fonctionnent pas car les côtés SERVEUR/CLIENT ne sont pas bien gérés comme nous le souhaitons.
Pour séparer un côté, c'est très simple. Il y'a trois côtés: Partagé (shared.lua), Client (cl_init.lua) et Serveur (init.lua). Dans chaque fichier correspondant, tu mets les fonctions adéquates.
Prenons par simple exemple la fonction ENT:Use[wiki.garrysmod.com]. Nous voyons à gauche de la fonction avec ses arguments un petit carré bleu, qui indique que cette fonction se déclare en côté serveur. Nous mettrons donc cette fonction dans un fichier serveur (init.lua). Les carrés jaunes indiquent quant à eux des côtés clients, et un mélange des deux indique forcément le côté. Je te dis de bien structurer par fichier comme cela par méthode logique, après pour être honnête il y'a tellement peu de choses à mettre dans ton entité que tu peux faire un fichier shared.lua en utilisant des conditions comme if CLIENT then return end (dans la fonction ENT:Use, pour arrêter le côté client car nous fonctionnons dans le côté serveur). Le problème est que parfois, on utilise des classes côté client dans une fonction côté serveur : le tout est alors de bien gérer son code. On peut alors aussi utiliser des conditions comme if CLIENT then BLABLAH elseif SERVER then BLABLAH (avec au lieu de BLABLAH le code bien évidemment) [on peut aussi mettre else car c'est soit client, soit serveur].

Pour finir avec cette histoire de côté, retiens que quand tu as une erreur "attempt to index 'theentity' (a nil value)", c'est soit car tu as mal initialisé/déclaré quelque chose (ici "theentity"), soit car tu te trompes de côté : On ne peut pas ouvrir une fenêtre dans le côté du serveur puisque c'est le client qui va la voir.

Bref, ne nous égarons pas du sujet : cette histoire de côté est utile sur des entités assez importantes, ici pour être honnête je ne pense pas que tu en aurais besoin : essaie de mettre le nom en minuscule ("tenue" au lieu de "Tenue"), puis redémarre. Essaie aussi sur serveur dédié et non en solo. Si ça ne marche pas, envoie le code entier de l'entité ici. J'essaierais de voir ça demain et de le tester pour voir un peu comment tout cela se passe.

Tiens-moi au courant! :steamhappy:
Lonos May 10, 2016 @ 11:49am 
OHHH mon dieu cela fonctionne !! ! !!
Je te kiff mais tu peux pas t'imaginer a quels point !!!!

PS : c'était la majuscule faussait tout !
Et il y a cette erreur dans la console j'essai regarder pourquoi j'ai suprimé les deux dernier setuse type et value ... mais rien .. Voici l'erreur :
[ERROR] addons/tenue/lua/entities/tenuetest/shared.lua:16: attempt to call method 'SetUseType' (a nil value) 1. unknown - addons/tenue/lua/entities/tenuetest/shared.lua:16
Last edited by Lonos; May 10, 2016 @ 12:02pm
Lonos May 10, 2016 @ 11:52am 
Juste un dernier ptit truc !
Tu vois je sais que avec Darkrp on peut choisir si cela nous tp ou met directement la tenue !
Mais moi je veux que sa ne TP pas lorrsqu'il achete via le F4 l'entities mais Je veux que sa TP si c'est d'autre metiers Et qu'il font F4/Metiers ...
Encore un autre truc le seul problème c'est que les joueurs ne sont pas obligé de passez par le commender ils peuvent toujours faire F4/Metiers et le prendre
Aurais tu une idée pour qu'ils ne puissent le prendre via F4 ?
Merci d'avance
Last edited by Lonos; May 10, 2016 @ 11:57am
Diablos May 10, 2016 @ 1:06pm 
Il faudrait que tu envoies ton code pour illustrer avec l'erreur. Si tu enlèves SetUseType() et le serveur n'offre pas une synchronisation automatique en direct, l'erreur persistera. Tu peux l'enlever, c'est des lignes standards utilisés par la majorité des addons mais vu qu'ici, on utilise déjà la fonction ENT:Use(), c'est franchement pas forcément nécessaire. On la rajoutera si on note un problème, mais personnellement je ne l'utilise pas trop et je m'y porte plutôt bien. Après, as-tu mis ces lignes dans la fonction ENT:Initialize() ?
Envoie donc le code.

Pour ton dernier message, je vois totalement ce que tu veux dire et je comprends le problème, d'où il vient. Il faudrait simplement que je fasse des tests, car pour le premier problème de téléportation c'est car GM.Config.norespawn est à false. Je vais regarder de plus près le code du DarkRP mais je pense qu'il faudra modifier un peu les cores pour faire en sorte qu'en fonction de la Team, le respawn ne se fait pas.
Pour le menu F4, il faut que tu rajoutes un customCheck qui bloquera les joueurs à pouvoir y'aller, ou encore avec un "NeedToChangeFrom". Etant donné que je préfère te donner une méthode la plus optimisée et fonctionnelle possible, je préfère faire ça demain et t'envoyer les bonnes procédures à suivre dès demain soir.

EDIT : Déjà trouvé pour la seconde méthode, je te donnerais les deux demain :steamhappy::steammocking:.

Bonne soirée!
Last edited by Diablos; May 10, 2016 @ 1:11pm
< >
Showing 1-15 of 41 comments
Per page: 1530 50