コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
シリーズ紹介
ファイター
アクション
テクニック
ゲームモード
ステージ
アイテム
音楽
編集
最近の更新
おまかせ表示
編集ガイドライン
会議室
登録者一覧
大乱闘スマッシュブラザーズWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
ログアウトした編集者のページ
もっと詳しく
投稿記録
トーク
大乱闘スマッシュブラザーズWikiで記事を編集するには
アカウントの作成
・
ログイン
が必要です。編集方法や方針などについては、
大乱闘スマッシュブラザーズWiki:編集ガイドライン
をご覧ください。
モジュール:コンクエ表のソースを表示
モジュール
議論
English
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
特別ページ
ページ情報
表示
サイドバーに移動
非表示
←
モジュール:コンクエ表
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
要求した操作を行うことは許可されていません。
このページのソースの閲覧やコピーができます。
--[[ モジュール呼び出し用関数の引数リスト |DateStart= |DateEnd= |Title= |RedTeamName= |Red1= |Red2= |Red3= |Red4= |Red5= |Red6= |Red7= |Red8= |BlueTeamName= |Blue1= |Blue2= |Blue3= |Blue4= |Blue5= |Blue6= |Blue7= |Blue8= |GreenTeamName= |Green1= |Green2= |Green3= |Green4= |Green5= |Green6= |Green7= |Green8= |RedWorld3ds= |BlueWorld3ds= |GreenWorld3ds= |RedAsia3ds= |BlueAsia3ds= |GreenAsia3ds= |RedAmericas3ds= |BlueAmericas3ds= |GreenAmericas3ds= |RedEurope3ds= |BlueEurope3ds= |GreenEurope3ds= |RedWorldWiiU= |BlueWorldWiiU= |GreenWorldWiiU= |RedJapanWiiU= |BlueJapanWiiU= |GreenJapanWiiU= |RedAmericasWiiU= |BlueAmericasWiiU= |GreenAmericasWiiU= |RedEuropeWiiU= |BlueEuropeWiiU= |GreenEuropeWiiU= ]]-- --[[ デバッグ用コード例 =p.main( mw.getCurrentFrame():newChild{ title="Module:コンクエ表", args={["DateStart"]="2015/1/2", ["DateEnd"]="2015/1/5", ["Title"]="対決!健康 VS 剣豪", ["RedTeamName"]="健康チーム", ["Red1"]="Wii Fit トレーナー", ["Red2"]="ドクターマリオ", ["Red3"]="", ["Red4"]="", ["Red5"]="", ["BlueTeamName"]="剣豪チーム", ["Blue1"]="アイク", ["Blue2"]="メタナイト", ["Blue3"]="", ["Blue4"]="", ["Blue5"]="", ["GreenTeamName"]="", ["Green1"]="", ["Green2"]="", ["Green3"]="", ["Green4"]="", ["Green5"]="", ["RedWorld3ds"]="31", ["BlueWorld3ds"]="69", ["GreenWorld3ds"]="", ["RedAsia3ds"]="30", ["BlueAsia3ds"]="70", ["GreenAsia3ds"]="", ["RedAmericas3ds"]="34", ["BlueAmericas3ds"]="66", ["GreenAmericas3ds"]="", ["RedEurope3ds"]="28", ["BlueEurope3ds"]="72", ["GreenEurope3ds"]="", ["RedWorldWiiU"]="35", ["BlueWorldWiiU"]="65", ["GreenWorldWiiU"]="", ["RedJapanWiiU"]="33", ["BlueJapanWiiU"]="67", ["GreenJapanWiiU"]="", ["RedAmericasWiiU"]="36", ["BlueAmericasWiiU"]="64", ["GreenAmericasWiiU"]="", ["RedEuropeWiiU"]="30", ["BlueEuropeWiiU"]="70", ["GreenEuropeWiiU"]=""} } ) ]]-- local p = {} local RESULTS = { WIN = 3, LOSE = 2, NONE = 1 } local FIGHTER_CLASSNAME = { {"トゥーンリンク", "toon"}, {"クッパJr.", "jr"}, {"ゼロスーツサムス", "zeros"}, {"ブラックピット", "bpit"}, {"キャプテン・ファルコン", "cf"}, {"ドクターマリオ", "drmario"}, {"マリオ", "mario"}, {"ルイージ", "luigi"}, {"ピーチ", "peach"}, {"クッパ", "koopa"}, {"ヨッシー", "yoshi"}, {"ロゼッタ&チコ", "rosetta"}, {"ワリオ", "wario"}, {"Mr.ゲーム&ウォッチ", "gw"}, {"ドンキーコング", "dk"}, {"ディディーコング", "dd"}, {"リンク", "link"}, {"ゼルダ", "zelda"}, {"シーク", "sheik"}, {"ガノンドロフ", "ganon"}, {"サムス", "samus"}, {"ピット", "pit"}, {"パルテナ", "palutena"}, {"マルス", "marth"}, {"アイク", "ike"}, {"ルフレ", "reflet"}, {"カービィ", "kirby"}, {"デデデ", "dedede"}, {"メタナイト", "meta"}, {"リトル・マック", "mac"}, {"フォックス", "fox"}, {"ファルコ", "falco"}, {"ピカチュウ", "pikachu"}, {"リザードン", "lizardon"}, {"ルカリオ", "lucario"}, {"プリン", "purin"}, {"ゲッコウガ", "gekkouga"}, {"ダックハント", "duckhunt"}, {"ロボット", "rob"}, {"ネス", "ness"}, {"むらびと", "murabito"}, {"ピクミン&オリマー", "olimar"}, {"Wii Fit トレーナー", "wiifit"}, {"ルキナ", "lucina"}, {"シュルク", "shulk"}, {"パックマン", "pac"}, {"ロックマン", "rockman"}, {"ソニック", "sonic"}, {"ミュウツー", "mewtwo"}, {"リュカ", "lucas"}, {"ロイ", "roy"}, {"リュウ", "ryu"}, {"クラウド", "cloud"}, {"カムイ", "kamui"}, {"ベヨネッタ", "bayo"} } local DASH = "—" ---- utils ---- -- 引数がnil or 空文字 or ;ならtrue local function isEmpty(a) if a == nil or a == "" or a == ";" then return true end return false end -- 引数の配列の各要素をisEmptyに渡してその結果が全てtrueならばtrue local function isEmptyAll(a) local nonEmptyFlag = false for idx, val in pairs(a) do if isEmpty(val) == false then nonEmptyFlag = true break end end if nonEmptyFlag == true then return false end return true end -- booleanがtrueの場合はtを返す。falseの場合はfを返す。 local function ifElse(boolean, tFn, fFn) if boolean == true then return tFn() end return fFn() end -- テーブルをディープコピー -- https://monobook.org/wiki/Lua%E3%81%A7%E3%83%87%E3%82%A3%E3%83%BC%E3%83%97%E3%82%B3%E3%83%94%E3%83%BC%E3%82%92%E3%81%99%E3%82%8B local function deepcopy(orig) local orig_type = type(orig) local copy if orig_type == 'table' then -- tableなら再帰でコピー copy = {} for orig_key, orig_value in next, orig, nil do copy[deepcopy(orig_key)] = deepcopy(orig_value) end setmetatable(copy, deepcopy(getmetatable(orig))) else -- number, string, booleanなどはそのままコピー copy = orig end return copy end -- 連想配列の指定したキーの値を取得する。キーは文字列で、何階層でも指定可能。キーが存在しなかった場合はnilを返す。 local function path(t, ...) local current = t for _, key in ipairs({...}) do if type(current) ~= "table" then return nil end current = current[key] end return current end -- 引数の文字列中の連続する半角スペース、改行、インデントを一つの半角スペースに変換 local function trimWhitespaces(str) return str:gsub("%s+", " "):match("^%s*(.-)%s*$") end -- 引数の型が数値ならそのまま返す。文字列型の数値なら数値型に変換して返す。それ以外なら0を返す。 local function toNum(a) local r = tonumber(a) if r == nil then return 0 end return r end -- 対象のテーブルの値に、指定のvalが存在するかどうか。 -- https://秀丸マクロ.net/lua_tips/?Lua+implements_func_table local function includes (tbl, val) for k, v in pairs (tbl) do if v==val then return true end end return false end -- 引数で受け取った複数のテーブルを結合して返す。 -- https://秀丸マクロ.net/lua_tips/?Lua+implements_func_table local function mergeTables (...) local r = {} for _, l in ipairs ({...}) do if type(l) == "table" then -- 整数がキーの要素 for _, v in ipairs (l) do table.insert (r, v) end -- 整数以外がキーの要素 for k, v in pairs (l) do if not (type(k)=="number" and k%1==0) then r[k] = v end end end end return r end -- javascriptのfilter関数と同等機能 -- https://秀丸マクロ.net/lua_tips/?Lua+implements_func_table local function filter(tbl, func) local res = {} for i, v in ipairs(tbl) do if func(i, v) then res[1+#res] = v --高速 end end for k, v in pairs(tbl) do if func(k, v) then -- 整数以外がキーの要素 if not (type(k)=="number" and k%1==0) then res[k] = v end end end return res end -- テーブルからempty要素を除去 local function removeEmpties(tbl) return filter(tbl, function(k, v) return isEmpty(v) == false end) end -- 文字列strに含まれるfind全てをreplaceに置換する --[[ local function replaceAll(str, find, replace) error(mw.dumpObject({a=type(str), b=type(find), c=type(replace)})) return str:gsub(find:gsub("%p", "%%%0"), replace) end ]]-- -- 文字列aに含まれるすべてのbをcに置換する。 local function replaceAll(a, b, c) local result = string.gsub(a, b, c) return result end ---- リザルトデータ変換系 ---- -- 引数に3勢力の%を受け取り、targetの勝敗を返す。targetが空文字ならNONEを、targetがa以上かつb以上ならWINを、どちらでもないならLOSEを返す。 local function winOrLoseOrNone(target, a, b) if isEmpty(target) == true then return RESULTS.NONE end local t = toNum(target) if t >= toNum(a) and t >= toNum(b) then return RESULTS.WIN end return RESULTS.LOSE end -- 引数に3勢力の%を受け取り、それぞれの勝敗を返す。{red:RESULTS, blue: RESULTS, green: RESULTS} local function percentagesIntoTeamsResult(red, blue, green) return { red = winOrLoseOrNone(red, blue, green), blue = winOrLoseOrNone(blue, red, green), green = winOrLoseOrNone(green, red, blue) } end -- 勢力の勝敗結果をもとにセル背景色rgbaを作成 local function teamsResultIntoRgba(redBlueGreen) local list = { {"red", [[rgba(255, 0, 0, %s)]], redBlueGreen.red}, {"blue", [[rgba(0, 0, 255, %s)]], redBlueGreen.blue}, {"green", [[rgba(0, 191, 0, %s)]], redBlueGreen.green} } local temp = {} for key, val in pairs(list) do if val[3] == RESULTS.WIN then temp[val[1]] = string.format(val[2], 0.5) elseif val[3] == RESULTS.LOSE then temp[val[1]] = string.format(val[2], 0.125) else temp[val[1]] = "" end end return temp end -- 引数で受け取ったファイター名を対応するクラス名に変換して返す。 local function fighterNameIntoClassName(fname) if isEmpty(fname) == true then return "" end for idx, val in pairs(FIGHTER_CLASSNAME) do if val[1] == fname then return val[2] end end error("不正なファイター名: " .. fname) end -- エリア名を表すオブジェクトのキー名をwikiでの表示名に変換 local function areaNameKeyIntoViewText(key) if key == [[asia]] then return [[アジア]] end if key == [[americas]] then return [[北米・南米]] end if key == [[europe]] then return [[欧・オ]] end if key == [[japan]] then return [[日本]] end --使わないかも if key == [[world]] then return [[世界]] end error("不正なエリア名キー: " .. key) end ---- その他 ---- local function makeTeamDataTemplate() local teamDataTempalceC = { percentage = nil, bgColor = nil, } local teamDataTemplate = { name = nil, members = {}, results = { ["3ds"] = { world = teamDataTempalceC, asia = teamDataTempalceC, americas = teamDataTempalceC, europe = teamDataTempalceC }, wiiU = { world = teamDataTempalceC, japan = teamDataTempalceC, americas = teamDataTempalceC, europe = teamDataTempalceC } } } return teamDataTemplate end -- テーブルのrowspan指定部分を生成。WiiU発売前なら3(3DSとWiiU行を連結しない)、WiiU発売後なら6(連結する) local function makeRowSpan(noWiiUEra) return string.format( [[rowspan=%s]], ifElse( noWiiUEra, function() return 3 end, function() return 6 end ) ) end TeamData = {} -- 勢力データ クラスもどき -- TeamData.new = function(data, frame) local obj = {} obj.data = data obj.frame = frame -- 勢力メンバーを対応クラス名に変換して1つの文字列にして返す。 function obj:fighterNamesIntoClassNames() local temp = {} for idx, val in pairs(self.data.members) do table.insert( temp, fighterNameIntoClassName(val) ) end return table.concat(temp, " ") end -- ファイター名配列の各要素で頭アイコンテンプレートを生成して1つの文字列にして返す。 function obj:makeHeadIcons() local temp = {} for idx, val in pairs(self.data.members) do if isEmpty(val) == false then table.insert( temp, self.frame:expandTemplate{ title = '頭アイコン', args = { c=val, g='for', s='32px' } } ) end end return table.concat(temp, "") end -- 3DSとWiiU両方がある勢力の、所属ファイター一覧セルの背景色スタイル。セルの上半分が3DSの結果色、下半分がWiiUの結果色となるように、2色グラデーションで表現している。 function obj:makeStyleTwoBgColor() local str = [[ background: linear-gradient( transparent 1%%, ★3ds★ 1%%, ★3ds★ 50%%, ★WiiU★ 50%%, ★WiiU★ ); background: -webkit-linear-gradient( transparent 1%%, ★3ds★ 1%%, ★3ds★ 50%%, ★WiiU★ 50%%, ★WiiU★ ); ]] --error(mw.dumpObject({a=self.data.results["3ds"].world.bgColor, b=self.data.results.wiiU.world.bgColor})) --[[ local a, b = xpcall(replaceAll, "★3ds★", self.data.results["3ds"].world.bgColor) if a == false then error(mw.dumpObject({a=a, b=b, c= self.data.results["3ds"].world.bgColor, d=type(self.data.results["3ds"].world.bgColor)})) end xpcall(replaceAll, "★WiiU★", self.data.results.wiiU.world.bgColor) if type(self.data.results["3ds"].world.bgColor) ~= "string" then error(mw.dumpObject({a=type(self.data.results["3ds"].world.bgColor), b=self.data})) end ]]-- str = replaceAll(str, "★3ds★", self.data.results["3ds"].world.bgColor) str = replaceAll(str, "★WiiU★", self.data.results.wiiU.world.bgColor) return str end -- 勢力紹介(勢力名と所属ファイター表記)セルを生成。 -- rowspan:WiiU発売前は3、発売後は6(3DS行とWiiU行を結合) -- 背景色:勢力がある場合のみつける。WiiU発売前は単一色。色は世界の勝敗色。 -- 顔アイコンとタイトル:勢力があれば記載し、なければ横線。 -- 中央に点線:WiiU発売後のみ描画。 -- WiiU行からは呼び出さない。WiiU発売後は行結合で、発売前はWiiU行には横線を描画するのみ。 function obj:makeCellTeamMembers(noWiiUEra) local style = [[ ★rowspan★ style=" width:200px; padding:0; position:relative; ★bgColor★ " ]] local view = [[ <div style=" z-index:1; position:relative; " > ★icons★ <p style="margin:0;"> ★teamName★ </p> </div> ★border★ ]] local rowspan = makeRowSpan(noWiiUEra) local bgColor = "" local icons = "" local teamName = "" local border = "" if #self.data.members == 0 then -- 勢力無しの場合 view = DASH elseif noWiiUEra == true then -- WiiU発売前 bgColor = [[background-color: ]] .. self.data.results["3ds"].world.bgColor .. [[;]] icons = self:makeHeadIcons() teamName = self.data.name else -- WiiU発売後 bgColor = self:makeStyleTwoBgColor() icons = self:makeHeadIcons() teamName = self.data.name border = [[ <hr style=" z-index:0; margin: auto; width:100%; height:0; position:absolute; top: 0; bottom: 0; background-color: transparent; border-top: 1px dashed #aaa; " > ]] end style = replaceAll(style, "★rowspan★", rowspan) style = replaceAll(style, "★bgColor★", bgColor) view = replaceAll(view, "★icons★", icons) view = replaceAll(view, "★teamName★", teamName) view = replaceAll(view, "★border★", border) return table.concat({trimWhitespaces(style), trimWhitespaces(view)}, "|") end -- エリア名セルと獲得パーセントセルを生成。 function obj:makeCellsAreaNameAndPercentage(console, areaName) local t = [[ style=" white-space:nowrap; font-size:75%; ★bgColor★ " |★areaName★ ||style=" font-size:75%; ★bgColor★ " |★text★ ]] -- local bgColor = path(self.data, "results", console, areaName, "bgColor") --[[ if self.data.results[console][areaName] == nil then error(mw.dumpObject({a = console, b = areaName, c = self.data.results})) end ]]-- local bgColor = self.data.results[console][areaName].bgColor local viewAreaName = areaNameKeyIntoViewText(areaName) -- local per = path(self.data, "results", console, areaName, "percentage") local per = self.data.results[console][areaName].percentage t = replaceAll(t, "★bgColor★", ifElse( isEmpty(bgColor), function() return "" end, function() return [[background-color: ]] .. bgColor .. ";" end )) t = replaceAll(t, "★areaName★", viewAreaName) t = replaceAll(t, "★text★", ifElse( isEmpty(per), function() return DASH end, function() return per .. [[%%]] end )) return trimWhitespaces(t) end -- 世界の%セルを生成。 function obj:makeCellWorldPercentage(console) -- local bgColor = path(self.data, "results", console, "world", "bgColor") local bgColor = self.data.results[console].world.bgColor local per = self.data.results[console].world.percentage local bgStyle = string.format( [[style="background: %s";]], ifElse( isEmpty(bgColor), function() return "" end, function() return bgColor end ) ) -- 参加してるなら↑のstyleを、不参加勢力ならスタイル無し local style = string.format( [[rowspan=3 %s]], ifElse( isEmpty(per), function() return "" end, function() return bgStyle end ) ) local view = ifElse( isEmpty(per), function() return DASH end, function() return per .. [[%]] end ) return table.concat({trimWhitespaces(style), trimWhitespaces(view)}, "|") end return obj end --[[ params: dateStart dateEnd title red name members [...] results 3ds world percentage bgColor asia americas europe results wiiU world japan americas europe ]]-- local function buildWikiTable(params, frame) local noWiiUEra = isEmptyAll({params.red.results.wiiU.world.percentage, params.blue.results.wiiU.world.percentage, params.green.results.wiiU.world.percentage}) local red = TeamData.new(params.red, frame) local blue = TeamData.new(params.blue, frame) local green = TeamData.new(params.green, frame) local noWiiUCell = [[|rowspan=3|]] .. DASH -- メモ: -- ・rowspan=nのあとに続く | は同じ行に書かなければならない。 -- ・文字列の記述を""" と[[]]で混在させてしまった。 local markdowns = { -- 行 抽出スクリプト用のクラス指定 string.format( [[|- class="conc %s"]], table.concat({ red:fighterNamesIntoClassNames(), blue:fighterNamesIntoClassNames(), green:fighterNamesIntoClassNames() }, " ")), -- 1列目の上半分 「3」(3DS) [[|rowspan=3 style="color:#d01312;" |'''''3''''']], -- 2列目 開始日と終了日のセル string.format([[|rowspan=6 | %s ~ <br />%s]], params.dateStart, params.dateEnd), -- 題のセル。WiiUがあればrowspanが6に(1行に)、なければ3に(2行に) string.format([[|%s|%s]], makeRowSpan(noWiiUEra), [[''']] .. params.title .. [[''']]), -- 赤勢力紹介セル。 [[|]] .. red:makeCellTeamMembers(noWiiUEra), -- 3DS赤勢力のアジアセル。 [[|]] .. red:makeCellsAreaNameAndPercentage("3ds", "asia"), -- 3DS赤勢力の世界セル。 [[|]] .. red:makeCellWorldPercentage("3ds"), -- 青勢力紹介セル。 [[|]] .. blue:makeCellTeamMembers(noWiiUEra), -- 3DS青勢力のアジアセル。 [[|]] .. blue:makeCellsAreaNameAndPercentage("3ds", "asia"), -- 3DS青勢力の世界セル。 [[|]] .. blue:makeCellWorldPercentage("3ds"), -- 緑勢力紹介セル。 [[|]] .. green:makeCellTeamMembers(noWiiUEra), -- 3DS緑勢力のアジアセル。 [[|]] .. green:makeCellsAreaNameAndPercentage("3ds", "asia"), -- 3DS緑勢力の世界セル。 [[|]] .. green:makeCellWorldPercentage("3ds"), [[|-]], -- 3DS赤勢力の北米・南米セル。 [[|]] .. red:makeCellsAreaNameAndPercentage("3ds", "americas"), -- 3DS青勢力の北米・南米セル。 [[|]] .. blue:makeCellsAreaNameAndPercentage("3ds", "americas"), -- 3DS緑勢力の北米・南米セル。 [[|]] .. green:makeCellsAreaNameAndPercentage("3ds", "americas"), [[|-]], -- 3DS赤勢力の欧州・オセアニアセル。 [[|]] .. red:makeCellsAreaNameAndPercentage("3ds", "europe"), -- 3DS青勢力の欧州・オセアニアセル。 [[|]] .. blue:makeCellsAreaNameAndPercentage("3ds", "europe"), -- 3DS緑勢力の欧州・オセアニアセル。 [[|]] .. green:makeCellsAreaNameAndPercentage("3ds", "europe"), [[|-]], -- 1列目の下半分 「U」(Wii U) [[|rowspan=3 style="color:#0095CA;" |'''''U''''']], -- 題のセル。WiiU発売前は横線を、発売後は何も記述しないことで3DSのセルと結合する。 ifElse( noWiiUEra, function() return noWiiUCell end, function() return "" end ), -- WiiU赤勢力紹介セル。WiiU発売前は横線を、発売後は何も記述しないことで3DSのセルと結合する。 ifElse( noWiiUEra, function() return noWiiUCell end, function() return "" end ), -- WiiU赤勢力の日本セル。 [[|]] .. red:makeCellsAreaNameAndPercentage("wiiU", "japan"), -- WiiU赤勢力の世界セル。 [[|]] .. red:makeCellWorldPercentage("wiiU"), -- WiiU青勢力紹介セル。 ifElse( noWiiUEra, function() return noWiiUCell end, function() return "" end ), -- WiiU青勢力の日本セル。 [[|]] .. blue:makeCellsAreaNameAndPercentage("wiiU", "japan"), -- WiiU青勢力の世界セル。 [[|]] .. blue:makeCellWorldPercentage("wiiU"), -- WiiU緑勢力紹介セル。 ifElse( noWiiUEra, function() return noWiiUCell end, function() return "" end ), -- WiiU緑勢力の日本セル。 [[|]] .. green:makeCellsAreaNameAndPercentage("wiiU", "japan"), -- WiiU緑勢力の世界セル。 [[|]] .. green:makeCellWorldPercentage("wiiU"), [[|-]], -- WiiU赤勢力の北米・南米セル。 [[|]] .. red:makeCellsAreaNameAndPercentage("wiiU", "americas"), -- WiiU青勢力の北米・南米セル。 [[|]] .. blue:makeCellsAreaNameAndPercentage("wiiU", "americas"), -- WiiU緑勢力の北米・南米セル。 [[|]] .. green:makeCellsAreaNameAndPercentage("wiiU", "americas"), [[|-]], -- WiiU赤勢力の欧州・オセアニアセル。 [[|]] .. red:makeCellsAreaNameAndPercentage("wiiU", "europe"), -- WiiU青勢力の欧州・オセアニアセル。 [[|]] .. blue:makeCellsAreaNameAndPercentage("wiiU", "europe"), -- WiiU緑勢力の欧州・オセアニアセル。 [[|]] .. green:makeCellsAreaNameAndPercentage("wiiU", "europe"), } return table.concat(removeEmpties(markdowns), "\n") end function p.main(frame) local a = frame.args local red = makeTeamDataTemplate() local blue = makeTeamDataTemplate() local green = makeTeamDataTemplate() local bgColor3ds = { world = teamsResultIntoRgba(percentagesIntoTeamsResult(a.RedWorld3ds, a.BlueWorld3ds, a.GreenWorld3ds)), asia = teamsResultIntoRgba(percentagesIntoTeamsResult(a.RedAsia3ds, a.BlueAsia3ds, a.GreenAsia3ds)), americas = teamsResultIntoRgba(percentagesIntoTeamsResult(a.RedAmericas3ds, a.BlueAmericas3ds, a.GreenAmericas3ds)), europe = teamsResultIntoRgba(percentagesIntoTeamsResult(a.RedEurope3ds, a.BlueEurope3ds, a.GreenEurope3ds)) } local bgColorWiiU = { world = teamsResultIntoRgba(percentagesIntoTeamsResult(a.RedWorldWiiU, a.BlueWorldWiiU, a.GreenWorldWiiU)), japan = teamsResultIntoRgba(percentagesIntoTeamsResult(a.RedJapanWiiU, a.BlueJapanWiiU, a.GreenJapanWiiU)), americas = teamsResultIntoRgba(percentagesIntoTeamsResult(a.RedAmericasWiiU, a.BlueAmericasWiiU, a.GreenAmericasWiiU)), europe = teamsResultIntoRgba(percentagesIntoTeamsResult(a.RedEuropeWiiU, a.BlueEuropeWiiU, a.GreenEuropeWiiU)) } if isEmpty(a.Red1) == false then red.name = a.RedTeamName red.members = removeEmpties({ a.Red1, a.Red2, a.Red3, a.Red4, a.Red5, a.Red6, a.Red7, a.Red8 }) -- 参加している勢力であるならば、3DSは必ずある。 red.results["3ds"] = { world = { percentage = a.RedWorld3ds, bgColor = bgColor3ds.world.red }, asia = { percentage = a.RedAsia3ds, bgColor = bgColor3ds.asia.red }, americas = { percentage = a.RedAmericas3ds, bgColor = bgColor3ds.americas.red }, europe = { percentage = a.RedEurope3ds, bgColor = bgColor3ds.europe.red }, } -- WiiU発売前であれば、3DSはあってもWiiUは無い。 if isEmpty(a.RedWorldWiiU) == false then red.results.wiiU = { world = { percentage = a.RedWorldWiiU, bgColor = bgColorWiiU.world.red }, japan = { percentage = a.RedJapanWiiU, bgColor = bgColorWiiU.japan.red }, americas = { percentage = a.RedAmericasWiiU, bgColor = bgColorWiiU.americas.red }, europe = { percentage = a.RedEuropeWiiU, bgColor = bgColorWiiU.europe.red }, } end end if isEmpty(a.Blue1) == false then blue.name = a.BlueTeamName blue.members = removeEmpties({ a.Blue1, a.Blue2, a.Blue3, a.Blue4, a.Blue5, a.Blue6, a.Blue7, a.Blue8 }) blue.results["3ds"] = { world = { percentage = a.BlueWorld3ds, bgColor = bgColor3ds.world.blue }, asia = { percentage = a.BlueAsia3ds, bgColor = bgColor3ds.asia.blue }, americas = { percentage = a.BlueAmericas3ds, bgColor = bgColor3ds.americas.blue }, europe = { percentage = a.BlueEurope3ds, bgColor = bgColor3ds.europe.blue }, } if isEmpty(a.BlueWorldWiiU) == false then blue.results.wiiU = { world = { percentage = a.BlueWorldWiiU, bgColor = bgColorWiiU.world.blue }, japan = { percentage = a.BlueJapanWiiU, bgColor = bgColorWiiU.japan.blue }, americas = { percentage = a.BlueAmericasWiiU, bgColor = bgColorWiiU.americas.blue }, europe = { percentage = a.BlueEuropeWiiU, bgColor = bgColorWiiU.europe.blue }, } end end if isEmpty(a.Green1) == false then green.name = a.GreenTeamName green.members = removeEmpties({ a.Green1, a.Green2, a.Green3, a.Green4, a.Green5, a.Green6, a.Green7, a.Green8 }) green.results["3ds"] = { world = { percentage = a.GreenWorld3ds, bgColor = bgColor3ds.world.green }, asia = { percentage = a.GreenAsia3ds, bgColor = bgColor3ds.asia.green }, americas = { percentage = a.GreenAmericas3ds, bgColor = bgColor3ds.americas.green }, europe = { percentage = a.GreenEurope3ds, bgColor = bgColor3ds.europe.green }, } if isEmpty(a.GreenWorldWiiU) == false then green.results.wiiU = { world = { percentage = a.GreenWorldWiiU, bgColor = bgColorWiiU.world.green }, japan = { percentage = a.GreenJapanWiiU, bgColor = bgColorWiiU.japan.green }, americas = { percentage = a.GreenAmericasWiiU, bgColor = bgColorWiiU.americas.green }, europe = { percentage = a.GreenEuropeWiiU, bgColor = bgColorWiiU.europe.green }, } end end local params = { dateStart = a.DateStart, dateEnd = a.DateEnd, title = a.Title, red = red, blue = blue, green = green } local r = buildWikiTable(params, frame) return r end return p
このページで使用されているテンプレート:
モジュール:コンクエ表/doc
(
ソースを閲覧
)
モジュール:コンクエ表
に戻る。