所属家、攻撃国・防御国、残党・大殿、天下統一 | とっても暇なブログw

とっても暇なブログw

ニコニコ動画の「踊ってみた」カテゴリーで活動する素敵な女の娘(こ)達を中心に、その文化?の展開を楽しく見守っていきたいと思います。
元気をもらえる彼女達のパワーは、本当に頼もしいですねw

各種情報の更新タイミングや告知方法の差異により、何度も修正を行いましたので、再度整理してまとめました。

 

【追加機能】

(1) 所属家を常に表示します。

(2) 合戦発表時(10:05)から合戦終了まで、自国の状況(攻撃国or防衛国)を表示します。

   (天下統一戦の場合は「天下統一戦」と表示します。)

(3) 合戦終了後からイベント終了まで、「影武者残党」または「大殿討伐」を表示します。

 

 

(1)所属家は城主プロフィールページの家紋の上のテキストを読み込んでいます。

 

(2)攻・防表示は「合戦>全国地図」の表示から自国の対戦相手の攻防で判断しています。

  これにより、対戦カードが決定(発表)後に攻・防表示します。

  (当初は合戦格付表の攻撃国・防衛国ボタンを利用しましたが開戦リセットのため

   組合せ発表時の内容が反映しませんでした。)

 

(3)拠点検索のタイトルに「残党」があれば「影武者残党」を表示します。

  合戦回数が奇数なら「大殿討伐」を表示します。

  念のため、偶数回の時に「影武者残党」を表示するコードも入れてあります。

  拠点検索のタイトルに「天下」があれば「天下統一戦」を表示します。(攻・防表示の場所)

(注意: 天下統一戦時のタイトルの確認が未実施です。)

 

 

以下、コードです。

 

セッションタイムアウトに所属家を資源バーに攻・守を表示する場合

 

 

① 関数の定義 ( ixa-moko.user.js の変更 )

 

①-1 function timeoutCountdown() の改造部分

 (前回の照会内容から変更なし)

var timeText = timeStringConvert(sec),

chapter, season, html;
if (login_data.world) {
+ country = '<div id="familyname"></div>';
chapter = login_data.chapter;
season = login_data.season;
} else {
+ country = ' - ';
chapter = ' - ';
season = ' - ';
}
- html = '<div id="ixamoko_sessout">' + chapter + '章' + season + '期 セッションタイムアウトまで ' + '<span id="ixamoko_countdown" data-totime="' + totime + '">' + timeText + '</span>' + '</div>';

+ html = '<div id="ixamoko_sessout">' + '【' + country + '】' + chapter + '章' + season + '期 セッションタイムアウトまで ' + '<span id="ixamoko_countdown" data-totime="' + totime + '">' + timeText + '</span>' + '</div>';
$('#lordSiteArea').hide();

 

 

①-2 function displayFamilyname() の改造部分

(残党・大殿・天下統一関連の部分を変更)

 

// 所属家の表示
function displayFamilyname(){
$('div#status_left').after('<div id="battlestatus"></div>');  
/* 「攻撃国」「防衛国」の表示場所を設定 */
$('div#battlestatus').css('margin-right','5px');
$('div#btnLordName').append('<div id="zantou"></div>');  
/* 「影武者残党」「大殿討伐」の表示場所を設定 */
/* 「所属家」の表示内容を設定 */

jQuery(function($){
$('div#familyname').load('/user/ p.name');
});

/* 「攻撃国」「防衛国」の表示内容を設定 */
jQuery(function($){
$('div#battlestatus').load('/country/all.php div.box03In.clearfix', 
function(response) {  
$(this).hide();
var discription = $(this).find('div').text();
var indexopponent = discription.indexOf( '自国' );
if (indexopponent !== -1) {
var offensedefense = discription.substr(indexopponent+4,9);
console.log(offensedefense);
if (offensedefense.indexOf('攻') != -1){
$(this).text('');
$(this).prepend('<img src="../img/battle/rank/icon_deffence.png" alt="防衛国" title="防衛国" class="iepngfix">');
$(this).show();  
/* 「防衛国」ボタンの画像を表示 */
}
if (offensedefense.indexOf('防') != -1){
$(this).text('');
$(this).prepend('<img src="../img/battle/rank/icon_atack.png" alt="攻撃国" title="攻撃国" class="iepngfix">');
$(this).show();  
/* 「攻撃国」ボタンの画像を表示 */
}
}
});
});

/* ここから影武者残党/大殿討伐/天下統一 */
var arrayOdd = ['一','壱','三','参','五','七','九','十一','十三','十五','十七','十九','拾一','拾参','拾五','拾七','拾九','二十一','二十三','二十五','二十七','二十九','弐拾一','弐拾参','弐拾五','弐拾七','弐拾九','三十一','三十三','三十五','三十七','三十九','参拾一','参拾参','参拾五','参拾七','参拾九'];
var arrayEven = ['二','弐','四','六','八','十','拾','十二','十四','十六','十八','二十','拾弐','拾四','拾六','拾八','弐拾','二十二','二十四','二十六','二十八','三十','弐拾弐','弐拾四','弐拾六','弐拾八','参拾','三十二','三十四','三十六','三十八','四十','参拾弐','参拾四','参拾六','参拾八','四拾'];
jQuery(function($){
$('div#zantou').load('/war/village_search.php div#ig_battle_report_top > p', 
function(response) {
$('div#zantou').hide();
var str1 = $('div#zantou').text();
if ( str1.indexOf('天下') != -1) {  
/* 拠点検索のタイトルに「天下」の文字列があれば「天下統一戦」を表示 */
console.log('天下統一戦&大殿討伐');
$('div#battlestatus').text('天下統一戦');
$('div#zantou').text('大殿討伐');
}
if ( str1.indexOf('残党') != -1) {  
/* 拠点検索のタイトルに「残党」の文字列があれば「影武者残党」を表示 */
console.log('影武者残党');
$('div#zantou').text('影武者残党');
}
for (let i = 0; i < arrayOdd.length; i++) { 
 /* 拠点検索のタイトルに奇数の漢数字があれば「大殿討伐」を表示 */
var str2 = arrayOdd[i];
if ( str1.indexOf(str2) != -1) {
console.log(str2);
console.log('大殿討伐');
$('div#zantou').text('大殿討伐');
// $('div#zantou').show();
}
}
for (let i = 0; i < arrayEven.length; i++) {  
/* 拠点検索のタイトルに偶数の漢数字があれば「影武者討伐」を表示 */
var str2 = arrayEven[i];
if ( str1.indexOf(str2) != -1) {
$('div#zantou').text('影武者残党');
// $('div#zantou').show();
}
}
var str = $('div.information_situ').text();
var checkword = str.indexOf( '只今休戦中' );
if(checkword !== -1) {
$('div#battlestatus').hide(); 
/* 休戦中は「攻・防」非表示(この記述は本来不要) */
var armisticeTimer = $('span#area_war_timer').text();
if(parseInt(armisticeTimer.substr(0,2)) >= 35){  
/* 「35」を「0」にすることで表示確認が可能 */
$('div#zantou').show(); /* 休戦時間の残りが35時間以上あれば「影武者残党」、「大殿討伐」を表示 */
}
} else {
$('div#battlestatus').show(); 
/* 合戦中は「攻・防」を表示(この記述は本来不要) */
}
});
});

}

 

 

② 関数の登録 ( ixa-moko.user.js の変更 )

 (特に変更なし)


// === execute function ===
<中略>
changeUser();                 // user
+ displayFamilyname();          // user/familyname

 

注意) 2重登録や登録忘れにご注意ください。

 

 

③ スタイルの登録 ( ixa-moko.user.js の変更 )

【2021年4月9日追記】 記載漏れを追加します。

 

+ // 秘境表示
+ '#ixamoko_dungeon { white-space: nowrap; color: #fff; background-color: rgba(255,100,100,0.3); border: solid 2px #fdd; border-radius: 5px; padding: 3px; margin-right: 3px; }' +
+ '#ixamoko_dungeon_time { text-align: center; }' +


''; // ^ style.innerHTML
document.head.appendChild(style);

 

 

④ css の登録 ( main.css の変更 )

 

/* 所属家の表示 */
div#battlestatus>img.iepngfix {width: 55px;height: auto;}

div#battlestatus {color:#33CCFF; font-size:12px; text-align:center;}

div#zantou > p {color:yellow; font-size:12px;}

 

/* ixa-moko セッションタイムアウト */
div#ixamoko_sessout>div#familyname {display:inline-block;}
div#ixamoko_sessout>div#familyname>p.name {margin:0 0 0 0; font-size:12px;}

 

 

城主ボタンの下部に表示する場合

 

 

① 関数の定義 ( ixa-moko.user.js の変更 )

/* 説明コメント */ ← 不要な記述なので削除してください。

 

// 所属家の表示
function displayFamilyname(){
$('div#btnLordName').append('<div id="familyname"></div>');  
/* 所属家の表示場所追加 */
$('div#btnLordName').append('<div id="battlestatus"></div>');  /* 攻・防の表示場所追加 */
$('div#btnLordName').append('<div id="zantou"></div>');  /* 残党・大殿の表示場所追加 */

/* ここから「所属家」の表示処理 */
jQuery(function($){
$('div#familyname').load('/user/ p.name');
});

/* ここから「攻・防」の表示処理 */
jQuery(function($){
$('div#battlestatus').load('/country/all.php div.box03In.clearfix', 
function(response) {  
$(this).hide();
var discription = $(this).find('div').text();
var indexopponent = discription.indexOf( '自国' );
if (indexopponent == -1) {  
/* 「自国」の文字列が無い場合は何も(表示)しない。 */
} else {  /* 「自国」の文字列がある場合はその後ろの文字列で攻防を判断 */
var offensedefense = discription.substr(indexopponent+4,9);
if (offensedefense.indexOf('攻') != -1){  
/* 「攻」の文字列がある場合は自国は防衛 */
$(this).text('');
$(this).prepend('<img src="../img/battle/japanmap/icon_helm.gif" alt="" width="18" height="18">');
$(this).show();  
/* 「ヘルメット」のマーク表示 */
}
if (offensedefense.indexOf('防') != -1){  
/* 「防」の文字列がある場合は自国は攻撃 */
$(this).text('');
$(this).prepend('<img src="../img/battle/japanmap/icon_battle.gif" alt="" width="18" height="18">');
$(this).show();  
/* 「剣」のマーク表示 */
}
}
});
});

/* ここから影武者残党/大殿討伐/天下統一 */
var arrayOdd = ['一','壱','三','参','五','七','九','十一','十三','十五','十七','十九','拾一','拾参','拾五','拾七','拾九','二十一','二十三','二十五','二十七','二十九','弐拾一','弐拾参','弐拾五','弐拾七','弐拾九','三十一','三十三','三十五','三十七','三十九','参拾一','参拾参','参拾五','参拾七','参拾九'];
var arrayEven = ['二','弐','四','六','八','十','拾','十二','十四','十六','十八','二十','拾弐','拾四','拾六','拾八','弐拾','二十二','二十四','二十六','二十八','三十','弐拾弐','弐拾四','弐拾六','弐拾八','参拾','三十二','三十四','三十六','三十八','四十','参拾弐','参拾四','参拾六','参拾八','四拾'];

jQuery(function($){
$('div#zantou').load('/war/village_search.php div#ig_battle_report_top > p', 
function(response) {
$('div#zantou').hide();
var str1 = $('div#zantou').text();
if ( str1.indexOf('天下') != -1) {  
/* 拠点検索のタイトルに「天下」の文字列があれば「天下統一戦」を表示 */
$('div#battlestatus').text('天下統一戦');

$('div#zantou').text('大殿討伐');
}

if ( str1.indexOf('残党') != -1) {  /* 拠点検索のタイトルに「残党」の文字列があれば「影武者残党」を表示 */
$('div#zantou').text('影武者残党');
}
for (let i = 0; i < arrayOdd.length; i++) {  
/* 拠点検索のタイトルに奇数の漢数字があれば「大殿討伐」を表示 */
var str2 = arrayOdd[i];
if ( str1.indexOf(str2) != -1) {
$('div#zantou').text('大殿討伐');
}
}
for (let i = 0; i < arrayEven.length; i++) {  
/* 拠点検索のタイトルに偶数の漢数字があれば「影武者討伐」を表示 */
var str2 = arrayEven[i];
if ( str1.indexOf(str2) != -1) {
$('div#zantou').text('影武者残党');
}
}
var str = $('div.information_situ').text();
var checkword = str.indexOf( '只今休戦中' );
if(checkword !== -1) {
$('div#battlestatus').hide(); 
/* 休戦中は「攻・防」非表示(この記述は本来不要) */
var armisticeTimer = $('span#area_war_timer').text();
if(parseInt(armisticeTimer.substr(0,2)) >= 35){ 
/* 「35」を「0」にすることで表示確認が可能 */
$('div#zantou').show(); /* 休戦時間の残りが35時間以上あれば「影武者残党」、「大殿討伐」を表示 */
}
} else {
$('div#battlestatus').show(); 
/* 合戦中は「攻・防」を表示(この記述は本来不要) */
}
});
});
}

 

② 関数の登録 ( ixa-moko.user.js の変更 )

 (特に変更なし)


// === execute function ===
<中略>
changeUser();                 // user
+ displayFamilyname();          // user/familyname

 

注意) 2重登録や登録忘れにご注意ください。

 

 

③ main.css に記述追加

 (攻防画像のスタイルは関数側で指定済み)

 

+ /* 所属家の表示 */

+ div#btnLordName>a>img.iepngfix { position: relative;    top: 0px; left: 4px; }
+ div#familyname { color:#F60; font-size:12px; text-align:center; }

+ div#battlestatus {color:#33CCFF; font-size:12px; text-align:center;}
+ div#zantou > p { color:yellow; font-size:12px; text-align:center; }

 

 

以上