Project1

标题: 這個 道具獲得提示 無法跟 沉影 的道具腳本共用 [打印本页]

作者: 御之嵐    时间: 2010-12-14 18:27
标题: 這個 道具獲得提示 無法跟 沉影 的道具腳本共用
本帖最后由 御之嵐 于 2010-12-14 18:29 编辑

這個是

獲得道具的顯示
  1. #==============================================================================
  2. # ★RGSS2
  3. # STR20_入手インフォメーション v1.2 09/03/17
  4. #
  5. # ◇必須スクリプト STEMB_マップエフェクトベース
  6. #
  7. # ・マップ画面にアイテム入手・スキル修得などの際に表示するインフォです。
  8. # ・表示内容は 任意指定の名目+アイテム名+ヘルプメッセージとなります。
  9. # ・アイテムのメモ欄に info[/任意の文字列/] と記述することで
  10. #  通常とは別の説明文をインフォに表示させることができます。(v1.1)
  11. # [仕様]インフォが表示されている間も移動できます。
  12. #    移動させたくない場合はウェイトを入れてください。
  13. #------------------------------------------------------------------------------
  14. #
  15. # 更新履歴
  16. # ◇1.1→1.2
  17. # メッセージウィンドウより上に表示されてしまうのを修正(Z座標を変更した)
  18. # ◇1.0→1.1
  19. # 通常とは別の説明文をインフォに表示できるようになった
  20. #
  21. #==============================================================================

  22. #==============================================================================
  23. # ★RGSS2
  24. # STEMB_マップエフェクトベース v0.8
  25. #
  26. # ・エフェクト表示のための配列定義、フレーム更新、ビューポート関連付け
  27. #
  28. #==============================================================================
  29. # ■ Game_Temp
  30. #==============================================================================
  31. class Game_Temp
  32.   #--------------------------------------------------------------------------
  33.   # ● 公開インスタンス変数
  34.   #--------------------------------------------------------------------------
  35.   attr_accessor :streffect
  36.   #--------------------------------------------------------------------------
  37.   # ● オブジェクト初期化
  38.   #--------------------------------------------------------------------------
  39.   alias initialize_stref initialize
  40.   def initialize
  41.     initialize_stref
  42.     @streffect = []
  43.   end
  44. end
  45. #==============================================================================
  46. # ■ Spriteset_Map
  47. #==============================================================================
  48. class Spriteset_Map
  49.   #--------------------------------------------------------------------------
  50.   # ● エフェクトの作成
  51.   #--------------------------------------------------------------------------
  52.   def create_streffect
  53.     $game_temp.streffect = []
  54.   end
  55.   #--------------------------------------------------------------------------
  56.   # ● エフェクトの解放
  57.   #--------------------------------------------------------------------------
  58.   def dispose_streffect
  59.     for i in 0...$game_temp.streffect.size
  60.       $game_temp.streffect[i].dispose if $game_temp.streffect[i] != nil
  61.     end
  62.     $game_temp.streffect = []
  63.   end
  64.   #--------------------------------------------------------------------------
  65.   # ● エフェクトの更新
  66.   #--------------------------------------------------------------------------
  67.   def update_streffect
  68.     for i in 0...$game_temp.streffect.size
  69.       if $game_temp.streffect[i] != nil
  70.         $game_temp.streffect[i].viewport = @viewport1
  71.         $game_temp.streffect[i].update
  72.         $game_temp.streffect.delete_at(i) if $game_temp.streffect[i].disposed?
  73.       end
  74.     end
  75.   end
  76.   #--------------------------------------------------------------------------
  77.   # ★ エイリアス
  78.   #--------------------------------------------------------------------------
  79.   alias create_parallax_stref create_parallax
  80.   def create_parallax
  81.     create_parallax_stref
  82.     create_streffect
  83.   end
  84.   alias dispose_stref dispose
  85.   def dispose
  86.     dispose_streffect
  87.     dispose_stref
  88.   end
  89.   alias update_stref update
  90.   def update
  91.     update_stref
  92.     update_streffect
  93.   end
  94. end

  95. #==============================================================================
  96. # ■ Window_Getinfo
  97. #==============================================================================

  98. class Window_Getinfo < Window_Base
  99.   # 設定箇所
  100.   G_ICON  = 144   # ゴールド入手インフォに使用するアイコンインデックス
  101.   Y_TYPE  = 1     # Y座標の位置(0 = 上基準 1 = 下基準)
  102.   Z       = 188   # Z座標(問題が起きない限り変更しないでください)
  103.   TIME    = 180   # インフォ表示時間(1/60sec)
  104.   OPACITY = 32    # 透明度変化スピード
  105.   B_COLOR = Color.new(0, 0, 0, 160)        # インフォバックの色
  106.   INFO_SE = RPG::SE.new("Chime2", 80, 100) # インフォ表示時の効果音
  107.   STR20W  = "info"# メモ設定ワード(※なるべく変更しないでください)
  108. end
  109. #
  110. if false
  111. # ★以下をコマンドのスクリプト等に貼り付けてテキスト表示----------------★

  112. # 種類 / 0=アイテム 1=武器 2=防具 3=スキル 4=金
  113. type = 0
  114. # ID  / 金の場合は金額を入力
  115. id   = 1
  116. # 入手テキスト / 金の場合無効
  117. text = "道具入手!"
  118. #
  119. e = $game_temp.streffect
  120. e.push(Window_Getinfo.new(id, type, text))

  121. # ★ここまで------------------------------------------------------------★
  122. #
  123. # ◇スキル修得時などにアクター名を直接打ち込むと
  124. #  アクターの名前が変えられるゲームなどで問題が生じます。
  125. #  なので、以下のようにtext部分を改造するといいかもしれません。
  126. #
  127. # 指定IDのアクターの名前取得
  128. t = $game_actors[1].name
  129. text = t + " / 學得技能!"
  130. #
  131. end
  132. #==============================================================================
  133. # ■ Window_Getinfo
  134. #==============================================================================
  135. class Window_Getinfo < Window_Base
  136.   #--------------------------------------------------------------------------
  137.   # ● オブジェクト初期化
  138.   #     actor : アクター
  139.   #--------------------------------------------------------------------------
  140.   def initialize(id, type, text = "")
  141.     super(-16, 0, 544 + 32, 38 + 32)
  142.     self.z = Z
  143.     self.contents_opacity = 0
  144.     self.back_opacity = 0
  145.     self.opacity = 0
  146.     @count = 0
  147.     @i = $game_temp.getinfo_size.index(nil)
  148.     @i = $game_temp.getinfo_size.size if (@i == nil)
  149.     if Y_TYPE == 0
  150.       self.y = -14 + (@i * 40)
  151.     else
  152.       self.y = 416 - 58 - (@i * 40)
  153.     end
  154.     $game_temp.getinfo_size[@i] = true
  155.     refresh(id, type, text)
  156.     INFO_SE.play
  157.   end
  158.   #--------------------------------------------------------------------------
  159.   # ● 解放
  160.   #--------------------------------------------------------------------------
  161.   def dispose
  162.     $game_temp.getinfo_size[@i] = nil
  163.     super
  164.   end
  165.   #--------------------------------------------------------------------------
  166.   # ● フレーム更新
  167.   #--------------------------------------------------------------------------
  168.   def update
  169.     self.viewport = nil
  170.     @count += 1
  171.     unless @count >= TIME
  172.       self.contents_opacity += OPACITY
  173.     else
  174.       if Y_TYPE == 0
  175.         self.y -= 1
  176.       else
  177.         self.y += 1
  178.       end
  179.       self.contents_opacity -= OPACITY
  180.       dispose if self.contents_opacity == 0
  181.     end
  182.   end
  183.   #--------------------------------------------------------------------------
  184.   # ● リフレッシュ
  185.   #--------------------------------------------------------------------------
  186.   def refresh(id, type, text = "")
  187.     case type
  188.     when 0 ; data = $data_items[id]
  189.     when 1 ; data = $data_weapons[id]
  190.     when 2 ; data = $data_armors[id]
  191.     when 3 ; data = $data_skills[id]
  192.     when 4 ; data = id
  193.     else   ; p "typeの値がおかしいです><;"
  194.     end
  195.     c = B_COLOR
  196.     self.contents.fill_rect(0, 14, 544, 24, c)
  197.     if type < 4
  198.       draw_item_name(data, 4, 14)
  199.       self.contents.draw_text(204, 14, 340, WLH, description(data))
  200.     else
  201.       draw_icon(G_ICON, 4, 14)
  202.       self.contents.draw_text(28, 14, 176, WLH, data.to_s + Vocab::gold)
  203.     end
  204.     self.contents.font.size = 14
  205.     w = self.contents.text_size(text).width
  206.     self.contents.fill_rect(0, 0, w + 4, 14, c)
  207.     self.contents.draw_text_f(4, 0, 340, 14, text)
  208.     Graphics.frame_reset
  209.   end
  210.   #--------------------------------------------------------------------------
  211.   # ● 解説文取得
  212.   #--------------------------------------------------------------------------
  213.   def description(data)
  214.     return $1.gsub!(/[\t\n\r\f]*/,"") if (data.note[/#{STR20W}\[\/(.*)\/\]/im]) != nil
  215.     return data.description
  216.   end
  217. end
  218. #==============================================================================
  219. # ■ Game_Temp
  220. #==============================================================================
  221. class Game_Temp
  222.   #--------------------------------------------------------------------------
  223.   # ● 公開インスタンス変数
  224.   #--------------------------------------------------------------------------
  225.   attr_accessor :getinfo_size
  226.   #--------------------------------------------------------------------------
  227.   # ● オブジェクト初期化
  228.   #--------------------------------------------------------------------------
  229.   alias initialize_str20 initialize
  230.   def initialize
  231.     initialize_str20
  232.     @getinfo_size = []
  233.   end
  234. end
  235. #==============================================================================
  236. # ■ Bitmap
  237. #==============================================================================
  238. class Bitmap
  239.   #--------------------------------------------------------------------------
  240.   # ● 文字縁取り描画
  241.   #--------------------------------------------------------------------------
  242.   def draw_text_f(x, y, width, height, str, align = 0, color = Color.new(64,32,128))
  243.     shadow = self.font.shadow
  244.     b_color = self.font.color.dup
  245.     font.shadow = false
  246.     font.color = color
  247.     draw_text(x + 1, y, width, height, str, align)
  248.     draw_text(x - 1, y, width, height, str, align)
  249.     draw_text(x, y + 1, width, height, str, align)
  250.     draw_text(x, y - 1, width, height, str, align)
  251.     font.color = b_color
  252.     draw_text(x, y, width, height, str, align)
  253.     font.shadow = shadow
  254.   end
  255.   def draw_text_f_rect(r, str, align = 0, color = Color.new(64,32,128))
  256.     draw_text_f(r.x, r.y, r.width, r.height, str, align = 0, color)
  257.   end
  258. end
复制代码
必須在事件中插入
  1. # type種類 / 0=道具 1=武器 2=防具 3=技能 4=錢
  2. type =

  3. # ID物品編號  / 如果是金錢的話直接輸入金錢數量
  4. id   =

  5. # text顯示文字 / 提示上面的紫色文字
  6. text = "獲得金錢!"     #獲得道具! or  習得技能!  or  獲得金錢!

  7. #
  8. e = $game_temp.streffect
  9. e.push(Window_Getinfo.new(id, type, text))
复制代码
才會顯示


但是無法跟    沉影 大大

的道具腳本配合

例如
武器升級
隨機屬性
打洞鑲嵌

這3個腳本  測試之後都不能用

會發生問題

問題會出在
我的道具獲得顯示  裡面的

219行
  1. return $1.gsub!(/[\t\n\r\f]*/,"") if (data.note[/#{STR20W}\[\/(.*)\/\]/im]) != nil
复制代码
這段裡面


請問 一下

要怎麼改才能讓他們相容?!

我比較偏好這種的道具顯示說...

作者: shua1125    时间: 2010-12-15 06:04
本帖最后由 shua1125 于 2010-12-15 06:21 编辑

先试试关闭一个脚本后另一个是否能运行,来判定是不是真的冲突。
如果是冲突,其实可以换一个道具得失提示的脚本,这类脚本还是见过很多的……
实在不想换就恕我无能了,我是脚本盲,毕竟换脚本是最快捷的……
如果比较着急于制作进度,可以先用别的道具提示脚本暂时替换一下,等到这个脚本的问题解决之后再换回来。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1