Les premiers pas pour une fiche JDR interractive

6 réflexions au sujet de “Les premiers pas pour une fiche JDR interractive”

  1. Waouh, j’ai rien compris, hormis que tu aimes les jeux de rôle ?
    Peux tu nous préciser ton deuxième paragraphes, car je ne sais pas ce que peut être un un calculateur de modificateur et encore moins ce qu’il doit faire ?
    Après je pourrais peut-être t’aider ?

  2. Haha, désolé ! Je suis à mes débuts, c’est encore très brouillons (c’est pourquoi je n’ai pas lancé de projet ! Je me sert juste de mon but final pour faire des entraînements « extérieurs » à ceux proposé afin de tester un peu les fonctions, et m’entraîner au vu du jour où je m’y mettrais vraiment x) )

    Alors en gros, un personnage possède des stats (Respectivement, Force / Dextérité / Constitution / Sagesse / Charisme), une valeur (de 0 à X) et un modificateur associé (… -1 /0 / +1 / +2 / +3).

    SAUF QUE
    Si la valeur est <10, le calcul est différent, de même si la valeur est supérieur à 25 !

    Du coup, j'ai réussi (juste après) mais le code est un peu "long" pour la fonction je trouve :

    hero = {}

    hero.force = 9
    hero.dex = 16
    hero.cons = 16
    hero.int = 9
    hero.sag = 25
    hero.cha = 30

    function Modifstat(personnage, stat)
    if personnage.force <10 or personnage.dex <10 or personnage.cons <10 or personnage.int <10 or personnage.sag <10 or personnage.cha 10 and personnage.force 10 and personnage.dex 10 and personnage.cons 10 and personnage.int 10 and personnage.sag 10 and personnage.cha 25 or personnage.dex >25 or personnage.cons >25 or personnage.int >25 or personnage.sag >25 or personnage.cha >25 then
    ModifFor = (personnage.force – 18)
    ModifDex = (personnage.dex – 18)
    ModifCons = (personnage.cons – 18)
    ModifInt = (personnage.int – 18)
    ModifSag = (personnage.sag – 18)
    ModifCha = (personnage.cha – 18)
    end
    end
    Modifstat(hero, force)
    Modifstat(hero, dex)
    Modifstat(hero, cons)
    Modifstat(hero, int)
    Modifstat(hero, sag)
    Modifstat(hero, cha)

    print(« Force du héro », ModifFor)
    print(« Dex du héro », ModifDex)
    print(« Constit du héro », ModifCons)
    print(« Int du héro », ModifInt)
    print(« Sag du héro », ModifSag)
    print(« Cha du héro », ModifCha)

    Long, mais au moins, il fonctionne… Même s’il manque de practicité.

  3. Erratum, voilà le bon, l’autre c’est quand j’ai essayé de le modifié (celui ci-dessus ne fonctionne pas donc) :

    hero = {}

    hero.force = 9
    hero.dex = 16
    hero.cons = 16
    hero.int = 9
    hero.sag = 25
    hero.cha = 30

    boss = {}

    boss.force = 19
    boss.dex = 9
    boss.cons = 25
    boss.int = 8
    boss.sag = 25
    boss.cha = 30

    function Modifstat(personnage, stat)
    if personnage.force =11 and personnage.int=26 then
    ModifFor = (personnage.force – 18)
    end
    if personnage.dex 11 and personnage.int =26 then
    ModifDex = (personnage.dex – 18)
    end
    if personnage.cons 11 and personnage.cons =26 then
    ModifCons = (personnage.cons – 18)
    end
    if personnage.int 11 and personnage.int =26 then
    ModifInt = (personnage.int – 18)
    end
    if personnage.sag 11 and personnage.sag =26 then
    ModifSag = (personnage.sag – 18)
    end
    if personnage.cha 11 and personnage.cha =26 then
    ModifCha = (personnage.cha – 18)
    end
    end

    Modifstat(hero, force)
    Modifstat(hero, dex)
    Modifstat(hero, cons)
    Modifstat(hero, int)
    Modifstat(hero, sag)
    Modifstat(hero, cha)

    print(« Force du héro », ModifFor)
    print(« Dex du héro », ModifDex)
    print(« Constit du héro », ModifCons)
    print(« Int du héro », ModifInt)
    print(« Sag du héro », ModifSag)
    print(« Cha du héro », ModifCha)

    Modifstat(boss,force)
    Modifstat(boss,dex)
    Modifstat(boss,int)
    Modifstat(boss,cha)

    print(« Force du boss »,ModifFor)
    print(« Dex du boss »,ModifDex)
    print(« Int du boss »,ModifInt)
    print(« Cha du boss »,ModifCha)

  4. Hey salut, dis-moi, tu es sûr que ce code fonctionne et que tu l’as testé ? A vue d’œil j’ai des doutes !

    L’opérateur de comparaison dans les if serait plutôt des `==` plutôt qu’un simple `=` et hormis le premier if, tout les autres n’en ont même plus ! De même pour les `print`, j’ai grandement l’impression que ça doit t’afficher des « nil » ou des valeurs d’adresses de table tout ça. Si tu veux afficher la force de ton hero, je dirais que ça serait plutôt un `print(hero.force)` au lieu d’un `print(hero,force)`. La programmation c’est très pointilleux, une toute petite bourde et c’est tout le programme qui en pâtit !

    C’est vrai que « calculateur de modificateur » pour des statistiques, ça fait peur ! A la lecture du code, je crois que tu essaye simplement de modifier la valeur d’une statistique de ton personnage si la valeur dépasse une certaine quantité. J’ai réfléchi un peu à ton souci et j’ai peut être une piste pour toi (A moins que j’ai rien compris du tout c’est possible lol) :

    `hero = {}
    hero.force = 9
    hero.dex = 16
    hero.cons = 16
    hero.int = 9
    hero.sag = 25
    hero.cha = 30

    print(« valeur départ : hero.dex = « ..hero.dex);

    — On passe une statistique en paramètre de la fonction
    function ModifStat(stat)
    — Si la valeur dépasse une certaine quantité : on la diminue de 18 et en renvoit cette nouvelle valeur !
    if (stat == 11 or stat == 16) then return (stat – 18) end

    — Sinon rien ne change et on renvoit la même valeur qu’en entrée !
    return stat

    end

    hero.dex = ModifStat(hero.dex)
    print(« Valeur après modif : hero.dex = « ..hero.dex);`

    C’est déjà beaucoup plus court comme ça, mais ça ne répond peut être pas à tes besoins? En tout cas si ça peut t’aider un peu, c’est top !

    Bon code à toi et bon courage pour la suite de ton apprentissage 🙂

  5. Mais…! C’est pas le bon xD Celui-là ne fonctionne pas. Je poste un exemple du bon, un peu mieux présenté sur pastebin (peut-être plus pratique pour partager du code, si j’ai bien compris ?)

    https://pastebin.com/5nLxm5G0 => Code fonctionnant mais très long (vu que j’ai… 6 statistiques).

    En gros, j’ai plusieurs statistique avec une valeur et un modificateur (une autre entité à part entière donc !). Si j’ai bien compris ton code, il remplace ma valeur dex (par exemple, 16) par une autre valeur dex. Alors que, ce que j’amerais réussir à faire, c’est que la fonction puisse reconnaître :

    – Personnage (héro, bosse, nom du PNJ, etc..) (afin de pouvoir généraliser la fonction qui calcule le modificateur à toutes les fiches, et pas à une seule)
    – La Statistique associé (Force, Dex, Constit, Int, Sag et Cha)
    – Et calcul le modificateur pour le personnage en question avant de l’insérer dans la variable « ModifStat » qui sera utilisable plus tard.

    J’espère avoir réussi à être plus clair, merci pour ton aide 🙂 !

  6. Salut,
    C’est exactement ce qu’Hydrogene à répondu.
    Il t’a fait une fonction générale qui peut s’appliquer à n’importe quelle caractéristique de ton perso.
    Elle ne fait qu’un calcul et renvoie un résultat.

    Il faut revoir la vidéo sur les fonctions et bien comprendre les variables locales, les paramètres et les valeurs de retour.
    Après c’est plus clair.

Laisser un commentaire

Dialoguez avec les autres membres de la gamecodeur school.

Accédez maintenant à notre serveur Discord privé : Entraide, Game Jams, Partage de projets, etc.

Vous devez être membre de la Gamecodeur School Premium pour être autorisé à accéder au serveur.