Convert to GMCP
This commit is contained in:
parent
5bdd41586c
commit
874bdb0496
@ -41,7 +41,7 @@ registerAnonymousEventHandler("lotjUICreated", function()
|
|||||||
lotj.galaxyMap.drawSystems()
|
lotj.galaxyMap.drawSystems()
|
||||||
end
|
end
|
||||||
|
|
||||||
registerAnonymousEventHandler("msdp.SHIPGALY", lotj.galaxyMap.setShipGalCoords)
|
registerAnonymousEventHandler("gmcp.Ship.System.y", lotj.galaxyMap.setShipGalCoords)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
|
||||||
@ -50,11 +50,9 @@ function lotj.galaxyMap.log(text)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function lotj.galaxyMap.setShipGalCoords()
|
function lotj.galaxyMap.setShipGalCoords()
|
||||||
-- Assume "0" in both values means we don't have valid coordinates and leave them what they were.
|
if gmcp.Ship.System.x ~= nil and gmcp.Ship.System.y ~= nil then
|
||||||
-- TODO: Find a way to support a system actually located at 0, 0
|
lotj.galaxyMap.currentX = gmcp.Ship.System.x
|
||||||
if msdp.SHIPGALX ~= "0" or msdp.SHIPGALY ~= "0" then
|
lotj.galaxyMap.currentY = gmcp.Ship.System.y
|
||||||
lotj.galaxyMap.currentX = tonumber(msdp.SHIPGALX)
|
|
||||||
lotj.galaxyMap.currentY = tonumber(msdp.SHIPGALY)
|
|
||||||
lotj.galaxyMap.drawSystems()
|
lotj.galaxyMap.drawSystems()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -52,20 +52,32 @@ local function styleGaugeText(gauge, fontSize)
|
|||||||
gauge:setFontSize(fontSize)
|
gauge:setFontSize(fontSize)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Wires up MSDP subscriptions for a gauge.
|
local function gmcpVarByPath(varPath)
|
||||||
|
local temp = gmcp
|
||||||
|
for varStep in varPath:gmatch("([^\\.]+)") do
|
||||||
|
if temp and temp[varStep] then
|
||||||
|
temp = temp[varStep]
|
||||||
|
else
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return temp
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Wires up GMCP subscriptions for a gauge.
|
||||||
-- statName is the short version of the stat name to show after the value (mv, hp, etc)
|
-- statName is the short version of the stat name to show after the value (mv, hp, etc)
|
||||||
local function wireGaugeUpdate(gauge, valueVarName, maxVarName, statName)
|
local function wireGaugeUpdate(gauge, valueVarName, maxVarName, statName)
|
||||||
local function doUpdate()
|
local function doUpdate()
|
||||||
local current = tonumber(msdp[valueVarName] or "0")
|
local current = gmcpVarByPath(valueVarName) or 0
|
||||||
local max = tonumber(msdp[maxVarName] or "0")
|
local max = gmcpVarByPath(maxVarName) or 0
|
||||||
if max > 0 then
|
if max > 0 then
|
||||||
gauge:setValue(current, max, current.."/"..max.." "..statName)
|
gauge:setValue(current, max, current.."/"..max.." "..statName)
|
||||||
else
|
else
|
||||||
gauge:setValue(0, 1, "")
|
gauge:setValue(0, 1, "")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
registerAnonymousEventHandler("msdp."..valueVarName, doUpdate)
|
registerAnonymousEventHandler("gmcp."..valueVarName, doUpdate)
|
||||||
registerAnonymousEventHandler("msdp."..maxVarName, doUpdate)
|
registerAnonymousEventHandler("gmcp."..maxVarName, doUpdate)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@ -78,7 +90,7 @@ function lotj.infoPanel.createBasicStats(container)
|
|||||||
healthGauge.front:setStyleSheet(gaugeFrontStyle("#f04141", "#ef2929", "#cc0000", "#a40000", "#cc0000"))
|
healthGauge.front:setStyleSheet(gaugeFrontStyle("#f04141", "#ef2929", "#cc0000", "#a40000", "#cc0000"))
|
||||||
healthGauge.back:setStyleSheet(gaugeBackStyle("#3f1111", "#3f0707", "#330000", "#220000", "#330000"))
|
healthGauge.back:setStyleSheet(gaugeBackStyle("#3f1111", "#3f0707", "#330000", "#220000", "#330000"))
|
||||||
styleGaugeText(healthGauge, 12)
|
styleGaugeText(healthGauge, 12)
|
||||||
wireGaugeUpdate(healthGauge, "HEALTH", "HEALTHMAX", "hp")
|
wireGaugeUpdate(healthGauge, "Char.Stats.hp", "Char.Stats.maxHp", "hp")
|
||||||
|
|
||||||
local wimpyBar = Geyser.Label:new({
|
local wimpyBar = Geyser.Label:new({
|
||||||
x=0, y=0,
|
x=0, y=0,
|
||||||
@ -88,10 +100,10 @@ function lotj.infoPanel.createBasicStats(container)
|
|||||||
background-color: yellow;
|
background-color: yellow;
|
||||||
]])
|
]])
|
||||||
|
|
||||||
registerAnonymousEventHandler("msdp.WIMPY", function()
|
registerAnonymousEventHandler("gmcp.Char.Stats.wimpy", function()
|
||||||
local health = tonumber(msdp.HEALTH or 0)
|
local health = gmcp.Char.Stats.hp
|
||||||
local healthMax = tonumber(msdp.HEALTHMAX or 0)
|
local healthMax = gmcp.Char.Stats.maxHp
|
||||||
local wimpy = tonumber(msdp.WIMPY or 0)
|
local wimpy = gmcp.Char.Stats.wimpy
|
||||||
if healthMax > 0 then
|
if healthMax > 0 then
|
||||||
if wimpy > 0 and health > 0 and wimpy < health then
|
if wimpy > 0 and health > 0 and wimpy < health then
|
||||||
wimpyBar:show()
|
wimpyBar:show()
|
||||||
@ -110,7 +122,7 @@ function lotj.infoPanel.createBasicStats(container)
|
|||||||
movementGauge.front:setStyleSheet(gaugeFrontStyle("#41f041", "#29ef29", "#00cc00", "#00a400", "#00cc00"))
|
movementGauge.front:setStyleSheet(gaugeFrontStyle("#41f041", "#29ef29", "#00cc00", "#00a400", "#00cc00"))
|
||||||
movementGauge.back:setStyleSheet(gaugeBackStyle("#113f11", "#073f07", "#003300", "#002200", "#003300"))
|
movementGauge.back:setStyleSheet(gaugeBackStyle("#113f11", "#073f07", "#003300", "#002200", "#003300"))
|
||||||
styleGaugeText(movementGauge, 12)
|
styleGaugeText(movementGauge, 12)
|
||||||
wireGaugeUpdate(movementGauge, "MOVEMENT", "MOVEMENTMAX", "mv")
|
wireGaugeUpdate(movementGauge, "Char.Stats.move", "Char.Stats.maxMove", "mv")
|
||||||
|
|
||||||
-- Mana gauge (will be hidden later if we do not have mana)
|
-- Mana gauge (will be hidden later if we do not have mana)
|
||||||
local manaGauge = Geyser.Gauge:new({
|
local manaGauge = Geyser.Gauge:new({
|
||||||
@ -120,10 +132,10 @@ function lotj.infoPanel.createBasicStats(container)
|
|||||||
manaGauge.front:setStyleSheet(gaugeFrontStyle("#4141f0", "#2929ef", "#0000cc", "#0000a4", "#0000cc"))
|
manaGauge.front:setStyleSheet(gaugeFrontStyle("#4141f0", "#2929ef", "#0000cc", "#0000a4", "#0000cc"))
|
||||||
manaGauge.back:setStyleSheet(gaugeBackStyle("#11113f", "#07073f", "#000033", "#000022", "#000011"))
|
manaGauge.back:setStyleSheet(gaugeBackStyle("#11113f", "#07073f", "#000033", "#000022", "#000011"))
|
||||||
styleGaugeText(manaGauge, 12)
|
styleGaugeText(manaGauge, 12)
|
||||||
wireGaugeUpdate(manaGauge, "MANA", "MANAMAX", "mn")
|
wireGaugeUpdate(manaGauge, "Char.Stats.mana", "Char.stats.maxMana", "mn")
|
||||||
|
|
||||||
registerAnonymousEventHandler("msdp.MANAMAX", function()
|
registerAnonymousEventHandler("gmcp.Char.Stats.maxMana", function()
|
||||||
local manaMax = tonumber(msdp.MANAMAX or 0)
|
local manaMax = gmcp.Char.Stats.maxMana or 0
|
||||||
if manaMax > 0 then
|
if manaMax > 0 then
|
||||||
healthGauge:move(nil, 4)
|
healthGauge:move(nil, 4)
|
||||||
healthGauge:resize(nil, 16)
|
healthGauge:resize(nil, 16)
|
||||||
@ -165,22 +177,20 @@ function lotj.infoPanel.createOpponentStats(container)
|
|||||||
opponentGauge:setFontSize("12")
|
opponentGauge:setFontSize("12")
|
||||||
|
|
||||||
local function update()
|
local function update()
|
||||||
local opponentName = string.gsub(msdp.OPPONENTNAME or "", "&.", "")
|
local opponentName = string.gsub(gmcp.Char.Enemy.name or "", "&.", "")
|
||||||
-- Opponent name seems to always be empty string even when fighting, so fall back to something reasonable
|
-- Opponent name seems to always be empty string even when fighting, so fall back to something reasonable
|
||||||
if opponentName == "" then
|
if opponentName == "" then
|
||||||
opponentName = "Current target"
|
opponentName = "Current target"
|
||||||
end
|
end
|
||||||
local opponentHealth = tonumber(msdp.OPPONENTHEALTH or "0")
|
local opponentHealth = gmcp.Char.Enemy.Percent
|
||||||
local opponentHealthMax = tonumber(msdp.OPPONENTHEALTHMAX or "0")
|
local opponentHealthMax = 100
|
||||||
if opponentHealth > 0 then
|
if opponentHealth ~= nil then
|
||||||
opponentGauge:setValue(opponentHealth, opponentHealthMax, opponentName.."<br>"..opponentHealth.."%")
|
opponentGauge:setValue(opponentHealth, opponentHealthMax, opponentName.."<br>"..opponentHealth.."%")
|
||||||
else
|
else
|
||||||
opponentGauge:setValue(0, 1, "Not fighting")
|
opponentGauge:setValue(0, 1, "Not fighting")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
registerAnonymousEventHandler("msdp.OPPONENTNAME", update)
|
registerAnonymousEventHandler("gmcp.Char.Enemy", update)
|
||||||
registerAnonymousEventHandler("msdp.OPPONENTHEALTH", update)
|
|
||||||
registerAnonymousEventHandler("msdp.OPPONENTHEALTHMAX", update)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@ -197,16 +207,17 @@ function lotj.infoPanel.createChatInfo(container)
|
|||||||
}, container)
|
}, container)
|
||||||
|
|
||||||
local function updateCommnet()
|
local function updateCommnet()
|
||||||
local commChannel = msdp.COMMCHANNEL or "0"
|
local commChannel = gmcp.Char.Chat.commChannel
|
||||||
local commEncrypt = msdp.COMMENCRYPT or "0"
|
local commEncrypt = gmcp.Char.Chat.commEncrypt
|
||||||
if commEncrypt == "0" then
|
if not commChannel then
|
||||||
commnetInfo:echo(commChannel, nil, "l13")
|
commnetInfo:echo("None", nil, "l13")
|
||||||
else
|
elseif commEncrypt then
|
||||||
commnetInfo:echo(commChannel.." (E "..commEncrypt..")", nil, "l13")
|
commnetInfo:echo(commChannel.." (E "..commEncrypt..")", nil, "l13")
|
||||||
|
else
|
||||||
|
commnetInfo:echo(commChannel, nil, "l13")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
registerAnonymousEventHandler("msdp.COMMCHANNEL", updateCommnet)
|
registerAnonymousEventHandler("gmcp.Char.Chat", updateCommnet)
|
||||||
registerAnonymousEventHandler("msdp.COMMENCRYPT", updateCommnet)
|
|
||||||
|
|
||||||
-- OOC meter
|
-- OOC meter
|
||||||
local oocLabel = Geyser.Label:new({
|
local oocLabel = Geyser.Label:new({
|
||||||
@ -221,8 +232,8 @@ function lotj.infoPanel.createChatInfo(container)
|
|||||||
oocGauge.front:setStyleSheet(gaugeFrontStyle("#31d0d0", "#22cfcf", "#00b2b2", "#009494", "#00b2b2"))
|
oocGauge.front:setStyleSheet(gaugeFrontStyle("#31d0d0", "#22cfcf", "#00b2b2", "#009494", "#00b2b2"))
|
||||||
oocGauge.back:setStyleSheet(gaugeBackStyle("#113f3f", "#073f3f", "#003333", "#002222", "#001111"))
|
oocGauge.back:setStyleSheet(gaugeBackStyle("#113f3f", "#073f3f", "#003333", "#002222", "#001111"))
|
||||||
|
|
||||||
registerAnonymousEventHandler("msdp.OOCLIMIT", function()
|
registerAnonymousEventHandler("gmcp.Char.Chat.oocLimit", function()
|
||||||
local oocLeft = tonumber(msdp.OOCLIMIT or 0)
|
local oocLeft = gmcp.Char.Chat.oocLimit or 0
|
||||||
local oocMax = 6
|
local oocMax = 6
|
||||||
oocGauge:setValue(oocLeft, oocMax)
|
oocGauge:setValue(oocLeft, oocMax)
|
||||||
end)
|
end)
|
||||||
@ -237,7 +248,7 @@ function lotj.infoPanel.createSpaceStats(container)
|
|||||||
energyGauge.front:setStyleSheet(gaugeFrontStyle("#7a7a7a", "#777777", "#656565", "#505050", "#656565"))
|
energyGauge.front:setStyleSheet(gaugeFrontStyle("#7a7a7a", "#777777", "#656565", "#505050", "#656565"))
|
||||||
energyGauge.back:setStyleSheet(gaugeBackStyle("#383838", "#303030", "#222222", "#151515", "#222222"))
|
energyGauge.back:setStyleSheet(gaugeBackStyle("#383838", "#303030", "#222222", "#151515", "#222222"))
|
||||||
styleGaugeText(energyGauge, 12)
|
styleGaugeText(energyGauge, 12)
|
||||||
wireGaugeUpdate(energyGauge, "SHIPENERGY", "SHIPMAXENERGY", "en")
|
wireGaugeUpdate(energyGauge, "Ship.Info.energy", "Ship.Info.maxEnergy", "en")
|
||||||
|
|
||||||
local hullGauge = Geyser.Gauge:new({
|
local hullGauge = Geyser.Gauge:new({
|
||||||
x="3%", y=23,
|
x="3%", y=23,
|
||||||
@ -246,7 +257,7 @@ function lotj.infoPanel.createSpaceStats(container)
|
|||||||
hullGauge.front:setStyleSheet(gaugeFrontStyle("#bd7833", "#bd6e20", "#994c00", "#703800", "#994c00"))
|
hullGauge.front:setStyleSheet(gaugeFrontStyle("#bd7833", "#bd6e20", "#994c00", "#703800", "#994c00"))
|
||||||
hullGauge.back:setStyleSheet(gaugeBackStyle("#442511", "#441d08", "#331100", "#200900", "#331100"))
|
hullGauge.back:setStyleSheet(gaugeBackStyle("#442511", "#441d08", "#331100", "#200900", "#331100"))
|
||||||
styleGaugeText(hullGauge, 12)
|
styleGaugeText(hullGauge, 12)
|
||||||
wireGaugeUpdate(hullGauge, "SHIPHULL", "SHIPMAXHULL", "hl")
|
wireGaugeUpdate(hullGauge, "Ship.Info.hull", "Ship.Info.maxHull", "hl")
|
||||||
|
|
||||||
local shieldGauge = Geyser.Gauge:new({
|
local shieldGauge = Geyser.Gauge:new({
|
||||||
x="3%", y=42,
|
x="3%", y=42,
|
||||||
@ -255,7 +266,7 @@ function lotj.infoPanel.createSpaceStats(container)
|
|||||||
shieldGauge.front:setStyleSheet(gaugeFrontStyle("#31d0d0", "#22cfcf", "#00b2b2", "#009494", "#00b2b2"))
|
shieldGauge.front:setStyleSheet(gaugeFrontStyle("#31d0d0", "#22cfcf", "#00b2b2", "#009494", "#00b2b2"))
|
||||||
shieldGauge.back:setStyleSheet(gaugeBackStyle("#113f3f", "#073f3f", "#003333", "#002222", "#001111"))
|
shieldGauge.back:setStyleSheet(gaugeBackStyle("#113f3f", "#073f3f", "#003333", "#002222", "#001111"))
|
||||||
styleGaugeText(shieldGauge, 12)
|
styleGaugeText(shieldGauge, 12)
|
||||||
wireGaugeUpdate(shieldGauge, "SHIPSHIELD", "SHIPMAXSHIELD", "sh")
|
wireGaugeUpdate(shieldGauge, "Ship.Info.shield", "Ship.Info.maxShield", "sh")
|
||||||
|
|
||||||
|
|
||||||
-- Piloting indicator
|
-- Piloting indicator
|
||||||
@ -274,9 +285,8 @@ function lotj.infoPanel.createSpaceStats(container)
|
|||||||
width=16, height=16
|
width=16, height=16
|
||||||
}, pilotBoxCont)
|
}, pilotBoxCont)
|
||||||
|
|
||||||
registerAnonymousEventHandler("msdp.PILOTING", function()
|
registerAnonymousEventHandler("gmcp.Ship.Base.piloting", function()
|
||||||
local piloting = tonumber(msdp.PILOTING or "0")
|
if gmcp.Ship.Base.piloting then
|
||||||
if piloting == 1 then
|
|
||||||
pilotBox:setStyleSheet("background-color: #29efef; border: 2px solid #eeeeee;")
|
pilotBox:setStyleSheet("background-color: #29efef; border: 2px solid #eeeeee;")
|
||||||
else
|
else
|
||||||
pilotBox:setStyleSheet("background-color: #073f3f; border: 2px solid #eeeeee;")
|
pilotBox:setStyleSheet("background-color: #073f3f; border: 2px solid #eeeeee;")
|
||||||
@ -290,12 +300,11 @@ function lotj.infoPanel.createSpaceStats(container)
|
|||||||
}, container)
|
}, container)
|
||||||
|
|
||||||
local function updateSpeed()
|
local function updateSpeed()
|
||||||
local speed = tonumber(msdp.SHIPSPEED or "0")
|
local speed = gmcp.Ship.Base.speed or 0
|
||||||
local maxSpeed = tonumber(msdp.SHIPMAXSPEED or "0")
|
local maxSpeed = gmcp.Ship.Base.maxSpeed or 0
|
||||||
speedGauge:echo("<b>Sp:</b> "..speed.."<b>/</b>"..maxSpeed, nil, "l12")
|
speedGauge:echo("<b>Sp:</b> "..speed.."<b>/</b>"..maxSpeed, nil, "l12")
|
||||||
end
|
end
|
||||||
registerAnonymousEventHandler("msdp.SHIPSPEED", updateSpeed)
|
registerAnonymousEventHandler("gmcp.Ship.Base", updateSpeed)
|
||||||
registerAnonymousEventHandler("msdp.SHIPMAXSPEED", updateSpeed)
|
|
||||||
|
|
||||||
|
|
||||||
local coordsInfo = Geyser.Label:new({
|
local coordsInfo = Geyser.Label:new({
|
||||||
@ -304,14 +313,12 @@ function lotj.infoPanel.createSpaceStats(container)
|
|||||||
}, container)
|
}, container)
|
||||||
|
|
||||||
local function updateCoords()
|
local function updateCoords()
|
||||||
local shipX = tonumber(msdp.SHIPSYSX or "0")
|
local shipX = gmcp.Ship.Base.posX or 0
|
||||||
local shipY = tonumber(msdp.SHIPSYSY or "0")
|
local shipY = gmcp.Ship.Base.posY or 0
|
||||||
local shipZ = tonumber(msdp.SHIPSYSZ or "0")
|
local shipZ = gmcp.Ship.Base.posZ or 0
|
||||||
coordsInfo:echo("<b>Coords:</b> "..shipX.." "..shipY.." "..shipZ, nil, "l12")
|
coordsInfo:echo("<b>Coords:</b> "..shipX.." "..shipY.." "..shipZ, nil, "l12")
|
||||||
end
|
end
|
||||||
registerAnonymousEventHandler("msdp.SHIPSYSX", updateCoords)
|
registerAnonymousEventHandler("gmcp.Ship.Base", updateCoords)
|
||||||
registerAnonymousEventHandler("msdp.SHIPSYSY", updateCoords)
|
|
||||||
registerAnonymousEventHandler("msdp.SHIPSYSZ", updateCoords)
|
|
||||||
|
|
||||||
lotj.infoPanel.spaceTickCounter = Geyser.Label:new({
|
lotj.infoPanel.spaceTickCounter = Geyser.Label:new({
|
||||||
x="77%", y=6,
|
x="77%", y=6,
|
||||||
|
@ -94,7 +94,7 @@ function lotj.mapper.printMainMenu()
|
|||||||
lotj.mapper.log("Mapper Introduction and Status")
|
lotj.mapper.log("Mapper Introduction and Status")
|
||||||
cecho([[
|
cecho([[
|
||||||
|
|
||||||
The LOTJ Mapper plugin tracks movement using MSDP variables. To begin, try <yellow>map start <current area><reset>.
|
The LOTJ Mapper plugin tracks movement using GMCP variables. To begin, try <yellow>map start <current area><reset>.
|
||||||
Once mapping is started, move <red>slowly<reset> between rooms to map them. Moving too quickly will cause the
|
Once mapping is started, move <red>slowly<reset> between rooms to map them. Moving too quickly will cause the
|
||||||
mapper to skip rooms. You should wait for the map to reflect your movements before moving again
|
mapper to skip rooms. You should wait for the map to reflect your movements before moving again
|
||||||
whenever you are in mapping mode.
|
whenever you are in mapping mode.
|
||||||
@ -282,7 +282,7 @@ registerAnonymousEventHandler("lotjUICreated", function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
registerAnonymousEventHandler("sysDataSendRequest", "lotj.mapper.handleSentCommand")
|
registerAnonymousEventHandler("sysDataSendRequest", "lotj.mapper.handleSentCommand")
|
||||||
registerAnonymousEventHandler("msdp.ROOMVNUM", "lotj.mapper.onEnterRoom")
|
registerAnonymousEventHandler("gmcp.Room.Info.vnum", "lotj.mapper.onEnterRoom")
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
|
||||||
@ -444,7 +444,7 @@ function lotj.mapper.checkAmenityLine(roomName, amenityName, wasPending)
|
|||||||
|
|
||||||
if addAmenityRoom == nil then
|
if addAmenityRoom == nil then
|
||||||
-- The room name we're triggering on might be the room we just entered but we haven't
|
-- The room name we're triggering on might be the room we just entered but we haven't
|
||||||
-- received the MSDP event yet, so we'll store this for the next time we do.
|
-- received the GMCP event yet, so we'll store this for the next time we do.
|
||||||
lotj.mapper.pendingAmenity = {
|
lotj.mapper.pendingAmenity = {
|
||||||
roomName = roomName,
|
roomName = roomName,
|
||||||
amenityName = amenityName,
|
amenityName = amenityName,
|
||||||
@ -463,14 +463,10 @@ function lotj.mapper.onEnterRoom()
|
|||||||
if lotj.mapper.current ~= nil then
|
if lotj.mapper.current ~= nil then
|
||||||
lotj.mapper.last = lotj.mapper.current
|
lotj.mapper.last = lotj.mapper.current
|
||||||
end
|
end
|
||||||
local exits = {}
|
|
||||||
if msdp.ROOMEXITS ~= "" then
|
|
||||||
exits = msdp.ROOMEXITS
|
|
||||||
end
|
|
||||||
lotj.mapper.current = {
|
lotj.mapper.current = {
|
||||||
vnum = tonumber(msdp.ROOMVNUM),
|
vnum = gmcp.Room.Info.vnum,
|
||||||
name = string.gsub(msdp.ROOMNAME, "&.", ""),
|
name = gmcp.Room.Info.name:gsub("&.", ""),
|
||||||
exits = exits,
|
exits = gmcp.Room.Info.exits or {},
|
||||||
}
|
}
|
||||||
|
|
||||||
lotj.mapper.processCurrentRoom()
|
lotj.mapper.processCurrentRoom()
|
||||||
|
@ -1,45 +0,0 @@
|
|||||||
registerAnonymousEventHandler("sysLoadEvent", function()
|
|
||||||
registerAnonymousEventHandler("msdp.COMMANDS", function()
|
|
||||||
local msdpVars = {}
|
|
||||||
|
|
||||||
table.insert(msdpVars, "HEALTH")
|
|
||||||
table.insert(msdpVars, "HEALTHMAX")
|
|
||||||
table.insert(msdpVars, "WIMPY")
|
|
||||||
table.insert(msdpVars, "MOVEMENT")
|
|
||||||
table.insert(msdpVars, "MOVEMENTMAX")
|
|
||||||
table.insert(msdpVars, "MANA")
|
|
||||||
table.insert(msdpVars, "MANAMAX")
|
|
||||||
|
|
||||||
table.insert(msdpVars, "OPPONENTNAME")
|
|
||||||
table.insert(msdpVars, "OPPONENTHEALTH")
|
|
||||||
table.insert(msdpVars, "OPPONENTHEALTHMAX")
|
|
||||||
|
|
||||||
table.insert(msdpVars, "COMMCHANNEL")
|
|
||||||
table.insert(msdpVars, "COMMENCRYPT")
|
|
||||||
table.insert(msdpVars, "OOCLIMIT")
|
|
||||||
|
|
||||||
table.insert(msdpVars, "ROOMNAME")
|
|
||||||
table.insert(msdpVars, "ROOMEXITS")
|
|
||||||
table.insert(msdpVars, "ROOMVNUM")
|
|
||||||
|
|
||||||
table.insert(msdpVars, "PILOTING")
|
|
||||||
table.insert(msdpVars, "SHIPSPEED")
|
|
||||||
table.insert(msdpVars, "SHIPMAXSPEED")
|
|
||||||
table.insert(msdpVars, "SHIPHULL")
|
|
||||||
table.insert(msdpVars, "SHIPMAXHULL")
|
|
||||||
table.insert(msdpVars, "SHIPSHIELD")
|
|
||||||
table.insert(msdpVars, "SHIPMAXSHIELD")
|
|
||||||
table.insert(msdpVars, "SHIPENERGY")
|
|
||||||
table.insert(msdpVars, "SHIPMAXENERGY")
|
|
||||||
table.insert(msdpVars, "SHIPSYSX")
|
|
||||||
table.insert(msdpVars, "SHIPSYSY")
|
|
||||||
table.insert(msdpVars, "SHIPSYSZ")
|
|
||||||
table.insert(msdpVars, "SHIPGALX")
|
|
||||||
table.insert(msdpVars, "SHIPGALY")
|
|
||||||
table.insert(msdpVars, "SHIPSYSNAME")
|
|
||||||
|
|
||||||
for _, varName in ipairs(msdpVars) do
|
|
||||||
sendMSDP("REPORT", varName)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
end)
|
|
@ -1,5 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"name": "msdp"
|
|
||||||
}
|
|
||||||
]
|
|
@ -90,9 +90,7 @@ registerAnonymousEventHandler("lotjUICreated", function()
|
|||||||
positionRangeCircle()
|
positionRangeCircle()
|
||||||
registerAnonymousEventHandler("sysWindowResizeEvent", positionRangeCircle)
|
registerAnonymousEventHandler("sysWindowResizeEvent", positionRangeCircle)
|
||||||
|
|
||||||
registerAnonymousEventHandler("msdp.SHIPSYSX", "lotj.systemMap.drawMap")
|
registerAnonymousEventHandler("gmcp.Ship.Base", "lotj.systemMap.drawMap")
|
||||||
registerAnonymousEventHandler("msdp.SHIPSYSY", "lotj.systemMap.drawMap")
|
|
||||||
registerAnonymousEventHandler("msdp.SHIPSYSZ", "lotj.systemMap.drawMap")
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
function lotj.systemMap.resetItems()
|
function lotj.systemMap.resetItems()
|
||||||
@ -115,13 +113,13 @@ function lotj.systemMap.drawMap()
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- We use ship max speed as a proxy for "do we have ship data at all"
|
-- We use ship max speed as a proxy for "do we have ship data at all"
|
||||||
if tonumber(msdp.SHIPMAXSPEED or "0") == 0 then
|
if gmcp.Ship.Base.maxSpeed == nil then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local shipX = tonumber(msdp.SHIPSYSX or "0")
|
local shipX = gmcp.Ship.Base.posX
|
||||||
local shipY = tonumber(msdp.SHIPSYSY or "0")
|
local shipY = gmcp.Ship.Base.posY
|
||||||
local shipZ = tonumber(msdp.SHIPSYSZ or "0")
|
local shipZ = gmcp.Ship.Base.posZ
|
||||||
local selfData = {name="You", x=shipX, y=shipY, z=shipZ}
|
local selfData = {name="You", x=shipX, y=shipY, z=shipZ}
|
||||||
|
|
||||||
local itemsToDraw = {}
|
local itemsToDraw = {}
|
||||||
|
Loading…
Reference in New Issue
Block a user