SGsoccer+のバージョンアップ
- 2011/11/09 12:36
- カテゴリー:Perlなお話
ぬっちゃけ今になってSGsoccerを弄る事になるとは思わなかった(笑)
改めて見るとこのCGIはシンプルに良く出来てるなと改めて思わされる。
Perl初心者がゲーム作りたいと思ったらコレを弄る事からやるといいかも。
といっても原本がダウンロード出来ないですが・・・(悲
じゃあTP Soccerから修正・・・もありません(涙
※SGsoccerが流行った当時のOSはWindows95~Me全盛期、その頃のPCはメモリが少なくフォームのプルダウンが多いSGはメモリを結構食った。
当時のPC自体メモリが少ないのである。(現在はそんなPCあったら窓から捨ててしまえ!w)
その為メモリを消費しきるとブラウザ上で表示がラグるという事があった。
そんなメモリ消費を減らす為にtextにしたのがTPである。
そりゃそうだよね・・・何年経ってるんだとw
当時の私なんてお子茶魔よ!(何
不正対策方法。
sgsoccer.cgiのrecordに追加
#
- --#
# チーム新規登録 #
#
- --#
sub record {@posi = ($form{'posi1'},$form{'posi2'},$form{'posi3'},$form{'posi4'},$form{'posi5'},$form{'posi6'},$form{'posi7'},$form{'posi8'},$form{'posi9'},$form{'posi10'},$form{'posi11'});
@p_name = ($form{'player1'},$form{'player2'},$form{'player3'},$form{'player4'},$form{'player5'},$form{'player6'},$form{'player7'},$form{'player8'},$form{'player9'},$form{'player10'},$form{'player11'});
@para1 = ($form{'pass1'},$form{'pass2'},$form{'pass3'},$form{'pass4'},$form{'pass5'},$form{'pass6'},$form{'pass7'},$form{'pass8'},$form{'pass9'},$form{'pass10'},$form{'pass11'});
@para2 = ($form{'dori1'},$form{'dori2'},$form{'dori3'},$form{'dori4'},$form{'dori5'},$form{'dori6'},$form{'dori7'},$form{'dori8'},$form{'dori9'},$form{'dori10'},$form{'dori11'});
@para3 = ($form{'shoo1'},$form{'shoo2'},$form{'shoo3'},$form{'shoo4'},$form{'shoo5'},$form{'shoo6'},$form{'shoo7'},$form{'shoo8'},$form{'shoo9'},$form{'shoo10'},$form{'shoo11'});
@para4 = ($form{'defe1'},$form{'defe2'},$form{'defe3'},$form{'defe4'},$form{'defe5'},$form{'defe6'},$form{'defe7'},$form{'defe8'},$form{'defe9'},$form{'defe10'},$form{'defe11'});
@style = ($form{'style1'},$form{'style2'},$form{'style3'},$form{'style4'},$form{'style5'},$form{'style6'},$form{'style7'},$form{'style8'},$form{'style9'},$form{'style10'},$form{'style11'});
@fair = ($form{'fair1'},$form{'fair2'},$form{'fair3'},$form{'fair4'},$form{'fair5'},$form{'fair6'},$form{'fair7'},$form{'fair8'},$form{'fair9'},$form{'fair10'},$form{'fair11'});&chara_para;#追加
sgsoccer.cgiのchara_paraに以下の部分に先頭から追加修正
#
- #
# キャラごとのパラメータ #
#
- #
sub chara_para {
if( $mode eq 'record'){
&diropen;
foreach(@teams){
&split("teamdata","$_");
if ( $form{'id'} eq "$id" ){ &error("このIDはすでに使用されています。"); }
if ( $form{'owner'} eq "$owner" ){ &error("この監督名はすでに使用されています。"); }
if ( $form{'teamname'} eq "$teamname" ){ &error("このチーム名はすでに使用されています。"); }
if ( $injustice == 1 and "$host" eq "$ip" ){ &error("二重登録は禁止です。"); }
# ID・パスワードチェック
if ($form{'id'} =~ m/[^0-9a-zA-Z]/){ &error("IDに半角英数字以外の文字が含まれています。"); }
if ($form{'password'} =~ m/[^0-9a-zA-Z]/){ &error("パスワードに半角英数字以外の文字が含まれています。"); }
if($form{'id'} eq "" or length($form{'id'}) < 4 or length($form{'id'}) > 8){
&error("IDは、4文字以上、8文字以下で入力して下さい。");
}elsif($form{'password'} eq "" or length($form{'password'}) < 4 or length($form{'password'}) > 8){
&error("パスワードは、4文字以上、8文字以下で入力して下さい。");
}
}
}
if(!$form{'tac'}){&error("戦術を決めてね。");}
if($form{'tac'} ne "ゾーンプレス" && $form{'tac'} ne "カウンター" && $form{'tac'} ne "ポストプレイ"){&error("戦術を決めてね。");}
if($form{'tac2'} ne "攻撃重視" && $form{'tac2'} ne "守備重視" && $form{'tac2'} ne "バランス重視"){&error("チーム意識を決めてね。");}
# 各キャラのチェック
$c_df=$c_mf=$c_fw=0;
if ( $form{'sys'} eq "4-4-2" ){ $s_df=4; $s_mf=4; $s_fw=2; }
elsif ( $form{'sys'} eq "3-4-3" ){ $s_df=3; $s_mf=4; $s_fw=3; }
elsif ( $form{'sys'} eq "3-5-2" ){ $s_df=3; $s_mf=5; $s_fw=2; }
elsif ( $form{'sys'} eq "4-5-1" ){ $s_df=4; $s_mf=5; $s_fw=1; }
elsif ( $form{'sys'} eq "5-3-2" ){ $s_df=5; $s_mf=3; $s_fw=2; }
elsif ( $form{'sys'} eq "4-3-3" ){ $s_df=4; $s_mf=3; $s_fw=3; }
elsif ( $form{'sys'} eq "3-6-1" ){ $s_df=3; $s_mf=6; $s_fw=1; }
else{
&error("システムを決めてね。");
}そんなこんなで原本が無いからSG+とどこが違うか分からなった(汗
なのでこんな感じに原本も修正をすると良いかも(ぇと思ったらへなさんから返信キタキター!(嬉)
要約すると仕事がメチャ忙しいのでサイトの対応も荒らし対策も今は難しいとの事。
加えて今はCGIゲームの開発から離れてしまい暇が作れるようになったらSG3の開発に集中したいとの事。
SG Soccer1を配布したいという人がありましたら歓迎してくれると言う事。へなさんは忙しいから荒らしはテキトーにあしらえ!(笑)
本家で遊んでる君達、分かりましたね?w
忙しいとサイトどころじゃないんですよね。
それに作りたい事がある時はこういった用件は邪魔になりますし。
そんなときは私もサイトを放置してます。おもいっきり(コラーwへなさんが忙しくて対応できないみたいなので、手を煩わすくらいなら組んじゃいます。
このSGsoccerのおかげでPerlの初級をクリアしたと言っても過言ではないので、ご恩返しのつもりでSGsoccerの荒らしを防ぐ為に今一度。
この荒らしはパラメータの不正アップと当て馬ですから塞いじゃえば大人しくするしかありません。今となってはこうしたサイトを運営する人も需要も少ないですが
まだ設置されてる方もいらっしゃるり、穴の開いたまま放置すると他所でも悪用して設置サイトを潰し兼ねないので。改めて弄ると今までのSG+は考え方が悪かったと改めて思う。(荒らしじゃないぞ!SGのソースw)
今だから分かること(笑)SG+は1人1登録制を加えてるけど、別にそんなのどうでも良いんだよ当時の自分!(自爆)
要は同一ホストによる連続試合や当て馬(自分で弱いチームを作って勝たせる行為)をやり難くするのと、異常パラメータを弾けば複数チームあっても何の問題もないわけで。
今見ても分かる、当時の自分のバカっぷりが(自爆)色々失敗があるから今があるんだいっ!
なんか古いバイクとか機械をレストアする気分だナツカシイ(笑)
ってチョコチョコ修正して・・・完成。動くかな・・・?
動いた動いた♪SGsoccer久しぶり~♪
ということで当て馬とパラ改変対策のデモンストレーション一度組み始めるとイロイロやりたくなる(w
そんなこんなで2部制に作り直してみた(ぇ▼A-LEAGUE(7日間50試合)
https://gzmap.squares.net/cgi-bin/game2/sg/sgsoccer_a/sgsoccer.cgi▼延長Vゴール方式(30日間100試合)
https://gzmap.squares.net/cgi-bin/game2/sg/sgsoccer_b/sgsoccer.cgiノーマルと違うのはちょっとだけゲームバランスを修正してること。
結構いい加減に組んだからバグがあるかもしれないこと(マテオイ
一応、2部制はシーズン終了後下位3チームと上位3チームの入れ替え。
調整としては、シスステムによっても攻撃力、防御力に反映させてること。
(FWとかOMFが多ければ攻撃力に繋がるりDFとかDMFが多ければディフェンス力に繋がるという当たり前の事を入れてみた)
ゾーンでボール取っても繋がりにくいとか、
カウンター発動率が低すぎるとか、
やたらGKからのパスがカットされるとか。その辺りを細かく調整。
DFの評価が低いので評価を調整。
それとデモンストレーションチームが自動で試合をしているということ(何
当然普通に参加して遊べるよ?簡単なゲームバランスの調整の仕方
game.plにあるteam_powは自転車で言うギアの役割をしている。
最大値と最小値の幅を修正すると簡単にゲームバランスが崩れる(ぇ
ちなみにデモ用は5ギアにしてギア比を若干小さくしてちょっとバランスを整えている。game.pl
if ( $h_tac2 eq "バランス重視" ){
$h_team_pow = 100;
}elsif ( $h_tac2 eq "攻撃重視" ){
$h_team_pow = 120;
}elsif ( $h_tac2 eq "守備重視" ){
$h_team_pow = 80;
}
SGsoccer?くだらねー。まぁまぁ、今のご時勢モ○ゲーばかりですが
たまにはこういった手作りのシンプルゲームもほのぼのしててイイかもよ?DOWNLOAD SGsoccer+Ver1.04(パラ改変防止+当て馬防止+オマケ付)
https://gzmap.squares.net/download/sgsoccer_plus.html※SGsoccerはへなちょこんSGさんの作品です。
※尚SGsoccer+は許可を頂いて不正許可版としての再配布品です。SG館シャコーグレイドの館
https://www.sg-kan.com/
- この記事のURL
- コメント(0)
- トラックバック(0)
- ツイート
- by scofield in Amazonアソシエイト