私設SoS2オーナー応援BBS

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

スレッド

└◇979:
MyRecordの不具合 [ミル] 03/14 12:44

 ├◇980:Re:MyRecordの不具合 [ミル] 03/14 12:58
 │└◇982:Re[2]:MyRecordの不具合 [moon] 03/14 13:08
 │ └◇983:Re[3]:MyRecordの不具合 [ミル] 03/14 14:44
 │  └◇984:Re[4]:MyRecordの不具合 [moon] 03/14 18:45
 │   └◇985:Re[5]:MyRecordの不具合 [ミル] 03/15 00:27
 │    └◇986:Re[6]:MyRecordの不具合 [moon] 03/15 09:01<-last
 └◇981:Re:MyRecordの不具合 [moon] 03/14 13:04


979● MyRecordの不具合[ ミル ] 2004 03/14 12:44
申し訳ありません。武具強化システムについて、忙しくまともにレスも付けられないのですが、やっとここを見ることができてソースを見てもらおうとしたら、ボコボコ不具合が出ていることが判明して、全く手が付けられません。本当に泣きそうです。

まずマイレコードの部分が、手紙を送信したときにアトランダムで別の人のマイレコにも渡ってしまうということがありました。それらしきとこを弄ったら沈静化したのでこれは良いのですが、

新規で作成したキャラクターのマイレコに、昔の手紙のログが三つ入っていたんです。ぬわんじゃこりゃ〜!!ということで、本当に手が付けられない状態で……。
早速ログを削除はしましたが、全くどこが悪いのか分からず完全にバグ放置ということになっています。

どうか知恵をお貸し下さい!
スレッド一覧


980● Re:MyRecordの不具合[ ミル ] 2004 03/14 12:58
一応、状況報告を。
新規で作成した場合ではなく、手紙を送った場合に自分のマイレコが相手のマイレコの3件ほどに上書きされる。
そのまま同じ相手に手紙を送ると、ほとんどの確率で自分の送った内容が返ってくる。返ってこないこともある。意味不明
そして、それまた別の人に手紙を送ってみると、それまでのマイレコが全て消失。相手の人のマイレコの1~3件になる。

……勘弁してくださいTT
スレッド一覧


982● Re[2]:MyRecordの不具合[ moon ] 2004 03/14 13:08
> 新規で作成した場合ではなく、手紙を送った場合に自分のマイレコが相手のマイレコの3件ほどに上書きされる。
> そのまま同じ相手に手紙を送ると、ほとんどの確率で自分の送った内容が返ってくる。返ってこないこともある。意味不明
> そして、それまた別の人に手紙を送ってみると、それまでのマイレコが全て消失。相手の人のマイレコの1~3件になる。

そういうことでしたら、No.381は無視してsub note_beforeとsub note_afterを書き込んでください。
手紙だけでなくメッセージでもなるならsub words_beforeとsub words_afterもあったほうが良いです。
スレッド一覧


983● Re[3]:MyRecordの不具合[ ミル ] 2004 03/14 14:44
迅速な対応、ありがとうございますTT
sub note_before {
    if ($Fm{'pd2'}) { $Fm{'pd'} = $Fm{'pd2'} }
    if ($Fm{'pd2'} eq $Fm{'id'}) { push (@msg,"自分に手紙を出すことはできません"); return }
    @rcdlines = &get_user("$Fm{'id'}");
    @rcdlines = &get_partner("$Fm{'pd'}");
    &get_partner("$Fm{'pd'}");
    $fg='NB'; &userout;
    push (@msg,"[$Fm{'pd'}] $pnm相手に手紙を書くことができます");
print qq|<td bgcolor="#E6E6FA" colspan=2>手紙の内容:|;    &form('start');
print qq|<textarea rows=5 cols=60 wrap=soft name=words></textarea>|;
    &OKbuttoninform('on','note_after');
    print qq|</td></tr>|; &form('end');
}



sub note_after {
    if ($Fm{'pd2'}) { $Fm{'pd'} = $Fm{'pd2'} }
    if ($Fm{'pd'} eq $Fm{'id'}) { push (@msg,"自分に手紙を出すことはできません"); return }
    @rcdlines = &get_user("$Fm{'id'}");
    @prclines = &get_partner("$Fm{'pd'}");
    ($pcc,$pfc,$psc,$ptc) = split(/△/,$pmc);
    $pcc++;
    $pmc = "$pcc△$pfc△$psc△$ptc";
    return if $fg ne 'NB';
    return if $Fm{'words'} eq '';
    &add_record("[$id] $nmからの手紙:「$Fm{'words'}」");
    push (@msg,"$pnmに手紙を残しました");
    $fg = ''; &userout;
}

こういった感じです……。もしかしてadd_recordやPartnerGetに問題でもあるのかと思うのですが、普通にメッセージを残す場合は問題ありませんでしたし、いくら見てもやっぱり分かりませんでしたTT
スレッド一覧


984● Re[4]:MyRecordの不具合[ moon ] 2004 03/14 18:45
>     @rcdlines = &get_user("$Fm{'id'}");
>     @rcdlines = &get_partner("$Fm{'pd'}");
>     &get_partner("$Fm{'pd'}");

sub note_beforeの上記が原因です。
上記を、
  @rcdlines = &get_user("$Fm{'id'}");
  @prclines = &get_partner("$Fm{'pd'}");
に変更すれば大丈夫です。

何故問題があるのかは理解しておいたほうが良いと思います。
スレッド一覧


985● Re[5]:MyRecordの不具合[ ミル ] 2004 03/15 00:27
あわわ。本当だ。
SoSではプレイヤーとその相手が鏡合わせのような世界だということを聞いたことがありますが、そのレコードのラインを指定するのを間違えてしまった。ということしか分かりません。

ラインの処理を理解できていないのだと思いますが……
スレッド一覧


986● Re[6]:MyRecordの不具合[ moon ] 2004 03/15 09:01
> あわわ。本当だ。
> SoSではプレイヤーとその相手が鏡合わせのような世界だということを聞いたことがありますが、そのレコードのラインを指定するのを間違えてしまった。ということしか分かりません。
>
> ラインの処理を理解できていないのだと思いますが……

では、一応説明しておきますね。
(1) @rcdlines = &get_user("$Fm{'id'}");
(2) @rcdlines = &get_partner("$Fm{'pd'}");
(3) &get_partner("$Fm{'pd'}");
(4) &userout;

(1)で@rcdlinesに自分のマイレコードを読み込んで、(2)では相手のマイレコードで@rcdlinesを上書きしています。
そして、&userout;では@rcdlinesを保存するので結果的に(2)で上書きした相手のマイレコードが自分のマイレコードとして保存されるわけです。
スレッド一覧


981● Re:MyRecordの不具合[ moon ] 2004 03/14 13:04
> 新規で作成したキャラクターのマイレコに、昔の手紙のログが三つ入っていたんです。ぬわんじゃこりゃ〜!!ということで、本当に手が付けられない状態で……。
> 早速ログを削除はしましたが、全くどこが悪いのか分からず完全にバグ放置ということになっています。

そういう状態になるということは、マイレコードを別ファイルで保存しているのでしょうか?
別ファイルで保存しているのならそのマイレコードファイルを削除し忘れて(もしくは削除に失敗して)いるのではないかと思います。

# もし、ユーザデータとマイレコードが同じファイルなのであればよほど変なことをしないとそういう状態にはならないと思います。
スレッド一覧

CGIROOM