▼スレッド
│
└◇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
迅速な対応、ありがとうございます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
> @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'}");
に変更すれば大丈夫です。
何故問題があるのかは理解しておいたほうが良いと思います。
あわわ。本当だ。スレッド一覧
SoSではプレイヤーとその相手が鏡合わせのような世界だということを聞いたことがありますが、そのレコードのラインを指定するのを間違えてしまった。ということしか分かりません。
ラインの処理を理解できていないのだと思いますが……
> あわわ。本当だ。スレッド一覧
> 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)で上書きした相手のマイレコードが自分のマイレコードとして保存されるわけです。