@item_detail_window.set_handler(:cancel,method(:cancel_item_detail_window)) # J[\Åè[hɨ¯éÚ×à¾EBhEÌ\¦I¹ def start end end start_detail_window def set_item(item) @detail_description ||= create_detail_description return if !IT_DETAIL::Freeze # Ú×à¾EBhEpÌØèÖ¦ end end} @item_detail_window.refresh(item) 1.元の説明文を改行表示する else def clear @sell_window.item_detail_window = @item_detail_window if IT_DETAIL::Sell end # nhO end éêÌuñiv̶ñðÝèB # Jn contents.clear start_detail_window # ACeÌÚ×à¾`Ê 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ɨ¯éÚ×à¾EBhEÌ\¦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 # Jn #===== # RGSS3 アイテム詳細説明 Ver2.00 by 星潟 #----- # このスクリプトを導入することで # アイテム画面や装備画面でアイテムにカーソルを合わせた状態で # 特定のキーを押した際、アイテム詳細説明ウィンドウを # 開く事が出来るようになります。 #-------------------------------------------------------------------------- end def start (self.active && Input.trigger? @item_detail_window.show end # wvEBhEXV\bhÌÄÑ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. とりあえず未完のダンボールさんの詳しいアイテム説明ウィンドウ表示をそのままスクリプトエディタにぺたりしてみる。うん動かない(当たり前)。 見てみたら継承しているクラスから違う。そりゃ動かないわ。 # Jn 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 #-------------------------------------------------------------------------- # Ú×à¾EBhEÌ\¦I¹ (IT_DETAIL::Key)) #-------------------------------------------------------------------------- 以下の設定では耐久度によるアイテムの性能を求めるための式を設定します. evalで評価されるためRuby # LZÌê 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をヌル文字で置換して、ヌル文字があったら次の行の描画を開始するってしてるっぽい。, そうそう、メモの描画はほとんどそのまま使えたのでそのまま使っている。 # ACeÌÚ×ྠ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[]が使えるなら別段困らないよね?, とりあえず未完のダンボールさんの詳しいアイテム説明ウィンドウ表示をそのままスクリプトエディタにぺたりしてみる。うん動かない(当たり前)。 # ÊíÌACeÌà¾`Ê 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 # NA #-------------------------------------------------------------------------- #-------------------------------------------------------------------------- return if !item draw_item_name(item, 4, 0, enabled = true, width = 512) # tbV 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 # Ú×à¾EBhEpÌØèÖ¦ 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 # Ú×à¾EBhEÌì¬ 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,
