▼スレッド
│
└◇679:度々申し訳ないです。。。 [戒] 07/29 04:02
├◇680:Re:度々申し訳ないです。。。 [moon] 07/29 09:05
│└◇681:Re[2]:度々申し訳ないです。。。 [戒] 07/29 18:04
│ └◇682:Re[3]:度々申し訳ないです。。。 [moon] 07/29 19:23
│ └◇683:補足 [moon] 07/29 21:01
│ └◇684:Re:補足 [戒] 07/29 22:58
│ └◇685:Re[2]:補足 [哲] 07/29 23:29
│ └◇686:Re[3]:補足 [戒] 07/30 00:36
│ └◇687:Re[4]:補足 [哲] 07/30 02:20
│ └◇688:Re[5]:補足 [戒] 07/30 19:42
│ └◇689:Re[6]:補足 [moon] 07/30 21:12
│ └◇690:Re[7]:補足 [戒] 07/31 00:42
│ └◇691:Re[8]:補足 [哲] 07/31 02:02
│ └◇692:Re[9]:補足 [moon] 07/31 09:00
│ └◇693:Re[10]:補足 [哲] 07/31 10:01
└◇694:雑談(No.693への返信) [moon] 07/31 19:21
└◇695:Re:雑談(No.693への返信) [哲] 07/31 19:49
└◇696:Re[2]:雑談(No.693への返信) [moon] 07/31 22:49
└◇697:Re[3]:雑談(No.693への返信) [哲] 08/01 00:11
└◇698:Re[4]:雑談(No.693への返信) [moon] 08/01 09:14
└◇699:追記 [moon] 08/01 09:18<-last
っとある所の罠システムをスレッド一覧
導入しているのですが、
この罠システムには、
HPが0になったら、
aliveをdeadにする処理が
ない模様なので、改造をしてみたのですが・・・
どうやらうまくいきません・・・。。
以下のようにしてみたのですが・・・
どうでしょうか?
#トラップデータ読み込みルーチン
# Sub Creat Traps #
sub creattraps {
unless (@traplines) { &error('トラップーデータ読みこみエラー') }
local($wnnam) = $#traplines+1;
foreach (0 .. $#traplines){
($wame[$_],$type[$_],$others)= split(/<>/,$traplines[$_]);
}
return($wnnam)
}
#トラップメインルーチン
# Sub Trap #
sub trap{
if ($av eq 'alive') {
local($wnnam) = &creattraps;
undef $wand;
local($wand) = int(rand($wnnam));
if($sp =~ /Wn/){
if ($wana <= $del_wana) { push (@msg,'トラップ解除成功!!'); }
else{ push (@msg,"トラップ解除失敗!!$wame[$wand]"); $tav = "$type[$wand]"; }
}
else{ push (@msg,"$wame[$wand]"); $tav = "$type[$wand]"; }
if ($tav eq 'cure') {$hp = $hp + 2; $hp = $xp if $hp >= $xp; push (@msg,"<font color=lightskyblue>2ポイント回復した</font>" ); }
if ($tav eq 'ya') { push (@msg,"<font color=red>$wandポイントのダメージを受けた</font>"); $hp=$hp-$wand; $av = 'daed' if $hp <= 0; }
if ($tav eq 'isi') { push (@msg,"<font color=red>2ポイントのダメージを受けた</font>"); $hp=$hp-2; $av = 'daed' if $hp <= 0; }
}
}
1;
> っとある所の罠システムをスレッド一覧
> 導入しているのですが、
> この罠システムには、
> HPが0になったら、
> aliveをdeadにする処理が
> ない模様なので、改造をしてみたのですが・・・
> どうやらうまくいきません・・・。。
綴り間違い+見た目に影響する処理不足という感じですね。
2箇所の、
$av = 'daed' if $hp <= 0;
を、
if($hp < 1){$av = 'dead'; $hp = 0;}
とすれば大丈夫だろうと思います。
変更してみました〜。スレッド一覧
一応、死亡はしたのですが・・・、
ダメージの数値が表記されたものと
実際に受けた数値が違っていたり、
表記で毒になりました・・・。
っとなっているのに、
aliveの状態のままだったりと、
色々不安定なようなのですが・・・?
まだ他にも修正すべきところがあるのでしょうか?(;;
> 変更してみました〜。スレッド一覧
> 一応、死亡はしたのですが・・・、
> ダメージの数値が表記されたものと
> 実際に受けた数値が違っていたり、
> 表記で毒になりました・・・。
> っとなっているのに、
> aliveの状態のままだったりと、
> 色々不安定なようなのですが・・・?
> まだ他にも修正すべきところがあるのでしょうか?(;;
体力に関しては、もしこのトラップが探索中の事なら探索のダメージ分が減っているとか、では?
毒に関しては書かれたソースにないので違うところでの不具合だと思います。
もしくは、「毒になりました」が「push (@msg,"$wame[$wand]");」で出力しているメッセージならトラップデータの記述間違いか、if ($tav eq 'isi')関係の処理が足りないのだと思います。
> もしくは、「毒になりました」が「push (@msg,"$wame[$wand]");」で出力しているメッセージならトラップデータの記述間違いか、〜略スレッド一覧
毒になる処理が無いのでメッセージだけ出ている状態なのではないですか、ということです。
>体力に関しては、スレッド一覧
>もしこのトラップが探索中の事なら
>探索のダメージ分が減っているとか、では?
たぶん違うと思います・・・。
回復の泉でHP喰らってましたから(死滅
>毒に関しては書かれたソースにないので
>違うところでの不具合だと思います。
>もしくは、「毒になりました」が
>「push (@msg,"$wame[$wand]");」で
>出力しているメッセージならトラップデータの
>記述間違いか、if ($tav eq 'isi')関係の
>処理が足りないのだと思います。
えっと下の通りデス。
<font color=lightskyblue>湖に足を踏み入れた・・・。<BR>体が癒えて行く・・・。</font><>cure<>
<font color=red>何者かの奇襲!!矢が飛んできた!</font><>ya<>
<font color=red>何者かの奇襲!!矢が飛んできた!</font><>ya<>
<font color=red>何者かの奇襲!!矢が飛んできた!</font><>ya<>
<font color=red>石につまずき、転んだ。。</font><>isi<>
<font color=red>石につまずき、転んだ。。</font><>isi<>
<font color=lightskyblue>湖に足を踏み入れた・・・。<BR>体が浄化された・・・。</font><>alive<>
<font color=magenta>湖に足を踏み入れた・・・。<BR>体が毒化してしまった・・・。</font><>poison<>
一応ココに毒のソースはあるのですが・・・
(trap.dat)
横レス失礼します。スレッド一覧
毒状態についてですが、
if ($tav eq 'poison') { $av = 'poison'; }
の様な処理を行っている場所はありますか?
無ければ、状態はaliveのままになってしまいそうなので…。
えっと、ないと思います。スレッド一覧
・・・以前は毒になっていたのですが。
(元からなかった・・?
誤って消した・・?)
確かに、状態を毒にする処理が
なければ毒にもなりませんよね(汗
っでもなんで、毒になってたんでしょうか・・・?(滝汗
元はあった処理を、改造などの時に誤って消してしまったのでしょう。スレッド一覧
毒にする処理が無ければ、毒になるはずが無いので…。
#トラップデータ読み込みルーチンスレッド一覧
# Sub Creat Traps #
sub creattraps {
unless (@traplines) { &error('トラップーデータ読みこみエラー') }
local($wnnam) = $#traplines+1;
foreach (0 .. $#traplines){
($wame[$_],$type[$_],$others)= split(/<>/,$traplines[$_]);
}
return($wnnam)
}
#トラップメインルーチン
# Sub Trap #
sub trap{
if ($av eq 'alive') {
local($wnnam) = &creattraps;
undef $wand;
local($wand) = int(rand($wnnam));
if($sp =~ /Wn/){
if ($wana <= $del_wana) { push (@msg,'トラップ解除成功!!'); }
else{ push (@msg,"トラップ解除失敗!!$wame[$wand]"); $tav = "$type[$wand]"; }
}
else{ push (@msg,"$wame[$wand]"); $tav = "$type[$wand]"; }
if ($tav eq 'cure') {$hp = $hp + 2; $hp = $xp if $hp >= $xp; push (@msg,"<font color=lightskyblue>2ポイント回復した</font>" ); }
if ($tav eq 'ya') { push (@msg,"<font color=red>$wandポイントのダメージを受けた</font>"); $hp=$hp-$wand; $av = 'daed' if $hp <= 0; }
if ($tav eq 'isi') { push (@msg,"<font color=red>2ポイントのダメージを受けた</font>"); $hp=$hp-2; $av = 'daed' if $hp <= 0; }
}
if ($tav eq 'poison') { $av = 'poison'; }
}
1;
といった感じに変更してみました。
これで大丈夫だと思います・・・っが、
数値の不安定さは探索のせいでした(汗
罠にかかった後は、探索を中断したいのですが・・・
どうしたら良いでしょうか?
> if ($tav eq 'poison') { $av = 'poison'; }スレッド一覧
aliveとpoisonとdead状態しかない、かつ、探索で毒状態が回復しない、なら無駄処理という以外には問題が無いと思いますが、このスクリプトの場所は$tav eq 'isi'の下あたりが適当だと思われます。
> 罠にかかった後は、探索を中断したいのですが・・・
> どうしたら良いでしょうか?
複数探索の実現方法が定かでないので推測ですが、
}
}
1;
を、
last;
}
}
1;
に変更してみては?
# 書いておいてアレですが、個人的には絶対やりたくない方法です。
# サブルーチン外のループを脱出する目的のlast;は-wで表示される警告の対象なので。
> aliveとpoisonとdead状態しかない、スレッド一覧
>かつ、探索で毒状態が回復しない、
>なら無駄処理という以外には問題が無いと思いますが、
>このスクリプトの場所は$tav eq 'isi'の下あたりが
>適当だと思われます。
場所は変えておきました。
あと、上の3行がよく分からないのですが・・・(;;
> 複数探索の実現方法が定かでないので推測ですが、
複数探索ではないです・・。
> # 書いておいてアレですが、個人的には絶対やりたくない方法です。
> # サブルーチン外のループを脱出する
>目的のlast;は-wで表示される警告の対象なので。
ぇ・・・?(汗
ループを脱出する
>目的のlast;は-wで表示される警告の対象
っというのが分からないです・・・(;;
> > # サブルーチン外のループを脱出するスレッド一覧
> >目的のlast;は-wで表示される警告の対象なので。
> ぇ・・・?(汗
> ループを脱出する
多分、lastを使っている所をみると、複数回探索機能がついていると解釈されている様なので、罠にかかりループを終了という処理を書かれている訳です…。
find_itemの罠にかかって、trapにくる所、
if (5 <= $wanarand){&trap}
(処理方法がわからないので適当です。)
を
if (5 <= $wanarand){&trap; goto JUMP}
として、
アイテムを拾う処理の下辺りに
JUMP;と入れれば、
「罠にかかった。アイテムを手に入れた。」
という処理にはならないですが…。
> >目的のlast;は-wで表示される警告の対象
> っというのが分からないです・・・(;;
ファイル検査の表現?分からない…。
あと、関係無いですが、
if ($tav eq 'cure') {$hp += 2; $hp = $xp if $hp >= $xp; push (@msg,"<font color=lightskyblue>2ポイント回復した</font>" ); }
elsif ($tav eq 'ya') { push (@msg,"<font color=red>$wandポイントのダメージを受けた</font>"); $hp -= $wand; $av = 'daed' if $hp <= 0; }
elsif ($tav eq 'isi') { push (@msg,"<font color=red>2ポイントのダメージを受けた</font>"); $hp -= 2; $av = 'daed' if $hp <= 0; }
else { $av = 'poison'; }
こうすると、少しだけ綺麗かなとも思いました…。
> > > # サブルーチン外のループを脱出するスレッド一覧
> > >目的のlast;は-wで表示される警告の対象なので。
> > ぇ・・・?(汗
> > ループを脱出する
>
> 多分、lastを使っている所をみると、複数回探索機能がついていると解釈されている様なので、罠にかかりループを終了という処理を書かれている訳です…。
そうです。
完全に複数探索を取り入れていると思い込んでいました。
> find_itemの罠にかかって、trapにくる所、
> if (5 <= $wanarand){&trap}
> (処理方法がわからないので適当です。)
> を
> if (5 <= $wanarand){&trap; goto JUMP}
> として、
> アイテムを拾う処理の下辺りに
> JUMP;と入れれば、
> 「罠にかかった。アイテムを手に入れた。」
> という処理にはならないですが…。
もう少し手を入れて、sub trapのif($av eq 'alive'){}ブロック内に$trapflag = 1;を追加し、goto JUMP;ではなくgoto JUMP if($trapflag);にしたほうが良いかもしれません。
> > >目的のlast;は-wで表示される警告の対象
> > っというのが分からないです・・・(;;
>
> ファイル検査の表現?分からない…。
perl -wというように使用する警告表示用のオプションのことです。
Perlの実行環境がインストールされているのならコマンドプロンプトから、perl -e "sub xxx{last;} foreach(0 .. 1){ &xxx; }"とperl -we "sub xxx{last;} foreach(0 .. 1){ &xxx; }"を実行してみればどういうことか分かると思います。(前者は警告表示なしの指定)
# 文法チェックをする場合は普通-wを付けると思うのですが、簡略化して書いたので思い当たらなかったのでしょうか。 > 哲さん
> # 文法チェックをする場合は普通-wを付けると思うのですが、簡略化して書いたので思い当たらなかったのでしょうか。 > 哲さんスレッド一覧
コマンドプロントの方でしたか…。
あの時はてっきり忘れてましたよ…ははは…。
> > # 文法チェックをする場合は普通-wを付けると思うのですが、簡略化して書いたので思い当たらなかったのでしょうか。 > 哲さんスレッド一覧
>
> コマンドプロントの方でしたか…。
> あの時はてっきり忘れてましたよ…ははは…。
あのレスを見たときに-wは一般的でないのかな、と一瞬思いました。(気になったのでネットを少し検索してみたり。)
まあ、一般的であるなしは自分が使う上で何の問題も引き起こさないのですが。(笑)
> あのレスを見たときに-wは一般的でないのかな、と一瞬思いました。(気になったのでネットを少し検索してみたり。)スレッド一覧
最近は、自分のパソコンでテストする人より、サーバーにアップしてから確認って人が増えてるとは思います…。
そのため、初心者はオンラインcheckerを使っているからあまり知らないのですかね…。
私も初心者ですので、自家鯖でチェックしてます(笑
初めの方はコマンドも使いましたが、一度に沢山のミスが見つかりすぎて怖い(爆
> まあ、一般的であるなしは自分が使う上で何の問題も引き起こさないのですが。(笑)
自分さえ分かっていれば、自分が使う分には全然問題無しですね(笑
> 最近は、自分のパソコンでテストする人より、サーバーにアップしてから確認って人が増えてるとは思います…。スレッド一覧
> そのため、初心者はオンラインcheckerを使っているからあまり知らないのですかね…。
> 私も初心者ですので、自家鯖でチェックしてます(笑
> 初めの方はコマンドも使いましたが、一度に沢山のミスが見つかりすぎて怖い(爆
最近サーバにアップしてから云々、は巷の事情が良くわからないのですが、昔からという気がしないでもありません。
もちろん、これは割合的な部分についての意見ですが。(しかも希望を含めた)
# さきほど本家BBSで自分では数回しか利用したことが無いCGIチェッカ(←これは固有名詞的な意味合いが強いかもしれませんが)を勧めてきたのですが、こういうものを試せば解決が早いのではないのかなという質問も時々あるんですよね・・・。
> # さきほど本家BBSで自分では数回しか利用したことが無いCGIチェッカ(←これは固有名詞的な意味合いが強いかもしれませんが)を勧めてきたのですが、こういうものを試せば解決が早いのではないのかなという質問も時々あるんですよね・・・。スレッド一覧
時々ありますね…。
もちろん個人的な意見ですが、元々コマンドプロントの使い方を知らない方もいらっしゃる様ですし、チェッカーの方が、同じ所において実行するだけでいいので、簡単といえば簡単ですね。
使い方が分からない方だとコマンドより早いのでしょう。
使い方が分かる方はコマンドでした方が早いのでは?とは思いますが…。
> もちろん個人的な意見ですが、元々コマンドプロントの使い方を知らない方もいらっしゃる様ですし、チェッカーの方が、同じ所において実行するだけでいいので、簡単といえば簡単ですね。スレッド一覧
> 使い方が分からない方だとコマンドより早いのでしょう。
> 使い方が分かる方はコマンドでした方が早いのでは?とは思いますが…。
コマンドの使い方に熟練している人でも実行時エラーの補足にはコマンドプロンプトを使っている人は少ないのでは、と思います。(いないとは言い切れませんが。)
コマンドプロンプトからの実行では、入力用の環境変数を設定するのが面倒ですし出力もHTMLそのものなので視覚的にどう表示されるか分からないので。
# 返信は別に必要ないですよ。こんな雑談に付き合ってもらって逆に心苦しくなったり。(笑)
# 半分以上独り言ですし。
> コマンドの使い方に熟練している人でも実行時エラーの補足にはコマンドプロンプトを使っている人は少ないのでは、と思います。(いないとは言い切れませんが。)スレッド一覧
> コマンドプロンプトからの実行では、入力用の環境変数を設定するのが面倒ですし出力もHTMLそのものなので視覚的にどう表示されるか分からないので。
実行時のエラーを補足しようとする場合のことです。
文法エラーなどの実行しなくても得られるエラーを補足したい場合は確実にこの限りではないですね。