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

戦国IXA ツールスレPart49

1名無しさん:2024/02/13(火) 19:30:54 ID:guo7Kikc
■前スレ
戦国IXA ツールスレPart48
https://jbbs.shitaraba.net/bbs/read.cgi/netgame/15829/1674020414/l50
荒らしは管理人が即出禁にするので注意

2名無しさん:2024/02/13(火) 22:23:51 ID:AMW9diso
予備用
https://ux.getuploader.com/1031m/

歴史を感じる用
https://ux.getuploader.com/ixa_kaizou/

3名無しさん:2024/02/19(月) 19:11:45 ID:HZcUXXB.
//合成専用
"特.虚空ノ導.SSS": ["..","..","..","特.虚空ノ導.SSS",".."],
"攻.破邪後輝.SS": ["..","..","..","攻.飛龍衝天.SS",".."],
"攻.飛龍衝天.SS": ["..","..","..","攻.飛龍衝天.SS",".."],
"攻.閃裂討鬼.SS": ["..","..","..","攻.閃裂討鬼.SS",".."],
"防.永世ノ天隻.SS": ["..","..","..","防.永世ノ天隻.SS",".."],
"防.万里嵐壁.SS": ["..","..","..","防.万里嵐壁.SS",".."],

//2024.2
"特.霊妙秘剣.A":["特.霊妙秘剣.A","特.霊妙秘剣.A","特.終幕ノ断刀.A","特.戦陣 剣舞.A","攻.鬼神ノ戦域.A"],
"防.凜武艶姫.A":["防.凜武艶姫.A","防.凜武艶姫.A","防.凜武艶姫.A","防.戦陣 無縫.A","防.天弓星宿陣.SS"],
"特.絶技兵術.S":["特.絶技兵術.S","特.絶技兵術.S","特.活人剣.A","特.月詠ノ覇威.SS","特.戦陣 吟詠.A"],
"特.炎城士魂.S":["防.三千世界神将.SS","特.国堅大神.SS","特.建御雷神ノ閃光.SS","特.四天轟雷.SS","防.黄泉醜女ノ屍兵.SS"],
"攻.八虎筆頭.C":["攻.八虎筆頭.C","攻.八虎筆頭.C","攻.八虎筆頭.C","攻.一千烈刃.C","攻.失意ノ千羽鶴.C"],
"防.廻将一夢.C":["防.廻将一夢.C","防.廻将一夢.C","防.廻将一夢.C","防.不屈ノ絆.C","防.閻魔ノ副将.C"],
"攻.貴門ノ加護.C":["攻.貴門ノ加護.C","攻.貴門ノ加護.C","攻.貴門ノ加護.C","攻.荒波独行.C","攻.班寅集.B"],

4名無しさん:2024/02/20(火) 08:26:34 ID:WETUeVh2
ありがとうございますありがとうございます

5名無しさん:2024/02/20(火) 15:32:21 ID:4SYpZ3E6
>>3 有り難うございます。

前スレ>>863-864のエラーが私も出ており
「スキルテーブルの途中に変な場所に改行がありそこを修正したらエラーが出なくなりました。」
の箇所がどこだろう?と思ってずっと悩んでおります。
とりあえずオブジェクトキーの重複は見つけました。2024年2月分を取り込んだ後の1895〜1896行目辺り
"防.讃歌航路.D":["防.兵器布陣.E","防.蒼刃ノ輔曳.D","防.讃歌航路.D","防.不退ノ防戦.B","防.常勝の采配.B"],
"防.讃歌航路.D":["防.兵器布陣.E","防.蒼刃ノ輔曳.D","防.讃歌航路.D","防.不退ノ防戦.B","防.常勝の采配.B"],
参考までに私はコメントが有効だと有り難いのでスキルテーブルファイルは「JSON with Comments(.jsonc)」に変更してmanifest.json内のファイル名も切り替えています。

6名無しさん:2024/02/20(火) 15:44:36 ID:4SYpZ3E6
エラーが解消されましたので手順をお知らせします。
1.>>5で示したオブエクトキーの重複を無くす(片方の行を削除する)。
2.ixa-skill_table.jsonc上でウインドウ右下の言語モードのプルダウンで
 「JSON with Comments」を選び、ファイルの拡張子も.json5から.jsoncに変更する。
3.manifest.json内の
  "contents/ixa-skill_table.json5",
  を
  "contents/ixa-skill_table.jsonc",
  に変更する。
4.inject_moko.js内の
  injectionJSON(chrome.runtime.getURL('/contents/ixa-skill_table.json5'), 'mokoSkillCandidateData');
  を
  injectionJSON(chrome.runtime.getURL('/contents/ixa-skill_table.jsonc'), 'mokoSkillCandidateData');
  に変更する。
コメント有効なJSON形式に切り替えるかどうかはお好みですのでそうしたい方はどうぞ的な話題です。

7名無しさん:2024/02/20(火) 19:46:43 ID:o0bxJOiU
>>6
json5もコメント有効ですよ

8名無しさん:2024/02/20(火) 20:04:46 ID:o0bxJOiU
追記:
もしjson5のコードハイライトを入れてないなら
vscodeでCtrl+Shift+xでマーケットプレイス開いて
「json5 syntax」で検索して上の方に出てきたやつを入れれば良いです

9名無しさん:2024/02/21(水) 11:21:50 ID:HZcUXXB.
//Drifters 漂流合戦記コラボ
"攻.命だけ置いてけ.A":["攻.命だけ置いてけ.A","攻.命だけ置いてけ.A","攻.戦陣 召雷.A","攻.戦陣 召雷.A","特.戦陣 破軍.A"],
"防.負けてらんない.A":["防.負けてらんない.A","防.負けてらんない.A","防.戦陣 凪.A","防.戦陣 凪.A","特.戦陣 破軍.A"],
"特.我こそ絶対悪よ.A":["..","..","..","..",".."],
"攻.ワレ突撃ス.C":["攻.ワレ突撃ス.C","攻.ワレ突撃ス.C","攻.ワレ突撃ス.C","攻.風将飛剣.C","攻.鉄騎花麗.C"],
"攻.みんな灰になれ.C":["攻.みんな灰になれ.C","攻.みんな灰になれ.C","攻.みんな灰になれ.C","攻.清貧ノ悪源太.B","攻.孤炎.A"],
"防.甘っちょろいなぁ.C":["防.甘っちょろいなぁ.C","防.甘っちょろいなぁ.C","防.甘っちょろいなぁ.C","防.虎眼慧明.C","防.護城ノ義士.C"],
"攻.ただただ死ね.C":["攻.ただただ死ね.C","攻.ただただ死ね.C","攻.ただただ死ね.C","攻.強虔ノ使徒.C","攻.戦鬼侵軍.B"],
"特.あの虚気を殺す.C":["特.あの虚気を殺す.C","特.あの虚気を殺す.C","特.あの虚気を殺す.C","特.虎切刀.C","特.争鶴ノ囀り.C"],

10名無しさん:2024/02/21(水) 11:45:20 ID:4SYpZ3E6
>>7
すみません着色してくれてハイライトしてくれて有り難いので、の意味でjsoncに切り替えさせていただきました。
表現が足らず失礼しました。

11名無しさん:2024/02/21(水) 23:53:58 ID:o0bxJOiU
>>10
はい、なのでjson5もvscodeの拡張を入れれば着色するという意味です

12名無しさん:2024/02/22(木) 17:28:35 ID:cox0sqTE
市の取引相場についての質問です

施設:市の取引相場75%+4%(4%は位階分なのかな?)と表示されているのですが兵士一括訓練ボタンをクリック後、兵人数が赤字になる数(取引が必要になる数)まで入力し【取引後に訓練開始】ボタンを押した次の画面で市取引相場が75%表示のままになっています。位階分の4%を反映させるにはどのように修正したらよろしいでしょうか

13名無しさん:2024/02/22(木) 22:56:28 ID:o0bxJOiU
>>12
まずixa-moko.user.jsに前スレの位階情報取得Functionが入ってることが前提です
ちょっと変えているかもしれないので一応載せておきます

// 位階の情報を取得
function userBonus() {
$.ajax({
type: 'get',
url: '/user/',
beforeSend: xrwStatusText,
}).then(function(html) {
var bonus = {
loginmoney: 0,
constructtime: 0,
resourcebonus: 0,
createunit: 0,
hprecover: 0,
dungeon: 0,
commission: 0,
possesscard: 0,
deckcost: 0,
selfconfcost: 0,
assaultcost: 0,
constructreserve: 0,
fame: 0,
directdeploy: 0,
defformcost: 0,
resourcecount: 0,
marketprice: 0,
addcardtrade: 0,
autoreplenish: false,
unionrankup: 0,
unionaddskill: 0,
unionexp: 0,
lotteryright: 0,
autorevive: false,
}
var $ul = $(html).find('ul#current_bonus_texts');
if ($(html).find('div.time').text().indexOf('まで有効') != -1) {
bonus.loginmoney = parseInt($ul.find('li:contains("毎日ログイン")').text().match(/\d+/));
bonus.constructtime = parseInt($ul.find('li:contains("建設時間")').text().match(/\d+/));
bonus.resourcebonus = parseInt($ul.find('li:contains("資源生産量")').text().match(/\d+/));
bonus.createunit = parseInt($ul.find('li:contains("訓練時間")').text().match(/\d+/));
bonus.hprecover = parseInt($ul.find('li:contains("HP回復時間")').text().match(/\d+/));
bonus.dungeon = parseInt($ul.find('li:contains("秘境探索時間")').text().match(/\d+/));
bonus.commission = parseInt($ul.find('li:contains("取引手数料")').text().match(/\d+/));
bonus.possesscard = parseInt($ul.find('li:contains("カード所持枚数")').text().match(/\d+/));
bonus.deckcost = parseFloat($ul.find('li:contains("デッキコスト上限")').text().match(/\d+\.?\d?/));
bonus.selfconfcost = parseFloat($ul.find('li:contains("自部隊同時攻撃最大コスト")').text().match(/\d+\.?\d?/));
bonus.assaultcost = parseFloat($ul.find('li:contains("強襲専用部隊コスト上限")').text().match(/\d+\.?\d?/));
bonus.constructreserve = parseInt($ul.find('li:contains("建設予約数")').text().match(/\d+/));
bonus.fame = parseInt($ul.find('li:contains("名声上限値")').text().match(/\d+/));
bonus.directdeploy = parseFloat($ul.find('li:contains("城配置部隊コスト")').text().match(/\d+\.?\d?/));
bonus.defformcost = parseFloat($ul.find('li:contains("本丸防御陣形編成コスト")').text().match(/\d+\.?\d?/));
bonus.resourcecount = parseInt($ul.find('li:contains("蔵容量")').text().match(/\d+/));
bonus.marketprice = parseInt($ul.find('li:contains("市での取引相場")').text().match(/\d+/));
bonus.addcardtrade = parseInt($ul.find('li:contains("カード取引可能枚数")').text().match(/\d+/));
bonus.autoreplenish = true;
bonus.unionrankup = parseFloat($ul.find('li:contains("ランクアップ合成成功確率")').text().match(/\d+\.?\d?/));
bonus.unionaddskill = parseFloat($ul.find('li:contains("スキル追加合成成功確率")').text().match(/\d+\.?\d?/));
bonus.unionexp = parseFloat($ul.find('li:contains("経験値付与合成効果")').text().match(/\d+\.?\d?/));
bonus.lotteryright = parseInt($ul.find('li:contains("取引落札抽選権利の増加")').text().match(/\d+/));
bonus.autorevive = true;
}
setStorage('ixamoko_userbonus', bonus);
}, null);
}

(続く 1/2)

14名無しさん:2024/02/22(木) 22:57:36 ID:o0bxJOiU
それでixa-training.user.jsの以下を変更です

// . getMarket
getMarket: function () {
var rates = [0, 0.40, 0.43, 0.46, 0.49, 0.52, 0.55, 0.60, 0.65, 0.70, 0.75],
list = Util.getFacility('市'),
market;
if (list.length === 0) {
return null;
}
list.sort(function (a, b) {
return (b.lv > a.lv);
});
+ var sKey = ownerMode ? 'zs_' : '',
+ bonus = JSON.parse(localStorage.getItem(sKey + 'ixamoko_userbonus')) || {};
- list[0].rate = rates[list[0].lv];
+ list[0].rate = rates[list[0].lv] + ((bonus.marketprice || 0) / 100);
return list[0];
},

(終わり 2/2)

15名無しさん:2024/02/22(木) 23:03:37 ID:o0bxJOiU
>>14
あ、一行{}の位置を間違えたかもです
位階が取得できてたら関係ない部分ですが
(誤) bonus = JSON.parse(localStorage.getItem(sKey + 'ixamoko_userbonus')) || {};
(正) bonus = JSON.parse(localStorage.getItem(sKey + 'ixamoko_userbonus') || {});

16名無しさん:2024/02/23(金) 12:03:40 ID:cox0sqTE
>>15
o0bxJOiU さん
位階が反映されるようになりました。ありがとうございます。

17名無しさん:2024/02/23(金) 16:16:27 ID:m7mm72pw
moko設定→全般1で舞台が26章にログインしている状況なのですが、同じ症状の方いますか?改善方法教えて頂けると助かります。
26章のデータを取得しているせいで地図画面で〇〇家領内をクリックしても26章の大殿が表示されてしまいます。
ひと通り27章対応にして、忘れがちな前スレ975の下記修正も済。前スレ805を前のやつに戻しても改善せずです。
※ちなみにmeraでも同じ症状出ています。

■ixa-login.user.js
 ②var chapter = $(this).find('span.otono_sm:first img').attr('src')?.match(/_otono_s(\d+)_\d+\.png/)[1] || '26';
  の末尾の値を'27'に変更して
  var chapter = $(this).find('span.otono_sm:first img').attr('src')?.match(/_otono_s(\d+)_\d+\.png/)[1] || '27';
  にする。

18名無しさん:2024/02/23(金) 16:41:04 ID:c4MPCvWs
いつもありがとうございます。いつからか分かりませんが、本城主、影城主を切り替えても、時間リセットボタンの左、セッションタイムアウトまでが03:00:00にならなくなりました。
どこかおかしなところ触ったのでしょうか?

19名無しさん:2024/02/23(金) 17:56:35 ID:o0bxJOiU
>>17
いったんローカルストレージを全クリアしてみてはどうでしょうか?
一部クリアだとログインデータはクリアされないので、全クリアしないとだと思います

20名無しさん:2024/02/23(金) 18:00:49 ID:o0bxJOiU
>>18
前スレ>>925は試しましたか?

21名無しさん:2024/02/23(金) 20:29:41 ID:MFBmZZJY
>>20さん
ありがとうございます。

22名無しさん:2024/02/24(土) 00:27:27 ID:m7mm72pw
>>19 書き忘れましたが、全クリアーでもだめで困ってます。合戦後にでも見直してみます。

23名無しさん:2024/02/24(土) 01:39:29 ID:o0bxJOiU
>>22
前スレ>>805は試しましたか?

24名無しさん:2024/02/24(土) 20:37:14 ID:HZcUXXB.
//Drifters 漂流合戦記コラボ
"攻.命だけ置いてけ.A":["攻.命だけ置いてけ.A","攻.命だけ置いてけ.A","攻.戦陣 召雷.A","攻.戦陣 召雷.A","特.戦陣 破軍.A"],
"防.負けてらんない.A":["防.負けてらんない.A","防.負けてらんない.A","防.戦陣 凪.A","防.戦陣 凪.A","特.戦陣 破軍.A"],
"特.我こそ絶対悪よ.A":["特.我こそ絶対悪よ.A","特.我こそ絶対悪よ.A","防.戦陣 無縫.A","防.戦陣 無縫.A","特.戦陣 破軍.A"],
"攻.ワレ突撃ス.C":["攻.ワレ突撃ス.C","攻.ワレ突撃ス.C","攻.ワレ突撃ス.C","攻.風将飛剣.C","攻.鉄騎花麗.C"],
"攻.みんな灰になれ.C":["攻.みんな灰になれ.C","攻.みんな灰になれ.C","攻.みんな灰になれ.C","攻.清貧ノ悪源太.B","攻.孤炎.A"],
"防.甘っちょろいなぁ.C":["防.甘っちょろいなぁ.C","防.甘っちょろいなぁ.C","防.甘っちょろいなぁ.C","防.虎眼慧明.C","防.護城ノ義士.C"],
"攻.ただただ死ね.C":["攻.ただただ死ね.C","攻.ただただ死ね.C","攻.ただただ死ね.C","攻.強虔ノ使徒.C","攻.戦鬼侵軍.B"],
"特.あの虚気を殺す.C":["特.あの虚気を殺す.C","特.あの虚気を殺す.C","特.あの虚気を殺す.C","特.虎切刀.C","特.争鶴ノ囀り.C"],

25名無しさん:2024/02/24(土) 22:02:10 ID:m7mm72pw
>>23 済です。とりあえず、おま環ぽいので前述の通り合戦後に見直します。

26名無しさん:2024/02/25(日) 06:48:11 ID:LPJn7z7g
>>22
同じような症状でしたが前スレ912でなおりました

27名無しさん:2024/02/25(日) 12:10:40 ID:M05M3a5I
>>17 期の取得方法だけど、毎期書き換えたくないのなら
現時点では
var chapter = $(this).find('span.otono_sm:first img').attr('src')?.match(/_otono_s(\d+)_\d+\.png/)[1];
後ろの || '27'は保険なので画像から期が取れていれば不要。

毎期修正するのであれば、var chapter = ’27'; で十分。
または、
定数で2期またぎたいなら
var chapter = ((new Date()).toISOString().substr(0,10) < "2024-02-09")? '26': '27';

結局毎期色々直すのだからどれでも同じだと思います。

28名無しさん:2024/02/25(日) 12:18:41 ID:M05M3a5I
>>27 期じゃなくて章だね。間違えた。

29名無しさん:2024/02/25(日) 14:20:20 ID:o0bxJOiU
>>25
ひとまず、原因の切り分けをします
最初に取れているかを確認するため、以下の1文を追加してみて鯖選んでみてください
これで26になっていたらixa-login.user.js側に問題があります
27が取れていたらixa-moko.user.jsでcookieから取得する方に何か間違いがあります

var title = $(this).parent().attr('title') || $(this).find('a').attr('title');
var season_num = $(this).find('span[class^="flag_"] img').attr('src').match(/flag_.(\d+)\.gif/)[1];
var world = title.replace('ワールド', '');
var chapter = $(this).find('span.otono_sm:first img').attr('src')?.match(/_otono_s(\d+)_\d+\.png/)[1] || '27';

var season = Number(season_num).toString(10);
+ alert('world = ' + world + ', chapter = ' + chapter + ', season = ' + season);
if (!chapter) {
alert('【sengokuixa-moko】\n\nこのワールドの舞台には対応していません');
return false;
}

30名無しさん:2024/02/25(日) 19:51:31 ID:o0bxJOiU
>>25
詳しく見てみました
色々いじっていて元のソースを取っておかなかったのでfunction全文載せておきます

// MokoLogin
function MokoLogin($) {
console.debug('Load... MokoLogin');
"use strict";

// ログイン時間
var time = ~~(new Date() / 1000);
document.cookie = 'im_st=' + time + '; max-age=10800; domain=.sengokuixa.jp; path=/;';
$('div.infoTable').css({
'margin-left': '0',
'padding': '0'
}).insertBefore('div.back');
$('div[class*="subserver_s"], div[class*="mainserver_s"]').bind('mousedown', function() {
if (MokoLogin.flag) {
location.href = $('div.back a').attr('href');
return false;
}

var title = $(this).parent().attr('title') || $(this).find('a').attr('title');
var season_num = $(this).find('span[class^="flag_"] img').attr('src').match(/flag_.(\d+)\.gif/)[1];
var world = title.replace('ワールド', '');
var chapter = ($(this).find('span.otono_sm:first img').attr('src').match(/_otono_s(\d+)_\d+\.png/) || ['','27'])[1];
var season = Number(season_num).toString(10);
if (!chapter) {
alert('【sengokuixa-moko】\n\nこのワールドの舞台には対応していません');
return false;
}

// ワールド・章・期 クッキー登録
document.cookie = 'chapter=' + world + '-' + chapter + '-' + season + '; max-age=10800; domain=.sengokuixa.jp; path=/;';
MokoLogin.flag = true;
});
}

31名無しさん:2024/02/25(日) 21:24:10 ID:m7mm72pw
各位

貴重な時間を割かせてしまい大変申し訳ございません。>>26 前スレ912も改修済みです。
>>30も取り込みましたが26章◯期のままです。(>>27でも変わらず)もちろん、ローカルストレージの全クリアーもしています。

念のために現在の【ixa-login.user.js】です。(途中までですが差分なし)
https://writening.net/page?j2p3uy

あとは【ixa-moko.user.js】側の問題でしょうから、やはり合戦後に前スレも含めて見直します。これまでの刷新時にはなかったんだけどなぁ〜。

32名無しさん:2024/02/25(日) 21:33:54 ID:o0bxJOiU
>>31
マウスダウンが効いていてCookieにちゃんと27と書き込まれているかを
切り分けないと分からないですね

>>29のアラートを入れてみて、アラートでますか?

33名無しさん:2024/02/26(月) 10:29:04 ID:cox0sqTE
部隊出陣時、部隊を選択する箇所にチェックを入れて、「最大指揮兵数を指揮して出陣」の箇所にチェックを入れて・・・と4合流可能となった今期は8回チェックをいれないといけません
一発で部隊選択、「最大指揮兵数を指揮して出陣」にチェックをいれるなんて事はできないでしょうか

34名無しさん:2024/02/26(月) 17:54:20 ID:o0bxJOiU
>>33
meraにチェックしたものを記憶する機能があったので
見よう見まねで昔作ったのがありました
ちゃんと動くかは各自確認してください
ここから〜ここまでをごっそり追加で+マーク付けていません


$(this).closest('td').find('input[name="unit_select[]"]').prop('checked', true);
$('#' + $(this).attr('type')).trigger('click');
$('img[alt="選択した部隊で出陣"]').trigger('click');
});

//最大兵数のチェックボックスを記憶 ここから
var max_checkbox = getStorage({}, 'ixamoko_send_troop_max');
$('input[name^="max_unit_assign"], input[name^="elite_max_unit_sort"]').each(function() {
var card_ids = $(this).closest('table').find('.busho_name a').map(function(idx,elm) {
return elm.getAttribute('data-card_id');
}).get();
card_ids = card_ids.sort((a, b) => a > b).join('');
if (card_ids in max_checkbox) {
$(this).prop('checked', max_checkbox[card_ids]);
}
});
$('label.send_troop_max_unit').on('click', function() {
var tmpdata = {};
$('input[name^="max_unit_assign"], input[name^="elite_max_unit_sort"]').each(function() {
var card_ids = $(this).closest('table').find('.busho_name a').map(function(idx,elm) {
return elm.getAttribute('data-card_id');
}).get();
card_ids = card_ids.sort((a, b) => a > b).join('');
if (card_ids in tmpdata) {
return true;
}
tmpdata[card_ids] = $(this).prop('checked');
});
setStorage('ixamoko_send_troop_max', tmpdata);
});
//最大兵数のチェックボックスを記憶 ここまで

if (options.all_send_troop && !$('#mk-all-submit_btn').length) {
var $normal_attack_img = $img.filter(function() {
return (j$(this).parents('ul').prevAll('h3.in_send_troop_base').eq(0).text().indexOf("に所属する部隊") !== -1);
});

35名無しさん:2024/02/26(月) 20:38:51 ID:FC8eUOQQ
前期まで使えていた同盟員情報での変動値って上手く取得できなくなってます?
もし復活できそうならお願いしたいのですが。m(_ _)m

36名無しさん:2024/02/26(月) 21:48:42 ID:o0bxJOiU
>>35
恐らく青いカッコの数字が追加されたからですね

37名無しさん:2024/02/26(月) 22:54:57 ID:o0bxJOiU
>>35
ちょうど直そうと思っていたので改修しました
あまり動作確認していないのでバグありましたらおしえてください
// === 同盟 === 〜 // ^ 同盟の間の最後のfunctionで
結構前に合戦と内政のポイントにも対応してどこ直したか覚えていないので全文載せます
何回かに分けます

// 同盟ポイント比較機能
function alliancePointComparison() {
if (!options.ar_point_cmp) {
return;
}
var $tr = $('table.common_table1 tr').not('.sub'),
$tr_sub = $('table.common_table1 tr.sub'),
disp_apc = function() {
var data = getStorage({}, 'ixamoko_ar_point');
$('#ar_update').html('( 更新:' + data.date + ' )');
$tr.slice(1).each(function(idx, elm) {
var now_ar_member = $(this).find('td').eq(2).find('a').text().trim();
var now_ar_point = ($(this).find('td').eq(3).text().split('(')[0] || '').replace(/\,|\s|\n/g, '');
var now_ar_point_fight = ($tr_sub.slice(1).eq(idx).find('td').eq(0).text().split('(')[0] || '').replace(/\,|\s|\n/g, '');
var now_ar_point_village = ($tr_sub.slice(1).eq(idx).find('td').eq(1).text().split('(')[0] || '').replace(/\,|\s|\n/g, '');
var recorded = data.point[now_ar_member][0];
var recorded_fight = data.point[now_ar_member][1];
var recorded_village = data.point[now_ar_member][2];
if (!recorded) {
recorded = now_ar_point;
}
var cmpd_value = now_ar_point - recorded;
if (cmpd_value > 999) {
cmpd_value = cmpd_value + '';
while (cmpd_value != (cmpd_value = cmpd_value.replace(/^(-?\d+)(\d{3})/, '$1,$2')));
}
if (!recorded_fight) {
recorded_fight = now_ar_point_fight;
}
var cmpd_value_fight = now_ar_point_fight - recorded_fight;
if (cmpd_value_fight > 999) {
cmpd_value_fight = cmpd_value_fight + '';
while (cmpd_value_fight != (cmpd_value_fight = cmpd_value_fight.replace(/^(-?\d+)(\d{3})/, '$1,$2')));
}
if (!recorded_village) {
recorded_village = now_ar_point_village;
}
var cmpd_value_village = now_ar_point_village - recorded_village;
if (cmpd_value_village > 999) {
cmpd_value_village = cmpd_value_village + '';
while (cmpd_value_village != (cmpd_value_village = cmpd_value_village.replace(/^(-?\d+)(\d{3})/, '$1,$2')));
}
var $td = $(this).find('td.cmpd_value');
if ($td.length) {
$td.remove();
}
var $td_sub = $tr_sub.slice(1).eq(idx).find('td.cmpd_value');
if ($td_sub.length) {
$td_sub.remove();
}
$(this).find('td').eq(3).after('<td colspan="2" class="cmpd_value" style="color:maroon;">' + cmpd_value + '</td>');
$tr_sub.slice(1).eq(idx).append('<td class="cmpd_value" style="color:maroon; white-space:nowrap; padding-left:5px; padding-right:5px;">' + cmpd_value_fight +
'</td><td class="cmpd_value" style="color:maroon; white-space:nowrap; padding-left:5px; padding-right:5px;">' + cmpd_value_village + '</td>')
});
},

38名無しさん:2024/02/26(月) 22:56:51 ID:o0bxJOiU
update_flag = function() {
var flag = false;
var data = getStorage({}, 'ixamoko_ar_point');
if (data.id && location.search.replace('?id=', '') == data.id) {
flag = true;
}
$('#apc').val(flag ? '更新する' : '記録する');
return flag;
};

$('div.alliance_member_control:first').append('<span id="section_inner">同盟ポイント比較: <span id="ar_update">( 更新 --/-- --:--:-- ) </span></span>');
$('#ar_update')
.after('<input type="button" id="apc" name="apc" value="" />');
$tr.eq(0).find('th:eq(2)')
.after('<th colspan="2">変動値</th>');
$tr_sub.eq(0).find('th:eq(1)')
.after('<th style="width:35.75px;">合戦ポイント</th><th style="width:35.75px;">内政ポイント</th>');
$tr.slice(1).find('td:eq(3)')
.after('<td colspan="2" class="cmpd_value">-</td>');
$tr_sub.slice(1).find('td:last')
.after('<td class="cmpd_value">-</td><td class="cmpd_value">-</td>');
$('table.common_table1').css('transform', 'rotateX(180deg)').wrapAll($('<div id="moko_alliance_box">').css({'overflow-x': 'scroll', 'width': '683px', 'transform': 'rotateX(180deg)'}));
if (update_flag()) {
disp_apc();
}

$('#apc').on('click', function() {
var data = getStorage({}, 'ixamoko_ar_point');
var str;
if (!update_flag()) {
str = '現在の同盟ポイントを記録をします。\nよろしいですか?';
} else {
str = data.date + 'のデータが消去されます。\nよろしいですか?';
}
if (!confirm(str)) {
return;
}
var point_array = {};
$tr.slice(1).each(function (idx, elm) {
var $td = $(this).find('td');
var ar_member = $td.eq(2).find('a').text();
var ar_point = ($td.eq(3).text().split('(')[0] || '').replace(/\,|\s|\n/g, '');
var ar_point_fight = ($tr_sub.slice(1).eq(idx).find('td').eq(0).text().split('(')[0] || '').replace(/\,|\s|\n/g, '');
var ar_point_village = ($tr_sub.slice(1).eq(idx).find('td').eq(1).text().split('(')[0] || '').replace(/\,|\s|\n/g, '');
point_array[ar_member] = [ar_point, ar_point_fight, ar_point_village];
});
var now = new Date();
var ar_date = now.getMonth() + 1 + '/' + now.getDate() + ' ' + now.getHours() + ':' +
(now.getMinutes() < 10 ? '0' : '') + now.getMinutes() + ':' +
(now.getSeconds() < 10 ? '0' : '') + now.getSeconds();
data.name = $('div.alliance_title').text().trim();
data.id = location.search.replace('?id=', '');
data.date = ar_date;
data.point = point_array;
setStorage('ixamoko_ar_point', data);
return disp_apc();
});
}

// ^ 同盟

以上です

39名無しさん:2024/02/26(月) 23:24:00 ID:FC8eUOQQ
さっそく入れてみました!ありがとうございます^^
合戦で試してみますね。

40名無しさん:2024/02/27(火) 13:08:08 ID:o0bxJOiU
ID変わってますが前スレiOR7Vu4Iです
私が対応した機能であれば今後も対応可能です

41名無しさん:2024/02/28(水) 09:20:15 ID:cox0sqTE
>>34
導入してみましたがチェックされる時とされない時がランダムに起こります
合戦始まったら再度確認してみます
ご教授ありがとうございました

42名無しさん:2024/02/28(水) 10:35:54 ID:o0bxJOiU
>>41
あ、わかりました
攻撃と加勢で出てくる精鋭一覧が違うのにチェックボックスをチェックした時に
毎回チェック状態を上書き保存していたからだと想定されます
(攻撃出陣でチェックを保存した後に加勢出陣でチェックを保存すると攻撃のチェックの記録が消える)
時間あるときに直しておきます

43名無しさん:2024/02/28(水) 11:14:46 ID:o0bxJOiU
>>41
上の>>34を修正しましたが+-の記号だと元を取っていないので行末に
//add ⇒ 追加
//mod ⇒ 変更
にしました
なお、精鋭部隊をデッキや加勢専用部隊に配置している状態で
同じ武将の組み合わせの列が画面上に2行ある場合は
上側の列のチェックボックスが優先されます

//最大兵数のチェックボックスを記憶
var att_flg = $('h3.in_send_troop_base:not(.with_send_troop_btn)').text().indexOf('攻撃') != -1 ? 'att' : 'def'; //add
var max_checkbox = getStorage({}, 'ixamoko_send_troop_max_' + att_flg); //mod
$('input[name^="max_unit_assign"], input[name^="elite_max_unit_sort"]').each(function() {
var card_ids = $(this).closest('table').find('.busho_name a').map(function(idx,elm) {
return elm.getAttribute('data-card_id');
}).get();
card_ids = card_ids.sort((a, b) => a > b).join('');
if (card_ids in max_checkbox) {
$(this).prop('checked', max_checkbox[card_ids]);
}
});
$('label.send_troop_max_unit').on('click', function() {
var tmpdata = {};
$('input[name^="max_unit_assign"], input[name^="elite_max_unit_sort"]').each(function() {
var card_ids = $(this).closest('table').find('.busho_name a').map(function(idx,elm) {
return elm.getAttribute('data-card_id');
}).get();
card_ids = card_ids.sort((a, b) => a > b).join('');
if (card_ids in tmpdata) {
if ($(this).prop('checked') != tmpdata[card_ids]) { //add
return true;
} //add
}
tmpdata[card_ids] = $(this).prop('checked');
});
setStorage('ixamoko_send_troop_max_' + att_flg, tmpdata); //mod
});

44名無しさん:2024/03/01(金) 08:08:51 ID:cox0sqTE
>>43
毎回チェックされるようになりました
大変たすかりました ありがとうございます

45名無しさん:2024/03/03(日) 18:53:11 ID:S01RiUeQ
26章と表示される件ずっと悩んでいましたが、Part48の728のところで直った
ーーーー
私も8月頃になりまして完全に暫定対応ですがログインはできるようになりました(一部機能が正常に動作しない可能性があります)
チャプターはハードコーディングしていますので来期は'27'に変えないとですし20鯖がオープンしたらその分も追加しないとです
原型を記録していなかったので完成形になります
}
else {
//暫定対応
login_data.world = location.hostname.split('.')[0];
login_data.chapter = '26';  ← ここ
switch (login_data.world.substring(1, 4)) {
case '001':
login_data.season = login_data.chapter;

46名無しさん:2024/03/03(日) 18:57:40 ID:S01RiUeQ
多分この当たり書き込み多かったので修正が全部出来ていないだけではないかと考えております。

47名無しさん:2024/03/03(日) 19:12:41 ID:S01RiUeQ
多分Part48の912を修正してなかったからだと思います。

48名無しさん:2024/03/04(月) 14:15:31 ID:fk/lLthg
27章対応の為に追記したり書き替えたりした箇所全てに"27章対応"等の文字列をコメントで入れておきますと
次の刷新で28章対応を行う時に対応が楽になると思います。
https://imgur.com/nzyHJfY

49名無しさん:2024/03/04(月) 19:34:22 ID:HZcUXXB.
//2024.3
"防.鬼十河.A":["防.鬼十河.A","防.鬼十河.A","防.鬼十河.A","防.朝曇ノ明麗.S","特.戦陣 神屋.A"],
"特.日輪ノ守護者.A":["特.日輪ノ守護者.A","特.日輪ノ守護者.A","特.木遁封魔.S","特.戦陣 吟詠.A","特.戦陣 吟詠.A"],
"攻.黄鬼ノ辣腕.S":["攻.月読ノ冥将.S","攻.黄鬼ノ辣腕.S","攻.黄鬼ノ辣腕.S","攻.朧雲ノ閃撃.SSS","攻.十束ノ神域.SS"],
"攻.天麟ノ灼煌.S":["攻.天麟ノ灼煌.S","特.四天轟雷.SS","特.月詠ノ覇威.SS","攻.星神闘覇.SS","特.月詠ノ覇威.SS"],
"防.苛砲.C":["防.苛砲.C","防.苛砲.C","防.苛砲.C","防.花菱ノ礎.C","防.越州僧君.C"],
"攻.清将哀諫.C":["攻.清将哀諫.C","攻.清将哀諫.C","攻.清将哀諫.C","攻.土佐ノ英知.C","攻.片手千人斬り.C"],
"防.獅子姫ノ衷情.C":["防.獅子姫ノ衷情.C","防.獅子姫ノ衷情.C","防.獅子姫ノ衷情.C","防.涼下宿志.C","防.安息ノ導手.C"],

//合成専用
"攻.戦陣 疾駆.A": ["..","..","..","攻.十束ノ神域.SS",".."],

50名無しさん:2024/03/08(金) 11:48:40 ID:41q3ACVg
兵士一括受取禁止にチェックして、兵士のタブに最初に持って来た時は一括受取は非表示なのですが
2ページ以降に遷移を一度でもするとぼたんが復活してしまいます
対策はありますでしょうか

51名無しさん:2024/03/09(土) 02:10:27 ID:gP.Mv2OE
>>50
meraの話じゃないですかね?

52名無しさん:2024/03/10(日) 08:09:59 ID:JqV30KRI
>>51
モコの話で、兵士だけでなく一括受け取り(すべて)の禁止をチェック入れてて
最初のページは一括受取ボタンがHIDEになっているのですが2ページ目以降に遷移すると
すべて、武将カード、兵士 の三つのタブでも一括受取ボタンが蘇ってしまうのですが、おま環っぽいですか?

53名無しさん:2024/03/10(日) 20:57:53 ID:DkZlTK52
ページ切り替え時はajax通信の終了で非表示にする処理すれば直るんじゃない

54名無しさん:2024/03/10(日) 21:00:19 ID:DkZlTK52
ページ切り替え時はajax通信の終了でボタンを非表示にする処理にすれば直るんじゃない

55名無しさん:2024/03/11(月) 13:47:12 ID:gP.Mv2OE
>>52
数スレ遡ったのですが、プレゼント一括受取禁止のソースが無く
私のmokoにも一括受取禁止の機能が無いので
元々のmokoのバージョンが違うのですかね?

そちらがどういうソースか分かりませんが
onのclickで発火させるイベントをfunctionでラップして
その中でlocation.searchで判定してヒットしたら
preventDefaultすれば良いのではないですかね
ページに関係なく動くと思います
プレゼントが「すべて」の場合はtype=がないので
そのあたりの判定も必要です

オートページャーも入れているならページ追加後にも
このfunctionを走らせます

56名無しさん:2024/03/11(月) 21:22:20 ID:ZYq2t43U
自分は考えられるような力はないのでREADMEなどを遡ってみたのですが2023の1月29日頃に刷新寸前で直してて
その元の記述が全然見当たらず、掲示板を探してみたところ前スレの503あたりのを上書きして
https://jbbs.shitaraba.net/bbs/read.cgi/netgame/15829/1674020414/503
604のレスに同様に外れる症状はでてたようです
594でページ切替のリンクを上に下あたりから色々

57名無しさん:2024/03/12(火) 00:56:28 ID:gP.Mv2OE
>>56
前スレ503〜を書き込んだのはID違いますが私ですね
私のmokoには一括受取禁止機能が無かったので
604のレスもそもそも理解していませんでした

無いものは修正できないのでどうしようもないですが
新しく作ることはできます
というかもう作りまして、既存のものと競合してしまうと思いますが
需要ありますか?

58名無しさん:2024/03/12(火) 02:47:33 ID:ZYq2t43U
>>57
お手数をおかけしますが是非よろしくお願いします
気を付けてるつもりが兵士一括受取をしてしまって兵を作れない子(自分もたまに)が多くて汗

59名無しさん:2024/03/12(火) 09:44:09 ID:gP.Mv2OE
>>58
ボタン押しても無効化している機能なので、既存機能と競合していたら既存の方をコメントアウトしてください
moko設定はとりあえず全般2に入れていますがどこでも大丈夫です
//ここから〜//ここまでには行頭に+マーク付けていません
行単位で追加する部分は行頭に+マーク付けています

GROUPS_MENU = [
["-2","【精鋭部隊】"], ["0","【全武将】"], ["1","【第一組】"], ["2","【第二組】"],
["3","【第三組】"], ["4","【第四組】"], ["5","【第五組】"], ["6","【第六組】"],
["-1","【未設定】"]
],

// プレゼント一括受取禁止ここから
PRESENT_TYPE = {
'すべて': [true, 'all'],
'武将カード': [true, 'card'],
'金/銀/銅銭': [true, 'coin'],
'チケット/経験値': [true, 'ticket'],
'資源': [true, 'material'],
'兵士': [true, 'unit'],
},
// プレゼント一括受取禁止ここまで

DEFAULT_SET_NUM = {
100: '100',
500: '500',

(・・・省略・・・)

ixa_time_mod: {tag: 'all2', caption: 'IXAタイムの表示位置'},
no_other_name: {tag: 'all2', caption: '異名ポップアップを非表示にする'},
+ deny_bulk_present: {tag: 'all2', caption: 'プレゼントの一括受取を禁止する'}, // プレゼント一括受取禁止
+ deny_bulk_present_mod: {tag: 'all2', caption: 'プレゼント一括受取禁止'}, // プレゼント一括受取禁止
sidebox_change: {tag: 'all2', caption: 'サイドボックスを合戦向け表示にする'},

60名無しさん:2024/03/12(火) 09:47:27 ID:gP.Mv2OE
case 'ixa_time':
mod = options.ixa_time_mod;
list = {
0: 'サイドバー上段',
1: 'サイドバー上段/中段'
};
setting_list += this.createList(key, '', list, mod);
break;
// プレゼント一括受取禁止ここから
case 'deny_bulk_present':
setting_list += '<dl id="hide_present_list">' +
'<dt style="margin-bottom: 5px;">' + this.optionsKeys[key].caption + '</dt>' +
'<dd class="ixamoko_setting" style="width: 245px; height:75px; margin-bottom: 5px; padding: 5px 15px; border-radius: 4px; box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.3),inset 0px 0px 3px rgba(0, 0, 0, 0.3);" key="' + key + '">';
var presernt_list = options[key];
if (!presernt_list || $.isEmptyObject(presernt_list)) {
presernt_list = PRESENT_TYPE;
}
for (i in presernt_list) {
setting_list += '<label style="float: left; line-height: 2em; width: 120px;"><input type="checkbox"' + (presernt_list[i][0] ? ' checked' : '') + ' value="' + i + '"/>' + i + '</label>';
}
setting_list += '</dd></dl>';
break;
case 'deny_bulk_present_mod':
setting_list += '<li><label>' + this.optionsKeys[key].caption + ':</label>&nbsp;' +
'<select class="ixamoko_setting" key="' + key + '">' +
'<option value="0">「このページ内を一括受取」は許可</option>' +
'<option value="1">「このページ内を一括受取」も禁止</option>' +
'</select>' +
'</li>';
break;
// プレゼント一括受取禁止ここまで
case 'sort_village':
mod = options.sort_village_mod;
list = {
0: '名前降順',
1: '名前昇順'
};
setting_list += this.createList(key, '', list, mod);
break;


(・・・省略・・・)

// 保存
$('#save_settings').on('click', function() {
var $setting = $('#moko_setting_dialog').find('.ixamoko_setting');
$setting.each(function() {
var key = $(this).attr('key');
if (key == 'def_kind_soldier') {
options[key] = {};
var $input = $(this).find('input[type="checkbox"]');
for (var i = 0, len = $input.length; i < len; i++) {
options[key][$input.eq(i).val()] = $input.eq(i).prop('checked');
}
// プレゼント一括受取禁止ここから
} else if (key == 'deny_bulk_present') {
options[key] = {};
var $input = $(this).find('input[type="checkbox"]');
for (var i = 0, len = $input.length; i < len; i++) {
options[key][$input.eq(i).val()] = [$input.eq(i).prop('checked'), PRESENT_TYPE[$input.eq(i).val()][1]];
}
// プレゼント一括受取禁止ここまで
} else if (key.indexOf('_mod') != -1) {
options[key] = $(this).val();
} else {
options[key] = $(this).prop('checked');
}
});

61名無しさん:2024/03/12(火) 09:49:36 ID:gP.Mv2OE
// プレゼント
function presentCheck() {
if (!location.pathname.match(/\/user\/present/)) {
return;
}

// プレゼント一括受取禁止ここから
function prohibit_bulk_present() {
var mod_type = options.deny_bulk_present_mod ? '$' : '';
$(document).find('input[alt' + mod_type + '="一括受け取り"]').on('click', function(e) {
var setting_present = options.deny_bulk_present,
search = location.search;
if (!setting_present || $.isEmptyObject(setting_present)) {
setting_present = PRESENT_TYPE;
}
if (search.indexOf('type=') == -1) {
search += '&type=all';
}
for (var key in setting_present) {
if (search.indexOf(PRESENT_TYPE[key][1]) != -1 && setting_present[key][0]) {
e.preventDefault();
var setting_category = Setting.optionsClass[Setting.optionsKeys['deny_bulk_present'].tag];
moko_alert('この操作はmoko設定[' + setting_category + ']で禁止されています');
sleep(1).then(() => location.reload());
return false;
}
}
});
};
prohibit_bulk_present();
// プレゼント一括受取禁止ここまで

// すべてのプレゼントを受け取りにconfirmを追加
$('div.ig_decksection_mid div:contains("ボックス内のアイテムは刷新後に引き継ぐことはできません")').css({
'left': '415px',
'width': '340px'
});

(・・・省略・・・)

// プレゼント オートページャー
var page = $pager.find('span').text();
$pager.data('add_page', parseInt(page) + 1);
(===中略===)
// 変更点(プレゼントボックス修正06)
$('#sidebar').before($modal);
tb_init('a.thickbox');
add_next_page.flag = false;
add_page++;
+ prohibit_bulk_present(); // プレゼント一括受取禁止
if (add_page > max_page) {
add_next_page.flag = true;
return moko_notice('全ページ読み込み完了', true);
} else {
$pager.data('add_page', add_page);
}
}, null);
},

62名無しさん:2024/03/12(火) 09:51:50 ID:gP.Mv2OE
以上です
バグあったらおしえてください

63名無しさん:2024/03/12(火) 10:35:38 ID:gP.Mv2OE
あ、すみません
>>61のここはこうの方が良いかもしれません
もし動作おかしかったら修正してください

(誤)
var mod_type = options.deny_bulk_present_mod ? '$' : '';

(正)
var mod_type = options.deny_bulk_present_mod == '1' ? '$' : '';

64名無しさん:2024/03/13(水) 16:03:08 ID:yibPJVrg
>>59 ID:gP.Mv2OEさま
コードありがとうございました
無事機能確認できました、これで兵士を受取事故が減りそうで助かります

65名無しさん:2024/03/13(水) 18:17:22 ID:rmVp7LGM
ホームセンターコーナン生野店の駐車場で、12時頃〜16時頃に来ては鳩に餌を与えている『なにわ 581 く 29-54』のキャップ帽クソハゲジジイが究極的にうざいし腹立つから誰かなんとかしてくれ。

66名無しさん:2024/03/15(金) 00:51:59 ID:fk/lLthg
>63 ID:gP.Mv2OE さん
動作良好の模様です。全般2でチェックしている限りプレゼントの一括受け取り時にピロリン音と共に警告が現れます。
改修時に気になりましたが >>60
case 'ixa_time':
mod = options.ixa_time_mod;
list = {
0: 'サイドバー上段',
1: 'サイドバー上段/中段'
};
の段落が私にはそもそも存在しなかったりcase分岐の並び順が私と違っていたりしました。
サイドバーのcase分岐は増やせばいいと思って増やし、並び順の相違は機能に影響しない考えて
近づけるだけに留めました。IXAをしていない期間があった為私が取りこぼしたのだと思います。
ご対応を有り難うございました。

67名無しさん:2024/03/15(金) 01:12:48 ID:FC8eUOQQ
ID:gP.Mv2OE さん、いつもありがとうございます。
動作自体は問題なさそうなのですが警告音は鳴るのですが、
('この操作はmoko設定[' + setting_category + ']で禁止されています');
こちらのアラートが出て来ないのはどの辺に問題があるんでしょうか?

68名無しさん:2024/03/15(金) 14:40:34 ID:gP.Mv2OE
>>67
私もブラウザによっては警告音だけ鳴って警告文字列はでないものがあります
ブラウザの種類やブラウザのバージョンに寄るかと思います

69名無しさん:2024/03/15(金) 19:28:57 ID:fk/lLthg
>>67 >>68さん
私はID:gP.Mv2OE さんご本人ではありませんが状況をもう少し詳しく
お知らせ戴けるとお詳しい方からコメントが出るかもです。
下図は私の環境でのキャプチャです。
https://imgur.com/983Iyjh

お使いの環境で黄色のメッセージ枠すら表示されませんか?
或いは黄色のメッセージ枠は表示されますがメッセージが表示されませんか?

70名無しさん:2024/03/16(土) 08:11:16 ID:FC8eUOQQ
ありがとうございます。
判明したことを報告いたします。
 PIXIEを使用していると音だけ鳴るものの、文字の表示がされないようです。
拡張機能をOFFにすると表示されました。
PIXIEの設定を色々触ってみて、全部OFFにしてみましたが表示はされないままでしたので
拡張機能そのものが共存できないようです。

71名無しさん:2024/03/16(土) 09:40:25 ID:gP.Mv2OE
>>70
そうでした
今はもうピクシーは使っていませんが
昔その症状が確かに出ていました

ピクシーと言えば私がよく使っていたのが
S1合わせと全自動ランクアップだったんですが
ピクシーは危険なので使うのやめました

見様見真似で
・道場習得編を使っての待機武将右クリックからのFスキル付与機能
・一気ランクアップ後レベル20にする機能
を作ったんですが需要あります?
ピクシーほど全自動では無いですが公式の機能を連続で使っているだけなので
危険性は低いと思います

72名無しさん:2024/03/16(土) 09:54:22 ID:FC8eUOQQ
・道場習得編を使っての待機武将右クリックからのFスキル付与機能
>待機武将画面から、その武将を道場習得させられるって感じですか?
公式の習得は武将を選ぶのが面倒だなぁと思ってたので、それは便利そうですね!
・一気ランクアップ後のレベル20は、レベル20にする・しない、を選べるとありがたいかもです。
PIXIEは
 私も危険そうなのは現在は使っておらず、出陣時に兵士編成ができるやつだけしかほぼ使ってませんね。
これが便利でして・・・
https://gyazo.com/e71b5a5877163c2434ab625e7f87d7e5
似たようなことをMOKOでも出来るとありがたいのですが。
(最大補充機能とは違って、兵種も指揮数も任意で変更できるので)

73名無しさん:2024/03/16(土) 13:47:42 ID:gP.Mv2OE
>>72
道場
https://gyazo.com/7415da17636b9112a338ab7747ba0c5d

一気ランクアップ
https://gyazo.com/373175dc7d6a38ea6c9c93ce6113e390

こんな感じです
道場はB以上と茶人スキルを上書きする時は警告を出すようにしています
結構共通functionをいじっているので修正箇所を確認して後でソース投稿します

出陣時の兵編成は出陣ボタンの1つ前の部隊を選択する画面で
兵の編成できませんか?

74名無しさん:2024/03/16(土) 14:48:55 ID:pscKePZ2
出陣時に兵の編成ボタンは標準でありますね
ただそこからだと同兵数セットのプルダウンが無く兵100とかで揃えるときに不便なので使ってないです

75名無しさん:2024/03/16(土) 18:36:22 ID:FC8eUOQQ
>>73
すばらしいです!
道場も画面遷移なしで行けちゃうんですねー
需要あると思います。というか私は欲しいです^^
1つ気になるのは回数制限なんですが、5回終えるとどうなるのでしょうか?

出陣前の画面での兵編成はとにかくボタンを押す回数が多すぎて不便だと思ってましたが
はじめてPIXIEを使ったときに大変感動したのですよね。

76名無しさん:2024/03/16(土) 20:15:29 ID:gP.Mv2OE
>>75
5回が終わっているとそこで処理を止めてログに回数が残っていないことが出ます
公式の機能のボタンを画面遷移なしに押していっているイメージなので
公式の機能以上のことはできないです
後でソースをアップします

兵士編成については私は困ったことは無いのですが
要望あるなら時間ある時に作っておきます

77名無しさん:2024/03/16(土) 21:55:41 ID:gP.Mv2OE
①定数(+マーク省略)
CONSTANT_VALUE = [2, 10, 20, 30, 100, 128, 200, 250, 500, 1000, 2000],

//道場スキル追加(常設のみ)ここから
DOJO_SKILL = {
Da0389: '槍隊堅守',
Aa0599: '槍隊襲撃',
Aa0559: '槍隊進撃',
Da0009: '槍隊備え',
Da0409: '騎馬隊堅守',
Aa0619: '騎馬隊襲撃',
Aa0579: '騎馬隊進撃',
Da0029: '騎馬隊備え',
Da0399: '弓隊堅守',
Aa0609: '弓隊襲撃',
Aa0569: '弓隊進撃',
Da0019: '弓隊備え',
};
//道場スキル追加(常設のみ)ここまで

var SUB_FILTER_MENU = (function() {
var org = (function() {

②共通function(+マークの行のみ追加)
// カード Window
function get_card_data(target) {
(===中略===)
// 出品中フラグ
var exhibit = $('#btn_gounit_' +card_id).length;
var $div = target.find('div.parameta_area_back div.ig_skill_box'),
+ skill_index = [],
name_list = [],
lv_list = [],
+ rank_list = [],
str;
for (var i = 0, len = $div.length; i < len; i++) {
str = $div.eq(i).find('span.ig_skill_name').text().trim();
if (!str) {
continue;
}
+ skill_index.push(i);
name_list.push(str.split('LV')[0].replace(' ', ' '));
lv_list.push(parseInt(str.split('LV')[1]));
+ rank_list.push(($div.eq(i).find('span.ig_skill_name.skill_rare').attr('class') || 'ig_skill_name skill_rare dummy').split(' ')[2]);
}
(===中略===)
return {
card_id: card_id,
card_no: card_no,
grp: category,
card_name: card_name,
rare: rare,
cost: card_cost,
rank: rank,
level: level,
hp: hp,
hp_max: hp_max,
t1: yari,
t2: kiba,
t3: yumi,
t4: heiki,
att: attack,
def: defense,
int: int,
num: command_num,
max: command_max,
type_str: command_type_str,
type: command_type,
+ sidx: skill_index,
sname: name_list,
slv: lv_list,
+ srank: rank_list,
sEffect: o,
card_img: card_img,
exhibit: exhibit
};

78名無しさん:2024/03/16(土) 21:57:24 ID:gP.Mv2OE
③右クリックメニューの部分(+マーク省略)
function createCardTooltip(e, target, $tooltip, data) {
(===中略===)
if (!data.sname[i]) {
toolMenu += '<li id="skill_additional_synthetic_' + sort + '">【新規】未設定</li>';
} else {
toolMenu += '<li id="skill_additional_synthetic_' + sort + '">【入替】' + data.sname[i] + 'LV' + data.slv[i] + '</li>';
}
}
toolMenu += '</ul></li>';
}

//道場スキル追加(常設のみ)ここから
if (data.rare.indexOf('warabe') == -1 && data.rare.indexOf('ketsu') == -1 && data.rare.indexOf('miyabi') == -1 && data.rare.indexOf('bake') == -1) {
for (var i = 1; i < 3; i++) {
var skillName = data.sname[i], cnt = 0, flg = 9;
if (data.sidx[i] == 3) {
skillName = null;
}
if (data.sname[1]) {
flg = i + 1;
}
toolMenu += '<li class="sub_root">【道場】' + (skillName || '新規追加') + '<span class="tree">►</span>' +
'<ul class="sub_list">';
for (var key in DOJO_SKILL) {
if (data.sname.includes(DOJO_SKILL[key])) {
++cnt;
continue;
}
toolMenu += '<li id="skill_additional_dojo_' + key + '_' + flg + '">' + DOJO_SKILL[key] + '</li>';
if (cnt != (Object.keys(DOJO_SKILL).length - 1)) {
toolMenu += '<hr class="separator" />';
}
++cnt;
}
toolMenu += '</ul>';
if (!data.sname[1]) {
break;
}
}
toolMenu += '</li><hr class="separator" />';
}
//道場スキル追加(常設のみ)ここまで

if (data.level == 20) {
toolMenu += '<li id="rank_up_synthesis">ランクアップ合成</li>';
}
(===中略===)
// 追加
$('li[id^="skill_additional_synthetic"').on('click', function() {
send_data = PostData.union(data.card_id, '2');
send_data.target_sort = $(this).attr('id').match(/\d+/g)[0];
return $.form({
type: 'post',
url: '/union/learn.php',
data: send_data
});
});

//道場スキル追加(常設のみ)ここから
$('li[id^="skill_additional_dojo"').on('click', function() {
var learn_skill_id = $(this).attr('id').split('_')[3],
target_sort = $(this).attr('id').split('_')[4],
chajin_skill = new RegExp(/一期一会|天の福音|茶人の教え/),
confirm_rank = new RegExp(/x|s+|a|b/),
idx = parseInt(target_sort) - 1;
if (target_sort != '9') {
if (chajin_skill.test(data.sname[idx]) || confirm_rank.test(data.srank[idx])) {
if (!confirm(data.sname[idx] + 'LV' + data.slv[idx] + 'を' + DOJO_SKILL[learn_skill_id] + 'LV10に入れ替えますか?')) {
return false;
}
}
}
else {
target_sort = '';
}

(このまま続く)

79名無しさん:2024/03/16(土) 21:59:29 ID:gP.Mv2OE
(続き)
nowLoading();
Info.title('スキル道場 習得編 - IxaMoko');
var target_skill = !data.slv[idx] ? 'スキル空' : data.sname[idx] + 'LV' + data.slv[idx];
Info.log(data.card_name + ' の ' + target_skill + ' に ' + DOJO_SKILL[learn_skill_id] + 'LV10 をスキル追加合成をします');
sleep(1).then(function() {
Info.log('道場画面に遷移しています...');
$.ajax({
type: 'post',
url: '/union/dojo_learn.php',
data: {union_type: 10},
beforeSend: xrwStatusText,
}).then(function(html) {
var target_link = $(html).find('a[data-skill_id="' + learn_skill_id + '"]');
if (!target_link.length) {
Info.ng('道場画面に遷移できませんでした[不明なエラー]');
Info.title('異常終了');
sleep(1).then(() => location.reload(false));
return false;
}
if (target_link.attr('data-today_remain_count') == '0') {
Info.ng($(html).find('div.union_dojo_learn_count p').text() + ' です');
Info.title('異常終了');
sleep(1).then(() => location.reload(false));
return false;
}
Info.log('対象カードを選択しています...');
$.ajax({
type: 'post',
url: '/union/dojo_learn_select_card.php',
data: {
lineup_id: 4,
learn_skill_id,
},
beforeSend: xrwStatusText,
}).then(function(html) {
if (($(html).find('td.skill_name.skill_rare.f').text() || '').trim().split('LV')[0] != DOJO_SKILL[learn_skill_id]) {
Info.ng('対象カードを選択できませんでした[不明なエラー]');
Info.title('異常終了');
sleep(1).then(() => location.reload(false));
return false;
}
Info.log('習得確認画面に遷移しています...');
var obj_1 = PostData.learn(html),
obj_2 = {
base_cid: data.card_id,
target_sort,
union_type_dojo_learn_flg: 1,
lineup_id: 4,
learn_skill_id,
};
Object.assign(obj_1, obj_2);
(このまま続く)

80名無しさん:2024/03/16(土) 22:00:48 ID:gP.Mv2OE
(続き)
$.ajax({
type: 'post',
url: '/union/dojo_learn_confirm.php',
data: obj_1,
beforeSend: xrwStatusText,
}).then(function(html) {
if (!$(html).find('img[alt="習得実行"]').attr('alt')) {
Info.ng('習得確認画面に遷移できませんでした[不明なエラー]');
Info.title('異常終了');
sleep(1).then(() => location.reload(false));
return false;
}
var user_point = parseInt($(html).find('span.money_b').text().trim().replace(/,|万/g, '')),
user_coin = parseInt($(html).find('span.money_c').text().trim().replace(/,|万/g, '')),
point = $(html).find('input[name="RadioGroup1"]:checked').attr('data-point'),
probability_type = $(html).find('input[name="RadioGroup1"]:checked').val();
if (user_point < point) {
Info.ng('銅銭がたりません');
Info.title('異常終了');
sleep(1).then(() => location.reload(false));
return false;
}
$.ajax({
type: 'post',
url: '/union/dojo_learn_execute.php',
data: {
lineup_id: 4,
learn_skill_id,
base_cid: data.card_id,
target_sort,
probability_type,
point,
user_point,
user_coin,
item_confirm_text: '',
},
beforeSend: xrwStatusText,
}).then(function(html) {
var result = $(html).find('img[alt^="習得"]').attr('alt');
if (result) {
Info.log(result + '!');
Info.log($(html).find('p.new_union_result_para').text().replace(/\n|\s|。/g, ''));
Info.title('終了');
}
else {
Info.ng('スキルを習得できませんでした[不明なエラー]');
Info.title('異常終了');
}
sleep(1).then(() => location.reload(false));
});
});
});
});
});
});
//道場スキル追加(常設のみ)ここまで

// 削除
$('#delete_synthesis_skill').on('click', function() {

81名無しさん:2024/03/16(土) 22:04:14 ID:gP.Mv2OE
道場スキル右クリック追加は以上です
バグあったら教えてください

82名無しさん:2024/03/16(土) 22:10:30 ID:gP.Mv2OE
あ、いつも投稿してから気付いてすみません
>>79は一か所こう直してください
(誤)
Info.ng($(html).find('div.union_dojo_learn_count p').text() + ' です');


(正)
Info.ng($(html).find('div.union_dojo_learn_count p:eq(0)').text() + ' です');

83名無しさん:2024/03/17(日) 17:09:22 ID:fk/lLthg
>>82 ID:gP.Mv2OE さん。
お陰様で動作良好の様です。有り難うございました。
1点質問ですが付与し終えたスキルをLv10にするのに小姓の応援/隠し玉系の
カードを使用してているのでしょうか?。その場合既存のソート順は影響ありますか?
※秘境に序とかを送る関係で常にカードNo降順, ランク昇順, レベル昇順にソートしておりまして、
 もしも貴重な小姓の応援/隠し玉から使用されたら痛いなと思った次第です。

>組み込もうとしている方へ
 私の読解力不足で悩んだ点を参考までに情報連携します。
 >>77 は見たまんまで理解出来るかと思いますが、>>78-80 は既存の
 function createCardTooltip()関数の「if (data.level == 20) {」の手前」と
 「// 追加の段落と// 削除の段落の間」の2箇所に「//道場スキル追加(常設のみ)」で
 示されている処理を追加で挿入します。(+マーク省略)となっているので悩むかも。

84名無しさん:2024/03/18(月) 05:38:16 ID:hdXmxehU
>>83
道場で付けたスキルは付与した時点でLv10ですよ

85名無しさん:2024/03/18(月) 06:44:24 ID:fk/lLthg
>>84 そうでしたか!。勉強不足でお恥ずかしいです・・・。>>83の質問部分は取り下げます!

86名無しさん:2024/03/20(水) 07:33:25 ID:M05M3a5I
>>85 かなり損してない?
白くじ2枚分の銅線でLv10のFスキルが付くので、
それを目当てのスキルに入れかえてもLv8のスキルになります。
つまりスキルレベルアップは半分の費用でLv10にできるので、
できるだけ道場を使うべきです。

87名無しさん:2024/03/20(水) 09:37:50 ID:fk/lLthg
>>86 さん ふぇぇ・・・、仰る通りです(><。チェックが甘かったです。

88名無しさん:2024/03/21(木) 21:32:05 ID:MFBmZZJY
ん?
メンテの影響!?
https://gyazo.com/1208081d3f4b84e5701586d54ede9b4e
下に追加スキル出なくなってませんか???

89名無しさん:2024/03/21(木) 23:19:14 ID:fk/lLthg
[ローカルストレージの全クリア]は行っておりませんがこちらでは見えている様です。
何がトリガーなのでしょう。https://imgur.com/mnmNwbM

90名無しさん:2024/03/22(金) 10:13:17 ID:gP.Mv2OE
>>88
私もたまにあります
ファイルを分けてheadタグの中にスキルデータを読み込んでいますが
mokoを読み込む時にまだそのDOMが読み込まれていないのか、
読み込むところで何かしら問題があるのか、特定できてないないです
分かったら共有します

91名無しさん:2024/03/22(金) 10:14:51 ID:gP.Mv2OE
同盟ポイント比較が少しおかしかったので直しました
2つの連続したfunctionを全文載せます
いくつかに分けて投稿します

// 同盟スコア計算追加
function doumeiScore() {
var createScore = function() {
var result = parseFloat($('div.alliance_points dt:contains("総同盟ポイント")').closest('dl').find('dd:eq(0)').text().replace(/\,/g, ''));
var value = addFigure(Math.floor(result / 500));
var $deck = $('div.alliance_member_control:first');
$('#doumei_score').remove();
$deck.append('<span id="doumei_score">同盟スコア: (' + value + ')</span>');

// execute 同盟ポイント比較機能
alliancePointComparison();
$(document).off('ajaxStop', createScore);
};

if (location.pathname.indexOf('/alliance/') != -1) {
$(document).on('click', 'img[src$="btn_alliance_menber_ranking.png"]', function() {
$(document).on('ajaxStop', createScore);
});
if ($('img[src$="btn_alliance_menber_ranking_on.png"]').length) {
createScore();
}
}
}

// 同盟ポイント比較機能
function alliancePointComparison() {
if (!options.ar_point_cmp) {
return;
}
var $tr = $('table.common_table1 tr').not('.sub'),
$tr_sub = $('table.common_table1 tr.sub'),
disp_apc = function() {
var data = getStorage({}, 'ixamoko_ar_point');
$('#ar_update').html('( 更新:' + data.date + ' )');
$tr.slice(1).each(function(idx) {
var now_ar_member = $(this).find('td').eq(2).find('a').text().trim();
var now_ar_point = parseInt(($(this).find('td').eq(3).text().split('(')[0] || '0').replace(/\,|\s|\n/g, ''));
var now_ar_point_origin = parseInt(($(this).find('td').eq(3).text().split('(')[1] || '0').replace(/\,|\s|\n|\)/g, ''));
var now_ar_point_fight = parseInt(($tr_sub.slice(1).eq(idx).find('td').eq(0).text().split('(')[0] || '0').replace(/\,|\s|\n/g, ''));
var now_ar_point_fight_origin = parseInt(($tr_sub.slice(1).eq(idx).find('td').eq(0).text().split('(')[1] || '0').replace(/\,|\s|\n|\)/g, ''));
var now_ar_point_village = parseInt(($tr_sub.slice(1).eq(idx).find('td').eq(1).text().split('(')[0] || '0').replace(/\,|\s|\n/g, '') || '0');
var now_ar_point_village_origin = parseInt(($tr_sub.slice(1).eq(idx).find('td').eq(1).text().split('(')[1] || '0').replace(/\,|\s|\n|\)/g, ''));
var recorded = data.point[now_ar_member].length > 0 ? data.point[now_ar_member][0] : now_ar_point;
var recorded_fight = data.point[now_ar_member].length > 1 ? data.point[now_ar_member][1] : now_ar_point_fight;
var recorded_village = data.point[now_ar_member].length > 2 ? data.point[now_ar_member][2] : now_ar_point_village;
var recorded_origin = data.point[now_ar_member].length > 3 ? data.point[now_ar_member][3] : now_ar_point;
var recorded_fight_origin = data.point[now_ar_member].length > 4 ? data.point[now_ar_member][4] : now_ar_point_fight;
var recorded_village_origin = data.point[now_ar_member].length > 5 ? data.point[now_ar_member][5] : now_ar_point_village;
var cmpd_value = now_ar_point - recorded;
var cmpd_value_fight = now_ar_point_fight - recorded_fight;
var cmpd_value_village = now_ar_point_village - recorded_village;
var cmpd_value_origin = now_ar_point_origin - recorded_origin;
var cmpd_value_fight_origin = now_ar_point_fight_origin - recorded_fight_origin;
var cmpd_value_village_origin = now_ar_point_village_origin - recorded_village_origin;
var $td = $(this).find('td.cmpd_value');

92名無しさん:2024/03/22(金) 10:17:02 ID:gP.Mv2OE
var $td = $(this).find('td.cmpd_value');
if ($td.length) {
$td.remove();
}
var $td_sub = $tr_sub.slice(1).eq(idx).find('td.cmpd_value');
if ($td_sub.length) {
$td_sub.remove();
}
$(this).find('td').eq(3).after('<td colspan="2" class="cmpd_value" style="color:maroon;">' +
'<p>' + cmpd_value.toLocaleString() + '</p>' +
'<p style="color:#0066CC;">(' + cmpd_value_origin.toLocaleString() + ')</p>' +
'</td>');
$tr_sub.slice(1).eq(idx)
.append('<td class="cmpd_value" style="color:maroon; white-space:nowrap; padding-left:5px; padding-right:5px;">' +
'<p>' + cmpd_value_fight.toLocaleString() + '</p>' +
'<p style="color:#0066CC;">(' + cmpd_value_fight_origin.toLocaleString() + ')</p>' +
'</td>' +
'<td class="cmpd_value" style="color:maroon; white-space:nowrap; padding-left:5px; padding-right:5px;">' +
'<p>' + cmpd_value_village.toLocaleString() + '</p>' +
'<p style="color:#0066CC;">(' + cmpd_value_village_origin.toLocaleString() + ')</p>' +
'</td>');
});
},
update_flag = function() {
var flag = false;
var data = getStorage({}, 'ixamoko_ar_point');
if (data.id && location.search.replace('?id=', '') == data.id) {
flag = true;
}
$('#apc').val(flag ? '更新する' : '記録する');
return flag;
};

$('div.alliance_member_control:first').append('<span id="section_inner">同盟ポイント比較: <span id="ar_update">( 更新 --/-- --:--:-- ) </span></span>');
$('#ar_update')
.after('<input type="button" id="apc" name="apc" value="" />');
$tr.eq(0).find('th:eq(2)')
.after('<th colspan="2">変動値</th>');
$tr_sub.eq(0).find('th:eq(1)')
.after('<th style="width:35.75px;">合戦ポイント</th><th style="width:35.75px;">内政ポイント</th>');
$tr.slice(1).find('td:eq(3)')
.after('<td colspan="2" class="cmpd_value">-</td>');
$tr_sub.slice(1).find('td:last')
.after('<td class="cmpd_value">-</td><td class="cmpd_value">-</td>');
$('table.common_table1').css('transform', 'rotateX(180deg)').wrapAll($('<div id="moko_alliance_box">').css({'overflow-x': 'scroll', 'width': '683px', 'transform': 'rotateX(180deg)'}));
if (update_flag()) {
disp_apc();
}

93名無しさん:2024/03/22(金) 10:18:08 ID:gP.Mv2OE
$('#apc').on('click', function() {
var data = getStorage({}, 'ixamoko_ar_point');
var str;
if (!update_flag()) {
str = '現在の同盟ポイントを記録をします。\nよろしいですか?';
} else {
str = data.date + 'のデータが消去されます。\nよろしいですか?';
}
if (!confirm(str)) {
return;
}
var point_array = {};
$tr.slice(1).each(function (idx) {
var $td = $(this).find('td');
var ar_member = $td.eq(2).find('a').text();
var ar_point = parseInt(($td.eq(3).text().split('(')[0] || '0').replace(/\,|\s|\n/g, ''));
var ar_point_fight = parseInt(($tr_sub.slice(1).eq(idx).find('td').eq(0).text().split('(')[0] || '0').replace(/\,|\s|\n/g, ''));
var ar_point_village = parseInt(($tr_sub.slice(1).eq(idx).find('td').eq(1).text().split('(')[0] || '0').replace(/\,|\s|\n/g, ''));
var ar_point_origin = parseInt(($td.eq(3).text().split('(')[1] || '0').replace(/\,|\s|\n|\)/g, ''));
var ar_point_fight_origin = parseInt(($tr_sub.slice(1).eq(idx).find('td').eq(0).text().split('(')[1] || '0').replace(/\,|\s|\n|\)/g, ''));
var ar_point_village_origin = parseInt(($tr_sub.slice(1).eq(idx).find('td').eq(1).text().split('(')[1] || '0').replace(/\,|\s|\n|\)/g, ''));
point_array[ar_member] = [ar_point, ar_point_fight, ar_point_village, ar_point_origin, ar_point_fight_origin, ar_point_village_origin];
});
var now = new Date();
var ar_date = now.getMonth() + 1 + '/' + now.getDate() + ' ' + now.getHours() + ':' +
(now.getMinutes() < 10 ? '0' : '') + now.getMinutes() + ':' +
(now.getSeconds() < 10 ? '0' : '') + now.getSeconds();
data.name = $('div.alliance_title').text().trim();
data.id = location.search.replace('?id=', '');
data.date = ar_date;
data.point = point_array;
setStorage('ixamoko_ar_point', data);
return disp_apc();
});
}

// ^ 同盟

94名無しさん:2024/03/23(土) 00:48:33 ID:fk/lLthg
>>91 ID:gP.Mv2OE さん。動作良好の模様です。有り難うございました。

95名無しさん:2024/03/23(土) 08:02:23 ID:FC8eUOQQ
ID:gP.Mv2OE さん、いつもありがとうございます。
自分も>>88さんの症状、一度なったことがありますが拡張機能入れ直したり
何か色々やったら治りましたw
それと同じ原因なのかわかりませんが、たまにログイン情報の章期がズレることがあります。
これも入れ直したりすると治ります。(これはおま環?)

96名無しさん:2024/03/23(土) 08:53:35 ID:fk/lLthg
>>95
章・期はソースの中にべた書きしているか取得して求めているはず(どっちか自信無し)なので
「たまに発生」するのでしたらブラウザのキャッシュとMOKOのストレージクリア(一部か全部かは判らない)で直るのはないでしょうか?

97名無しさん:2024/03/23(土) 20:47:13 ID:5nzJMMgU
スキル候補ですが、2023.12までは、うまく表示されていました。
新天及び2024.1以降のスキルテーブルをコピペするとmokoが作動しません。
どうしたら表示されるのか、どなたか教えていただけませんでしょうか?

98名無しさん:2024/03/23(土) 22:48:50 ID:fk/lLthg
>>97
コピペした途端に表示されなくなるのでしたら、コピペ操作時にどこかでカンマ抜けとかありませんか?
VS CODE上で追記した時にメニューの[表示] - [問題]([Ctrl] + [Shift] + [M])で何か言ってきていませんか?
あとエラー箇所にエラー文を見せてくれる「Error Lens」拡張機能のインストールもお勧めします。

99名無しさん:2024/03/23(土) 23:20:15 ID:fk/lLthg
スキルテーブル追加時の注意事項を図にしてみました。
伝わりやすさを心掛けたつもりですが伝わりにくかったらすみません。

「"skill_candidate_1"」や「"skill_candidate_2"」という集まりの中では
次の要素があるのなら末尾に必ずカンマが無いといけません。
■先頭に新しいスキルテーブルを追加するとき
 https://imgur.com/YKJhasS
■末尾に新しいスキルテーブルを追加するとき
 https://imgur.com/qjmDdmp

100名無しさん:2024/03/24(日) 01:55:23 ID:t0qi27mE
>>73
・道場習得編を使っての待機武将右クリックからのFスキル付与機能
このような右クリックの画面にはいかずにブラウザの右クリックでの挙動にしか
ならないのですが原因になりそうなところはどこかありますでしょうか?

栞/取引検索/合成のツールチップを使用するにはチェックは入っています
取引所でのスキル欄で右クリックを押すと取引検索メニューは表示されます


新着レスの表示


名前: E-mail(省略可)

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

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

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

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