I'm writing an LTP that identifies revealed resources and have encountered behavior that is very perplexing. The behavior occurs when parsing the code in a <PopulateList> element. Below is the code that results in the following message in the Lua Console:
(Syntax Error: [string "return function()..."]:41: end expected (to close function at line 1) near '<eof>')
If the single line containing "local temp3 = 0" is removed, there is no syntax error and the panel loads as expected.
I am completely stumped. Any suggestions will be greatly appreciated.
(Syntax Error: [string "return function()..."]:41: end expected (to close function at line 1) near '<eof>')
If the single line containing "local temp3 = 0" is removed, there is no syntax error and the panel loads as expected.
I am completely stumped. Any suggestions will be greatly appreciated.
Code:
<PopulateList>function()
print("Test Resource Pin list")
local resourcePinList = {}
if efn_ResourcesToLocateList then
print("Resource count: " .. #efn_ResourcesToLocateList)
local resourceIndexesToLocate = {}
local resourcePinData = {}
local idxPlayer, Player, playerVis
local idxLoc, resName, idxRes
local temp1 = 1
local temp2 = 1
local temp3 = 0
idxPlayer = Game.GetLocalPlayer()
playerVis = PlayersVisibility[idxPlayer]
player = Players[idxPlayer]
-- add efn_ResourcesToLocateList items to resourceIndexesToLocate consistent with efn_OnlyRevealedResources
for idxLoc, resName in ipairs(efn_ResourcesToLocateList) do
if (not efn_OnlyRevealedResources) then
resourceIndexesToLocate[resName] = efn_ResourceDataByName[resName].Index
end
end
-- create a table of pin location data for plots containing resourcesToLocate consistent with efn_OnlyRevealedPlots.
local idxPlot, plotRevealed, plot, resType
for idxPlot = 0, Map.GetPlotCount() - 1 do
plotRevealed = "no"; if playerVis:IsRevealed(idxPlot) then plotRevealed = "yes" end
if (not efn_OnlyRevealedPlots) or (plotRevealed == "yes") then
plot = Map.GetPlotByIndex(idxPlot)
resType = plot:GetResourceType()
for resName, idxRes in pairs(resourceIndexesToLocate) do
if resType == idxRes then
local x = plot:GetX()
local y = plot:GetY()
table.insert(resourcePinData, {resName, idxPlot, x, y, plotRevealed})
table.insert(resourcePinList, resName .. ";" .. idxPlot .. ";" .. x .. ";" .. y .. ";" .. plotRevealed)
break
end
end
end
end
end
return resourcePinList
end
</PopulateList>