#-----------------------------------------------------------# # 罪と罰++ 二律背反 # # Copyright(C) 2001-2002 by Vivid Studio. BLANK BOARD # # Vivid Studio.[ http://www17.big.or.jp/~obochan/vivid/ ] # # BLANK BOARD [ http://pom.to/ ] # #-----------------------------------------------------------# # オークション Version 1.1 # Arranged by あくあ # Aqure's Web Page [http://aqure.zive.net/] #--- [注意事項] --------------------------------------------# # ・このスクリプトは以下の利用規程に従って配布しています。 # # http://www24.big.or.jp/~obo/game/ore_/gild/ # #-----------------------------------------------------------# # 1.1 2004.5.16 受け取り期限、ギルド払い、倉庫受取り # 1.2 2004.5.18 最大出品数設定 # 1.3 2004.5.19 名前からid管理へ修正 # 1.4 2004.5.20 代金受取りバグ修正 # 1.5 2004.7.17 受取待ち出品物の表示 # 1.6 2004.7.18 form の method が指定されていないのを修正 # 1.7 2004.7.25 入札価格上限設定 #----------------------------------------------------------- # 設定 # # オークションデータファイル $aucfile="./logdata/auction.cgi"; $aucback="./logdata/auction.bak"; # 倉庫で受け取る:1 倉庫を使用しない:0 # ※倉庫は当サイトで配布されている倉庫を前提としています # ※が、修正は簡単だと思うので他の倉庫を使われている方は修正してお使いください $flg_soko=1; # 現在時刻 $time=time; # 出品数最大 $max_items = 20; # 入札期限 # $default_range = $time+60*5; # 期限5分 $default_range = $time+3600*24*3; # 期限3日 # 落札した物を期限内に受け取らなければギルド払に # ※無効にするには、行頭に#でコメントアウト # $flg_dai = 60*8; $flg_dai = 3600*24*3; # 3日経過したら、現在持っているアイテムを捨てて受け取る # ※無効にするには、行頭に#でコメントアウト # $flg_uwa = 60*8; $flg_uwa = 3600*24*3; # 入札価格上限倍率 0:上限なし 100:定価の100倍まで $high_wm = 100; # アイテム定価の100倍まで #----------------------------------------------------------- # 装備品リスト @eq = ($dg_a,$dg_a1,$dg_a2,$dg_a3 ,$df_a ,$di_a,$di_a[1],$di_a[2],$di_a[3]); @eq_cnt = ($dg_cnt,$dg_cnt1,$dg_cnt2,$dg_cnt3 ,$df_cnt ,$di_cnt,$di_cnt[1],$di_cnt[2],$di_cnt[3]); #----------------------------------------------------------- # 初期メニュー # sub auc_menu{ $log .= qq|オークション会場にいます。どうしますか?|; $log2 .= qq|
\n|; $log2 .= qq|\n| if($mv_mode eq 'pc'); $log2 .= qq|\n|; $log2 .= qq|\n|; $log2 .= qq|
\n|; $log2.=qq|$td_end
\n|; $tm=500; &dat_write; } #----------------------------------------------------------- # 続行メニュー # sub auc_exe{ &auc_read; # ファイル読込み &usr_check; if($tm==500){ if($cmd==1){ # 出品する &syupin1; $tm=510; }elsif($cmd==2){ # 入札する &nyusatu1; $tm=520; }else{ $log .= qq|オークション会場を後にしました
|; $tm=$cmd=0; &shop_menu; } }elsif($tm==510){ # 出品 &syupin2; $cmd=$tm=0; &auc_menu; }elsif($tm==520){ # 入札 &nyusatu2; $cmd=$tm=0; &auc_menu; }else{ $log .= qq|オークション会場をあとにしました
|; $tm=$cmd=0; &shop_menu; } &dat_write; } #----------------------------------------------------------- # 出品 # sub syupin1{ if($#auc_ary>=$max_items){ $log .= qq|申\し訳ありません。出品は$max_items個までです。
入札中の品物が少なくなってから出品をお願いします
\n|; $tm=$cmd=0; &auc_menu; }else{ $log .= qq|オークションに出品するアイテムを選択してください

|; &eq_view; # 装備品選択 } } # sub syupin2{ $range=$default_range; # $time+3600*24; # 期限1日 $raku = "$id"; # 入札者 $kakaku = 0; # 入札価格 # if($cmd>-1&&$cmd<4 && $eq[$cmd]>0 && $eq_cnt[$cmd]>0){ # 武具 $auc_lst .= qq|<>$id<>11<>$eq[$cmd]<>$eq_cnt[$cmd]<>$time<>$range<>$raku<><>_|; $log .= qq|$dg_data[$eq[$cmd]][1]を出品しました
|; $wr_mes=qq|$date $cmp[$camp]の$nmが$dg_data[$eq[$cmd]][1]を出品しました
|; &hist_write; if($cmd==0){ $dg_cnt=0; $dg_a=0; } if($cmd==1){ $dg_cnt1=0; $dg_a1=0; } if($cmd==2){ $dg_cnt2=0; $dg_a2=0; } if($cmd==3){ $dg_cnt3=0; $dg_a3=0; } }elsif($cmd==4 && $eq[$cmd]>0 && $eq_cnt[$cmd]>0){ # 防具 $auc_lst .= qq|<>$id<>12<>$eq[$cmd]<>$eq_cnt[$cmd]<>$time<>$range<>$raku<><>_|; $log .= qq|$df_data[$eq[$cmd]][1]を出品しました
|; $wr_mes=qq|$date $cmp[$camp]の$nmが$df_data[$eq[$cmd]][1]を出品しました
|; &hist_write; if($cmd==4){ $df_cnt=0; $df_a=0; } }elsif($cmd>4 && $cmd<9&& $eq[$cmd]>0 && $eq_cnt[$cmd]>0){ # 道具 $auc_lst .= qq|<>$id<>13<>$eq[$cmd]<>$eq_cnt[$cmd]<>$time<>$range<>$raku<><>_|; $log .= qq|$di_data[$eq[$cmd]][1]を出品しました
|; $wr_mes=qq|$date $cmp[$camp]の$nmが$di_data[$eq[$cmd]][1]を出品しました
|; &hist_write; if($cmd==5){ $di_cnt--; $di_a = 0 if($di_cnt<1); } if($cmd==6){ $di_cnt[1]--; $di_a[1] = 0 if($di_cnt[1]<1); } if($cmd==7){ $di_cnt[2]--; $di_a[2] = 0 if($di_cnt[2]<1); } if($cmd==8){ $di_cnt[3]--; $di_a[3] = 0 if($di_cnt[3]<1); } } &auc_write; # ファイルに書き込み } #----------------------------------------------------------- # 装備品一覧 # sub eq_view{ $log .= qq|
|; $log .= qq|\n|; $log .= qq|\n|; $log .= qq|やめる
\n|; foreach(0..$#eq){ if($eq[$_]>0 && $eq_cnt[$_]>0){ if($_>=0 && $_<=3){ # 武具 $log .= qq|[武] $dg_data[$eq[$_]][1] ($eq_cnt[$_])
\n|; }elsif($_==4){ # 防具 $log .= qq|[防] $df_data[$eq[$_]][1] ($eq_cnt[$_])
\n|; }elsif($_>=5 && $_<=8){ # 道具 $log .= qq|[道] $di_data[$eq[$_]][1] ($eq_cnt[$_])
\n|; } } } $log .= qq|
\n|; # $log2.=qq|$td_end
\n|; } #----------------------------------------------------------- # ファイル読み書き # sub auc_write{ open(OUT,">$aucfile") || &error("Can't open $aucfile."); chomp($auc_lst); print OUT $auc_lst; close(OUT); } sub auc_read{ if(-e $aucfile){ open(IN,"$aucfile") || &error("Can't open $aucfile."); $auc_lst=; close(IN); } # 配列に格納 @auc_ary=split(/_/, $auc_lst); } #----------------------------------------------------------- # 落札チェック # sub rakusatu{ my $itype = @_[0]; my $item_no = @_[1]; my $item_cnt = @_[2]; my $raku = @_[3]; my $kakaku = @_[4]; my $flg = @_[5]; my $anm = @_[6]; my $range = @_[7]; my $aid = @_[8]; $ret = 0; if($flg==0 && $range