@item_detail_window.set_handler(:cancel,method(:cancel_item_detail_window)) # ƒJ[ƒ\ƒ‹ŒÅ’胂[ƒh‚É‚¨‚¯‚éÚ×à–¾ƒEƒBƒ“ƒhƒE‚Ì•\ަI—¹ def start end end start_detail_window def set_item(item) @detail_description ||= create_detail_description return if !IT_DETAIL::Freeze # Ú×à–¾ƒEƒBƒ“ƒhƒE—p‚̐؂è‘Ö‚¦ end end} @item_detail_window.refresh(item) 1.元の説明文を改行表示する else def clear @sell_window.item_detail_window = @item_detail_window if IT_DETAIL::Sell end # ƒnƒ“ƒhƒŠƒ“ƒOˆ— end ‚éê‡‚́u”ñ”„•iv‚Ì•¶Žš—ñ‚ðÝ’èB # ŠJŽn contents.clear start_detail_window # ƒAƒCƒeƒ€‚ÌÚ×à–¾•`ŽÊ Help us understand the problem. rgss3版の新機能として「装備破壊属性」の設定がある武器・スキル・アイテム などは耐久力へ補正した設定値分のダメージを与えていくことができます。 「破損」「大破」の2種類の状態が存在し、破損装備は「黄色」 大破装備は「赤」で表示されます。 def cancel_item_detail_window #-------------------------------------------------------------------------- if f && IT_DETAIL::CancelClose rgss3版の新機能として「装備破壊属性」の設定がある武器・スキル・アイテム などは耐久力へ補正した設定値分のダメージを与えていくことができます。 「破損」「大破」の2種類の状態が存在し、破損装備は「黄色」 大破装備は「赤」で表示されます。 end @item_detail_window.hide #-------------------------------------------------------------------------- if // =~ l All Rights Reserved. value = item.price Sound.play_ok if IT_DETAIL::Sound Window_Baseのメソッドを確認するのにはスクリプトエディタを見なきゃいけなくて、Windowのメソッドを見たい時はヘルプを見て……なのでめんどくさい。透明度を変えるメソッドがどこで定義されているのかわからなくて暫く探しまわってしまった。見つけたと思ったらウィンドウ自体の不透明度のメソッドとウィンドウの背景の不透明度のメソッドがあってわけわからなくなったけどそれはまた別の話。, 3.装備画面からの呼び出し true #-------------------------------------------------------------------------- # ƒJ[ƒ\ƒ‹ŒÅ’胂[ƒh‚É‚¨‚¯‚éÚ×à–¾ƒEƒBƒ“ƒhƒE‚Ì•\ަI—¹(Œˆ’èƒL[”Å) @text = text if text != @text #-------------------------------------------------------------------------- process_handling_item_detail_window end @item_window.item_detail_window = @item_detail_window if @last_window 画面の解像度を変更していても使えるように、ウィンドウサイズを取得しようと思ったんだけど……? elsif f どうやらRGSS3ではクラスの細分化が進んでいるっぽい。RGSS2ではアイテム画面のウィンドウはWindow_Baseを継承してるけど、RGSS3ではWindow_Baseを継承したWindow_Selectableを継承している。汎用選択ウィンドウのクラスが新しく出来ているということだ。なるほどなあ。, もっと大きな違いはボタンの入力にあった。RGSS2では毎フレームボタンの入力処理があったかどうかチェックしているけど、RGSS3だとハンドラを設定して入力処理の判定はそれに任せている。そのほうがわかりやすいので良いと思う。 alias process_cancel_item_detail_window process_cancel if IT_DETAIL::Value # ŠJŽn #===== # RGSS3 アイテム詳細説明 Ver2.00 by 星潟 #----- # このスクリプトを導入することで # アイテム画面や装備画面でアイテムにカーソルを合わせた状態で # 特定のキーを押した際、アイテム詳細説明ウィンドウを # 開く事が出来るようになります。 #-------------------------------------------------------------------------- end def start (self.active && Input.trigger? @item_detail_window.show end # ƒwƒ‹ƒvƒEƒBƒ“ƒhƒEXVƒƒ\ƒbƒh‚̌Ăяo‚µ Sound.play_ok if IT_DETAIL::Sound By following users and tags, you can catch up information on technical fields that you are interested in as a whole, By "stocking" the articles you like, you can search right away. とりあえず未完のダンボールさんの詳しいアイテム説明ウィンドウ表示をそのままスクリプトエディタにぺたりしてみる。うん動かない(当たり前)。 見てみたら継承しているクラスから違う。そりゃ動かないわ。 # ŠJŽn draw_text_ex(4, line_height, @text) end end attr_accessor :item_detail_window return activate @item_window.item_detail_window = @item_detail_window true return if ta.empty? def initialize 見てみたら継承しているクラスから違う。そりゃ動かないわ。 text.gsub! Copyright (c) rgss3 リファレンスwiki. #-------------------------------------------------------------------------- Sound.play_ok if IT_DETAIL::Sound class Window_Selectable < Window_Base どうもBitmap.draw_textは改行文字も無視してテキスト描画をしてしまうらしい。なので、説明文を\r\nでsplitして、出来た配列を1つずつ見ていき中身が\r\nではないものをdraw_textした。Windows系のことしか考えてないけど、VXAceってWindows以外で動かないし別にいいよねっ! return if process_detail_window class Scene_MenuBase < Scene_Base a #-------------------------------------------------------------------------- end if IT_DETAIL::Freeze #-------------------------------------------------------------------------- # Ú×à–¾ƒEƒBƒ“ƒhƒE‚Ì•\ަI—¹ (IT_DETAIL::Key)) #-------------------------------------------------------------------------- 以下の設定では耐久度によるアイテムの性能を求めるための式を設定します. evalで評価されるためRuby # ƒLƒƒƒ“ƒZƒ‹‚̏ꍇ def detail_description @buy_window.item_detail_window = @item_detail_window if IT_DETAIL::Buy def ok_item_detail_window #-------------------------------------------------------------------------- #-------------------------------------------------------------------------- end ta = item.detail_description フォートナイト(Fortnite)の武器一覧です。各武器種の各レアリティごとの性能をまとめているので、武器を使う際の参考にしてみてください。 (IT_DETAIL::Key)) end 例えば、Window_Baseクラスはスクリプトで定義されてるのに、その継承元のWindowクラスは組み込みになっている。何故だ。 @item_detail_window.hide end call_update_help_item_detail_window self.back_opacity = IT_DETAIL::BOP end_item_detail_window(true) return unless item true return activate end. 元々のスクリプトのメモの描画しているところではどうなってるのか見てみたら、\nをヌル文字で置換して、ヌル文字があったら次の行の描画を開始するってしてるっぽい。, そうそう、メモの描画はほとんどそのまま使えたのでそのまま使っている。 # ƒAƒCƒeƒ€‚ÌÚ×à–¾ if f && IT_DETAIL::OKClose alias start_detail_window start #-------------------------------------------------------------------------- f = end_detail_window draw_text(4, 0, 400, line_height, IT_DETAIL::Word2, 2) end def end_item_detail_window(flag) この処理だと、説明文が一行でもニ行でもレイアウトが崩れることが無いのが良い。 a.push(l) #-------------------------------------------------------------------------- 残りは、rgss3内のユーザー設定です。 【定数の詳細説明】 必ず設定しなければならないのは、次の5つです。 定数(ワールドマップ使用可能マップid) 定数(ワールドマップ画像) 定数(ワールドマップ使用可能判定スイッチ + α) #-------------------------------------------------------------------------- 水平線入れたほうがオシャレかなって思って入れてみた。ステータス画面の描画から引っ張ってきただけ。, 以下コード。なんかヤバいバグがあっても元のスクリプト作者では無くこちらまでお願いします。, VXAce用のスクリプト作ったり、作る上でハマったところを書き留めたり 残りは、rgss3内のユーザー設定です。 【定数の詳細説明】 必ず設定しなければならないのは、次の5つです。 定数(ワールドマップ使用可能マップid) 定数(ワールドマップ画像) 定数(ワールドマップ使用可能判定スイッチ + α) というわけでここは保留。, これは元のスクリプトからの仕様。実装してみようと思ったけどまだBitmapクラスの全貌がわからないので……。でも\C[]とか\V[]が使えるなら別段困らないよね?, とりあえず未完のダンボールさんの詳しいアイテム説明ウィンドウ表示をそのままスクリプトエディタにぺたりしてみる。うん動かない(当たり前)。 # ’ʏí‚̃AƒCƒeƒ€‚Ìà–¾•`ŽÊ end set_item(item) #-------------------------------------------------------------------------- @item_detail_window.hide ウェイトを置こうが開いた瞬間に落ちる。ただ、この時ウェイトを大きくしてみたらウィンドウだけ描画されていて中身が描画されていない(=@big_item_window.showは発火しているけどset_big_itemは発火していない?)ことがわかったのでそれがヒントなのかな。set_big_itemのほうを先に置いてるんだけど……。 alias call_update_help_item_detail_window call_update_help def create_detail_window #-------------------------------------------------------------------------- alias process_ok_item_detail_window process_ok @item_detail_window.activate lh = line_height class Scene_Shop < Scene_MenuBase ウィンドウをactivateさせる前に置こうが後に置こうが開いた瞬間に閉じる。 @item_detail_window.set_handler(:ok,method(:ok_item_detail_window)) rgss2とrgss3の違い. end #-------------------------------------------------------------------------- rgss3_グラフィックセレクタ; rgss3_メッセージ制御文字拡張; rgss3_アイテム選択拡張; rgss3_スキル習得システム; rgss3_アイテム詳細表示; rgss3_ステータス表示拡張; rgss3_実績メダル; rgss3_実績メダルex; rgss3_お別れボタン; rgss3_先頭並び替え不可; アイテム系スクリプト end #==============================================================================, #------------------------------------------------------------------------------, #  アイテム画面や装備画面でShiftを押すと詳しいアイテム説明ウィンドウを表示する, # Cache.picture("画像名") x=画像表示のx座標 y=画像表示のy座標, #////////////////////////////////////////////////////////////////, #--------------------------------------------------------------------------, # align : アラインメント (0..左揃え、1..中央揃え、2..右揃え), #self.contents.draw_text(x, y+line_height,SCR_X-x,line_height,@item.description,align), #text.gsub! attr_accessor :last_window start_detail_window @last_window.activate end #-------------------------------------------------------------------------- end w = @item_detail_window.last_window end #-------------------------------------------------------------------------- class Scene_Equip < Scene_MenuBase if item.price > 0 else self.z = IT_DETAIL::Z end def process_detail_window return false if ! alias process_handling_item_detail_window process_handling end else http://hikimoki.sakura.ne.jp/rgss3/script_map.html, http://hikimoki.sakura.ne.jp/rgss3/script_event.html, http://hikimoki.sakura.ne.jp/rgss3/script_battle.html, http://hikimoki.sakura.ne.jp/rgss3/script_menu.html, http://hikimoki.sakura.ne.jp/rgss3/script_item.html, http://hikimoki.sakura.ne.jp/rgss3/script_skill.html, http://hikimoki.sakura.ne.jp/rgss3/script_state.html, http://hikimoki.sakura.ne.jp/rgss3/script_neta.html, http://hikimoki.sakura.ne.jp/rgss3/script_plugin.html. #-------------------------------------------------------------------------- @item_detail_window.refresh(item) # ‰Šú‰» #初期化 change_color(text_color(IT_DETAIL::V_C1)) w.activate # ƒNƒŠƒA #-------------------------------------------------------------------------- #-------------------------------------------------------------------------- return if !item draw_item_name(item, 4, 0, enabled = true, width = 512) # ƒŠƒtƒŒƒbƒVƒ… def set_text(text) (/, ) { "\\" } #-------------------------------------------------------------------------- @item_detail_window = Window_Item_Detail.new #-------------------------------------------------------------------------- Input.update class Scene_Item < Scene_ItemBase text.gsub! @item_detail_window.last_window = self #-------------------------------------------------------------------------- alias start_detail_window start Input.update end # Ú×à–¾ƒEƒBƒ“ƒhƒE—p‚̐؂è‘Ö‚¦ w.process_cancel if !IT_DETAIL::CancelClose && w.cancel_enabled? #-------------------------------------------------------------------------- #-------------------------------------------------------------------------- # Œˆ’è‚̏ꍇ (/Cache.picture\(\"([A-Za-z0-9]*)\"\)/i,""), /i) { $game_variables[$1.to_i] } MV?知らん. @slot_window.item_detail_window = @item_detail_window おかげでウィンドウのクラス定義は流用効かなくて自分で書くはめになったけど、コード量は少なくなったのでよかった。自作ウィンドウ作る度に毎フレームの更新処理をいちいち書くのはあまりスマートじゃないし。, 2. どこまでがスクリプトで定義されているのかわからない return false if ! hide hide # Ú×à–¾ƒEƒBƒ“ƒhƒE‚̍쐬 end_item_detail_window(false) def process_handling end set_handlerを置く場所が悪いのかな~とか思って色々試してみた(ウィンドウを開く時に置いてみるとか)したけどやっぱり開いた瞬間に閉じる。 a = [] とりあえず、未完のダンボールさんの詳しいアイテム説明ウィンドウ表示スクリプトを参考にしつつ、VXAce向けアイテム表示ウィンドウのかんせーい, 作っているうちに色々ハマったけど、それはまた今度書く。多分。 書きました。 change_color(text_color(IT_DETAIL::V_C2)) create_detail_window #-------------------------------------------------------------------------- if @item_detail_window && @item_detail_window.visible 結局見つからなかったので、一番最初に画面サイズの定義を置いておくことにした。自分で画面サイズ変えてる人はそこを変えればいいと思う。, 元のスクリプトから改善したところとか。 #-------------------------------------------------------------------------- #-------------------------------------------------------------------------- ハマったこととか書きつつ上のふたつが完全に愚痴でした。反省します。というわけで本当にハマったところ。 set_text(item ? #-------------------------------------------------------------------------- (/, /i) { $game_actors[$1.to_i].name } end #-------------------------------------------------------------------------- w.process_ok if !IT_DETAIL::OKClose && w.ok_enabled? process_ok_item_detail_window end deactivate Why not register and get more from Qiita? change_color(normal_color) ぶち当たった問題点は、スロットを選んでいるところからの呼び出しとスロットを選択した後に装備を選んでいるところからの呼び出しはどう見分ける?というところ。これは、スロットのウィンドウのハンドラに設定したメソッドと装備選択ウィンドウのハンドラに設定したメソッドを違うものにして、引数を変えつつアイテム図鑑ウィンドウを表示する関数を呼び出すことによって出来た。関数内でその引数をインスタンス変数に入れてやれば、アイテム図鑑ウィンドウを隠す関数内からでも参照できるから、activateするウィンドウの決定にそれを使ってやる。できたー。, 4.画面サイズの取得 end #-------------------------------------------------------------------------- #-------------------------------------------------------------------------- c, # okやcancelの時も再定義して、アイテムが選べない状態でも選べるように、音が鳴らないようにしている, #----------------------------------------------------------------------, #@big_item_window.set_handler(:shift, method(:hide_big_item_window)), #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~, # 当スクリプトは、未完のダンボール(http://www14.atpages.jp/mikadan/)様の, you can read useful information later efficiently.

Ãラクエ10 Ãレス耐性 Ãトマス 6, Âンビ ş地 Âプリ 5, Ãイク Ãラッシング ǁ油 7, Wps Spreadsheets ȡ間 15, Âノーボード 2点セット Ãディース 12, Premiere Pro Ãディアオフライン ƛき出し 4, Âオリア Âプリ ɀ販 6, Âコナッツシュガー Ťさじ1 Âロリー 5, 80 Ãォクシー Ãールランプ Ʌ線 ś 7, Âャニーズ ļ員証 Ãザイン ĸ覧 45,

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.