私設SoS2オーナー応援BBS

新規発言一覧最新記事過去一覧検索ダウンロードページHOME

スレッド

└◇227:
紹介状 [masaki] 12/29 22:54

 └◇228:一期一会 [moon] 12/29 23:28
  └◇229:Re:一期一会 [masaki] 12/30 10:50
   ├◇230:Re[2]:一期一会 [moon] 01/01 16:19
   │└◇232:Re[3]:一期一会 [masaki] 01/01 20:50
   │ └◇233:Re[4]:一期一会 [moon] 01/01 22:05
   │  ├◇241:Re[5]:一期一会 [masaki] 01/04 00:03
   │  │└◇242:Re[6]:一期一会 [moon] 01/04 00:19
   │  │ └◇250:Re[7]:一期一会 [masaki] 01/10 06:48
   │  │  └◇251:参考までに [moon] 01/10 08:51
   │  │   └◇253:Re:参考までに [masaki] 01/10 18:15
   │  │    └◇254:Re[2]:参考までに [moon] 01/10 20:23
   │  │     └◇293:Re[3]:参考までに [masaki] 01/26 21:50
   │  │      └◇294:Re[4]:参考までに [moon] 01/26 22:59
   │  │       └◇295:Re[5]:参考までに [masaki] 01/27 06:27
   │  └◇256:Re[5]:一期一会 [masaki] 01/12 11:01
   │   └◇257:Re[6]:一期一会 [moon] 01/12 13:34
   │    ├◇258:Re[7]:一期一会 [moon] 01/12 14:57
   │    └◇259:Re[7]:一期一会 [masaki] 01/12 15:37
   │     └◇260:Re[8]:一期一会 [moon] 01/12 15:46
   │      └◇261:Re[9]:一期一会 [masaki] 01/12 17:42
   └◇297:Re[2]:一期一会 [masaki] 01/27 06:31
    └◇298:Re[3]:一期一会 [moon] 01/27 08:42
     └◇300:Re[4]:一期一会 [masaki] 01/27 17:19
      └◇301:Re[5]:一期一会 [moon] 01/27 19:03
       └◇302:Re[6]:一期一会 [masaki] 01/27 20:19
        └◇303:Re[7]:一期一会 [moon] 01/27 22:06
         └◇304:Re[8]:一期一会 [masaki] 01/28 18:21
          └◇311:Re[9]:一期一会 [moon] 01/28 20:21
           └◇313:Re[10]:一期一会 [masaki] 01/28 20:39<-last


227● 紹介状[ masaki ] 2002 12/29 22:54
紹介状アイテムについてなのですが、紹介状は何回も使えますよね。
それを、一回しか使えないようにしたいのですが、どのようにすればいいのでしょうか?
すみませんm(_ _)m
スレッド一覧


228● 一期一会[ moon ] 2002 12/29 23:28
> 紹介状アイテムについてなのですが、紹介状は何回も使えますよね。
> それを、一回しか使えないようにしたいのですが、どのようにすればいいのでしょうか?
> すみませんm(_ _)m

一度しか使用できないようにするのなら紹介状アイテムを削除すれば良いのですが、それをするタイミングがかなり問題です。
例1. contact_checkで削除 : contact_actionでの紹介状判定も削除しなければいけないのでブラウザバックで行動可能。
例2. goodbye処理中に削除 : 「別れる」をしなければ消えないので消さないことが可能。
まあ、現実的には例1の方法だと思うのでそちらの方法を書きます。(参考バージョンは1.10とします)

contact_checkの、
  foreach (@items) {
    $right = 1 if (split(/△/))[1] =~ /$vflag/;
  }
を、
  if(@items){
    foreach(0..$#items){
      if(index((split(/△/))[1],$vflag)>=0){
        $right = 1;
        splice(@items,$_,1); # 紹介状を削除
        &joinitem('i'); # アイテム結合
        &userout; # ユーザデータ書き込み
        last; # ループ終了
      }
    }
  }
に変更し、contact_actionの、
  if ($psp =~ /(V[a-z])/) {
    # 処理
  }
を削除。

# それにしても1.10ってどういうバージョン表記なんだ・・・。せめて1.91とかにして欲しかった。(愚痴)
スレッド一覧


229● Re:一期一会[ masaki ] 2002 12/30 10:50
>contact_actionの、
>   if ($psp =~ /(V[a-z])/) {
>     # 処理
>   }
> を削除。
これは、
if ($psp =~ /(V[a-z])/) {
$vflag = $1;
&splititem('i');
foreach (@items) {
$right = 1 if (split(/△/))[1] =~ /$vflag/;
}
の所でいいのでしょうか?
この中のif ($psp =~ /(V[a-z])/) {と}を削除ですか?
よくわからなかったので(^^;
スレッド一覧


230● Re[2]:一期一会[ moon ] 2003 01/01 16:19
> >contact_actionの、
> >   if ($psp =~ /(V[a-z])/) {
> >     # 処理
> >   }
> > を削除。
> これは、
> if ($psp =~ /(V[a-z])/) {
> $vflag = $1;
> &splititem('i');
> foreach (@items) {
> $right = 1 if (split(/△/))[1] =~ /$vflag/;
> }
> の所でいいのでしょうか?
> この中のif ($psp =~ /(V[a-z])/) {と}を削除ですか?
> よくわからなかったので(^^;

遅くなりました。

ちょっと違います。
sub contact_actionの、
  if ($psp =~ /(V[a-z])/) {
    $vflag = $1;
    &splititem('i');
    foreach (@items) {
      $right = 1 if (split(/△/))[1] =~ /$vflag/;
    }
    if (!$right) {
      &error("$pnmに会うためにはあるアイテムが必要です");
    }
  }
を「全て削除」ということです。
スレッド一覧


232● Re[3]:一期一会[ masaki ] 2003 01/01 20:50
ありがとうございました。
しかし、なんどやってもエラーになってしまいます(TT
間違ってないかどうか何度もやってみたのですが(;;
すみません。。
スレッド一覧


233● Re[4]:一期一会[ moon ] 2003 01/01 22:05
> ありがとうございました。
> しかし、なんどやってもエラーになってしまいます(TT
> 間違ってないかどうか何度もやってみたのですが(;;
> すみません。。

エラーって文法エラーですか?
もしそうならActivePerlなどで文法チェックしてください。
エラーでなくてうまくいかない場合は、変更箇所だけ変更して削除箇所はそのままでやってみてください。
そして、会えない旨のメッセージが出ればOKで、会えてしまえば変更箇所の変更ミスです。
スレッド一覧


241● Re[5]:一期一会[ masaki ] 2003 01/04 00:03
すみません(^^;
Activeperlのインストール方法に混乱しています。。(英語ばかりで)
決して無視しているわけではないので(^^;
スレッド一覧


242● Re[6]:一期一会[ moon ] 2003 01/04 00:19
> すみません(^^;
> Activeperlのインストール方法に混乱しています。。(英語ばかりで)
> 決して無視しているわけではないので(^^;

いや、ちゃんとできたのなら返信無しでも構いませんので。(もちろん返信があったほうが嬉しくはありますが)

参考(KENT WEB様) : http://www.kent-web.com/www/index.html
辿っていくと「ActivePerlインストール例」というページがあります。

# 文法チェックは、'perl -wc ファイル'(警告メッセージを無視する場合は'perl -c ファイル')
スレッド一覧


250● Re[7]:一期一会[ masaki ] 2003 01/10 06:48
> > すみません(^^;
> > Activeperlのインストール方法に混乱しています。。(英語ばかりで)
> > 決して無視しているわけではないので(^^;
>
> いや、ちゃんとできたのなら返信無しでも構いませんので。(もちろん返信があったほうが嬉しくはありますが)
>
> 参考(KENT WEB様) : http://www.kent-web.com/www/index.html
> 辿っていくと「ActivePerlインストール例」というページがあります。
>
> # 文法チェックは、'perl -wc ファイル'(警告メッセージを無視する場合は'perl -c ファイル')
ありがとうございました。
進めていったのですが、どうしてもコマンドプロントが見つからず断念しました。m(_ _)m
ご迷惑をおかけしてしまいすみませんでした。
スレッド一覧


251● 参考までに[ moon ] 2003 01/10 08:51
> 進めていったのですが、どうしてもコマンドプロントが見つからず断念しました。m(_ _)m

コマンドプロンプトの場所
Win9X/ME : C:\WINDOWS\COMMAND.COM
WinNT/2000/XP : C:\WINNT\SYSTEM32\CMD.EXE (名前以外はうろ覚え(C:\WINNT\CMD.EXEの可能性も))

# 普通は「スタート」→「プログラム」or「すべてのプログラム」(XP)→「アクセサリ」に「〜プロンプト」というのがありますけどね・・・。(〜は'MS-DOS'や'コマンド'など)
# ちなみにファイル本体が無い場合は危うい状態です。
スレッド一覧


253● Re:参考までに[ masaki ] 2003 01/10 18:15
>ファイル本体が無い場合は危うい状態です。
はい。それが無い状態です。
危ういですか(TT
スレッド一覧


254● Re[2]:参考までに[ moon ] 2003 01/10 20:23
> はい。それが無い状態です。
> 危ういですか(TT

ファイルが無いって本当に?(ファイル検索で'command'もしくは'cmd'で発見できないということ?)
確かに読み取り属性や隠しファイル属性が無いので消してしまうことはあるかもしれませんが、無いとWindowsの起動がうまく出来ないような気がします。(完全に出来ないかはやったことがないので分からないですが)
本当に無い場合、「起動ディスク」(FD)を作成してあるのならその中のファイルをコピーしてくることで復活出来るかと思います。
まあ、そのあたりは詳しくないのであくまで一般論ですが。

実行ファイルが存在した場合はこちら : http://nacelle.cug.net/tips/02010.html
スレッド一覧


293● Re[3]:参考までに[ masaki ] 2003 01/26 21:50
すみません。やっとの思いでActiveperlが使えるようになったのですが、プレイ画面で画像や能力が表示されません。
これで正しいのでしょうか?
(こんなこと質問してしまってすみません。)
スレッド一覧


294● Re[4]:参考までに[ moon ] 2003 01/26 22:59
> すみません。やっとの思いでActiveperlが使えるようになったのですが、プレイ画面で画像や能力が表示されません。
> これで正しいのでしょうか?
> (こんなこと質問してしまってすみません。)

HTTPサーバを立ち上げたけれど、アクセスしても正常に表示されないということかな?(ActivePerl≠サーバ、なのでActivePerlが使用できるようになったと言われた直後に「プレイ画面で画像や能力が表示されません」と言われても意味的に繋がりません。)

HTTPサーバが実行されていると仮定して、画像が表示されないのであればHTTPサーバ側の設定の問題のような気がします。
能力が表示されないことに関しては実物がどのように表示されているかがわからないので何とも言えません。

どこかにその時の画面をキャプチャ(Alt+PrintScreenしてペイントにでも貼り付けJPEGで保存)した画像と、出力されたHTMLをテキスト形式で保存したファイル(拡張子を.txtに変更するだけ)をアップしてもらえませんか?
スレッド一覧


295● Re[5]:参考までに[ masaki ] 2003 01/27 06:27
説明不足ばかりでご迷惑をおかけします。m(_ _)m
http://m3voyage.hp.infoseek.co.jp/cgi-bin/sos3/sos3.jpg
↑ここにアップしておきました。
ほんとうにすみません。
スレッド一覧


256● Re[5]:一期一会[ masaki ] 2003 01/12 11:01
できました〜(^^
すみません。ずっとにらめっこしてたら、全角のスペースが入ってるのかな?とか思って、直したらできました〜。
ですが、ちょっと問題発生です。NPCにVvという略字をつけて、Vvの略字をつけたアイテムもつくったのですが、そのアイテムを持っていても「〜に会うためにはあるアイテムが必要です」とでて会えません。
sub contact_check {
if ($Fm{'pd2'}) { $Fm{'pd'} = $Fm{'pd2'} }
if ($Fm{'pd2'} eq $Fm{'id'}) { push (@msg,"自分に会うことはできません"); $notfound = 1; return }
    @rcdlines = &get_user("$Fm{'id'}");
    @prclines = &get_partner("$Fm{'pd'}");
    $now = (time - $ptm) - ($def_np * 60);
if($psp =~ /Pa/){ push (@msg,"$pnmが現れた"); &partnerout }
if ($tw ne $ptw && $psp !~ /Pa/) { push (@msg,"$pnmは現在ここには居ません"); $notfound = 1; return }
if ($psp =~ /(V[a-z])/) {
$vflag = $1;
&splititem('i');
if(@items){
foreach(0..$#items){
if(index((split(/△/))[1],$vflag)>=0){
$right = 1;
splice(@items,$_,1); # 紹介状を削除
&joinitem('i'); # アイテム結合
&userout; # ユーザデータ書き込み
last; # ループ終了
}
}
}
}
if ($vflag && !$right) {
push (@msg,"$pnmに会うためにはあるアイテムが必要です");
$notfound = 1;
}
↑街移動の改造もしたので、この辺がおかしいのかもしれません。
問題ばかりですみません(TT
スレッド一覧


257● Re[6]:一期一会[ moon ] 2003 01/12 13:34
すみません。書き間違いです。
if(@items){foreach(0..$#items){〜}}を、foreach(@items){〜}にしてください。

これとは関係ないですが、Paスキルの処理が変だと思いますよ。(&partneroutは余計だし、メッセージが変になるし)
・不明とかを無視したくない場合は、if($psp =~ /Pa/){ push (@msg,"$pnmが現れた"); &partnerout }を削除。
・無視しても良い場合は、if($psp =~ /Pa/){ push (@msg,"$pnmが現れた"); &partnerout }の&partneroutをreturn;に変更。
スレッド一覧


258● Re[7]:一期一会[ moon ] 2003 01/12 14:57
たぶん、PerlEditorなどを使用していると思いますが、そういうエディタの中には全角空白を表示する機能があるものがあります。
PerlEditorの場合は、表示→設定→表示色→マーク表示のところ。
スレッド一覧


259● Re[7]:一期一会[ masaki ] 2003 01/12 15:37
ありがとうございます!
Paスキルは、いろいろやってわけがわからなくなっていたやつです。(ぉぃ
質屋につけようと思っていたのですが(^^;
それまで直していただきありがとうございます。

ええと、話はもどりますが、moonさんの言われたとおりなおしてみて、会えるようにはなったのですが、今度は紹介状アイテムがなくなりません。
(何度でも会えてしまいます)
なぜでしょうか?
スレッド一覧


260● Re[8]:一期一会[ moon ] 2003 01/12 15:46
さらに訂正箇所が間違っていました。
訂正したところを戻して、split(/△/)をsplit(/△/,$items[$_])に修正してください。
今度こそは。(笑)
スレッド一覧


261● Re[9]:一期一会[ masaki ] 2003 01/12 17:42
できました〜〜〜〜!!
ありがとうございます!!
本当にありがとうございます〜【感激】
スレッド一覧


297● Re[2]:一期一会[ masaki ] 2003 01/27 06:31
295の記事のアドレスはコピー&ペーストしてアドレス欄に貼りつけないとだめみたいです。
スレッド一覧


298● Re[3]:一期一会[ moon ] 2003 01/27 08:42
> 295の記事のアドレスはコピー&ペーストしてアドレス欄に貼りつけないとだめみたいです。

画像を確認しました。
どうやらsub player_dataが呼び出されていないか、または、呼び出されていてもそこでエラーが出ているようです。
HTTPサーバを使用したせいで起こっていることではないはずなので、その前に改造した箇所の見直しをしてみてください。

どちらにせよHTMLを見ないことには問題の判別は出来なさそうです。
スレッド一覧


300● Re[4]:一期一会[ masaki ] 2003 01/27 17:19
@rcdlines = &get_user("$Fm{'id'}");
require 'town.pl'; &town_name;
    print qq|<td width=50% valign=top>\n|;
    print qq|<center><img src="$imgdir$ttlimg"><br>\n| if $ttlapd;
print qq|<br>【$twn】</center><hr width=80%>\n|;
    print qq|<table border=0 cellspacing=0 cellpadding=5 align=center>\n|;
    print qq|<tr><td align=center valign=top><img src="$imgdir$ig" width=$ig_wd height=$ig_ht><br>$nm</td>\n|;
たぶん、街移動の改造をしたこのあたりだと思うのですが(^^;
本当にすみません。
スレッド一覧


301● Re[5]:一期一会[ moon ] 2003 01/27 19:03
> たぶん、街移動の改造をしたこのあたりだと思うのですが(^^;
> 本当にすみません。

ぱっと見、大丈夫なようです。
ただし、サブルーチンの中でエラーが起こっている場合はこちらからは知りようがありません。
なので、表示がおかしい時のHTMLをテキストで。(長いのでここには貼り付けず画像のようにアップしてください。)

# 本当に確認したかったのはHTMLのほうだったのだけれどな。(笑)
スレッド一覧


302● Re[6]:一期一会[ masaki ] 2003 01/27 20:19
はい。
http://m3voyage.hp.infoseek.co.jp/cgi-bin/sos3/sos3.jpg
これです。なんか全然足りません(;;
スレッド一覧


303● Re[7]:一期一会[ moon ] 2003 01/27 22:06
> はい。
> http://m3voyage.hp.infoseek.co.jp/cgi-bin/sos3/sos3.jpg
> これです。なんか全然足りません(;;

テキストを画像でアップするとは・・・、思わず笑ってしまいました。(笑)
No.294にも書きましたが拡張子を.txtに変更してアップするだけで良かったのですが。

で、おそらく以下のところもしくは、normal_action後でかつこれ以前の部分でエラーになっています。
  @rcdlines = &get_user("$Fm{'id'}");
  require 'town.pl'; &town_name;
この中でも特に怪しいのが&town_name;です。
問題を特定するために、&town_name;を#&town_name;のようにコメントアウトしてテストしてみてください。
こうすれば、コメントアウトしてそれ以降が正常ではないにしても表示されたのなら&town_name;が怪しいと分かると思います。
それでも表示されないなら、今度はrequireも含めてコメントアウトして確認。
スレッド一覧


304● Re[8]:一期一会[ masaki ] 2003 01/28 18:21
>それでも表示されないなら、今度はrequireも含めてコメントアウトして確認。
これでやっとできました〜。
どう修正すればいいのでしょうか?
質問ばかりですみません(TT
(今地道に勉強してます。(^^;)
スレッド一覧


311● Re[9]:一期一会[ moon ] 2003 01/28 20:21
> >それでも表示されないなら、今度はrequireも含めてコメントアウトして確認。
> これでやっとできました〜。
> どう修正すればいいのでしょうか?
> 質問ばかりですみません(TT
> (今地道に勉強してます。(^^;)

&town_name;のコメントアウトでは症状が変化しなくて、requireまでコメントアウトしないと駄目だったという事ですよね?
それなら、town.plの読み込みに失敗しているのだろうと思います。
town.plがsos2.cgiと同じフォルダにあるか確認してください。(ちゃんとtown.plという名前になっているかどうかも入念に)
スレッド一覧


313● Re[10]:一期一会[ masaki ] 2003 01/28 20:39
すみません。
こんな致命的なミスを・・・。
ご迷惑をおかけしました。。(^^;
これで、テストしまくりですね(笑)
スレッド一覧

CGIROOM