-- LUA Script - precede every function and global member with lowercase name of script + '_main' -- check these are nil first so we can carry over from over levels or saves etc if needs be g_ironscollected = g_ironscollected or 0 g_copperscollected = g_copperscollected or 0 g_leadscollected = g_leadscollected or 0 g_carboncollected = g_carboncollected or 0 -- added the other material items here if needed local oretomake = 1 orenames = { "Iron Ingot", "Copper Ingot", "Lead Ingot", "Steel Ingot"} ironneeded = { 2, 0, 0, 0 } copperneeded = { 0, 2, 0, 0 } leadneeded = { 0, 0, 2, 2 } carbonneeded = { 0, 0, 0, 2 } local maxore = 4 function furnace_init(e) end local pressed = false function furnace_main(e) --check player is near the funace if GetPlayerDistance(e) < 80 then --show shop text TextCenterOnX( 50, 59, 1, "Press 1 ~ " .. maxore .. " to select the Ingot to craft" ) TextCenterOnX( 50, 62, 1, "Press E to Craft a " .. orenames[oretomake] ) --show how much player has in inventory TextCenterOnX( 50, 65, 1, "No of Iron Ore = " .. g_ironscollected .. " No of Copper Ore = " .. g_copperscollected .. " No of Lead Ore = " .. g_leadscollected .. " No of Carbon = " .. g_carboncollected) --check player presses a number key and it corresponds to our items above if g_Scancode > 1 and g_Scancode <= maxore+1 then -- +1 to maxore because scancodes start at 2 for number 1 oretomake = g_Scancode-1 end --find out if player has enough of each material seperately local haveiron = g_ironscollected >= ironneeded[oretomake] local havecopper = g_copperscollected >= copperneeded[oretomake] local havelead = g_leadscollected >= leadneeded[oretomake] local havecarbon = g_carboncollected >= carbonneeded[oretomake] --now we will show number in red if player doesn't have enough if haveiron then TextCenterOnX(50,68,1,ironneeded[oretomake]) else TextCenterOnXColor(50,68,1,ironneeded[oretomake],255,0,0) end TextCenterOnX(50,71,1,"Iron Ore required") if havecopper then TextCenterOnX(50,74,1,copperneeded[oretomake]) else TextCenterOnXColor(50,74,1,copperneeded[oretomake],255,0,0) end TextCenterOnX(50,77,1,"Copper Ore required") if havelead then TextCenterOnX(50,80,1,leadneeded[oretomake]) else TextCenterOnXColor(50,80,1,leadneeded[oretomake],255,0,0) end TextCenterOnX(50,83,1,"Lead Ore required") if havecarbon then TextCenterOnX(50,80,1,carbonneeded[oretomake]) else TextCenterOnXColor(50,86,1,carbonneeded[oretomake],255,0,0) end TextCenterOnX(50,89,1,"Carbon required") --if player presses E to craft if g_KeyPressE == 1 then if not pressed then pressed = true --not enough materials if haveiron and havecopper and havelead and havecarbon then PlaySound(e,1) g_ironscollected = g_ironscollected - ironneeded[oretomake] g_copperscollected = g_copperscollected - copperneeded[oretomake] g_leadscollected = g_leadscollected - leadneeded[oretomake] g_carboncollected = g_carboncollected - carbonneeded[oretomake] local oreName = orenames[oretomake] PromptDuration( "You Crafted a " .. oreName, 2000 ) if oreName == "Iron Ingot" then g_iingot = g_iingot + 1 g_carboncollected = g_carboncollected + 1 elseif oreName == "Copper Ingot" then g_cingot = g_cingot + 1 g_carboncollected = g_carboncollected + 1 elseif oreName == "Lead Ingot" then g_lingot = g_lingot + 1 g_carboncollected = g_carboncollected + 1 elseif oreName == "Steel Ingot" then g_singot = g_singot + 1 end else PromptDuration("You do not have enough Ore to craft an " .. orenames[oretomake], 2000) end end else pressed = false end end end