-- 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 if g_ironscollected == nil then g_ironscollected=0 end if g_copperscollected == nil then g_copperscollected=0 end if g_leadscollected == nil then g_leadscollected=0 end if g_carboncollected == nil then g_carboncollected=0 end -- added the other material items here if needed --don't change local oretomake = 1 orename = {} ironneeded = {} copperneeded = {} leadneeded = {} carbonneeded = {} --add other materials here too local haveiron = 0 local havecopper = 0 local havelead = 0 local havecarbon = 0 --ore names for showing in shop menu orename[1] = "Iron Ingot" orename[2] = "Copper Ingot" orename[3] = "Lead Ingot" orename[4] = "Steel Ingot" --etc --list out each item requirements here ironneeded[1] = 2 copperneeded[2] = 2 leadneeded[3] = 2 leadneeded[4] = 2 carbonneeded[4] = 2 --etc --number of items in your list (above) local maxore = 4 function furnace_init(e) end function furnace_main(e) --check player is near the funace if GetPlayerDistance(e) < 80 then --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 --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 "..orename[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) --find out if player has enough of each material seperately if ironneeded[oretomake] ~= nil then if g_ironscollected >= ironneeded[oretomake] then haveiron = 1 else haveiron = 0 end end if copperneeded[oretomake] ~= nil then if g_copperscollected >= copperneeded[oretomake] then havecopper = 1 else havecopper = 0 end end if leadneeded[oretomake] ~= nil then if g_leadscollected >= leadneeded[oretomake] then havelead = 1 else havelead = 0 end end if carbonneeded[oretomake] ~= nil then if g_carboncollected >= carbonneeded[oretomake] then havecarbon = 1 else havecarbon = 0 end end --now we will show number in red if player doesn't have enough if haveiron == 1 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 == 1 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 == 1 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 == 1 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 and pressed == 0 then pressed = 1 --not enough materials if haveiron == 0 and havecopper == 0 and havelead == 0 then PromptDuration("You do not have enough Ore to craft an "..orename[oretomake],2000) end --crafting is successful if haveiron == 1 and havecopper == 1 and havelead == 1 and havemeat == 1 then PlaySound(e,1) g_ironscollected = g_ironscollected-ironneeded[oretomake] g_coppercollected = g_coppercollected-copperneeded[oretomake] g_leadscollected = g_leadscollected-leadneeded[oretomake] g_carboncollected = g_carboncollected-carbonneeded[oretomake] if orename[oretomake] == orename[1] then g_iingot = g_iingot + 1 g_carboncollected = g_carboncollected + 1 PromptDuration("You Crafted a "..orename[oretomake],2000) elseif orename[oretomake] == orename[2] then g_cingot = g_cingot + 1 g_carboncollected = g_carboncollected + 1 PromptDuration("You Crafted a "..orename[oretomake],2000) elseif orename[oretomake] == orename[3] then g_lingot = g_lingot + 1 g_carboncollected = g_carboncollected + 1 PromptDuration("You Crafted a "..orename[oretomake],2000) elseif orename[oretomake] == orename[4] then g_singot = g_singot + 1 PromptDuration("You Crafted a "..orename[oretomake],2000) end if g_KeyPressE == 0 then pressed = 0 end end end end end