模块:PVP004
刷
历
编
跳到导航
跳到搜索
此模块的文档可以在模块:PVP004/doc创建
local p = {}
-- 主函数:生成完整SVG地图
function p.generate(frame)
-- 存储SVG各部分内容的表(便于拼接)
local svgParts = {}
-- 1. SVG头部(宽高、视口等)
table.insert(svgParts, '<svg width="700" height="700" viewBox="0 0 700 700" xmlns="http://www.w3.org/2000/svg">')
-- 2. 主路径(外圆和扇形区域)
table.insert(svgParts, ' <path d=" M 675,350 C 675,170.6325 529.3675,25 350,25 S 25,170.6325 25,350 S 170.6325,675 350,675 S 675,529.3675 675,350 Z M 623.8613,375 A 275,275 0 0 1 375,623.8613 l0,-248.8612 z M 325,623.8613 A 275,275 0 0 1 76.1387,375 l248.8612,0 z M 76.1387,325 A 275,275 0 0 1 325,76.1387 l0,248.8612 z M 375,76.1387 A 275,275 0 0 1 623.8613,325 l-248.8612,0 z" fill="#CCC" stroke="#5d4037" stroke-width="4" />')
-- 3. 所有foreignObject(模板嵌入区域)
-- 存储每个foreignObject的参数:x, y, 地块名
local foreignObjects = {
{x = 326, y = 26, plotName = "全员事件"},
{x = 286.8421, y = 28.5665, plotName = "突击门"},
{x = 248.3543, y = 36.2223, plotName = "传送门"},
{x = 211.195, y = 48.8361, plotName = "彩票"},
{x = 176, y = 66.1924, plotName = "全员事件"},
{x = 143.3716, y = 87.994, plotName = "天降横祸"},
{x = 113.868, y = 113.868, plotName = "P1"},
{x = 87.994, y = 143.3716, plotName = "天降横祸"},
{x = 66.1924, y = 176, plotName = "天降横财"},
{x = 48.8361, y = 211.195, plotName = "疾行"},
{x = 36.2223, y = 248.3543, plotName = "商店"},
{x = 28.5665, y = 286.8421, plotName = "天降横财"},
{x = 26, y = 326, plotName = "全员事件"},
{x = 28.5665, y = 365.1579, plotName = "个人命运"},
{x = 36.2223, y = 403.6457, plotName = "传送门"},
{x = 48.8361, y = 440.805, plotName = "彩票"},
{x = 66.1924, y = 476, plotName = "全员事件"},
{x = 87.994, y = 508.6284, plotName = "天降横祸"},
{x = 113.868, y = 538.132, plotName = "P4"},
{x = 143.3716, y = 564.006, plotName = "天降横祸"},
{x = 176, y = 585.8076, plotName = "天降横财"},
{x = 211.195, y = 603.1639, plotName = "疾行"},
{x = 248.3543, y = 615.7777, plotName = "商店"},
{x = 286.8421, y = 623.4335, plotName = "猜猜乐"},
{x = 326, y = 626, plotName = "全员事件"},
{x = 365.1579, y = 623.4335, plotName = "突击门"},
{x = 403.6457, y = 615.7777, plotName = "传送门"},
{x = 440.805, y = 603.1639, plotName = "彩票"},
{x = 476, y = 585.8076, plotName = "全员事件"},
{x = 508.6284, y = 564.006, plotName = "天降横祸"},
{x = 538.132, y = 538.132, plotName = "P3"},
{x = 564.006, y = 508.6284, plotName = "天降横祸"},
{x = 585.8076, y = 476, plotName = "天降横财"},
{x = 603.1639, y = 440.805, plotName = "疾行"},
{x = 615.7777, y = 403.6457, plotName = "卡牌奖励"},
{x = 623.4335, y = 365.1579, plotName = "天降横财"},
{x = 626, y = 326, plotName = "全员事件"},
{x = 623.4335, y = 286.8421, plotName = "个人命运"},
{x = 615.7777, y = 248.3543, plotName = "传送门"},
{x = 603.1639, y = 211.195, plotName = "彩票"},
{x = 585.8076, y = 176, plotName = "全员事件"},
{x = 564.006, y = 143.3716, plotName = "天降横祸"},
{x = 538.132, y = 113.868, plotName = "P2"},
{x = 508.6284, y = 87.994, plotName = "天降横祸"},
{x = 476, y = 66.1924, plotName = "天降横财"},
{x = 440.805, y = 48.8361, plotName = "疾行"},
{x = 403.6457, y = 36.2223, plotName = "商店"},
{x = 365.1579, y = 28.5665, plotName = "猜猜乐"},
}
-- 循环生成每个foreignObject及模板调用
for _, fo in ipairs(foreignObjects) do
table.insert(svgParts, string.format(
' <foreignObject x="%.4f" y="%.4f" width="48" height="48">',
fo.x, fo.y
))
-- 嵌入模板A,传入地块名参数
table.insert(svgParts, string.format(' {{悬浮框2|%s}}', fo.plotName))
table.insert(svgParts, ' </foreignObject>')
end
-- 4. 闭合SVG标签
table.insert(svgParts, '</svg>')
-- 拼接所有部分并返回
return table.concat(svgParts, '\n')
end
return p

沪公网安备 31011002002714 号