したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

【改造・改変】艦これタイマー for Firefox 書き換えスレ

1名無しさん:2014/01/09(木) 03:41:37
艦これタイマー for Firefoxにおいて、
プルリクエストするほどでもない微妙な改造を自分でした場合に
書き換えた部分を書き込んでみるスレです。
もしかしたら自分と同じ改造をしたい人が他にもいるかもしれません。

派生版を書き換えた場合はその旨も明記してください。

なおここに書き込まれている改造をして何か不具合が起こっても責任は持てません。
あくまでも自己責任と言うことでよろしくお願いします。
最悪の場合、書き換えていない物を再インストールする事で元に戻せるはずです。

【書き換え方】
Firefoxのアドオンであるxpiファイルは実際にはzipファイルです。
その中に含まれているjarファイルも実際にはzipファイルです。
これらを各種アーカイバで解凍し、中身をメモ帳などのテキストエディタで書き換えます。
書き換えた後は再びzipで圧縮し、拡張子を元に戻す事でFirefoxにインストールできます。
※この説明がよくわからないと言う方は、無理に書き換えないほうがいいかもしれません。

2名無しさん:2014/01/09(木) 03:43:02
■1分前通知の時間をずらす
デフォルトの1分前通知は、残り時間が59秒以下になると発動します。
しかし実際に自分が通知に反応して操作するまで少しラグがあるので
あと数秒早めに通知して欲しい、少しでも時間を節約したい提督向けの書き換えです。

【対象】艦これタイマー for Firefox 0.23.1
【書き換えファイル】kancolletimer.jar>chrome/content/kancolletimer.js
【行数】181-256行目あたり
d<60 となっている部分が6箇所あるので好きな秒数に変更します。
d<65 とすれば残り時間が1分4秒になった時点で通知が発動します。
建造は1分前にポップアップ通知してもあまり意味が無いので250行目と256行目は
d<10 などとしてもいいと思います(その場合1分前通知が10秒前通知になります)。

【※注意】181行目と186行目にこの改造をして1分を切る前に母港を表示した場合、
自分が設定した時間と1分を切った時の2度、遠征完了通知が発動する事があります。
直し方がよくわからず…。

3名無しさん:2014/01/09(木) 03:43:45
■大破時の艦名背景赤表示を実際のゲーム画面の大破表示と統一する
艦これタイマーの大破赤表示は内部大破説を考慮して、
画面上では中破表示でも中破下限(大破まであと残り1)の場合には
大破として赤く表示されますが、その中破下限での赤表示をやめ、
ゲーム画面で大破と表示されている時(最大耐久値の1/4以下)のみ赤表示にします。
内部大破は無いと信じ、中破なら進撃したい提督向けの書き換えです。

【対象】艦これタイマー for Firefox 0.23.1
【書き換えファイル】kancolletimer.jar>chrome/content/[libs.js][shiplist.js]
【行数】[libs.js] 249 314  [shiplist.js] 199
nowhp-1 となっている部分があるので -1 を削除し、
nowhp だけにします。

4名無しさん:2014/01/09(木) 03:44:37
■大破時と中破下限(大破まであと残り1)の場合で艦名背景色を変える
>>3の混合版。艦名背景を大破で赤表示、中破下限の時のみ橙表示にします。
中破なら進撃したいが内部大破の可能性も気になる提督向けの書き換えです。

【対象】艦これタイマー for Firefox 0.23.1
【書き換えファイル】kancolletimer.jar>chrome/content/[libs.js][shiplist.js]
【行数】[libs.js] 249 314 のあたり [shiplist.js] 199 のあたり
まず上記行数にある nowhp-1 から -1 を削除し、nowhp だけにします。
次に以下の2行をそれぞれ挿入します。
--------------------------------------------------
}else if( nowhp-1 <= maxhp*0.25 ){
row.style.backgroundColor = '#ffD080';
--------------------------------------------------
[libs.js] 250-251 315-316 行目の間に挿入
[shiplist.js] 200-201 行目の間に挿入
このままだとソースの見た目が悪くなるので行頭にTABと半角空白を入れてうまく整形してください。
#ffD080の値を変えれば橙色から任意の色に変更できます。

5名無しさん:2014/01/09(木) 03:45:16
■アドオンバーにあるアイコンを移動、除去できるようにする
アドオンバーにある艦これタイマーのウィンドウを出すためのアイコンは
固定されていて移動も除去もできませんが、これをツールバーボタンと同じように
Firefoxのカスタマイズで移動したり除去したりできるようにします。
艦これタイマーを主にサイドバーで使っていたり、
好きな場所にボタンを置きたい提督向けの書き換えです。

【対象】艦これタイマー for Firefox 0.23.1
【書き換えファイル】kancolletimer.jar>chrome/content/overlaymenu.xul
【行数】78 85
78行目と85行目をそれぞれ以下のように丸ごと書き換えます。
78行目
書き換え前 <toolbar id="addon-bar">
書き換え後 <toolbarpalette id="BrowserToolbarPalette">
85行目
書き換え前 </toolbar>
書き換え後 </toolbarpalette>

6名無しさん:2014/01/09(木) 03:45:55
■装備アイテム数の最大値をゲーム画面と合わせる
なぜか-3されてしまう装備アイテム数の最大値を+3下駄を履かせる事で
ゲーム内の表示と同じにします。

【対象】艦これタイマー for Firefox 0.23.1
【書き換えファイル】kancolletimer.jar>chrome/content/libs.js
【行数】200
d.api_max_slotitem; の部分を d.api_max_slotitem+3; に変更します。

7名無しさん:2014/01/09(木) 03:46:27
■汎用タイマーの設定時間を増やす(減らす)
汎用タイマーはデフォルトで3/6/9/12/15/30分が用意されていますが、
それだけでは足りないと感じる提督向けの書き換えです。

【対象】艦これタイマー for Firefox 0.23.1
【書き換えファイル】kancolletimer.jar>chrome/content/[mainwindow.xul][sidebar.xul]
【行数】[mainwindow.xul] 227-233 [sidebar.xul] 211-217
上記行数に汎用タイマーの設定時間が列記されているので
自分で好きな時間を追加・削除します。
例えば10分を汎用タイマーに追加したい場合は以下の1行を追加します。
--------------------------------------------------
<menuitem label="10分" value="600"/>
--------------------------------------------------

8名無しさん:2014/01/13(月) 21:10:44
jbbs.shitaraba.net/bbs/read.cgi/netgame/13241/1387640988/
であった、ログの大破出力の簡略化を試してみました。

[libs.js]
function KanColleTimerAlertCheckHandler(now,api_data){
・・・
ships = KanColleDatabase.memberShip2.list();
var AddLogStr = ""; //追加
for ( let i = 0; i < ships.length; i++ ){
・・・
var name = FindShipName( ship.api_id );
//AddLog(name + " : Lv : " + ship_lv + ": No Locked!\n"); //コメントアウト
AddLogStr += name + " : Lv : " + ship_lv + ": No Locked!\n"; //追加
gamebkcolor = "#FF0000";
・・・
if(k == 4) {
gamebkcolor = "#FF0000"; //大破
//AddLog(ship_name + " : Lv : " + ship_lv + ": 大破!\n"); //コメントアウト
AddLogStr += ship_name + " : Lv : " + ship_lv + ": 大破!\n"; //追加
}
・・・
}
if(AddLogStr.split("\n")[0]!=$('log').value.split("\n")[0]) AddLog(AddLogStr); //追加
game_frame.contentWindow.document.body.style.backgroundColor=gamebkcolor;
}

9名無しさん:2014/01/15(水) 00:11:10
ttp://jbbs.shitaraba.net/bbs/read.cgi/netgame/13241/1387640988/10
自分でもあるといいなと思ったので、やってみました。

[defaults.js]
適当なところに↓を追加。
pref("extensions.kancolletimer.display.ship-unlock-lv",5);

[libs.js]
if ( 5 <= ship_lv ){

var limit = KanColleTimerConfig.getInt('display.ship-unlock-lv');
if ( limit <= ship_lv ){
に変更。

[preferences.xul]
<preference id="pref-ship-num-free"
name="extensions.kancolletimer.display.ship-num-free" type="int"/>
の下に↓を追加。
<preference id="pref-ship-unlock-lv"
name="extensions.kancolletimer.display.ship-unlock-lv" type="int"/>

<hbox>
<label value="艦船数余裕"/>
<textbox preference="pref-ship-num-free" type="number" min="0"/>
<label value="以下"/>
</hbox>
の下に↓を追加。
<hbox>
<label value="ロックしていない艦のLvが"/>
<textbox preference="pref-ship-unlock-lv" type="number" min="0" style="width:2em;"/>
<label value="以上のときに警告する"/>
</hbox>

普段はデフォの5で運用し、五十鈴を改にしようとするときは12にしてみるとか、そんな感じでしょうか。

# 適当にship-unlock-lvにしちゃったけど、もう少しマシなのがありそう。
# ちなみに、うちでは艦船数余裕のtextboxでもwidthを同様に指定して使ってます。

10名無しさん:2014/01/15(水) 00:30:18
>>9
0にした時に警告を出さないようにするには
if ( limit <= ship_lv ){

if ( limit > 0 && limit <= ship_lv ){
に変更。

11名無しさん:2014/01/15(水) 16:58:21
大湊提督バージョンで、艦隊のところで未開放の艦隊を非表示にする対応をしてみました。

[libs.js]
function KanColleTimerMemberShip2FleetHandler(){
の中の、
let l = KanColleDatabase.memberDeck.list();
以降に↓を追加。

for ( let i = 0; i < 4; i++ ){
$("shipstatus-fleet-"+(i+1)).style.display = typeof l[i] == "undefined" ? "none" : "";
}

検証してないけど、yoshfujiさんバージョンでもこれでいけるかも?

12名無しさん:2014/01/25(土) 02:17:27
大湊提督版で、起動のたびにcheckboxをクリックして表示項目を切り替えるのが面倒になってきたので、自動化させてみました。

[defaults.js]
適当なところに↓を追加。
pref("extensions.kancolletimer.mainwindow.header-menu",'{"expandmenu":true,"info":true,"mission":true,"ndock":true,"kdock":false,"quest-list":true,"cond":true,"shipinfo":true,"log":true}');
pref("extensions.kancolletimer.sidebar.header-menu",'{"expandmenu":true,"info":true,"mission":true,"ndock":true,"kdock":false,"quest-list":true,"cond":true,"shipinfo":true,"log":true}');

[kancolletimer.js]
init: function(){
の上に↓を追加。
headers: { // checkbox: [ 非表示にする要素の配列 ]
"expandmenu":["expandmenu-1","expandmenu-2"],
"info":["basic-information"],
"mission":["group-mission"],
"ndock":["group-ndock"],
"kdock":["group-kdock"],
"quest-list":["quest-list-box"],
"cond":["group-cond"],
"shipinfo":["shipinfo-box"],
"log":["log"]
},
filename: (function(){ // メインウィンドウかサイドバーかの識別用
let tmp = location.href.split("?")[0].split("/");
return tmp[tmp.length-1].split(".")[0];
})(),
setHeader: function(){ // checkbox操作時に実行
let headers = this.headers;
let obj = {};

for(let key in headers) {
let flag = ($("chk-"+key).checked == true);
obj[key] = flag;
for(let j=0; j<headers[key].length; j++){
$(headers[key][j]).style.display = (flag ? "" : "none");
}
}

let str = JSON.stringify(obj);
KanColleTimerConfig.setUnichar(this.filename+".header-menu", str);
},
initHeader: function(){
let headers = this.headers;
let obj = JSON.parse(KanColleTimerConfig.getUnichar(this.filename+".header-menu"));
for(let key in obj) {
let flag = obj[key];
for(let j=0; j<headers[key].length; j++){
$("chk-"+key).checked = flag;
$(headers[key][j]).style.display = (flag ? "" : "none");
}
}
},

init: function(){
・・・
},
の内側、最後に↓を追加。
this.initHeader();

続きます。

13名無しさん:2014/01/25(土) 02:20:16
[mainwindow.xul/sidebar.xul]
<checkbox id="chk-expandmenu" あたりをばっさりと書き換え。

<checkbox id="chk-expandmenu" label="▼" checked='true' oncommand="KanColleTimer.setHeader();"/>
<menuitem oncommand="OpenShipList();"/>
</toolbar>
</toolbox>
<toolbox id="expandmenu-1" style="display:none;">
<hbox>
<checkbox id="chk-info" label="情報" checked='true' oncommand="KanColleTimer.setHeader();"/>
<checkbox id="chk-mission" label="遠征" checked='true' oncommand="KanColleTimer.setHeader();"/>
<checkbox id="chk-ndock" label="入渠" checked='true' oncommand="KanColleTimer.setHeader();"/>
<checkbox id="chk-kdock" label="建造" checked='false' oncommand="KanColleTimer.setHeader();"/>
</hbox>
</toolbox>
<toolbox id="expandmenu-2" style="display:none;">
<hbox>
<checkbox id="chk-quest-list" label="任務" checked='true' oncommand="KanColleTimer.setHeader();"/>
<checkbox id="chk-cond" label="艦隊" checked='true' oncommand="KanColleTimer.setHeader();"/>
<checkbox id="chk-shipinfo" label="艦船" checked='true' oncommand="KanColleTimer.setHeader();"/>
<checkbox id="chk-log" label="log" checked='true' oncommand="KanColleTimer.setHeader();"/>
</hbox>
</toolbox>

また、↓の全ての項目において、style属性で display:none; を設定。
id="basic-information"
id="group-mission"
id="group-ndock"
id="group-kdock"
id="quest-list-box"
id="group-cond"
id="log"
id="shipinfo-box"

# ウィンドウで開いた時に意図しないサイズで開いてしまうケースがあったので、最初は非表示にしておいて後からスクリプトで操作することに。

14大湊提督:2014/01/26(日) 21:57:33
>>12,13
これ取り込んでみたいんですが、
ライセンスは(オリジナルと同じ)MITで良いですか?
さすがに行数多いので確認です。
まあこういう掲示板なので真偽は取りにくいので、
返事はまったり待ちます。

1512-13:2014/01/26(日) 22:49:01
>>14
どうもです。権利うんぬんとかよく分かってませんが、基本的にご自由にという感じですね。

16名無しさん:2014/02/01(土) 14:06:27
遠征収支表で、時給のいい任務を見つけやすくするため、ソート表示できるようにしてみました。
ヘッダーをクリックすると、その資材の時給が良い順に表示するようになります。

[kancolletimer.js]
createMissionBalanceTable:function(){
・・・
},
を↓に差し替え。

createMissionBalanceTable:function(index){
let balance = KanColleData.mission_hourly_balance;
let rows = $('hourly_balance');
let array = [];
for( let i in balance ){
array.push({
"id" : i,
"name" : KanColleData.mission_name[i],
"balance" : balance[i],
"help" : KanColleData.mission_help[i],
});
}
if (typeof index == "number") {
array.sort(function(a,b){
let aa = a.balance[index];
let bb = b.balance[index];
return aa > bb ? -1 : 1;
});
}
while(rows.childNodes.length>1) {
rows.removeChild(rows.childNodes[1]);
}
for( let i=0; i<array.length; i++ ){
let row = CreateElement('row');
let name = array[i].name;
name = name.substring(0,7);
row.appendChild( CreateLabel( name ) );
for( let j=0; j<4; j++ ){
row.appendChild( CreateLabel(array[i].balance[j]) );
}
row.setAttribute("style","border-bottom: 1px solid gray;");
row.setAttribute("tooltiptext", array[i].help );
rows.appendChild( row );
}
},

[mainwindow.xul/sidebar.xul]
<label value="遠征名"/>
<label value="燃"/>
<label value="弾"/>
<label value="鋼"/>
<label value="ボ"/>
を↓に差し替え。
<label value="遠征名" onclick="KanColleTimer.createMissionBalanceTable();" style="cursor:pointer;"/>
<label value="燃" onclick="KanColleTimer.createMissionBalanceTable(0);" style="cursor:pointer;"/>
<label value="弾" onclick="KanColleTimer.createMissionBalanceTable(1);" style="cursor:pointer;"/>
<label value="鋼" onclick="KanColleTimer.createMissionBalanceTable(2);" style="cursor:pointer;"/>
<label value="ボ" onclick="KanColleTimer.createMissionBalanceTable(3);" style="cursor:pointer;"/>

# 自分用ということで、色々と手抜きしてます。ソート状態の保存とかもないしw

171kap:2014/02/05(水) 18:58:20
資源グラフに高速建造材、高速修復材、開発資材を追加してみました。
グラフとして見やすいように×10しています。
firefoxのプロファイルフォルダ/kancolletimer.dat/resourcehistoryを
リネーム、バックアップすることをおすすめします。

【対象】艦これタイマー for Firefox 0.24
【書き換えファイル】kancolletimer.jar>chrome/content/libs.js resourcegraph.js


[libs.js]
221行目あたりに追加

let constructionkit = api_data[4].api_value *10; // 高速建造材
let repairkit = api_data[5].api_value *10; // 高速修復材
let developmentkit = api_data[6].api_value *10; // 開発資材

228行目あたり (↑追加後)
変更前
last_data.steel!=steel || last_data.bauxite!=bauxite ){
変更後
last_data.steel!=steel || last_data.bauxite!=bauxite ||
last_data.constructionkit!=constructionkit ||
last_data.repairkit!=repairkit ||
last_data.developmentkit!=developmentkit ){

238行目あたり (↑追加後)
変更前
data.bauxite = bauxite;
変更後
data.bauxite = bauxite;
data.constructionkit = constructionkit;
data.repairkit = repairkit;
data.developmentkit = developmentkit;


[resourcegraph.js]
32行目あたり
変更前
cos.writeString("時刻,燃料,弾薬,鋼材,ボーキサイト\n");
変更後
cos.writeString("時刻,燃料,弾薬,鋼材,ボーキサイト,高速建造材,高速修復材,開発資材\n");

41行目あたり
変更前
d.bauxite+"\n";
変更後
d.bauxite+","+
d.constructionkit/10+","+
d.repairkit/10+","+
d.developmentkit/10+"\n";

238行目あたり (↑追加後)
変更前
"bauxite": "#e6a97a"
変更後
"bauxite": "#e6a97a",
"constructionkit": "#FF4F50",
"repairkit": "#00FF00",
"developmentkit": "#708090"

250行目あたり (↑追加後)
変更前
"bauxite": "ボーキサイト"
変更後
"bauxite": "ボーキサイト",
"constructionkit": "高速建造材X10",
"repairkit": "高速修復材X10",
"developmentkit": "開発資材X10"

181kap:2014/02/16(日) 14:03:50
chrome/content/下のテキスト変更→zipで固める→
zipのままアドオンマネージャに投げる→テスト
ができるようになります。

 [chrome.manifest]
変更前
locale kancolletimer ja-JP jar:chrome/kancolletimer.jar!/chrome/locale/ja-JP/
content kancolletimer jar:chrome/kancolletimer.jar!/chrome/content/
変更後
locale kancolletimer ja-JP chrome/chrome/locale/ja-JP/
content kancolletimer chrome/chrome/content/


プラグインの改造ではありませんが改造(試行錯誤)するときに便利なので。

191kap:2014/02/16(日) 21:22:04
コンディションでの 間宮点灯 戦意高揚 状態の時の色を追加しました。

【対象】艦これタイマー for Firefox 0.25
【書き換えファイル】kancolletimer.jar>chrome/content/libs.js mainwindows.css

[libs.js]
386行あたり // 第1〜第3艦隊のコンディション表示

変更前
}else if( data.api_cond<=29 ){
cond.setAttribute('cond','low');
}
変更後
}else if( data.api_cond<=29 ){
cond.setAttribute('cond','low');
}else if( data.api_cond<=39 ){
cond.setAttribute('cond','mamiya');
}else if( data.api_cond>=50 ){
cond.setAttribute('cond','kirakira');
}

[mainwindows.css]
33行あたり
追加
label[cond='mamiya'] {
background-color: #BFFFDF;
}
label[cond='kirakira'] {
background-color: #FFFFC0;
}

20名無しさん:2014/03/21(金) 16:02:43
すいません、質問です。
二つのバージョンの艦これタイマーを同時に使うことはできないでしょうか?

install.rdfのem:idというところをいじってみたら、二つ同時にインストールすることは出来たのですが、
一つしか起動させられないです。

どこかを書き換えて、二つ同時に起動させることはできないでしょうか?

21名無しさん:2014/04/30(水) 07:43:41
大湊提督版汎用タイマーに好みの時間を追加する方法
・hogehoge.xpiはzipファイルです.Linuxなどではそのまま展開できるでしょう.
 Windowsなどでは拡張子をxpiからzipに変えて展開します.
・展開すると3つのフォルダと5つのファイルがありますが,その中の「chrome」フォルダ内に
 kancolletimer.jarという圧縮ファイルがあるのでこれも展開します.
・すると,さらに「chrome」というフォルダが展開されます.
 その中に2つのフォルダがあり,そのうちの「content」フォルダ内にある
 mainwindow.xulとsidebar.xulが編集対象です.
 <menuitem label="15分" value="900" oncommand="KanColleTimer.setGeneralTimer(this.value);"/>
 と
 <menuitem label="30分" value="1800" oncommand="KanColleTimer.setGeneralTimer(this.value);"/>
 の間に
 <menuitem label="20分" value="1200" oncommand="KanColleTimer.setGeneralTimer(this.value);"/>
 を追加して,今までと逆の操作を行えば改変したxpiファイルが作成できます.

22名無しさん:2014/05/10(土) 09:47:26
アドオンバー(ステータスバー部分)に固定されてるアイコンを
オリジナルver0.33で非表示にする>>5の様に書き換えることはできないのでしょうか?
0.32と変わりすぎて何処をどう変えればいいのかいまいち理解できなくて・・・

23名無しさん:2014/07/07(月) 17:34:05
最新版で経験値の%が追加されたので、次Lvまでの必要経験値に書き換え
[ ]の数字の意味はlibs.jsの2442行目あたりに

対象バージョン:0.37
書き換えファイル:chrome / content / libs.js

135行目
変更前
cell = CreateListCell( data.api_exp[2] + "%" );
変更後
cell = CreateListCell( data.api_exp[1] );

228行目
変更前
cell = CreateListCell( obj.shipinfo.api_exp[2] + "%" );
変更後
cell = CreateListCell( obj.shipinfo.api_exp[1] );

不具合は起きてないから多分大丈夫…だと思う
当然%での表示は見えなくなる
クリックで切り替えられたり、マウスオーバーで見えるように出来ると便利なんだろうけど
私にそんな知識はない

24名無しさん:2014/07/07(月) 17:38:23
↑ミスです

× 書き換えファイル:chrome / content / libs.js
○ 書き換えファイル:chrome / content / shiplist.js

25名無しさん:2014/07/22(火) 01:18:47
>>22
自分も非表示にしたかったからやってみた

【書き換えファイル】kancolletimer.jar>chrome/overlay/overlaymenu.xul
82-89行目まで削除

アドオン事わからないのに削除しちゃってるけど以前のバージョンでも今のバージョンでも不具合はないよ
これからも色々かわるだろうから <!-- ステータスバー --> から </statusbar> まで消すって覚えとくと良いかも

26名無しさん:2014/08/09(土) 11:46:24
本家がyoshfuji版をベースにしてるということで、最新のyoshfuji版からマージして、
非表示にされてた艦隊をサイドバーでだけ表示させ、
同じく非表示にされてた艦船をウィンドウでだけ表示するようにしてる。

更新作業めんどいけど、使いやすいので満足w

27名無しさん:2014/08/11(月) 16:46:41
つぶやく機能を自分なりに改善してみました。
なお、本家ver0.40をいじりました。

[sstweet.js]
data = IO_SERVICE.newURI(data, null, null);
の下に
wbp.progressListener = {
onStateChange: function(aWebProgress, aRequest, aStateFlags, aStatus) {
const STATE_STOP = Components.interfaces.nsIWebProgressListener.STATE_STOP;
if (aStateFlags & STATE_STOP) {
let text = $('text').value;
Twitter.updateStatusWithMedia(text, File(file.path));
}
}
};
を追加。

wbp.saveURI(data, null, null, null, null, file, null);
の下の

setTimeout( function(){
let text = $('text').value;
Twitter.updateStatusWithMedia(text, File(file.path));
//Twitter.updateStatus(text);
setTimeout( function(){ $('send-button').disabled = false; }, 5000 );
}, 2000 );

は削除またはコメントアウト。

[twitter.js]
AlertPrompt( "スクリーンショットのつぶやきに失敗しました。", "艦これタイマー" );
の下に
$('send-button').disabled = false;
を追加。

ボタン有効化はつぶやきに失敗した時だけでいいかなと、そのへんもいじってあります。

28名無しさん:2014/08/13(水) 17:35:33
本家verのツールバーの数値にカンマを入れたくなったので、いじってみました。

libs.jsのFormatCommas関数をoverlay.js内に移植して、
elem = document.getElementById('kancolletimer-'+resnames[k]);
if( elem ){
elem.value = FormatCommas(v); //←
}
みたいな感じで実装すればおkです。

29名無しさん:2014/08/17(日) 17:26:45
第1艦隊情報や第2〜4艦隊情報及びコンディションで数値50以上(キラ状態)の場合に数値を光らせる

[libs.js]
762行目辺りを変更
if( data.api_cond<=19 ){
label.setAttribute('cond', 'very-low');
}else if( data.api_cond<=29 ){
label.setAttribute('cond','low');
}

if( data.api_cond<=19 ){
label.setAttribute('cond', 'very-low');
}else if( data.api_cond<=29 ){
label.setAttribute('cond','low');
}else if( data.api_cond>=50 ){
label.setAttribute('cond','kira');
}

852行目辺りを変更
if( data.api_cond<=19 ){
cond.setAttribute('cond','very-low');
}else if( data.api_cond<=29 ){
cond.setAttribute('cond','low');
}

if( data.api_cond<=19 ){
cond.setAttribute('cond','very-low');
}else if( data.api_cond<=29 ){
cond.setAttribute('cond','low');
}else if( data.api_cond>=50 ){
cond.setAttribute('cond','kira');
}

[mainwindow.css]
33行目辺りに追記

label[cond='kira'] {
background-color: #ffd700;
}

30名無しさん:2014/08/19(火) 03:30:05
開発した装備とそのレシピをログ出力するようにしてみました。

----------------------------------------------------------

[httpobserve.jsm]
.prepare(data);
を含む任意の行の次に↓を挿入。
} else if (url.match(/kcsapi\/api_req_kousyou\/createitem/)) {
this.reqKousyouCreateItem.prepare(data);

----------------------------------------------------------

[libs.js]
末尾に↓を挿入。
function KanColleTimerCreateItemHandler(){
let req = KanColleDatabase.reqKousyouCreateItem.get_req();
let recipe = [ req.api_item1, req.api_item2, req.api_item3, req.api_item4 ];
let data = KanColleDatabase.reqKousyouCreateItem.get();
let result;
if(parseInt(data.api_create_flag,10)){
let itemtype = KanColleDatabase.masterSlotitem.get(data.api_slot_item.api_slotitem_id);
result = itemtype?itemtype.api_name:"?";
} else {
result = "失敗";
}
AddLog(recipe.join("/")+"->"+result+"\n");
}

----------------------------------------------------------

[kancolletimer.js]
init: function(){
・・・
},
の最後に
KanColleDatabase.reqKousyouCreateItem.appendCallback(KanColleTimerCreateItemHandler);
を挿入。
destroy: function(){
の直後に
KanColleDatabase.reqKousyouCreateItem.removeCallback(KanColleTimerCreateItemHandler);
を挿入。

----------------------------------------------------------

たとえば、20/60/10/100で流星改が出た時は、

20/60/10/100->流星改

と出力されます。



# twitterでつぶやく時などに活用できるかなーと。

31名無しさん:2014/08/20(水) 23:24:33
派生版でイベ海域出撃に対応してみました。
E-6は行ったこと無いので、E-5までの情報を元にしています。
ちと長いので分けて投下します。

----------------------------------------------------------

[httpobserve.jsm]
this.reqSortieBattle.update(data.api_data);
の下に↓を追加。
} else if (url.match(/kcsapi\/api_req_combined_battle\/(air)?battle/)) {
this.reqCombinedBattle.update(data.api_data);
} else if (url.match(/kcsapi\/api_req_combined_battle\/(midnight_battle|sp_midnight)/)) {
this.reqCombinedBattleMidnightBattle.update(data.api_data);

----------------------------------------------------------

this.reqBattleMidnightBattle = new KanColleSimpleDB();
の下に↓を追加。
this.reqCombinedBattle = new KanColleSimpleDB();
this.reqCombinedBattleMidnightBattle = new KanColleSimpleDB();

----------------------------------------------------------

this.reqBattleMidnightBattle = null;
の上に↓を追加。
this.reqCombinedBattleMidnightBattle = null;
this.reqCombinedBattle = null;

続きます。

32名無しさん:2014/08/20(水) 23:25:54
続き

[libs.js]

_update_battle: function(data, damages) {
の上に↓を追加。
_update_battle_comb: function(data, damages) {
let deckid = data.api_deck_id;
let damage;
let s = '';

if (!deckid && data.api_dock_id)
deckid = data.api_dock_id;

deckid = parseInt(deckid) + 1;

damage = this._reduce_damage.apply(this, damages);

for (let i = 0; i < damage.length; i++) {
let cur;
let ratio;

if (isNaN(damage[i]) || damage[i] < 0 ||
data.api_nowhps_combined[i] === undefined || data.api_nowhps_combined[i] < 0 ||
data.api_maxhps_combined[i] === undefined || data.api_maxhps_combined[i] < 0)
continue;

cur = data.api_nowhps_combined[i] - damage[i];
if (cur < 0)
cur = 0;

ratio = cur / data.api_maxhps_combined[i];

s += '#' + i + ': ' + cur + '/' + data.api_maxhps_combined[i] + ' = ' + (Math.floor(ratio * 10000) / 10000);

if (ratio >= 1) {
s += '';
} else if (ratio > 0.75) {
s += ' [微損]';
} else if (ratio > 0.50) {
s += ' [小破]';
} else if (ratio > 0.25) {
s += ' [中破]';
} else if (ratio > 0) {
s += ' [大破]';
} else {
s += ' [撃沈]';
}
s += '\n';

if (i >= 1 && i <= 6 && damage[i]) {
let hpstyle = this._ship_color(ratio);
if (hpstyle) {
SetStyleProperty($('shipstatus-' + deckid + '-' + (i)), 'text-decoration', 'line-through');
SetStyleProperty($('shipstatus-' + deckid + '-' + (i)), '-moz-text-decoration-style', 'double');
SetStyleProperty($('shipstatus-' + deckid + '-' + (i)), '-moz-text-decoration-color', hpstyle);
} else {
SetStyleProperty($('shipstatus-' + deckid + '-' + (i)), 'text-decoration', null);
SetStyleProperty($('shipstatus-' + deckid + '-' + (i)), '-moz-text-decoration-style', null);
SetStyleProperty($('shipstatus-' + deckid + '-' + (i)), '-moz-text-decoration-color', null);
}
}
}

debugprint(s);
},

続きます。

33名無しさん:2014/08/20(水) 23:27:18
続き

[libs.js]

},
};
KanColleTimerFleetInfo.__proto__ = __KanColleTimerPanel;
の上に↓を追加。
reqCombinedBattle: function() {
let data = KanColleDatabase.reqCombinedBattle.get();
if (!data) return;

let damages = [], damages_comb = [];

if (data.api_kouku != null && data.api_kouku.api_stage3 != null)
damages.push(this._parse_raibak(data.api_kouku.api_stage3));
if (data.api_kouku != null && data.api_kouku.api_stage3_combined != null)
damages_comb.push(this._parse_raibak(data.api_kouku.api_stage3_combined));

if (data.api_kouku2 != null && data.api_kouku2.api_stage3 != null)
damages.push(this._parse_raibak(data.api_kouku2.api_stage3));
if (data.api_kouku2 != null && data.api_kouku2.api_stage3_combined != null)
damages_comb.push(this._parse_raibak(data.api_kouku2.api_stage3_combined));

if (data.api_opening_atack != null)
damages_comb.push(this._parse_raibak(data.api_opening_atack));

if (data.api_hougeki1 != null)
damages_comb.push(this._parse_hourai(data.api_hougeki1));

if (data.api_raigeki != null)
damages_comb.push(this._parse_raibak(data.api_raigeki));

if (data.api_hougeki2 != null)
damages.push(this._parse_hourai(data.api_hougeki2));

if (data.api_hougeki3 != null)
damages.push(this._parse_hourai(data.api_hougeki3));

this._update_battle(data, damages);
this._update_battle_comb(data, damages_comb);
},
reqCombinedBattleMidnightBattle: function(){
let data = KanColleDatabase.reqCombinedBattleMidnightBattle.get(), damages_comb = [];
if (!data) return;

if (data.api_hougeki != null)
damages_comb.push(this._parse_hourai(data.api_hougeki));

this._update_battle_comb(data, damages_comb);
},

以上、連投失礼しました。

34名無しさん:2014/08/20(水) 23:50:02
書き忘れ。
コードそのものは長いけど、ほんの少し変えただけのものばかりです。
そういうわけで、煮るなり焼くなり好きなようにどうぞ。

# こういう場に書く以上、全てMITライセンスでいい気がしてます。

35名無しさん:2014/08/23(土) 21:35:09
ttp://jbbs.shitaraba.net/bbs/read.cgi/netgame/13241/1387467343/468
入渠直後に十字アイコンが表示されない件。

ttps://bitbucket.org/amano_rox/kancolle-timer-for-firefox/src/630e3a1cc760541c8bbf4cb4becba41289dbd7be/chrome/content/libs.js?at=default#cl-1095/
libs.jsの1095行目あたりに
memberNdock: 'deck',
とか入れたら解決っぽい?

36名無しさん:2014/10/26(日) 07:38:49
本家版0.46の建造・ドロップ艦娘一覧で500件を超える情報がある時に右クリックから削除すると直近500件以外のデータが消える件の修正案です。

droplist.js 84行目あたりから
createTable: function(){
let list = $( 'dropship-list' );
this.clearListBox( list );

let n = this.allships.length;

let no = 0;
for( let i = n - 500 > 0 ? n - 500 : 0; i < n; i++ ){
let ship = this.allships[i];

let elem = CreateElement( 'listitem' );
let style = no != 0 && (no % 10) == 0 ? "border-top: 1px solid gray;" : "";
elem.appendChild( CreateListCell( ship.area == "Created" ? "建造" : ship.area ) );
(略)
list.appendChild( elem );
no++;
}
$('number-of-ships').setAttribute('label', no + '/'+n+'人を表示しています');
},

# プルリクエストってどうやるんだろう?

37名無しさん:2014/12/07(日) 08:17:54
サイドバーを左側表示から右側表示にする方法はどのようにすればいいのでしょうか。
手順を記述してもらえるとありがたいです。

38名無しさん:2014/12/10(水) 20:55:29
ttp://jbbs.shitaraba.net/bbs/read.cgi/netgame/13241/1387467343/614
を見て思いついたので、戦闘結果をログ出力させてみました。

[libs.js]

reqSortieBattleResult: function() {
・・・
},

の最後に↓を挿入。

try{
let data = KanColleDatabase.reqSortieBattleResult.get();
let str = '出撃: ' + data.api_quest_name + ' > ' + data.api_enemy_info.api_deck_name + ' 結果: ' + data.api_win_rank + '\n';
AddLog(str);
}catch(e){
debugprint(e);
}

出力例
出撃: 鎮守府正面海域 > 敵偵察艦 結果: S

# 大破艦が出た時に同時に出力させることもできそう。

39名無しさん:2015/01/17(土) 22:12:41
ver0.50.2の資源グラフでバケツのチェックを外した時に表示がおかしくなる件の修正案です。

ttps://bitbucket.org/amano_rox/kancolle-timer-for-firefox/src/5cdd1ef75772380a9c4fbd3204ae8db05431f8cf/chrome/content/resourcegraph.js?at=default#cl-307
- svg.append( "g" )
+ if( $( "bucket" ).hasAttribute( "checked" ) ) svg.append( "g" )

40名無しさん:2015/03/03(火) 23:43:11
ver0.52がPalemoonで保存できない件の修正案です。
単純にDownloads.fetchが使えるかどうかで分岐させてるだけですが、とりあえずはこれで動きました。

function SaveUrlToFile( url, file )
{
if( 'function' === typeof Downloads.fetch ){
Task.spawn(function () {
yield Downloads.fetch( url, file );
}).then(null, Components.utils.reportError);
} else {
let wbp = Components.classes['@mozilla.org/embedding/browser/nsWebBrowserPersist;1']
.createInstance(Components.interfaces.nsIWebBrowserPersist);
wbp.saveURI(url, null, null, null, null, file, null);
}
}

41名無しさん:2015/03/25(水) 12:25:37
索敵値合計を2-5式に変更するにはどの辺りをいじればいいですか?

42名無しさん:2015/04/01(水) 23:28:49
>>41
えっと、本家版での話ですよね?

めんどいので試してはいませんが、
派生版のlibs.jsのKanColleTimerFleetInfo.update.deckからfleet_searchなんちゃらとか関連する関数とかを引っ張ってきて
本家版のKanColleTimerFleetInfo._setFleetOrganizationにマージさせる感じですかね?

43名無しさん:2015/04/05(日) 22:45:14
ttp://jbbs.shitaraba.net/bbs/read.cgi/netgame/13241/1387467343/679
の件について、>>40で対応策書いてみましたが、もう少し短くできたので書いておきます。

function SaveUrlToFile( url, file/*, callback*/ )
{
Task.spawn(function () {
let Services = Cu.import("resource://gre/modules/Services.jsm").Services;
if (Services.appinfo.name=="Pale Moon") {
yield Downloads.simpleDownload( url, file );
} else {
yield Downloads.fetch( url, file );
}
//callback();
}).then(null, Components.utils.reportError);
}

ちなみに、コメントアウトさせてあるcallbackは、保存後に実行させたい処理があるので個人的に活用しています。

44名無しさん:2015/04/29(水) 21:02:37
艦これタイマー0.53.3+Palemoonにて、スクリーンキャプチャが機能しませんでした。
調べてみたところ、
ttps://bitbucket.org/amano_rox/kancolle-timer-for-firefox/commits/d8c7347618d61237326d67547202d9056e553d07#Lchrome/content/framescripts/capture-script.jsT7
「rect.x」「rect.y」ともにundefinedとなっていました。
「rect.x」を「rect.left」に、次の行の「rect.y」を「rect.top」に差し替えたら正常に機能しました。

なお、派生版にも同様の問題がありますので修正が必要かと思われます。

45名無しさん:2015/08/27(木) 03:07:17
ここに書き込もとしたら文字数多すぎと怒られたのでアプロダに
遠征収支表に北方航路海上護衛を追加するついでに細々変更。
(艦隊これくしょん -艦これ- 攻略 Wiki*の時給理論値早見表を持ってきてるっぽいのでwikiのデータにしました(数値は切り捨てだったり四捨五入だったりしたので四捨五入に統一))
ソースほぼそのままなので一応パスかけました

データ変更.txt
ttp://www1.axfc.net/u/3524405.txt
PASS:Timer

KanColle Timer for Firefox / chrome / content / data.js
126行目から347行目を削除して書き換え

変更内容:
3.警備任務…弾薬収入を変更(54→63)
4.対潜警戒任務…燃料収入を変更(-31→-33)
5.海上護衛任務…燃料収入を変更(111→110)
6.防空射撃演習…弾薬収入を変更(-24→-18)
7.観艦式予行…燃料収入を変更(-42→-45)
9.タンカー護衛任務…燃料収入を変更(79→80)
10.強行偵察任務…燃料収入を変更(-12→-13)
12.資源輸送任務…燃料収入を変更(2→3)
13.鼠輸送作戦…弾薬収入を変更(62→65)
15.囮機動部隊支援作戦…燃料収入を変更(-6→-5)
17.敵地偵察作戦…燃料収入を変更(57→53)、弾薬収入を変更(26→27)
18.航空機輸送作戦…弾薬収入を変更(-7→-6)
19.北号作戦…弾薬収入を変更(-19→-18)
21.北方鼠輸送作戦…弾薬収入を変更(92→93)
22.艦隊演習…燃料収入を変更(0→-33)、弾薬収入を変更(3→-36)
23.航空戦艦運用演習…undefinedだったのでデータを追加
24.北方航路海上護衛…なかったので追加
25.通商破壊作戦…燃料収入を変更(16→21)、鋼材収入を変更(7→13)
35.MO作戦…弾薬収入を変更(-23→-22)
37.東京急行…弾薬収入を変更(111→102)
38.東京急行(弐)…弾薬収入を変更(-32→-33)、鋼材収入を変更(68→69)
39.遠洋潜水艦作戦…燃料収入を変更(4→-2)、鋼材収入を変更(-2→10)、ボーキ収入を変更(10→0)
40.水上機前線輸送…ボーキ収入を変更(14→15)

46名無しさん:2015/08/28(金) 11:44:16
※45
取り込んでもらえたようなので削除しました。

47名無しさん:2016/03/07(月) 01:31:44
改修工廠稼働日程のデータを2016/3/6時点の情報に更新してみました。
ttps://docs.google.com/spreadsheets/d/1faF66SMafvSYf37fia4MZICAz3eljxK4sfKpVDh-Fyk/edit?usp=sharing

艦隊これくしょん -艦これ- 攻略Wiki(ttp://wikiwiki.jp/kancolle/) に基き作成しました。

(艦これタイマーへの反映手順)
1. Firefoxを終了する
2. [Firefoxのプロファイルフォルダ]/extensions/kancolletime2@miku39.jp/chrome/kancolletimer.jar を作業用ディレクトリにコピーする
3. コピーしたファイルの拡張子をzipに変更して解凍する
4. 展開されたファイルの中の chrome/content/data/powerup.tsv をUTF-8文字コードに対応したテキストエディタで開く
5. ファイルの内容を上記のリンクの内容で置き換える
6. ファイルを保存して閉じる
7. 作業用ディレクトリに移動し、3.で展開されたファイル(chromeフォルダ)をzip形式で圧縮する
8. ファイル名をkancolletimer.jarに変更する
9. 8.のファイルでコピー元のファイルを置き換える
10. Firefoxを起動する

48名無しさん:2016/03/27(日) 15:05:29
艦これタイマーからミュート化ができないかなーと色々弄ってたら
gBrowser.visibleTabs で開いてるタブの配列が取れて、その中の要素tabに対して
tab.linkedBrowser.documentURI.specIgnoringRef で URLが取れて
ミュート化する時は
tab.linkedBrowser.mute()
解除時は
tab.linkedBrowser.unmute()

タブのミュートアイコンはtab.mutedで判定して付け外しはtab.setAttribute("muted",true) / tab.removeAttribute("muted")
xul書ける人おらんかな……(チラチラ

49yoshfuji:2016/03/28(月) 01:10:50
>>48
情報ありがとうございます。参考になります。

5048:2016/03/28(月) 01:54:11
やっぱり自分で(超適当に)実装してみた
ttps://gist.github.com/9bb83e26db82f7ee867e

xulよりjsで手間取ってもうたorz


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板