▼スレッド
│
└◇730:転職所内蔵 [masaki] 08/16 17:18
└◇731:Re:転職所内蔵 [masaki] 08/16 17:21
└◇732:Re[2]:転職所内蔵 [moon] 08/16 19:00
└◇733:修正報告 [moon] 08/16 19:12
└◇734:Re:修正報告 [masaki] 08/17 06:56<-last
マシマロさんの「転職所内蔵」の改造をしたのですが、突然プレイヤーのデータしか表示されなくなってしまいました。スレッド一覧
http://box6-6.hp.infoseek.co.jp/sos.jpg(重いです(;;))
改造内容は
main programに
if ($Fm{'mode'} eq 'change_menu') {require 'change_form.pl';&change_form }
if ($Fm{'mode'} eq 'class_change') {require 'change_form.pl';&change_form }
if ($Fm{'mode'} eq 'job_change') {require 'change_form.pl';&change_form }
を追加し、
change_form.plを作成して、その中にsub change_formを作りました。sub change_formの一部↓
if ($Fm{'mode'} eq 'class_change'){require 'class_change.pl';&class_change;}
if ($Fm{'mode'} eq 'job_change') {require 'job_change.pl';&job_change;}
if ($Fm{'mode'} eq 'change_menu') {require 'change_menu.pl';&change_menu;}
問題の場所はclass_change.pl内の
if ($urt) { if ($rt < $urt) { push (@msg,"クラスチェンジするにはRateが$urt以上必要です。"); return }}
だと思うのですが(^^;
returnの意味がよくわからないので、どこをどうすればいいのか…(;;
どうかご教授お願いします。(いつもすみません)
if ($uct) { if ($mn < $uct) { push (@msg,"クラスチェンジするには$uct\G必要です。"); return }}スレッド一覧
画像の場所はここでした(^^;
画像のアドレスに(も入ってる・・(汗
> if ($Fm{'mode'} eq 'change_menu') {require 'change_form.pl';&change_form }スレッド一覧
> if ($Fm{'mode'} eq 'class_change') {require 'change_form.pl';&change_form }
> if ($Fm{'mode'} eq 'job_change') {require 'change_form.pl';&change_form }
に関連して、
> change_form.plを作成して、その中にsub change_formを作りました。sub change_formの一部↓
> if ($Fm{'mode'} eq 'class_change'){require 'class_change.pl';&class_change;}
> if ($Fm{'mode'} eq 'job_change') {require 'job_change.pl';&job_change;}
> if ($Fm{'mode'} eq 'change_menu') {require 'change_menu.pl';&change_menu;}
としているようですが手元の古いバージョンでは、
# ここから引用
if ($Fm{'mode'} eq 'change_menu') { &change_form }
if ($Fm{'mode'} eq 'class_change') { &action_form }
if ($Fm{'mode'} eq 'job_change') { &action_form }
# ここまで引用
となっています。
なので、これに沿って改造したほうが問題が無いように思います。
具体的には、sub change_menuとclass_changeとjob_changeとchange_formを一つのplファイルにまとめ上記の&change_formや&action_formの前にrequireするだけ、にしておく。(どうせ転職などはあまり行われないので3つや4つに分割する効果はほとんど無いだろうし。)
> 問題の場所はclass_change.pl内の
> if ($urt) { if ($rt < $urt) { push (@msg,"クラスチェンジするにはRateが$urt以上必要です。"); return }}
> だと思うのですが(^^;
> returnの意味がよくわからないので、どこをどうすればいいのか…(;;
returnはサブルーチンを強制的に抜ける処理です。
# normal_actionが実行されない原因としては上記からいうとaction_formを実行していないから、だと思います。
余計な情報があると不味い場合もあるので念のためrequireの部分を修正しておきました。スレッド一覧
> 余計な情報があると不味い場合もあるので念のためrequireの部分を修正しておきました。スレッド一覧
お手数をおかけしてすみません(;;
転職所内蔵のバグは直りました(^^
plファイルが多いので混乱していましたがw
本当にありがとうございました。