Forked from MediaResAchaea/gist:64c93c3d2e829bd03f41baf2d8f1c3e5
Last active
April 24, 2023 03:25
-
-
Save DigitalWarzone/5764d7aa933ba701c2c9a837b4c9d825 to your computer and use it in GitHub Desktop.
Updated zdirectory with unit pricing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function zgui.extractNumber(s) | |
local num = 1 | |
if string.match(s, "(%d+)") then | |
num = string.match(s, "(%d+)") | |
end | |
return tonumber(num) -- Convert the matched string to a number | |
end | |
function zgui.directoryCheck(itemCheck, cityCheck, localCheck) | |
zgui.cityList = {"Ashtan", "Cyrene", "Eleusis", "Hashan", "Mhaldor", "Targossas", "Delos"} | |
if zgui.dirCheck then | |
cecho("\n<red>Already Checking Items Please Wait") | |
else | |
zgui.dirCheck = true | |
if zgui.dirCheckTimer then killTimer(zgui.dirCheckTimer) end | |
zgui.dirCheckItem = string.lower(itemCheck) | |
zgui.dirDisplay = zgui.dirDisplay or {} | |
if cityCheck then | |
zgui.dirCheckCity = string.title(cityCheck) | |
zgui.dirSingle = true | |
zgui.dirCheckTimer = tempTimer(3, [[zgui.dirCheck = false;cecho("\n <red>zgui.dirCheck timed out! Might be an error.")]]) | |
local tempTable = {} | |
if zgui.dirDisplay[zgui.dirCheckItem] ~= nil then | |
for i=1, #zgui.dirDisplay[zgui.dirCheckItem], 1 do | |
if zgui.dirDisplay[zgui.dirCheckItem][i]["City"] ~= zgui.dirCheckCity then | |
tempTable[i] = zgui.dirDisplay[zgui.dirCheckItem][i] | |
end | |
end | |
zgui.dirDisplay[zgui.dirCheckItem] = {} | |
local counter = 0 | |
for i=1, #tempTable, 1 do | |
if tempTable[i] == nil then | |
counter = counter + 1 | |
else | |
zgui.dirDisplay[zgui.dirCheckItem][i-counter] = tempTable[i] | |
end | |
end | |
else | |
zgui.dirDisplay[zgui.dirCheckItem] = {} | |
end | |
if localCheck then | |
send("directory "..zgui.dirCheckItem) | |
else | |
send("directory "..zgui.dirCheckCity.." "..zgui.dirCheckItem) | |
end | |
else | |
zgui.dirSingle = false | |
zgui.dirCheckTimer = tempTimer(18, [[zgui.dirCheck = false;cecho("\n <red>zgui.dirCheck timed out! Might be an error.")]]) | |
zgui.dirDisplay[zgui.dirCheckItem] = {} | |
zgui.dirCheckCity = zgui.cityList[1] | |
send("directory "..zgui.cityList[1].." "..zgui.dirCheckItem) | |
end | |
end | |
end | |
function zgui.showDirectoryCheck(item) | |
if zgui.dirDisplay[item] then | |
zgui.dirCheckItem = item | |
end | |
cecho("\n <coral> Results For: <ansi_yellow>"..string.title(zgui.dirCheckItem)) | |
cecho("\n---------------------------------------------------------------------------------------------------") | |
local spacer = " " | |
local cutLength1 = 8 | |
local cutLength2 = 5 | |
local cutLength3 = 33 | |
local cutLength4 = 10 | |
local cutLength5 = 25 | |
for _, row in spairs(zgui.dirDisplay[zgui.dirCheckItem], function(t,a,b) return ( tonumber(t[a]["Price"]) / zgui.extractNumber(t[a]["FullName"]) ) > ( tonumber(t[b]["Price"]) / zgui.extractNumber(t[b]["FullName"]) ) end) do | |
local roomNum = mmp.getnums(zgui.dirDisplay[zgui.dirCheckItem][_]["Location"]) | |
local count = zgui.dirDisplay[zgui.dirCheckItem][_]["Amount"] | |
local quantity = zgui.extractNumber(zgui.dirDisplay[zgui.dirCheckItem][_]["FullName"]) | |
local unitPrice | |
if quantity > 1 then | |
unitPrice = math.ceil(zgui.dirDisplay[zgui.dirCheckItem][_]["Price"] / tonumber(quantity)) | |
cecho("\n".."<white>u") | |
else | |
unitPrice = zgui.dirDisplay[zgui.dirCheckItem][_]["Price"] | |
cecho("\n".." ") | |
end | |
cecho("<gold>"..string.cut(unitPrice..spacer,cutLength1)) | |
if not roomNum then | |
if count == 1 then | |
cecho( | |
"<white>"..string.cut(" "..spacer,cutLength2) | |
.."<gray>"..string.cut(zgui.dirDisplay[zgui.dirCheckItem][_]["FullName"]..spacer,cutLength3) | |
.."<gray> <ansi_yellow>"..string.cut(zgui.dirDisplay[zgui.dirCheckItem][_]["City"]..spacer,cutLength4) | |
.."<ansi_cyan>\("..string.cut(zgui.dirDisplay[zgui.dirCheckItem][_]["Location"].."\)"..spacer,cutLength5) | |
.."<ansi_cyan> \(\?\)" | |
) | |
else | |
cecho( | |
"<white>"..string.cut("x"..zgui.dirDisplay[zgui.dirCheckItem][_]["Amount"]..spacer,cutLength2) | |
.."<gray>"..string.cut(zgui.dirDisplay[zgui.dirCheckItem][_]["FullName"]..spacer,cutLength3) | |
.."<gray> <ansi_yellow>"..string.cut(zgui.dirDisplay[zgui.dirCheckItem][_]["City"]..spacer,cutLength4) | |
.."<ansi_cyan>\("..string.cut(zgui.dirDisplay[zgui.dirCheckItem][_]["Location"].."\)"..spacer,cutLength5) | |
.."<ansi_cyan> \(\?\)" | |
) | |
end | |
else | |
if count == 1 then | |
cecho( | |
"<white>"..string.cut(" "..spacer,cutLength2) | |
.."<gray>"..string.cut(zgui.dirDisplay[zgui.dirCheckItem][_]["FullName"]..spacer,cutLength3) | |
.."<gray> <ansi_yellow>"..string.cut(zgui.dirDisplay[zgui.dirCheckItem][_]["City"]..spacer,cutLength4) | |
) | |
for k,v in spairs(mmp.searchRoomExact(zgui.dirDisplay[zgui.dirCheckItem][_]["Location"])) do | |
roomid = k | |
end | |
cechoLink("<cyan>\("..string.cut(zgui.dirDisplay[zgui.dirCheckItem][_]["Location"].."\)"..spacer,cutLength5), 'mmp.gotoRoom(' .. roomid .. ')', "Goto "..zgui.dirDisplay[zgui.dirCheckItem][_]["Location"], true) | |
mmp.roomEcho(zgui.dirDisplay[zgui.dirCheckItem][_]["Location"]) | |
else | |
cecho( | |
"<white>"..string.cut("x"..zgui.dirDisplay[zgui.dirCheckItem][_]["Amount"]..spacer,cutLength2) | |
.."<gray>"..string.cut(zgui.dirDisplay[zgui.dirCheckItem][_]["FullName"]..spacer,cutLength3) | |
.."<gray> <ansi_yellow>"..string.cut(zgui.dirDisplay[zgui.dirCheckItem][_]["City"]..spacer,cutLength4) | |
) | |
for k,v in spairs(mmp.searchRoomExact(zgui.dirDisplay[zgui.dirCheckItem][_]["Location"])) do | |
roomid = k | |
end | |
cechoLink("<cyan>\("..string.cut(zgui.dirDisplay[zgui.dirCheckItem][_]["Location"].."\)"..spacer,cutLength5), 'mmp.gotoRoom(' .. roomid .. ')', "Goto "..zgui.dirDisplay[zgui.dirCheckItem][_]["Location"], true) | |
mmp.roomEcho(zgui.dirDisplay[zgui.dirCheckItem][_]["Location"]) | |
end | |
end | |
end | |
cecho("\n---------------------------------------------------------------------------------------------------") | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment