私設SoS2オーナー応援BBS

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

スレッド

└◇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


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)で上書きした相手のマイレコードが自分のマイレコードとして保存されるわけです。
スレッド一覧

CGIROOM