「銀行&闇銀行 + α」の編集履歴(バックアップ)一覧はこちら
「銀行&闇銀行 + α」(2013/02/09 (土) 15:15:20) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
お金をいくらでも貯めれるように、銀行を作りましょう。
まずconfig.cgiのほうの変数にchokin追加してください。
bank.cgiでも作って、下記を内容に。
#=================================================
# 銀行 Created by 神月
#=================================================
# 場所名
$this_title = '銀行';
# NPC名
$npc_name = '@ウケツケ';
# ログに使うファイル(.cgi抜き)
$this_file = "$logdir/bank";
# 背景画像
$bgimg = "$bgimgdir/depot.gif";
#=================================================
# はなす言葉
#=================================================
@words = (
"冒険中に倒れてしまうと$e2j{money}が減っちゃうから、冒険前には$e2j{money}を預けてね。",
"ここは$this_titleです。",
"$e2j{money}を使いすぎないように気をつけましょう。",
);
#=================================================
# 画面ヘッダー
#=================================================
sub header_html {
print qq|<div class="mes">【$this_title】預金残高:<b>$m{chokin}</b>G $e2j{money}:<b>$m{money}</b>G $e2j{hp}:<b>$m{hp}</b>/<b>$m{mhp}</b> $e2j{mp}:<b>$m{mp}</b>/<b>$m{mmp}</b></div>|;
}
sub shiraberu_npc {
$mes = qq|<span onclick="text_set('@やみぎんこう')">$npc_name「あっ!ダメダメ!そっちにいっちゃ…。」</span>|;
}
#=================================================
# 追加アクション
#=================================================
push @actions, 'ひきだす';
push @actions, 'よきん';
$actions{'ひきだす'} = sub{ &hikidasu };
$actions{'よきん'} = sub{ &azukeru };
$actions{'やみぎんこう'} = sub{ &ura };
#=================================================
# @ひみつのみせ
#=================================================
sub ura {
$mes = "怪しげな店にいきました…";
$m{lib} = 'yamibank';
&auto_reload;
}
#=================================================
# @hikida
#=================================================
sub hikidasu {
my $hikidasi = shift;
if ($hikidasi =~ /^([0-9]+)\x20?G?$/) {
my $hikidasi_money = int($1);
if ($hikidasi_money > $m{chokin}) {
$mes = "預金残高より多く$e2j{money}は引き出せません。";
return;
}
elsif ($hikidasi_money <= 0) {
$mes = "引き出しは最低でも 1 G以上です";
return;
}
elsif ($hikidasi_money > 9999999) {
$mes = "引き出し最大額を超えています。9999999Gより下の額を引き出して下さい。";
return;
}
$m{money} += $hikidasi_money;
$m{chokin} -= $hikidasi_money;
$npc_com = "$hikidasi_money Gを引き出しました。";
return;
}
$mes = qq|$e2j{money}を引き出すんですか?<br />$p|;
$mes .= qq|<span onclick="text_set('@ひきだす>$m{chokin}G')">$m{chokin}G</span> / |;
$act_time = 0;
}
#=================================================
# @azuke
#=================================================
sub azukeru {
my $azuke = shift;
if ($azuke =~ /^([0-9]+)\x20?G?$/) {
my $azuke_money = int($1);
if ($azuke_money > $m{money}) {
$mes = "預金しようとしている程の$e2j{money}はありません。";
return;
}
elsif ($azuke_money <= 0) {
$mes = "預金は最低でも 1 G以上です";
return;
}
$m{money} -= $azuke_money;
$m{chokin} += $azuke_money;
$npc_com = "$azuke_money Gを預金しました。";
return;
}
$mes = qq|預金しますか?<br />$p|;
$mes .= qq|<span onclick="text_set('@よきん>$m{money}G')">$m{money}G</span> / |;
$act_time = 0;
}
1; # 削除不可
次に、闇銀行を作りましょう。
yamibank.cgiを作り、下記を内容に。
#=================================================
# 銀行 Created by バニラ
#=================================================
# 場所名
$this_title = '闇銀行';
# NPC名
$npc_name = '@悪人';
# ログに使うファイル(.cgi抜き)
$this_file = "$logdir/yamibank";
# 背景画像
$bgimg = "$bgimgdir/black_market.gif";
#=================================================
# はなす言葉
#=================================================
@words = (
"…よく来たな。ここは$this_titleだ…。",
"…$e2j{money}が欲しいのか?ステータスをよこせばくれてやる…。",
"…HP,MPいずれかを1くれたら$e2j{money}を2Gあげよう…。",
);
#=================================================
# 画面ヘッダー
#=================================================
sub header_html {
print qq|<div class="mes">【$this_title】預金残高:<b>$m{chokin}</b>G $e2j{money}:<b>$m{money}</b>G $e2j{hp}:<b>$m{hp}</b>/<b>$m{mhp}</b> $e2j{mp}:<b>$m{mp}</b>/<b>$m{mmp}</b></div>|;
}
#=================================================
# 追加アクション
#=================================================
push @actions, 'ひきだす';
push @actions, 'よきん';
push @actions, 'HP';
push @actions, 'MP';
$actions{'ひきだす'} = sub{ &hikidasu };
$actions{'よきん'} = sub{ &azukeru };
$actions{'HP'} = sub{ &uaua };
$actions{'MP'} = sub{ &uaua2 };
#=================================================
# @hikida
#=================================================
sub hikidasu {
my $hikidasi = shift;
if ($hikidasi =~ /^([0-9]+)\x20?G?$/) {
my $hikidasi_money = int($1);
if ($hikidasi_money > $m{chokin}) {
$mes = "…預金残高に引き出したい程の$e2j{money}が無いようだが…。";
return;
}
elsif ($hikidasi_money <= 0) {
$mes = "…引き出すなら 1 G以上にしろ…。";
return;
}
elsif ($hikidasi_money > 9999999) {
$mes = "…引き出し限度額を超えている…。引き出すなら9999999G未満のGを引き出せ…。";
return;
}
$m{money} += $hikidasi_money;
$m{chokin} -= $hikidasi_money;
$npc_com = "…$hikidasi_money Gを引きだしたぞ…。";
return;
}
$mes = qq|$e2j{money}を引き出すのか…<br />$p|;
$mes .= qq|<span onclick="text_set('@ひきだす>$m{chokin}G')">$m{chokin}G</span> / |;
$act_time = 0;
}
#=================================================
# @azuke
#=================================================
sub azukeru {
my $azuke = shift;
if ($azuke =~ /^([0-9]+)\x20?G?$/) {
my $azuke_money = int($1);
if ($azuke_money > $m{money}) {
$mes = "…$mの$e2j{money}はそれ程無いようだが…。";
return;
}
elsif ($azuke_money <= 0) {
$mes = "…預金するなら 1 G以上にしろ…。";
return;
}
$m{money} -= $azuke_money;
$m{chokin} += $azuke_money;
$npc_com = "$azuke_money Gを預金した…。";
return;
}
$mes = qq|預金するのか…?<br />$p|;
$mes .= qq|<span onclick="text_set('@よきん>$m{money}G')">$m{money}G</span> / |;
$act_time = 0;
}
#====================================
# チェンジ
#====================================
sub uaua { &_chang_money(shift, 2, 'money') }
sub uaua2 { &_chang_money2(shift, 2, 'money') }
sub _chang_money {
my($mhp, $up, $k) = @_;
if ($mhp < 1 || $mhp =~ /[^0-9]/) {
$mes = "最大$e2j{hp}をどのくらいささげてくれるんだ…。『@$e2j{hp}>1』←のようにすると$e2j{hp}を1消費して、$e2j{money}を2Gを貰えるぞ…。";
return;
}
elsif (30 > $m{mhp}) {
$mes = "最大$e2j{hp}はもっと必要だ…";
return;
}
my $v = $mhp * $up;
$m{mhp} -= $mhp;
$m{$k} += $v;
$npc_com = "最大$e2j{hp} $mhp のかわりに $e2j{$k} を $v Gやるぞ…。";
}
sub _chang_money2 {
my($mmp, $up, $k) = @_;
if ($mmp < 1 || $mmp =~ /[^0-9]/) {
$mes = "最大$e2j{mp}をどのくらいささげてくれるんだ…。『@$e2j{mp}>1』←のようにすると$e2j{mp}を1消費して、$e2j{money}を2Gを貰えるぞ…。";
return;
}
elsif (30 > $m{mmp}) {
$mes = "最大$e2j{mp}はもっと必要だ…";
return;
}
my $v = $mmp * $up;
$m{mmp} -= $mmp;
$m{$k} += $v;
$npc_com = "最大$e2j{mp} $mmp のかわりに $e2j{$k} を $v Gやるぞ…。";
}
1; # 削除不可
そして、battle.cgiに倒された時にゴールドが減少するように・・・
# NPCがプレイヤーを倒した時。または自爆のすぐしたにでも下記を追加。
$m{money} = int($m{money}*0.9);
$com='<b>倒れたまま逃げた為、ゴールドが減少しました!</b>';
これで完成です。
お疲れ様でした。