// ==UserScript== // @name ppcounter // @namespace https://www.twitter.com/moterech/ // @description PBSの対戦ログに残りPPを表示 // @include http://psense.lib.net/PBS/_/*/LLOG.html* // @include http://psense.lib.net/PBS/_/*/PS.cgi?ACTION=LLOG // @include http://pokemon.sp.land.to/log/* // ==/UserScript== // かなしばり,へんしん,ものまね,2ターン技,ころがる,特殊ルールなどに非対応 // Special Thanks: 柿さん,こにろさん function MoveData(name, pp) { this.name = name; this.pp = pp; } var movelist = new Array; movelist[0] = new MoveData("", 0); movelist[2] = new MoveData("はたく", 35); movelist[3] = new MoveData("からてチョップ", 25); movelist[4] = new MoveData("おうふくビンタ", 20); movelist[5] = new MoveData("れんぞくパンチ", 15); movelist[6] = new MoveData("メガトンパンチ", 20); movelist[7] = new MoveData("ネコにこばん", 20); movelist[8] = new MoveData("ほのおのパンチ", 15); movelist[9] = new MoveData("れいとうパンチ", 15); movelist[10] = new MoveData("かみなりパンチ", 15); movelist[11] = new MoveData("ひっかく", 35); movelist[12] = new MoveData("はさむ", 30); movelist[13] = new MoveData("ハサミギロチン", 5); movelist[14] = new MoveData("かまいたち", 10); movelist[15] = new MoveData("つるぎのまい", 30); movelist[16] = new MoveData("いあいぎり", 30); movelist[17] = new MoveData("かぜおこし", 35); movelist[18] = new MoveData("つばさでうつ", 35); movelist[19] = new MoveData("ふきとばし", 20); movelist[20] = new MoveData("そらをとぶ", 15); movelist[21] = new MoveData("しめつける", 20); movelist[22] = new MoveData("たたきつける", 20); movelist[23] = new MoveData("つるのムチ", 10); movelist[24] = new MoveData("ふみつけ", 20); movelist[25] = new MoveData("にどげり", 30); movelist[26] = new MoveData("メガトンキック", 5); movelist[27] = new MoveData("とびげり", 25); movelist[28] = new MoveData("まわしげり", 15); movelist[29] = new MoveData("すなかけ", 15); movelist[30] = new MoveData("ずつき", 15); movelist[31] = new MoveData("つのでつく", 25); movelist[32] = new MoveData("みだれづき", 20); movelist[33] = new MoveData("つのドリル", 5); movelist[34] = new MoveData("たいあたり", 35); movelist[35] = new MoveData("のしかかり", 15); movelist[36] = new MoveData("まきつく", 20); movelist[37] = new MoveData("とっしん", 20); movelist[38] = new MoveData("あばれる", 20); movelist[39] = new MoveData("すてみタックル", 15); movelist[40] = new MoveData("しっぽをふる", 30); movelist[41] = new MoveData("どくばり", 35); movelist[42] = new MoveData("ダブルニードル", 20); movelist[43] = new MoveData("ミサイルばり", 20); movelist[44] = new MoveData("にらみつける", 30); movelist[45] = new MoveData("かみつく", 25); movelist[46] = new MoveData("なきごえ", 40); movelist[47] = new MoveData("ほえる", 20); movelist[48] = new MoveData("うたう", 15); movelist[49] = new MoveData("ちょうおんぱ", 20); movelist[50] = new MoveData("ソニックブーム", 20); movelist[51] = new MoveData("かなしばり", 20); movelist[52] = new MoveData("ようかいえき", 30); movelist[53] = new MoveData("ひのこ", 25); movelist[54] = new MoveData("かえんほうしゃ", 15); movelist[55] = new MoveData("しろいきり", 30); movelist[56] = new MoveData("みずでっぽう", 25); movelist[57] = new MoveData("ハイドロポンプ", 5); movelist[58] = new MoveData("なみのり", 15); movelist[59] = new MoveData("れいとうビーム", 10); movelist[60] = new MoveData("ふぶき", 5); movelist[61] = new MoveData("サイケこうせん", 20); movelist[62] = new MoveData("バブルこうせん", 20); movelist[63] = new MoveData("オーロラビーム", 20); movelist[64] = new MoveData("はかいこうせん", 5); movelist[65] = new MoveData("つつく", 35); movelist[66] = new MoveData("ドリルくちばし", 20); movelist[67] = new MoveData("じごくぐるま", 25); movelist[68] = new MoveData("けたぐり", 20); movelist[69] = new MoveData("カウンター", 20); movelist[70] = new MoveData("ちきゅうなげ", 20); movelist[71] = new MoveData("かいりき", 15); movelist[72] = new MoveData("すいとる", 20); movelist[73] = new MoveData("メガドレイン", 10); movelist[74] = new MoveData("やどりぎのタネ", 10); movelist[75] = new MoveData("せいちょう", 40); movelist[76] = new MoveData("はっぱカッター", 25); movelist[77] = new MoveData("ソーラービーム", 10); movelist[78] = new MoveData("どくのこな", 35); movelist[79] = new MoveData("しびれごな", 30); movelist[80] = new MoveData("ねむりごな", 15); movelist[81] = new MoveData("はなびらのまい", 20); movelist[82] = new MoveData("いとをはく", 40); movelist[83] = new MoveData("りゅうのいかり", 10); movelist[84] = new MoveData("ほのおのうず", 15); movelist[85] = new MoveData("でんきショック", 30); movelist[86] = new MoveData("10まんボルト", 15); movelist[87] = new MoveData("でんじは", 20); movelist[88] = new MoveData("かみなり", 10); movelist[89] = new MoveData("いわおとし", 15); movelist[90] = new MoveData("じしん", 10); movelist[91] = new MoveData("じわれ", 5); movelist[92] = new MoveData("あなをほる", 10); movelist[93] = new MoveData("どくどく", 10); movelist[94] = new MoveData("ねんりき", 25); movelist[95] = new MoveData("サイコキネシス", 10); movelist[96] = new MoveData("さいみんじゅつ", 20); movelist[97] = new MoveData("ヨガのポーズ", 40); movelist[98] = new MoveData("こうそくいどう", 30); movelist[99] = new MoveData("でんこうせっか", 30); movelist[100] = new MoveData("いかり", 20); movelist[101] = new MoveData("テレポート", 20); movelist[102] = new MoveData("ナイトヘッド", 15); movelist[103] = new MoveData("ものまね", 10); movelist[104] = new MoveData("いやなおと", 40); movelist[105] = new MoveData("かげぶんしん", 15); movelist[106] = new MoveData("じこさいせい", 20); movelist[107] = new MoveData("かたくなる", 30); movelist[108] = new MoveData("ちいさくなる", 20); movelist[109] = new MoveData("えんまく", 20); movelist[110] = new MoveData("あやしいひかり", 10); movelist[111] = new MoveData("からにこもる", 40); movelist[112] = new MoveData("まるくなる", 40); movelist[113] = new MoveData("バリアー", 30); movelist[114] = new MoveData("ひかりのかべ", 30); movelist[115] = new MoveData("くろいきり", 30); movelist[116] = new MoveData("リフレクター", 20); movelist[117] = new MoveData("きあいだめ", 30); movelist[118] = new MoveData("がまん", 10); movelist[119] = new MoveData("ゆびをふる", 10); movelist[120] = new MoveData("オウムがえし", 20); movelist[121] = new MoveData("じばく", 5); movelist[122] = new MoveData("タマゴばくだん", 10); movelist[123] = new MoveData("したでなめる", 30); movelist[124] = new MoveData("スモッグ", 20); movelist[125] = new MoveData("ヘドロこうげき", 20); movelist[126] = new MoveData("ホネこんぼう", 20); movelist[127] = new MoveData("だいもんじ", 5); movelist[128] = new MoveData("たきのぼり", 15); movelist[129] = new MoveData("からではさむ", 10); movelist[130] = new MoveData("スピードスター", 20); movelist[131] = new MoveData("ロケットずつき", 15); movelist[132] = new MoveData("とげキャノン", 15); movelist[133] = new MoveData("からみつく", 35); movelist[134] = new MoveData("ドわすれ", 20); movelist[135] = new MoveData("スプーンまげ", 15); movelist[136] = new MoveData("タマゴうみ", 10); movelist[137] = new MoveData("とびひざげり", 20); movelist[138] = new MoveData("へびにらみ", 30); movelist[139] = new MoveData("ゆめくい", 15); movelist[140] = new MoveData("どくガス", 40); movelist[141] = new MoveData("たまなげ", 20); movelist[142] = new MoveData("きゅうけつ", 15); movelist[143] = new MoveData("あくまのキッス", 10); movelist[144] = new MoveData("ゴッドバード", 5); movelist[145] = new MoveData("へんしん", 10); movelist[146] = new MoveData("あわ", 30); movelist[147] = new MoveData("ピヨピヨパンチ", 10); movelist[148] = new MoveData("キノコのほうし", 15); movelist[149] = new MoveData("フラッシュ", 20); movelist[150] = new MoveData("サイコウェーブ", 15); movelist[151] = new MoveData("はねる", 40); movelist[152] = new MoveData("とける", 40); movelist[153] = new MoveData("クラブハンマー", 10); movelist[154] = new MoveData("だいばくはつ", 5); movelist[155] = new MoveData("みだれひっかき", 15); movelist[156] = new MoveData("ホネブーメラン", 10); movelist[157] = new MoveData("ねむる", 10); movelist[158] = new MoveData("いわなだれ", 10); movelist[159] = new MoveData("ひっさつまえば", 15); movelist[160] = new MoveData("かくばる", 30); movelist[161] = new MoveData("テクスチャー", 30); movelist[162] = new MoveData("トライアタック", 10); movelist[163] = new MoveData("いかりのまえば", 10); movelist[164] = new MoveData("きりさく", 20); movelist[165] = new MoveData("みがわり", 10); movelist[166] = new MoveData("わるあがき", -1); movelist[167] = new MoveData("スケッチ", 1); movelist[168] = new MoveData("トリプルキック", 10); movelist[169] = new MoveData("どろぼう", 10); movelist[170] = new MoveData("クモのす", 15); movelist[171] = new MoveData("こころのめ", 5); movelist[172] = new MoveData("あくむ", 15); movelist[173] = new MoveData("かえんぐるま", 25); movelist[174] = new MoveData("いびき", 15); movelist[175] = new MoveData("のろい", 10); movelist[176] = new MoveData("じたばた", 15); movelist[177] = new MoveData("テクスチャー2", 30); movelist[178] = new MoveData("エアロブラスト", 5); movelist[179] = new MoveData("わたほうし", 40); movelist[180] = new MoveData("きしかいせい", 15); movelist[181] = new MoveData("うらみ", 10); movelist[182] = new MoveData("こなゆき", 25); movelist[183] = new MoveData("まもる", 10); movelist[184] = new MoveData("マッハパンチ", 30); movelist[185] = new MoveData("こわいかお", 10); movelist[186] = new MoveData("だましうち", 20); movelist[187] = new MoveData("てんしのキッス", 10); movelist[188] = new MoveData("はらだいこ", 10); movelist[189] = new MoveData("ヘドロばくだん", 10); movelist[190] = new MoveData("どろかけ", 10); movelist[191] = new MoveData("オクタンほう", 10); movelist[192] = new MoveData("まきびし", 20); movelist[193] = new MoveData("でんじほう", 5); movelist[194] = new MoveData("みやぶる", 40); movelist[195] = new MoveData("みちづれ", 5); movelist[196] = new MoveData("ほろびのうた", 5); movelist[197] = new MoveData("こごえるかぜ", 15); movelist[198] = new MoveData("みきり", 5); movelist[199] = new MoveData("ボーンラッシュ", 10); movelist[200] = new MoveData("ロックオン", 5); movelist[201] = new MoveData("げきりん", 15); movelist[202] = new MoveData("すなあらし", 10); movelist[203] = new MoveData("ギガドレイン", 5); movelist[204] = new MoveData("こらえる", 10); movelist[205] = new MoveData("あまえる", 20); movelist[206] = new MoveData("ころがる", 20); movelist[207] = new MoveData("みねうち", 40); movelist[208] = new MoveData("いばる", 10); movelist[209] = new MoveData("ミルクのみ", 10); movelist[210] = new MoveData("スパーク", 20); movelist[211] = new MoveData("れんぞくぎり", 20); movelist[212] = new MoveData("はがねのつばさ", 25); movelist[213] = new MoveData("くろいまなざし", 5); movelist[214] = new MoveData("メロメロ", 15); movelist[215] = new MoveData("ねごと", 10); movelist[216] = new MoveData("いやしのすず", 5); movelist[217] = new MoveData("おんがえし", 20); movelist[218] = new MoveData("プレゼント", 15); movelist[219] = new MoveData("やつあたり", 20); movelist[220] = new MoveData("しんぴのまもり", 25); movelist[221] = new MoveData("いたみわけ", 20); movelist[222] = new MoveData("せいなるほのお", 5); movelist[223] = new MoveData("マグニチュード", 30); movelist[224] = new MoveData("ばくれつパンチ", 5); movelist[225] = new MoveData("メガホーン", 10); movelist[226] = new MoveData("りゅうのいぶき", 20); movelist[227] = new MoveData("バトンタッチ", 40); movelist[228] = new MoveData("アンコール", 5); movelist[229] = new MoveData("おいうち", 20); movelist[230] = new MoveData("こうそくスピン", 40); movelist[231] = new MoveData("あまいかおり", 20); movelist[232] = new MoveData("アイアンテール", 15); movelist[233] = new MoveData("メタルクロー", 30); movelist[234] = new MoveData("あてみなげ", 10); movelist[235] = new MoveData("あさのひざし", 5); movelist[236] = new MoveData("こうごうせい", 5); movelist[237] = new MoveData("つきのひかり", 5); movelist[238] = new MoveData("めざめるパワー", 15); movelist[239] = new MoveData("クロスチョップ", 5); movelist[240] = new MoveData("たつまき", 20); movelist[241] = new MoveData("あまごい", 5); movelist[242] = new MoveData("にほんばれ", 5); movelist[243] = new MoveData("かみくだく", 15); movelist[244] = new MoveData("ミラーコート", 20); movelist[245] = new MoveData("じこあんじ", 10); movelist[246] = new MoveData("しんそく", 5); movelist[247] = new MoveData("げんしのちから", 5); movelist[248] = new MoveData("シャドーボール", 15); movelist[249] = new MoveData("みらいよち", 15); movelist[250] = new MoveData("いわくだき", 15); movelist[251] = new MoveData("うずしお", 15); movelist[252] = new MoveData("ふくろだたき", 10); function PpData(player, pkmn, move, rest){ this.player = player; this.pkmn = pkmn; this.move = move; this.rest = rest; } function PdCheck(x, y, z, pd){ return ((x == pd.player) && (y == pd.pkmn) && (z == pd.move)); } function Show_pp(p, pp){ p.innerHTML = p.innerHTML.replace("!", "[" + pp + "]!"); } function Suk(p){ return p.innerHTML.match("しかし、うまくきまらなかった。"); } function Minimize(t){ return t.replace(/[0-9]/g, function(x) {return String.fromCharCode(x.charCodeAt(0) - 0xFEE0);}); } var all_p = document.getElementsByTagName("p"); var p_num = all_p.length; var pp_list = new Array; var tmp = new Array( "わるあがき", "あばれる", "はなびらのまい", "げきりん", "がまん", "ころがる", "かまいたち", "そらをとぶ", "ソーラービーム", "あなをほる", "ゴッドバ-ド", "みらいよち" ); var b0, b1; var pd, md; var new_pp; var b; for(var i = 0; i < p_num; i++){ b = all_p[i].getElementsByTagName("b"); if(b[1] == null)continue; b0 = b[0].innerHTML; b1 = b[1].innerHTML; if(tmp.some(function(x){return b1 == x;}))continue; if(b1 == "ふしぎなきのみ"){ if(pp_list.some(function(x){ pd = x; return PdCheck(all_p[i].align, b0, all_p[i].innerHTML.match(/<\/b>で(.*)のPPを回復した!/)[1], x); })){ pd.rest = 5; Show_pp(all_p[i], pd.rest); } } else if(pp_list.some(function(x){ pd = x; return PdCheck(all_p[i].align, b0, b1, x); })){ pd.rest--; Show_pp(all_p[i], pd.rest); } else if(movelist.some(function(x){ md = x; return b1.replace(/[−-]/g, "ー") == x.name; })){ new_pp = Math.floor((md.pp * 1.6) - 1); pp_list.push(new PpData(all_p[i].align, b0, b1, new_pp)); Show_pp(all_p[i], new_pp); } else{ tmp.push(b1); continue; } if(b1 == "うらみ" && !Suk(all_p[i])){ if(pp_list.some(function(x){ pd = x; return PdCheck((all_p[i].align == "right" ? "left" : "right"), b[3].innerHTML, b[4].innerHTML, x); })){ pd.rest -= Minimize(all_p[i].innerHTML.match(/PPを(.*)けずった!/)[1]); all_p[i].innerHTML = all_p[i].innerHTML.replace("けずった!", "けずった[" + pd.rest + "]!"); } } if(b1 == ("ねごと" || "ゆびをふる" || "オウムがえし") && !Suk(all_p[i]))i++; }