2009年02月02日

スペーシア・ギフト

「N・マリン・ドルフィン」や「N・ティンクル・モス」が場に存在する時に「スペーシア・ギフト」を発動した場合にドロー枚数が多くなるのだが、うちのデュエルCGIだと、そこまで考えて作ってないので、単純に場にいるネオスペーシアンの数だけしかドローできない。

VIPwikの「CGI技術情報」に修正方法が載っているが、あまりスマートな方法ではないので、うちではこういうふうに変更した。(「結束 UNITY」の情報はありがたく頂きましたm(_ _)m)

#変更前
for (@res_s) {
my $cno=&getf_res($_)*1;
$arr{$cno}++;
}

#変更後
for (@res_s) {
$arr{&getf_res($_)*1}++;
$arr{&get_cardno($_)*1}++;
}

この方法だと、今後、融合ネオスペーシアンが増えても(増えないと思うが)、この部分に手を入れなくても大丈夫です。
posted by はぐリン at 22:27| Comment(0) | TrackBack(0) | バグ | このブログの読者になる | 更新情報をチェックする

2009年01月11日

神禽王アレクトールの無効化効果

神禽王アレクトール ★★★★★★ 風 ATK/2400 DEF/2000
【鳥獣族・効果】
相手フィールド上に同じ属性のモンスターが表側表示で2体以上存在する場合、このカードは手札から特殊召喚する事ができる。1ターンに1度、フィールド上に表側表示で存在するカード1枚を選択する。選択されたカードの効果はそのターン中無効になる。「神禽王アレクトール」はフィールド上に1体しか表側表示で存在できない。


1ターンに1度、フィールド上に表側表示で存在するカード1枚を選択する。選択されたカードの効果はそのターン中無効になる。

この無効化効果であるが、フィールド上で発動する効果を無効化するタイプで、「スキルドレイン」とは違い解決時に発動したカードが場に存在しなくても効果は無効化される。

いちおうモンスターの効果は無効化できるようになっている(公開したソースだとこの部分がバグってる)が、魔法・罠カードだと@kokを使用した永続効果と、装備魔法の効果及び表側から起動する効果までは対応しているが、誘発する効果の無効化には対応していない。

魔法・罠の誘発効果の無効化は、モンスターの起動効果や誘発効果の無効化とやり方はほぼ同じであるが、結構深い部分に手を加える必要が生ずるため、なかなかやっかいである。

<テストログ:永続魔法>
遊戯 「 起動効果 『神禽王アレクトール』!」
つまずきの効果を無効化した!
遊戯 「 魔導戦士 ブレイカーを攻撃表示で召喚するぜ!
効果発動 『つまずき』!
誘発効果 『魔導戦士 ブレイカー』!」
(魔導戦士 ブレイカーは魔力を蓄えた)
ブレイカーの攻撃力が300ポイントアップ!
つまずきの効果は無効化された!

<テストログ:フィールド魔法>
舞 「 起動効果 『神禽王アレクトール』!」
ハーピィの狩場の効果を無効化した!
舞 「 ハーピィ・クィーンを攻撃表示で出すわ。
効果発動 『ハーピィの狩場』!」
ハーピィの狩場の効果は無効化された!


これで「神禽王アレクトール」で無効化できていないのは、もうない気がするが何かまだ見落としがあるかも知れない。
posted by はぐリン at 16:06| Comment(0) | TrackBack(0) | バグ | このブログの読者になる | 更新情報をチェックする

2009年01月10日

バグ修正

ソース公開すると、それを使ってくれるところがいくつかあるので、バグ情報が結構集まる。
最近のバグ修正は、自分のところのバグ報告ではなく、よそ様のところのバグ報告を参照したものばかりである。

そればかりでは何なので、自分で気付いたものも1つ。


「未来融合−フューチャー・フュージョン」で融合召喚したモンスターに「融合解除」した場合に、墓地に素材がそろっていても、それの特殊召喚に失敗するというもの。

修正は結構面倒かも。まあ、腕試しにどうぞ。


<修正後のテストログ>

遊戯 「 永続魔法 『未来融合−フューチャー・フュージョン』!」
2ターン後のスタンバイフェイズに融合召喚を行う!
エクストラデッキからE・HERO アブソルートZeroが選択された…
E・HERO オーシャンをデッキから墓地へ送った!
沼地の魔神王をデッキから墓地へ送った!
遊戯 「 デッキをシャッフルするぜ!」


・・・2ターン後

遊戯 「 効果発動 『未来融合−フューチャー・フュージョン』!」
エクストラデッキからE・HERO アブソルートZeroを特殊召喚!
(スタンバイフェイズ→メインフェイズ1)
遊戯 「 速攻魔法 『融合解除』!」
E・HERO アブソルートZeroの融合を解除した!
遊戯の墓地からE・HERO オーシャンを特殊召喚!
遊戯の墓地から沼地の魔神王を特殊召喚!
posted by はぐリン at 19:01| Comment(0) | TrackBack(0) | バグ | このブログの読者になる | 更新情報をチェックする

2008年12月14日

誘発効果チェーン処理のバグ

昨日の調整会でC/ONさんからご指摘のあった誘発効果チェーン処理のバグです。

どういったものかというと、誘発でチェーンを組んだときに、それをカウンター系で無効にした場合、下位のチェーンが誤動作するというもの。

具体的には、以下のような感じ。

<テストログ>
---------バトル!---------
自分「剣闘獣ゲオルディアスの攻撃!」
剣闘獣ゲオルディアス 攻撃力:2600 VS 見習い魔術師 攻撃力:400
見習い魔術師を撃破!!
遊戯に2200の戦闘ダメージ!
-------------------------
自分 「 誘発効果 『剣闘獣ゲオルディアス』!」
遊戯 「 誘発効果 『見習い魔術師』!」
自分 「 カウンター罠発動 『剣闘獣の戦車』!」
見習い魔術師の効果を踏み潰した!
(特殊召喚する対象を2体選択)

効果ダメージ効果で発動した「剣闘獣ゲオルディアス」の効果がバトルフェイズ終了時の入れ替わり効果にすげ代わってしまってますね。

これは誘発系の効果の発動が無効化された場合に、チェーン情報が正しく処理されなくなるためで、モンスター効果を無効にするもの全般で起こりえます。

モンスター効果の無効化の後処理はsub wrath_hakaiで行っているので、ここで誘発系を無効にした場合にチェーン情報の整合を取るようにすると直ります。

if($chain[0]=~/^[12]-(13|14|20|21)-){
$koka_r_c=shift @r_c;
$koka_r_p=shift @r_p;
}


正しい動作は以下のようになります。

<テストログ>
---------バトル!---------
自分「剣闘獣ゲオルディアスの攻撃!」
剣闘獣ゲオルディアス 攻撃力:2600 VS 見習い魔術師 攻撃力:400
見習い魔術師を撃破!!
遊戯に2200の戦闘ダメージ!
-------------------------
自分 「 誘発効果 『剣闘獣ゲオルディアス』!」
遊戯 「 誘発効果 『見習い魔術師』!」
自分 「 カウンター罠発動 『剣闘獣の戦車』!」
見習い魔術師の効果を踏み潰した!
見習い魔術師の守備力分のダメージを与える!
遊戯に800の効果ダメージ!
posted by はぐリン at 14:38| Comment(0) | TrackBack(0) | バグ | このブログの読者になる | 更新情報をチェックする

2008年12月11日

二重魔法

サモプリロケットに入れて最近使っているため気付いたバグだけど、「二重魔法」で「ハリケーン」を発動すると、発動した「二重魔法」が手札に戻ってきた。

つよ〜・・・じゃなくてバグだし。
posted by はぐリン at 21:10| Comment(0) | TrackBack(0) | バグ | このブログの読者になる | 更新情報をチェックする

2008年10月20日

シンクロ召喚のバグ

ちょっと気になったので試してみたら案の定バグがあった。


このバグを利用するとシンクロ素材を消費せずにシンクロモンスターを特殊召喚できるというすぐれもののバグである。


もう直したからどうやるのか書くと、チューナー以外のモンスターをフィールド上でなくエクストラデッキのモンスターを指定するのである。

例えば、自分の場に「霞の谷の幼怪鳥」(レベル2)がいる時に、シンクロモンスターに「スターダスト・ドラゴン」などのレベル8とシンクロ素材としてエクストラデッキの「剣闘獣ガイザレス」(レベル6)を指定するとシンクロできてしまうという。

実は融合召喚についても同様なバグがあり、それはちょっと前に直したんだけど、その時はシンクロまでは気が回らなかった。

うち系のソース使っている所は、「おジャマ・ナイト」「E-HERO マリシャス・デビル」「E-HERO ダーク・ガイア」「超合魔獣ラプテノス」「レインボー・ネオス」にこのバグがあるので注意してください。


修正方法は、上記の各カードの融合判定部に以下のような判定を追加してください。

<修正方法>
my $res=$res_s2[$_];

my $res=$res_s2[$_];last if $res>=400;
posted by はぐリン at 23:18| Comment(0) | TrackBack(0) | バグ | このブログの読者になる | 更新情報をチェックする

2008年10月19日

戦闘で破壊し墓地へ送った時

戦闘によってモンスターを破壊し墓地へ送った時に発動する効果には2種類あることに気付いた。

例えば「メンタルスフィア・デーモン」と「ハイドロ・ジェネクス」は同じ効果であるが少しテキストが違う。


「メンタルスフィア・デーモン」
このカードが戦闘によってモンスターを破壊し墓地へ送った時、破壊したモンスターの元々の攻撃力分だけ自分ライフポイントを回復する。

「ハイドロ・ジェネクス」
このカードが戦闘によって相手モンスターを破壊し墓地へ送った時、破壊したモンスターの攻撃力分だけ自分のライフポイントを回復する。


「ハイドロ・ジェネクス」の方には『相手モンスター』という指定があるのが違いである。

このテキストの違いは、「メンタルスフィア・デーモン」の場合は、自分の場のモンスターを戦闘破壊しても効果が発動するのに対して、「ハイドロ・ジェネクス」は自分の場のモンスターを戦闘破壊した場合には効果は発動しないという違いになる。

自分の場のモンスターに戦闘を仕掛ける機会なんて、こちらの攻撃を「マジック・ランプ」で跳ね返された時くらいなので、ほとんど起きない状況ではあるがデュエルCGIでは、そこまで考慮されていないため、テキストの違いを調べて対応した。

(実はCPU戦で「ゴヨウ・ガーディアン」の攻撃を「マジック・ランプ」で反射されてこちらの場のモンスターを破壊した時に、ゴヨウの効果が発動できたため気付いた次第である)

装備魔法でも、この発動条件の効果で同様な違いがあるが、ほとんど使われていないのでいまのところ未対応です。(調べてはある)


<相手モンスター限定のカード>
デス・ヴォルストガルフ
エメス・ザ・インフィニティ
ジャッカルの聖戦士
有翼賢者ファルコス
ガーディアン・バオウ
天界王 シナト
インフェルノ
ジャッカルの霊騎士
インフェルノ・ハンマー
ミレニアム・スコーピオン
ハイドロゲドン
降雷皇ハモン
ブレイン・クラッシャー
水面のアレサ
幸運の笛吹き
トラックロイド
アルカナフォースEX−THE LIGHT RULER
アルカナフォースVII−THE CHARIOT
X−セイバー ウルズ
ゴヨウ・ガーディアン
カオスエンドマスター
ハイドロ・ジェネクス
マンモ・フォッシル

<戦闘で破壊し墓地へ送った時>
ヴァンパイア・ベビー
ソードハンター
守護天使 ジャンヌ
KA−2 デス・シザース
ニードルバンカー
レガシーハンター
吸収天児
E・HERO フレイム・ウィングマン
E・HERO シャイニング・フレア・ウィングマン
E・HERO スチーム・ヒーラー
神竜−エクセリオン
ロイヤルナイツ
エーリアン・マザー
ヴォルカニック・デビル
ダークブレイズドラゴン
剣闘獣ゲオルディアス
E-HERO インフェルノ・ウィング
メンタルスフィア・デーモン
真紅眼の不死竜
C・リペアラー
フレムベル・グルニカ
A・O・J フィールド・マーシャル
posted by はぐリン at 17:55| Comment(0) | TrackBack(0) | バグ | このブログの読者になる | 更新情報をチェックする

2008年10月01日

通常モンスター関連

手札やデッキの通常モンスターに対する効果で、通常モンスターチューナーに対応していないカードが何枚かあったので修正。

ツーマンセルバトル
人海戦術
冥界の使者
鬼ゴブリン

通常モンスター扱いになるモンスターについては、場や墓地に関してはデュアルの時にだいたい手を入れけど、手札やデッキはデュアルだと関係ないので手付かずになっていた。
詳しく調べると、まだあるかも知れない。
posted by はぐリン at 22:28| Comment(0) | TrackBack(0) | バグ | このブログの読者になる | 更新情報をチェックする

2008年08月10日

群雄割拠とDNA系

「群雄割拠」が適用されている時に「DNA改造手術」などの場のモンスターの種族を統一するような効果のカードを発動させると、「群雄割拠」の墓地送り処理の不具合によりデュエルが進行できなくなる。

「群雄割拠」の処理が「DNA改造手術」に対応していないというものだが、これまでこの2枚が同時に使われる事が少ないせいで表面化しないバグであった。
「DNA改造手術」に対応していないということは、当然ながら「アンデットワールド」にも対応していない。
「アンデットワールド」は使用頻度が高いカードなので、「群雄割拠」と被ってバグが表面化した。

直しついでに、「DNA改造手術」と「アンデットワールド」の発動順でどちらの効果が上書きされるかを正確に処理できるようにした。
posted by はぐリン at 00:06| Comment(0) | TrackBack(0) | バグ | このブログの読者になる | 更新情報をチェックする

2008年03月01日

閏年の2月29日

今年は2008年なので閏年である。


デュエルCGIの配布ソースは、年末年始や閏年には対応していないので、対人デュエル終了から部屋の開放までの数分間がこの境界線を越える場合、部屋が開放されなくなる。


どちらも対応したつもりだったが、今日対人対戦場を見てみたら1つ開放されなくなってる部屋があった。


な、なんと閏年の判定が間違っていた。

if ($nen % 4 == 0 && $nen % 100 != 0 && $nen % 400 == 0) {$nen=366;} else {$nen=365;}

正しくはこう
if ($nen % 4 == 0 && $nen % 100 != 0 || $nen % 400 == 0) {$nen=366;} else {$nen=365;}


いや〜、お恥ずかしい限りです。
posted by はぐリン at 00:52| Comment(2) | TrackBack(0) | バグ | このブログの読者になる | 更新情報をチェックする

2008年02月13日

万魔殿−悪魔の巣窟−

「万魔殿−悪魔の巣窟−」を使ったデーモンデッキって自分では使わないので、ずいぶん昔に作ったこのカードの効果を見直す機会は今までなかった。

カイクウさんのところにバグ情報が来てたので、こちらでも見直してみたところ、同時に複数体の「デーモン」が破壊された場合に複数回数発動しちゃうのも問題だけど、その効果処理でデッキのカードを対象に取ってた。

配布時のリクル効果がそうなってるので、最初の頃は知らずにこういう処理を書いてたんだなと感慨にふけった。

というわけで、手札に加える効果に関しては、発動部のほかに効果処理も作り直すはめになった。
posted by はぐリン at 23:06| Comment(0) | TrackBack(0) | バグ | このブログの読者になる | 更新情報をチェックする

猛突するCPU処理

対CPU戦で、CPUのターンに「召喚制限−猛突するモンスター」と「おジャマトリオ」を発動した場合、おジャマトークン3体は攻撃を強制されるため、3体とも攻撃してこないといけないんだけど、CPUの場に他のモンスターが存在すると攻撃してくれない。
これは、「召喚制限−猛突するモンスター」を作成した際のテストプレイで分かってたんだけど、どこをどう直すと攻撃してくるのか分からなかったので、不問にしておいた(対人対戦では正常動作のため)んだけど、CPU思考ルーチンを眺めててようやくどうすればいいか分かった。


※CPUの場にモンスター1体存在する場合のテスト

<テストログ>
羽蛾 「 オレのターン!
ヒョヒョヒョ、カードを引くよ」
(スタンバイフェイズ→メインフェイズ1)
遊戯 「 罠カード発動 『おジャマトリオ』!」
遊戯 「 永続罠発動 『召喚制限−猛突するモンスター』!」
特殊召喚されたターンにモンスターは猛突する!
羽蛾の場におジャマトリオが現れた!
遊戯 「 効果発動 『召喚制限−猛突するモンスター』!」
召喚制限を受けたおジャマトークンは猛突する!
召喚制限を受けたおジャマトークンは猛突する!
召喚制限を受けたおジャマトークンは猛突する!
(メインフェイズ1→バトルフェイズ)
---------バトル!---------
羽蛾「おジャマトークンの攻撃!」
おジャマトークン 攻撃力:200 VS 氷帝メビウス 攻撃力:2600
敗北!!
羽蛾に2400の戦闘ダメージ!
-------------------------
遊戯 「 効果発動 『おジャマトリオ』!」
羽蛾に300の効果ダメージ!
---------バトル!---------
羽蛾「おジャマトークンの攻撃!」
おジャマトークン 攻撃力:200 VS 氷帝メビウス 攻撃力:2600
敗北!!
羽蛾に2400の戦闘ダメージ!
-------------------------
遊戯 「 効果発動 『おジャマトリオ』!」
羽蛾に300の効果ダメージ!
---------バトル!---------
羽蛾「おジャマトークンの攻撃!」
おジャマトークン 攻撃力:200 VS 氷帝メビウス 攻撃力:2600
敗北!!
羽蛾に2400の戦闘ダメージ!
-------------------------
遊戯 「 効果発動 『おジャマトリオ』!」
羽蛾に300の効果ダメージ!
羽蛾 「 ヒ〜〜ン、ウソだぁ〜〜」
遊戯 「 とっとと島を出ていきな! 弱昆虫野郎!」
posted by はぐリン at 00:06| Comment(0) | TrackBack(0) | バグ | このブログの読者になる | 更新情報をチェックする

2008年01月26日

はたき落とし

はたき落とし 通常罠
相手のドローフェイズ時に発動する事ができる。相手はドローフェイズでドローしたカード1枚をそのまま墓地に捨てる。

ルールHPさんの記載によると、ターンプレイヤーがドローフェイズに1ターンに1度行なえるドローをした時が発動タイミングであり、それ以外には発動できない。

「凡骨の意地」などのように、ドローフェイズに他のカードの効果でドローした場合にも発動できそうなテキストなので、現在の事務局回答は違うのかも知れないが、他に情報もないのでデュエルCGIでも効果によるドローに対しては発動不可としている。

デュエルCGIの配布時から実装されているカードであるが、効果処理には若干の問題点がある。

このカードの効果によって手札を捨てるのは、確実にターンプレイヤーであるので、このカードの発動に手札から速攻魔法をチェーンできる。


このカードの処理は、ドローしたカードのカード名と手札の位置(一番右端)によって捨てさせるカードを判別することでドローしたカードを判別しているのだが、この方法だと、手札の最後(一番右端)に速攻魔法があり、ドローしたカードがその速攻魔法と同じカードだった場合に問題が起こる。


(手札) モンスターA 罠B 通常魔法C 速攻魔法D 速攻魔法E(ドロー)
※速攻魔法DとEは同名カードとする

<例1>
この手札の時に相手が「はたき落とし」を発動。
これにチェーンして速攻魔法Dを発動。

この場合は、ドローしたカードはまだ手札にあるので「はたき落とし」の効果によって捨てられる。


<例2>
この手札の時に相手が「はたき落とし」を発動。
これにチェーンして速攻魔法Eを発動。

この場合は、ドローしたカードが手札になくなるので「はたき落とし」の効果は不発になるのが正しい処理だけど、同じカードが手札の最後(一番右端)に残っているため、デュエルCGIでは「はたき落とし」が成立してしまう(バグ)。


最近出た「強烈なはたき落とし」だと、手札から速攻魔法をチェーンされないので、この問題はおきにくいが起こらないわけではない。(どんな場合か考えてみるのは面白いですよ)


この問題を解決するには、ドローしたカードを完璧に確定できるようにすればいいんだけど、なかなかそれも大変そうなので、とりあえず現状よりもドローしたカードの判別精度を上がるような処理を入れてみました。
これにより、<例2>のパターンには対応したが、チェーンするカードによっては、まだ不具合がでる可能性はあります。
posted by はぐリン at 22:00| Comment(0) | TrackBack(0) | バグ | このブログの読者になる | 更新情報をチェックする

2007年11月15日

死デッキ適用中の複数枚ドロー

CPU双六と戯れていた時に気付いたバグ。

死・魔・闇デッキ適用中に複数枚数ドローして、2枚以上のカードが破壊された場合なんだけど、これに「マクロコスモス」+「魂吸収」が加わると処理がややこしいことになる。

CPU戦してた時は、死デッキ中に「貪欲な壺」を発動したら、ドローしたカードが2枚とも攻撃力1500以上だったため、

2枚とも破壊→マクロコスモスによって除外→魂吸収によって回復

という処理になったが、この時に魂吸収での回復が1枚ずつ発生した。

<バグ版テストログ>
海馬は山札から2枚ドロー!
青眼の白龍はウイルスに感染−消滅!
(青眼の白龍は光の彼方に追放された)
魂吸収! 双六のライフが500ポイント回復!
青眼の白龍はウイルスに感染−消滅!
(青眼の白龍は光の彼方に追放された)
魂吸収! 双六のライフが500ポイント回復!

魂吸収の回復処理はだいぶ前にほとんど直したつもりだったが、このパターンは思いつかなかったので手を入れてない。

せっかく見つけたので忘れないうちに修正しておこう。

<修正後のテストログ>
海馬は山札から2枚ドロー!
青眼の白龍はウイルスに感染−消滅!
(青眼の白龍は光の彼方に追放された)
青眼の白龍はウイルスに感染−消滅!
(青眼の白龍は光の彼方に追放された)
魂吸収! 双六のライフが1000ポイント回復!
posted by はぐリン at 21:36| Comment(0) | TrackBack(0) | バグ | このブログの読者になる | 更新情報をチェックする

2007年08月29日

投石部隊

投石部隊
自分フィールド上の戦士族モンスター1体を生け贄に捧げる。このカードの攻撃力以下の守備力を持つ表側表示のモンスター1体を破壊する。

何だか古いカードの修正ばっかやってる気もするが、デュエルCGIとOCGとの違い(うちでは面倒なので一覧表作ってないが)に載ってるヤツで、正規ルールでは自分のモンスターも破壊できるが、デュエルCGIの処理では「生贄モンと区別がつかないので、相手のモンスターしか破壊できない」という違い。

「フォッグ・コントロール」もこれと似ていて、生け贄に捧げるモンスターとフォッグカウンターを乗せるモンスターが両方自分の場の場合の区別をしないといけない。
「フォッグ・コントロール」の実装によって、一応この問題は解決できたので同じやり方で「投石部隊」も修正してみた。

これで、またひとつOCGとの違いを減らせた。
posted by はぐリン at 21:30| Comment(0) | TrackBack(0) | バグ | このブログの読者になる | 更新情報をチェックする

2007年08月28日

俊足のギラザウルス

俊足のギラザウルス
このモンスターの召喚を特殊召喚扱いにする事ができる。特殊召喚扱いにした場合、相手の墓地から相手はモンスター1体を特殊召喚する事ができる。

某所のバグ報告に、「俊足のギラザウルス」を自身の効果で特殊召喚した際に、相手の墓地に特殊召喚可能なモンスターが存在しない場合に、「俊足のギラザウルス」の特殊召喚に対して「地獄の暴走召喚」が発動できないというのがあった。
ソースを見直してみたら、確かにその場合には特殊召喚成功時という中断タイミングが発生しないような処理になっていた。

修正ついでに、エキスパートルールHPで「俊足のギラザウルス」のルールを調べてみたら、相手の蘇生効果は発動時に墓地のカードを対象に取る効果という裁定になっていた。

「俊足のギラザウルス」は初期配布時に実装済みカードなんだけど、チェーン対応や優先権がらみのタイミングなので一度作り直している。その時には、そこまで調べなかったか頭が回らなかったかのどちらかだけど、現行ルールと違っているので再度作り直した。

「俊足のギラザウルス」を特殊召喚したコントローラーと蘇生効果のコントローラーが違うのでややこしいが、相手の墓地に特殊召喚可能なモンスターが存在しないか相手が効果を使用しなかった場合は、「俊足のギラザウルス」を特殊召喚したコントローラーに優先権行使のタイミングが生じる(ようになったと思う)。
posted by はぐリン at 22:48| Comment(0) | TrackBack(0) | バグ | このブログの読者になる | 更新情報をチェックする

2007年05月26日

二重召喚

二重召喚 通常魔法
このターン中もう1度だけ通常召喚を行なう事ができる。

・召喚権利を使用していなくても発動可能
・何枚発動しても召喚権での召喚以外に1回しか通常召喚できない
・「スケープ・ゴート」を発動したターンにこのカードを発動できる?

はやまって実装したため、実際のルールと違っちゃってるなぁ。
うちのCGIだと、

・召喚権利を使用後にしか発動できない
・2枚発動すれば2回通常召喚できる
・「スケープ・ゴート」を発動したターンには発動不可

てな具合になってます。
何でこうしたかというと、この方が簡単だったから(汗
これ、直すの大変そうだなぁ。
posted by はぐリン at 14:50| Comment(0) | TrackBack(0) | バグ | このブログの読者になる | 更新情報をチェックする

2007年05月05日

召喚成功時の複数誘発チェーン処理

5/3に書いたコードだと、複数の誘発する効果が片プレイヤーだけの場合にはうまく動作するが、両プレイヤーの効果が混ざって発動する場合に、効果のコントローラーの振り分けがうまくいってなかった。

原因は@s_siteiに効果のコントローラーを保存する処理の

push(@s_sitei, $1);

正しくは、
unshift(@s_sitei, $1);

としないといけないようだ。(5/3のリストは修正済み)

sub del_chainやsub del_chain2ではpushでやってるので、同じようにしたんだけど、なんであっちはあれでいいんだろう。不思議だ・・・。ひょっとして、これがCPUがたまに誤動作する原因なのかな。

実際にデュエルしていて、誘発でチェーン組む事ってそれほどない(バブーン使ってると頻繁にあるけど)ので、まだ不具合が表面化はしてなかったみたい。

あと、誘発効果のチェーンを組む順がバラバラだったのを、ターンプレイヤーの効果のあとに非ターンプレイヤーの効果という順になるようにした。

1.ターンプレイヤーの墓地発動効果
2.ターンプレイヤーのフィールド発動効果
3.非ターンプレイヤーの墓地発動効果
4.非ターンプレイヤーのフィールド発動効果

の順。ここを任意の順で組めるようにする気はさすがにない。
posted by はぐリン at 16:26| Comment(0) | TrackBack(0) | バグ | このブログの読者になる | 更新情報をチェックする

2007年04月26日

士気高揚

チャックしたところ、装備魔法扱いになっているモンスターカードが場から離れた場合にも効果が発動するようにはなっていたが、別の意味でバグってた(汗


ちなみに認定のコンボ板に載ってたやつの動作はこうなる。


遊戯 「 誘発効果 『暗黒魔族ギルファー・デーモン』!」
鉄の騎士ギア・フリードの攻撃力を500下げた!
士気高揚! 遊戯のライフが1000回復!
ビッグバンガールがマグマの杖を振りかざした!
海馬に500の効果ダメージ!
海馬 「 誘発効果 『鉄の騎士ギア・フリード』!」
ギア・フリードの鋼鉄の体が装備カードを弾き飛ばした!
暗黒魔族ギルファー・デーモンは破壊された!
遊戯 「 効果発動 『士気高揚』!」
モンスターの士気がグ〜〜ンと下がった!
遊戯に1000の効果ダメージ!
(対象を選択してくれ)

※以下繰り返しの無限ループ(相手のライフが0になるまで)

「ビッグバンガール」が存在しないと無意味な無限ループになります。
posted by はぐリン at 21:51| Comment(0) | TrackBack(0) | バグ | このブログの読者になる | 更新情報をチェックする

2007年04月24日

クロス・ソウル

「クロス・ソウル」のバグ報告がきたけど、あれは「クロス・ソウル」の処理を根底から作り直さないと対応できないので、修正方法(というか作り直し)案を脳内検討してみる。


「クロス・ソウル」の処理は現在、魔法カードの効果処理部で$hk[13]に対象モンスターのフィールド位置をセットている。(このため同一ターンに2枚目を発動すると、単に$hk[13]の値が切り替わるので、最初に発動した方が無効となり2枚目で対象にした方が有効になるだけとなる)

この$hk[13]の値を利用して

1.生け贄選択時にsub card_searchで@res_sに$hk[13]をpushしている
2.sub view_fldbutton_mstで相手の場のモンスターに「生贄」のチェックボックスを表示している

の2つを行っている。

発動ターンにバトルフェイズを行えない効果については、初期デュエルCGIでは$hk[13]を使用していたが、うちのは$jok[22]で判定するように変更しているのでこちらはそのままいける。

$hk[13]がクロス・ソウルだけで使用する変数となっている(初期デュエルCGIでは「魔霧雨」でも使用)ので、$hk[13]は発動されたことのフラグ(単に1を入れる)として利用するだけにし、$fld_koka[xx]に"xsoul_$turn<>"をセットして、これによって対象を識別するように変更する。

sub find_koka_subで$hk[13]==1の時に$fld_koka[xx]を調べて@xsoulにフィールド位置を保存する。

sub card_searchとsub view_fldbutton_mstは、@xsoulを利用して処理を行う。

「クロス・ソウル」の効果を受けていることを明示するためにsub get_fld_messで'《クロスソウル》'とでも表示するようにするとか。

これで多分いけるはず。
posted by はぐリン at 12:15| Comment(0) | TrackBack(0) | バグ | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。