国庫の追加
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[改造履歴]]
特徴:出入ログ、送付禁止アイテムは入庫禁止
#=================================================
# 国庫
#=================================================
my $kokko_log;#ログ入れ変数追加
# 最大保存数
my $max_depot = 30;
#=================================================
# 利用条件
#=================================================
sub is_satisfy {
if ($m{country} eq '0') {
$mes .= '国に属してないと行うことができません<br>';
&refresh;
&n_menu;
return 0;
}
return 1;
}
#================================================
sub begin {
if ($m{tp} > 1) {
$mes .= "他に何かしますか?<br>";
$m{tp} = 1;
}
else {
$mes .= "ここは<font color=\"$cs{color}[$m{country}] \...
$mes .= "$max_depot個まで預けることができます<br>";
$mes .= "どうしますか?<br>";
}
&menu('やめる', '引出す', '預ける', '整理する', '出入履...
}
sub tp_1 {
return if &is_ng_cmd(1..4); #出入履歴削除した場合は1..3
$m{tp} = $cmd * 100;
&{ 'tp_'. $m{tp} };
}
#=================================================
# 引出す
#=================================================
sub tp_100 {
$layout = 2;
my($count, $sub_mes) = &radio_my_depot;
$mes .= "どれを引出しますか? [ $count / $max_depot ]<br...
$mes .= $sub_mes;
$mes .= qq|<input type="hidden" name="id" value="$id"><...
$mes .= qq|<p><input type="submit" value="引出す" clas...
$m{tp} += 10;
}
sub tp_110 {
if ($cmd) {
my $count = 0;
my $new_line = '';
my $add_line = '';
open my $fh, "+< $this_file" or &error("$this_fileが開...
eval { flock $fh, 2; };
while (my $line = <$fh>) {
++$count;
if (!$new_line && $cmd eq $count) {
$new_line = $line;
my($kind, $item_no, $item_c, $item_lv) = split /<>/,...
##★1 入庫禁止アイテム処理はここに
if ($kind eq '1' && $m{wea}) {
$add_line = "$kind<>$m{wea}<>$m {wea_c}<>$m{wea_lv}...
$mes .= "$weas[$m{wea}][1]を預け";
$kokko_log .= qq|<font color="FFCC00">$weas[$m{wea...
}
elsif ($kind eq '2' && $m{egg}) {
$add_line = "$kind<>$m{egg}<>$m {egg_c}<>0<>\n";
$mes .= "$eggs[$m{egg}][1]を預け";
$kokko_log .= qq|<font color="FFCC00">$eggs[$m{egg}...
}
elsif($kind eq '3' && $m{pet}) {
$add_line = "$kind<>$m{pet}<>0<>0<>\n";
$mes .= "$pets[$m{pet}][1]を預け";
$kokko_log .= qq|<font color="FFCC00">$pets[$m{pet...
}
}
else {
push @lines, $line;
}
}
if ($new_line) {
push @lines, $add_line if $add_line;
seek $fh, 0, 0;
truncate $fh, 0;
print $fh @lines;
close $fh;
my($kind, $item_no, $item_c, $item_lv) = split /<>/, ...
if ($kind eq '1') {
$m{wea} = $item_no;
$m{wea_c} = $item_c;
$m{wea_lv} = $item_lv;
$mes .= "$weas[$m{wea}][1]を引出しました<br>";
$kokko_log .= qq|<font color="FFCC00">$weas[$m{wea}]...
}
elsif ($kind eq '2') {
$m{egg} = $item_no;
$m{egg_c} = $item_c;
$mes .= "$eggs[$m{egg}][1]を引出しました<br>";
$kokko_log .= qq|<font color="FFCC00">$eggs[$m{egg}]...
}
elsif ($kind eq '3') {
$m{pet} = $item_no;
$mes .= "$pets[$m{pet}][1]を引出しました<br>";
$kokko_log .= qq|<font color="FFCC00">$pets[$m{pet}]...
}
# 国庫ログ書込(ファイル名, メッセージ)[引出し]
&write_kokko("$kokko_log");
# 引出すタイミングで新しいアイテムがあればコレクションに追加
require './lib/add_collection.cgi';
&add_collection;
}
else {
close $fh;
}
}
&begin;
}
#=================================================
# 預ける
#=================================================
sub tp_200 {
$mes .= 'どれを預けますか?';
my @menus = ('やめる');
push @menus, $m{wea} ? $weas[$m{wea}][1] : '';
push @menus, $m{egg} ? $eggs[$m{egg}][1] : '';
push @menus, $m{pet} ? $pets[$m{pet}][1] : '';
&menu(@menus);
$m{tp} += 10;
}
sub tp_210 {
return if &is_ng_cmd(1..3);
my $line;
if ($cmd eq '1' && $m{wea}) {
$line = "$cmd<>$m{wea}<>$m{wea_c}<>$m{wea_lv}<>\n";
}
elsif ($cmd eq '2' && $m{egg}) {
$line = "$cmd<>$m{egg}<>$m{egg_c}<>0<>\n";
}
elsif ($cmd eq '3' && $m{pet}) {
$line = "$cmd<>$m{pet}<>0<>0<>\n";
}
else {
&begin;
return;
}
my @lines = ();
open my $fh, "+< $this_file" or &error("$this_fileが開...
eval { flock $fh, 2; };
push @lines, $_ while <$fh>;
##★2入庫禁止処理はここに
if (@lines >= $max_depot) {
close $fh;
$mes .= 'これ以上預けることができません<br>';
#$m{is_full} = 1;
}
else {
push @lines, $line;
seek $fh, 0, 0;
truncate $fh, 0;
print $fh @lines;
close $fh;
if ($cmd eq '1') {
$mes .= "$weas[$m{wea}][1]を預けました<br>";
$kokko_log .= qq|<font color="FFCC00">$weas[$m{wea}][...
$m{wea} = $m{wea_c} = $m{wea_lv} = 0;
}
elsif ($cmd eq '2') {
$mes .= "$eggs[$m{egg}][1]を預けました<br>";
$kokko_log .= qq|<font color="FFCC00">$eggs[$m{egg}][...
$m{egg} = $m{egg_c} = 0;
}
elsif ($cmd eq '3') {
$mes .= "$pets[$m{pet}][1]を預けました<br>";
$kokko_log .= qq|<font color="FFCC00">$pets[$m{pet}][...
$m{pet} = 0;
}
#$m{is_fulle} = 1 if @lines >= $max_depot;
# 国庫ログ書込(ファイル名, メッセージ)[預け]
&write_kokko("$kokko_log");
}
&begin;
}
#=================================================
# 整理
#=================================================
sub tp_300 {
my @lines = ();
open my $fh, "+< $this_file" or &error("$this_fileが開...
eval { flock $fh, 2; };
push @lines, $_ while <$fh>;
@lines = map { $_->[0] }
sort { $a->[1] <=> $b->[1] || $a->[2] <=> $b->[2] }
map { [$_, split /<>/ ] } @lines;
seek $fh, 0, 0;
truncate $fh, 0;
print $fh @lines;
close $fh;
$mes .= "預けているものを整理しました<br>";
&begin;
}
#=================================================
# <input type="radio"> 付の預かり所の物
#=================================================
sub radio_my_depot {
my $count = 0;
my $sub_mes = qq|<a href="#under">▼下</a>|;#▼下は独自改造
$sub_mes .= qq|<form method="$method" action="$script">...
open my $fh, "< $this_file" or &error("$this_file が読...
while (my $line = <$fh>) {
++$count;
my($kind, $item_no, $item_c, $item_lv) = split /<>/, $...
$sub_mes .= qq|<input type="radio" name="cmd" value="$...
$sub_mes .= $kind eq '1' ? qq|[$weas[$item_no][2]]$wea...
: $kind eq '2' ? qq|[卵]$eggs[$item_no] [1]($item_...
: qq|[ぺ] $pets[$item_no][1]<br>|
;
}
close $fh;
$sub_mes .= qq|<a name="under"></a>|;#▼のための独自改造
#$m{is_full} = $count >= $max_depot ? 1 : 0;
return $count, $sub_mes;
}
下記からは不要な場合省略可能
#=================================================
# 出し入れ履歴表示
#=================================================
sub tp_400 {
open my $fh, "< $this_log_file" or &error("$this_log_fi...
$mes .= qq|$_<hr size="1">\n| while <$fh>;
close $fh;
&refresh;
$m{lib} = 'kokko';
&n_menu;
}
取引禁止アイテムを入庫禁止にする場合は下記を引出すの★1に追記
#入国庫禁止アイテム処理
my @kinds = ('', 'wea', 'egg', 'pet');
my @one_kind_of_taboos = @{ $taboo_items{ $kinds[$...
for my $taboo_item (@one_kind_of_taboos) {
if ($taboo_item eq $m{ $kinds [$kind] }) {
my $t_item_name = $kind eq '1' ? $weas[$m{wea}][1]
: $kind eq '2' ? $eggs[$m{egg}][1]
: $pets[$m{pet}][1]
;
$mes .= "$t_item_nameは国庫に預けることができないの...
&begin;
return;
}
}#入国庫禁止アイテム処理end
取引禁止アイテムを入庫禁止にする場合は下記を預けるの★2に追記
#入国庫禁止アイテム処理
my @kinds = ('', 'wea', 'egg', 'pet');
for my $taboo_item (@{ $taboo_items{ $kinds[$cmd] } }) {
if ($taboo_item eq $m{ $kinds[$cmd] }) {
my $t_item_name = $cmd eq '1' ? $weas[$m{wea}][1]
: $cmd eq '2' ? $eggs[$m{egg}][1]
: $pets[$m{pet}][1]
;
$mes .= "$t_item_nameは国庫に預けることはできません <...
&begin;
return;
}
}#入国庫禁止アイテム処理end
終了行:
[[改造履歴]]
特徴:出入ログ、送付禁止アイテムは入庫禁止
#=================================================
# 国庫
#=================================================
my $kokko_log;#ログ入れ変数追加
# 最大保存数
my $max_depot = 30;
#=================================================
# 利用条件
#=================================================
sub is_satisfy {
if ($m{country} eq '0') {
$mes .= '国に属してないと行うことができません<br>';
&refresh;
&n_menu;
return 0;
}
return 1;
}
#================================================
sub begin {
if ($m{tp} > 1) {
$mes .= "他に何かしますか?<br>";
$m{tp} = 1;
}
else {
$mes .= "ここは<font color=\"$cs{color}[$m{country}] \...
$mes .= "$max_depot個まで預けることができます<br>";
$mes .= "どうしますか?<br>";
}
&menu('やめる', '引出す', '預ける', '整理する', '出入履...
}
sub tp_1 {
return if &is_ng_cmd(1..4); #出入履歴削除した場合は1..3
$m{tp} = $cmd * 100;
&{ 'tp_'. $m{tp} };
}
#=================================================
# 引出す
#=================================================
sub tp_100 {
$layout = 2;
my($count, $sub_mes) = &radio_my_depot;
$mes .= "どれを引出しますか? [ $count / $max_depot ]<br...
$mes .= $sub_mes;
$mes .= qq|<input type="hidden" name="id" value="$id"><...
$mes .= qq|<p><input type="submit" value="引出す" clas...
$m{tp} += 10;
}
sub tp_110 {
if ($cmd) {
my $count = 0;
my $new_line = '';
my $add_line = '';
open my $fh, "+< $this_file" or &error("$this_fileが開...
eval { flock $fh, 2; };
while (my $line = <$fh>) {
++$count;
if (!$new_line && $cmd eq $count) {
$new_line = $line;
my($kind, $item_no, $item_c, $item_lv) = split /<>/,...
##★1 入庫禁止アイテム処理はここに
if ($kind eq '1' && $m{wea}) {
$add_line = "$kind<>$m{wea}<>$m {wea_c}<>$m{wea_lv}...
$mes .= "$weas[$m{wea}][1]を預け";
$kokko_log .= qq|<font color="FFCC00">$weas[$m{wea...
}
elsif ($kind eq '2' && $m{egg}) {
$add_line = "$kind<>$m{egg}<>$m {egg_c}<>0<>\n";
$mes .= "$eggs[$m{egg}][1]を預け";
$kokko_log .= qq|<font color="FFCC00">$eggs[$m{egg}...
}
elsif($kind eq '3' && $m{pet}) {
$add_line = "$kind<>$m{pet}<>0<>0<>\n";
$mes .= "$pets[$m{pet}][1]を預け";
$kokko_log .= qq|<font color="FFCC00">$pets[$m{pet...
}
}
else {
push @lines, $line;
}
}
if ($new_line) {
push @lines, $add_line if $add_line;
seek $fh, 0, 0;
truncate $fh, 0;
print $fh @lines;
close $fh;
my($kind, $item_no, $item_c, $item_lv) = split /<>/, ...
if ($kind eq '1') {
$m{wea} = $item_no;
$m{wea_c} = $item_c;
$m{wea_lv} = $item_lv;
$mes .= "$weas[$m{wea}][1]を引出しました<br>";
$kokko_log .= qq|<font color="FFCC00">$weas[$m{wea}]...
}
elsif ($kind eq '2') {
$m{egg} = $item_no;
$m{egg_c} = $item_c;
$mes .= "$eggs[$m{egg}][1]を引出しました<br>";
$kokko_log .= qq|<font color="FFCC00">$eggs[$m{egg}]...
}
elsif ($kind eq '3') {
$m{pet} = $item_no;
$mes .= "$pets[$m{pet}][1]を引出しました<br>";
$kokko_log .= qq|<font color="FFCC00">$pets[$m{pet}]...
}
# 国庫ログ書込(ファイル名, メッセージ)[引出し]
&write_kokko("$kokko_log");
# 引出すタイミングで新しいアイテムがあればコレクションに追加
require './lib/add_collection.cgi';
&add_collection;
}
else {
close $fh;
}
}
&begin;
}
#=================================================
# 預ける
#=================================================
sub tp_200 {
$mes .= 'どれを預けますか?';
my @menus = ('やめる');
push @menus, $m{wea} ? $weas[$m{wea}][1] : '';
push @menus, $m{egg} ? $eggs[$m{egg}][1] : '';
push @menus, $m{pet} ? $pets[$m{pet}][1] : '';
&menu(@menus);
$m{tp} += 10;
}
sub tp_210 {
return if &is_ng_cmd(1..3);
my $line;
if ($cmd eq '1' && $m{wea}) {
$line = "$cmd<>$m{wea}<>$m{wea_c}<>$m{wea_lv}<>\n";
}
elsif ($cmd eq '2' && $m{egg}) {
$line = "$cmd<>$m{egg}<>$m{egg_c}<>0<>\n";
}
elsif ($cmd eq '3' && $m{pet}) {
$line = "$cmd<>$m{pet}<>0<>0<>\n";
}
else {
&begin;
return;
}
my @lines = ();
open my $fh, "+< $this_file" or &error("$this_fileが開...
eval { flock $fh, 2; };
push @lines, $_ while <$fh>;
##★2入庫禁止処理はここに
if (@lines >= $max_depot) {
close $fh;
$mes .= 'これ以上預けることができません<br>';
#$m{is_full} = 1;
}
else {
push @lines, $line;
seek $fh, 0, 0;
truncate $fh, 0;
print $fh @lines;
close $fh;
if ($cmd eq '1') {
$mes .= "$weas[$m{wea}][1]を預けました<br>";
$kokko_log .= qq|<font color="FFCC00">$weas[$m{wea}][...
$m{wea} = $m{wea_c} = $m{wea_lv} = 0;
}
elsif ($cmd eq '2') {
$mes .= "$eggs[$m{egg}][1]を預けました<br>";
$kokko_log .= qq|<font color="FFCC00">$eggs[$m{egg}][...
$m{egg} = $m{egg_c} = 0;
}
elsif ($cmd eq '3') {
$mes .= "$pets[$m{pet}][1]を預けました<br>";
$kokko_log .= qq|<font color="FFCC00">$pets[$m{pet}][...
$m{pet} = 0;
}
#$m{is_fulle} = 1 if @lines >= $max_depot;
# 国庫ログ書込(ファイル名, メッセージ)[預け]
&write_kokko("$kokko_log");
}
&begin;
}
#=================================================
# 整理
#=================================================
sub tp_300 {
my @lines = ();
open my $fh, "+< $this_file" or &error("$this_fileが開...
eval { flock $fh, 2; };
push @lines, $_ while <$fh>;
@lines = map { $_->[0] }
sort { $a->[1] <=> $b->[1] || $a->[2] <=> $b->[2] }
map { [$_, split /<>/ ] } @lines;
seek $fh, 0, 0;
truncate $fh, 0;
print $fh @lines;
close $fh;
$mes .= "預けているものを整理しました<br>";
&begin;
}
#=================================================
# <input type="radio"> 付の預かり所の物
#=================================================
sub radio_my_depot {
my $count = 0;
my $sub_mes = qq|<a href="#under">▼下</a>|;#▼下は独自改造
$sub_mes .= qq|<form method="$method" action="$script">...
open my $fh, "< $this_file" or &error("$this_file が読...
while (my $line = <$fh>) {
++$count;
my($kind, $item_no, $item_c, $item_lv) = split /<>/, $...
$sub_mes .= qq|<input type="radio" name="cmd" value="$...
$sub_mes .= $kind eq '1' ? qq|[$weas[$item_no][2]]$wea...
: $kind eq '2' ? qq|[卵]$eggs[$item_no] [1]($item_...
: qq|[ぺ] $pets[$item_no][1]<br>|
;
}
close $fh;
$sub_mes .= qq|<a name="under"></a>|;#▼のための独自改造
#$m{is_full} = $count >= $max_depot ? 1 : 0;
return $count, $sub_mes;
}
下記からは不要な場合省略可能
#=================================================
# 出し入れ履歴表示
#=================================================
sub tp_400 {
open my $fh, "< $this_log_file" or &error("$this_log_fi...
$mes .= qq|$_<hr size="1">\n| while <$fh>;
close $fh;
&refresh;
$m{lib} = 'kokko';
&n_menu;
}
取引禁止アイテムを入庫禁止にする場合は下記を引出すの★1に追記
#入国庫禁止アイテム処理
my @kinds = ('', 'wea', 'egg', 'pet');
my @one_kind_of_taboos = @{ $taboo_items{ $kinds[$...
for my $taboo_item (@one_kind_of_taboos) {
if ($taboo_item eq $m{ $kinds [$kind] }) {
my $t_item_name = $kind eq '1' ? $weas[$m{wea}][1]
: $kind eq '2' ? $eggs[$m{egg}][1]
: $pets[$m{pet}][1]
;
$mes .= "$t_item_nameは国庫に預けることができないの...
&begin;
return;
}
}#入国庫禁止アイテム処理end
取引禁止アイテムを入庫禁止にする場合は下記を預けるの★2に追記
#入国庫禁止アイテム処理
my @kinds = ('', 'wea', 'egg', 'pet');
for my $taboo_item (@{ $taboo_items{ $kinds[$cmd] } }) {
if ($taboo_item eq $m{ $kinds[$cmd] }) {
my $t_item_name = $cmd eq '1' ? $weas[$m{wea}][1]
: $cmd eq '2' ? $eggs[$m{egg}][1]
: $pets[$m{pet}][1]
;
$mes .= "$t_item_nameは国庫に預けることはできません <...
&begin;
return;
}
}#入国庫禁止アイテム処理end
ページ名: