<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans">
	<id>https://xenoblade.cn/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E5%9D%97%3AEnemy</id>
	<title>模块:Enemy - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://xenoblade.cn/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E5%9D%97%3AEnemy"/>
	<link rel="alternate" type="text/html" href="https://xenoblade.cn/index.php?title=%E6%A8%A1%E5%9D%97:Enemy&amp;action=history"/>
	<updated>2026-11-11T14:13:22Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://xenoblade.cn/index.php?title=%E6%A8%A1%E5%9D%97:Enemy&amp;diff=3653&amp;oldid=prev</id>
		<title>Monado：​MWBot</title>
		<link rel="alternate" type="text/html" href="https://xenoblade.cn/index.php?title=%E6%A8%A1%E5%9D%97:Enemy&amp;diff=3653&amp;oldid=prev"/>
		<updated>2020-07-31T07:21:01Z</updated>

		<summary type="html">&lt;p&gt;MWBot&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2020年7月31日 (五) 15:21的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l372&quot;&gt;第372行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第372行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  wikitext = wikitext .. &#039;&amp;lt;div class=&quot;xb1map-enemy&quot; data-enemy-id=&quot;&#039; .. data.row_id .. &#039;&quot; &amp;gt;&amp;lt;/div&amp;gt;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   return compress(wikitext)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   return compress(wikitext)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key xbdwiki_143:diff:1.41:old-953:rev-3653:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Monado</name></author>
	</entry>
	<entry>
		<id>https://xenoblade.cn/index.php?title=%E6%A8%A1%E5%9D%97:Enemy&amp;diff=953&amp;oldid=prev</id>
		<title>Monado：​MWBot</title>
		<link rel="alternate" type="text/html" href="https://xenoblade.cn/index.php?title=%E6%A8%A1%E5%9D%97:Enemy&amp;diff=953&amp;oldid=prev"/>
		<updated>2020-06-22T11:39:22Z</updated>

		<summary type="html">&lt;p&gt;MWBot&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
local post = require(&amp;quot;Module:RequestHelper&amp;quot;).post&lt;br /&gt;
local getArgs = require(&amp;quot;Module:Arguments&amp;quot;).getArgs&lt;br /&gt;
local html = require(&amp;quot;Module:Html&amp;quot;)&lt;br /&gt;
local compress = html.compress&lt;br /&gt;
local addlink = html.addlink&lt;br /&gt;
&lt;br /&gt;
local function itemName(data)&lt;br /&gt;
  local name = data.itemID.name&lt;br /&gt;
  if data.rankType &amp;gt; 0 then&lt;br /&gt;
    name = name .. data.rankType&lt;br /&gt;
  end&lt;br /&gt;
  return name&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function calcActualDropRate(rateList)&lt;br /&gt;
  local totalRate = 0&lt;br /&gt;
&lt;br /&gt;
  local middleData = {}&lt;br /&gt;
  local remainRate = 1&lt;br /&gt;
  for _, v in ipairs(rateList) do&lt;br /&gt;
    local rate = v / 100 * remainRate&lt;br /&gt;
    table.insert(middleData, rate)&lt;br /&gt;
    totalRate = totalRate + rate&lt;br /&gt;
    remainRate = remainRate * (1 - v / 100)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local result = {}&lt;br /&gt;
  local multiply = totalRate &amp;gt; 0 and 1 / totalRate * 100 or 0&lt;br /&gt;
  for _, v in ipairs(middleData) do&lt;br /&gt;
    table.insert(result, v * multiply)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function showRate(value)&lt;br /&gt;
  return mw.ustring.format(&amp;quot;%.2f%%&amp;quot;, value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.template(frame, data)&lt;br /&gt;
  mw.smw.set(&lt;br /&gt;
    {&lt;br /&gt;
      id = data.row_id,&lt;br /&gt;
      lv = data.lv,&lt;br /&gt;
      hp = data.hp * 100,&lt;br /&gt;
      named = data.named,&lt;br /&gt;
      agi = data.agi,&lt;br /&gt;
      mapID = data.mapID.id_name,&lt;br /&gt;
      map = data.mapID.name&lt;br /&gt;
    }&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
  local wikitext = &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  do&lt;br /&gt;
    local header = {&amp;quot;named&amp;quot;, &amp;quot;Lv&amp;quot;, &amp;quot;HP&amp;quot;, &amp;quot;力量&amp;quot;, &amp;quot;以太力&amp;quot;, &amp;quot;敏捷&amp;quot;, &amp;quot;双重攻击率&amp;quot;, &amp;quot;暴击率&amp;quot;}&lt;br /&gt;
    local body = {&lt;br /&gt;
      data.named,&lt;br /&gt;
      data.lv,&lt;br /&gt;
      data.hp * 100,&lt;br /&gt;
      data.str,&lt;br /&gt;
      data.eth,&lt;br /&gt;
      data.agi,&lt;br /&gt;
      data.dbl_atk,&lt;br /&gt;
      data.cnt_atk&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    wikitext = wikitext .. html.wikitable(header, {body}, {transpose = true, class = &amp;quot;xbtable&amp;quot;})&lt;br /&gt;
&lt;br /&gt;
    wikitext =&lt;br /&gt;
      mw.ustring.format(&lt;br /&gt;
      [[&lt;br /&gt;
      &amp;lt;div class=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;large-6 columns&amp;quot;&amp;gt;%s&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
    ]],&lt;br /&gt;
      wikitext&lt;br /&gt;
    )&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  do -- drop&lt;br /&gt;
    local boxlist = {}&lt;br /&gt;
&lt;br /&gt;
    local boxRateList = calcActualDropRate({data.drop_spr_per, data.drop_rar_per, data.drop_nml_per})&lt;br /&gt;
&lt;br /&gt;
    if data.drop_nml then&lt;br /&gt;
      local box = html.h4(&amp;quot;普通宝箱 &amp;quot; .. boxRateList[3] .. &amp;quot;%&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
      local header = {&amp;quot;种类&amp;quot;, &amp;quot;物品&amp;quot;, &amp;quot;概率&amp;quot;}&lt;br /&gt;
      local rows = {}&lt;br /&gt;
&lt;br /&gt;
      local rateList = {data.drop_nml.materia1Per, data.drop_nml.materia2Per}&lt;br /&gt;
      local actualRateList = calcActualDropRate(rateList)&lt;br /&gt;
&lt;br /&gt;
      for i = 1, 2 do&lt;br /&gt;
        if data.drop_nml[&amp;quot;materia&amp;quot; .. i .. &amp;quot;Per&amp;quot;] &amp;gt; 0 then&lt;br /&gt;
          table.insert(&lt;br /&gt;
            rows,&lt;br /&gt;
            {&lt;br /&gt;
              data.drop_nml[&amp;quot;materia&amp;quot; .. i].itemType,&lt;br /&gt;
              addlink(data.drop_nml[&amp;quot;materia&amp;quot; .. i].itemID.name, &amp;quot;物品&amp;quot;),&lt;br /&gt;
              showRate(actualRateList[1])&lt;br /&gt;
            }&lt;br /&gt;
          )&lt;br /&gt;
          mw.smw.set({dropMateria = data.drop_nml[&amp;quot;materia&amp;quot; .. i].itemID.name})&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
      box = box .. html.wikitable(header, rows, {class = &amp;quot;xbtable&amp;quot;})&lt;br /&gt;
      table.insert(boxlist, box)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if data.drop_rar then&lt;br /&gt;
      local box = html.h4(&amp;quot;稀有宝箱 &amp;quot; .. boxRateList[2] .. &amp;quot;%&amp;quot;)&lt;br /&gt;
      local header = {&amp;quot;种类&amp;quot;, &amp;quot;物品&amp;quot;, &amp;quot;概率&amp;quot;}&lt;br /&gt;
      local rows = {}&lt;br /&gt;
&lt;br /&gt;
      local totalPer =&lt;br /&gt;
        data.drop_rar.crystal_per + data.drop_rar.wpn_per + data.drop_rar.equip_per + data.drop_rar.arts_per&lt;br /&gt;
      local actual_crystal_per = data.drop_rar.crystal_per / totalPer&lt;br /&gt;
      local actual_wpn_per = data.drop_rar.wpn_per / totalPer&lt;br /&gt;
      local actual_equip_per = data.drop_rar.equip_per / totalPer&lt;br /&gt;
      local actual_arts_per = data.drop_rar.arts_per / totalPer&lt;br /&gt;
&lt;br /&gt;
      -- 结晶&lt;br /&gt;
      if actual_crystal_per &amp;gt; 0 then&lt;br /&gt;
        for i = 1, 2 do&lt;br /&gt;
          local skills = {}&lt;br /&gt;
          for j = 1, 2 do&lt;br /&gt;
            if data.drop_rar[&amp;quot;crystal&amp;quot; .. i][&amp;quot;skill&amp;quot; .. j] then&lt;br /&gt;
              table.insert(skills, data.drop_rar[&amp;quot;crystal&amp;quot; .. i][&amp;quot;skill&amp;quot; .. j].name)&lt;br /&gt;
              mw.smw.set(&lt;br /&gt;
                {dropCrystal = data.drop_rar[&amp;quot;crystal&amp;quot; .. i][&amp;quot;skill&amp;quot; .. j].name .. data.drop_rar[&amp;quot;crystal&amp;quot; .. i].rank}&lt;br /&gt;
              )&lt;br /&gt;
            end&lt;br /&gt;
          end&lt;br /&gt;
&lt;br /&gt;
          if #skills &amp;gt; 0 then&lt;br /&gt;
            table.insert(&lt;br /&gt;
              rows,&lt;br /&gt;
              {&lt;br /&gt;
                &amp;quot;结晶&amp;quot; .. data.drop_rar[&amp;quot;crystal&amp;quot; .. i].rank,&lt;br /&gt;
                table.concat(skills, &amp;quot;&amp;lt;br&amp;gt;&amp;quot;),&lt;br /&gt;
                showRate(data.drop_rar.crystal1Per * actual_crystal_per)&lt;br /&gt;
              }&lt;br /&gt;
            )&lt;br /&gt;
          end&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
      -- s武器&lt;br /&gt;
      if actual_wpn_per &amp;gt; 0 then&lt;br /&gt;
        local rateList = {data.drop_rar.wpn1Per, data.drop_rar.wpn2Per, data.drop_rar.wpn3Per, data.drop_rar.wpn4Per}&lt;br /&gt;
        local actualRateList = calcActualDropRate(rateList)&lt;br /&gt;
&lt;br /&gt;
        for i = 1, 4 do&lt;br /&gt;
          if data.drop_rar[&amp;quot;wpn&amp;quot; .. i] then&lt;br /&gt;
            table.insert(&lt;br /&gt;
              rows,&lt;br /&gt;
              {&lt;br /&gt;
                &amp;quot;S武器&amp;quot;,&lt;br /&gt;
                addlink(data.drop_rar[&amp;quot;wpn&amp;quot; .. i].itemID.name, &amp;quot;物品&amp;quot;) ..&lt;br /&gt;
                  &amp;quot;[&amp;quot; .. data.drop_rar[&amp;quot;wpn&amp;quot; .. i .. &amp;quot;_slot&amp;quot;] .. &amp;quot;]&amp;quot;,&lt;br /&gt;
                showRate(actualRateList[i] * actual_wpn_per)&lt;br /&gt;
              }&lt;br /&gt;
            )&lt;br /&gt;
            mw.smw.set(&lt;br /&gt;
              {dropWpn = data.drop_rar[&amp;quot;wpn&amp;quot; .. i].itemID.name .. &amp;quot;[&amp;quot; .. data.drop_rar[&amp;quot;wpn&amp;quot; .. i .. &amp;quot;_slot&amp;quot;] .. &amp;quot;]&amp;quot;}&lt;br /&gt;
            )&lt;br /&gt;
          end&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
      -- s装备&lt;br /&gt;
      if actual_equip_per &amp;gt; 0 then&lt;br /&gt;
        local rateList = {&lt;br /&gt;
          data.drop_rar.equip1Per,&lt;br /&gt;
          data.drop_rar.equip2Per,&lt;br /&gt;
          data.drop_rar.equip3Per,&lt;br /&gt;
          data.drop_rar.equip4Per&lt;br /&gt;
        }&lt;br /&gt;
        local actualRateList = calcActualDropRate(rateList)&lt;br /&gt;
&lt;br /&gt;
        for i = 1, 4 do&lt;br /&gt;
          if data.drop_rar[&amp;quot;equip&amp;quot; .. i] then&lt;br /&gt;
            table.insert(&lt;br /&gt;
              rows,&lt;br /&gt;
              {&lt;br /&gt;
                &amp;quot;S装备&amp;quot;,&lt;br /&gt;
                addlink(data.drop_rar[&amp;quot;equip&amp;quot; .. i].itemID.name, &amp;quot;物品&amp;quot;) ..&lt;br /&gt;
                  &amp;quot;[&amp;quot; .. data.drop_rar[&amp;quot;equip&amp;quot; .. i .. &amp;quot;_slot&amp;quot;] .. &amp;quot;]&amp;quot;,&lt;br /&gt;
                showRate(actualRateList[i] * actual_equip_per)&lt;br /&gt;
              }&lt;br /&gt;
            )&lt;br /&gt;
            mw.smw.set(&lt;br /&gt;
              {&lt;br /&gt;
                dropEquip = data.drop_rar[&amp;quot;equip&amp;quot; .. i].itemID.name ..&lt;br /&gt;
                  &amp;quot;[&amp;quot; .. data.drop_rar[&amp;quot;equip&amp;quot; .. i .. &amp;quot;_slot&amp;quot;] .. &amp;quot;]&amp;quot;&lt;br /&gt;
              }&lt;br /&gt;
            )&lt;br /&gt;
          end&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
      -- 战技书&lt;br /&gt;
      if actual_arts_per &amp;gt; 0 then&lt;br /&gt;
        local rateList = {&lt;br /&gt;
          data.drop_rar.arts1Per,&lt;br /&gt;
          data.drop_rar.arts2Per,&lt;br /&gt;
          data.drop_rar.arts3Per,&lt;br /&gt;
          data.drop_rar.arts4Per,&lt;br /&gt;
          data.drop_rar.arts5Per,&lt;br /&gt;
          data.drop_rar.arts6Per,&lt;br /&gt;
          data.drop_rar.arts7Per,&lt;br /&gt;
          data.drop_rar.arts8Per&lt;br /&gt;
        }&lt;br /&gt;
        local actualRateList = calcActualDropRate(rateList)&lt;br /&gt;
&lt;br /&gt;
        for i = 1, 8 do&lt;br /&gt;
          if data.drop_rar[&amp;quot;arts&amp;quot; .. i] then&lt;br /&gt;
            table.insert(&lt;br /&gt;
              rows,&lt;br /&gt;
              {&lt;br /&gt;
                &amp;quot;战技书&amp;quot;,&lt;br /&gt;
                data.drop_rar[&amp;quot;arts&amp;quot; .. i].itemID.name,&lt;br /&gt;
                showRate(actualRateList[i] * actual_arts_per)&lt;br /&gt;
              }&lt;br /&gt;
            )&lt;br /&gt;
            mw.smw.set({dropArts = data.drop_rar[&amp;quot;arts&amp;quot; .. i].itemID.name})&lt;br /&gt;
          end&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
      box = box .. html.wikitable(header, rows, {class = &amp;quot;xbtable&amp;quot;})&lt;br /&gt;
      table.insert(boxlist, box)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if data.drop_spr then&lt;br /&gt;
      local box = html.h4(&amp;quot;金宝箱 &amp;quot; .. boxRateList[1] .. &amp;quot;%&amp;quot;)&lt;br /&gt;
      local header = {&amp;quot;种类&amp;quot;, &amp;quot;物品&amp;quot;, &amp;quot;概率&amp;quot;}&lt;br /&gt;
      local rows = {}&lt;br /&gt;
&lt;br /&gt;
      local totalPer =&lt;br /&gt;
        data.drop_spr.wpn_per + data.drop_spr.uni_wpn_per + data.drop_spr.uni_equip_per + data.drop_spr.arts_per&lt;br /&gt;
      local actual_wpn_per = data.drop_spr.wpn_per / totalPer&lt;br /&gt;
      local actual_uni_wpn_per = data.drop_spr.uni_wpn_per / totalPer&lt;br /&gt;
      local actual_uni_equip_per = data.drop_spr.uni_equip_per / totalPer&lt;br /&gt;
      local actual_arts_per = data.drop_spr.arts_per / totalPer&lt;br /&gt;
&lt;br /&gt;
      -- s武器&lt;br /&gt;
      if actual_wpn_per &amp;gt; 0 then&lt;br /&gt;
        local rateList = {data.drop_spr.wpn1Per, data.drop_spr.wpn2Per, data.drop_spr.wpn3Per, data.drop_spr.wpn4Per}&lt;br /&gt;
        local actualRateList = calcActualDropRate(rateList)&lt;br /&gt;
&lt;br /&gt;
        for i = 1, 4 do&lt;br /&gt;
          if data.drop_spr[&amp;quot;wpn&amp;quot; .. i] then&lt;br /&gt;
            table.insert(&lt;br /&gt;
              rows,&lt;br /&gt;
              {&lt;br /&gt;
                &amp;quot;S武器&amp;quot;,&lt;br /&gt;
                addlink(data.drop_spr[&amp;quot;wpn&amp;quot; .. i].itemID.name, &amp;quot;物品&amp;quot;) ..&lt;br /&gt;
                  &amp;quot;[&amp;quot; .. data.drop_spr[&amp;quot;wpn&amp;quot; .. i .. &amp;quot;_slot&amp;quot;] .. &amp;quot;]&amp;quot;,&lt;br /&gt;
                showRate(actualRateList[i] * actual_wpn_per)&lt;br /&gt;
              }&lt;br /&gt;
            )&lt;br /&gt;
            mw.smw.set(&lt;br /&gt;
              {dropWpn = data.drop_spr[&amp;quot;wpn&amp;quot; .. i].itemID.name .. &amp;quot;[&amp;quot; .. data.drop_spr[&amp;quot;wpn&amp;quot; .. i .. &amp;quot;_slot&amp;quot;] .. &amp;quot;]&amp;quot;}&lt;br /&gt;
            )&lt;br /&gt;
          end&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
      -- u武器&lt;br /&gt;
      if actual_uni_wpn_per &amp;gt; 0 then&lt;br /&gt;
        local rateList = {&lt;br /&gt;
          data.drop_spr.uni_wpn1Per,&lt;br /&gt;
          data.drop_spr.uni_wpn2Per,&lt;br /&gt;
          data.drop_spr.uni_wpn3Per,&lt;br /&gt;
          data.drop_spr.uni_wpn4Per,&lt;br /&gt;
          data.drop_spr.uni_wpn5Per,&lt;br /&gt;
          data.drop_spr.uni_wpn6Per,&lt;br /&gt;
          data.drop_spr.uni_wpn7Per,&lt;br /&gt;
          data.drop_spr.uni_wpn8Per&lt;br /&gt;
        }&lt;br /&gt;
        local actualRateList = calcActualDropRate(rateList)&lt;br /&gt;
&lt;br /&gt;
        for i = 1, 8 do&lt;br /&gt;
          if data.drop_spr[&amp;quot;uni_wpn&amp;quot; .. i] then&lt;br /&gt;
            table.insert(&lt;br /&gt;
              rows,&lt;br /&gt;
              {&lt;br /&gt;
                &amp;quot;U武器&amp;quot;,&lt;br /&gt;
                addlink(data.drop_spr[&amp;quot;uni_wpn&amp;quot; .. i].itemID.name, &amp;quot;物品&amp;quot;),&lt;br /&gt;
                showRate(actualRateList[i] * actual_uni_wpn_per)&lt;br /&gt;
              }&lt;br /&gt;
            )&lt;br /&gt;
            mw.smw.set({dropUniWpn = data.drop_spr[&amp;quot;uni_wpn&amp;quot; .. i].itemID.name})&lt;br /&gt;
          end&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
      -- u装备&lt;br /&gt;
      if actual_uni_equip_per &amp;gt; 0 then&lt;br /&gt;
        local rateList = {&lt;br /&gt;
          data.drop_spr.uni_equip1Per,&lt;br /&gt;
          data.drop_spr.uni_equip2Per,&lt;br /&gt;
          data.drop_spr.uni_equip3Per,&lt;br /&gt;
          data.drop_spr.uni_equip4Per,&lt;br /&gt;
          data.drop_spr.uni_equip5Per,&lt;br /&gt;
          data.drop_spr.uni_equip6Per,&lt;br /&gt;
          data.drop_spr.uni_equip7Per,&lt;br /&gt;
          data.drop_spr.uni_equip8Per&lt;br /&gt;
        }&lt;br /&gt;
        local actualRateList = calcActualDropRate(rateList)&lt;br /&gt;
&lt;br /&gt;
        for i = 1, 8 do&lt;br /&gt;
          if data.drop_spr[&amp;quot;uni_equip&amp;quot; .. i] then&lt;br /&gt;
            table.insert(&lt;br /&gt;
              rows,&lt;br /&gt;
              {&lt;br /&gt;
                &amp;quot;U装备&amp;quot;,&lt;br /&gt;
                addlink(data.drop_spr[&amp;quot;uni_equip&amp;quot; .. i].itemID.name, &amp;quot;物品&amp;quot;),&lt;br /&gt;
                showRate(actualRateList[i] * actual_uni_equip_per)&lt;br /&gt;
              }&lt;br /&gt;
            )&lt;br /&gt;
            mw.smw.set({dropUniEquip = data.drop_spr[&amp;quot;uni_equip&amp;quot; .. i].itemID.name})&lt;br /&gt;
          end&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
      -- 战技书&lt;br /&gt;
      if actual_arts_per &amp;gt; 0 then&lt;br /&gt;
        local rateList = {&lt;br /&gt;
          data.drop_spr.arts1Per,&lt;br /&gt;
          data.drop_spr.arts2Per,&lt;br /&gt;
          data.drop_spr.arts3Per,&lt;br /&gt;
          data.drop_spr.arts4Per,&lt;br /&gt;
          data.drop_spr.arts5Per,&lt;br /&gt;
          data.drop_spr.arts6Per,&lt;br /&gt;
          data.drop_spr.arts7Per,&lt;br /&gt;
          data.drop_spr.arts8Per&lt;br /&gt;
        }&lt;br /&gt;
        local actualRateList = calcActualDropRate(rateList)&lt;br /&gt;
&lt;br /&gt;
        for i = 1, 8 do&lt;br /&gt;
          if data.drop_spr[&amp;quot;arts&amp;quot; .. i] then&lt;br /&gt;
            table.insert(&lt;br /&gt;
              rows,&lt;br /&gt;
              {&lt;br /&gt;
                &amp;quot;战技书&amp;quot;,&lt;br /&gt;
                data.drop_spr[&amp;quot;arts&amp;quot; .. i].itemID.name,&lt;br /&gt;
                showRate(actualRateList[i] * actual_arts_per)&lt;br /&gt;
              }&lt;br /&gt;
            )&lt;br /&gt;
            mw.smw.set({dropArts = data.drop_spr[&amp;quot;arts&amp;quot; .. i].itemID.name})&lt;br /&gt;
          end&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
      box = box .. html.wikitable(header, rows, {class = &amp;quot;xbtable&amp;quot;})&lt;br /&gt;
      table.insert(boxlist, box)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if #boxlist &amp;gt; 0 then&lt;br /&gt;
      wikitext = wikitext .. html.h3(&amp;quot;掉落&amp;quot;)&lt;br /&gt;
      wikitext = wikitext .. &amp;#039;&amp;lt;div class=&amp;quot;row&amp;quot;&amp;gt;&amp;#039;&lt;br /&gt;
      for _, v in ipairs(boxlist) do&lt;br /&gt;
        wikitext = wikitext .. mw.ustring.format([[&amp;lt;div class=&amp;quot;large-4 medium-6 columns&amp;quot;&amp;gt;%s&amp;lt;/div&amp;gt;]], v)&lt;br /&gt;
      end&lt;br /&gt;
      wikitext = wikitext .. &amp;quot;&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return compress(wikitext)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.fetchDataById(id)&lt;br /&gt;
  return post(&amp;quot;bdat_common.BTL_enelist&amp;quot;, id)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
  local args = getArgs(frame)&lt;br /&gt;
  local out = &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  for _, id in ipairs(args) do&lt;br /&gt;
    local data = p.fetchDataById(id)&lt;br /&gt;
    out = out .. html.h2(data.mapID.name .. &amp;quot; (&amp;quot; .. data.row_id .. &amp;quot;)&amp;quot;)&lt;br /&gt;
    out = out .. p.template(frame, data)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  -- mw.log(mw.text.jsonEncode(data, mw.text.JSON_PRETTY))&lt;br /&gt;
&lt;br /&gt;
  return out&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Monado</name></author>
	</entry>
</feed>