No.254 Re: こんばんは。 - GEN
 

この部分は、単なる表示というか、データの入力部分にすぎず、
実際の処理部分は別にあります。
どこを見るといいますと、
<INPUT TYPE=HIDDEN NAME=key VALUE="gd-s">
<INPUT TYPE=HIDDEN NAME=mode VALUE="fund">

この2行から、「gd-s.cgi」の「fund」という処理に飛んでいることがわかります(商人物語の記述に限ったことですが)。

実際の記述は以下のようになっていました。
sub fund
{
$count=CheckCount($Q{cnt1},$Q{cnt2},0,$DT->{money});

OutError('寄付金額を指定してください') if !$count;
OutError('最低でも'.GetMoneyString(100000).'は自店に残しましょう') if ($DT->{money} - $count) < 100000;

$ret="ギルド「".$GUILD{$DT->{guild}}->[$GUILDIDX_name]."」に".GetMoneyString($count)."寄付";
EditGuildMoney($DT->{guild} ,$count);
$DT->{money}-=$count;
$DT->{paytoday}+=$count;
PushLog(0,0,$DT->{shopname}."がギルド「".$GUILD{$DT->{guild}}->[$GUILDIDX_name]."」に".GetMoneyString($count)."寄付しました。");
}

ギルド員に援助ということで、新たに以下のような処理を追加する必要があると思います。
@ギルド員のみを選択できるリストを表示する
Aギルド員のIDから変数を取り出す

具体的には、以下のように改造するとできます。たぶん。
■「inc-guild-cmd.cgi」GuildFundFの下に追加
sub GuildFundF2
{
$disp.=<<STR;
<form action="action.cgi" $METHOD>
<INPUT TYPE=HIDDEN NAME=key VALUE="gd-s">
$USERPASSFORM
<INPUT TYPE=HIDDEN NAME=mode VALUE="fund2">
<BIG>●資金援助</BIG>:ギルド員
<SELECT NAME=tg>
STR

foreach(@DT){
next if ($_->{guild} ne $DT->{guild});
$disp.="<OPTION VALUE=\"".$_->{id}."\">$_->{shopname}";
}

$disp.=<<STR;
</SELECT>
に対し、 $term[0]
<INPUT TYPE=TEXT SIZE=7 NAME=cnt>$term[1]
<INPUT TYPE=SUBMIT VALUE="寄付する">
</FORM>
STR
}

■「inc-guild-cmd.cgi」の最初に「GuildFundF2」の呼び出し追加

GuildFundF();
$disp.='<hr width=500 noshade size=1>';

GuildFundF2();
$disp.='<hr width=500 noshade size=1>';

Break();
my $checkok;

■「gd-s.cgi」のfundの下にfund2として以下を追加

sub fund2
{
$i=$id2idx{$Q{tg}};
$DTS=$DT[$i];

$ret=$DTS->{shopname}."に".GetMoneyString($Q{cnt})."の資金援助を行ないました";

EditGuildMoney($DT->{guild} ,-$Q{cnt});

$DTS->{money}+=$count;

PushLog(0,0,"ギルド「".$GUILD{$DT->{guild}}->[$GUILDIDX_name]."」が".$DTS->

{shopname}."に".GetMoneyString($Q{cnt})."の資金援助を行ないました。");
}

以上でできるはずです。
ただし、ギルド資金より多い援助額を入力された場合のエラーなどは入れていません。

2008/09/28(Sun) 22:43

こんばんは。 - キャンディー 2008/09/28(Sun) 19:43 No.253
     ├ Re: こんばんは。 - GEN 2008/09/28(Sun) 22:43 No.254
     └ ありがとうございますm(_ _)m - キャンディー 2008/10/01(Wed) 21:50 No.259

Eメール
お名前
題 名  ※投稿キーは必須です!
本文
URL
アイコン   [イメージ参照]
暗証キー (英数字で8文字以内)
投稿キー (投稿時 投稿キー を入力してください)
文字色