したらば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で良いですか?
さすがに行数多いので確認です。
まあこういう掲示板なので真偽は取りにくいので、
返事はまったり待ちます。

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


新着レスの表示


名前: E-mail(省略可)

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

■ したらば のおすすめアイテム ■

小林製薬の栄養補助食品 熟成黒にんにく 黒酢もろみ 約30日分 90粒 - 小林製薬


この欄のアイテムは掲示板管理メニューから自由に変更可能です。


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