Retour à la leçonMission
Mission : sauver un inventaire de crafting corrompu
Diagnostiquer un bug de partage de mémoire entre deux inventaires et une longueur imprévisible, puis corriger le script.
Contexte
Un script de crafting FiveM prépare un inventaire de secours à partir de l'inventaire principal du joueur :
lua
local mainInventory = { "potion", "epee", "bouclier" }
local backupInventory = mainInventory
table.remove(backupInventory, 2) -- le joueur "vend" une copie de l'épée depuis le backup
print(#mainInventory) -- affiche 2, alors que le joueur n'a RIEN vendu de son inventaire principal !
mainInventory[5] = "torche"
mainInventory[4] = nil
print(#mainInventory) -- résultat imprévisible selon le testeurLe créateur ne comprend pas pourquoi vendre depuis backupInventory fait disparaître l'épée de mainInventory, ni pourquoi #mainInventory donne des résultats différents entre deux tests.