▼スレッド
│
└◇1630:Re[10]:連勝数の追加とグラフ表示 [rien] 01/08 00:26
└◇1631:Re[11]:連勝数の追加とグラフ表示 [moon] 01/08 08:09
└◇1632:Re[12]:連勝数の追加とグラフ表示 [rien] 01/08 17:40
└◇1633:Re[13]:連勝数の追加とグラフ表示 [moon] 01/08 23:26
└◇1634:Re[14]:連勝数の追加とグラフ表示 [rien] 01/09 00:29<-last
> まずは、$btlser_timeの単位が秒ではなくて時間のようなので$btlser_time--や$btlser_time -= 1のようにする必要があります。スレッド一覧
> 次に、if文の追加位置が上記だと再戦が可能になるまでの残り時間の表示に問題がありますので「@plf1 = split(/△/,$plf);」の上にでも移動したほうが良いです。
何度もすみません。。。
>>> $btlser_time -= 3600 if(index($psp, 'Ng') != -1); # 相手にNPCスキルがある場合には再戦禁止時間を1時間短くする
ここの部分を
$btlser_time -= 1 if(index($psp, 'Ng') != -1);
こうしてみたのですが
誰と戦闘しても連戦できてしまいました・・。
ここではないのか・・と思って他の$btlser_timeの場所も・・かなと思って代入をしてみても
変わりませんでした。
他の場所に何かおかしいところがあるのでしょうか・・・。
文法のチェックはしてあります。
if文は一番上に変更してあります。
余談なのですがこの改造で分単位の指定はできますか?
時間で指定している以上は最低で1時間ということですよね?
> 何度もすみません。。。スレッド一覧
> >>> $btlser_time -= 3600 if(index($psp, 'Ng') != -1); # 相手にNPCスキルがある場合には再戦禁止時間を1時間短くする
> ここの部分を
> $btlser_time -= 1 if(index($psp, 'Ng') != -1);
> こうしてみたのですが
> 誰と戦闘しても連戦できてしまいました・・。
> ここではないのか・・と思って他の$btlser_timeの場所も・・かなと思って代入をしてみても
> 変わりませんでした。
> 他の場所に何かおかしいところがあるのでしょうか・・・。
> 文法のチェックはしてあります。
> if文は一番上に変更してあります。
関係するそれぞれの変数の変更後にpush(@msg, 〜);で変数の値を表示してみて、正しい値になっていることを確認してください。
> 余談なのですがこの改造で分単位の指定はできますか?
> 時間で指定している以上は最低で1時間ということですよね?
設定として小数での指定がOKなので時間未満も可能ですが、処理として変更する場合は「$remain = $remtime / 3600;」を「$remain = $remtime / 60;」にすることで分単位になります。
スレッド一覧
> 関係するそれぞれの変数の変更後にpush(@msg, 〜);で変数の値を表示してみて、正しい値になっていることを確認してください。
お返事ありがとうございます。
sub_fightに部分をこうして記述を追加してみました
>>if ($plf1[0] eq $id && $remain < $btlser_time--) {
@plf1 = split(/△/,$plf);
$remtime = time - $plf1[1];
$remain = $remtime / 3600;
$remhor = $btlser_time-- - int($remtime/3600) - 1;
$remmin = 59 - int(($remtime%3600)/60);
$remsec = 59 - $remtime % 60;
$btlser_time -- if(index($psp, 'Ng') != -1); # 相手にNPCスキルがある場合には再戦禁止時間を1時間短くする
push (@msg,"$pnmとは暫く戦えません(あと$remhor時間$remmin分$remsec秒)"); return;
戦闘を行うと12という数値が出ます。
12は設定部分で$btlser_timeを設定している数値です。
> 設定として小数での指定がOKなので時間未満も可能ですが、処理として変更する場合は「$remain = $remtime / 3600;」を「$remain = $remtime / 60;」にすることで分単位になります。
こちらの質問にも答えていただきありがとうございます。
うまく設置できたら変更してみたいと思います。
> > 関係するそれぞれの変数の変更後にpush(@msg, 〜);で変数の値を表示してみて、正しい値になっていることを確認してください。スレッド一覧
>
> お返事ありがとうございます。
> sub_fightに部分をこうして記述を追加してみました
> >>if ($plf1[0] eq $id && $remain < $btlser_time--) {
> @plf1 = split(/△/,$plf);
> $remtime = time - $plf1[1];
> $remain = $remtime / 3600;
> $remhor = $btlser_time-- - int($remtime/3600) - 1;
> $remmin = 59 - int(($remtime%3600)/60);
> $remsec = 59 - $remtime % 60;
> $btlser_time -- if(index($psp, 'Ng') != -1); # 相手にNPCスキルがある場合には再戦禁止時間を1時間短くする
>
> push (@msg,"$pnmとは暫く戦えません(あと$remhor時間$remmin分$remsec秒)"); return;
>
> 戦闘を行うと12という数値が出ます。
> 12は設定部分で$btlser_timeを設定している数値です。
移動するif文が違います。
また、移動するだけでは表示上の問題は解決しなかったです。
諸々を変更したソース例を載せます。
$btlser_time -= 30 if(index($psp, 'Ng') != -1); # 相手にNPCスキルがある場合には再戦禁止時間を30分短くする
@plf1 = split(/△/,$plf);
$remtime = time - $plf1[1]; # 経過時間を求める(秒単位)
if ($plf1[0] eq $id && $remtime < $btlser_time * 60) {
my $remspan = $btlser_time * 60 - $remtime;
$remhor = int($remspan / 3600); # 表示用の残り時間の時間部分を求める
$remmin = int(($remspan % 3600) / 60); # 表示用の残り時間の分部分を求める
$remsec = int($remspan % 60); # 表示用の残り時間の秒部分を求める
push (@msg,"$pnmとは暫く戦えません(あと$remhor時間$remmin分$remsec秒)");
return;
}
> 移動するif文が違います。スレッド一覧
> また、移動するだけでは表示上の問題は解決しなかったです。
> 諸々を変更したソース例を載せます。
> $btlser_time -= 30 if(index($psp, 'Ng') != -1); # 相手にNPCスキルがある場合には再戦禁止時間を30分短くする
> @plf1 = split(/△/,$plf);
> $remtime = time - $plf1[1]; # 経過時間を求める(秒単位)
> if ($plf1[0] eq $id && $remtime < $btlser_time * 60) {
> my $remspan = $btlser_time * 60 - $remtime;
> $remhor = int($remspan / 3600); # 表示用の残り時間の時間部分を求める
> $remmin = int(($remspan % 3600) / 60); # 表示用の残り時間の分部分を求める
> $remsec = int($remspan % 60); # 表示用の残り時間の秒部分を求める
> push (@msg,"$pnmとは暫く戦えません(あと$remhor時間$remmin分$remsec秒)");
> return;
> }
お返事ありがとうございます。
詳しいソースまで出していただいてありがとうございます。
記述する文から間違っていたのですね。。
お恥ずかしい限りです。。
再戦の単位を分刻みに直していただき
どこを直すと良いのか分かりました。
いつもお世話になります。
ありがとうございました。