Communauté

Je me présente et j...
 
Notifications
Retirer tout

Je me présente et je vous partage mes projets

6 Posts
2 Utilisateurs
0 Reactions
306 Vu
(@naturixiii)
Active Member
Inscription: Il y a 9 mois
Posts: 4
Début du sujet  

Salut ! Je suis nouveau dans cette communauté,

je suis interessé au code depuis environ 1 ans, j'avais commencé une série de tutos pour apprendre le java (c'est pas par là qu'il faut commencer je pense) mais j'ai assez vite arrêter. Jusqu'à ces dernières semaines ou je suis tombé sur une série de tutos pour apprendre le Lua. Mais çà allait pas très en profondeur et j'en voulais plus. J'ai recherché et je suis tombé sur les vidéos de Gamecodeur, et la, je crois que c'est la première fois que je remercie une "publicité", j'ai découvert son école et je me suis avalé la formation aux bases du Lua en deux soirées et demi.


   
Citation
(@naturixiii)
Active Member
Inscription: Il y a 9 mois
Posts: 4
Début du sujet  

J'ai donc terminé d'apprendre les bases.

J'ai expérimenté un peu les listes/tableaux et j'ai voulu faire en sorte que quand la vie d'un personnage est < ou = à 0, le personnage est enlevé de la liste. J'ai procédé comme tel :

function killSomeone (personnage, index)
   if personnage. vies <= 0 then
   table.remove(personnage, [ ])
   end
end

Mais Lua me dit : unexpected symbol near ']'

J'ai déjà rencontré cette erreur mais alors là je ne sais pas ou ce qu'est le problème.

Ce message a été modifié Il y a 9 mois parNaturixIII

   
RépondreCitation
(@gamerpsy)
Active Member
Inscription: Il y a 6 ans
Posts: 14
 

@naturixiii en allant sur la doc de Lua on voit que la fonction que tu utilises est défini pour être écrite comme suit : 

table.remove (table, pos)

Plus concrètement regarde le lien que je te mets , tu pourras corriger ton erreur.
https://www.codecademy.com/resources/docs/lua/tables/remove
Là comme ça je dirais, sans avoir testé que si tu remplaces :

 table.remove(personnage, [ ])

par 

 table.remove(personnage, index)

y a des chances pour selon comment tu gères ton nommage que ça marche 🙂

Ce message a été modifié Il y a 7 mois parGamerPsy

   
RépondreCitation
(@naturixiii)
Active Member
Inscription: Il y a 9 mois
Posts: 4
Début du sujet  

@gamerpsy déso de répondre si tardivement j'avais passé à autre chose depuis le temps. Merci pour la réponse ! Ca  marche 😀 en plus :

allies = {}
allies [1] = {}
allies [1]. vies = 27

function killSomeone (personnage, index)
    if personnage. vies <= 0 then
    table.remove(personnage, index)
  end
end

killSomeone (allies [1])


   
RépondreCitation
(@gamerpsy)
Active Member
Inscription: Il y a 6 ans
Posts: 14
 

@naturixiii j'ai du mal à visualiser pourquoi ça marche avec un seul paramètre avec ton exemple au lieu des deux mais si c'est ok bah tant mieux 🙂


   
RépondreCitation
(@naturixiii)
Active Member
Inscription: Il y a 9 mois
Posts: 4
Début du sujet  

J'ai terminé un projet de jeu de rôle qui m'a donné du fil à retordre. Si vous avez des conseils je prends. Le voilà : personnage = {}
personnage["NaturixIII"] = {
stats = {
age = 24,
brutForce = 10,
robustesse = 9, 
knowledge = 16,
maxRunSpeed = 10,
vies = 10
},
inventaire = {
objet1 = "vide",
objet2 = "vide",
objet3 = "vide",
objet4 = "vide",
objet5 = "vide",
objet6 = "vide"
},
armure = {
BaseSlot = "Tunique de voyageur",
slotHead = "vide",
slotBody = "vide",
slotArmLeft = "vide",
slotArmRight = "vide",
slotHandLeft = "vide",
slotHandRight = "vide",
slotLegs = "vide",
slotFoots = "vide"
},
emplacements = {
emplacements1 = "vide",
emplacements2 = "vide",
emplacements3 = "vide",
emplacements4 = "vide",
emplacements5 = "vide",
emplacements6 = "vide",
emplacements7 = "vide",
emplacements8 = "vide"
}
}

personnage["zombie1"] = {
stats = {
age = "mort",
brutForce = 6,
robustesse = 8,
knowledge = 1,
maxRunSpeed = 5,
vies = 10
}
}

-- DEBUT DE LA CONFIGURATION DU SYSTEME DE COMBAT --
function frapper(attackerName, defenderName)
local attacker = personnage[attackerName]
local attackerStats = attacker. stats
local defender = personnage[defenderName]
local defenderStats = defender. stats

--Calcul des dégats
local dommages = attackerStats. brutForce - defenderStats. robustesse

-- Message d'attaque
print(attackerName .. " a touché ".. defenderName .. " et lui a infligé ".. dommages .. " dommages.")

-- Affichage des vies restantes du défenseur
print("Le défenseur " .. defenderName .. " a " .. defenderStats.vies .. " vies restantes")

--Application des dégats au défenseur
if defenderStats. vies <= 0 then
print(defenderName .. " est mort et a été exclu de la partie.")
personnage[defenderName] = nil
end
end
function charger(attackerName, defenderName)
local attacker = personnage[attackerName]
local attackerStats = attacker.stats
local defender = personnage[defenderName]
local defenderStats = defender.stats

-- Calcul des dégâts
local dommages = attackerStats.brutForce + attackerStats.maxRunSpeed - defenderStats.robustesse

-- Application des dégâts au défenseur
defenderStats.vies = defenderStats.vies - dommages

-- Message d'attaque
print(attackerName .. " a chargé ".. defenderName .. " et lui a infligé ".. dommages .. " dommages.")

-- Retirer le défenseur de la table s'il est mort
if defenderStats.vies <= 0 then
print(defenderName .. " est mort et a été exclu de la partie.")
personnage[defenderName] = nil
end

-- Affichage des vies restantes du défenseur
if defenderStats. vies > 0 then
print("Le défenseur " .. defenderName .. " a " .. defenderStats.vies .. " vies restantes")
end
end
-- FIN DE LA CONFIGURATION DU SYSTEME DE COMBAT --

frapper("NaturixIII", "zombie1")

----------------------------------------------------------------------------------------------------------------------

NaturixIII a touché zombie1 et lui a infligé 2 dommages.
Le défenseur zombie1 a 10 vies restantes

Ce message a été modifié Il y a 6 mois 3 fois parNaturixIII

   
RépondreCitation
Share:

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.