したらば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
荒らしは管理人が即出禁にするので注意

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');
}

901名無しさん:2023/12/02(土) 09:59:20 ID:4OTXG5yI
//2023.12
"特.転歌.A": ["特.転歌.A", "特.転歌.A", "特.風狂幻術.B", "特.入来神舞.S", "特.入来神舞.S"],
"防.北咲王花.A": ["防.豊家ノ滅塞.B", "防.豊家ノ滅塞.B", "防.龍神ノ加護.A", "防.戦陣 凪.A", "防.戦陣 無縫.A"],
"特.叛虐之貴公子.S": ["特.叛虐之貴公子.S", "特.叛虐之貴公子.S", "攻.開闢ノ逆鉾.SS", "攻.十束ノ神域.SS", "攻.十束ノ神域.SS"],
"防.聖夜ノ慈姫.S": ["防.聖夜ノ慈姫.S", "防.聖夜ノ慈姫.S", "防.禍津日神ノ謀.SS", "防.黄泉醜女ノ屍兵.SS", "防.黄泉醜女ノ屍兵.SS"],

"防.関東代官頭.C": ["防.関東代官頭.C", "防.関東代官頭.C", "防.関東代官頭.C", "防.宇和ノ歌将.C", "防.絶界煉獄.B"],
"防.乱世ノ残響.C": ["防.乱世ノ残響.C", "防.乱世ノ残響.C", "防.乱世ノ残響.C", "防.百万石長壁.B", "防.死出ノ田長.B"],
"攻.強虔ノ使徒.C": ["攻.強虔ノ使徒.C", "攻.強虔ノ使徒.C", "攻.強虔ノ使徒.C", "攻.孤炎.A", "攻.八虐無道.B"],

902名無しさん:2023/12/02(土) 14:55:15 ID:M/KZBRAo
>>900 ID:iOR7Vu4I さん。
色々とご対応くださり有り難うございます。
恐らく私が>>894>>899 で書いた意図が伝わっていないと思い改めて困っている点をお知らせしますね。
1.IXAのセッションタイムアウトしました画面が表示されていて改めてログインし直した時
  →「セッションタイムアウトまで 00:00:00」の赤表示になっている。
2.1.の状態から[時間リセット]をクリックした場合→リセット処理は行われるがタイムアウト時間が2時間59分50ウン秒に直る訳ではなく
  →「セッションタイムアウトまで 00:00:00」の赤表示が引き続き表示される。
3.>>899で示した内容ですがセッションタイムアウトしていない状態で[時間リセット]を行った場合
  →タイムアウト時間が2時間59分50ウン秒に直る訳ではなく、恐らく処理に要した秒数だけ残り時間が減っただけに見受けられる。
という次第です。

もしID:iOR7Vu4Iさんが1.も2.も3.もちゃんとリセットがかかって
タイムアウト時間が2時間59分50ウン秒に直っていますよという事でしたら
こちらのMOKOと大前提が違っていると思われますので改めて相談させて戴けますか。
どうぞ宜しくお願いいたします。

添付画像は >>900 適用後の挙動になります。
https://imgur.com/undefined

903名無しさん:2023/12/02(土) 15:41:57 ID:iOR7Vu4I
>>902
問題の切り分けが必要ですね
開発ツールのアプリケーションタブからローカルストレージを見てみて、
ixamoko_login_dataは正しく入っていますでしょうか?
章、ログイン時間(endtime)、期、ワールドが入っているはずです

ログイン時間は1970/1/1からの経過時間なので
エクセルか何かで計算しないとなので
A1セル→1970/1/1 を入力(固定値)
A2セル→endtimeの数値を入力
A3セル→以下の式を入力
=text(A1+(A2+32400)/86400,"yyyy/mm/dd hh:MM:ss")

これでちゃんとログインした時間が取れているか確認してください

904名無しさん:2023/12/02(土) 16:09:32 ID:iOR7Vu4I
話ぶった切りですが、最近イベントで期間限定で兵士パラメータが変わる事が多いので
実施期間と変更後の兵士パラメータを追記(書き直すのでもOK)すると
その期間だけ兵士パラメータを変更してくれるロジックを組み込みました

ちょっと分かりにくくてすみませんが、
//=== 期間限定の… start ===//から
//=== 期間限定の… end ===//までをまるっと追加です

次のイベントで変更があった時は
/*** 該当の期間と… ここから ***/から
/*** 該当の期間と… ここまで ***/までをコピって下に追記します
(追記でも問題ありませんが、それだけ処理が増えるので書き直しのが良いです)

簡単な英語が分かれば分かると思いますが、開始時刻・終了時刻をいれて
26の部分は章で、兵科名称と攻撃力・防御力・移動速度・破壊力
(今回は上級兵の攻撃と速度だけ)を書けばOKです

var SOLDIER = (function() {
var soldier_data = {
npc: {
"浪人" : { …長いので省略…

},
26: {
"足軽" : { …長いので省略…

},
};

//=== 期間限定の兵士パラメータ対応 start ===//
/*** 該当の期間とパラメータ設定 ここから ***/
var unixTime = new Date(), startTime = [], endTime = [], specialParam = {}; // 変更不要
// 2023.12 夜襲戦
// 期間①
startTime.push('2023/12/16 10:00:00');
endTime.push('2023/12/19 1:00:00');
// 期間②
startTime.push('2023/12/22 10:00:00');
endTime.push('2023/12/25 1:00:00');
// 変更後の兵士パラメータ
specialParam = {
26: {
"武士": {attack: 29, moving: 19},
"弓騎馬": {attack: 31, moving: 23},
"赤備え": {attack: 30, moving: 24}
}
};
/*** 該当の期間とパラメータ設定 ここまで ***/

var len = startTime.length;
if (startTime.length > endTime.length) {
len = endTime.length;
}
for (var i = 0; i < len; i++) {
if (unixTime >= new Date(startTime[i]) && unixTime <= new Date(endTime[i])) {
var keys1 = Object.keys(specialParam);
for (var j = 0; j < keys1.length; j++) {
var key1 = keys1[j];
if (soldier_data[key1]) {
var keys2 = Object.keys(specialParam[key1]);
for (var k = 0; k < keys2.length; k++) {
var key2 = keys2[k];
if (soldier_data[key1][key2]) {
Object.assign(soldier_data[key1][key2], specialParam[key1][key2]);
}
}
}
}
}
}
//=== 期間限定の兵士パラメータ対応 end ===//

function SOLDIER() { return $.extend({}, data); }

$.extend(SOLDIER, {

905名無しさん:2023/12/02(土) 16:10:59 ID:M/KZBRAo
>>903 ID:iOR7Vu4I さん。ご返信を有り難うございます。
ご指示の通りにixamoko_login_dataを取り出し1970/1/1とendtimeを用いて
式に当てはめてみました。結果1959/04/23 14:46:40という想定していなかった値が返ってきました。
PCのシステム日時は手元の電波時計と同じ時刻を指しており、タイムゾーンも「UTC+09:00 大坂、札幌、東京」となっております。
またChromeの優先言語も日本語が1位(英語が2位)となっています。
示している年からしておかしいとは悩ましいです・・・。おま環案件でしょうか。
https://imgur.com/undefined

906名無しさん:2023/12/02(土) 16:13:34 ID:M/KZBRAo
>>905 の画像アドレスはコピペミスです。失礼しました。正しくはこちらです。
https://imgur.com/N3lXp8o

907名無しさん:2023/12/02(土) 17:14:19 ID:iOR7Vu4I
>>905
ログイン時間は鯖選択画面で鯖画像をクリックした時にCookieに現在時刻を保存して
ワールドに入ったらそのCookieから値を取得してixamoko_login_dataに格納しています

Cookieにおかしな値が残っている可能性がありますので
Cookieの全クリアを試してみてください
また、ixamoko_login_dataにtimeという見慣れないキーがありますので、ローカルストレージもクリアしてみてください
やり方はググれば出ると思います
(プラットフォームの再ログインが必要になるかもしれません)

908名無しさん:2023/12/02(土) 18:38:50 ID:M/KZBRAo
>>907 ID:iOR7Vu4Iさん。度々の返信を恐縮です。
キャッシュの削除→IXAへの認証ログオン→ローカルストレージの全クリア→もっかいログオンしてから
検証画面を呼び出してendtimeを取り出して同様の操作をした画像を添付します。
全て本城主での操作です(影城主に切り替えるとそこでセッションタイムアウト値が正しくリセットされる為)。
検証画面を呼び出したのが電波時計で18時31分ジャスト頃だったのですが求められた値は18時28分になっている様ですね。
そして[時刻リセット]をクリックして作業が完了してもやはり赤い「セッションタイムアウトまで云々」の表示が続きます。
IXAタイムが電波時計よりも3分弱遅れている事が何か起因しているのでしょうか。
度々お時間を奪ってしまい恐縮ですが見当がつく範囲で何か気づいた点をお知らせ戴けますと。
https://imgur.com/pydGrdP

909名無しさん:2023/12/02(土) 18:45:28 ID:M/KZBRAo
>>908
補足させていただきますが別のPCでKhronosの本城主版・影城主版が動作しています。
見慣れないという"time"項目はそちらから書き込まれているのかもしれません。

910名無しさん:2023/12/02(土) 19:53:23 ID:iOR7Vu4I
>>908
ixamoko_login_dataに記録されるのはIXAタイムではなくPCの時刻です
IXAタイムは鯖の時刻(マップ画面以外)で、別物です
3分もズレるとは考えづらいので、恐らくそれは前回影城主に切り替えた時にセットされたものと考えられます
(ワールドに入ってからは正常に動作していると想定されます)
なので、ixa-login.user.js側に問題があって、Cookieに正しい値がセットされていないと思います
もう1度ixa-login.user.jsを>>805に全置き換えして拡張機能からmokoを削除して、
再度mokoを拡張機能に追加したらいかがでしょう?

911名無しさん:2023/12/02(土) 20:11:02 ID:M/KZBRAo
>>910 ID:iOR7Vu4Iさん。度々恐縮です。
従来ixa-login.user.jsに記述されていた内容を全て消去して>>805の内容を貼り付けて同様の確認を行いました。
計測タイミング:20時4分53秒に対して割り出された時間は20時4分38秒となりかなり近づきました。
https://imgur.com/7jBxwJR
但し、[時間リセット]クリックによりセッションタイムアウトが伸びる挙動はまだみられません。
リセット作業に要した秒数分だけただ減少している様に見受けられます。
あまりお時間を取らせるのも申し訳ありませんので今日はこの位で失礼します。
色々と有り難うございます。

912名無しさん:2023/12/02(土) 20:18:42 ID:iOR7Vu4I
>>911
そうしましたら、最後に

もう原因はこのどちらかかと思いますので両方ごっそり置き換えてみてください

// === Cookie ===

// クッキーに登録したログイン時間を取得
if (getCookie('im_st')) {
login_data.endtime = getCookie('im_st');
setStorage('ixamoko_login_data', login_data);
document.cookie = 'im_st=0; expires=Fri, 31-Dec-1999 23:59:59 GMT; domain=.sengokuixa.jp; path=/;';
}

// クッキーに登録した 章・期の取得
if (getCookie('chapter')) {
var shred = getCookie('chapter').split('-');
login_data.world = shred[0];
login_data.chapter = shred[1];
login_data.season = shred[2];
setStorage('ixamoko_login_data', login_data);
document.cookie = 'chapter=; expires=Fri, 31-Dec-1999 23:59:59 GMT; domain=.sengokuixa.jp; path=/;';
}

// login_dataがない場合
if (!Object.keys(login_data).length) {
location.href = '/false/login_sessionout.php';
return false;
}

// ^ Cookie



// ログイン・タイムアウトのカウントダウン
function timeoutCountdown() {
if (!options.timeout_countdown) {
return;
}
var totime = 0;
var sec = 0;
if (login_data.endtime) {
totime = parseInt(login_data.endtime, 10) + 3 * 60 * 60;
sec = totime - getUnixTime();
}
var timeText = timeStringConvert(sec),
chapter, season, html;
if (login_data.world) {
chapter = login_data.chapter;
season = login_data.season;
} else {
chapter = ' - ';
season = ' - ';
}
html = '<div id="ixamoko_sessout" style="font-size: 11px;">' + chapter + '章' + season + '期 セッションタイムアウトまで ' + '<span id="ixamoko_countdown" data-totime="' + totime + '">' + timeText + '</span>' + '</div>';
$('#lordSiteArea').hide();
$(html).appendTo('#lordNameBox');
var countdownTimer = 0,
countDown = function() {
$('#ixamoko_countdown').each(function() {
var totime = parseInt($(this).data('totime'), 10),
sec = totime - getUnixTime(),
timeText = timeStringConvert(sec);
$(this).html(timeText);

// 残り時間による色変更
if (sec < 0) {
$('#ixamoko_sessout').css({
'background-color': 'crimson',
'color': 'white'
});
clearTimeout(countdownTimer);
} else if (sec < 600) {
$('#ixamoko_sessout').css({
'background-color': 'crimson',
'color': 'white'
});
} else if (sec < 1800) {
$('#ixamoko_sessout').css('color', 'yellow');
}
});
countdownTimer = setTimeout(countDown, 1000 - new Date().getMilliseconds());
};

countDown();
}

913名無しさん:2023/12/02(土) 20:39:36 ID:M/KZBRAo
>>912 ID:iOR7Vu4Iさん。ドンピシャでした。
残り2時間23分40秒の時点で[時間リセット]をクリックした所、残り2時間59分59秒になってくれました。
// === Cookie ===の処理は今年の9月17日かな?に改修を行っておりますが// ログイン・タイムアウトのカウントダウンは未改修でした。
どこかに対応漏れがあったのではないかと思われます。本当に有り難うございました。

914名無しさん:2023/12/02(土) 23:52:14 ID:iOR7Vu4I
あと、同盟員に好評だったのでこちらも公開します

return dungeon_troops_next(list);
});
}

// 秘境 全部隊最大補充 ここから
function dungeonMaxFillUp() {
if (location.pathname != '/facility/dungeon.php') {
return;
}
if (!$('.table_waigintunit').length) {
return;
}
if (($('.table_waigintunit').map((k,m)=>$(m).find('tr:eq(0) td.radio_frame input').length).get()).every(v=>!v)) {
return;
}

$('<div id="mk_fill_up_command">')
.css('margin-bottom', '5px')
.on('click', function() {
var $on = $('ul.map_detail_mucountry li.on');
if (!$on.length) {
alert('拠点が選択されていません');
return false;
}
var usp = new URLSearchParams();
usp.set('x', $on.data('village_x'));
usp.set('y', $on.data('village_y'));
usp.set('c', $on.data('village_c'));
$('.table_waigintunit').each(function() {
var $input = $(this).find('tr:eq(0) td.radio_frame input');
if ($input.length) {
usp.append('unit_assign_ids[]', $input.val());
}
});
usp.set('all', 1);
usp.set('operation_type', 1);
nowLoading();
Info.title('全部隊最大補充 - ixamoko');
Info.log('全部隊を最大補充中...');
$.ajax({
type: 'post',
url: '/map/unit_operation_if.php?' + usp.toString(),
beforeSend: xrwStatusText,
}).then(function(html) {
var $msg = $(html).find('div[class^="map_detail_info_message_"]');
if (/success/.test($msg.attr('class'))) {
Info.log($msg.text());
}
else {
Info.ng($msg.text());
}
sleep(1).then(function() {
Info.log('完了');
Info.title('全部隊最大補充 - ixamoko', location.pathname);
});
});
})
.append('<img src="' + CACHE_PASS + '/img/map/map_detail/btn_jibutai_all_replenish.png" alt="全員を最大補充">')
.insertBefore('.table_waigintunit:eq(0)');
}
// 秘境 全部隊最大補充 ここまで

// 秘境 部隊の兵種と兵数を表示
function dungeonSoldiers() {
if (location.pathname != '/facility/dungeon.php') {

……
かなり下
……

dungeonCheck(); // facility/dungeon
+ dungeonMaxFillUp(); // facility/dungeon
dungeonSoldiers(); // facility/dungeon

もし↓これがなかったら本影切り替えのfunction userChange()付近にでも追加しておいてください
(過去に公開していたと思います)
// 処理待機
function sleep(time) {
var objDef = new $.Deferred;
setTimeout(function() {
objDef.resolve(time);
}, time * 1000);
return objDef.promise();
}

915名無しさん:2023/12/03(日) 06:20:39 ID:M05M3a5I
>>914 すみません。想像は尽きますが、
ソースを読めない人には何のことやらだと思います。
どうゆう要件(または不具合)で修正したのかは書いておいた方がよいです。
ソースコメントでも構わないと思います。

916名無しさん:2023/12/03(日) 07:34:20 ID:iOR7Vu4I
>>915
すみません、秘境の全部隊最大補充の機能追加です

917名無しさん:2023/12/03(日) 19:26:14 ID:iOR7Vu4I
あと気になっていたのが合成のリンクのidの数字です
ただの連番ではなく意味のある数字なので公式と同じにしています
(私は合成のカテゴリだけで1つにしていますが、カテゴリが「くじ他」になっている人もいると思います)

'<li id="合成" class="mk_sub_menu" style="padding-top:12px;"><a href="/union/index.php"><font color="tomato">合成</font></a>' +
'<div>' +
'<a href="/union/index.php">合成【一覧】</a>' +
'<a href="javascript:void(0);" id="comp_7">レベルアップ</a>' +
'<a href="javascript:void(0);" id="comp_4">ランクアップ</a>' +
'<a href="javascript:void(0);" id="comp_2">スキル追加</a>' +
'<a href="javascript:void(0);" id="comp_1">スキル強化</a>' +
'<a href="javascript:void(0);" id="comp_5">特殊合成</a>' +
'<a href="javascript:void(0);" id="comp_3">スキル削除</a>' +
'<a href="javascript:void(0);" id="comp_12">一気ランクアップ</a>' +
'<a href="javascript:void(0);" id="comp_10">道場-習得編-</a>' +
'<a href="javascript:void(0);" id="comp_11">道場-強化編-</a>' +
'<a href="javascript:void(0);" id="comp_9">カード圧縮</a>' +
'<a href="javascript:void(0);" id="comp_13">Xスキル獲得</a>' +
'<a href="/union/union_history.php">合成履歴</a>' +
'</div>' +
'</li>';

下のSwitch文のところも合わせて修正が必要です

$('a[id^="comp_"]').on('click', function() {
var type = $(this).attr('id').match(/\d+/)[0];
var url;
switch (type) {
case '7': url = '/union/expadd.php';
break;
case '4': url = '/union/rankup.php';
break;
case '2': url = '/union/learn.php';
break;
case '1': url = '/union/levelup.php';
break;
case '5': url = '/union/special.php';
break;
case '3': url = '/union/remove.php';
break;
case '12': url = '/union/bulk_rankup.php';
break;
case '10': url = '/union/dojo_learn.php';
break;
case '11': url = '/union/dojo_lvup.php';
break;
case '9': url = '/union/compression.php';
break;
case '13': url = '/union/learn_xskill.php';
break;
default: url = '/union/index.php';
break;
}
$.form({
type: 'post',
url: url,
data: {
union_type: type
}
});
return false;
});

918名無しさん:2023/12/04(月) 09:13:15 ID:R7G6qT6M
//2023.12
"特.転歌.A":["特.転歌.A","特.転歌.A","特.風狂幻術.B","特.入来神舞.S","特.入来神舞.S"],
"防.北咲王花.A":["防.豊家ノ滅塞.B","防.豊家ノ滅塞.B","防.龍神ノ加護.A","防.戦陣 凪.A","防.戦陣 無縫.A"],
"特.叛虐之貴公子.S":["特.叛虐之貴公子.S","特.叛虐之貴公子.S","攻.開闢ノ逆鉾.SS","攻.十束ノ神域.SS","攻.十束ノ神域.SS"],
"防.聖夜ノ慈姫.S":["防.聖夜ノ慈姫.S","防.聖夜ノ慈姫.S","防.禍津日神ノ謀.SS","防.黄泉醜女ノ屍兵.SS","防.黄泉醜女ノ屍兵.SS"],
"防.関東代官頭.C":["防.関東代官頭.C","防.関東代官頭.C","防.関東代官頭.C","防.宇和ノ歌将.C","防.絶界煉獄.B"],
"防.乱世ノ残響.C":["防.乱世ノ残響.C","防.乱世ノ残響.C","防.乱世ノ残響.C","防.百万石長壁.B","防.死出ノ田長.B"],
"攻.強虔ノ使徒.C":["攻.強虔ノ使徒.C","攻.強虔ノ使徒.C","攻.強虔ノ使徒.C","攻.孤炎.A","攻.八虐無道.B"]

919名無しさん:2023/12/07(木) 21:48:13 ID:Fr4tyMQg
>>912 ID:iOR7Vu4Iさん。いつもお疲れさまです。
まだ>>912より先の改修には手を付けておりませんが時間リセット系で1点質問をお願いします。
>>912を取り込んだ所、単純な本城主→影城主切り替え時、影城主→本城主切り替え時に
セッションタイムアウト時間のリセットがかからない様になった様に見受けられます。
考えられる原因や対策などありましたら教えて戴けますと助かります。

920名無しさん:2023/12/08(金) 17:25:06 ID:iOR7Vu4I
>>919
>>912にする前のソースはとってありますか?
取ってありましたら比較をしてみてください
大抵のテキストエディタにはdiff機能が付いてますのでコピペするだけでできると思います

考えられるとしたら>>912の②だとおもうのですが、
私もそこはmoko入手してから過去スレでの修正以外に手を入れていないので
比較してみないと分からないです

921名無しさん:2023/12/08(金) 17:42:38 ID:Fr4tyMQg
>>920 ID:iOR7Vu4Iさん。WinMerge等で差分比較ですね。判りました。
業務多忙&自宅を空ける予定があるのでゆっくりお待ちくださいませ。

922名無しさん:2023/12/08(金) 18:29:23 ID:Fr4tyMQg
>>920 ID:iOR7Vu4Iさん。
お待たせしました。以下URLにWinMergeから生成したレポートをアップロードしています。
インデントの相違は手操作で解消しています。
https://d.up300.net/61778374b18252a21e694937deb6dd39/
左が改修前、右が>>912適用後です。一見した感じでは暫定対応部分が無くなっている様ですね。

923名無しさん:2023/12/09(土) 00:55:12 ID:iOR7Vu4I
>>922
①の暫定対応の部分はログイン出来ているのであれば要らないです

>>912の②は差分無しでしたでしょうか?
本影切り替えの処理を掻い摘んで説明しますと、
・本影切り替えを鯖に送る(1.5秒待つ)
・本影切り替えを鯖に送る
・ローカルストレージのログイン時間を更新する
・セッションタイムアウト部分を削除して>>912の②を呼び出す(セッションタイムアウトの部分を生成し直す)
・画面更新して終わり
となっています

もし差分無ければ私のものと相違ないと思いますので
もしかしたら通信の問題かもしれません
(鯖側の本影切り替え処理が終わる前に次の送信や画面更新をしているのかもしれません)
switchUser(1500).then(function() {
の1500を2000とか3000に増やすのを試してみてください
2000は2秒待つ、3000は3秒、です


新着レスの表示


名前: E-mail(省略可)

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

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

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

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