したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |
レス数が900を超えています。1000を超えると投稿できなくなるよ。

戦国IXA ツールスレPart48

1名無しさん:2023/01/18(水) 14:40:14 ID:guo7Kikc
■前スレ
戦国IXA ツールスレPart47
https://jbbs.shitaraba.net/bbs/read.cgi/netgame/15829/1638469272/l50
荒らしは管理人が即出禁にするので注意

801名無しさん:2023/10/17(火) 19:30:54 ID:iOR7Vu4I
>>800
ローカルストレージのixamoko_options(影城主はzs_ixamoko_options)が無ければ
起動時にmoko設定が開くようになります
デベロッパーツールでローカルストレージを確認してみてはいかがでしょうか
今まで問題無かったのに突然そうなったのはいくつか原因が考えられますが
ローカルストレージのアクセス権限が変わった、や
ローカルストレージの容量(だいたい約5MB、ドメイン単位)をオーバーしている、等です

802名無しさん:2023/10/17(火) 21:41:06 ID:/MPMKTlE
>>798
796です
一括兵士訓練へ進むリンクは、拠点ボタンにカーソルを当てて出るリンク以外知らないのですが
他の拠点や地図や秘境のページに移動してるとたまに表示されるくらいで、法則性とかはなかなか見つけられません;
もしかして他に、一括兵士訓練へ入るボタンとかあったりするとありがたいのですが。

あと最近、TOP画面でログインして最初の画面で「告知」が上にあり、ワールド選択が下
(モコをオフにしてる時と同じ構成)の時が急に増えたような気がします
毎回同じってわけじゃないのでどこかでスクリプトが無効になっちゃったりなんでしょかね

803名無しさん:2023/10/17(火) 22:03:08 ID:bl5Bniyg
>>801
見てみましたがixamoko_optionsがないみたいです。
設定した後は出てきますが最初はない状態です。
観覧履歴データの削除でcookieと他のサイトデータおよびキャッシュを削除
したのが原因っぽいです。
戻すにはどうすればよいのでしょうか?

804名無しさん:2023/10/18(水) 00:04:17 ID:iOR7Vu4I
>>803
容量の問題が一番怪しいと思っていたのですが原因の特定は難しいですね

他の拡張機能が悪さをしているかもしれませんのでいったんmoko以外をオフにしてみて
それでも駄目でしたらセキュリティソフト等を確認してみるのが良いかもしれません

ixamoko_options以外もsengokuixa.jpのローカルストレージは消えていますか?

805名無しさん:2023/10/18(水) 07:32:09 ID:iOR7Vu4I
>>727
これの原因がようやくわかりました
2点あって、鯖選択の所でclickだと発火しなかったのでmousedownにしたのと
何期目かを取得するmatchの検索文字列が正しくありませんでした
また>>802の告知が上に来てしまう部分は>>787と同様の対応をしました
ソースは全文です

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"]').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/)[1] || '26';

var season = parseFloat(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;
});
}

function loadMokoLogin() {
var scriptMoko = document.createElement('script');
scriptMoko.setAttribute('type','text/javascript');
scriptMoko.textContent = '(' + MokoLogin.toString() + ')(j$);';
document.head.appendChild(scriptMoko);
}

if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', loadMokoLogin);
} else {
loadMokoLogin();
}

806名無しさん:2023/10/18(水) 09:00:42 ID:bl5Bniyg
>>804
ログイン時はこんな感じです。
https://gyazo.com/6d8b1f5df5e9f1bcc91deb8055c350f8

moko設定完了後はこんな感じです。
https://gyazo.com/5dd7cadd5831442c938c50e01d4b3477

拡張機能すべて切ってやってみましたが変わらずです。
セキュリティソフトでもないようです^^;

807名無しさん:2023/10/18(水) 10:25:13 ID:iOR7Vu4I
>>806
ローカルストレージは原則自分から消しに行かないと消えないので
勝手に消える原因であと考えられるのは
・シークレットモードを使っている
・PCの保存領域(HDDやSSDなど)に限界が来ている
くらいですかね

808名無しさん:2023/10/18(水) 11:04:08 ID:bl5Bniyg
>>807
それも関係ないみたいです。
ちょっと自分でも分からないので様子見てみます。
もう少しいろいろ試してみます。
ありがとうございました。

809名無しさん:2023/10/18(水) 19:34:26 ID:M05M3a5I
>>798 とかの一括訓練が出ない系のあたりですが、
どうもチャット領域のボタンが.gifの時と.pngの場合があるみたいです。
s5_btn_comment_reload.gif
btn_comment_reload.png
これがロードできないとスクリプトがドロップしているように思えます。
上手くいくときは、s5_btn_comment_reload.gifが読まれているときじゃないですか?
他の人で同様の方いません?
もう少し深堀してみます。

810名無しさん:2023/10/18(水) 23:53:45 ID:M05M3a5I
>>809 の画像については、現在は.pngのようでした。
.gifで上手くいく?のはキャッシュにあるものが取れる時だけかも。
画像で404が出る場合はチェックしてみてください。

肝心の一括訓練が出るでないは、陣屋取得のAjaxが未了の時は出ない、完了なら出るという
事みたいです。同期処理にすれば必ず表示されると思います。
上記404も非同期で実行していますので影響があるかもしれませんが、それだけでもないことは確か。
一括訓練が出なかったらリロードで表示されるときもあります。

811名無しさん:2023/10/19(木) 06:59:48 ID:9kDCXRVE
>>805
告知が上に出なくなりましたありがとうございます

>>809>>810
分析ありがとうございます、細かいことはなかなか理解できず申し訳ありません><
404などは出ませんでした

812名無しさん:2023/10/19(木) 10:34:11 ID:.Xgb0ZJs
所領防御陣形について
>>544>>548>>631
いろいろ試しましたが、所領防衛陣の表示がされません。

1,サイドバーに本丸防衛陣同様に所領防衛陣も表示させたい。

https://gyazo.com/be2a3c924b0c12ec4fb4e67488adf047

2,編成画面にて本丸防衛陣同様に所領防衛陣にも兵編成ボタンを追加したい。

https://gyazo.com/23508a63b68bc1f5dc66abaec7272b52


ご教示くださいますようお願い致します。

813名無しさん:2023/10/19(木) 12:00:14 ID:iOR7Vu4I
>>812
1,は>>711にあります
ファイルは普段の/contents/ixa-moko.user.jsではなく
/userscript/defense_formation_info.jsです

2,はそもそも表示がされていないので>>611の後半部分をくまなく設定したあとに、所領用の変更は>>633にあります

814名無しさん:2023/10/19(木) 15:57:24 ID:m7mm72pw
>>611の後半部分。特に、「似たパターンを見つけて」と「少しだけコードを変える」が出来てないんだろうな。
やっと武将の一括登録が出来るようになったが、兵法値が表示されないとの精鋭登録ボタンが表示されない。あとは、武将カードをマウスオーバーした時に兵科・兵数の変更が出来ない。
兵法値に関しては本丸防御陣形でも出なくなってる。あと、所領防御陣形で武将の一括登録する時の左上の表示が「本丸防御陣形」のまま変わらない。
時間無いし一括登録出来るところまで来たからこれで妥協するか・・・。// 本丸防御陣形 以降が怪しいんだろうけど。

815名無しさん:2023/10/20(金) 07:32:15 ID:.Xgb0ZJs
>>813さん
1は出来ました。
2はコツコツ探しながら進めてみます。
ありがとうございました。

816名無しさん:2023/10/20(金) 14:03:59 ID:iOR7Vu4I
もう変えてしまった人は不要なので読み飛ばしてもらっていいのですが
>>611は&& location.pathname != '/card/sub_area_defense_formation_deck.php'を足すとなっていますが
location.pathname != '/card/defense_formation_deck.php'の部分を
!location.pathname.endsWith('defense_formation_deck.php')
に置き換えるのでもいいのではと思いました

|| location.pathname == '/card/sub_area_defense_formation_deck.php'を足す場合は
下の置き換える行の!を無しにすればいいです
全部は見きれていないのでもしかしたら問題あるかもしれません

817名無しさん:2023/10/20(金) 17:40:31 ID:.dOT7B2Q
所領防御陣形に関して>>611のsub_area_defense_formationを足しまくるというのを行った後に、
>>633-635,711,755,763-764,767,794の変更を加えたのち、自分なりに色々コピペして試した結果、
めちゃくちゃな羅列だとは思いますが以下の変更で兵法や精鋭登録ボタンの表示はできるようになりました
ただ精鋭登録をした後、本丸防御陣形の画面に飛ばされてしまいます

// 本丸防御陣形
function elite_category() {
var url = '/card/defense_formation_deck.php';
if (location.pathname == url) {
if ( !$('#breakup_all_command').length ) { return; }

↓↓↓以下に変更↓↓↓

// 本丸防御陣形
function elite_category() {
var honmaru_url = '/card/defense_formation_deck.php',
shoryo_url = '/card/sub_area_defense_formation_deck.php';
if (location.pathname == honmaru_url || location.pathname == shoryo_url) {
if ( !$('#breakup_all_command').length ) { return; }


所領防御陣形での精鋭部隊の一括配置に関しては、
所領防御陣形で一括配置しても本丸防御陣形に配置されていましたが、
おそらく以下の変更で所領防御陣形に配置できるようになりました

// 精鋭部隊 一括配置 データ送信
function bulk_elite_set(san, svi) {
if ( location.pathname == '/card/defense_formation_deck.php' ) {
var href = '/card/defense_formation_deck.php';
var url = href;
} else {

↓↓↓以下に変更↓↓↓

// 精鋭部隊 一括配置 データ送信
function bulk_elite_set(san, svi) {
if ( location.pathname == '/card/defense_formation_deck.php' ) {
var href = '/card/defense_formation_deck.php';
var url = href;
} else if ( location.pathname == '/card/sub_area_defense_formation_deck.php' ) {
var href = '/card/sub_area_defense_formation_deck.php';
var url = href;
} else {

あとは所領防御陣形に一枚ずつ選択しての一括配置ができません
配置0枚の状態で
1枚選択だと登録中の画面で止まってしまう
2枚選択だとできます
3枚選択だと「1武将登録失敗」と表示され2枚のみ
4枚選択だと「2武将登録失敗」と表示され2枚のみ

配置1枚の状態で
1枚選択だとできます
2枚選択だと「1武将登録失敗」と表示され1枚のみ
3枚選択だと「2武将登録失敗」と表示され1枚のみ

配置2枚の状態で
1枚選択だとできます
2枚選択だと「1武将登録失敗」と表示され1枚のみ
>>767の変更はfunction captainRegistration内の他に、
function platoonRegistration内にも似たような部分があったのでそこも変更しました


上記二ヶ所のまともな変更方法と一枚ずつの一括配置方法を教えていだけたら幸いです

818名無しさん:2023/10/21(土) 19:25:53 ID:1eZNuKD2
>>711の取り込みで
811さんのサイドバーに所領陣形も無事達成できたのですが
ブラウザIRONやEDGEなどだと表示されるのですがChromeだと滅多に出ません
表示されるときは「一括訓練」が拠点ボタンにも表示されるようです
同盟員は同じクロームでも普通にでるようでオマカンなのもわかるんですが
やはり関係あるのでしょうか

819名無しさん:2023/10/21(土) 19:48:58 ID:iOR7Vu4I
>>818
>>787と同様の改修をdefense_formation_info.jsにもしましたでしょうか
defense_formation_info.jsだけでなく全てのjsファイルにやることをお勧めします

820名無しさん:2023/10/21(土) 20:01:49 ID:1eZNuKD2
>>819
787のiOR7Vu4IさんのをAUTOSyには取り込ませて頂いて 789の書き換えた方がいいというのも拝見はしてたんですが
書き方がいまいちわからずで><

function DefenseFormationInfo() {
let scriptElement = document.createElement('script');
scriptElement.setAttribute('type', 'text/javascript');
scriptElement.textContent = '(' + DefenseFormationInfo.toString() + ')(j213$);';
document.body.appendChild(scriptElement);
}

とかでいいのかな?と思って試したのですがエラーがでてしまって
そのあとの構文もDefenseFormationInfoと同様に書いたもののそのまま差し込んでもやはりエラーが出てしまい(´;ω;`)ううっ

821名無しさん:2023/10/21(土) 23:04:53 ID:1eZNuKD2
// JQuery、DefenseFormationInfo()の組込
function DefenseFormationInfo() {
if (document.readyState === 'loading') {
let scriptElement = document.createElement('script');
scriptElement.setAttribute('type', 'text/javascript');
scriptElement.textContent = '(' + DefenseFormationInfo.toString() + ')(j213$);';
document.body.appendChild(scriptElement);
}
でエラーは収まりましたが(あまりわかってない)
IxaTraining.jsも直せばクロームでも表示されるようになるのでしょうか

822名無しさん:2023/10/22(日) 02:11:10 ID:iOR7Vu4I
>>821
こんな感じにしました

// JQuery、DefenseFormationInfo()の組込
function loadDFI() {
var scriptElement = document.createElement('script');
scriptElement.setAttribute('type','text/javascript');
scriptElement.textContent = '(' + DefenseFormationInfo.toString() + ')(j213$);';
document.body.appendChild(scriptElement);
}

if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', loadDFI);
} else {
loadDFI();
}

loadDFIという新しいfunction(名前は何でも良いですがDefenseFormationInfoは既に使われているので別名で)でメイン処理をイクサの画面に組み込んで、その新しいfunctionをロード状態によってそのまま呼び出すかもしくはDOMContentLoadedで発火させるかを分岐させる感じです
作業だけ考えたら、var scriptElement =からappendChild(scriptElement);までのカタマリをfunctionでくくって、下のif文をまるっと追加するイメージです

823名無しさん:2023/10/22(日) 05:08:34 ID:1eZNuKD2
>>822
ありがとうございます!
ixa-login.user.jsのほうは記述がもう揃っていたようにおもいますが
ixa-training.user.jsのほうも必要でしょうか

824名無しさん:2023/10/22(日) 09:15:56 ID:iOR7Vu4I
>>823
ixa-training.user.jsもです

// load
function loadIxaTraining() {

// console.debug(document.readyState);
var style = document.createElement('style');
style.setAttribute('type', 'text/css');
style.innerHTML = '' +

/* テーブルスタイル */
'.imc_table { border-collapse: collapse; border: solid 1px dimGray; color: white; }' +
...
(省略)
...
'';
document.head.appendChild(style);

var scriptMeta = document.createElement('script');
scriptMeta.setAttribute('type', 'text/javascript');
scriptMeta.textContent = '(' + IxaTraining.toString() + ')(j213$);';
document.head.appendChild(scriptMeta);

}

if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', loadIxaTraining);
} else {
loadIxaTraining();
}

825名無しさん:2023/10/22(日) 15:59:24 ID:1eZNuKD2
>>824
823です iOR7Vu4Iさま大変ご丁寧にいつも本当にありがとうございます

>恐らくDOMContentLoaded発火前にAutoSynthesisが動いてしまっているかと
が同様に他も動き出してしまってたということだったのでしょうかね(;´・ω・)
AutoSynthesis.js
defense_formation_info.js
ixa-training.user.js
の3点の改修と>>611 M05M3a5Iさまの改修(または>>816)
を済ませ、全jsを改修の結果
サイドバーの本領や所領表記だけでなく
あわせて一括訓練も復旧したもようで常時表示するようになりましたm(_ _m)感謝

素人すぎて「全角スペース」を間違えて織り交ぜてエラーを吐かせたり馬鹿な紆余曲折経てようやく
自力で直してる方が同じようなミスが起きませんように

826名無しさん:2023/11/01(水) 13:06:34 ID:iOR7Vu4I
兵舎に待機中の兵士一覧を追加しました
クリックで開閉です
残り時間のカウントダウンは動かないかもしれません
訓練の即時実行は画面が違うので「-」で上書きしています

$('FORM[name="createUnitForm"]').find('SPAN:eq(0)').css('white-space', 'nowrap');
$('TABLE.paneltable_high TH').width(100);
- };
+ },

//ここから+マーク無し(まるっと追加)
disp_current_training = function() {
$.ajax({
type: 'get',
url: '/facility/unit_list.php',
beforeSend: xrwStatusText,
}).then(function(html) {
$('#img_tiletitle:eq(0)').after('<div id="mk_current_training" style="display: none;">');
$('#mk_current_training').append($(html).find('#ig_deckboxInner:eq(0) .ig_decksection_mid:eq(0)').css('margin', '0 0 5px'));
$('.table_fightlist2 td').css({
'text-align': 'center',
'border-bottom': '1px solid #fff',
'border-left': '1px solid #fff'
});
$('.ig_fightunit_title').css({
'background': 'url(' + CACHE_PASS + '/img/fightlist/bg_grade01.png) no-repeat left top',
'width': '688px',
'height': '30px',
'padding': '2px 2px 0 0',
'text-align': 'center',
'position': 'relative'
});
$('.ig_fightunit_title h3').css({
'color': '#fefefe',
'font-size': '17px',
'font-weight': 'bold',
'padding-top': '5px',
'border-bottom': 'none'
});
$('.ig_fight_statusarea').css('padding', '10px 0 0 10px');
$('.ig_fight_dotbox').css({
'border': '1px dotted #aaa',
'padding': '9px',
'width': '670px',
'margin-bottom': '10px'
});
$('.table_fightlist2').css('width', '670px');
$('.table_fightlist2 th:contains("即時実行")').text('-');
$('.table_fightlist2 td .money_c').closest('td').html('-');
$('.table_fightlist2 td').each(function() {
if ($.isNumeric($(this).text().trim())) {
$(this).text(Number($(this).text().trim()).toLocaleString());
}
});
$('.ig_fightunit_title h3').each(function() {
var num = $(this).text().match(/\((\d+)\)/)[1].replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1,');
$(this).text($(this).text().replace(/\d+/, num));
});
var all_unit_cnt = $('.ig_solder_commentarea').text().match(/\d+/g);
$('.ig_solder_commentarea').html('<strong><span class="all_pool_unit_cnt">' + Number(all_unit_cnt[0]).toLocaleString() + '</span> / ' + Number(all_unit_cnt[1]).toLocaleString() + '</strong>');
var $button = $('<span id="mk_toggle_unit">')
.css({
'padding': '2px',
'background-color': '#e0dcc1',
})
.text('待機中・訓練中の兵士▼▲')
.on('click', function() {
$('#mk_current_training').slideToggle();
});
$('#img_tiletitle:eq(0)').after($('<div style="margin: 5px 0 10px;">').append($button));
});
};
//ここまで+マークなし(まるっと追加)

const fname = document.title.split(' - ')[0];
var soldierCost, i, len, html;

// 兵舎
if (fname.match(/厩舎|足軽兵舎|弓兵舎|兵器鍛冶/)) {
+ disp_current_training(); // 待機訓練中の兵士を表示
desc_soldier(); // 上位兵を上段に表示
soldiersList(); // 兵数入力リスト

827名無しさん:2023/11/01(水) 19:03:59 ID:ulM0eGRM
>>826 ID:iOR7Vu4I さん。
取り込ませていただき、無事の動作を確認しています。有り難うございました。

828名無しさん:2023/11/03(金) 12:03:30 ID:7B3zmrxw
794>>の改修を取り込みましたが、処理が終わらず、コストが変更しません。回避策等ご教授いただけませんでしょうか?

829名無しさん:2023/11/03(金) 13:46:52 ID:iOR7Vu4I
>>828
実行用の行を追加されましたか?

switchDefenceLine(); // card/defense_formation_deck 20221117add
ajaxStopDefenseFormation(); // card/defense_formation_deck
+ mokoSendConvertCostAjax(); // card/defense_formation_deck

oneAutoCheck(); // union

830名無しさん:2023/11/03(金) 14:35:52 ID:7B3zmrxw
>>829様 ご指摘ありがとうございます。
function ajaxStopDefenseFormationの修正漏れと実行行の追加漏れが原因でした。

831名無しさん:2023/11/03(金) 22:02:52 ID:MFBmZZJY
このレスの修正を加えて行ったら、

https://gyazo.com/23b8dba9602bb1a645d5dd827369b5bd

木や綿などのアイコンが・・・消えました!?

どこをいじり過ぎたのか・・・教えてください。

832名無しさん:2023/11/03(金) 23:38:09 ID:iOR7Vu4I
>>831
mokoがエラーで動いてなさそうです
コピペミスや(省略)などのコメント部分をそのままコピペしていないか確認してください

833名無しさん:2023/11/04(土) 22:48:38 ID:m7mm72pw
どうにか所領防御陣形の修正に光が見えてきた。兵法値も表示され、本丸防御陣形とほぼ同様に使用することが出来るようになりました。
修正コードやヒントを出して下さった方々に感謝!

ただ、どうしても改善出来ない点が、
1、精鋭登録ボタン押下→精鋭部隊登録後に本丸防御陣形に飛ぶ(使用頻度少ないので優先順位低め)
2、列の入れ替えで精鋭登録ボタンが消える(本丸防御陣形も同様だし、これも使用頻度少ないので優先順位低め)
3、他城主のプロフィールに登録しているカードのスキル候補が見れない(これが一番困っています)

// Googleサーチ 内の修正がいけなかったのか、それとも別な箇所か。1と2はともかく3の解決策だけでも教えて頂けると助かります。

834833:2023/11/05(日) 01:04:48 ID:m7mm72pw
>>833 の3は自己解決しました。

835名無しさん:2023/11/05(日) 02:10:48 ID:iOR7Vu4I
>>833
1.
function elite_category()内の最初に
var url = location.pathname;
と定義して、登録完了後の画面遷移を
location.href = url;
にしたら本丸でも所領でも動くと思います

2.
>>148を導入しましたでしょうか?

3.
プロフィールが2枚以上で、切り替えたときも動いていますでしょうか?

836833:2023/11/05(日) 03:09:11 ID:m7mm72pw
>>835 早速のご対応ありがとうございます。
1、パッと見分からないので明日やってみます。ちなみに、>>817の導入は必要ですか?
2、>>148は導入済みです。
3、動いています。(スキル候補が表示されます。)
※本丸防御陣形・所領防御陣形共に、配置している武将のスキル候補が下記の様にダブってしまうのも悩みです。
https://gyazo.com/cef5d0ce7cd5c6e94d5bcd3f303ade50

837833:2023/11/05(日) 11:18:42 ID:m7mm72pw
>>835 追加する箇所が適切かは分かりませんが、1は無事に解決しました。
ありがとうございました。

838名無しさん:2023/11/05(日) 13:19:29 ID:iOR7Vu4I
>>836
>>148を導入されているのであれば、非同期通信が完了した時点でもう一度elite_categoryが走るはずなので
精鋭登録ボタンや兵編成ボタンが復帰するはずです
148のif文のところは>>611の後半部分の対応をされていますよね?

プロフィールのスキルテーブルですが、最大で4武将分の武将データが並んでいて
メイン〜サブ3のクリックされたインデックスを取得してそれに対応したカードNo、初期スキル、武将名を取得しないとなので
もし既存のロジックを流用しているのであってもそれなりの改修になったと思いますが
どのような修正をしたか教えていただけませんか?
また、プロフィール画像が表示される城主画面や格付画面、同盟員一覧画面など全てで正常に動作しますか?

839833:2023/11/05(日) 14:08:38 ID:m7mm72pw
>>838
>>148のif文の修正は怪しいと思いつつ「少しだけ変える」が理解不足でして・・・下記の通りに修正。誤りがあればご指摘頂けるとありがたいです。

function ajaxStopDefenseFormation() {
//if ( location.pathname != '/card/defense_formation_deck.php' ) {
if ( location.pathname == '/card/defense_formation_deck.php' || location.pathname == '/card/sub_area_defense_formation_deck.php' ) {
return;
}
else {
〜以下略〜

ajaxStopDefenseFormation(); // card/defense_formation_deck も当然追加済です。

プロフのスキルテーブルに関しては、>>726の修正を元に戻しただけです。
今回の修正をイチから見直すにあたって、当時この修正を行ってスキル候補が表示されなくなることを失念して進めていたことが原因です。
もはや全く同じmokoを皆さんが使っていることもないでしょうし、自分にはこの修正が必要な感じでもなかったので・・・。
プロフ画像に関しては、自身の城主画面・他城主の城主画面・格付画面・同盟員一覧画面、全てスキル候補が表示されます。4武将登録している城主で確認済。
(素人ゆえ、正常に動作という表現は使えませんことをご容赦下さい。)

840名無しさん:2023/11/05(日) 15:32:02 ID:iOR7Vu4I
>>839
if文のところの比較演算子は==ではなく!=ですね
繋ぐ論理演算子も||ではなく&&です
私は>>816で言及した
if (!location.pathname.endsWith('defense_formation_deck.php')) {
にしてしまっております
本丸画面も所領画面もどちらもパスの後ろがdefense_formation_deck.phpで終わる(endsWith)のでこれで動きます
今回の場合は最初に!を付けてnotにしていますので
本丸・所領画面以外だったらreturnする(以降の処理をしない)といった具合です

スキルテーブルは私のmokoとはバージョンが違ったようですね
確認してみたら私のmokoは本丸・所領でもスキルテーブルが
表示されていませんでした

プロフィールや本丸・所領のスキルテーブルが出ていないバージョンの
mokoをお使いの方で、ご要望あればソースをアップします

841833:2023/11/05(日) 16:10:54 ID:m7mm72pw
>>840 なんと単純なコピペミスでしたわ・・・。精鋭登録しても所領防御陣形に留まるようになりました。感謝です!
>>816の件は、時間見つけて勉強がてらやってみます。

※スキルテーブル件、後学のためにもアップして頂けるとありがたいです。

842名無しさん:2023/11/09(木) 22:15:36 ID:4OTXG5yI
//2023.11
"防.黒鐘天鳴.A": ["防.黒鐘天鳴.A", "防.黒鐘天鳴.A", "防.黒鐘天鳴.A", "特.戦陣 吟詠.A", "特.戦陣 吟詠.A"],
"防.不撓ノ仁将.A": ["防.不撓ノ仁将.A", "防.不撓ノ仁将.A", "防.戦陣 凪.A", "防.千兵ノ耀姫.A", "防.戦陣 凪.A"],
"攻.国一丸.S": ["攻.国一丸.S", "攻.国一丸.S", "特.戦陣 吟詠.A", "特.仙剣破斬.SSS", "攻.遠呂智ノ閃光.SS"],
"特.嵐下墨炎.S": ["特.嵐下墨炎.S", "特.嵐下墨炎.S", "特.月詠ノ覇威.SS", "特.月詠ノ覇威.SS", "特.月詠ノ覇威.SS"],

"防.黒鎖ノ悌道.C": ["防.黒鎖ノ悌道.C", "防.黒鎖ノ悌道.C", "防.黒鎖ノ悌道.C", "防.砲扇 風雷火.A", "防.忠魂三州.C"],
"防.虎眼慧明.C": ["防.虎眼慧明.C", "防.虎眼慧明.C", "防.虎眼慧明.C", "防.戦慄ノ遁走曲.A", "防.水鼈.B"],
"特.争鶴ノ囀り.C": ["特.争鶴ノ囀り.C", "特.争鶴ノ囀り.C", "特.争鶴ノ囀り.C", "特.覇・一期一振.A", "特.名人ノ系譜.C"],
//合成専用
"特.戦陣 吟詠.A": ["..","..","..","特.戦陣 吟詠.A",".."],

843名無しさん:2023/11/10(金) 03:24:34 ID:zd.vnSLY
>>842
いつもありがとうございます

844名無しさん:2023/11/10(金) 11:53:10 ID:gs2b08A2
>>842
ほんとにありがたいわー

845名無しさん:2023/11/10(金) 11:53:59 ID:gs2b08A2
>>842
ほんとにありがたいわー

846名無しさん:2023/11/10(金) 13:13:15 ID:ulM0eGRM
わんだふる杯βが始まっている状況下でMOKO設定の全般2 - サイドボックスを合戦向け表示にする に
チェックを入れていると[報告書]ボタンが居なくなってしまいますね。
左上の城主エリアから押せば済む話ですが解消方法をご存じの方ご教授戴けますと幸いです。

847名無しさん:2023/11/10(金) 15:08:20 ID:iOR7Vu4I
>>846
今の所、合戦向けサイドボックスをOFFにしています・・・

848名無しさん:2023/11/10(金) 15:49:33 ID:ulM0eGRM
>>847 ID:iOR7Vu4Iさん。お返事を有り難うございます。私も同じくです。

849名無しさん:2023/11/10(金) 17:58:00 ID:5parJnjQ
サイドボックスのカードを非表示にするもチェックしてると
表示されないものあり。
以下でとりあえず

// サイドボックスのカードを非表示
function nonCardView() {
if (!options.non_cardview) {
return;
}
- $('div.sideBox:has(ul.sidebar_btn_card)').remove();
+ $('div.sideBox:has(ul.sidebar_btn_card)').last().remove();
$('#戦国くじ').show();
}

850名無しさん:2023/11/10(金) 20:52:14 ID:iOR7Vu4I
>>849
私はこうしました
// サイドボックスのカードを非表示
function nonCardView() {
if (!options.non_cardview) {
return;
}
$('div.sideBox:has(ul.sidebar_btn_card):not(:has(img[alt="派閥"]))').remove();
$('#戦国くじ').show();
}

851名無しさん:2023/11/10(金) 22:03:20 ID:eylBo2.w
問題はサイドボックスのカードを非表示にすると報告書等が表示されないのです

852名無しさん:2023/11/11(土) 00:51:57 ID:iOR7Vu4I
>>851
私は合戦向けサイドボックス内で

var $btnReport = $sidebox.find('TABLE.situationBtnTable:has(img[alt="報告書"])');

$btnReport.css('margin', '3px 0 0 3px').insertAfter($sidebox.find('span.medal_b').closest('dl.substatus'));

として報告書を上に持ってきているので特に影響ないですね・・・
消えるということはどこかで消している処理があるはずなので
特定した後に報告書を消さないような処理を追加してあげないとだと思います

853名無しさん:2023/11/11(土) 05:25:44 ID:EnEVKIdQ
$sideBox.eq(2).append($sideBoxInner.eq(1).append($btnReport, $btnWarReport, $information));を消したらとりあえず表示されたけど…

854名無しさん:2023/11/11(土) 18:27:04 ID:5parJnjQ
わんだふる杯βが終わってどうなるかわからないが
以下でとりあえずw

// 合戦向けサイドボックス
function sideboxChange() {
if (!options.sidebox_change) {
return;
}
var $sidebox = $('#sideboxMain');
var $substatus_btn = $('#substatus_btn');
- var $sideBox = $sidebox.find('DIV.sideBox');
- var $sideBoxInner = $sidebox.find('DIV.sideBoxInner');
+ var $sideBox = $sidebox.find('DIV.sideBox:not(:has(img[alt="派閥"]))');
+ var $sideBoxInner = $substatus_btn.parents('div.sideBox').find('DIV.sideBoxInner');

855名無しさん:2023/11/15(水) 00:02:22 ID:guo7Kikc
>>854さん
>>852さん
ありがとうございます
取り入れさせていただいてβ後も問題ないです

856名無しさん:2023/11/18(土) 05:18:54 ID:iOR7Vu4I
スキルテーブルのデータが長くなりすぎてスクロールしたりが
とてもうざったがったので別ファイルにしてみました
ファイルはJSON5にしてみたので、今までと同じ感じで
追加していけると思います
(//でコメントを書けたり、最後に,(カンマ)があったりしても大丈夫です)
【】内にファイル名を書いてますので、ファイルごとに投稿します

【manifest.json】
"web_accessible_resources": [
{
"resources": [
"contents/ixa-login.user.js",
"contents/ixa-moko.user.js",
"contents/ixa-training.user.js",
+ "contents/ixa-skill_table.json5",
"userscript/defense_formation_info.js"
],
"matches": [ "https://*.sengokuixa.jp/*" ]
}
]

857名無しさん:2023/11/18(土) 05:20:01 ID:iOR7Vu4I
【inject_moko.js】
const nullthrows = (v) => {
if (v == null) throw new Error("it's a null");
return v;
}

function injectionCode(src) {
const script = document.createElement('script');
script.src = src;
script.onload = function() {
this.remove();
};

nullthrows(document.head || document.documentElement).appendChild(script);
}

+ function injectionJSON(obj, idName) {
+ const json = document.createElement('object');
+ json.setAttribute('id', idName);
+ fetch(obj).then(function(res) {
+ return res.text();
+ }).then(function(txt) {
+ json.innerHTML = txt;
+ obj.onload = function() {
+ this.remove();
+ };
+ nullthrows(document.head || document.documentElement).appendChild(json);
+ });
+ }

injectionCode(chrome.runtime.getURL('/contents/ixa-moko.user.js'));
injectionCode(chrome.runtime.getURL('/contents/ixa-training.user.js'));
injectionCode(chrome.runtime.getURL('/userscript/defense_formation_info.js'));
+ injectionJSON(chrome.runtime.getURL('/contents/ixa-skill_table.json5'), 'mokoSkillCandidateData');

858名無しさん:2023/11/18(土) 05:21:18 ID:iOR7Vu4I
【ixa-moko.user.js】
- var SKILL_CANDIDATE = {

・・・長いので省略・・・

- };
- var SKILL_CANDIDATE2 = {
- "1948":["特.戦陣 破軍.A","攻.三段撃 激烈.S","攻.魔王三段撃.S","攻.天魔覇旬.S","-"], // 織田の饗宴
- "1949":["特.戦陣 破軍.A","攻.覇道 不如帰.S","特.四神天道.S","攻.覇天の葵紋.S","-"], // 徳川の饗宴
- "1950":["特.戦陣 破軍.A","防.天下の采配.S","攻.太閤の威光.S","特.覇国無双.S","-"], // 豊臣の饗宴
- "6055":["攻.攻め弾正.B","攻.焔 六冥銭.A","攻.冥戦焔騎.B","特.六鳴土蜘蛛.S","-"], // 真田のお年玉
- "6092":["特.戦陣 破軍.A","攻.天戒 五芒星.S","攻.冥王天戒.S","攻.神威 五芒星.S","-"], // 明智のお年玉
- };

↑この部分を別ファイルにするので全削除
↓以下を削除したところに追加(+マーク省略)

// SKILL_CANDIDATE 20231116 別ファイルへ隔離 /contents/ixa-skill_table.json5
var SKILL_CANDIDATE = SKILL_CANDIDATE2 = {};
var JSON5_LIBRARY = 'https://unpkg.com/json5@2/dist/index.min.js';
function getSkillDataFile() {
if (!$.isEmptyObject(SKILL_CANDIDATE) && !$.isEmptyObject(SKILL_CANDIDATE2)) {
return;
}
var txt = $(document).find('#mokoSkillCandidateData').text();
if (!txt) {
setTimeout(getSkillDataFile, 1);
} else {
$.getScript(JSON5_LIBRARY, function() {
var skill_data = JSON5.parse(txt);
SKILL_CANDIDATE = skill_data['skill_candidate_1'];
SKILL_CANDIDATE2 = skill_data['skill_candidate_2'];
return;
});
}
}
getSkillDataFile();

859名無しさん:2023/11/18(土) 05:22:42 ID:iOR7Vu4I
【ixa-skill_table.json5】※新規ファイル作成
元々のスキルデータをほぼコピペでOKです
最初と最後を{}で囲むのと、SKILL_CANDIDATEとSKILL_CANDIDATE2が
あるので2つのセクションに分けています
ファイルの格納先は/contents/の下です(ixa-moko.user.jsと同じフォルダです)

{
"skill_candidate_1":{
"攻.あとのまつり.C":["攻.義兵進軍.C","攻.神風襲来.B","攻.あとのまつり.C","攻.神行法 千里.B","攻.騎神.SS"],
"攻.アマッポ.D":["防.弓隊堅陣.F","攻.騎馬隊剛撃.D","攻.騎突 金剛.C","防.戦國下剋上.B","攻.剛勇無双.B"],
"攻.いくさの子.B":["攻.弓砲鱗撃.C","攻.黒鬼刺.D","攻.鬼神刺.B","攻.破軍星.SS","攻.天魔波旬.S"],
"攻.うつけ者.S":["攻.砲撃 羅刹.B","攻.独眼竜.A","防.捨て奸.B","攻.神算鬼謀 滅.A","-"],

・・・長いので省略・・・

//合成専用
"特.戦陣 吟詠.A": ["..", "..", "..", "特.戦陣 吟詠.A", ".."],

//2023.11 逆転 弱者の戦略
"防.城壁の護り.S": ["特.天綾の誓約.SS", "防.天磐船.SS", "特.四天轟雷.SS", "特.月詠ノ覇威.SS", ".."],

},
"skill_candidate_2":{
"1948":["特.戦陣 破軍.A","攻.三段撃 激烈.S","攻.魔王三段撃.S","攻.天魔覇旬.S","-"], // 織田の饗宴
"1949":["特.戦陣 破軍.A","攻.覇道 不如帰.S","特.四神天道.S","攻.覇天の葵紋.S","-"], // 徳川の饗宴
"1950":["特.戦陣 破軍.A","防.天下の采配.S","攻.太閤の威光.S","特.覇国無双.S","-"], // 豊臣の饗宴
"6055":["攻.攻め弾正.B","攻.焔 六冥銭.A","攻.冥戦焔騎.B","特.六鳴土蜘蛛.S","-"], // 真田のお年玉
"6092":["特.戦陣 破軍.A","攻.天戒 五芒星.S","攻.冥王天戒.S","攻.神威 五芒星.S","-"], // 明智のお年玉
}
}

860名無しさん:2023/11/18(土) 06:22:42 ID:iOR7Vu4I
すみません>>857に間違いがありました
(誤)
obj.onload = function() {

(正)
json.onload = function() {

861名無しさん:2023/11/18(土) 06:48:13 ID:iOR7Vu4I
>>859を補足しておきますと、
① まずixa-skill_table.json5という空のファイルをixa-moko.user.jsと同じフォルダに作ります
② ixa-skill_table.json5をエディタで開いて、
{

}
↑この状態にします
③ 上の②の{と}の空白部分にixa-moko.user.js内の「var SKILL_CANDIDATE = {」 から var SKILL_CANDIDATE2 = {の終わりの「};」までまるっとコピペします
④ 「var SKILL_CANDIDATE = {」 を 「"skill_candidate_1":{」 に変えます
⑤ var SKILL_CANDIDATE = {の終わりの「};」を「},」に変えます
⑥ 「var SKILL_CANDIDATE2 = {」 を 「"skill_candidate_2":{」 に変えます
⑦ var SKILL_CANDIDATE2 = {の終わりの「};」を「}」に変えます

862名無しさん:2023/11/20(月) 01:29:34 ID:nZcN8Ga.
>>856>>861取り込ませて頂きました、いつも分かりやすくありがとうございます

本丸陣形で>>611の修正が上手くできてないのかもしれないのですが
https://gyazo.com/d2751c1e7ff1b6160557858a41704b2d
部隊を一括配置しようとすると部隊IDを取得できませんと固まり
ほかの画面に切り替えると部隊長だけ配置できてる状態になります

>>611の前二つの例示は>>816の方法と合わせて2通り試しましたが
「location.pathname == '/card/defense_formation_deck.php' これ単体なら
location.pathname == '/card/sub_area_defense_formation_deck.php' でもい一つブロックを作って
少しだけコードを変える。」
この部分が17~19か所?あるように思うのですが全部置き換えると一括配置の枠が出なくなりました
「もう一つブロックを作って少しコードを変える」というのが置き換えとは違ったりするのでしょうか?

863名無しさん:2023/11/20(月) 08:09:45 ID:YZ8a4u9E
いつもありがとうございます。ところで、856〜861のを入れたのですが
スキルテーブルが空欄になり、また以下の箇所でエラーが出ているみたいなのですが862さんは上手く取り込めたのでしょうか?
であれば、上手く表示されないのはおま環なのでしょうかね?
エラー箇所「 fetch(obj).then(function(res) { 」

864名無しさん:2023/11/20(月) 11:15:34 ID:QMMpXrjU
改修コードいつもありがとうございます。
>>863私も同じエラーがでてましたが、スキルテーブルの途中に変な場所に改行がありそこを修正したらエラーが出なくなりました。
参考になるといいのですが。

865862:2023/11/20(月) 14:19:50 ID:BanRno4w
>>863
同じエラーを経験しましたが
基本的には説明頂いてる手順+>>860の訂正と
【ixa-skill_table.json5】※新規ファイル作成 で表示されました
これの 拡張子がJson5です
https://gyazo.com/a4c99743c633bdf5ab52a11518fc223e
テキストメモで作成し、名前をそのまま拾って最後に.txtを削除すればできます
開く際は、テキストを開いてから同ファイルをドラッグアンドドロップで開いて普段通り追加記述して保存します
一回開けば関連付けで「このファイルを開くプログラムを〜」にメモ帳アプリが追加されるかと

866名無しさん:2023/11/20(月) 15:29:11 ID:YZ8a4u9E
>>864
>>865
ありがとうございます。
単純な自分の知識不足だったようで、「.json5」という拡張子なんですね。
「ixa-skill_table.json5.js」と、勝手にjsの拡張子を追加してました。
おかげさまでスキル表示されました、ありがとうございました。

867名無しさん:2023/11/20(月) 22:39:55 ID:ulM0eGRM
ID:iOR7Vu4I さん。スキルデータ外部ファイル化対応を有り難うございました。安定稼働中です。

868名無しさん:2023/11/21(火) 15:38:56 ID:iOR7Vu4I
説明不足ですみませんでした
すでに解説頂いたように拡張子が「.json5」です

元々はJSON(.json)で作ろうとしていたのですが
manifest.jsonを色々変えてみるとわかる通り
コメントが書けなかったり、カッコ内の最後にカンマが付いていたりすると
エラーになったりするので派生系のJSON5にしました

json5を利用するためのリソースとして
配布元は公式(json5.org)のところから持ってきているので
無くなったりはしないと思いますが、万が一変更になったりしたら
ここのURLを変更になります

var JSON5_LIBRARY = 'https://unpkg.com/json5@2/dist/index.min.js';

869名無しさん:2023/11/21(火) 17:15:16 ID:iOR7Vu4I
>>862
部隊の一括配置を見てみました

ボタンクリック(通常の動作)で実行した時とmokoから配置した時のネットワークを見てみたところ
全く同じリクエストを送信しても本家はリダイレクトされた後にページが読み込まれるのに対し
mokoの方はリダイレクト後のレスポンスOKが返ってきませんでした
(少しmokoを調整して全く同じにしました)

鯖側で弾いている可能性がありますので
この機能は封印した方が良いかもしれません

もし他の結果が得られた方がいらっしゃいましたら教えてください

870名無しさん:2023/11/21(火) 18:50:59 ID:S0zd8pEA
リアルイベントにはP参戦って書いてあったもんだが今回は無いのな
お面作るの忙しいのかもしれん

871名無しさん:2023/11/21(火) 18:51:49 ID:S0zd8pEA
ごめん、スレ違いw

872862:2023/11/21(火) 22:57:30 ID:Ytr6niMw
>>869
ID:iOR7Vu4Iさんありがとうございます
なるほど、鯖側ではじいてる可能性で一括配置は危ないかもなんですね
推移を見守らせて頂きまするm(_ _"m)

873名無しさん:2023/11/22(水) 10:30:15 ID:bl5Bniyg
>>872
私は一括配置、本丸でも所領でも出来るのでたぶん修正が完璧でないのだと思います
ただ私も所領に移植するのに、だいぶ苦労したので何処を直せばいいのかは個所数が
多すぎて分かりません

874名無しさん:2023/11/22(水) 19:13:39 ID:iOR7Vu4I
>>873
function captainRegistration内の$.ajaxの手前までは処理をしており
その後のthenはDeferredのresolveの方ではなくrejectの方にいきます(rejectのfunctionは追加しました)
getAllResponseHeadersでレスポンスの中身をみると空です
画面から武将配置した時とmokoからした時のフォームデータの比較は
上で言いました通り全く同じです

原因が本当に分からないのですが、
873さんはブラウザの起動時オプションでno-corsを設定していたり、
マニフェストのバージョンを3に上げていなくてmokoをinjectしていなかったりしていませんか?

875名無しさん:2023/11/22(水) 21:17:59 ID:bl5Bniyg
>>874
特にこれといって設定はしておりません。
もちろんmanifestもバージョン3です。
基本ここで出てる修正を行っているだけですが一括配置出来ています。
直している最中、部隊長だけセットされる現象があった気がしますが
どこを直して解消したのかわかりません。
>>611の修正がある程度、知識がないと修正出来ないので、その辺が
怪しいとは思います

876名無しさん:2023/11/23(木) 08:04:28 ID:M05M3a5I
>>862 さんへ
>>611 ご参考: 以下の記事は、プログラミングスキルがある方向けのヒントです。
机上デバッグ、ウオークスルーテストができる方向けの内容になります。

それ以降に色々な具体的な改修内容がコメントされていますので、
これらの方を参考にされることを奨めます。

>もい一つブロックを作って少しだけコードを変える。
の意図は、
本丸防御陣形だけを条件にした処理がある場合は、所領防御陣形用の類似の
処理が必要かどうかを判断して、同じでよければ条件を加えて、別処理なら
分けるという意味になります。

877名無しさん:2023/11/23(木) 09:25:50 ID:iOR7Vu4I
>>875
情報ご提供ありがとうございます
確かに862さんのは部隊IDが取得できませんになっていますので
私のとは違う問題ですね
そこの処理を通っているのであればDeferredはresolveのはずなので

もしかしたら私のはブラウザの問題かもしれません

>>862
876さんが言っているのは、例えば
①本丸/所領のどちらでもやっていい処理なら後ろに所領用の条件を追加する
if (location.pathname != '/card/deck.php' && location.pathname != '/card/defense_formation_deck.php') && location.pathname != '/card/ sub_area_defense_formation_deck.php')) {
//見た目を変えているだけなので本丸と所領の区別必要なし
$('ul.pager').css('padding', '6px 0');
$('ul.pager li').css('margin', '0 1px');
}

※私は本丸と所領をひっくるめて1つの条件にしています
if (location.pathname != '/card/deck.php' && !location.pathname.endsWith('defense_formation_deck.php')) {

②本丸と所領で違う値をセットしたりする場合はブロックを分ける
if (select_assign_no == 6 || select_assign_no == 7) {
free_deck = $ig_unitchoice_reinforce.find('li:contains("[---新規部隊を作成---]")').length;
start_deck = 8 - free_deck;
use_deck = 2 - free_deck;
} else if (select_assign_no == 8) {
free_deck = $ig_unitchoice_assault.find('li:contains("[---新規部隊を作成---]")').length;
start_deck = 8;
use_deck = 1 - free_deck;
} else if ( location.pathname == '/card/defense_formation_deck.php') ) {
use_deck = html.find('div[data-sort="0"] a').length;
free_deck = 5 - use_deck;
start_deck = 5 - free_deck;
//ここから追加(所領は最大列数が4なので)
} else if ( location.pathname == '/card/sub_area_defense_formation_deck.php') ) {
use_deck = html.find('div[data-sort="0"] a').length;
free_deck = 4 - use_deck;
start_deck = 4 - free_deck;
//ここまで追加
} else {
free_deck = $ig_unitchoice.find('li:contains("[---新規部隊を作成---]")').length;
start_deck = 6 - free_deck;
use_deck = 6 - free_deck;

※私は本丸と所領をひっくるめて1つのブロックにしています
} else if ( location.pathname.endsWith('defense_formation_deck.php') ) {
var max_line = location.pathname.indexOf('sub_area_') == -1 ? 5 : 4; //最大列数
use_deck = html.find('div[data-sort="0"] a').length;
free_deck = max_line - use_deck;
start_deck = max_line - free_deck;

878名無しさん:2023/11/23(木) 15:01:45 ID:M05M3a5I
兵士編成の一括セットで、わんだふる杯(仮)β以降、豪族××という兵種が増えて邪魔なので削ってみた。
副作用があるかかは不明ですが、スッキリした。

// 兵種リスト
function createSoldiersList() {
var type_num, now_num, type,
list1 = '', list2 = '';
$('input[id^="pool_unit_cnt"]').each(function() {
now_num = $(this).val();
type_num = ($(this).attr('id').match(/\d+/g) || [''])[0];
type = $('#unit_name_str_' + type_num).val();
if (!type_num) {
return;
}
// わんだふる杯(仮)β 以降、 豪族〇〇という兵種が増えたが、プレーヤーは使えないのでリストに入れないようにする
// list1 += '<option value="' + type_num + '">' + type + '</option>';
// list2 += '<option value="' + type_num + '">' + type + '(' + now_num + ')</option>';
if(!type.includes('豪族')) {
list1 += '<option value="' + type_num + '">' + type + '</option>';
list2 += '<option value="' + type_num + '">' + type + '(' + now_num + ')</option>';
}
});
return [ list1, list2 ];
}

879名無しさん:2023/11/25(土) 08:37:46 ID:iOR7Vu4I
>>878
私のでは出ないのでなんでだろうと思い調べたら
if (!type_num) {
return;
}

の次に

if (type_num >= 347) {
return true;
}
が入っていました
type_num347以降は訓練兵です
ただイベント兵(過去のサンタやキューピッドなど)が対象外になってしまうので
どのみちその都度対応しないとではありますが

880862:2023/11/26(日) 03:21:28 ID:0tkRQ.9s
>>873
やはり直せてない所があるということなんですね;
>>876 ID:M05M3a5Iさん
情報ありがとうございます。なかなか不出来な私には難しいようで><
>>877 ID:iOR7Vu4Iさん
ありがとうございます
&& のほう(>>611の中段)は①のような記述に
|| のほう(611の上段)は
if (location.pathname == '/card/deck.php' || location.pathname.endsWith('defense_formation_deck.php')) {
としておりました
2つに関しては打ち漏れはなさそうな‥(記述が間違ってる?)

で問題は>>611の下段の
location.pathname == '/card/defense_formation_deck.php'  単体〜というのが
あまりよくわかってなくて検索したところをどう書き換えていいのやらで;
上記が本丸陣形のURLのパス名というのはわかるのですが
ブロックをもう一個作るとは所領のURLのパス名('/card/sub_area_defense_formation)の記述を
&や||でつなぐのか
if ( location.pathname == '/card/defense_formation_deck.php' )
の下に
if ( location.pathname == '/card/sub_area_defense_formation_deck.php )
とか並記で書けばいいのかまったくわからず><

https://gyazo.com/fa87156b509e3ac871cc433df6ff7795
部隊IDが取得できませんで1武将だけ登録して固まる状態のままです

②は
} else if ( location.pathname == '/card/defense_formation_deck.php') ) {
から
//ここまで追加 までの部分を
下に書いていただいてる ※私は本丸と所領を〜
の5行に差し替え頂きました

881名無しさん:2023/11/26(日) 03:58:06 ID:iOR7Vu4I
>>880
長いので最初の説明は
location.pathname → パス
'/card/defense_formation_deck.php' → 本丸
'/card/sub_area_defense_formation_deck.php' → 所領
とします

パス == 本丸 や パス != 本丸 の後ろに
パス == 所領 や パス != 所領 を追加するので基本的にOKです(本丸の前に通常部隊の式があっても同じです)
パスと所領の間の演算子は、本丸の方が==だったら所領も==で、!=だったら所領も!=です
追加する時につなぐ演算子はパスと本丸の間が==だったら||で、!=だったら&&で大丈夫です

例えば実際のif文ですと

[修正前]
if (location.pathname == '/card/defense_formation_deck.php') {

[修正後]
if (location.pathname == '/card/defense_formation_deck.php' || location.pathname == '/card/sub_area_defense_formation_deck.php') {

になりますし、手前に通常部隊の式が入っているバージョンの場合は

[修正前]
if (location.pathname != '/card/deck.php' && location.pathname != '/card/defense_formation_deck.php') {

[修正後]
if (location.pathname != '/card/deck.php' && location.pathname != '/card/defense_formation_deck.php' && location.pathname != '/card/sub_area_defense_formation_deck.php') {

になります

ただし>>877でもある通り、本丸と所領でが仕様が違う等(列の数やコストの表示位置など)の場合は
単純にif文を繋げただけだと正しい動作にならないです

882名無しさん:2023/11/26(日) 04:03:05 ID:iOR7Vu4I
ブロックを作るというのは、>>881の②で言っている本丸と所領で違う記述をする場合です

これは>>877の「//ここから追加(所領は最大列数が4なので)」の部分を参考にしてください

883名無しさん:2023/11/26(日) 05:24:20 ID:M/KZBRAo
お世話になってます。
ふと画面を見たら影城主を表示している状態でセッションタイムアウトしそうだったので[時間リセット]ボタンをクリックしたら「影城主の登録がありません」のエラーダイアログが表示されました。
前提を確認する判定式の追加で対応可能に見受けられますが良き改修案はございますでしょうか。

884名無しさん:2023/11/27(月) 08:58:40 ID:iOR7Vu4I
>>883
そちら恐らく私がだいぶ前に作ったもので、最新版はこちらになります

// セッションタイムアウト更新(影城主登録必須)
function resetSessout() {
var switchUser = function(time) {
var def = new $.Deferred,
flg = false,
sendSwitch = function(time, def) {
Info.log('ユーザー切替中...');
$.ajax({
type: 'post',
url: '/user_change.php',
beforeSend: xrwStatusText,
}).then(function() {
if (flg) {
setTimeout(function(){def.resolve();}, time * 1000);
}
else {
flg = true;
setTimeout(sendSwitch.bind(null, time, def), time * 1000);
}
});
}

sendSwitch(time, def);

return def.promise();
}

$('<input type="button" value="時間リセット" />')
.css({
'border': '.5px #fff solid',
'font-family': '"MS P明朝","細明朝体","ヒラギノ明朝 Pro W3"',
'font-weight': 'bold',
'color': '#f5f5f5',
'background-color': '#9A2B25',
'border-radius': '4px',
'box-shadow': '0 0 1px #000',
'text-shadow': '0 0 2px #000',
'font-size': '8px',
'width': '58px',
'height': '16px',
'margin-left': '6px'
})
.on('click', function() {
if ($('p.profile_head.unregist').length) {
alert('影城主未登録のため城主切替によるセッションタイムアウトの更新ができません');
return false;
}
$(this).prop('disabled', true).css('background-color', 'gray');
nowLoading();
Info.title('セッションタイムアウトを更新中...');
Info.log('更新開始');
var new_time = ~~(new Date() / 1000);
login_data.endtime = new_time;
setStorage('ixamoko_login_data', login_data);
window.document.getElementById('ixamoko_sessout').remove();
timeoutCountdown();
$(this).appendTo('#ixamoko_sessout');
switchUser(1.5).then(function() {
Info.log('完了処理中...');
setTimeout(Info.title, 1500, '完了', location.href.split('#')[0]);
});
})
.appendTo('#ixamoko_sessout');
}

885862:2023/11/27(月) 12:06:50 ID:WC0HTZWc
>>881.882
細かく説明ありがとうございます;
旧来の方式>>611で説明頂いた記述、>>877>>833ひっくるめて1つの条件の記述
どっちの両方法で作成したものの打ち漏れはない気はしているのですが、どこかミスをしたままなのか
部隊長IDが取得できずは直りませんでした;

4武将を1部隊にではなく、「部隊長を一括配置モード」は
https://gyazo.com/dfd267790a81bff1e277db084a7866cd
https://gyazo.com/6b058aa72a4d47ce8810f0c25b3d4406
コスの計算部分が本領と所領が8+0で80/60と21で6021など変な表記はありますが普通に動きます

単体の場合?のif (location.pathname == '/card/defense_formation_deck.php') {
については>>881の例示の記述を頂きました

「本丸と所領でが仕様が違う等(列の数やコストの表示位置など)」に関しては具体的な箇所が
例示の // 「デッキ 使用状態の取得」の箇所以外わからずで、手が出せませんでした;

886862:2023/11/27(月) 12:18:04 ID:WC0HTZWc
else if 本領(本丸)であれば 〜 最大5列なので 5-使用数=FREEDECK 配置開始箇所はそのFREEDECK以降にセットしろ
else if 所領であれば 〜 最大4列なので 〜
というブロックを作るという意味はたぶん理解はできましたが、具体的な科目(箇所)がやはりわかりませんでした_| ̄|○すみません

887862:2023/11/27(月) 14:01:11 ID:WC0HTZWc
たびたびすみません
古いモコの方では部隊長ID取得できないというエラーはでなかったので
記述の差分を少しずつ戻していったところ
>>767 の
+ var idx = 9;
+ var idx = 14;

- $img = $html.find('img[alt="解散"]').eq(start);
+ $img = $html.find('img[alt="解散"]').eq(start - idx);
の三カ所を元に戻すと部隊長ID取得され4武将配置できるようになりました
>>611の修正を取り込んでることを前提に行頭に+-を付けてますが と注記があるのでそもそも失敗してるからこの修正をするとずれたりしてるという事かな)
その再のコストの表示も8/60など正しいコス表記に戻りました
ただ所領の方は未だに一括配置はできないままですが汗

色々漏れがあるというだけなんでしょうね…

888名無しさん:2023/11/27(月) 14:38:08 ID:iOR7Vu4I
>>887
そこのところは私もちょこちょこいじっていて
start - idx
ではなく
start
になってました
get_deck_statusは関連している部分が多いので影響調査が完全に終わっていないです
そして相変わらず私のはレスポンスが返ってこないので動作確認できません・・・

889名無しさん:2023/11/27(月) 14:40:46 ID:iOR7Vu4I
>>883
すみません、>>884を少し編集しました

// セッションタイムアウト更新(影城主登録必須)
function resetSessout() {
var switchUser = function(time) {
var def = new $.Deferred,
flg = false,
user_arr = ['本', '影'];
if (document.body.classList.contains("current_owner_sub")) {
user_arr = user_arr.reverse();
}
var sendSwitch = function(time, def) {
Info.log(user_arr[0] + '城主 ⇒ ' + user_arr[1] + '城主 切替中...');
$.ajax({
type: 'post',
url: '/user_change.php',
beforeSend: xrwStatusText,
}).then(function() {
if (flg) {
setTimeout(()=>def.resolve(), time * 1000);
}
else {
flg = true;
user_arr = user_arr.reverse();
setTimeout(sendSwitch.bind(null, time, def), time * 1000);
}
});
}
sendSwitch(time, def);
return def.promise();
}

$('<input type="button" value="時間リセット" />')
.css({
'border': '.5px #fff solid',
'font-family': '"MS P明朝","細明朝体","ヒラギノ明朝 Pro W3"',
'font-weight': 'bold',
'color': '#f5f5f5',
'background-color': '#9A2B25',
'border-radius': '4px',
'box-shadow': '0 0 1px #000',
'text-shadow': '0 0 2px #000',
'font-size': '8px',
'width': '58px',
'height': '16px',
'margin-left': '6px'
})
.on('click', function() {
if ($('p.profile_head.unregist').length) {
alert('影城主未登録のため城主切替によるセッションタイムアウトの更新ができません');
return false;
}
$(this).prop('disabled', true).css('background-color', 'gray');
nowLoading();
Info.title('セッションタイムアウトを更新中...');
Info.log('更新開始');
var new_time = ~~(new Date() / 1000);
login_data.endtime = new_time;
setStorage('ixamoko_login_data', login_data);
window.document.getElementById('ixamoko_sessout').remove();
timeoutCountdown();
$(this).appendTo('#ixamoko_sessout');
switchUser(1.5).then(function() {
Info.log('完了処理中...');
setTimeout(Info.title, 1500, '完了', location.href.split('#')[0]);
});
})
.appendTo('#ixamoko_sessout');
}

890名無しさん:2023/11/27(月) 14:50:43 ID:iOR7Vu4I
>>487
今更ですがこれ作ってみました

// === 合成・取引・アルバム ===

//ここからまるっと追加(+マーク省略)
function gotoLvUp() {
if (location.pathname != '/union/learn_result.php') {
return;
}
if (!$('img[alt="合成成功"]')) {
return;
}

var $p = $('<p class="union_result_form_btn goto_btn">'),
cid = $('div[id^="cardWindow_"]').attr('id').match(/\d+/);
$('<a>')
.attr('href', 'javascript:void(0);')
.on('click', function() {
if (!cid) {
alert('カードIDが取得できませんでした');
return false;
}
$.ajax({
type: 'post',
url: '/union/levelup.php',
data: {'union_type': 1},
beforeSend: xrwStatusText,
}).then(function(html) {
$.getScript(CACHE_PASS + '/js/union.js', function() {
$(document).find('form').children().unwrap();
var $deck_file = $(html).find('#deck_file');
$('body').append($deck_file.hide());
select_card(cid, 1);
});
});
})
.appendTo($p)
.append('<img src="' + CACHE_PASS + '/img/union/btn_skillup.png" alt="スキル強化">');

$('.back_btn').after($p);
$('.goto_btn').css({
'margin': '10px 0',
'width': '740px',
'height': '40px',
'display': 'block',
});
$('[alt="スキル強化"]').css({
'width': '120px',
'height': '40px',
'opacity': '1',
});
}
//ここまで

// 合成:スキル強化・削除で対象が一つの場合のみ自動チェック
function oneAutoCheck() {
if (!options.one_auto_check) {


かなり下


+ gotoLvUp(); // union
oneAutoCheck(); // union
unionCardCheck(); // union

891862:2023/11/27(月) 21:46:51 ID:WC0HTZWc
>>888
たびたびありがとうございます 
9と14は 有効にし
$img = $html.find('img[alt="解散"]').eq(start); の記述だけそのままにしても
確かに問題なく組めるようです
あいかわらず所領は組もうとすると動くものの本領に組んでしまうので
きっとどこか漏れてるんだろうなあ…
所領さえ諦めれば一先ず問題はなさそうなので様子をみますね
ありがとうございましたm(_ _"m)

892名無しさん:2023/11/27(月) 23:23:15 ID:iOR7Vu4I
>>891
データを送信する時に付与する値にselect_assign_noというパラメータがあり、これが本丸は9で所領は14です

所領の時は14、という処理が抜け落ちているので所領画面でも本丸に組まれてしまうのだとおもいます

893名無しさん:2023/11/28(火) 21:18:23 ID:M/KZBRAo
ID:iOR7Vu4I さん。多忙で返信が遅くなりすみませんでした。
>>889 >>890とも取り込ませていただきました。動作良好かと思います。有り難うございました。

894名無しさん:2023/12/01(金) 16:55:15 ID:M/KZBRAo
>>889 ID:iOR7Vu4I さん。
[時間リセット]ボタンクリック時にもしかして本城主のセッションタイムアウトまでの時間がリセットされてない?
という事象を確認しています(あと数分の表示になる)。
まだメンテが明けていないので前提条件やら操作やら再現性やらのお知らせはのんびりお待ちくださいませ(というかすんげー残業予定有りですw)。

895名無しさん:2023/12/01(金) 17:10:58 ID:M/KZBRAo
>>894 について。
メンテ明けで今すぐ出来る確認をしてみました。本城主でのみの操作です。
1.セッションタイムアウト表示の状態でログイン
2.[時間リセット]をクリック
3.完了処理後、やはりセッションタイムアウト表示のまま
想定した仕様通りという事でしたらその旨ご回答ください。どうぞ宜しくお願い申し上げます。
https://imgur.com/44bWgIT

896名無しさん:2023/12/01(金) 21:11:59 ID:M/KZBRAo
>>895 続いてほったらかしにしていて残り31分48秒の時点で本城主で操作した場合になります。
1.画面を確認して[時間リセット]をクリック
2.セッションタイムアウト更新操作が行われる
3.完了後のセッションタイムアウト残り時間が3時間になっておらず残り31分07秒の状態になっている。
https://imgur.com/9bBLo3j

897名無しさん:2023/12/02(土) 01:06:53 ID:M05M3a5I
>>891
9とか14のマジックナンバーこういうことです。

通常デッキが0から5(6部隊)、加勢が6と7(2部隊)、強襲が8(1部隊)、
本丸が9から13(5部隊)、所領が14から17(4部隊)となります。

このあたりが、サックと見抜けたら改造ポイントも割と早く分かります。

898名無しさん:2023/12/02(土) 01:48:17 ID:iOR7Vu4I
>>896
セッションタイムアウトの状態でログインしている事がおかしいので
まず>>728の暫定対応を導入していたら、前半のelse if全部と後半のelseの暫定対応部分は削除してください
その後>>805を対応してください

899名無しさん:2023/12/02(土) 04:48:55 ID:M/KZBRAo
>>898 ID:iOR7Vu4Iさん。返信を有り難うございます。
ご指示の通りに>>728の改めての適用後に暫定対応箇所を2箇所撤廃し、>>805の対応を全て洗い替えしました。

この状態で本城主で[時間リセット]を行った結果が下図の通りになります。
2時間59分59秒程度にリセットして欲しかった所、期待通りに動作していない模様です。
https://imgur.com/bScqeVy
何か気になる点がありましたらご助言戴けますと幸いです。
ログイン時の挙動については明日にでも確認してみます。

900名無しさん:2023/12/02(土) 08:55:00 ID:iOR7Vu4I
>>899
切替前にリセット処理をしてしまっていたので切替にかかった時間が経過していました
切替後の画面更新前にリセット処理をするようにしました

// セッションタイムアウト更新(影城主登録必須)
function resetSessout() {
if ($('p.profile_head.unregist').length) {
return;
}

function switchUser(time) {
var def = new $.Deferred,
flg = false,
user_arr = ['本城主', '影城主'];
if (document.body.classList.contains("current_owner_sub")) {
user_arr = user_arr.reverse();
}
var sendSwitch = function(time, def) {
Info.log(user_arr[0] + ' ⇒ ' + user_arr[1] + ' 切替中...');
$.ajax({
type: 'post',
url: '/user_change.php',
beforeSend: xrwStatusText,
}).then(function() {
if (flg) {
setTimeout(()=>def.resolve(), time);
}
else {
flg = true;
user_arr = user_arr.reverse();
setTimeout(sendSwitch.bind(null, time, def), time);
}
});
}
sendSwitch(time, def);
return def.promise();
}

$('<input type="button" value="時間リセット" />')
.css({
'border': '.5px #fff solid',
'font-family': '"MS P明朝","細明朝体","ヒラギノ明朝 Pro W3"',
'font-weight': 'bold',
'color': '#f5f5f5',
'background-color': '#9A2B25',
'border-radius': '4px',
'box-shadow': '0 0 1px #000',
'text-shadow': '0 0 2px #000',
'font-size': '8px',
'width': '58px',
'height': '16px',
'margin-left': '6px'
})
.on('click', function() {
$(this).prop('disabled', true).css('background-color', 'gray');
nowLoading();
Info.title('セッションタイムアウト更新 - ixamoko');
Info.log('更新開始');
$(this).appendTo('#ixamoko_sessout');
switchUser(1500).then(function() {
Info.log('完了');
login_data.endtime = ~~(new Date() / 1000);
setStorage('ixamoko_login_data', login_data);
$('#ixamoko_sessout').remove();
timeoutCountdown();
Info.title('完了', location.href.split('#')[0]);
});
})
.appendTo('#ixamoko_sessout');
}


新着レスの表示


名前: E-mail(省略可)

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

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

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

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