▼スレッド
│
└◇1612:Re[4]:アイテムコマンドについて [moon] 01/04 17:17
└◇1613:Re[5]:アイテムコマンドについて [rien] 01/04 20:02
└◇1614:Re[6]:アイテムコマンドについて [moon] 01/04 21:01
└◇1615:Re[7]:アイテムコマンドについて [rien] 01/04 21:35
└◇1616:Re[8]:アイテムコマンドについて [moon] 01/04 22:27
└◇1617:Re[9]:アイテムコマンドについて [rien] 01/05 00:57
└◇1618:Re[10]:アイテムコマンドについて [moon] 01/05 08:09
└◇1619:Re[11]:アイテムコマンドについて [rien] 01/05 16:36<-last
> 昨日からやっててちょっと詰まってしまったところがあるのでスレッド一覧
> よかったら教えてください。
> Sub Saga
> でのBest Playerの表示のとこなのですが
> レティさんのドラゴンズテンペストの龍王の表示で
> ●●代目という表示を追加したいのですが・・
> 他の表示されている英雄や販売実績などを参考にしてやってはいるのですが
> うまく表示できません・・。
> >>Sub Find the Best Playerはこのようになっていて
> if ($sp =~ /Rk/) { $dragonking = $nm; $dkimg = $ig; $dking_id = $id; $bestdking = $Number }
> ↓こう直しても表示ができなく・・
> if($Number > $bestdking &&$sp !~ /Rk/)
>
> >>Sub Sagaが
> print qq|</td>\n<td align=center>\n|;
> print qq|<img src=$imgdir$dkimg width=$ig_wd height=$ig_ht><br>\n| if $rimg;
> print qq|<br>■龍王■<br><B>$dragonking</B>[ID:$dking_id]<br>龍王【$bestdking代目】| if $dragonking;
> こうなっているのですが・・。
> $Numberが間違っているのでしょうか?
$Numberに何代目かの情報が入っていないのだと思います。
改造方法を見てみたのですが、龍王の情報というのはdragonking.datに保存されているようなのでsub find_bestだけを変更するのでは必要な情報が足りないと思います。
以下のようにすれば良いと思います。
sub saga内でlist_orderが実行される前に以下を実行する。
local ($Kid, $Knm, $Knu) = split(/<>/, (&opendat($dt_king))[0]); # 最初の行には一番新しい龍王のデータが入っている。
local $bestdking = '?';
sub saga内に追加する。
# 開始のtd要素を追加する場合はここに追加する。
if($dking_id ne ''){
print qq|<img src=$imgdir$dkimg width=$ig_wd height=$ig_ht><br>\n|;
print qq|<br>■龍王■<br><B>$dragonking</B>[ID:$dking_id]<br>龍王【$bestdking代目】|;
}
# 終了のtd要素を追加する場合はここに追加する。
sub find_best内に追加する。
if (index($sp, 'Rk') != -1) { $dragonking = $nm; $dkimg = $ig; $dking_id = $id; $bestdking = $Knu if($id eq $Kid && $nm eq $Knm); }
> $Numberに何代目かの情報が入っていないのだと思います。スレッド一覧
>
> 改造方法を見てみたのですが、龍王の情報というのはdragonking.datに保存されているようなのでsub find_bestだけを変更するのでは必要な情報が足りないと思います。
> 以下のようにすれば良いと思います。
> sub saga内でlist_orderが実行される前に以下を実行する。
> local ($Kid, $Knm, $Knu) = split(/<>/, (&opendat($dt_king))[0]); # 最初の行には一番新しい龍王のデータが入っている。
> local $bestdking = '?';
> sub saga内に追加する。
> # 開始のtd要素を追加する場合はここに追加する。
> if($dking_id ne ''){
> print qq|<img src=$imgdir$dkimg width=$ig_wd height=$ig_ht><br>\n|;
> print qq|<br>■龍王■<br><B>$dragonking</B>[ID:$dking_id]<br>龍王【$bestdking代目】|;
> }
> # 終了のtd要素を追加する場合はここに追加する。
> sub find_best内に追加する。
> if (index($sp, 'Rk') != -1) { $dragonking = $nm; $dkimg = $ig; $dking_id = $id; $bestdking = $Knu if($id eq $Kid && $nm eq $Knm); }
お返事ありがとうございます。
こんなにも記述が足りないとは・・・
kingbattleのスクリプトを見ながら試行錯誤しておりましたが・・
いつもありがとうございます。
きちんと表示されました。
この表示とかは応用がききそうなので
もう少し教えていただいてもいいですか??
このような表示を応用する時にどのような点に注意すればよいのでしょうか・・・
sub find_bestのあたりはなんとか理解できそうなのですが・・。
list_orderの前に追加した行などは
データが別の場所に保存されてない場合は必要ないということなのでしょうか?
今マシマロさんの覇王(チャンピオンシップモード)
で何連勝という表示をしたくこの応用を・・と思ったのですが
何連勝という表示がどこを指しているのかも分からず・・
$pdと$fowardを代入してみてもうまく表示できていませんでした。
お手数おかけいたしますがよろしくお願いします。
> この表示とかは応用がききそうなのでスレッド一覧
> もう少し教えていただいてもいいですか??
> このような表示を応用する時にどのような点に注意すればよいのでしょうか・・・
> sub find_bestのあたりはなんとか理解できそうなのですが・・。
>
> list_orderの前に追加した行などは
> データが別の場所に保存されてない場合は必要ないということなのでしょうか?
はい、get_userで読み込まれる情報だけで足りる場合は必要無いです。
注意点としては、必要な情報を読み込むことが重要で、それを行うためにはどの情報がどのファイルに記録されているかを知っておく、もしくは探せる必要があります。
探す場合、改造方法でデータ構造が説明されている場合はそれを見れば済みますし、説明されていなくてもOSやエディタの検索機能で該当改造のソースファイルから"opendat"または"open"を見つけてその周辺を見てみると見当を付けることができると思います。
> 今マシマロさんの覇王(チャンピオンシップモード)
> で何連勝という表示をしたくこの応用を・・と思ったのですが
> 何連勝という表示がどこを指しているのかも分からず・・
> $pdと$fowardを代入してみてもうまく表示できていませんでした。
>
> お手数おかけいたしますがよろしくお願いします。
覇王の変更処理(sub fightの末尾部分)を見たのですが、連勝数は記録されていないような気がするのですが・・・。
ですので、get_champ、add_champ、champoutに新しいパラメータの追加と、sub fightに連勝数パラメータのカウントアップ処理を追加する必要があると思います。
> はい、get_userで読み込まれる情報だけで足りる場合は必要無いです。スレッド一覧
> 注意点としては、必要な情報を読み込むことが重要で、それを行うためにはどの情報がどのファイルに記録されているかを知っておく、もしくは探せる必要があります。
> 探す場合、改造方法でデータ構造が説明されている場合はそれを見れば済みますし、説明されていなくてもOSやエディタの検索機能で該当改造のソースファイルから"opendat"または"open"を見つけてその周辺を見てみると見当を付けることができると思います。
お返事ありがとうございます。
そうなんですよね・・
この情報がどこにあって・・っていうのが分かってない場合が多くて・・お手上げ状態の改造ばかりです。
詳しく説明していただきありがとうございます。
openに注意して探してみることにします。
> 覇王の変更処理(sub fightの末尾部分)を見たのですが、連勝数は記録されていないような気がするのですが・・・。
> ですので、get_champ、add_champ、champoutに新しいパラメータの追加と、sub fightに連勝数パラメータのカウントアップ処理を追加する必要があると思います。
そうだったのですか・・
連勝数を記載していたSOSを見たことがあったので・・
となるとさっきの龍王と同じような何番目といったものが記載されてるのでしょうか??
連勝数パラメータを追加となると・・具体的にはどのような追加になりますか??
私には少し荷が重いですかね・・。
> > 覇王の変更処理(sub fightの末尾部分)を見たのですが、連勝数は記録されていないような気がするのですが・・・。スレッド一覧
> > ですので、get_champ、add_champ、champoutに新しいパラメータの追加と、sub fightに連勝数パラメータのカウントアップ処理を追加する必要があると思います。
>
> そうだったのですか・・
> 連勝数を記載していたSOSを見たことがあったので・・
> となるとさっきの龍王と同じような何番目といったものが記載されてるのでしょうか??
>
> 連勝数パラメータを追加となると・・具体的にはどのような追加になりますか??
> 私には少し荷が重いですかね・・。
add_champは変更しなくて大丈夫でした。
何番目かという情報も記録されておらず、記録されているのはIDから殺害数までのユーザー情報だけです。(get_champとchampoutを見てください。)
パラメータの追加はget_champとchampoutの最後のパラメータ($pkl)の後ろに新しいパラメータ(例:$pcwn)を追加すれば良いです。
あと、sub fightの変更は以下のようにすれば良いと思います。
if ($result == 1){
$pid=$id;$pnm=$nm;$pps=$ps;$pjb=$jb;$pig=$ig;$psp=$sp;$pbp=$bp;$pbn=$bn;$pak=$ak;$pdd=$dd;$php=$hp;$pxp=$xp;$pab=$ab;$pdb=$db;$pav='alive';$pwn=$wn;$plz=$lz;$pdt=$dt;$pmn=$mn;$pbg=$bg;$pxi=$xi;$ptm=$tm;$plf=$lf;$pfe=$fe;$pcm=$cm;$pis=$is;$pht=$ht;$pfg='NS';$prw=$rw;$pkl=$kl;
push (@msg,"$nmは覇王の称号を継ぎました。");
&add_champ($fwords)}
else{$pav='alive';&add_champ($fwords)}
↓
if ($result == 1){
# 自分の勝利なので覇王交代の場合
$pid=$id;$pnm=$nm;$pps=$ps;$pjb=$jb;$pig=$ig;$psp=$sp;$pbp=$bp;$pbn=$bn;$pak=$ak;$pdd=$dd;$php=$hp;$pxp=$xp;$pab=$ab;$pdb=$db;$pav='alive';$pwn=$wn;$plz=$lz;$pdt=$dt;$pmn=$mn;$pbg=$bg;$pxi=$xi;$ptm=$tm;$plf=$lf;$pfe=$fe;$pcm=$cm;$pis=$is;$pht=$ht;$pfg='NS';$prw=$rw;$pkl=$kl;
$pcwn = 1; # これを追加する。
push (@msg,"$nmは覇王の称号を継ぎました。");
&add_champ($fwords);
}
else{
# 引き分けまたは自分の敗北なので覇王継続の場合
$pcwn++ if($result == -1); # これを追加する。相手の勝利の場合だけ連勝数をカウントアップする。
$pav='alive';
&add_champ($fwords);
}
> add_champは変更しなくて大丈夫でした。スレッド一覧
>
> 何番目かという情報も記録されておらず、記録されているのはIDから殺害数までのユーザー情報だけです。(get_champとchampoutを見てください。)
> パラメータの追加はget_champとchampoutの最後のパラメータ($pkl)の後ろに新しいパラメータ(例:$pcwn)を追加すれば良いです。
> あと、sub fightの変更は以下のようにすれば良いと思います。
> if ($result == 1){
> $pid=$id;$pnm=$nm;$pps=$ps;$pjb=$jb;$pig=$ig;$psp=$sp;$pbp=$bp;$pbn=$bn;$pak=$ak;$pdd=$dd;$php=$hp;$pxp=$xp;$pab=$ab;$pdb=$db;$pav='alive';$pwn=$wn;$plz=$lz;$pdt=$dt;$pmn=$mn;$pbg=$bg;$pxi=$xi;$ptm=$tm;$plf=$lf;$pfe=$fe;$pcm=$cm;$pis=$is;$pht=$ht;$pfg='NS';$prw=$rw;$pkl=$kl;
> push (@msg,"$nmは覇王の称号を継ぎました。");
> &add_champ($fwords)}
> else{$pav='alive';&add_champ($fwords)}
> ↓
> if ($result == 1){
> # 自分の勝利なので覇王交代の場合
> $pid=$id;$pnm=$nm;$pps=$ps;$pjb=$jb;$pig=$ig;$psp=$sp;$pbp=$bp;$pbn=$bn;$pak=$ak;$pdd=$dd;$php=$hp;$pxp=$xp;$pab=$ab;$pdb=$db;$pav='alive';$pwn=$wn;$plz=$lz;$pdt=$dt;$pmn=$mn;$pbg=$bg;$pxi=$xi;$ptm=$tm;$plf=$lf;$pfe=$fe;$pcm=$cm;$pis=$is;$pht=$ht;$pfg='NS';$prw=$rw;$pkl=$kl;
> $pcwn = 1; # これを追加する。
> push (@msg,"$nmは覇王の称号を継ぎました。");
> &add_champ($fwords);
> }
> else{
> # 引き分けまたは自分の敗北なので覇王継続の場合
> $pcwn++ if($result == -1); # これを追加する。相手の勝利の場合だけ連勝数をカウントアップする。
> $pav='alive';
> &add_champ($fwords);
> }
すみません。。。
やはり表示のところでつまづいているようです。
覇王がデータとは違うキャラになってしまっていて・・。
本来では0002のキャラなのですが
9999のキャラになっていたりと・・。
私の記述がやっぱり間違っているのだと思います。
$pcwn = 1;
$pcwn++ if($result == -1);
これをlist_orderの前に記述して・・
代入は$pcwnをいれてはいるのですが・・
>>if ($pcwn = 1 > $champ ){ $pnm = $nm; $pid = $id; $pig = $ig; $champ = $pcwn if($result == -1); }
ここも間違っていそうです・・。
お手数おかけしますがよろしくお願いします
> すみません。。。スレッド一覧
> やはり表示のところでつまづいているようです。
>
> 覇王がデータとは違うキャラになってしまっていて・・。
> 本来では0002のキャラなのですが
> 9999のキャラになっていたりと・・。
>
> 私の記述がやっぱり間違っているのだと思います。
>
> $pcwn = 1;
> $pcwn++ if($result == -1);
> これをlist_orderの前に記述して・・
> 代入は$pcwnをいれてはいるのですが・・
>
> >>if ($pcwn = 1 > $champ ){ $pnm = $nm; $pid = $id; $pig = $ig; $champ = $pcwn if($result == -1); }
> ここも間違っていそうです・・。
>
> お手数おかけしますがよろしくお願いします
新しく追加したパラメータ($pcwn)は連勝数を意味します。
ですので、sub sagaで$pcwn = 1;などのような処理を行うのではなく読み込むサブルーチン(get_champ)を呼び出すだけで良いです。
あと、sub find_bestの部分は条件自体が間違っており「if($id eq $pid && $nm eq $pnm && $ps eq $pps){$champ_nm = $pnm; 〜略〜 $champ = $pcwn;}」のようにする必要があります。
> 新しく追加したパラメータ($pcwn)は連勝数を意味します。スレッド一覧
> ですので、sub sagaで$pcwn = 1;などのような処理を行うのではなく読み込むサブルーチン(get_champ)を呼び出すだけで良いです。
> あと、sub find_bestの部分は条件自体が間違っており「if($id eq $pid && $nm eq $pnm && $ps eq $pps){$champ_nm = $pnm; 〜略〜 $champ = $pcwn;}」のようにする必要があります。
お返事ありがとうございます。
というかいつもいつもすみません・・。
記述まで教えていただいて・・・
条件を理解できていなかったようです
おかげさまできちんと表示できています。
ありがとうございました!
またこちらに質問させていただくとは思いますが
よろしくお願いします。