忍者ブログ
RPG製作情報など
[65]  [64]  [63]  [111]  [51]  [50]  [49]  [48]  [47]  [46]  [45
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

07/01/31記事の 『仲間をたくさん呼びつつABCvol.03』で、
変な記述をしていたので、修正してみた。

スクリプト内の↓部分なのだが、
# □戦闘中、隠れフラグがONの場合、戦闘不能を付加

self.add_state(0)

そもそも、xxx.exist?ってのは、存在判定で、! xxx.exist?(not xxx.exist? )は、
戦闘不能もしくは、隠れ状態の場合と同意なので、
隠れ状態の場合に、わざわざ、戦闘不能を付加する必要はなかったのだ...

しかも、xxx.add_state(ID)ってのは、ステートを付加する命令なのだが、
IDの部分が、0なので、全く意味のない命令になっていたのだ!

とりあえず、今回は↑部分の削除と、呼び出し(仲間を呼ぶ)が成功した場合に、
何かしらの、処理を追加できるように、call_end(user,target)を追記してみた。

例えば、『分裂』するエネミーを再現する場合、
処理的には、『仲間を呼ぶ』なのだが、使用者と対象のHP/SPを50%にする処理を
追加すれば、それっぽく見える? ってことで追加してみた。
PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
仲間をたくさん呼びつつABC バグ?
 hide様はじめまして、AntwerpBlueと申します。
【仲間をたくさん呼びつつABC】のスクリプトをお借りしたのですが、戦闘中に

 スクリプトの247行目でNoMethodErrorが発生しました。
 undefined method`[]'for nil:Class

と表示されました。
 デフォルトのスクリプトを多少改造しているのでそれが原因かと思い新規作成し、

・スクリプト:無改造
・ステート名:仲間を呼ぶ
・効果範囲:使用者
・トループ設定:途中から出現

で試してみましたが同じ結果でした。
他に設定し忘れている所があるのでしょうか・・・。

 お忙しいこととは思いますが、宜しくお願い致します。
AntwerpBlue 2012/06/28(Thu)12:54:41 編集
Re:仲間をたくさん呼びつつABC バグ?
はじめまして、AntwerpBlueさん。
早速、本題ですが...
無改造でもエラーとのことですが、

>・スクリプト:無改造
>・ステート名:仲間を呼ぶ
>・効果範囲:使用者
>・トループ設定:途中から出現

>・ステート名:仲間を呼ぶ ←ココのステート名ではなく、スキル名です。

属性やステートなどの指定は在りません、単純に「名前」で認識させています。
他所では、ステート名や属性名を指定するのが一般的?ですので...

これでも不具合があるようでしたら、ご気軽にご一報頂ければ幸いです。


【2012/06/28 13:32】
早速のご返答,有難うございます
 早速のご返答、有難うございます。

 前回の文章でステート名と書いていますが、スキル名の誤りです。(スキル名:仲間を呼ぶで設定しています。)
 ご返信いただくまで気が付きませんでした。よく確認してから返信するべきでした。申し訳ありません。

 エラーダイアログの出るタイミングもバラバラで、すぐに出る時もあれば長時間戦闘しないと出ない時もあります。
AntwerpBlue 2012/06/28(Thu)14:46:07 編集
Re:早速のご返答,有難うございます
私事ですが、今週は夜勤です。
不規則な時間の返信の為、ニートと思われると悲しいので(笑)

エラー箇所が247行目ということは、
if user.enemy_call["開始"] == true
↑部分でNoMethodError が起こっているようですね。
こちらの環境では再現できないのですが、検証してみます。

class Game_Enemy < Game_Battler
の8行目以下 # ■ オブジェクト初期化 が動作してないようです。
undefined method`[]'for nil:Class なので、↓全てが動作してないハズ

@enemy_call = {"開始"=>false,"対象"=>nil,"使用者ID"=>nil}
@plus_name = ""
@enemy_call_count = 0
@enemy_call_hidden = []
@call_index = 0
# □呼び出されたエネミーを含めたエネミー配列
$call_enemies = []

上記全てをオリジナルの
class Game_Enemy < Game_Battler
#--------------------------------------------------------------------------
# ● オブジェクト初期化
# troop_id : トループ ID
# member_index : トループメンバーのインデックス
#--------------------------------------------------------------------------
def initialize(troop_id, member_index)
super()
@troop_id = troop_id
@member_index = member_index
troop = $data_troops[@troop_id]
@enemy_id = troop.members[@member_index].enemy_id
enemy = $data_enemies[@enemy_id]
@battler_name = enemy.battler_name
@battler_hue = enemy.battler_hue
@hp = maxhp
@sp = maxsp
@hidden = troop.members[@member_index].hidden
@immortal = troop.members[@member_index].immortal

※※ ここから下に貼り付ける
@enemy_call = {"開始"=>false,"対象"=>nil,"使用者ID"=>nil}
@plus_name = ""
@enemy_call_count = 0
@enemy_call_hidden = []
@call_index = 0
# □呼び出されたエネミーを含めたエネミー配列
$call_enemies = []

end

これで一応、動作はすると思います。 根本的な解決ではないですが...
検証に時間が掛かると思いますが、hideに問題がある場合は修正volを公開します。
【2012/06/29 05:31】
この記事へのトラックバック
この記事にトラックバックする:
カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
最新コメント
[08/04 Faust]
[05/26 takku]
[11/12 ぱんだ]
[06/28 AntwerpBlue]
[06/28 AntwerpBlue]
[02/07 ジャリン]
[02/07 ジャリン]
[02/05 白豆]
[11/28 I・S]
[11/26 I・S]
プロフィール
管理人
hide
ホームページ
ブログ内検索
カウンター
忍者アナライズ
忍者ブログ [PR]