Je me présente et je vous partage mes projets
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.
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.
@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 🙂
@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])
@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 🙂
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
- 6 Forums
- 264 Sujets
- 911 Posts
- 0 En ligne
- 45.6 {numéro}K Membres