Vous lisez 4 fils de discussion
  • Auteur
    Messages
    • #60925
      Telmeth
      Participant

      Bonjour,
      en suivant le cours pour débutant : la base de la programation je me heurte a un probleme que je ne comprends pas.
      il s’agit du permier exercice demandé : créer un personnage de RPG.

      J’ai regardé le cours une seconde fois sans comprendre d’ou vient mon erreure?
      Arrivé a la partie  » –Génération des Compétance Principal  » c’est le Crash.

      Ici l’erreure :
      RGP Exercice:91: attempt to index field ‘Attaque’ (a nil value)
      stack traceback:

      il s’emble qu’il n’aime pas « Comp.Attaque.MainNue = PJ.For -3″
      Comme si il refusait de stocké le resulté du calcule.
      Il le fait pour le tableau  » –Génération des Compétance Principal  » dans sa globalité
      Je suis persuadé que c’est la forme de mon tableau qui est mal fait mais je ne comprend pas pourquoi.

      Par avance Merci.
      Ci-dessous le code en question

      — Dans cette exercice je vais créer un personnage nomé Julius avec des carractéristique en intéligence , force, constitution, volonté et perception.
      — Ces valeurs vont généré les stats du personnage tel que , l’observation , les points de vie et les dégats.

      — Cette ligne permet d’afficher des traces dans la console pendant l’éxécution
      –io.stdout:setvbuf(‘no’)
      — Cette ligne permet de déboguer pas à pas dans ZerobraneStudio
      –if arg{#arg] == « -debug » then require(« mobdebug »).start() end
      –Lexique
      –PJ= Personnage joueur

      –Création des Stats du PJ
      PJ = {}
      PJ.Nom = « Julius »
      PJ.Int = 5
      PJ.For = 4
      PJ.Con = 4
      PJ.Per = 2
      PJ.Vol = 7

      –Génération des Point de vie
      PJ.Vie = (PJ.Con + PJ.For + PJ.Vol)
      –Génération des dégats de base
      PJ.Degat = (PJ.For)
      –Génération des défenses de base
      PJ.Defense = (PJ.Con)

      –Table des Objets
      ToutLesObjets = {}
      ToutLesObjets.Eppe = Eppe
      ToutLesObjets.Bouclier = Bouclier
      ToutLesObjets.Sac = Sac

      –Objet possedé par le personnage
      Objet = {}
      Objet.Eppe = 2
      Objet.Bouclier = 1
      Objet.Sac = 1

      –Details des objets
      Eppe = {}
      Eppe.Encombrement = 3
      Eppe.Degat = 1
      Eppe.Attaque = 5
      Bouclier = {}
      Bouclier.Encombrement = 3
      Bouclier.Parrade = 5
      Bouclier.Defense = 1
      Sac = {}
      Sac.EspaceLibre = 10
      Sac.EspaceOccupe = ((Objet.Eppe * Eppe.Encombrement) + (Objet.Bouclier * Bouclier.Encombrement))
      Sac.Encombrement = (Sac.EspaceLibre-Sac.EspaceOccupe)

      –Génération des Compétance Principal
      Comp = {}
      Comp.Attaque = {}
      Comp.Attaque.MainNue = PJ.For -3
      Comp.Attaque.Eppe = (Comp.Attaque.MainNue + Eppe.Attaque )
      Comp.Degat = {}
      Comp.Degat.MainNue = PJ.Degat
      Comp.Degat.Eppe = Comp.Degat.MainNue + Eppe.Degat
      Comp.Parrade = {}
      Comp.Parrade.MainNue = PJ.Per -3
      Comp.Parrade.Bouclier = Comp.Parrade.MainNue + Bouclier.Parrade
      Comp.Defense = {}
      Comp.Defense.Nue = PJ.Defense
      Comp.Defense.Bouclier = Comp.Defense.Nue + Bouclier.Defense

      –Génération des Compétance secondaire du PJ
      Comp = {}
      Comp.Observation = PJ.Per + PJ.Con
      Comp.Vigilance = PJ.Per + PJ.Vol
      Comp.Endurance = PJ.Con + PJ.Vol
      Comp.Concentration = PJ.Int + PJ.Vol
      Comp.Memoire = PJ.Int + PJ.Per

      –Test d’affichage

      print(« Je m’appel »,PJ.Nom)
      print(« Ma santé est de »,PJ.Vie)
      print(« l’espace dans mon Sac est de »,Sac.EspaceLibre)
      print(« Actuellement les emplacements utilisé sont de »,Sac.EspaceOccupe)
      print(« L’espace disponnible dans mon Sac actuellement est de »,Sac.Encombrement)
      print(« PJ.For »,PJ.For)
      print(« Eppe.Attaque »,Eppe.Attaque)

      print(« Comp.Memoire »,Comp.Memoire)
      print(« Comp.Endurance « ,Comp.Endurance )

      — Ici les Testes qui ne passe pas. ( La Table competance Principal)
      print(« Comp.Attaque.MainNue »,Comp.Attaque.MainNue)
      print(« Comp.Defense.Nue »,Comp.Defense.Nue )
      print(« Comp.Attaque.MainNue »,Comp.Attaque.MainNue)
      print(Comp.Attaque.Eppe )
      print(Eppe.Attack )
      print(« degat main nue »,Comp.Degat.MainNue)
      print(« degat avec mon arme »,Comp.Degat.Eppe)
      print(« compétance d’attaque à l’éppé »,Comp.Attaque.Eppe)
      print(« Parrade au bouclier »,Comp.Parrade.Bouclier)
      print(« la defense au bouclier »,Comp.Defense.Bouclier)

    • #60926
      Telmeth
      Participant
    • #60932
      GamerPsy
      Participant
      -- Dans cette exercice je vais créer un personnage nomé Julius avec des carractéristique en intéligence , force, constitution, volonté et perception.
      -- Ces valeurs vont généré les stats du personnage tel que , l'observation , les points de vie et les dégats.
      
      -- Cette ligne permet d'afficher des traces dans la console pendant l'éxécution
      --io.stdout:setvbuf('no')
      -- Cette ligne permet de déboguer pas à pas dans ZerobraneStudio
      --if arg{#arg] == "-debug" then require("mobdebug").start() end
      --Lexique
      --PJ= Personnage joueur
      
      --Création des Stats du PJ
      PJ = {}
      PJ.Nom = "Julius"
      PJ.Int = 5
      PJ.For = 4
      PJ.Con = 4
      PJ.Per = 2
      PJ.Vol = 7
      
      --Génération des Point de vie
      PJ.Vie = (PJ.Con + PJ.For + PJ.Vol)
      --Génération des dégats de base
      PJ.Degat = (PJ.For)
      --Génération des défenses de base
      PJ.Defense = (PJ.Con)
      
      --Table des Objets
      ToutLesObjets = {}
      ToutLesObjets.Eppe = Eppe
      ToutLesObjets.Bouclier = Bouclier
      ToutLesObjets.Sac = Sac
      
      --Objet possedé par le personnage
      Objet = {}
      Objet.Eppe = 2
      Objet.Bouclier = 1
      Objet.Sac = 1
      
      --Details des objets
      Eppe = {}
      Eppe.Encombrement = 3
      Eppe.Degat = 1
      Eppe.Attaque = 5
      Bouclier = {}
      Bouclier.Encombrement = 3
      Bouclier.Parrade = 5
      Bouclier.Defense = 1
      Sac = {}
      Sac.EspaceLibre = 10
      Sac.EspaceOccupe = ((Objet.Eppe * Eppe.Encombrement) + (Objet.Bouclier * Bouclier.Encombrement))
      Sac.Encombrement = (Sac.EspaceLibre-Sac.EspaceOccupe)
      
      --Génération des Compétance Principal
      Comp = {}
      Comp.Attaque = {}
      Comp.Attaque.MainNue = PJ.For -3
      Comp.Attaque.Eppe = (Comp.Attaque.MainNue + Eppe.Attaque )
      Comp.Degat = {}
      Comp.Degat.MainNue = PJ.Degat
      Comp.Degat.Eppe = Comp.Degat.MainNue + Eppe.Degat
      Comp.Parrade = {}
      Comp.Parrade.MainNue = PJ.Per -3
      Comp.Parrade.Bouclier = Comp.Parrade.MainNue + Bouclier.Parrade
      Comp.Defense = {}
      Comp.Defense.Nue = PJ.Defense
      Comp.Defense.Bouclier = Comp.Defense.Nue + Bouclier.Defense
      
      --Génération des Compétance secondaire du PJ
      -- Comp = {} ceci réinitialise ton tableau Comp !
      Comp.Observation = PJ.Per + PJ.Con
      Comp.Vigilance = PJ.Per + PJ.Vol
      Comp.Endurance = PJ.Con + PJ.Vol
      Comp.Concentration = PJ.Int + PJ.Vol
      Comp.Memoire = PJ.Int + PJ.Per
      
      --Test d'affichage
      
      print("Je m'appel",PJ.Nom)
      print("Ma santé est de",PJ.Vie)
      print("l'espace dans mon Sac est de",Sac.EspaceLibre)
      print("Actuellement les emplacements utilisé sont de",Sac.EspaceOccupe)
      print("L'espace disponnible dans mon Sac actuellement est de",Sac.Encombrement)
      print("PJ.For",PJ.For)
      print("Eppe.Attaque",Eppe.Attaque)
      
      print("Comp.Memoire",Comp.Memoire)
      print("Comp.Endurance ",Comp.Endurance )
      
      -- Ici les Testes qui ne passe pas. ( La Table competance Principal)
      print("Comp.Attaque.MainNue",Comp.Attaque.MainNue)
      print("Comp.Defense.Nue",Comp.Defense.Nue )
      print("Comp.Attaque.MainNue",Comp.Attaque.MainNue)
      print(Comp.Attaque.Eppe )
      print(Eppe.Attaque ) --Erreur de nommage corrigée
      print("degat main nue",Comp.Degat.MainNue)
      print("degat avec mon arme",Comp.Degat.Eppe)
      print("compétance d'attaque à l'éppé",Comp.Attaque.Eppe)
      print("Parrade au bouclier",Comp.Parrade.Bouclier)
      print("la defense au bouclier",Comp.Defense.Bouclier)
    • #60933
      GamerPsy
      Participant

      J’ai corrigé deux erreurs, tu réinitialisais ton tableau Comp et tu avais fait de l’anglais pour Attaque alors que tu l’as déclaré en français.
      Je te laisse relire et voir, j’ai commenté les deux lignes.

      Bon code 😉

    • #60946
      Telmeth
      Participant

      Merci GamerPsy !

      Je n’avais pas prété à ce détails !!

      tu as résolue mon Probleme 🙂

Vous lisez 4 fils de discussion
  • Vous devez être connecté pour répondre à ce sujet.