diff options
Diffstat (limited to 'MCServer/Plugins/ChunkWorx/chunkworx_web.lua')
-rw-r--r-- | MCServer/Plugins/ChunkWorx/chunkworx_web.lua | 512 |
1 files changed, 256 insertions, 256 deletions
diff --git a/MCServer/Plugins/ChunkWorx/chunkworx_web.lua b/MCServer/Plugins/ChunkWorx/chunkworx_web.lua index aeccb9719..e9a930c92 100644 --- a/MCServer/Plugins/ChunkWorx/chunkworx_web.lua +++ b/MCServer/Plugins/ChunkWorx/chunkworx_web.lua @@ -1,257 +1,257 @@ -local function Buttons_Player( Name )
- return "<form method='POST'><input type='hidden' name='PlayerName' value='"..Name.."'><input type='submit' name='PlayerExact' value='Exact'><input type='submit' name='Player3x3' value='3x3'></form>"
-end
-
-local function Button_World( Name )
- return "<form method='POST'><input type='hidden' name='WorldName' value='"..Name.."'><input type='submit' name='SelectWorld' value='Select'></form>"
-end
-
-function HandleRequest_Generation( Request )
- local Content = ""
- if (Request.PostParams["AGHRRRR"] ~= nil) then
- GENERATION_STATE = 0
- WW_instance:SaveAllChunks()
- WW_instance:UnloadUnusedChunks()
- LOGERROR("" .. PLUGIN:GetName() .. " v" .. PLUGIN:GetVersion() .. ": works ABORTED by admin")
- end
- --Content = Content .. "<head><meta http-equiv=\"refresh\" content=\"2;\"></head>"
- -- PROCESSING
- --------------------------------------------------------------------------------------------------
- local function ProcessingContent()
- local _small_content = ""
- _small_content = _small_content .. "<head><meta http-equiv=\"refresh\" content=\"2;\"></head>"
- _small_content = _small_content .. "<h4>World for operations:</h4>"..WORK_WORLD
- if (OPERATION_CODE == 0) then
- _small_content = _small_content .. "<h4>Operation:</h4>Generation"
- elseif (OPERATION_CODE == 1) then
- _small_content = _small_content .. "<h4>Operation:</h4>Regeneration"
- end
- _small_content = _small_content .. "<h4>Area: </h4>["..AreaStartX..":"..AreaStartZ.."] ["..AreaEndX..":"..AreaEndZ.."]"
- _small_content = _small_content .. "<h4>Progress:</h4>"..CURRENT.."/"..TOTAL
- _small_content = _small_content .. "<br>"
- _small_content = _small_content .. "<form method='POST'>"
- _small_content = _small_content .. "<input type='submit' name='AGHRRRR' value='Stop'>"
- _small_content = _small_content .. "</form>"
- return _small_content
- end
- if (GENERATION_STATE == 2 or GENERATION_STATE == 4) then
- Content = ProcessingContent()
- return Content
- end
- -- SELECTING
- --------------------------------------------------------------------------------------------------
- if ( Request.PostParams["FormSetWorld"] ) then
- WORK_WORLD = Request.PostParams["FormWorldName"]
- WW_instance = cRoot:Get():GetWorld(WORK_WORLD)
- end
-
- if( Request.PostParams["SelectWorld"] ~= nil
- and Request.PostParams["WorldName"] ~= nil ) then -- World is selected!
- WORK_WORLD = Request.PostParams["WorldName"]
- WW_instance = cRoot:Get():GetWorld(WORK_WORLD)
- end
-
- if(Request.PostParams["OperationGenerate"] ~= nil) then
- OPERATION_CODE = 0
- end
- if(Request.PostParams["OperationReGenerate"] ~= nil) then
- OPERATION_CODE = 1
- end
-
- if (GENERATION_STATE == 0) then
- if( Request.PostParams["FormAreaStartX"] ~= nil
- and Request.PostParams["FormAreaStartZ"] ~= nil
- and Request.PostParams["FormAreaEndX"] ~= nil
- and Request.PostParams["FormAreaEndZ"] ~= nil ) then --(Re)Generation valid!
- -- COMMON (Re)gen
- if( Request.PostParams["StartArea"]) then
- AreaStartX = tonumber(Request.PostParams["FormAreaStartX"])
- AreaStartZ = tonumber(Request.PostParams["FormAreaStartZ"])
- AreaEndX = tonumber(Request.PostParams["FormAreaEndX"])
- AreaEndZ = tonumber(Request.PostParams["FormAreaEndZ"])
-
- PLUGIN.IniFile:DeleteValue("Area data", "StartX")
- PLUGIN.IniFile:DeleteValue("Area data", "StartZ")
- PLUGIN.IniFile:DeleteValue("Area data", "EndX")
- PLUGIN.IniFile:DeleteValue("Area data", "EndZ")
- PLUGIN.IniFile:SetValueI("Area data", "StartX", AreaStartX)
- PLUGIN.IniFile:SetValueI("Area data", "StartZ", AreaStartZ)
- PLUGIN.IniFile:SetValueI("Area data", "EndX", AreaEndX)
- PLUGIN.IniFile:SetValueI("Area data", "EndZ", AreaEndZ)
- if (OPERATION_CODE == 0) then
- GENERATION_STATE = 1
- elseif (OPERATION_CODE == 1) then
- GENERATION_STATE = 3
- end
- PLUGIN.IniFile:WriteFile()
- Content = ProcessingContent()
- return Content
- end
- end
- if( Request.PostParams["FormRadialX"] ~= nil
- and Request.PostParams["FormRadialZ"] ~= nil
- and Request.PostParams["FormRadius"] ~= nil ) then --(Re)Generation valid!
- -- COMMON (Re)gen
- if( Request.PostParams["StartRadial"]) then
- RadialX = tonumber(Request.PostParams["FormRadialX"])
- RadialZ = tonumber(Request.PostParams["FormRadialZ"])
- Radius = tonumber(Request.PostParams["FormRadius"])
- AreaStartX = RadialX - Radius
- AreaStartZ = RadialZ - Radius
- AreaEndX = RadialX + Radius
- AreaEndZ = RadialZ + Radius
-
- PLUGIN.IniFile:DeleteValue("Radial data", "RadialX")
- PLUGIN.IniFile:DeleteValue("Radial data", "RadialZ")
- PLUGIN.IniFile:DeleteValue("Radial data", "Radius")
- PLUGIN.IniFile:SetValueI("Radial data", "RadialX", RadialX)
- PLUGIN.IniFile:SetValueI("Radial data", "RadialZ", RadialZ)
- PLUGIN.IniFile:SetValueI("Radial data", "Radius", Radius)
- if (OPERATION_CODE == 0) then
- GENERATION_STATE = 1
- elseif (OPERATION_CODE == 1) then
- GENERATION_STATE = 3
- end
- PLUGIN.IniFile:WriteFile()
- Content = ProcessingContent()
- return Content
- end
- end
- -- POINT REGEN!
- if( Request.PostParams["FormPointX"] ~= nil
- and Request.PostParams["FormPointZ"] ~= nil ) then --ReGeneration valid!
- -- EXACT
- if ( Request.PostParams["PointExact"] ~= nil) then
- AreaStartX = tonumber(Request.PostParams["FormPointX"])
- AreaStartZ = tonumber(Request.PostParams["FormPointZ"])
- AreaEndX = AreaStartX
- AreaEndZ = AreaStartZ
- GENERATION_STATE = 3
- Content = ProcessingContent()
- return Content
- end
- -- 3x3
- if ( Request.PostParams["Point3x3"] ~= nil) then
- AreaStartX = tonumber(Request.PostParams["FormPointX"]) - 1
- AreaStartZ = tonumber(Request.PostParams["FormPointZ"]) - 1
- AreaEndX = AreaStartX + 2
- AreaEndZ = AreaStartZ + 2
- GENERATION_STATE = 3
- Content = ProcessingContent()
- return Content
- end
- end
-
- local GetAreaByPlayer = function(Player)
- -- Player is valid only within this function, it cannot be stord and used later!
- AreaStartX = Player:GetChunkX()
- AreaStartZ = Player:GetChunkZ()
- end
- -- PLAYERS REGEN!
- if( Request.PostParams["PlayerExact"] ~= nil
- and Request.PostParams["PlayerName"] ~= nil ) then -- Making BOOM! I meant, regenereate...
- cRoot:Get():GetWorld(WORK_WORLD):DoWithPlayer(Request.PostParams["PlayerName"],GetAreaByPlayer)
- AreaEndX = AreaStartX
- AreaEndZ = AreaStartZ
- GENERATION_STATE = 3
- Content = ProcessingContent()
- return Content
- end
- if( Request.PostParams["Player3x3"] ~= nil
- and Request.PostParams["PlayerName"] ~= nil ) then -- Making BOOM! I meant, regenereate...
- cRoot:Get():GetWorld(WORK_WORLD):DoWithPlayer(Request.PostParams["PlayerName"],GetAreaByPlayer)
- AreaStartX = AreaStartX - 1
- AreaStartZ = AreaStartZ - 1
- AreaEndX = AreaStartX + 2
- AreaEndZ = AreaStartZ + 2
- GENERATION_STATE = 3
- Content = ProcessingContent()
- return Content
- end
- end
-
- --Content = Content .. "<h4>World for operations: " .. WORK_WORLD .. "</h4>"
- --Content = Content .. "<form method='POST'>"
- --Content = Content .. "<input type='text' name='FormWorldName' value='Input world name here'><input type='submit' name='FormSetWorld' value='Set world'>"
- --Content = Content .. "</form>"
-
- -- SELECTING WORK_WORLD
- Content = Content .. "<h4>World for operations: " .. WORK_WORLD .. "</h4>"
- Content = Content .. "<table>"
- local WorldNum = 0
- local AddWorldToTable = function(World)
- WorldNum = WorldNum + 1
- Content = Content .. "<tr>"
- Content = Content .. "<td style='width: 10px;'>" .. WorldNum .. ".</td>"
- Content = Content .. "<td>" .. World:GetName() .. "</td>"
- Content = Content .. "<td>" .. Button_World(World:GetName()) .. "</td>"
- Content = Content .. "</tr>"
- end
- cRoot:Get():ForEachWorld(AddWorldToTable)
- if( WorldNum == 0 ) then
- Content = Content .. "<tr><td>No worlds! O_O</td></tr>"
- end
- Content = Content .. "</table>"
- Content = Content .. "<br>"
-
- -- SELECTING OPERATION
- if (OPERATION_CODE == 0) then
- Content = Content .. "<h4>Operation: Generation</h4>"
- elseif (OPERATION_CODE == 1) then
- Content = Content .. "<h4>Operation: Regeneration</h4>"
- end
- Content = Content .. "<form method='POST'>"
- Content = Content .. "<input type='submit' name='OperationGenerate' value='Generation'>"
- Content = Content .. "<input type='submit' name='OperationReGenerate' value='Regeneration'>"
- Content = Content .. "</form>"
-
- -- SELECTING AREA
- Content = Content .. "<h4>Area: </h4>Start X, Start Z; End X, End Z"
- Content = Content .. "<form method='POST'>"
- Content = Content .. "<input type='text' name='FormAreaStartX' value='" .. AreaStartX .. "'><input type='text' name='FormAreaStartZ' value='" .. AreaStartZ .. "'>"
- Content = Content .. "<input type='text' name='FormAreaEndX' value='" .. AreaEndX .. "'><input type='text' name='FormAreaEndZ' value='" .. AreaEndZ .. "'>"
- Content = Content .. "<input type='submit' name='StartArea' value='Start'>"
- Content = Content .. "</form>"
-
- -- SELECTING RADIAL
- Content = Content .. "<h4>Radial: </h4>Center X, Center Z, Raduis (0 to any)"
- Content = Content .. "<form method='POST'>"
- Content = Content .. "<input type='text' name='FormRadialX' value='" .. RadialX .. "'><input type='text' name='FormRadialZ' value='" .. RadialZ .. "'><input type='text' name='FormRadius' value='" .. Radius .. "'>"
- Content = Content .. "<input type='submit' name='StartRadial' value='Start'>"
- Content = Content .. "</form>"
- Content = Content .. "<br>"
- Content = Content .. "<br>"
- Content = Content .. "<br>"
-
- -- SELECTING POINT
- Content = Content .. "<h4>Point regeneration:</h4> X, Z"
- Content = Content .. "<form method='POST'>"
- Content = Content .. "<input type='text' name='FormPointX' value='0'><input type='text' name='FormPointZ' value='0'>"
- Content = Content .. "<input type='submit' name='PointExact' value='Exact'>"
- Content = Content .. "<input type='submit' name='Point3x3' value='3x3'>"
- Content = Content .. "</form>"
-
- -- SELECTING PLAYERS
- Content = Content .. "<h4>Player-based regeneration:</h4>"
- Content = Content .. "<table>"
- local PlayerNum = 0
- local AddPlayerToTable = function( Player )
- PlayerNum = PlayerNum + 1
- Content = Content .. "<tr>"
- Content = Content .. "<td style='width: 10px;'>" .. PlayerNum .. ".</td>"
- Content = Content .. "<td>" .. Player:GetName() .. "</td>"
- Content = Content .. "<td>" .. Buttons_Player(Player:GetName()) .. "</td>"
- Content = Content .. "</tr>"
- end
- if (cRoot:Get():GetWorld(WORK_WORLD) == nil) then
- Content = Content .. "<tr><td>Incorrect world selection</td></tr>"
- else
- cRoot:Get():GetWorld(WORK_WORLD):ForEachPlayer( AddPlayerToTable )
- if( PlayerNum == 0 ) then
- Content = Content .. "<tr><td>No connected players</td></tr>"
- end
- end
- Content = Content .. "</table>"
- Content = Content .. "<br>"
- return Content
+local function Buttons_Player( Name ) + return "<form method='POST'><input type='hidden' name='PlayerName' value='"..Name.."'><input type='submit' name='PlayerExact' value='Exact'><input type='submit' name='Player3x3' value='3x3'></form>" +end + +local function Button_World( Name ) + return "<form method='POST'><input type='hidden' name='WorldName' value='"..Name.."'><input type='submit' name='SelectWorld' value='Select'></form>" +end + +function HandleRequest_Generation( Request ) + local Content = "" + if (Request.PostParams["AGHRRRR"] ~= nil) then + GENERATION_STATE = 0 + WW_instance:SaveAllChunks() + WW_instance:UnloadUnusedChunks() + LOGERROR("" .. PLUGIN:GetName() .. " v" .. PLUGIN:GetVersion() .. ": works ABORTED by admin") + end + --Content = Content .. "<head><meta http-equiv=\"refresh\" content=\"2;\"></head>" + -- PROCESSING + -------------------------------------------------------------------------------------------------- + local function ProcessingContent() + local _small_content = "" + _small_content = _small_content .. "<head><meta http-equiv=\"refresh\" content=\"2;\"></head>" + _small_content = _small_content .. "<h4>World for operations:</h4>"..WORK_WORLD + if (OPERATION_CODE == 0) then + _small_content = _small_content .. "<h4>Operation:</h4>Generation" + elseif (OPERATION_CODE == 1) then + _small_content = _small_content .. "<h4>Operation:</h4>Regeneration" + end + _small_content = _small_content .. "<h4>Area: </h4>["..AreaStartX..":"..AreaStartZ.."] ["..AreaEndX..":"..AreaEndZ.."]" + _small_content = _small_content .. "<h4>Progress:</h4>"..CURRENT.."/"..TOTAL + _small_content = _small_content .. "<br>" + _small_content = _small_content .. "<form method='POST'>" + _small_content = _small_content .. "<input type='submit' name='AGHRRRR' value='Stop'>" + _small_content = _small_content .. "</form>" + return _small_content + end + if (GENERATION_STATE == 2 or GENERATION_STATE == 4) then + Content = ProcessingContent() + return Content + end + -- SELECTING + -------------------------------------------------------------------------------------------------- + if ( Request.PostParams["FormSetWorld"] ) then + WORK_WORLD = Request.PostParams["FormWorldName"] + WW_instance = cRoot:Get():GetWorld(WORK_WORLD) + end + + if( Request.PostParams["SelectWorld"] ~= nil + and Request.PostParams["WorldName"] ~= nil ) then -- World is selected! + WORK_WORLD = Request.PostParams["WorldName"] + WW_instance = cRoot:Get():GetWorld(WORK_WORLD) + end + + if(Request.PostParams["OperationGenerate"] ~= nil) then + OPERATION_CODE = 0 + end + if(Request.PostParams["OperationReGenerate"] ~= nil) then + OPERATION_CODE = 1 + end + + if (GENERATION_STATE == 0) then + if( Request.PostParams["FormAreaStartX"] ~= nil + and Request.PostParams["FormAreaStartZ"] ~= nil + and Request.PostParams["FormAreaEndX"] ~= nil + and Request.PostParams["FormAreaEndZ"] ~= nil ) then --(Re)Generation valid! + -- COMMON (Re)gen + if( Request.PostParams["StartArea"]) then + AreaStartX = tonumber(Request.PostParams["FormAreaStartX"]) + AreaStartZ = tonumber(Request.PostParams["FormAreaStartZ"]) + AreaEndX = tonumber(Request.PostParams["FormAreaEndX"]) + AreaEndZ = tonumber(Request.PostParams["FormAreaEndZ"]) + + PLUGIN.IniFile:DeleteValue("Area data", "StartX") + PLUGIN.IniFile:DeleteValue("Area data", "StartZ") + PLUGIN.IniFile:DeleteValue("Area data", "EndX") + PLUGIN.IniFile:DeleteValue("Area data", "EndZ") + PLUGIN.IniFile:SetValueI("Area data", "StartX", AreaStartX) + PLUGIN.IniFile:SetValueI("Area data", "StartZ", AreaStartZ) + PLUGIN.IniFile:SetValueI("Area data", "EndX", AreaEndX) + PLUGIN.IniFile:SetValueI("Area data", "EndZ", AreaEndZ) + if (OPERATION_CODE == 0) then + GENERATION_STATE = 1 + elseif (OPERATION_CODE == 1) then + GENERATION_STATE = 3 + end + PLUGIN.IniFile:WriteFile() + Content = ProcessingContent() + return Content + end + end + if( Request.PostParams["FormRadialX"] ~= nil + and Request.PostParams["FormRadialZ"] ~= nil + and Request.PostParams["FormRadius"] ~= nil ) then --(Re)Generation valid! + -- COMMON (Re)gen + if( Request.PostParams["StartRadial"]) then + RadialX = tonumber(Request.PostParams["FormRadialX"]) + RadialZ = tonumber(Request.PostParams["FormRadialZ"]) + Radius = tonumber(Request.PostParams["FormRadius"]) + AreaStartX = RadialX - Radius + AreaStartZ = RadialZ - Radius + AreaEndX = RadialX + Radius + AreaEndZ = RadialZ + Radius + + PLUGIN.IniFile:DeleteValue("Radial data", "RadialX") + PLUGIN.IniFile:DeleteValue("Radial data", "RadialZ") + PLUGIN.IniFile:DeleteValue("Radial data", "Radius") + PLUGIN.IniFile:SetValueI("Radial data", "RadialX", RadialX) + PLUGIN.IniFile:SetValueI("Radial data", "RadialZ", RadialZ) + PLUGIN.IniFile:SetValueI("Radial data", "Radius", Radius) + if (OPERATION_CODE == 0) then + GENERATION_STATE = 1 + elseif (OPERATION_CODE == 1) then + GENERATION_STATE = 3 + end + PLUGIN.IniFile:WriteFile() + Content = ProcessingContent() + return Content + end + end + -- POINT REGEN! + if( Request.PostParams["FormPointX"] ~= nil + and Request.PostParams["FormPointZ"] ~= nil ) then --ReGeneration valid! + -- EXACT + if ( Request.PostParams["PointExact"] ~= nil) then + AreaStartX = tonumber(Request.PostParams["FormPointX"]) + AreaStartZ = tonumber(Request.PostParams["FormPointZ"]) + AreaEndX = AreaStartX + AreaEndZ = AreaStartZ + GENERATION_STATE = 3 + Content = ProcessingContent() + return Content + end + -- 3x3 + if ( Request.PostParams["Point3x3"] ~= nil) then + AreaStartX = tonumber(Request.PostParams["FormPointX"]) - 1 + AreaStartZ = tonumber(Request.PostParams["FormPointZ"]) - 1 + AreaEndX = AreaStartX + 2 + AreaEndZ = AreaStartZ + 2 + GENERATION_STATE = 3 + Content = ProcessingContent() + return Content + end + end + + local GetAreaByPlayer = function(Player) + -- Player is valid only within this function, it cannot be stord and used later! + AreaStartX = Player:GetChunkX() + AreaStartZ = Player:GetChunkZ() + end + -- PLAYERS REGEN! + if( Request.PostParams["PlayerExact"] ~= nil + and Request.PostParams["PlayerName"] ~= nil ) then -- Making BOOM! I meant, regenereate... + cRoot:Get():GetWorld(WORK_WORLD):DoWithPlayer(Request.PostParams["PlayerName"],GetAreaByPlayer) + AreaEndX = AreaStartX + AreaEndZ = AreaStartZ + GENERATION_STATE = 3 + Content = ProcessingContent() + return Content + end + if( Request.PostParams["Player3x3"] ~= nil + and Request.PostParams["PlayerName"] ~= nil ) then -- Making BOOM! I meant, regenereate... + cRoot:Get():GetWorld(WORK_WORLD):DoWithPlayer(Request.PostParams["PlayerName"],GetAreaByPlayer) + AreaStartX = AreaStartX - 1 + AreaStartZ = AreaStartZ - 1 + AreaEndX = AreaStartX + 2 + AreaEndZ = AreaStartZ + 2 + GENERATION_STATE = 3 + Content = ProcessingContent() + return Content + end + end + + --Content = Content .. "<h4>World for operations: " .. WORK_WORLD .. "</h4>" + --Content = Content .. "<form method='POST'>" + --Content = Content .. "<input type='text' name='FormWorldName' value='Input world name here'><input type='submit' name='FormSetWorld' value='Set world'>" + --Content = Content .. "</form>" + + -- SELECTING WORK_WORLD + Content = Content .. "<h4>World for operations: " .. WORK_WORLD .. "</h4>" + Content = Content .. "<table>" + local WorldNum = 0 + local AddWorldToTable = function(World) + WorldNum = WorldNum + 1 + Content = Content .. "<tr>" + Content = Content .. "<td style='width: 10px;'>" .. WorldNum .. ".</td>" + Content = Content .. "<td>" .. World:GetName() .. "</td>" + Content = Content .. "<td>" .. Button_World(World:GetName()) .. "</td>" + Content = Content .. "</tr>" + end + cRoot:Get():ForEachWorld(AddWorldToTable) + if( WorldNum == 0 ) then + Content = Content .. "<tr><td>No worlds! O_O</td></tr>" + end + Content = Content .. "</table>" + Content = Content .. "<br>" + + -- SELECTING OPERATION + if (OPERATION_CODE == 0) then + Content = Content .. "<h4>Operation: Generation</h4>" + elseif (OPERATION_CODE == 1) then + Content = Content .. "<h4>Operation: Regeneration</h4>" + end + Content = Content .. "<form method='POST'>" + Content = Content .. "<input type='submit' name='OperationGenerate' value='Generation'>" + Content = Content .. "<input type='submit' name='OperationReGenerate' value='Regeneration'>" + Content = Content .. "</form>" + + -- SELECTING AREA + Content = Content .. "<h4>Area: </h4>Start X, Start Z; End X, End Z" + Content = Content .. "<form method='POST'>" + Content = Content .. "<input type='text' name='FormAreaStartX' value='" .. AreaStartX .. "'><input type='text' name='FormAreaStartZ' value='" .. AreaStartZ .. "'>" + Content = Content .. "<input type='text' name='FormAreaEndX' value='" .. AreaEndX .. "'><input type='text' name='FormAreaEndZ' value='" .. AreaEndZ .. "'>" + Content = Content .. "<input type='submit' name='StartArea' value='Start'>" + Content = Content .. "</form>" + + -- SELECTING RADIAL + Content = Content .. "<h4>Radial: </h4>Center X, Center Z, Raduis (0 to any)" + Content = Content .. "<form method='POST'>" + Content = Content .. "<input type='text' name='FormRadialX' value='" .. RadialX .. "'><input type='text' name='FormRadialZ' value='" .. RadialZ .. "'><input type='text' name='FormRadius' value='" .. Radius .. "'>" + Content = Content .. "<input type='submit' name='StartRadial' value='Start'>" + Content = Content .. "</form>" + Content = Content .. "<br>" + Content = Content .. "<br>" + Content = Content .. "<br>" + + -- SELECTING POINT + Content = Content .. "<h4>Point regeneration:</h4> X, Z" + Content = Content .. "<form method='POST'>" + Content = Content .. "<input type='text' name='FormPointX' value='0'><input type='text' name='FormPointZ' value='0'>" + Content = Content .. "<input type='submit' name='PointExact' value='Exact'>" + Content = Content .. "<input type='submit' name='Point3x3' value='3x3'>" + Content = Content .. "</form>" + + -- SELECTING PLAYERS + Content = Content .. "<h4>Player-based regeneration:</h4>" + Content = Content .. "<table>" + local PlayerNum = 0 + local AddPlayerToTable = function( Player ) + PlayerNum = PlayerNum + 1 + Content = Content .. "<tr>" + Content = Content .. "<td style='width: 10px;'>" .. PlayerNum .. ".</td>" + Content = Content .. "<td>" .. Player:GetName() .. "</td>" + Content = Content .. "<td>" .. Buttons_Player(Player:GetName()) .. "</td>" + Content = Content .. "</tr>" + end + if (cRoot:Get():GetWorld(WORK_WORLD) == nil) then + Content = Content .. "<tr><td>Incorrect world selection</td></tr>" + else + cRoot:Get():GetWorld(WORK_WORLD):ForEachPlayer( AddPlayerToTable ) + if( PlayerNum == 0 ) then + Content = Content .. "<tr><td>No connected players</td></tr>" + end + end + Content = Content .. "</table>" + Content = Content .. "<br>" + return Content end
\ No newline at end of file |