First Seed Material Screen Resolution 800*600 (pixels) or over.
Best viewed with the latest MS IE.
CSS, JavaScript ON, necessary.
リクエスト掲示板[ツクールVX] スクリプト(RGSS2)関連 » 召喚
 トピックに返信
フラット表示
 古いものから
  前のトピック  次のトピック  下へ 
Flandre #1 題名: 召喚 投稿日時: 2010年 7月 28日 (水) 12:30
FSM MEMBER
FSM MEMBER
登録日: 2010年 6月 15日
所在地:
プロフィール

VXでFFの召喚獣のようなシステムを作れるスクリプトをお願いします。
細かく言うと、召喚用のスキル・アイテムを使用した場合、設定されているアクターと使用したアクターを交換し、召喚したアクターが戦闘不能になるか、戦闘が終了すると元のメンバーに戻るようなスクリプトがいいです。

上とまったく同じ内容の水夜様のスクリプトを発見したのですが、こちらのスクリプトはXP専用なので、VXでは使用できませんでした。
http://zenith.ifdef.jp/rgss/zenith_rgss12.txt
このスクリプトをVX仕様にすることは出来ますか?

よろしくお願いします。
 印刷 記事からPDFを作成  返信 引用 
メタボ #2 題名: Re: 召喚 投稿日時: 2010年 7月 29日 (木) 0:42
接続元ID: dhtHaWwdxUI

 こんばんは。

 まだ完成品とは言い難いのですが、
とりあえず、使用者と召喚されるアクターを入れ換える形で作ってみました。

 入れ換えの機能だけですが、よろしければお試しください。

------------------------------------------------------------------------------
※ 追記 (2010/ 8/10)

 「召喚」を書いてしばらくの間は、あまり気にならなかったのですが、
ステータスが見れたほうが良いかな…と思い、
召喚されるアクターのステータス画面を表示するスクリプトを作ってみました。
 ただし、他の機能は無いので、過度な期待はしないでください。

 for_Default は、デフォルト仕様。
for_CMC は、KGCさん「カスタムメニューコマンド」の導入が前提です。

 …よろしければお試しください。


 それと、1.3 ですが、KGCさん「多人数パーティ」併用時、
TYPE == 1 で、パーティメンバーが復帰する際、
常に"戦闘メンバー最大数"の戦闘メンバー数になっていた点を改善しました。
添付ファイル:

txt Summon ver.0.1.txt (9.2KB / Hits: 85)

txt Summon ver.1.2.txt (15.8KB / Hits: 37)

txt Summon_Menu for_Default.txt (4.9KB / Hits: 23)

txt Summon_Menu for_CMC.txt (11.3KB / Hits: 20)

txt Summon ver.1.3.txt (16.1KB / Hits: 29)
 印刷 記事からPDFを作成  返信 引用 編集 削除
bloo-TAS #3 題名: Re: 召喚 投稿日時: 2010年 7月 29日 (木) 13:26
FSM MEMBER
FSM MEMBER
登録日: 2010年 7月 28日
所在地:
プロフィール

ありがとうございます。
試してみたら、スキルは変更されていたのですが、そのほかの情報が変更されていませんでした。(名前やHP、MPなどがそのまま)

色々調べてみた結果、さば缶様の世界樹の迷宮風戦闘画面が影響しているようです。世界樹の迷宮風戦闘画面を使用していても利用できるようにはなりませんか?
 印刷 記事からPDFを作成  返信 引用 
メタボ #4 題名: Re: 召喚 投稿日時: 2010年 7月 29日 (木) 23:19
接続元ID: IdzG8u4Y/jQ

>bloo-TASさん

 上のスクリプトは、スキルに関する操作は一切行っていません。
 …なので、入れ換えた後、
"世界樹"側の更新処理が正常に行われていない可能性が考えられます。

 Summon のほうを"世界樹"よりも上に配置してみてください。


----------------------------------------------------------------------------
※ 上のスクリプト(ver.0.1)について追記

 一箇所、書き間違いがありました。
 Game_Party の def remove_actor 内、
remove_actor_summon(actor_id) にすべきところが、
add_actor_summon(actor_id) になっていますねorz

 DLした方は修正しておいてください。
if $game_actors[actor_id].aeon?
--略--
else
#add_actor_summon(actor_id)

remove_actor_summon(actor_id)

end
 印刷 記事からPDFを作成  返信 引用 編集 削除
Flandre #5 題名: Re: 召喚 投稿日時: 2010年 7月 30日 (金) 22:30
FSM MEMBER
FSM MEMBER
登録日: 2010年 6月 15日
所在地:
プロフィール

remove_actor_summon(actor_id)に変更したところ、他のアクターをメンバーに加えることが出来なくなりました。
 印刷 記事からPDFを作成  返信 引用 
メタボ #6 題名: Re: 召喚 投稿日時: 2010年 7月 30日 (金) 23:01
接続元ID: Q9iUNi5Olcc

remove_actor_summon(actor_id)に変更したところ、他のアクターをメンバーに加えることが出来なくなりました
 その変更によって、アクターを加えることができなくなったわけではなく、
原因は別にあります。
 remove_actor_summon は、
alias で別名定義した元のメソッド( remove_actor )なので、
それを書かないとなると、元々あった処理が実行されないことになってしまい、
非常にまずいことになります。

 …で、その原因ですが、世界樹スクリプトを見たところ、
add_actor の、
return if (@actors.size >= MAX_MEMBERS) || (@actors.include?(actor_id))
…という条件文で弾かれてしまってますね。

 @actors.size >= MAX_MEMBERS というのは、
パーティメンバーの人数が、最大数以上なら、という条件です。
 return は処理の中断だと思ってください。

 この条件自体は、デフォルトの add_actor にもありますが、
上の Summon では、入れ換えの処理の場合、
人数の制約を受けることはないため、その条件を無視するようにしています。


 では、原因が判明したところで、
以下のように"世界樹"側の add_actor に手を加えてください。
class Game_Party < Game_Unit
alias saba_sekaiju_add_actor add_actor
def add_actor(actor_id)
unless $game_actors[actor_id].aeon?

return if (@actors.size >= MAX_MEMBERS) || (@actors.include?(actor_id))
end

saba_sekaiju_add_actor(actor_id)
--以下略--
end
end
 アクターの追加については、他に問題がなければ、
これで正常に戻るはずです。
 印刷 記事からPDFを作成  返信 引用 編集 削除
Flandre #7 題名: Re: 召喚 投稿日時: 2010年 7月 30日 (金) 23:36
接続元ID: 4XWOGq7XXcA

変更しましたが、まだ直らないです。
まだ別のスクリプトと競合してるかも知れませんorz
アクターの最大数を変更するようなスクリプトと競合するのですか?
 印刷 記事からPDFを作成  返信 引用 編集 削除
メタボ #8 題名: Re: 召喚 投稿日時: 2010年 7月 30日 (金) 23:55
接続元ID: Q9iUNi5Olcc

 その可能性はありそうですが、
開発に使ったプロジェクトは、製作中のプロジェクトで、
さまざまなスクリプト素材が入っています。
 その中にKGCさんの「多人数パーティ」もあるので、ちょっと考えにくいですね。

 これは一つの調べ方ですけれども、
Summon 内で、alias で別名定義しているメソッド(alias xxxxx_summon xxxxx となっている箇所です)の、
元のメソッド名( xxxxx )で全文検索(Ctrl + Shift + F)をかけ、
デフォルト以外の部分(素材セクション内)でヒットするかどうか、
確かめてみると良いでしょう。
 もしヒットした素材があれば、それを調べていけば何かわかるやも知れません。

 面倒なら、まず add_actor と remove_actor の2つを調べてみてください。
他のメソッドが影響している可能性は、比較的低いと思われますので。
 印刷 記事からPDFを作成  返信 引用 編集 削除
Flandre #9 題名: Re: 召喚 投稿日時: 2010年 7月 31日 (土) 0:21
接続元ID: 4XWOGq7XXcA

とりあえずadd_actor と remove_actorの二つの検索をかけてみましたが、他の素材の中では使われていませんでした。

なぜか、summonスクリプトを修正前の状態に戻したところ、正常(?)に機能しましたw
 印刷 記事からPDFを作成  返信 引用 編集 削除
メタボ #10 題名: Re: 召喚 投稿日時: 2010年 7月 31日 (土) 0:39
接続元ID: Q9iUNi5Olcc

 しかし…そうなるとお手上げですね。
指示通りに def remove_actor(actor_id) の方の
add_actor_summon(actor_id) を修正しましたか?
 修正前の Summon には、
add_actor_summon(actor_id) となっている箇所が2箇所あり、
片方は正常なコードです。
 
 今のところ、そのくらいしか疑うところが無いですね…。
 印刷 記事からPDFを作成  返信 引用 編集 削除
Flandre #11 題名: Re: 召喚 投稿日時: 2010年 7月 31日 (土) 16:03
接続元ID: 4XWOGq7XXcA

もう一度ダウンロードしなおして修正しなおしたところ、正常に機能いたしました。
どうやら修正が上手く行っていなかったようです。お手数おかけしました。
 印刷 記事からPDFを作成  返信 引用 編集 削除
Flandre #12 題名: Re: 召喚 投稿日時: 2010年 7月 31日 (土) 23:43
接続元ID: 4XWOGq7XXcA

出来れば「召喚」スキルの仕様の2の仕様も利用したいのですが、お願いできないでしょうか?
 印刷 記事からPDFを作成  返信 引用 編集 削除
メタボ #13 題名: Re: 召喚 投稿日時: 2010年 8月 1日 (日) 7:25
接続元ID: Q9iUNi5Olcc

 召喚の仕様(TYPE)の 1 と 2 を実装しました。
出来立てのホヤホヤです。
 上の ver.0.1 のところに並べて添付しておきますので、お試しください。

 …一度解決済みにされたときは、少し不思議に思いましたが、
ver.1.0 も無駄にならずに済みそうですね。
 印刷 記事からPDFを作成  返信 引用 編集 削除
Flandre #14 題名: Re: 召喚 投稿日時: 2010年 8月 2日 (月) 12:39
FSM MEMBER
FSM MEMBER
登録日: 2010年 6月 15日
所在地:
プロフィール

召喚タイプを2にして召喚を行った際

スクリプト'summon'の251行目でNoMethodErrorが発生しました。
undefined method '+' for nil:NilClass

というエラーが出てしまいます。
 印刷 記事からPDFを作成  返信 引用 
メタボ #15 題名: Re: 召喚 投稿日時: 2010年 8月 3日 (火) 4:45
接続元ID: Q9iUNi5Olcc

 他の方にも言っていることなのですが、
251行目…行数の情報だけでは不十分です。

今回の場合は…

TYPE を 2 にして召喚を行った際、Summon の
Game_Party の def add_actor の
if $imported["LargeParty"]
@max_battle_member_count += 1

add_battle_member(actor_id); fix_actor(actor_id, true)
end
赤字のところで

スクリプト'summon'の251行目でNoMethodErrorが発生しました。
undefined method '+' for nil:NilClass

というエラーが出ました。

…と、いうようにエラーメッセージの他に、
セクション名(素材名)、クラス名、メソッド名を示すことと、
前後関係がわかるような形で、近くの記述も一緒に書いてもらえると、
原因の特定がスムーズになります。

 行数だと、だいたいの見当がつかないわけではありませんが、
こちらがコメントやテスト用に書いた記述を一度削除してから、
行数を確認しなければならないので、非常に面倒です。

 …ご協力お願いします。


 …それで、原因は、
@battle_member_count という変数に数値が入っていないためで、
この変数にどこかで値を入れてやる必要があるようです。

 後ほど修正しておきますので、しばしお待ちください。

--------------------------------------------------------------------------
※ 修正が済んだので、1.0 を修正版(1.1)に差し換えておきます。
  1.0 をDLした方は、各自で 1.1 に差し換えてください。
 印刷 記事からPDFを作成  返信 引用 編集 削除
Flandre #16 題名: Re: 召喚 投稿日時: 2010年 8月 3日 (火) 13:19
FSM MEMBER
FSM MEMBER
登録日: 2010年 6月 15日
所在地:
プロフィール

すいません。初めての投稿だったもので・・・。
以降は気をつけます。

ありがとうございます。無事に動作いたしました。
なにからなにまですいませんでした。
解決済みにしておきます。
 印刷 記事からPDFを作成  返信 引用 
匿名 #17 題名: Re: 召喚 投稿日時: 2010年 8月 3日 (火) 15:27
接続元ID: bQdU.yogGRI

初めての投稿?
嘘ついちゃいかんよ君ィ
 印刷 記事からPDFを作成  返信 引用 編集 削除
メタボ #18 題名: Re: 召喚 投稿日時: 2010年 8月 3日 (火) 21:50
接続元ID: Q9iUNi5Olcc

『召喚』スクリプトに関し別トピックを立ててもよろしいでしょうか?
 それは内容によるんじゃないでしょうか。

 自分の基準になりますが、
「召喚」スクリプトのエラーや不具合についての用件でしたら、
わざわざ立てることも無いかな、と思います。
 「召喚」スクリプトの拡張や機能追加、仕様変更などについての用件でしたら、
別の問題になってしまうので、別にトピックを立てるほうが良いと思います。

 要は、別件かそうでないか、…という基準ですね。


※ …おっと、規約について答えていませんでしたね。

  規約はありません。
 強いて言えば、ここFSMさんの規約に従っていただければ結構です。
  改造・転載も自由です。
 印刷 記事からPDFを作成  返信 引用 編集 削除
メタボ #19 題名: Re: 召喚 投稿日時: 2010年 8月 4日 (水) 3:57
接続元ID: Q9iUNi5Olcc

 ふとテストしていたら、例のF12エラーで落ちますね…orz
修正して差し換えておきましたので、上の同じところからDLしてください。
 印刷 記事からPDFを作成  返信 引用 編集 削除
フラット表示
 古いものから
  前のトピック  次のトピック  上へ 
トピックに返信 

All times are GMT+9:00

 
[ 高度な検索 ]

移動先:
Copyright © 2001, 2005, First Seed Material, REFMAP
Powered by XOOPS © 2001, 2003 The XOOPS Project :: phpBB © 2001, 2003 phpBB Group :: Customized by tekepon.net