Module 'item' Not Found, Module 'inimigo' Not Found e Stack Overflow, ME AJUDEM A CORRIGIR

No video: Introdução a Programação Lua (Aula 22) estou com diversos problemas no script, segui passo a passo atenciosamente, mas ainda sim esta dando esses erros e não consigo resolver: Module ‘item’ Not Found, Module ‘inimigo’ Not Found e Stack Overflow,

Toda vez que saio e entro do sCiTE aparecem esses erros nessas ordens

O código: (game.lua)

local player = require(‘entidades/player’)
local pocao = require(‘entidades/pocao’)
local robo = require(‘entidades/robo’)

– Criação de instancias das classes criadas
local player1 = player.novo(‘Orientadão’)
local player2 = player.novo(‘Objetoncio’)

local robo1 = robo.novo()
local robo2 = robo.novo()
local robo3 = robo.novo_bomber()

Eu fiz tudo exatamente igual ao do vídeo, apenas substitui os zumbis por robos,
assisti o video até os minutos 11:50 pra 12:00, pelo óbvio motivo de não conseguir resolver o erro

Espero que me ajudem.

1 curtida

Olá! Você pode mandar todos os códigos? (player.lua, pocao.lua, robô.lua, etc). Isso vai facilitar na hora de encontrar o erro. Se possível, formate seu código com ( ``` ), desta forma:

Screenshot_20201220-132520

Assim, ficará deste jeito:
Screenshot_20201220-133028

Bom, você poderia mandar os outros módulos? :smile:

-- player.lua
local player = {}

function player.novo(nome)
	return {
		vida = 200,
		pocoes = {},
		nome = nome
	}
end

return player
-- item.lua
local item = {}

function item.novo(tipo, funcao, custo)
	return {
		tipo = tipo,
		funcao = funcao,
		custo = custo
	}
end

return item
-- inimigo.lua

local inimigo = {}

function inimigo.novo(forca, categoria)
	return {
		forca = forca,
		categoria = categoria
	}
end

return inimigo
-- pocao.lua
local item = require ('entidades/item')
local pocao = {}

function pocao.novo()
	local pocao = item.novo('pocao', 'vida', 50)
	pocao.vida = 100
	return pocao
end

return pocao
--robo.lua
local robo = require('entidades/inimigo')
local robo = {}

function robo.novo()
	local robo = robo.novo(50, 'robos')
	robo.rastreia = true
	robo.explode = false
	return robo
end

function robo.novo_bomber()
	local robo = robo.novo()
	robo.rastreia = false
	robo.explode = true
	return robo
end


return robo
-- game.lua
local player = require('entidades/player')
local pocao = require('entidades/pocao')
local robo = require('entidades/robo')

-- Criação de instancias das classes criadas
local player1 = player.novo('Orientadão')
local player2 = player.novo('Objetoncio')

local robo1 = robo.novo()
local robo2 = robo.novo()
local robo3 = robo.novo_bomber()

Está aqui, desse jeito?

1 curtida

Exatamente desse jeito!

Bom, aparentemente o problema estava no robo.lua.
A variável “robo” está sendo sobreescrevida(não sei se essa palavra existe).

Primeiro é usado:
local robo = require('entidades/inimigo')
depois:
local robo = {}

image

Para resolver o problema, simplesmente troquei o nome da variável “robo” por “inimigo”.

image

robo.lua
local inimigo = require('entidades/inimigo')
local robo = {}

function robo.novo()
	local robo = inimigo.novo(50, 'robos')
	robo.rastreia = true
	robo.explode = false
	return robo
end

function robo.novo_bomber()
	local robo = inimigo.novo()  -- tente colocar algum valor aqui
	robo.rastreia = false
	robo.explode = true
	return robo
end


return robo


Meu explorer ficou assim:

Pasta entidades:
image

Pasta jogo:
image

Caso precise do arquivo:
Jogo.zip (1,6,KB)

Espero ter ajudado, qualquer coisa é só perguntar :smiley:

Cara, MUITO OBRIGADO!
mas sério, não sei como te agradecer, obrigado! Funcionou perfeitamente.

1 curtida

Ae! Que bom que deu certo!