Skip to content

Instantly share code, notes, and snippets.

@5zen
Last active August 29, 2015 14:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 5zen/ec13cda00fc6b56d54e1 to your computer and use it in GitHub Desktop.
Save 5zen/ec13cda00fc6b56d54e1 to your computer and use it in GitHub Desktop.
<内蔵版>MC☆アクシズ 領地敵兵算出機+テロリスト討伐シミュレータ (mixi 3鯖2期対応) by gozen
// ==UserScript==
// @name mc_calcn_all
// @namespace https://github.com/5zen
// @include http://*.bmcaxis.jp/facility/castle_send_troop.php*
// @description <内蔵版>MC☆アクシズ 領地敵兵算出機+テロリスト討伐シミュレータ (mixi 1鯖5期 暫定対応) by gozen
// @icon https://raw.github.com/5zen/mc_beyond/master/icon.png
// @author gozen
// @version 1.1.2
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_xmlhttpRequest
// @grant GM_addStyle
// @grant GM_getResourceURL
// ==/UserScript==
//
// 2013.01.31 1.0.0 移植
// 2013.03.14 1.0.1 Firefox+Greasemonkey対応
// 2014.05.17 1.1.0 mixi 1鯖 5期 暫定対応
// 2014.05.18 1.1.1 テロリスト討伐シミュレータ動作不良を修正
// 2014.07.23 1.1.2 データ保存が間違っていたのを修正
// mixi 3鯖のデフォルトを2期に変更
var serverTable = [
// サーバー情報初期設定
["m1",6],
["m3",2],
["",1],
["",1],
["",1],
["",1],
["",1],
["",1],
["",1],
["",1],
["",1],
["",1],
["",1],
["",1],
["",1]
]
// バージョン配置用
var ver_rack = "ver 1.1.0</b>";
var kino_ver = "ver 1.0.0";
// 配布URL
var se_rack = "<b><内蔵版>MCあくしず 領地敵兵算出機 by gozen ";
var url_rack = "https://gist.github.com/5zen";
var com_rack = "出現目安です! 初心者から変態まで御用達の通期版"
var url_rack2 = "";
var title = document.title;// ページタイトル
var length;// 出兵距離格納変数
var tile = new Array(0,0,0,0,0,0);// 出兵先のタイル数格納変数(平地、木、岩、鉄、穀、荒地)の順。
// 出兵先のパネル構成ごとの兵数計算パラメータ
// [剣兵、弓、槍、騎、弩、矛、近衛]の順に格納。
//
// 鯖判定用
var sv_seazon = -1;
// 1期用、2期用、3期用テーブルとして作成
var point1ki = {
//1期木岩鉄糧空剣弓槍騎弩矛近
"000116":[5,0,0,0,0,0,0,"☆1※"],//☆1※
"100016":[5,0,0,0,0,0,0,"☆1木"],//☆1木
"010016":[5,0,0,0,0,0,0,"☆1岩"],//☆1岩
"001016":[5,0,0,0,0,0,0,"☆1鉄"],//☆1鉄
"300016":[0,4,0.5,0.5,0,0,0,"☆2(3-0-0-0)"],//☆2(3-0-0-0)
"030016":[0,0.5,4,0.5,0,0,0,"☆2(0-3-0-0)"],//☆2(0-3-0-0)
"003016":[0,0.5,0.5,4,0,0,0,"☆2(0-0-3-0)"],//☆2(0-0-3-0)
"111022":[0,6,6,6,0,0,0,"☆3(1-1-1-0)"],//☆3(1-1-1-0)
"000411":[0,7.5,7.5,7.5,0,0,0,"☆3(0-0-0-4)"],//☆3(0-0-0-4)
"222023":[0,12.5,12.5,12.5,0,0,0,"☆4(2-2-2-0)"],//☆4(2-2-2-0)
"000813":[0,12.5,12.5,12.5,0,0,0,"☆4(0-0-0-8)"],//☆4(0-0-0-8)
"222218":[0,11,11,11,0,0,0,"☆4(2-2-2-2)"],//☆4(2-2-2-2)
"600022":[0,40,10,10,0,0,0,"☆5(6-0-0-0)"],//☆5(6-0-0-0)
"060022":[0,10,40,10,0,0,0,"☆5(0-6-0-0)"],//☆5(0-6-0-0)
"006022":[0,10,10,40,0,0,0,"☆5(0-0-6-0)"],//☆5(0-0-6-0)
"1000014":[0,15,75,15,0,0,0,"☆6(10-0-0-0)"],//☆6(10-0-0-0)
"0100014":[0,75,15,15,0,0,0,"☆6(0-10-0-0)"],//☆6(0-10-0-0)
"0010014":[0,15,15,75,0,0,0,"☆6(0-0-10-0)"],//☆6(0-0-10-0)
"333025":[0,0,0,0,50,50,50,"☆7(3-3-3-0)"],//☆7(3-3-3-0)
"444433":[0,0,0,0,100,100,100,"☆8(4-4-4-4)"],//☆8(4-4-4-4)
"0001817":[0,0,0,0,150,150,150,"☆9(0-0-0-18)"]//☆9(0-0-0-18)
};
var point2ki = {
//2期木岩鉄糧空剣弓槍騎弩矛近
"000116":[5,0,0,0,0,0,0,"☆1※"],//☆1※
"100016":[5,0,0,0,0,0,0,"☆1木"],//☆1木
"010016":[5,0,0,0,0,0,0,"☆1岩"],//☆1岩
"001016":[5,0,0,0,0,0,0,"☆1鉄"],//☆1鉄
"300016":[0,6,0.5,0.5,0,0,0,"☆2(3-0-0-0)"],//☆2(3-0-0-0)
"030016":[0,0.5,6,0.5,0,0,0,"☆2(0-3-0-0)"],//☆2(0-3-0-0)
"003016":[0,0.5,0.5,6,0,0,0,"☆2(0-0-3-0)"],//☆2(0-0-3-0)
"111022":[0,7.5,7.5,7.5,0,0,0,"☆3(1-1-1-0)"],//☆3(1-1-1-0)
"000411":[0,3,17,3,0,0,0,"☆3(0-0-0-4)"],//☆3(0-0-0-4)
"000126":[0,17,3,3,0,0,0,"☆3(0-0-0-1)"],//☆3(0-0-0-1)
"222023":[0,14,14,14,0,0,0,"☆4(2-2-2-0)平地23"],//☆4(2-2-2-0)平地23
"222020":[0,5,5,35,0,0,0,"☆4(2-2-2-0)平地20"],//☆4(2-2-2-0)平地20
"000813":[0,15,15,15,0,0,0,"☆4(0-0-0-8)"],//☆4(0-0-0-8)
"600022":[0,65,12.5,12.5,0,0,0,"☆5(6-0-0-0)"],//☆5(6-0-0-0)
"060022":[0,12.5,65,12.5,0,0,0,"☆5(0-6-0-0)"],//☆5(0-6-0-0)
"006022":[0,12.5,12.5,65,0,0,0,"☆5(0-0-6-0)"],//☆5(0-0-6-0)
"000129":[0,30,30,30,0,0,0,"☆5(0-0-0-1)"],//☆5(0-0-0-1)
"222024":[0,0,0,0,27.5,27.5,27.5,"☆6(2-2-2-0)"],//☆6(2-2-2-0)
"1000020":[0,0,0,0,60,12.5,12.5,"☆6(10-0-0-0)"],//☆6(10-0-0-0)
"0100020":[0,0,0,0,12.5,60,12.5,"☆6(0-10-0-0)"],//☆6(0-10-0-0)
"0010020":[0,0,0,0,12.5,12.5,60,"☆6(0-0-10-0)"],//☆6(0-0-10-0)
"244025":[0,0,0,0,22.5,65,65,"☆7(2-4-4-0)"],//☆7(2-4-4-0)
"000133":[0,0,0,0,65,65,22.5,"☆7(0-0-0-1)"],//☆7(0-0-0-1)
"0001216":[0,0,0,0,65,22.5,65,"☆7(0-0-0-12)"],//☆7(0-0-0-12)
"412028":[0,0,0,0,250,50,25,"☆8(4-1-2-0)"],//☆8(4-1-2-0)
"241027":[0,0,0,0,50,250,25,"☆8(2-4-1-0)"],//☆8(2-4-1-0)
"124027":[0,0,0,0,50,25,250,"☆8(1-2-4-0)"],//☆8(1-2-4-0)
"444429":[0,0,0,0,200,200,200,"☆9(4-4-4-4)"],//☆9(4-4-4-4)
"111240":[0,0,0,0,190,190,190,"☆9(1-1-1-2)"],//☆9(1-1-1-2)
"0001815":[0,0,0,0,175,175,175,"☆9(0-0-0-18)"]//☆9(0-0-0-18)
};
var point3ki = {
//3期木岩鉄糧空き地剣弓槍騎弩矛近
"000116":[5,0,0,0,0,0,0,"☆1※"],//☆1※
"100016":[5,0,0,0,0,0,0,"☆1木"],//☆1木
"010016":[5,0,0,0,0,0,0,"☆1岩"],//☆1岩
"001016":[5,0,0,0,0,0,0,"☆1鉄"],//☆1鉄
"300016":[0,10,0.5,0.5,0,0,0,"☆2(3-0-0-0)"],//☆2(3-0-0-0)
"030016":[0,0.5,10,0.5,0,0,0,"☆2(0-3-0-0)"],//☆2(0-3-0-0)
"003016":[0,0.5,0.5,10,0,0,0,"☆2(0-0-3-0)"],//☆2(0-0-3-0)
"111022":[0,9,9,9,0,0,0,"☆3(1-1-1-0)"],//☆3(1-1-1-0)
"000411":[0,6,20,6,0,0,0,"☆3(0-0-0-4)"],//☆3(0-0-0-4)
"000126":[0,22,7,7,0,0,0,"☆3(0-0-0-1)"],//☆3(0-0-0-1)
"222023":[0,16,16,16,0,0,0,"☆4(2-2-2-0)平地23"],//☆4(2-2-2-0)平地23
"222020":[0,7.5,7.5,35,0,0,0,"☆4(2-2-2-0)平地20"],//☆4(2-2-2-0)平地20
"000813":[0,19,19,19,0,0,0,"☆4(0-0-0-8)"],//☆4(0-0-0-8)
"600022":[0,75,12.5,12.5,0,0,0,"☆5(6-0-0-0)"],//☆5(6-0-0-0)
"060022":[0,12.5,75,12.5,0,0,0,"☆5(0-6-0-0)"],//☆5(0-6-0-0)
"006022":[0,12.5,12.5,75,0,0,0,"☆5(0-0-6-0)"],//☆5(0-0-6-0)
"000129":[0,32.5,32.5,32.5,0,0,0,"☆5(0-0-0-1)"],//☆5(0-0-0-1)
"221025":[0,35,35,35,0,0,0,"☆5(2-2-1-0)"],//☆5(2-2-1-0)
"112025":[0,37.5,37.5,37.5,0,0,0,"☆5(1-1-2-0)"],//☆5(1-1-2-0)
"1000020":[0,0,0,0,90,20,20,"☆6(10-0-0-0)"],//☆6(10-0-0-0)
"0100020":[0,0,0,0,20,90,20,"☆6(0-10-0-0)"],//☆6(0-10-0-0)
"0010020":[0,0,0,0,20,20,90,"☆6(0-0-10-0)"],//☆6(0-0-10-0)
"222024":[0,0,0,0,40,40,40,"☆6(2-2-2-0)"],//☆6(2-2-2-0)
"244025":[0,0,0,0,30,110,30,"☆7(2-4-4-0)"],//☆7(2-4-4-0)
"000133":[0,0,0,0,110,110,30,"☆7(0-0-0-1)"],//☆7(0-0-0-1)
"0001216":[0,0,0,0,110,30,30,"☆7(0-0-0-12)"],//☆7(0-0-0-12)
"1400022":[0,0,0,0,75,250,75,"☆8(14-0-0-0)"],//☆8(14-0-0-0)
"0140022":[0,0,0,0,250,75,75,"☆8(0-14-0-0)"],//☆8(0-14-0-0)
"0014022":[0,0,0,0,75,75,250,"☆8(0-0-14-0)"],//☆8(0-0-14-0)
"412028":[0,0,0,0,250,50,25,"☆8(4-1-2-0)"],//☆8(4-1-2-0)
"241027":[0,0,0,0,50,250,25,"☆8(2-4-1-0)"],//☆8(2-4-1-0)
"124027":[0,0,0,0,50,25,250,"☆8(1-2-4-0)"],//☆8(1-2-4-0)
"10008":[0,0,0,0,300,150,150,"☆9(1-0-0-0)"],//☆9(1-0-0-0)
"01008":[0,0,0,0,150,300,150,"☆9(0-1-0-0)"],//☆9(0-1-0-0)
"00108":[0,0,0,0,150,150,300,"☆9(0-0-1-0)"],//☆9(0-0-1-0)
"444429":[0,0,0,0,300,300,300,"☆9(4-4-4-4)"],//☆9(4-4-4-4)
"111240":[0,0,0,0,250,250,250,"☆9(1-1-1-2)"],//☆9(1-1-1-2)
"0001815":[0,0,0,0,200,200,200,"☆9(0-0-0-18)"],//☆9(0-0-0-18)
};
var point5ki = {
//木岩鉄糧空き地剣弓槍騎弩矛近
"000116":[5,0,0,0,0,0,0,"☆1※"],//☆1※
"100016":[5,0,0,0,0,0,0,"☆1木"],//☆1木
"010016":[5,0,0,0,0,0,0,"☆1岩"],//☆1岩
"001016":[5,0,0,0,0,0,0,"☆1鉄"],//☆1鉄
"300016":[0,12.5,1,1,0,0,0,"☆2(3-0-0-0)"],//☆2(3-0-0-0)
"030016":[0,1,12.5,1,0,0,0,"☆2(0-3-0-0)"],//☆2(0-3-0-0)
"003016":[0,1,1,12.5,0,0,0,"☆2(0-0-3-0)"],//☆2(0-0-3-0)
"111022":[0,15,15,15,0,0,0,"☆3(1-1-1-0)"],//☆3(1-1-1-0)
"000411":[0,12,25,12,0,0,0,"☆3(0-0-0-4)"],//☆3(0-0-0-4)
"000126":[0,25,13,13,0,0,0,"☆3(0-0-0-1)"],//☆3(0-0-0-1)
"222023":[0,33,33,33,0,0,0,"☆4(2-2-2-0)平地23"],//☆4(2-2-2-0)平地23
"222020":[0,30,30,45,0,0,0,"☆4(2-2-2-0)平地20"],//☆4(2-2-2-0)平地20
"000813":[0,36,36,36,0,0,0,"☆4(0-0-0-8)"],//☆4(0-0-0-8)
"600022":[0,111,33,33,0,0,0,"☆5(6-0-0-0)"],//☆5(6-0-0-0)
"060022":[0,33,111,33,0,0,0,"☆5(0-6-0-0)"],//☆5(0-6-0-0)
"006022":[0,33,33,111,0,0,0,"☆5(0-0-6-0)"],//☆5(0-0-6-0)
"000129":[0,55,55,55,0,0,0,"☆5(0-0-0-1)"],//☆5(0-0-0-1)
"221025":[0,60,60,60,0,0,0,"☆5(2-2-1-0)"],//☆5(2-2-1-0)
"112025":[0,70,70,70,0,0,0,"☆5(1-1-2-0)"],//☆5(1-1-2-0)
"1000020":[0,0,0,0,180,50,50,"☆6(10-0-0-0)"],//☆6(10-0-0-0)
"0100020":[0,0,0,0,50,180,50,"☆6(0-10-0-0)"],//☆6(0-10-0-0)
"0010020":[0,0,0,0,50,50,180,"☆6(0-0-10-0)"],//☆6(0-0-10-0)
"222024":[0,0,0,0,85,85,85,"☆6(2-2-2-0)"],//☆6(2-2-2-0)
"244025":[0,0,0,0,110,220,110,"☆7(2-4-4-0)"],//☆7(2-4-4-0)
"000133":[0,0,0,0,110,110,220,"☆7(0-0-0-1)"],//☆7(0-0-0-1)
"0001216":[0,0,0,0,220,110,110,"☆7(0-0-0-12)"],//☆7(0-0-0-12)
"1400022":[0,0,0,0,175,400,175,"☆8(14-0-0-0)"],//☆8(14-0-0-0)
"0140022":[0,0,0,0,400,175,175,"☆8(0-14-0-0)"],//☆8(0-14-0-0)
"0014022":[0,0,0,0,175,175,400,"☆8(0-0-14-0)"],//☆8(0-0-14-0)
"412028":[0,0,0,0,350,200,100,"☆8(4-1-2-0)"],//☆8(4-1-2-0)
"241027":[0,0,0,0,200,350,100,"☆8(2-4-1-0)"],//☆8(2-4-1-0)
"124027":[0,0,0,0,200,100,350,"☆8(1-2-4-0)"],//☆8(1-2-4-0)
"10008":[0,0,0,0,600,400,400,"☆9(1-0-0-0)"],//☆9(1-0-0-0)
"01008":[0,0,0,0,400,600,400,"☆9(0-1-0-0)"],//☆9(0-1-0-0)
"00108":[0,0,0,0,400,400,600,"☆9(0-0-1-0)"],//☆9(0-0-1-0)
"444429":[0,0,0,0,450,450,450,"☆9(4-4-4-4)"],//☆9(4-4-4-4)
"111240":[0,0,0,0,400,400,400,"☆9(1-1-1-2)"],//☆9(1-1-1-2)
"0001815":[0,0,0,0,350,350,350,"☆9(0-0-0-18)"],//☆9(0-0-0-18)
};
var point10ki = {
//木岩鉄糧空き地剣弓槍騎弩矛近
"00209":[6.5,0,0,0,0,0,0,"☆1鉄"],
"20009":[6.5,0,0,0,0,0,0,"☆1森"],
"02009":[6.5,0,0,0,0,0,0,"☆1岩"],
"00029":[6.5,0,0,0,0,0,0,"☆1※"],
"030014":[0,1.5,15.5,1.5,0,0,0,"☆2岩"],
"003014":[0,1.5,1.5,15.5,0,0,0,"☆2鉄"],
"300014":[0,15.5,1.5,1.5,0,0,0,"☆2森"],
"000126":[0,18.5,18.5,18.5,0,0,0,"☆3(0-0-0-1)"],
"111016":[0,19,19,19,0,0,0,"☆3(1-1-1-0)"],
"111121":[0,20.5,20.5,20.5,0,0,0,"☆3(1-1-1-1)"],
"222218":[0,41.5,41.5,41.5,0,0,0,"☆4(2-2-2-2)"],
"000813":[0,41.5,41.5,41.5,0,0,0,"☆4(0-0-0-8)"],
"111127":[0,43.5,43.5,43.5,0,0,0,"☆4(1-1-1-1)"],
"222019":[0,40.5,40.5,40.5,0,0,0,"☆4(2-2-2-0)"],
"006020":[0,41.5,41.5,139,0,0,0,"☆5(0-0-6-0)"],
"600020":[0,139,41.5,41.5,0,0,0,"☆5(6-0-0-0)"],
"111120":[0,69,69,69,0,0,0,"☆5(1-1-1-1)"],
"000129":[0,75.5,75.5,75.5,0,0,0,"☆5(0-0-0-1)"],
"060020":[0,41.5,139,41.5,0,0,0,"☆5(0-6-0-0)"],
"1000014":[0,0,0,0,225,62.5,62.5,"☆6(10-0-0-0)"],
"000028":[0,0,0,0,106.5,106.5,106.5,"☆6(0-0-0-0)"],
"0010014":[0,0,0,0,62.5,62.5,225,"☆6(0-0-10-0)"],
"0100014":[0,0,0,0,62.5,225,62.5,"☆6(0-10-0-0)"],
"442023":[0,0,0,0,220,220,110,"☆7(4-4-2-0)"],
"244023":[0,0,0,0,110,220,220,"☆7(2-4-4-0)"],
"000029":[0,0,0,0,183.5,183.5,183.5,"☆7(0-0-0-0)"],
"424023":[0,0,0,0,220,110,220,"☆7(4-2-4-0)"],
"0001216":[0,0,0,0,183,183,183,"☆7(0-0-0-12)"],
"544222":[0,0,0,0,324,246,246,"☆8(5-4-4-2)"],
"445222":[0,0,0,0,246,246,324,"☆8(4-4-5-2)"],
"454222":[0,0,0,0,246,324,246,"☆8(4-5-4-2)"],
"0001531":[0,0,0,0,325,325,325,"☆8(0-0-0-15)"],
"000037":[0,0,0,0,350,350,350,"☆8(0-0-0-0)"],
"111240":[0,0,0,0,582.5,582.5,582.5,"☆9(1-1-1-2)"],
"808025":[0,0,0,0,875,0,875,"☆9(8-0-8-0)"],
"880025":[0,0,0,0,875,875,0,"☆9(8-8-0-0)"],
"088025":[0,0,0,0,0,875,875,"☆9(0-8-8-0)"],
"333317":[0,0,0,0,625,625,625,"☆9(3-3-3-3)"]
};
var point11ki = {
//木岩鉄糧空き地剣弓槍騎弩矛近
"00209":[6.5,0,0,0,0,0,0,"☆1鉄"],
"20009":[6.5,0,0,0,0,0,0,"☆1森"],
"02009":[6.5,0,0,0,0,0,0,"☆1岩"],
"00029":[6.5,0,0,0,0,0,0,"☆1※"],
"030014":[0,1.5,15.5,1.5,0,0,0,"☆2岩"],
"003014":[0,1.5,1.5,15.5,0,0,0,"☆2鉄"],
"300014":[0,15.5,1.5,1.5,0,0,0,"☆2森"],
"000126":[0,18.5,18.5,18.5,0,0,0,"☆3(0-0-0-1)"],
"111016":[0,19,19,19,0,0,0,"☆3(1-1-1-0)"],
"111121":[0,20.5,20.5,20.5,0,0,0,"☆3(1-1-1-1)"],
"222218":[0,41.5,41.5,41.5,0,0,0,"☆4(2-2-2-2)"],
"000813":[0,41.5,41.5,41.5,0,0,0,"☆4(0-0-0-8)"],
"111127":[0,43.5,43.5,43.5,0,0,0,"☆4(1-1-1-1)"],
"222019":[0,40.5,40.5,40.5,0,0,0,"☆4(2-2-2-0)"],
"006020":[0,41.5,41.5,139,0,0,0,"☆5(0-0-6-0)"],
"600020":[0,139,41.5,41.5,0,0,0,"☆5(6-0-0-0)"],
"111120":[0,69,69,69,0,0,0,"☆5(1-1-1-1)"],
"000129":[0,75.5,75.5,75.5,0,0,0,"☆5(0-0-0-1)"],
"060020":[0,41.5,139,41.5,0,0,0,"☆5(0-6-0-0)"],
"1000014":[0,0,0,0,225,62.5,62.5,"☆6(10-0-0-0)"],
"000028":[0,0,0,0,106.5,106.5,106.5,"☆6(0-0-0-0)"],
"0010014":[0,0,0,0,62.5,62.5,225,"☆6(0-0-10-0)"],
"0100014":[0,0,0,0,62.5,225,62.5,"☆6(0-10-0-0)"],
"442023":[0,0,0,0,220,220,110,"☆7(4-4-2-0)"],
"244023":[0,0,0,0,110,220,220,"☆7(2-4-4-0)"],
"000029":[0,0,0,0,183.5,183.5,183.5,"☆7(0-0-0-0)"],
"424023":[0,0,0,0,220,110,220,"☆7(4-2-4-0)"],
"0001216":[0,0,0,0,183,183,183,"☆7(0-0-0-12)"],
"544222":[0,0,0,0,324,246,246,"☆8(5-4-4-2)"],
"445222":[0,0,0,0,246,246,324,"☆8(4-4-5-2)"],
"454222":[0,0,0,0,246,324,246,"☆8(4-5-4-2)"],
"0001531":[0,0,0,0,325,325,325,"☆8(0-0-0-15)"],
"000037":[0,0,0,0,350,350,350,"☆8(0-0-0-0)"],
"700438":[0,0,0,0,900,425,425,"☆9(7-0-0-4)"],
"000041":[0,0,0,0,665,665,665,"☆9(0-0-0-0)"],
"007438":[0,0,0,0,425,425,900,"☆9(0-0-7-4)"],
"070438":[0,0,0,0,425,900,425,"☆9(0-7-0-4)"],
"333317":[0,0,0,0,625,625,625,"☆9(3-3-3-3)"]};
var point12ki = {
//木岩鉄糧空き地剣弓槍騎弩矛近
"333317":[0,0,0,0,625,625,625,"☆9(3-3-3-3)"]
};
// 実処理用の変数はこれに統合
var point;
// 兵科に対する各ユニットの防御値
var def = {
//剣,弓,槍,騎,弩,矛,近衛
"ken":[15,52,50,54,208,200,216],//剣兵防御
"yari":[10,58,40,28,145,100,70],//槍兵防御
"yumi":[10,42,25,60,105,63,150],//弓兵防御
"ki":[10,26,55,44,65,137,110]//騎兵防御
};
// 各ユニットの攻撃力
var atk = {
"ken":15,
"yari":40,
"yumi":42,
"ki":44,
"hoko":100,
"do":105,
"kono":110
};
// 鍛冶場Lv.
var kaji_lv = {
"0":0,
"1":0,
"2":0.015,
"3":0.03,
"4":0.045,
"5":0.06,
"6":0.075,
"7":0.09,
"8":0.105,
"9":0.12,
"10":0.15
};
// 武器強化
var buki_lv = {
"ken":[0,0.1,0.2,0.3,0.4,0.5,0.6,0.75,0.9,1.1,1.35],
"yari":[0,0.05,0.1,0.16,0.22,0.3,0.38,0.48,0.58,0.68,0.8],
"yumi":[0,0.05,0.1,0.16,0.22,0.3,0.38,0.48,0.58,0.68,0.8],
"ki":[0,0.05,0.1,0.16,0.22,0.3,0.38,0.48,0.58,0.68,0.8],
"hoko":[0,0.04,0.08,0.12,0.16,0.2,0.24,0.28,0.33,0.38,0.45],
"do":[0,0.04,0.08,0.12,0.16,0.2,0.24,0.28,0.33,0.38,0.45],
"kono":[0,0.04,0.08,0.12,0.16,0.2,0.24,0.28,0.33,0.38,0.45]
};
(function(){
// 鯖バージョンの判別
var svname = location.hostname.substr(0,location.hostname.indexOf("."));
var season = 0;
var sv_world = [];
var sv_season = [];
for(i=0;i<serverTable.length;i++){
var BRO3_TOBATSU_SV = 'mc110_tobatsu_sv' + i;
var BRO3_TOBATSU_SEASON = 'mc110_tobatsu_season' + i;
if(GM_getValue(BRO3_TOBATSU_SV)){
sv_world[i] = GM_getValue(BRO3_TOBATSU_SV);
sv_season[i] = GM_getValue(BRO3_TOBATSU_SEASON);
console.log(i, sv_world[i] , sv_season[i]);
}else{
sv_world[i] = serverTable[i][0];
sv_season[i] = serverTable[i][1];
GM_setValue(BRO3_TOBATSU_SV, sv_world[i]);
GM_setValue(BRO3_TOBATSU_SEASON, sv_season[i]);
console.log(i, sv_world[i] , sv_season[i]);
}
if( sv_world[i] == svname ){
season = sv_season[i];
}
}
// パネルテーブル
if( season == 1 ){
point = point1ki;
}else if( season == 2 ){
point = point2ki;
}else if( (season == 3 ) || (season == 4) ){
point = point3ki;
}else if( (season == 5 ) || (season == 6) || (season == 7) || (season == 8) || (season == 9)){
point = point5ki;
}else if( (season == 10) ){
point = point10ki;
}else if( (season == 11) ){
point = point11ki;
}else if( (season == 12) ){
point = point11ki;
}
var world_text = svname + "ワールド 第" + season + "期目";
com_rack = com_rack + "<br><b><font color='blue'>" + world_text + "</font></b>";
// 出兵拠点座標の取得
var areas = document.evaluate('//li[@class="gnavi02"]//a/@href', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
basecord = areas.snapshotItem(0).textContent;
basecord = basecord.replace(/^.*x=(-?[0-9]+).*y=(-?[0-9]+)/, "$1,$2");
bcordx = RegExp.$1;
bcordy = RegExp.$2;
// 出兵先座標(x)の取得
areas = document.evaluate('//input[@name="village_x_value"]/@value',
document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
tocordx = areas.snapshotItem(0).textContent;
// 出兵先座標(y)の取得
areas = document.evaluate('//input[@name="village_y_value"]/@value',
document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
tocordy = areas.snapshotItem(0).textContent;
// 距離の計算
length = Math.sqrt(Math.pow(bcordx-tocordx,2)+Math.pow(bcordy-tocordy,2));
if(season>0){
// 出兵先タイルパターン取得のためのHTTP要求 starに★数、tile[]に各タイル数を格納。
var url = "http://"+location.hostname+"/land.php?x="+tocordx+"&y="+tocordy;
GM_xmlhttpRequest({
method:"GET",
url:url,
onload:function(x){
// 読み込み後の処理は関数 getFieldType() 内で行う。
getFieldType(x.responseText);
}
});
}else{
var msg = "";
// サーバー情報が見つからない場合。(登録されていないもの)
msg = msg + "<br><table border=8><tr><td align=left>\n";
msg = msg + com_rack + "<br>\n";
msg = msg + "サーバー情報が登録されていません。<a id='svsetting_btn' href='javascript:void(0)'>サーバー情報を設定してください。</a></td>\n";
msg = msg + "<td align=left rowspan=2>\n";
msg = msg + "<table id=svsetting align=center style='text-align:center;background:#FFC;color:#C60;display:none;' width=116>\n";
msg = msg + "<tr><td align=center><b>Server</b></td><td align=center><b>Season</b></td></tr>\n";
for(var i = 0; i < serverTable.length; i++){
msg = msg + "<tr><td align=center><input type=text size=2 id=s"+i+"></td><td>第<select id=s"+i+"s><option value=1>1<option value=2>2<option value=3>3<option value=4>4<option value=5>5<option value=6>6<option value=7>7<option value=8>8<option value=9>9<option value=10>10<option value=11>11</select>期</td></tr>\n";
}
msg = msg + "<tr><td colspan=2>mapタイプで</td></tr>\n";
msg = msg + "<tr><td colspan=2>a=1期<br>b=2期<br>c=3期<br>d=5期<br>e=10期<br>f=11期<br>に相当</td></tr>\n";
msg = msg + "<tr><td colspan=2><input id=svsave_btn type=button value='保存' size=6>&nbsp;<input id=svreset_btn type=button value='初期化' size=8></td></tr>\n";
msg = msg + "</table>\n";
msg = msg + "</td></tr>\n";
msg = msg + "<tr><td align=left colspan=2><br>\n";
msg = msg + se_rack + ver_rack + "<br>\n";
msg = msg + "<b> + テロリスト討伐シミュレータ by gozen. ver"+kino_ver+"</b><br><br>\n";
// msg = msg + "苦情・文句・情報提供などは 17鯖 <a href="+ url_rack2+" target='_blank'>きの。</a> まで御願いします。<br>\n";
// msg = msg + "元スクリプト作者は→<a href="+ url_rack+" target=" + "_blank"+">こちら(配布元)</a>まで御願いします。\n";
msg = msg + "</td></tr></table>\n";
var insertHtml = "<div align=center>" + msg + "</div>";
var insertElem = document.createElement('div');
insertElem.innerHTML = insertHtml;
insertElem = insertElem.firstChild;
var containerElem = document.evaluate('//*[@class=\"controlArea\"]', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
containerElem.snapshotItem(0).appendChild(insertElem);
var svsetting_btn = document.getElementById("svsetting_btn");
svsetting_btn.addEventListener("click", function(){view("svsetting");set_season();}, false);
var svsave_btn = document.getElementById("svsave_btn");
svsave_btn.addEventListener("click", function(){sv_save();}, false);
var svreset_btn = document.getElementById("svreset_btn");
svreset_btn.addEventListener("click", function(){reset_season();}, false);
}
})();
// タイルパターンの取得 及び 兵力計算・表示用関数
function getFieldType(x){
// ページ内のタイル数をカウントするための変数 初期化
var panel = {
"平地":0,
"鉄鉱山":0,
"油田":0,
"ボーキサイト鉱山":0,
"田畑":0,
"荒地":0
};
// GM_xmlhttpRequestの取得データをxml形式に変換
var responseXML = document.createElement('div');
responseXML.innerHTML = x;
// ソース中のタイルの行からtitleの文字列を取得
var panels = document.evaluate('.//*[@id="mapOverlayMap"]//area/@title',
responseXML, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
// 1行ずつ対応するタイルの変数を加算していく
for (var i = 0; i < panels.snapshotLength; i++) {
panel[panels.snapshotItem(i).textContent]++;
}
// タイル数→キー("111116"など)の作成
var key = String(panel["鉄鉱山"])+String(panel["油田"])+String(panel["ボーキサイト鉱山"])+String(panel["田畑"])+String(panel["平地"]);
// 兵力パラメータの取得
var list = point[key];
var i;
var tmp = 0;
var sum = 0;
var kenk = 0;
var yarik = 0;
var yumik = 0;
var kik = 0;
var tmp2 = 0;
var sum2 = 0;
var kenk2 = 0;
var yarik2 = 0;
var yumik2 = 0;
var kik2 = 0;
var infantry_count = 0;
var spear_count = 0;
var archer_count = 0;
var cavalry_count = 0;
var halbert_count = 0;
var crossbow_count = 0;
var cavalry_guards_count = 0;
var soltype = "";
//表示部分Non
var msg = "";
if(list==undefined){
// キーに対応するデータが見つからない場合。(データがないもの)
msg = msg + "<br><table border=8><tr><td align=left>\n";
msg = msg + com_rack + " <a id='svsetting_btn' href='javascript:void(0)'>設定</a><br>\n";
msg = msg + "有効なデータはありません。<br>※本拠地やNPC砦、未知の領地で有る可能性が有ります。</td>\n";
msg = msg + "<td align=left rowspan=2>\n";
msg = msg + "<table id=svsetting align=center style='text-align:center;background:#FFC;color:#C60;display:none;' width=116>\n";
msg = msg + "<tr><td align=center><b>Server</b></td><td align=center><b>Season</b></td></tr>\n";
for(var i = 0; i < serverTable.length; i++){
msg = msg + "<tr><td align=center><input type=text size=2 id=s"+i+"></td><td>第<select id=s"+i+"s><option value=1>1<option value=2>2<option value=3>3<option value=4>4<option value=5>5<option value=6>6<option value=7>7<option value=8>8<option value=9>9<option value=10>10<option value=11>11</select>期</td></tr>\n";
}
msg = msg + "<tr><td colspan=2>mapタイプは下記</td></tr>\n";
msg = msg + "<tr><td colspan=2>a=1期<br>b=2期<br>c=3期<br>d=5期<br>e=10期<br>f=11期<br>に相当</td></tr>\n";
msg = msg + "<tr><td colspan=2><input id=svsave_btn type=button value='保存' size=6>&nbsp;<input id=svreset_btn type=button value='初期化' size=8></td></tr>\n";
msg = msg + "</table>\n";
msg = msg + "</td></tr>\n";
msg = msg + "<tr><td align=left>\n";
msg = msg + "<b> + テロリスト討伐シミュレータ by gozen. ver"+kino_ver+"</b><br><br>\n";
// msg = msg + "苦情・文句・情報提供などは 17鯖 <a href="+ url_rack2+" target='_blank'>きの。</a> まで御願いします。<br>\n";
// msg = msg + "元スクリプト作者は→<a href="+ url_rack+" target='_blank'>こちら(配布元)</a><br>\n";
msg = msg + "</td></tr></table>\n";
var insertHtml = "<div align=center>" + msg + "</div>";
var insertElem = document.createElement('div');
insertElem.innerHTML = insertHtml;
insertElem = insertElem.firstChild;
var containerElem = document.evaluate('//*[@class=\"controlArea\"]', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
containerElem.snapshotItem(0).appendChild(insertElem);
}else{
//MAX計算用
for(i=0;i<list.length;i++){
//距離最大時乗数
var hentai = (1+length/10)*3;
//最大出現数計算
var kenmax = Math.floor(list[0]*hentai);
var yumimax = Math.floor(list[1]*hentai);
var yarimax = Math.floor(list[2]*hentai);
var kimax = Math.floor(list[3]*hentai);
var domax = Math.floor(list[4]*hentai);
var hokomax = Math.floor(list[5]*hentai);
var konomax = Math.floor(list[6]*hentai);
//最大防御力集計
var sum = kenmax+yumimax+yarimax+kimax+domax+hokomax+konomax;
var kenk = kenmax*def["ken"][0]+yumimax*def["ken"][1]+yarimax*def["ken"][2]+kimax*def["ken"][3]+domax*def["ken"][4]+hokomax*def["ken"][5]+konomax*def["ken"][6];
var yumik = kenmax*def["yumi"][0]+yumimax*def["yumi"][1]+yarimax*def["yumi"][2]+kimax*def["yumi"][3]+domax*def["yumi"][4]+hokomax*def["yumi"][5]+konomax*def["yumi"][6];
var yarik = kenmax*def["yari"][0]+yumimax*def["yari"][1]+yarimax*def["yari"][2]+kimax*def["yari"][3]+domax*def["yari"][4]+hokomax*def["yari"][5]+konomax*def["yari"][6];
var kik = kenmax*def["ki"][0]+yumimax*def["ki"][1]+yarimax*def["ki"][2]+kimax*def["ki"][3]+domax*def["ki"][4]+hokomax*def["ki"][5]+konomax*def["ki"][6];
//距離最小時乗数
var hentai2 = (1+length/10);
//最小出現数計算
var kenmin = Math.floor(list[0]*hentai2);
var yumimin = Math.floor(list[1]*hentai2);
var yarimin = Math.floor(list[2]*hentai2);
var kimin = Math.floor(list[3]*hentai2);
var domin = Math.floor(list[4]*hentai2);
var hokomin = Math.floor(list[5]*hentai2);
var konomin = Math.floor(list[6]*hentai2);
//最小防御力集計
var kenk2 = kenmin*def["ken"][0]+yumimin*def["ken"][1]+yarimin*def["ken"][2]+kimin*def["ken"][3]+domin*def["ken"][4]+hokomin*def["ken"][5]+konomin*def["ken"][6];
var yumik2 = kenmin*def["yumi"][0]+yumimin*def["yumi"][1]+yarimin*def["yumi"][2]+kimin*def["yumi"][3]+domin*def["yumi"][4]+hokomin*def["yumi"][5]+konomin*def["yumi"][6];
var yarik2 = kenmin*def["yari"][0]+yumimin*def["yari"][1]+yarimin*def["yari"][2]+kimin*def["yari"][3]+domin*def["yari"][4]+hokomin*def["yari"][5]+konomin*def["yari"][6];
var kik2 = kenmin*def["ki"][0]+yumimin*def["ki"][1]+yarimin*def["ki"][2]+kimin*def["ki"][3]+domin*def["ki"][4]+hokomin*def["ki"][5]+konomin*def["ki"][6];
//表示部分フォント追加分
var red_f = "</b></font>\n";
var red_s = "<font color=red><b>";
var gre_s = "<font color=blue>";
if (title.indexOf("出撃(入力)") != -1) {
pos = document.evaluate("//*[@name='input_troop']/table/tbody/tr[2]/td/table/tbody/tr[1]/td[2]/span", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
infantry_count = pos.innerHTML.match(/[0-9]+/);
pos = document.evaluate("//*[@name='input_troop']/table/tbody/tr[2]/td/table/tbody/tr[1]/td[4]/span", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
spear_count = pos.innerHTML.match(/[0-9]+/);
pos = document.evaluate("//*[@name='input_troop']/table/tbody/tr[2]/td/table/tbody/tr[1]/td[6]/span", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
archer_count = pos.innerHTML.match(/[0-9]+/);
pos = document.evaluate("//*[@name='input_troop']/table/tbody/tr[2]/td/table/tbody/tr[1]/td[8]/span", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
cavalry_count = pos.innerHTML.match(/[0-9]+/);
pos = document.evaluate("//*[@name='input_troop']/table/tbody/tr[2]/td/table/tbody/tr[2]/td[2]/span", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
halbert_count = pos.innerHTML.match(/[0-9]+/);
pos = document.evaluate("//*[@name='input_troop']/table/tbody/tr[2]/td/table/tbody/tr[2]/td[4]/span", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
crossbow_count = pos.innerHTML.match(/[0-9]+/);
// よくわからないのでコメントアウト 2014.05.17
// pos = document.evaluate("//*[@name='input_troop']/table/tbody/tr[2]/td/table/tbody/tr[2]/td[6]/span", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
// cavalry_guards_count = pos.innerHTML.match(/[0-9]+/);
// ここまで
} else if (title.indexOf("出撃(確認)") != -1) {
// 剣兵
areas = document.evaluate('//input[@name="infantry_count"]/@value', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
infantry_count = areas.snapshotItem(0).textContent;
// 槍兵
areas = document.evaluate('//input[@name="spear_count"]/@value', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
spear_count = areas.snapshotItem(0).textContent;
// 弓兵
areas = document.evaluate('//input[@name="archer_count"]/@value', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
archer_count = areas.snapshotItem(0).textContent;
// 騎兵
areas = document.evaluate('//input[@name="cavalry_count"]/@value', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
cavalry_count = areas.snapshotItem(0).textContent;
// 矛槍兵
areas = document.evaluate('//input[@name="halbert_count"]/@value', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
halbert_count = areas.snapshotItem(0).textContent;
// 弩兵
areas = document.evaluate('//input[@name="crossbow_count"]/@value', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
crossbow_count = areas.snapshotItem(0).textContent;
// 近衛騎兵
areas = document.evaluate('//input[@name="cavalry_guards_count"]/@value', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
cavalry_guards_count = areas.snapshotItem(0).textContent;
// 総攻撃力
var power = 0;
areas = document.evaluate('//strong[@class="size1"]', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
power = areas.snapshotItem(0).textContent;
power = power.replace(/,/,'');
power = power.replace(/,/,'');
// 武将兵科
areas = document.evaluate('//span[@class="soltype"]//img/@title', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
if(areas.snapshotItem(0)) soltype = areas.snapshotItem(0).textContent;
}
}
}
function rec(){
var b_power = document.getElementById("b_power").value;
var b_skill = document.getElementById("b_skill").value;
var b_type = document.getElementById("b_type");
var b_type2 = b_type.options[b_type.selectedIndex].value;
var kaji = document.getElementById("kaji");
kaji = kaji.options[kaji.selectedIndex].value;
kaji = kaji_lv[kaji];
var cp = document.getElementById("cp");
cp = cp.options[cp.selectedIndex].value;
var b_power = document.getElementById("b_power").value;
var b_skill = document.getElementById("b_skill").value;
var b_type = document.getElementById("b_type");
var b_type2 = b_type.options[b_type.selectedIndex].value;
var kaji = document.getElementById("kaji");
kaji = kaji.options[kaji.selectedIndex].value;
kaji = kaji_lv[kaji];
var cp = document.getElementById("cp");
cp = cp.options[cp.selectedIndex].value;
var infantry_count2 = document.getElementById("infantry_count2").value;
var ken_skill = document.getElementById("ken_skill").value;
var ken_kaji = document.getElementById("ken_kaji");
ken_kaji = ken_kaji.options[ken_kaji.selectedIndex].value;
var spear_count2 = document.getElementById("spear_count2").value;
var yari_skill = document.getElementById("yari_skill").value;
var yari_kaji = document.getElementById("yari_kaji");
yari_kaji = yari_kaji.options[yari_kaji.selectedIndex].value;
var archer_count2 = document.getElementById("archer_count2").value;
var yumi_skill = document.getElementById("yumi_skill").value;
var yumi_kaji = document.getElementById("yumi_kaji");
yumi_kaji = yumi_kaji.options[yumi_kaji.selectedIndex].value;
var cavalry_count2 = document.getElementById("cavalry_count2").value;
var ki_skill = document.getElementById("ki_skill").value;
var ki_kaji = document.getElementById("ki_kaji");
ki_kaji = ki_kaji.options[ki_kaji.selectedIndex].value;
var halbert_count2 = document.getElementById("halbert_count2").value;
var hoko_skill = document.getElementById("hoko_skill").value;
var hoko_kaji = document.getElementById("hoko_kaji");
hoko_kaji = hoko_kaji.options[hoko_kaji.selectedIndex].value;
var crossbow_count2 = document.getElementById("crossbow_count2").value;
var do_skill = document.getElementById("do_skill").value;
var do_kaji = document.getElementById("do_kaji");
do_kaji = do_kaji.options[do_kaji.selectedIndex].value;
var cavalry_guards_count2 = document.getElementById("cavalry_guards_count2").value;
var konoe_skill = document.getElementById("konoe_skill").value;
var konoe_kaji = document.getElementById("konoe_kaji");
konoe_kaji = konoe_kaji.options[konoe_kaji.selectedIndex].value;
//攻撃側総兵数
attack_count = 1;
attack_count += Math.floor(infantry_count2) + Math.floor(spear_count2) + Math.floor(archer_count2) + Math.floor(cavalry_count2) + Math.floor(halbert_count2) + Math.floor(crossbow_count2) + Math.floor(cavalry_guards_count2);
//歩兵科
aken = Math.floor(infantry_count2);
if(b_type2=="0") aken+=1;
aken /= attack_count;
//槍兵科
ayari = Math.floor(spear_count2) + Math.floor(halbert_count2);
if(b_type2=="1") ayari += 1;
ayari = ayari / attack_count;
//弓兵科
ayumi = Math.floor(archer_count2) + Math.floor(crossbow_count2);
if(b_type2=="2") ayumi+=1;
ayumi /= attack_count;
//騎兵科
aki = Math.floor(cavalry_count2) + Math.floor(cavalry_guards_count2);
if(b_type2=="3") aki+=1;
aki /= attack_count;
//各兵科攻撃力
b_power = b_power*(1 + b_skill / 100);
var infantry_power = infantry_count2 * atk["ken"] * ( 1 + ken_skill / 100 + kaji + buki_lv["ken"][ken_kaji]);
var spear_power = spear_count2 * atk["yari"] * ( 1 + yari_skill / 100 + kaji + buki_lv["yari"][yari_kaji]);
var archer_power = archer_count2 * atk["yumi"] * ( 1 + yumi_skill / 100 + kaji + buki_lv["yumi"][yumi_kaji]);
var cavalry_power = cavalry_count2 * atk["ki"] * ( 1 + ki_skill / 100 + kaji + buki_lv["ki"][ki_kaji]);
var halbert_power = halbert_count2 * atk["hoko"] * ( 1 + hoko_skill / 100 + kaji + buki_lv["hoko"][hoko_kaji]);
var crossbow_power = crossbow_count2 * atk["do"] * ( 1 + do_skill / 100 + kaji + buki_lv["do"][do_kaji]);
var cavalry_guards_power = cavalry_guards_count2 * atk["kono"] * ( 1 + konoe_skill / 100 + kaji + buki_lv["kono"][konoe_kaji]);
//総攻撃力
if (title.indexOf("出撃(入力)") != -1) {
power = Math.floor(( Math.floor(b_power) + Math.floor(infantry_power) + Math.floor(spear_power) + Math.floor(archer_power) + Math.floor(cavalry_power) + Math.floor(halbert_power) + Math.floor(crossbow_power) + Math.floor(cavalry_guards_power) ) * ( 1 + 0.1*cp));
}
//相対防御
var dkenmax = kenmax*(aken*def["ken"][0]+ayari*def["yari"][0]+ayumi*def["yumi"][0]+aki*def["ki"][0]);
var dyumimax = yumimax*(aken*def["ken"][1]+ayari*def["yari"][1]+ayumi*def["yumi"][1]+aki*def["ki"][1]);
var dyarimax = yarimax*(aken*def["ken"][2]+ayari*def["yari"][2]+ayumi*def["yumi"][2]+aki*def["ki"][2]);
var dkimax = kimax*(aken*def["ken"][3]+ayari*def["yari"][3]+ayumi*def["yumi"][3]+aki*def["ki"][3]);
var ddomax = domax*(aken*def["ken"][4]+ayari*def["yari"][4]+ayumi*def["yumi"][4]+aki*def["ki"][4]);
var dhokomax = hokomax*(aken*def["ken"][5]+ayari*def["yari"][5]+ayumi*def["yumi"][5]+aki*def["ki"][5]);
var dkonomax = konomax*(aken*def["ken"][6]+ayari*def["yari"][6]+ayumi*def["yumi"][6]+aki*def["ki"][6]);
var dkenmin = kenmin*(aken*def["ken"][0]+ayari*def["yari"][0]+ayumi*def["yumi"][0]+aki*def["ki"][0]);
var dyumimin = yumimin*(aken*def["ken"][1]+ayari*def["yari"][1]+ayumi*def["yumi"][1]+aki*def["ki"][1]);
var dyarimin = yarimin*(aken*def["ken"][2]+ayari*def["yari"][2]+ayumi*def["yumi"][2]+aki*def["ki"][2]);
var dkimin = kimin*(aken*def["ken"][3]+ayari*def["yari"][3]+ayumi*def["yumi"][3]+aki*def["ki"][3]);
var ddomin = domin*(aken*def["ken"][4]+ayari*def["yari"][4]+ayumi*def["yumi"][4]+aki*def["ki"][4]);
var dhokomin = hokomin*(aken*def["ken"][5]+ayari*def["yari"][5]+ayumi*def["yumi"][5]+aki*def["ki"][5]);
var dkonomin = konomin*(aken*def["ken"][6]+ayari*def["yari"][6]+ayumi*def["yumi"][6]+aki*def["ki"][6]);
//総防御力
var dmax = dkenmax + dyumimax + dyarimax + dkimax + ddomax + dhokomax + dkonomax ;
var dmin = dkenmin + dyumimin + dyarimin + dkimin + ddomin + dhokomin + dkonomin ;
//討伐成功率(簡易)
// ver1.02までの計算法。攻撃力と防御力の最大・最小値のみで計算。
// 実際には防御力の分布が一様でない(中央値付近ほど確率が高い)ので誤差が大きい
// ver1.03からは不使用
//var success_rate = ( power - dmin ) / ( dmax - dmin ) * 100;
//if(success_rate>=100) success_rate=100;
//else if(success_rate<=0) success_rate=0;
//討伐成功率(詳細)
// 全乱数パターンについて防御力を計算(11通り×3種で1331パターン)
// ver.1.03からはこちらを使用
var cnt = 0;
var vcnt = 0;
if(list[0] == 0){
//☆1以外
for( var j=0; j < 11; j++){
for( var k=0; k < 11; k++){
for( var l=0; l < 11; l++){
cnt += 1;
var hentai_j = hentai2*(10+j*2)/10;
var hentai_k = hentai2*(10+k*2)/10;
var hentai_l = hentai2*(10+l*2)/10;
var ken_x = Math.floor(list[0]*hentai_j);
var yumi_x = Math.floor(list[1]*hentai_j);
var yari_x = Math.floor(list[2]*hentai_k);
var ki_x = Math.floor(list[3]*hentai_l);
var do_x = Math.floor(list[4]*hentai_j);
var hoko_x = Math.floor(list[5]*hentai_k);
var kono_x = Math.floor(list[6]*hentai_l);
var dken = ken_x*(aken*def["ken"][0]+ayari*def["yari"][0]+ayumi*def["yumi"][0]+aki*def["ki"][0]);
var dyumi = yumi_x*(aken*def["ken"][1]+ayari*def["yari"][1]+ayumi*def["yumi"][1]+aki*def["ki"][1]);
var dyari = yari_x*(aken*def["ken"][2]+ayari*def["yari"][2]+ayumi*def["yumi"][2]+aki*def["ki"][2]);
var dki = ki_x*(aken*def["ken"][3]+ayari*def["yari"][3]+ayumi*def["yumi"][3]+aki*def["ki"][3]);
var ddo = do_x*(aken*def["ken"][4]+ayari*def["yari"][4]+ayumi*def["yumi"][4]+aki*def["ki"][4]);
var dhoko = hoko_x*(aken*def["ken"][5]+ayari*def["yari"][5]+ayumi*def["yumi"][5]+aki*def["ki"][5]);
var dkono = kono_x*(aken*def["ken"][6]+ayari*def["yari"][6]+ayumi*def["yumi"][6]+aki*def["ki"][6]);
var d = dken + dyumi + dyari + dki + ddo + dhoko + dkono ;
if( power > d ) vcnt += 1;
};
};
};
}else{
//☆1
for( var j=0; j < 11; j++){
cnt += 1;
var hentai_j = hentai2*(10+j*2)/10;
var ken_x = Math.floor(list[0]*hentai_j);
var dken = ken_x*(aken*def["ken"][0]+ayari*def["yari"][0]+ayumi*def["yumi"][0]+aki*def["ki"][0]);
var d = dken;
if( power > d ) vcnt += 1;
};
}
var success_rate = vcnt / cnt * 100;
vcnt2 = document.getElementById("vcnt2");
vcnt2.value = vcnt ;
cnt2 = document.getElementById("cnt2");
cnt2.value = cnt ;
//成功率計算ここまで
power2 = document.getElementById("power2");
power2.value = addFigure(power);
dmax2 = document.getElementById("dmax2");
dmax2.value = dmax.toFixed(0).replace( /(\d+)(\d{3})/g, '$1,$2' );
dmin2 = document.getElementById("dmin2");
dmin2.value = dmin.toFixed(0).replace( /(\d+)(\d{3})/g, '$1,$2' );
var result = document.getElementById("result");
result.value = success_rate.toFixed(1);
} // end rec()
//表示部分
msg = msg + "<br><table border=8><tr><td align=left colspan=2>\n";
msg = msg + com_rack + " <a id='svsetting_btn' href='javascript:void(0)'>設定</a><br>\n";
msg = msg + "</td>\n";
msg = msg + "<td align=left rowspan=3>\n";
msg = msg + "<table id=svsetting align=center style='text-align:center;background:#FFC;color:#C60;display:none;' width=116>\n";
msg = msg + "<tr><td align=center><b>Server</b></td><td align=center><b>Season</b></td></tr>\n";
for(var i = 0; i < serverTable.length; i++){
msg = msg + "<tr><td align=center><input type=text size=2 id=s"+i+"></td><td>第<select id=s"+i+"s><option value=1>1<option value=2>2<option value=3>3<option value=4>4<option value=5>5<option value=6>6<option value=7>7<option value=8>8<option value=9>9<option value=10>10<option value=11>11</select>期</td></tr>\n";
}
// msg = msg + "<tr><td colspan=2>mapタイプは下記</td></tr>\n";
// msg = msg + "<tr><td colspan=2>a=1期<br>b=2期<br>c=3期<br>d=5期<br>e=10期<br>f=11期<br>に相当</td></tr>\n";
msg = msg + "<tr><td colspan=2><input id=svsave_btn type=button value='保存' size=6>&nbsp;<input id=svreset_btn type=button value='初期化' size=8></td></tr>\n";
msg = msg + "</table>\n";
msg = msg + "</td></tr><tr><td align=left>\n";
msg = msg + "<font color=white>最大出現兵数総計:" + String(Math.floor(sum))+ "</font><br>\n";
msg = msg + "出兵元:<a href='/map.php?x=" + bcordx +"&y=" + bcordy + "'>(" + bcordx +"," + bcordy + ")</a><br>\n";
msg = msg + "◆ 距離:" + String(Math.floor(length*100+0.5)/100) + " ◆<br>\n";
msg = msg + "目的地:<a href='/map.php?x=" + tocordx +"&y=" + tocordy + "'>(" + tocordx +"," + tocordy + ")</a>  地形:" + String(list[7]) + "<br>\n";
msg = msg + "<font color=red>\n<br>\n";
msg = msg + "兵種:最大兵数~最小兵数<br>\n";
msg = msg + "</font>\n";
msg = msg + "新兵:\n"+ red_s + String(kenmax) + red_f;
msg = msg + "~" + gre_s + String(kenmin) + red_f + "<br>\n";
msg = msg + "軽戦車:\n"+ red_s + String(yarimax) + red_f;
msg = msg + "~" + gre_s + String(yarimin) + red_f + "<br>\n";
msg = msg + "水雷艇:\n"+ red_s + String(yumimax) + red_f;
msg = msg + "~" + gre_s + String(yumimin) + red_f + "<br>\n";
msg = msg + "軽戦闘機:\n"+ red_s + String(kimax) + red_f;
msg = msg + "~" + gre_s + String(kimin) + red_f + "<br>\n";
msg = msg + "重戦車:\n"+ red_s + String(hokomax) + red_f;
msg = msg + "~" + gre_s + String(hokomin) + red_f + "<br>\n";
msg = msg + "駆逐艦:\n"+ red_s + String(domax) + red_f;
msg = msg + "~" + gre_s + String(domin) + red_f + "<br>\n";
msg = msg + "重戦闘機:\n" + red_s + String(konomax) + red_f;
msg = msg + "~" + gre_s + String(konomin) + red_f + "<br>\n";
msg = msg + "<span id='simple'><font color=red>\n<br>\n";
msg = msg + "対兵科:防御力MAX~MIN<br>\n"
msg = msg + "</font>\n";
msg = msg + "歩兵:"+ red_s + String(kenk).replace( /(\d+)(\d{3})/g, '$1,$2' ) + red_f + "~"+ gre_s + String(kenk2).replace( /(\d+)(\d{3})/g, '$1,$2' ) + red_f+ "<br>\n";
msg = msg + "戦車:"+ red_s + String(yarik).replace( /(\d+)(\d{3})/g, '$1,$2' ) + red_f + "~"+ gre_s + String(yarik2).replace( /(\d+)(\d{3})/g, '$1,$2' ) + red_f+"<br>\n";
msg = msg + "船舶:"+ red_s + String(yumik).replace( /(\d+)(\d{3})/g, '$1,$2' ) + red_f + "~"+ gre_s + String(yumik2).replace( /(\d+)(\d{3})/g, '$1,$2' ) + red_f+"<br>\n";
msg = msg + "戦闘機:"+ red_s + String(kik).replace( /(\d+)(\d{3})/g, '$1,$2' ) + red_f + "~"+ gre_s + String(kik2).replace( /(\d+)(\d{3})/g, '$1,$2' ) + red_f+"<br>\n";
msg = msg + "<br>\n<font color=red>\n";
msg = msg + "無強化兵士に単純換算<br>\n";
msg = msg + "</font>\n";
msg = msg + "歩:\n"+ red_s + Math.ceil(kenk/atk["ken"]) + red_f;
msg = msg + "~" + gre_s + Math.ceil(kenk2/atk["ken"]) + red_f + "<br>\n";
msg = msg + "戦:\n"+ red_s + Math.ceil(yarik/atk["yari"]) + red_f + "~" + gre_s + Math.ceil(yarik2/atk["yari"]) + red_f + "(重戦車:\n"+ red_s + Math.ceil(yarik/atk["hoko"]) + red_f + "~" + gre_s + Math.ceil(yarik2/atk["hoko"]) + red_f + ")<br>\n";
msg = msg + "船:\n"+ red_s + Math.ceil(yumik/atk["yumi"]) + red_f + "~" + gre_s + Math.ceil(yumik2/atk["yumi"]) + red_f + "(駆逐艦:\n"+ red_s + Math.ceil(yumik/atk["do"]) + red_f + "~" + gre_s + Math.ceil(yumik2/atk["do"]) + red_f + ")<br>\n";
msg = msg + "飛:\n"+ red_s + Math.ceil(kik/atk["ki"]) + red_f + "~" + gre_s + Math.ceil(kik2/atk["ki"]) + red_f + "(重戦闘機:\n"+ red_s + Math.ceil(kik/atk["kono"]) + red_f + "~" + gre_s + Math.ceil(kik2/atk["kono"]) + red_f + ")<br><br>\n";
msg = msg + "</td><td align=center style='text-align:center;background:#FFC;color:#C60;'>\n";
msg = msg + "<br><b><font size='+1'>テロリスト討伐シミュレータ</font> ver "+kino_ver+"</b><br><br>\n";
msg = msg + "<form>\n";
msg = msg + "<div align='left'><input type='button' id='get_kajiba' value='武装研究所・課金状況取得'></div>\n";
msg = msg + "<table id='power_tab' border='1' align='center' style='background:white;color:gray;'><tr>\n";
msg = msg + "<td>ユニット攻撃力:</td><td><input type='text' value=0 id='b_power' size=5 style='text-align:right;' /></td><td>+<input type='text' value=0 id='b_skill' size=4 style='text-align:right;' />%</td>\n";
msg = msg + "<td>ユニット兵科:<select id='b_type'><option value=0>歩<option value=1>戦<option value=2>船<option value=3>飛</select>\n";
msg = msg + "</tr><tr>\n";
msg = msg + "<td>スキル:</td><td colspan=3 align=right><select id='skill'><option value=0>ユニット<option value=1>新兵・歩兵兵科<option value=2>軽戦車・重戦車・軽戦車兵科<option value=3>水雷艇・駆逐艦・水雷艇兵科<option value=4>軽戦闘機・重戦闘機・軽戦闘機兵科<option value=5>全ての兵士・ユニット<option value=6>重戦闘機・重戦車・駆逐艦</select><br>の攻撃力が<input type='text' value=0 id='skill_rate' size=4 style='text-align:right;' />%上昇する</td>\n"
msg = msg + "</tr><tr>\n";
msg = msg + "</tr><tr>\n";
msg = msg + "<td></td><td>兵士数</td><td>スキル効果</td><td>武装研究所Lv:<select id='kaji'><option value=0>0<option value=1>1<option value=2>2<option value=3>3<option value=4>4<option value=5>5<option value=6>6<option value=7>7<option value=8>8<option value=9>9<option value=10>10</select></td>\n"
msg = msg + "</tr><tr>\n";
msg = msg + "<td>新兵:</td><td><input type='text' value='" + infantry_count + "' id='infantry_count2' size=5 style='text-align:right;' /></td><td>+<input type='text' value=0 id='ken_skill' size=4 style='text-align:right;' />%</td>\n";
msg = msg + "<td>武装Lv:<select id='ken_kaji'><option value=0>0<option value=1>1<option value=2>2<option value=3>3<option value=4>4<option value=5>5<option value=6>6<option value=7>7<option value=8>8<option value=9>9<option value=10>10</select></td>\n";
msg = msg + "</tr><tr>\n";
msg = msg + "<td>軽戦車:</td><td><input type='text' value='" + spear_count + "' id='spear_count2' size=5 style='text-align:right;' /></td><td>+<input type='text' value=0 id='yari_skill' size=4 style='text-align:right;' />%</td>\n";
msg = msg + "<td>武装Lv:<select id='yari_kaji'><option value=0>0<option value=1>1<option value=2>2<option value=3>3<option value=4>4<option value=5>5<option value=6>6<option value=7>7<option value=8>8<option value=9>9<option value=10>10</select></td>\n";
msg = msg + "</tr><tr>\n";
msg = msg + "<td>水雷艇:</td><td><input type='text' value='" + archer_count + "' id='archer_count2' size=5 style='text-align:right;' /></td><td>+<input type='text' value=0 id='yumi_skill' size=4 style='text-align:right;' />%</td>\n";
msg = msg + "<td>武装Lv:<select id='yumi_kaji'><option value=0>0<option value=1>1<option value=2>2<option value=3>3<option value=4>4<option value=5>5<option value=6>6<option value=7>7<option value=8>8<option value=9>9<option value=10>10</select></td>\n";
msg = msg + "</tr><tr>\n";
msg = msg + "<td>軽戦闘機:</td><td><input type='text' value='" + cavalry_count + "' id='cavalry_count2' size=5 style='text-align:right;' /></td><td>+<input type='text' value=0 id='ki_skill' size=4 style='text-align:right;' />%</td>\n";
msg = msg + "<td>武装Lv:<select id='ki_kaji'><option value=0>0<option value=1>1<option value=2>2<option value=3>3<option value=4>4<option value=5>5<option value=6>6<option value=7>7<option value=8>8<option value=9>9<option value=10>10</select></td>\n";
msg = msg + "</tr><tr>\n";
msg = msg + "<td>重戦車:</td><td><input type='text' value='" + halbert_count + "' id='halbert_count2' size=5 style='text-align:right;' /></td><td>+<input type='text' value=0 id='hoko_skill' size=4 style='text-align:right;' />%</td>\n";
msg = msg + "<td>武装Lv:<select id='hoko_kaji'><option value=0>0<option value=1>1<option value=2>2<option value=3>3<option value=4>4<option value=5>5<option value=6>6<option value=7>7<option value=8>8<option value=9>9<option value=10>10</select></td>\n";
msg = msg + "</tr><tr>\n";
msg = msg + "<td>駆逐艦:</td><td><input type='text' value='" + crossbow_count + "' id='crossbow_count2' size=5 style='text-align:right;' /></td><td>+<input type='text' value=0 id='do_skill' size=4 style='text-align:right;' />%</td>\n";
msg = msg + "<td>武装Lv:<select id='do_kaji'><option value=0>0<option value=1>1<option value=2>2<option value=3>3<option value=4>4<option value=5>5<option value=6>6<option value=7>7<option value=8>8<option value=9>9<option value=10>10</select></td>\n";
msg = msg + "</tr><tr>\n";
msg = msg + "<td>重戦闘機:</td><td><input type='text' value='" + cavalry_guards_count + "' id='cavalry_guards_count2' size=5 style='text-align:right;' /></td><td>+<input type='text' value=0 id='konoe_skill' size=4 style='text-align:right;' />%</td>\n";
msg = msg + "<td>武装Lv:<select id='konoe_kaji'><option value=0>0<option value=1>1<option value=2>2<option value=3>3<option value=4>4<option value=5>5<option value=6>6<option value=7>7<option value=8>8<option value=9>9<option value=10>10</select></td>\n";
msg = msg + "</tr><tr>\n";
msg = msg + "<td colspan='4'>課金(またはヨロズダス)による攻撃力上昇:<select id='cp'><option value=0>無<option value=1>有</select></td>\n";
msg = msg + "</tr></table><br>\n";
msg = msg + "<span title='部隊の総攻撃力'>部隊攻撃力:<input type='text' id='power2' size='8' style='color:red;border-width:0;'/></span><br>\n";
msg = msg + "<span title='部隊の構成比から計算される民兵の防御力の最大値・最小値(乱数の最大・最小)。他同盟の領地の場合、援軍および領地レベルは考慮しない。'>民兵防御力:<input type='text' id='dmax2' size='8' style='color:blue;border-width:0;'/>~<input type='text' id='dmin2' size='8' style='color:blue;border-width:0;'/></span><br>\n";
msg = msg + "<span title='テロリスト討伐が成功する確率(武将のHPが100に満たない場合はこの限りではない)'>討伐成功率:<input type='text' id='result' size='3' style='background-color:black;color:red;font-size:24px;border-width:0;text-align:right;'/>%</span><br>\n";
msg = msg + "<span style='font-size:11px;' title='全乱数パターンに対する討伐成功パターン数'>(WIN <input type='text'id='vcnt2' size='3' style='background:#FFC;color:#C60;border-width:0;text-align:center;'/>/ALL <input type='text'id='cnt2' size='3' style='background:#FFC;color:#C60;border-width:0;text-align:center;'/>)</span><br>\n";
msg = msg + "<input type='button' value=再計算 id='recalc'><br><br>\n";
msg = msg + "</form>\n";
msg = msg + "</td></tr>\n";
msg = msg + "<tr><td align=left colspan=2><br>\n";
msg = msg + se_rack + ver_rack + "<br>\n";
msg = msg + "<b> + テロリスト討伐シミュレータ by gozen. ver"+kino_ver+"</b><br><br>\n";
// msg = msg + "苦情・文句・情報提供などは 17鯖 <a href="+ url_rack2+" target='_blank'>きの。</a> まで御願いします。<br>\n";
// msg = msg + "領地敵兵算出機作者は<a href="+ url_rack+" target='_blank'>こちら(配布元)</a><br>\n";
msg = msg + "</td></tr></table>\n";
if (title.indexOf("出撃(入力)") != -1) {
msg = msg + "<div id='deck_iframe' align=left><br><a id='deckview' href='javascript:void(0)'>Deckview</a><br></div>";
msg = msg + "<div align=right id='deck_display' style='display:none;'><a id='close_view' href='javascript:void(0)'>CLOSE</a><br><iframe id='iframe' width='770' height='600' style='position:absolute;left:0px;'></iframe></div>";
}
var insertHtml = "<div align=center>" + msg + "</div>";
var insertElem = document.createElement('div');
insertElem.innerHTML = insertHtml;
insertElem = insertElem.firstChild;
var containerElem = document.evaluate('//*[@class=\"controlArea\"]', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
containerElem.snapshotItem(0).appendChild(insertElem);
if (title.indexOf("出撃(確認)") != -1) {
sol_index();
close("simple");
close("power_tab");
close("recalc");
close("get_kajiba");
rec();
}
if (title.indexOf("出撃(入力)") != -1) {
var get_kajiba = document.getElementById("get_kajiba");
get_kajiba.addEventListener("click", function(){get_kaji_lv();}, false);
}
function get_kaji_lv(){
//武装研究所Lv・武装強化Lvを自動入力
var url2 = "http://"+location.hostname+"/village.php";
GM_xmlhttpRequest({
method:"GET",
url:url2,
onload:function(x){
var responseXML = document.createElement('div');
responseXML.innerHTML = x.responseText;
var panels2 = document.evaluate('.//*[@id="mapOverlayMap"]//area/@title',
responseXML, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
for (var i = 0; i < panels2.snapshotLength; i++) {
panels3 = panels2.snapshotItem(i).textContent;
if(panels3.indexOf("武装研究所") != -1) {
var kajiba_panel = ".//*[@title='" + panels3+ "']/@href";
var url3 = document.evaluate(kajiba_panel,responseXML, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
url3 = url3.snapshotItem(0).textContent;
kajiba(url3);
};
}
}
});
function kajiba(x){
var url3 = "http://"+location.hostname+"/"+x;
GM_xmlhttpRequest({
method:"GET",
url:url3,
onload:function(x){
var responseXML = document.createElement('div');
responseXML.innerHTML = x.responseText;
var kajiba = document.evaluate("//*[@class='mainTtl']/div", responseXML, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
kajiba = kajiba.innerHTML.match(/[0-9]+/);
var sel_kaji = document.getElementById("kaji").getElementsByTagName("option")[kajiba];
sel_kaji.selected = 1;
var num = 1;
var sysmes = document.evaluate("//*[@id='gray02Wrapper']", responseXML, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.innerHTML;
if (sysmes.indexOf("現在は下記兵種の武器を強化しています") != -1) num += 1;
var buki_ken = document.evaluate("//*[@id='gray02Wrapper']/table["+num+"]/tbody/tr[2]/td[2]/b", responseXML, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
buki_ken = buki_ken.innerHTML.match(/[0-9]+/);
var sel_ken = document.getElementById("ken_kaji").getElementsByTagName("option")[buki_ken];
sel_ken.selected = 1;
var trs = document.evaluate('.//*[@id="gray02Wrapper"]//table["+num+"]/tbody/tr', responseXML, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
for (var i = 1; i < trs.snapshotLength; i++) {
var xxx_tr = "//*[@id='gray02Wrapper']/table["+num+"]/tbody/tr["+i+"]";
xxx_tr = document.evaluate(xxx_tr, responseXML, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.innerHTML;
if(xxx_tr.indexOf("軽戦車") != -1 && xxx_tr.indexOf("重戦車") == -1) {
var tr_yari = i+1;
tr_yari = "//*[@id='gray02Wrapper']/table[" + num + "]/tbody/tr[" + tr_yari + "]/td[2]/b";
var buki_yari = document.evaluate(tr_yari, responseXML, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.innerHTML.match(/[0-9]+/);
var sel_yari = document.getElementById("yari_kaji").getElementsByTagName("option")[buki_yari];
sel_yari.selected = 1;
}
else if(xxx_tr.indexOf("水雷艇") != -1) {
var tr_yumi = i+1;
tr_yumi = "//*[@id='gray02Wrapper']/table[" + num + "]/tbody/tr[" + tr_yumi + "]/td[2]/b";
var buki_yumi = document.evaluate(tr_yumi, responseXML, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.innerHTML.match(/[0-9]+/);
var sel_yumi = document.getElementById("yumi_kaji").getElementsByTagName("option")[buki_yumi];
sel_yumi.selected = 1;
}
else if(xxx_tr.indexOf("軽戦闘機") != -1 && xxx_tr.indexOf("重戦闘機") == -1 && xxx_tr.indexOf("特殊部隊") == -1) {
var tr_ki = i+1;
tr_ki = "//*[@id='gray02Wrapper']/table[" + num + "]/tbody/tr[" + tr_ki + "]/td[2]/b";
var buki_ki = document.evaluate(tr_ki, responseXML, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.innerHTML.match(/[0-9]+/);
var sel_ki = document.getElementById("ki_kaji").getElementsByTagName("option")[buki_ki];
sel_ki.selected = 1;
}
if(xxx_tr.indexOf("重戦車") != -1) {
var tr_hoko = i+1;
tr_hoko = "//*[@id='gray02Wrapper']/table[" + num + "]/tbody/tr[" + tr_hoko + "]/td[2]/b";
var buki_hoko = document.evaluate(tr_hoko, responseXML, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.innerHTML.match(/[0-9]+/);
var sel_hoko = document.getElementById("hoko_kaji").getElementsByTagName("option")[buki_hoko];
sel_hoko.selected = 1;
}
if(xxx_tr.indexOf("駆逐艦") != -1) {
var tr_do = i+1;
tr_do = "//*[@id='gray02Wrapper']/table[" + num + "]/tbody/tr[" + tr_do + "]/td[2]/b";
var buki_do = document.evaluate(tr_do, responseXML, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.innerHTML.match(/[0-9]+/);
var sel_do = document.getElementById("do_kaji").getElementsByTagName("option")[buki_do];
sel_do.selected = 1;
}
if(xxx_tr.indexOf("重戦闘機") != -1) {
var tr_konoe = i+1;
tr_konoe = "//*[@id='gray02Wrapper']/table[" + num + "]/tbody/tr[" + tr_konoe + "]/td[2]/b";
var buki_konoe = document.evaluate(tr_konoe, responseXML, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.innerHTML.match(/[0-9]+/);
var sel_konoe = document.getElementById("konoe_kaji").getElementsByTagName("option")[buki_konoe];
sel_konoe.selected = 1;
}
}
}
});
}
var url4 = "http://"+location.hostname+"/cp/item_list.php";
GM_xmlhttpRequest({
method:"GET",
url:url4,
onload:function(x){
var responseXML = document.createElement('div');
responseXML.innerHTML = x.responseText;
var tr_cp = "//*[@id='gray02Wrapper']/form/table/tbody/tr[33]/td[4]/p/a";
var now_cp = document.evaluate(tr_cp, responseXML, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.innerHTML;
if(now_cp.indexOf("延長する") != -1){
var sel_cp = document.getElementById("cp").getElementsByTagName("option")[1];
sel_cp.selected = 1;
}
}
});
function changeskill(){
var skill_type = document.getElementById("skill");
skill_type = skill_type.options[skill_type.selectedIndex].value;
var skill_rate = document.getElementById("skill_rate").value;
var busho = document.getElementById("b_skill");
var kenpei = document.getElementById("ken_skill");
var yarihei = document.getElementById("yari_skill");
var yumihei = document.getElementById("yumi_skill");
var kihei = document.getElementById("ki_skill");
var hokoyarihei = document.getElementById("hoko_skill");
var dohei = document.getElementById("do_skill");
var konoekihei = document.getElementById("konoe_skill");
var b_type = document.getElementById("b_type");
var b_type2 = b_type.options[b_type.selectedIndex].value;
if(skill_type == "0"){
busho.value = skill_rate;
kenpei.value = 0;
yarihei.value = 0;
yumihei.value = 0;
kihei.value = 0;
hokoyarihei.value = 0;
dohei.value = 0;
konoekihei.value = 0;
}
if(skill_type == "1"){
if(b_type2 == "0"){busho.value = skill_rate;} else {busho.value = 0;};
kenpei.value = skill_rate;
yarihei.value = 0;
yumihei.value = 0;
kihei.value = 0;
hokoyarihei.value = 0;
dohei.value = 0;
konoekihei.value = 0;
}
if(skill_type == "2"){
if(b_type2 == "1"){busho.value = skill_rate;} else {busho.value = 0;};
kenpei.value = 0;
yarihei.value = skill_rate;
yumihei.value = 0;
kihei.value = 0;
hokoyarihei.value = skill_rate;
dohei.value = 0;
konoekihei.value = 0;
}
if(skill_type == "3"){
if(b_type2 == "2"){busho.value = skill_rate;} else {busho.value = 0;};
kenpei.value = 0;
yarihei.value = 0;
yumihei.value = skill_rate;
kihei.value = 0;
hokoyarihei.value = 0;
dohei.value = skill_rate;
konoekihei.value = 0;
}
if(skill_type == "4"){
if(b_type2 == "3"){busho.value = skill_rate;} else {busho.value = 0;};
kenpei.value = 0;
yarihei.value = 0;
yumihei.value = 0;
kihei.value = skill_rate;
hokoyarihei.value = 0;
dohei.value = 0;
konoekihei.value = skill_rate;
}
if(skill_type == "5"){
busho.value = skill_rate;
kenpei.value = skill_rate;
yarihei.value = skill_rate;
yumihei.value = skill_rate;
kihei.value = skill_rate;
hokoyarihei.value = skill_rate;
dohei.value = skill_rate;
konoekihei.value = skill_rate;
}
if(skill_type == "6"){
busho.value = 0;
kenpei.value = 0;
yarihei.value = 0;
yumihei.value = 0;
kihei.value = 0;
hokoyarihei.value = skill_rate;
dohei.value = skill_rate;
konoekihei.value = skill_rate;
}
}
var skill_sel = document.getElementById("skill");skill_sel.addEventListener("change", function(){changeskill();}, false);
var skill_rate = document.getElementById("skill_rate"); skill_rate.addEventListener("change", function(){changeskill();}, false);
var b_type = document.getElementById("b_type"); b_type.addEventListener("change", function(){changeskill();}, false);
var recalc = document.getElementById("recalc");
recalc.addEventListener("click", function(){rec();}, false);
var deckview = document.getElementById("deckview");
if(deckview) deckview.addEventListener("click", function(){view("deck_display");chansrc("iframe");}, false);
var close_view = document.getElementById("close_view");
if(close_view) close_view.addEventListener("click", function(){close("deck_display");}, false);
}
function sol_index(){
var index = 0;
if(soltype == "歩兵") index = 0;
else if(soltype == "軽戦車") index = 1;
else if(soltype == "水雷艇") index = 2;
else if(soltype == "軽戦闘機") index = 3;
var sel_soltype = document.getElementById("b_type").getElementsByTagName("option")[index];
sel_soltype.selected = 1;
}
var svsetting_btn = document.getElementById("svsetting_btn");
svsetting_btn.addEventListener("click", function(){view("svsetting");set_season();}, false);
var svsave_btn = document.getElementById("svsave_btn");
svsave_btn.addEventListener("click", function(){sv_save();}, false);
var svreset_btn = document.getElementById("svreset_btn");
svreset_btn.addEventListener("click", function(){reset_season();}, false);
}
function view(id){
document.getElementById(id).style.display = "block";
};
function close(id){
document.getElementById(id).style.display = "none";
}
function chansrc(id){
document.getElementById(id).src = "../card/deck.php#filetop"
};
var sv_world = [];
var sv_season = [];
function set_season(){
for(i=0;i<serverTable.length;i++){
var BRO3_TOBATSU_SV = 'bro3_tobatsu_sv' + i;
var BRO3_TOBATSU_SEASON = 'bro3_tobatsu_season' + i;
sv_world[i] = document.getElementById("s"+i);
sv_season[i] = document.getElementById("s"+i+"s");
sv_world[i].value = GM_getValue(BRO3_TOBATSU_SV);
if(GM_getValue(BRO3_TOBATSU_SV)=="NN") sv_world[i].value = "";
var season = GM_getValue(BRO3_TOBATSU_SEASON) -1;
sv_season[i].getElementsByTagName("option")[season].selected = 1;
}
}
function sv_save(){
for(i=0;i<serverTable.length;i++){
sv_world[i] = document.getElementById("s"+i).value;
if(sv_world[i]=="") sv_world[i] = "NN";
sv_season[i] = document.getElementById("s"+i+"s");
sv_season[i] = sv_season[i].options[sv_season[i].selectedIndex].value;
var BRO3_TOBATSU_SV = 'mc110_tobatsu_sv' + i;
var BRO3_TOBATSU_SEASON = 'mc110_tobatsu_season' + i;
GM_setValue(BRO3_TOBATSU_SV, sv_world[i]);
GM_setValue(BRO3_TOBATSU_SEASON, sv_season[i]);
}
alert("保存しました");
}
function reset_season(){
for(i=0;i<serverTable.length;i++){
sv_world[i] = document.getElementById("s"+i);
sv_season[i] = document.getElementById("s"+i+"s");
sv_world[i].value = serverTable[i][0];
var season = serverTable[i][1] - 1;
sv_season[i].getElementsByTagName("option")[season].selected = 1;
}
}
//3桁カンマ区切り
function addFigure(str) {
 var num = new String(str).replace(/,/g, "");
 while(num != (num = num.replace(/^(-?\d+)(\d{3})/, "$1,$2")));
 return num;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment