查看: 5099|回复: 3

[已经解决] 如何使用这个脚本

[复制链接]

炎

梦石
0
星屑
98
在线时间
1617 小时
注册时间
2013-8-15
回帖
4322
发表于 2014-9-18 17:39:23 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 永燃的狂炎 于 2014-9-18 18:08 编辑

有胆来点我啊
  1. #==============================================================================
  2. # ■ VXAce-RGSS3-41 簡易メッセージ [Ver.1.1.0]            by Claimh
  3. #------------------------------------------------------------------------------
  4. #   マップ上に簡易メッセージを表示します。
  5. #------------------------------------------------------------------------------
  6. # ● 簡易メッセージ表示実行(push型)
  7. # show_msg(type, msg, num)
  8. #   [argument]
  9. #    type  :項目番号
  10. #               0  .. msgの内容を表示(制御文字も使用可能)
  11. #               1  .. アイテムを入手(msgにアイテムID、numに個数を指定)
  12. #               2  .. 武器を入手(msgに武器ID、numに個数を指定)
  13. #               3  .. 防具を入手(msgに防具ID、numに個数を指定)
  14. #               4  .. スキルを習得(msgにスキルID, numにアクターIDを指定)
  15. #               5  .. レベルアップ(msgにアクターIDを指定)
  16. #               6  .. 加入(msgにアクターIDを指定)
  17. #               7  .. 離脱(msgにアクターIDを指定)
  18. #               8  .. お金を入手(msgに金額を入れる)
  19. #               20 .. クエスト開始(msgにIDを指定) ※「クエストシステム」必須
  20. #               21 .. クエスト完了(msgにIDを指定) ※「クエストシステム」必須
  21. #               22 .. 用語登録(msgにカテゴリ、numに用語IDを指定)※「用語辞典」必須
  22. #    msg   :表示文字、ID情報(アイテム等)など
  23. #    num   :個数(省略可能)
  24. #   [note]
  25. #    画面にいっぱいまで表示されている場合、表示が消えるまで遅延します。
  26. #------------------------------------------------------------------------------
  27. # ● メッセージ表示の強制停止(全停止)
  28. # stop_msg
  29. #   ※強制停止中は解除されるまで簡易メッセージ表示を行いません。
  30. #     強制停止中にshow_msgが実行された場合はrestart_msg実行まで待たされます
  31. #------------------------------------------------------------------------------
  32. # ● メッセージ表示の強制停止解除
  33. # restart_msg
  34. #------------------------------------------------------------------------------
  35. # ● 簡易メッセージ表示実行(refresh型)
  36. # draw_msg(type, msg, num)  
  37. #   [argument]  push型と同じ
  38. #   [note]      表示中メッセージを消去してから表示します。
  39. #------------------------------------------------------------------------------
  40. # ● 表示状態取得
  41. # msg_state
  42. #   [return]    true : 表示中, false : 表示なし
  43. #   [exsample]  draw_msg(type, msg, num) unless msg_state
  44. #==============================================================================

  45. module ShtMsg
  46.   # スキンタイプ
  47.   #    0 .. ウィンドウ
  48.   #    1 .. 半透明ブラックボックス
  49.   #    2 .. ピクチャ
  50.   SKIN = 1
  51.   # ウィンドウ背景の不透明度
  52.   OPACITY = 160
  53.   # ピクチャファイル(Graphics/System)
  54.   PICT = "msg_skin"

  55.   # メッセージ矩形サイズ(x,yは未参照)
  56.   RECT = Rect.new(0, 0, 160, 20)
  57.   # 表示矩形(x,widthは未参照。yは最初のy位置, heightは表示する範囲)
  58.   VIEW = Rect.new(0, Graphics.height * 2 / 3, 0, Graphics.height / 3) # 下のほう
  59. #~   VIEW = Rect.new(0, 0, 0, Graphics.height / 3)  # 上のほう
  60.   # 表示位置(高さ)のずらし幅
  61.   OFST = 0
  62.   
  63.   # スライドイン方向(true:左端から / false:右端から)
  64.   SLD_DIR = false
  65.   # スライド時間
  66.   SLD_FRM = 8
  67.   # 表示ウェイト時間
  68.   WAIT = 100

  69.   # 固有名の着色(色index)   0..normal_color
  70.   COLOR = 2
  71.   # フォントサイズ
  72.   FSZ = 14
  73.   # 文字描画開始X位置
  74.   STX = 4

  75.   # SE音(鳴らさない場合はnilにする)
  76.   SE = RPG::SE.new("Chime2")

  77.   # メッセージ表示と同時に本処理(アイテム入手等)を実行する
  78.   EXE = false
  79. end



  80. #==============================================================================
  81. # ■ Game_Interpreter
  82. #==============================================================================
  83. class Game_Interpreter
  84.   #--------------------------------------------------------------------------
  85.   # ● 簡易メッセージ表示(push型)
  86.   #     type  : 項目番号
  87.   #     msg   : メッセージ
  88.   #     num   : 個数(省略可能)
  89.   #--------------------------------------------------------------------------
  90.   def show_msg(type, msg, num=0)
  91.     if SceneManager.scene_is?(Scene_Map)
  92.       SceneManager.scene.show_msg(type, msg, num)
  93.     end
  94.   end
  95.   #--------------------------------------------------------------------------
  96.   # ● 簡易メッセージ表示(refresh型)
  97.   #     type  : 項目番号
  98.   #     msg   : メッセージ
  99.   #     num   : 個数(省略可能)
  100.   #--------------------------------------------------------------------------
  101.   def draw_msg(type, msg, num=0)
  102.     if SceneManager.scene_is?(Scene_Map)
  103.       SceneManager.scene.draw_msg(type, msg, num)
  104.     end
  105.   end
  106.   #--------------------------------------------------------------------------
  107.   # ● 簡易メッセージの強制停止
  108.   #--------------------------------------------------------------------------
  109.   def stop_msg
  110.     if SceneManager.scene_is?(Scene_Map)
  111.       SceneManager.scene.stop_msg
  112.     end
  113.   end
  114.   #--------------------------------------------------------------------------
  115.   # ● 簡易メッセージの強制停止解除
  116.   #--------------------------------------------------------------------------
  117.   def restart_msg
  118.     if SceneManager.scene_is?(Scene_Map)
  119.       SceneManager.scene.restart
  120.     end
  121.   end
  122.   #--------------------------------------------------------------------------
  123.   # ● 簡易メッセージの状態取得
  124.   #--------------------------------------------------------------------------
  125.   def msg_state
  126.     if SceneManager.scene_is?(Scene_Map)
  127.       return SceneManager.scene.msg_state
  128.     end
  129.     false
  130.   end
  131. end


  132. #==============================================================================
  133. # ■ ShtMsg::Messenger
  134. #==============================================================================
  135. class ShtMsg::Messenger
  136.   #--------------------------------------------------------------------------
  137.   # ● オブジェクト初期化
  138.   #--------------------------------------------------------------------------
  139.   def initialize(type, msg, num)
  140.     @type = type; @msg = msg; @num = num
  141.   end
  142.   #--------------------------------------------------------------------------
  143.   # ● 簡易メッセージ表示内容
  144.   #--------------------------------------------------------------------------
  145.   def text
  146.     exe if ShtMsg::EXE
  147.     c = ShtMsg::COLOR
  148.     n = @num > 1 ? "#{@num}個" : ""
  149.     case @type
  150.     when 0;  return @msg
  151.     when 1;  return "\\C[#{c}]#{$data_items[@msg].name}\\C[0]を#{n}入手"
  152.     when 2;  return "\\C[#{c}]#{$data_weapons[@msg].name}\\C[0]を#{n}入手"
  153.     when 3;  return "\\C[#{c}]#{$data_armors[@msg].name}\\C[0]を#{n}入手"
  154.     when 4;  return "\\C[#{c}]#{$data_skills[@msg].name}\\C[0]を習得"
  155.     when 5;  return "\\C[#{c}]#{$game_actors[@msg].name}\\C[0]がレベルアップ"
  156.     when 6;  return "\\C[#{c}]#{$game_actors[@msg].name}\\C[0]が仲間になった"
  157.     when 7;  return "\\C[#{c}]#{$game_actors[@msg].name}\\C[0]が離脱した…"
  158.     when 8;  return "\\C[#{c}]#{@msg}#{Vocab::currency_unit}\\C[0]入手"
  159.     when 20; return "『\\C[#{c}]#{$game_system.quest[@msg].name}\\C[0]』開始"
  160.     when 21; return "『\\C[#{c}]#{$game_system.quest[@msg].name}\\C[0]』クリア"
  161.     when 22; return "新語『\\C[#{c}]#{$game_system.dictionary[@msg][@num].name}\\C[0]』"
  162.     end
  163.     return "type error<#{@type},#{@msg}>"
  164.   end
  165.   #--------------------------------------------------------------------------
  166.   # ● 本処理実行
  167.   #--------------------------------------------------------------------------
  168.   def exe
  169.     case @type
  170.     when 1;  $game_party.gain_item($data_items[@msg], @num) if @num > 0
  171.     when 2;  $game_party.gain_item($data_weapons[@msg], @num) if @num > 0
  172.     when 3;  $game_party.gain_item($data_armors[@msg], @num) if @num > 0
  173.     when 4;  $game_actors[@num].learn_skill(@msg) if @num > 0
  174.     when 5;  $game_actors[@msg].level_up
  175.     when 6;  $game_party.add_actor(@msg)
  176.     when 7;  $game_party.remove_actor(@msg)
  177.     when 8;  $game_party.gain_gold(@msg)
  178.     when 20; $game_system.quest[@msg].quest_start
  179.     when 21; $game_system.quest[@msg].quest_clear
  180.     when 22; $game_system.dictionary[@msg][@num].show_flg = true if @num > 0
  181.     end
  182.   end
  183. end

  184. #==============================================================================
  185. # ■ Sprite_ShrtMsgrBack
  186. #==============================================================================
  187. class Sprite_ShrtMsgrBack < Sprite
  188.   #--------------------------------------------------------------------------
  189.   # ● オブジェクト初期化
  190.   #--------------------------------------------------------------------------
  191.   def initialize(x, y, z, bitmap)
  192.     super(nil)
  193.     self.bitmap = bitmap
  194.     self.x = x; self.y = y; self.z = z
  195.   end
  196. end

  197. #==============================================================================
  198. # ■ Window_ShrtMsgr
  199. #==============================================================================
  200. class Window_ShrtMsgr < Window_Base
  201.   #--------------------------------------------------------------------------
  202.   # ● オブジェクト初期化
  203.   #--------------------------------------------------------------------------
  204.   def initialize(msg, x, y, back)
  205.     @count = 0
  206.     @phase = 0
  207.     super(x, y, ShtMsg::RECT.width, fitting_height(1))
  208.     self.opacity = 0
  209.     self.back_opacity = ShtMsg::OPACITY
  210.     @sprite = Sprite_ShrtMsgrBack.new(x, y+4, z-1, back) if ShtMsg::SKIN != 0
  211.     refresh(msg)
  212.   end
  213.   #--------------------------------------------------------------------------
  214.   # ● 解放
  215.   #--------------------------------------------------------------------------
  216.   def dispose
  217.     @sprite.dispose if ShtMsg::SKIN != 0
  218.     super
  219.   end
  220.   #--------------------------------------------------------------------------
  221.   # ● X位置の設定
  222.   #--------------------------------------------------------------------------
  223.   def x=(x)
  224.     super(x)
  225.     @sprite.x = x if ShtMsg::SKIN != 0
  226.   end
  227.   #--------------------------------------------------------------------------
  228.   # ● Y位置の設定
  229.   #--------------------------------------------------------------------------
  230.   def y=(y)
  231.     super(y)
  232.     @sprite.y = y if ShtMsg::SKIN != 0
  233.   end
  234.   #--------------------------------------------------------------------------
  235.   # ● 行の高さを取得
  236.   #--------------------------------------------------------------------------
  237.   def line_height
  238.     ShtMsg::RECT.height
  239.   end
  240.   #--------------------------------------------------------------------------
  241.   # ● 標準パディングサイズの取得
  242.   #--------------------------------------------------------------------------
  243.   def standard_padding
  244.     return 4
  245.   end
  246.   #--------------------------------------------------------------------------
  247.   # ● フォント設定のリセット
  248.   #--------------------------------------------------------------------------
  249.   def reset_font_settings
  250.     change_color(normal_color)
  251.     contents.font.size = ShtMsg::FSZ
  252.     contents.font.bold = false
  253.     contents.font.italic = false
  254.   end
  255.   #--------------------------------------------------------------------------
  256.   # ● リフレッシュ
  257.   #--------------------------------------------------------------------------
  258.   def refresh(msg)
  259.     contents.clear
  260.     draw_text_ex(ShtMsg::STX, 0, msg.text)
  261.   end
  262.   #--------------------------------------------------------------------------
  263.   # ● 簡易メッセージの強制停止
  264.   #--------------------------------------------------------------------------
  265.   def stop
  266.     update_phase while @phase == 0
  267.     @count = ShtMsg::WAIT / 2
  268.   end
  269.   #--------------------------------------------------------------------------
  270.   # ● フレーム更新
  271.   #--------------------------------------------------------------------------
  272.   def update
  273.     return if self.disposed?
  274.     super
  275.     update_phase
  276.   end
  277.   #--------------------------------------------------------------------------
  278.   # ● フレーム更新
  279.   #--------------------------------------------------------------------------
  280.   def update_phase
  281.     case @phase
  282.     when 0
  283.       @phase += 1 if update_slidein and update_fadein
  284.     when 1
  285.       @phase += 1 if (@count += 1) >= ShtMsg::WAIT
  286.     when 2
  287.       dispose if update_slideout and update_fadeout
  288.     end
  289.   end
  290.   #--------------------------------------------------------------------------
  291.   # ● フレーム更新 : スライドイン
  292.   #--------------------------------------------------------------------------
  293.   def update_slidein
  294.     w = ShtMsg::RECT.width / ShtMsg::SLD_FRM
  295.     if ShtMsg::SLD_DIR
  296.       return true if self.x >= 0
  297.       self.x += w
  298.       self.x = 0 if self.x >= 0
  299.     else
  300.       xx = Graphics.width - ShtMsg::RECT.width
  301.       return true if self.x <= xx
  302.       self.x -= w
  303.       self.x = xx if self.x <= xx
  304.     end
  305.     return false
  306.   end
  307.   #--------------------------------------------------------------------------
  308.   # ● フレーム更新 : スライドアウト
  309.   #--------------------------------------------------------------------------
  310.   def update_slideout
  311.     w = ShtMsg::RECT.width / ShtMsg::SLD_FRM
  312.     if ShtMsg::SLD_DIR
  313.       xx = 0 - ShtMsg::RECT.width
  314.       return true if self.x <= xx
  315.       self.x -= w
  316.       self.x = xx if self.x <= xx
  317.     else
  318.       return true if self.x >= Graphics.width
  319.       self.x += w
  320.       self.x = Graphics.width if self.x >= Graphics.width
  321.     end
  322.     return false
  323.   end
  324.   #--------------------------------------------------------------------------
  325.   # ● フレーム更新 : フェードイン
  326.   #--------------------------------------------------------------------------
  327.   def update_fadein
  328.     op = 255 / ShtMsg::SLD_FRM
  329.     wp = ShtMsg::OPACITY / ShtMsg::SLD_FRM
  330.     if ShtMsg::SKIN == 0
  331.       return true if self.opacity = 255
  332.       self.opacity += op
  333.       self.opacity = 255 if self.opacity >= 255
  334.     else
  335.       return true
  336.     end
  337.     return false
  338.   end
  339.   #--------------------------------------------------------------------------
  340.   # ● フレーム更新 : フェードアウト
  341.   #--------------------------------------------------------------------------
  342.   def update_fadeout
  343.     op = 255 / ShtMsg::SLD_FRM
  344.     wp = ShtMsg::OPACITY / ShtMsg::SLD_FRM
  345.     if ShtMsg::SKIN == 0
  346.       return true if self.opacity = 0 and self.back_opacity == 0 and self.contents_opacity == 0
  347.       self.opacity -= op
  348.       self.back_opacity -= wp
  349.       self.contents_opacity -= op
  350.       self.opacity = 0 if self.opacity <= 0
  351.       self.back_opacity = 0 if self.back_opacity <= 0
  352.       self.contents_opacity = 0 if self.contents_opacity <= 0
  353.     else
  354.       return true if self.contents_opacity == 0 and @sprite.opacity == 0
  355.       self.contents_opacity -= op
  356.       @sprite.opacity -= wp
  357.       self.contents_opacity = 0 if self.contents_opacity <= 0
  358.       @sprite.opacity = 0 if @sprite.opacity <= 0
  359.     end
  360.     return false
  361.   end
  362. end

  363. #==============================================================================
  364. # ■ ShtMsg::MsgManager
  365. #==============================================================================
  366. class ShtMsg::MsgManager
  367.   #--------------------------------------------------------------------------
  368.   # ● オブジェクト初期化
  369.   #--------------------------------------------------------------------------
  370.   def initialize
  371.     @msg = []
  372.     [url=home.php?mod=space&uid=33409]@Stk[/url] = []
  373.     [url=home.php?mod=space&uid=76426]@stop[/url] = false
  374.     create_back_bitmap
  375.   end
  376.   #--------------------------------------------------------------------------
  377.   # ● 解放
  378.   #--------------------------------------------------------------------------
  379.   def dispose
  380.     @msg.each {|m| m.dispose}
  381.     @bitmap.dispose if ShtMsg::SKIN == 1
  382.   end
  383.   #--------------------------------------------------------------------------
  384.   # ● 背景ビットマップの作成
  385.   #--------------------------------------------------------------------------
  386.   def create_back_bitmap
  387.     case ShtMsg::SKIN
  388.     when 1
  389.       width  = ShtMsg::RECT.width
  390.       height = ShtMsg::RECT.height
  391.       @bitmap = Bitmap.new(width, height)
  392.       rect1 = Rect.new(0, 0, width, 4)
  393.       rect2 = Rect.new(0, 4, width, height - 8)
  394.       rect3 = Rect.new(0, height - 4, width, 4)
  395.       @bitmap.gradient_fill_rect(rect1, back_color2, back_color1, true)
  396.       @bitmap.fill_rect(rect2, back_color1)
  397.       @bitmap.gradient_fill_rect(rect3, back_color1, back_color2, true)
  398.     when 2
  399.       @bitmap = Cache.system(ShtMsg::PICT)
  400.     end
  401.   end
  402.   #--------------------------------------------------------------------------
  403.   # ● 背景色 1 の取得
  404.   #--------------------------------------------------------------------------
  405.   def back_color1
  406.     Color.new(0, 0, 0, 160)
  407.   end
  408.   #--------------------------------------------------------------------------
  409.   # ● 背景色 2 の取得
  410.   #--------------------------------------------------------------------------
  411.   def back_color2
  412.     Color.new(0, 0, 0, 0)
  413.   end
  414.   #--------------------------------------------------------------------------
  415.   # ● 初期X位置
  416.   #--------------------------------------------------------------------------
  417.   def start_x
  418.     ShtMsg::SLD_DIR ? (0 - ShtMsg::RECT.width) : (Graphics.width)
  419.   end
  420.   #--------------------------------------------------------------------------
  421.   # ● メッセージセットアップ
  422.   #--------------------------------------------------------------------------
  423.   def setup(type, msg, num=0)
  424.     search_y(ShtMsg::Messenger.new(type, msg, num))
  425.   end
  426.   #--------------------------------------------------------------------------
  427.   # ● メッセージRefresh
  428.   #--------------------------------------------------------------------------
  429.   def refresh(type, msg, num=0)
  430.     @msg.each {|m| m.dispose} # 表示中msgは消す
  431.     @msg = []
  432.     shift_stock # ストック分は押し出す
  433.     setup(type, msg, num)
  434.   end
  435.   #--------------------------------------------------------------------------
  436.   # ● Y位置サーチ
  437.   #--------------------------------------------------------------------------
  438.   def search_y(msg)
  439.     y = ShtMsg::VIEW.y
  440.     loop do
  441.       break if @stop
  442.       if @msg.all? {|m| m.y != y }
  443.         push_msg(msg, y)  # 空き場所へ
  444.         return true
  445.       end
  446.       y += ShtMsg::RECT.height + ShtMsg::OFST
  447.       break if y > (ShtMsg::VIEW.y + ShtMsg::VIEW.height - ShtMsg::RECT.height)
  448.     end
  449.     @stk.push(msg)  # 空くまで保持
  450.     return false
  451.   end
  452.   #--------------------------------------------------------------------------
  453.   # ● メッセージ表示開始
  454.   #--------------------------------------------------------------------------
  455.   def push_msg(msg, y)
  456.     @msg.push(Window_ShrtMsgr.new(msg, start_x, y, @bitmap))
  457.     ShtMsg::SE.play unless ShtMsg::SE.nil?
  458.   end
  459.   #--------------------------------------------------------------------------
  460.   # ● ストックの再挿入
  461.   #--------------------------------------------------------------------------
  462.   def shift_stock
  463.     if !@stk.empty? # ストックある場合、空いたらmsg挿入
  464.       loop do
  465.         break unless search_y(@stk.shift)
  466.         break if @stk.empty?
  467.       end
  468.     end
  469.   end
  470.   #--------------------------------------------------------------------------
  471.   # ● フレーム更新
  472.   #--------------------------------------------------------------------------
  473.   def update
  474.     @msg = @msg.each {|m| m.update }.select {|m| !m.disposed? }
  475.     shift_stock unless @stop
  476.   end
  477.   #--------------------------------------------------------------------------
  478.   # ● 簡易メッセージの強制停止
  479.   #--------------------------------------------------------------------------
  480.   def stop
  481.     @msg.each {|m| m.stop }
  482.     @stop = true
  483.   end
  484.   #--------------------------------------------------------------------------
  485.   # ● 簡易メッセージの強制停止解除
  486.   #--------------------------------------------------------------------------
  487.   def restart
  488.     @stop = false
  489.     shift_stock
  490.   end
  491.   #--------------------------------------------------------------------------
  492.   # ● 簡易メッセージの状態取得
  493.   #--------------------------------------------------------------------------
  494.   def state
  495.     !(@msg.empty? and @stk.empty?)
  496.   end
  497. end


  498. #==============================================================================
  499. # ■ Scene_Map
  500. #==============================================================================
  501. class Scene_Map < Scene_Base
  502.   #--------------------------------------------------------------------------
  503.   # ● 開始処理
  504.   #--------------------------------------------------------------------------
  505.   alias start_shrtmsg start
  506.   def start
  507.     start_shrtmsg
  508.     @msgr = ShtMsg::MsgManager.new
  509.   end
  510.   #--------------------------------------------------------------------------
  511.   # ● 終了処理
  512.   #--------------------------------------------------------------------------
  513.   alias terminate_msg terminate
  514.   def terminate
  515.     terminate_msg
  516.     @msgr.dispose
  517.   end
  518.   #--------------------------------------------------------------------------
  519.   # ● 簡易メッセージ表示
  520.   #--------------------------------------------------------------------------
  521.   def show_msg(type, msg, num=0)
  522.     @msgr.setup(type, msg, num)
  523.   end
  524.   #--------------------------------------------------------------------------
  525.   # ● 簡易メッセージ表示
  526.   #--------------------------------------------------------------------------
  527.   def draw_msg(type, msg, num=0)
  528.     @msgr.refresh(type, msg, num)
  529.   end
  530.   #--------------------------------------------------------------------------
  531.   # ● 簡易メッセージの強制停止
  532.   #--------------------------------------------------------------------------
  533.   def stop_msg
  534.     @msgr.stop
  535.   end
  536.   #--------------------------------------------------------------------------
  537.   # ● 簡易メッセージの強制停止解除
  538.   #--------------------------------------------------------------------------
  539.   def restart
  540.     @msgr.restart
  541.   end
  542.   #--------------------------------------------------------------------------
  543.   # ● 簡易メッセージの状態取得
  544.   #--------------------------------------------------------------------------
  545.   def msg_state
  546.     @msgr.state
  547.   end
  548.   #--------------------------------------------------------------------------
  549.   # ● フレーム更新
  550.   #--------------------------------------------------------------------------
  551.   alias update_msg update
  552.   def update
  553.     update_msg
  554.     @msgr.update
  555.   end
  556. end
复制代码


这个是日站的获得物品 提醒脚本,就是不知道如何使用此脚本

明确的所在位置
Code Crush -RGSS3-
蓝色最后第三个,橙色最后第一个

点评

嗯,太可怕了不敢点。使用脚本先看注释,看不懂日语就谷歌然后猜意思,然后各种测试。以上!  发表于 2014-9-18 17:41

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2014-9-18 17:43:53 | 显示全部楼层
看第6行至第44行的注释,以上

点评

设解决  发表于 2014-9-18 18:08

评分

参与人数 1星屑 +132 收起 理由
VIPArcher + 132 认可答案

查看全部评分

回复

使用道具 举报

无限の剣制

梦石
0
星屑
10450
在线时间
5019 小时
注册时间
2013-2-28
回帖
4942

开拓者贵宾

发表于 2014-9-18 17:44:38 | 显示全部楼层
这个脚本不是获得物品时自动出现提示信息,而是需要你在事件里调用脚本来做成提示信息。
具体怎么做请看注释

评分

参与人数 1星屑 +1 收起 理由
taroxd + 1 喵

查看全部评分

回复

使用道具 举报

梦石
0
星屑
22879
在线时间
8598 小时
注册时间
2011-12-31
回帖
3270
发表于 2014-9-18 18:59:42 | 显示全部楼层
本帖最后由 tseyik 于 2014-9-18 19:19 编辑

自動制示脚本(需打開開関22)
解象度640x480(予設解象度要修改)
行211至225改成
       #super(-16, 0, 544 + 32, 38 + 32)  (-16, 0, 640 + 32, 38 + 32)
    super(-16, 0, 544 + 32, 38 + 32)
    self.z = Z
    self.contents_opacity = 0
    self.back_opacity = 0
    self.opacity = 0
    @value = value
    @count = 0
    @i = $game_temp.getinfo_size.index(nil)
    @i = $game_temp.getinfo_size.size if (@i == nil)
    if Y_TYPE == 0
      self.y = -14 + (@i * 40)
    else
      #self.y = 418 - 58 - (@i * 40)  480 - 58 - (@i * 40)
      self.y = 418 - 58 - (@i * 40)
  1. =begin #=======================================================================
  2.   
  3. ◆◇入手インフォメーション+マップエフェクトベース RGSS3◇◆ ※starさんの移植品
  4.  ★-----更にカスタマイズを施したバージョン

  5. ◆VX Ace移植◆
  6. ◆DEICIDE ALMA
  7. ◆レーネ 
  8. ◆http://blog.goo.ne.jp/exa_deicide_alma

  9. ◆カスタマイズ◆
  10. ◆Jun.A

  11. ★変更点(移植版)

  12.   インフォの文章はヘルプの1行目の文章になります。
  13.   (<info:任意の文字列>で指定した場合はそちらを優先)
  14.   
  15.   GET = true ならインフォを出したアイテムを入手します。
  16.   (アイテム、武器、防具、お金が対象)

  17. ★変更点(カスタマイズ版 / Jun.A)

  18.   指定スイッチをオンにした状態で、アイテム・武器・防具・スキル・お金・経験値を
  19.   入手したり失ったりすると、自動で情報を表示するようにしました。
  20.   
  21.   なお、コマンドスクリプトから書き出す場合、スイッチを無視して表示されます。

  22.   また、テキスト出力に対応しました。
  23.   簡単な情報をテキスト出力したいときに便利かと思います。
  24.   
  25.   (注意)
  26.     コマンドスクリプトで経験値増減・スキル習得を呼び出した場合、
  27.     表示されるだけで、実際には増減・習得しません。別途スクリプト必須です。
  28.     コマンド「経験値の増減」「スキルの増減」から呼び出した場合には自動習得します。

  29. ◆導入箇所
  30. ▼素材のところ、mainより上
  31.  ひきも記(tomoaky)さんのアイコンポップスクリプトが競合するため、
  32.  アイコンポップスクリプトはこのスクリプトの下に配置してください。

  33. =end #=========================================================================
  34. #==============================================================================
  35. # ★RGSS2
  36. # STEMB_マップエフェクトベース v0.8
  37. #
  38. # ・エフェクト表示のための配列定義、フレーム更新、ビューポート関連付け
  39. #
  40. #==============================================================================
  41. # ★RGSS2
  42. # STR20_入手インフォメーション v1.2 09/03/17
  43. #
  44. # ・マップ画面にアイテム入手・スキル修得などの際に表示するインフォです。
  45. # ・表示内容は 任意指定の名目+アイテム名+ヘルプメッセージとなります。
  46. # ・アイテムのメモ欄に <info:任意の文字列> と記述することで
  47. #  通常とは別の説明文をインフォに表示させることができます。
  48. # [仕様]インフォが表示されている間も移動できます。
  49. #    移動させたくない場合はウェイトを入れてください。
  50. #
  51. #==============================================================================

  52. # 追加モジュール
  53. module CUSTOM_GET_WINDOW
  54.   DISPLAY_FLAG = 22
  55.   GOLD_TEXT_ADD      = "お金入手!"      #お金を入手した際の表示テキスト
  56.   GOLD_TEXT_REMOVE   = "お金消失…"      #お金を消失した際の表示テキスト
  57.   ITEM_TEXT_ADD      = "アイテム入手!"  #アイテムを入手した際の表示テキスト
  58.   ITEM_TEXT_REMOVE   = "アイテム消失…"  #アイテムを消失した際の表示テキスト
  59.   WEAPON_TEXT_ADD    = "武器入手!"      #武器を入手した際の表示テキスト
  60.   WEAPON_TEXT_REMOVE = "武器消失…"      #武器を消失した際の表示テキスト
  61.   ARMOR_TEXT_ADD     = "防具入手!"      #防具を入手した際の表示テキスト
  62.   ARMOR_TEXT_REMOVE  = "防具消失…"      #防具を消失した際の表示テキスト
  63.   SKILL_TEXT_ADD     = "スキル習得!"    #スキルを習得した際の表示テキスト
  64.   SKILL_TEXT_REMOVE  = "スキル忘却…"    #スキルを忘れた際の表示テキスト
  65.   EXP_TEXT_ADD       = "EXP入手!"       #EXPを入手した際の表示テキスト
  66.   EXP_TEXT_REMOVE    = "EXP消失…"       #EXPを消失した際の表示テキスト
  67. end

  68. class Window_Getinfo < Window_Base
  69.   # 設定箇所
  70.   #G_ICON  = 260   # ゴールド入手インフォに使用するアイコンインデックス
  71.   G_ICON  = 361   # ゴールド入手インフォに使用するアイコンインデックス
  72.   T_ICON  = 125   # テキスト表示インフォに使用するアイコンインデックス
  73.   Y_TYPE  = 1     # Y座標の位置(0 = 上基準 1 = 下基準)
  74.   Z       = 188   # Z座標(問題が起きない限り変更しないでください)
  75.   TIME    = 180   # インフォ表示時間(1/60sec)
  76.   OPACITY = 32    # 透明度変化スピード
  77.   B_COLOR = Color.new(0, 0, 0, 30)        # インフォバックの色
  78.   INFO_SE = RPG::SE.new("Chime2", 80, 100) # インフォ表示時の効果音
  79.   
  80.   #STR20W  = /info\[\/(.*)\/\]/im # メモ設定ワード(VXと同じ)
  81.   STR20W  = /<info:(.*?)>/im      # メモ設定ワード
  82.   
  83.   GET = true # インフォを出したアイテムを入手するかどうか(スキルは除く)
  84. end
  85. #
  86. if false
  87. # ★以下をコマンドのスクリプト等に貼り付けてテキスト表示----------------★

  88. # 種類 / 0=アイテム 1=武器 2=防具 3=スキル 4=金 5=テキスト(新規対応)
  89. type = 0
  90. # ID  / 金の場合は金額を入力
  91. id   = 1
  92. # 入手テキスト / 金の場合無効
  93. text = "アイテム入手!"
  94. # 増減(数) / プラス・マイナス両対応
  95. value = 1
  96. e = $game_temp.streffect
  97. e.push(Window_Getinfo.new(id, type, text, value))
  98. # ★ここまで------------------------------------------------------------★
  99. # □ 追加でテキスト機能を追加。

  100. # 種類 / 0=アイテム 1=武器 2=防具 3=スキル 4=金 5=テキスト(新規対応)
  101. type = 5
  102. # ID / 大きく表示される部分のテキスト
  103. id   = "テストコメント"
  104. # テキスト / 小さく表示される部分のテキスト
  105. text = "ミニインフォメーション"
  106. # 意味はありませんが、必ずvalueにゼロを記してください
  107. # ※無いとミニインフォが表示されません
  108. value = 0
  109. #
  110. e = $game_temp.streffect
  111. e.push(Window_Getinfo.new(id, type, text))
  112. # ★ここまで------------------------------------------------------------★
  113. #
  114. # ◇スキル修得時などにアクター名を直接打ち込むと
  115. #  アクターの名前が変えられるゲームなどで問題が生じます。
  116. #  なので、以下のようにtext部分を改造するといいかもしれません。
  117. #
  118. # 指定IDのアクターの名前取得
  119. t = $game_actors[1].name
  120. text = t + " / スキル修得!"
  121. #
  122. end

  123. class Game_Temp
  124.   #--------------------------------------------------------------------------
  125.   # ● 公開インスタンス変数
  126.   #--------------------------------------------------------------------------
  127.   attr_accessor :streffect
  128.   #--------------------------------------------------------------------------
  129.   # ● オブジェクト初期化
  130.   #--------------------------------------------------------------------------
  131.   alias initialize_stref initialize
  132.   def initialize
  133.     initialize_stref
  134.     @streffect = []
  135.   end
  136. end

  137. class Spriteset_Map
  138.   #--------------------------------------------------------------------------
  139.   # ● エフェクトの作成
  140.   #--------------------------------------------------------------------------
  141.   def create_streffect
  142.     $game_temp.streffect = []
  143.   end
  144.   #--------------------------------------------------------------------------
  145.   # ● エフェクトの解放
  146.   #--------------------------------------------------------------------------
  147.   def dispose_streffect
  148.     (0...$game_temp.streffect.size).each do |i|
  149.       $game_temp.streffect[i].dispose if $game_temp.streffect[i] != nil
  150.     end
  151.     $game_temp.streffect = []
  152.   end
  153.   #--------------------------------------------------------------------------
  154.   # ● エフェクトの更新
  155.   #--------------------------------------------------------------------------
  156.   def update_streffect
  157.     (0...$game_temp.streffect.size).each do |i|
  158.       if $game_temp.streffect[i] != nil
  159.         $game_temp.streffect[i].viewport = @viewport1
  160.         $game_temp.streffect[i].update
  161.         $game_temp.streffect.delete_at(i) if $game_temp.streffect[i].disposed?
  162.       end
  163.     end
  164.   end
  165.   #--------------------------------------------------------------------------
  166.   # ● 遠景の作成(エイリアス)
  167.   #--------------------------------------------------------------------------
  168.   alias create_parallax_stref create_parallax
  169.   def create_parallax
  170.     create_parallax_stref
  171.     create_streffect
  172.   end
  173.   #--------------------------------------------------------------------------
  174.   # ● 解放(エイリアス)
  175.   #--------------------------------------------------------------------------
  176.   alias dispose_stref dispose
  177.   def dispose
  178.     dispose_streffect
  179.     dispose_stref
  180.   end
  181.   #--------------------------------------------------------------------------
  182.   # ● 更新(エイリアス)
  183.   #--------------------------------------------------------------------------
  184.   alias update_stref update
  185.   def update
  186.     update_stref
  187.     update_streffect
  188.   end
  189. end

  190. class Window_Getinfo < Window_Base
  191.   #--------------------------------------------------------------------------
  192.   # ● オブジェクト初期化
  193.   #--------------------------------------------------------------------------
  194.   def initialize(id, type, text = "", value)
  195.     #super(-16, 0, 544 + 32, 38 + 32)
  196.     super(-16, 0, 640 + 32, 38 + 32)
  197.     self.z = Z
  198.     self.contents_opacity = 0
  199.     self.back_opacity = 0
  200.     self.opacity = 0
  201.     @value = value
  202.     @count = 0
  203.     @i = $game_temp.getinfo_size.index(nil)
  204.     @i = $game_temp.getinfo_size.size if (@i == nil)
  205.     if Y_TYPE == 0
  206.       self.y = -14 + (@i * 40)
  207.     else
  208.       #self.y = 418 - 58 - (@i * 40)
  209.       self.y = 480 - 58 - (@i * 40)
  210.     end
  211.     $game_temp.getinfo_size[@i] = true
  212.     refresh(id, type, text, @value)
  213.     #SE発音 タイプチェック 0~3ならvalueを見る 4(お金)ならidを見る
  214.     case type
  215.     when 0..3
  216.       if @value >= 1
  217.         INFO_SE.play
  218.       elsif @value <= -1
  219.         #Sound.play_evasion #減るときは音を鳴らなさい
  220.       end
  221.     when 4
  222.       if id >= 1
  223.         Audio.se_play('Audio/SE/Coin', 80)
  224.       elsif id <= -1
  225.         #Sound.play_evasion #減るときは音を鳴らなさい
  226.       end
  227.     when 5
  228.         Audio.se_play('Audio/SE/Chime1', 80)
  229.     when 6
  230.       if @value >= 1
  231.         INFO_SE.play
  232.       elsif @value <= -1
  233.         #Sound.play_evasion #減るときは音を鳴らなさい
  234.       end
  235.     end
  236.   end
  237.   #--------------------------------------------------------------------------
  238.   # ● 解放
  239.   #--------------------------------------------------------------------------
  240.   def dispose
  241.     $game_temp.getinfo_size[@i] = nil
  242.     super
  243.   end
  244.   #--------------------------------------------------------------------------
  245.   # ● フレーム更新
  246.   #--------------------------------------------------------------------------
  247.   def update
  248.     self.viewport = nil
  249.     @count += 1
  250.     unless @count >= TIME
  251.       self.contents_opacity += OPACITY
  252.     else
  253.       if Y_TYPE == 0
  254.         self.y -= 1
  255.       else
  256.         self.y += 1
  257.       end
  258.       self.contents_opacity -= OPACITY
  259.       dispose if self.contents_opacity == 0
  260.     end
  261.   end
  262.   #--------------------------------------------------------------------------
  263.   # ● リフレッシュ
  264.   #--------------------------------------------------------------------------
  265.   def refresh(id, type, text = "", value)
  266.     case type
  267.     when 0 ; data = $data_items[id]
  268.     when 1 ; data = $data_weapons[id]
  269.     when 2 ; data = $data_armors[id]
  270.     when 3 ; data = $data_skills[id]
  271.     when 4 ; data = id
  272.     when 5 ; data = id  #無理やりidに載せたテキストデータをdataに格納してます。
  273.     when 6 ; data = id  #経験値増減の実際の値です。
  274.     else   ; p "typeの値がおかしいです><;"
  275.     end
  276.     c = B_COLOR
  277.     #self.contents.fill_rect(0, 14, 544, 24, c)
  278.     self.contents.fill_rect(0, 14, 644, 24, c)
  279.     case type #表示分岐
  280.     when 0..2 #アイテム・武器・防具表示
  281.       draw_item_name(data, 4, 14)
  282.       self.contents.draw_text(204, 14, 18, line_height, "x")
  283.       self.contents.draw_text(220, 14, 36, line_height, value)
  284.       self.contents.draw_text(258, 14, 382, line_height, description(data))
  285.     when 3 # スキル表示
  286.       draw_item_name(data, 4, 14)
  287.       self.contents.draw_text(204, 14, 436, line_height, description(data))
  288.     when 4 # お金表示
  289.       draw_icon(G_ICON, 4, 14)
  290.       self.contents.draw_text(28, 14, 176, line_height,
  291.       data.to_s + Vocab.currency_unit)
  292.       $game_party.gain_gold(id) if GET
  293.     when 5 # テキスト出力
  294.       draw_icon(T_ICON, 4, 14)
  295.       self.contents.draw_text(28, 14, 612, line_height, data)
  296.     when 6
  297.       self.contents.draw_text(16, 14, 48, line_height, "Exp:")
  298.       self.contents.draw_text(56, 14, 584, line_height, data)
  299.     end
  300.     self.contents.font.size = 14
  301.     w = self.contents.text_size(text).width
  302.     self.contents.fill_rect(0, 0, w + 4, 14, c)
  303.     self.contents.draw_text_f(4, 0, 340, 14, text)
  304.     #アイテムの入手・消失操作
  305.     $game_party.gain_item(data,@value) if type <= 2 && GET && @value >= 1  #入手
  306.     $game_party.gain_item(data,@value) if type <= 2 && GET && @value <= -1 #消失
  307.     Graphics.frame_reset
  308.   end
  309.   #--------------------------------------------------------------------------
  310.   # ● 解説文取得
  311.   #--------------------------------------------------------------------------
  312.   def description(data)
  313.     if data.note =~ /#{STR20W}/
  314.       return $1
  315.     end
  316.     text = data.description.dup
  317.     text.sub!(/[\r\n]+.*/m, "")
  318.     return text
  319.   end
  320. end

  321. class Game_Temp
  322.   #--------------------------------------------------------------------------
  323.   # ● 公開インスタンス変数
  324.   #--------------------------------------------------------------------------
  325.   attr_accessor :getinfo_size
  326.   #--------------------------------------------------------------------------
  327.   # ● オブジェクト初期化
  328.   #--------------------------------------------------------------------------
  329.   alias initialize_str20 initialize
  330.   def initialize
  331.     initialize_str20
  332.     @getinfo_size = []
  333.   end
  334. end

  335. class Bitmap
  336.   unless public_method_defined?(:draw_text_f)
  337.     #--------------------------------------------------------------------------
  338.     # ● 文字縁取り描画
  339.     #--------------------------------------------------------------------------
  340.     def draw_text_f(x, y, width, height, str, align = 0, color = Color.new(64,32,128))
  341.       shadow = self.font.shadow
  342.       b_color = self.font.color.dup
  343.       outline = self.font.outline
  344.       self.font.outline = false
  345.       font.shadow = false
  346.       font.color = color
  347.       draw_text(x + 1, y, width, height, str, align)
  348.       draw_text(x - 1, y, width, height, str, align)
  349.       draw_text(x, y + 1, width, height, str, align)
  350.       draw_text(x, y - 1, width, height, str, align)
  351.       font.color = b_color
  352.       draw_text(x, y, width, height, str, align)
  353.       font.shadow = shadow
  354.       self.font.outline = outline
  355.     end
  356.     def draw_text_f_rect(r, str, align = 0, color = Color.new(64,32,128))
  357.       draw_text_f(r.x, r.y, r.width, r.height, str, align, color)
  358.     end
  359.   end
  360. end

  361. #--------------------------------------------------------------------------
  362. # ★ 追加箇所 - アイテム入手時、フラグなONなら自動で入手表示する。
  363. #  アイテム・武器・防具・スキル・テキスト それぞれ全てに対応
  364. #--------------------------------------------------------------------------

  365. class Game_Interpreter
  366.   
  367.   #--------------------------------------------------------------------------
  368.   # override method: command_125 // お金の増減
  369.   #--------------------------------------------------------------------------
  370.   alias game_interpreter_command_125_ew command_125
  371.   def command_125
  372.     #game_interpreter_command_125_ew #エイリアスを使わない(多重加算を回避)
  373.     value = operate_value(@params[0], @params[1], @params[2])
  374.    
  375.     if value >= 1 #お金が増える場合
  376.       # フラグチェックして、trueならアイテム入手メソッドに飛ばす
  377.       if $game_switches[CUSTOM_GET_WINDOW::DISPLAY_FLAG] #フラグチェック
  378.         # 種類 / 0=アイテム 1=武器 2=防具 3=スキル 4=金
  379.         type = 4
  380.         # ID  / 金の場合は金額を入力
  381.         id = value
  382.         # 入手テキスト / 金の場合無効
  383.         text = CUSTOM_GET_WINDOW::GOLD_TEXT_ADD
  384.         #
  385.         e = $game_temp.streffect
  386.         e.push(Window_Getinfo.new(id, type, text, value))
  387.       else  #フラグがfalseなら、オリジナルメソッドと同じ動作
  388.         $game_party.gain_gold(value)
  389.       end
  390.     elsif value <= -1  #お金が減る場合
  391.       if $game_switches[CUSTOM_GET_WINDOW::DISPLAY_FLAG] #フラグチェック
  392.         type = 4
  393.         id = value
  394.         text = CUSTOM_GET_WINDOW::GOLD_TEXT_REMOVE
  395.         #
  396.         e = $game_temp.streffect
  397.         e.push(Window_Getinfo.new(id, type, text, value))
  398.       else
  399.         $game_party.gain_gold(value)
  400.       end
  401.     end
  402.   end  
  403.   #--------------------------------------------------------------------------
  404.   # override method: command_126 // アイテムの増減
  405.   #--------------------------------------------------------------------------
  406.   alias game_interpreter_command_126_ew command_126
  407.   def command_126
  408.     #game_interpreter_command_126_ew
  409.     value = operate_value(@params[1], @params[2], @params[3])
  410.    
  411.     if value >= 1 #アイテムが増える場合
  412.       if $game_switches[CUSTOM_GET_WINDOW::DISPLAY_FLAG] #フラグチェック
  413.         # 種類 / 0=アイテム 1=武器 2=防具 3=スキル 4=金
  414.         type = 0
  415.         # ID  / 金の場合は金額を入力
  416.         id = @params[0]
  417.         # 入手テキスト / 金の場合無効
  418.         text = CUSTOM_GET_WINDOW::ITEM_TEXT_ADD
  419.         #
  420.         e = $game_temp.streffect
  421.         e.push(Window_Getinfo.new(id, type, text, value))
  422.       else  #フラグがfalseなら、オリジナルメソッドと同じ動作
  423.         $game_party.gain_item($data_items[@params[0]], value)
  424.       end
  425.     elsif value <= -1  #アイテムが減る場合
  426.       if $game_switches[CUSTOM_GET_WINDOW::DISPLAY_FLAG] #フラグチェック
  427.         type = 0
  428.         id = @params[0]
  429.         text = CUSTOM_GET_WINDOW::ITEM_TEXT_REMOVE
  430.         #
  431.         e = $game_temp.streffect
  432.         e.push(Window_Getinfo.new(id, type, text, value))
  433.       else
  434.         $game_party.gain_item($data_items[@params[0]], value)
  435.       end
  436.     end
  437.   end  
  438.   #--------------------------------------------------------------------------
  439.   # override method: command_127 // 武器の増減
  440.   #--------------------------------------------------------------------------
  441.   alias game_interpreter_command_127_ew command_127
  442.   def command_127
  443.     #game_interpreter_command_127_ew
  444.     value = operate_value(@params[1], @params[2], @params[3])
  445.    
  446.     if value >= 1 #武器が増える場合
  447.       if $game_switches[CUSTOM_GET_WINDOW::DISPLAY_FLAG] #フラグチェック
  448.         # 種類 / 0=アイテム 1=武器 2=防具 3=スキル 4=金
  449.         type = 1
  450.         # ID  / 金の場合は金額を入力
  451.         id = @params[0]
  452.         # 入手テキスト / 金の場合無効
  453.         text = CUSTOM_GET_WINDOW::WEAPON_TEXT_ADD
  454.         #
  455.         e = $game_temp.streffect
  456.         e.push(Window_Getinfo.new(id, type, text, value))
  457.       else  #フラグがfalseなら、オリジナルメソッドと同じ動作
  458.         $game_party.gain_item($data_weapons[@params[0]], value, @params[4])
  459.       end
  460.     elsif value <= -1  #武器が減る場合
  461.       if $game_switches[CUSTOM_GET_WINDOW::DISPLAY_FLAG] #フラグチェック
  462.         type = 1
  463.         id = @params[0]
  464.         text = CUSTOM_GET_WINDOW::WEAPON_TEXT_REMOVE
  465.         #
  466.         e = $game_temp.streffect
  467.         e.push(Window_Getinfo.new(id, type, text, value))
  468.       else
  469.         $game_party.gain_item($data_weapons[@params[0]], value, @params[4])
  470.       end
  471.     end
  472.   end  
  473.   #--------------------------------------------------------------------------
  474.   # override method: command_128 // 防具の増減
  475.   #--------------------------------------------------------------------------
  476.   alias game_interpreter_command_128_ew command_128
  477.   def command_128
  478.     #game_interpreter_command_128_ew
  479.     value = operate_value(@params[1], @params[2], @params[3])
  480.    
  481.     if value >= 1 #防具が増える場合
  482.       if $game_switches[CUSTOM_GET_WINDOW::DISPLAY_FLAG] #フラグチェック
  483.         # 種類 / 0=アイテム 1=武器 2=防具 3=スキル 4=金
  484.         type = 2
  485.         # ID  / 金の場合は金額を入力
  486.         id = @params[0]
  487.         # 入手テキスト / 金の場合無効
  488.         text = CUSTOM_GET_WINDOW::ARMOR_TEXT_ADD
  489.         #
  490.         e = $game_temp.streffect
  491.         e.push(Window_Getinfo.new(id, type, text, value))
  492.       else  #フラグがfalseなら、オリジナルメソッドと同じ動作
  493.         $game_party.gain_item($data_armors[@params[0]], value, @params[4])
  494.       end
  495.     elsif value <= -1  #防具が減る場合
  496.       if $game_switches[CUSTOM_GET_WINDOW::DISPLAY_FLAG] #フラグチェック
  497.         type = 2
  498.         id = @params[0]
  499.         text = CUSTOM_GET_WINDOW::ARMOR_TEXT_REMOVE
  500.         text = CUSTOM_GET_WINDOW::ARMOR_TEXT_REMOVE
  501.         #
  502.         e = $game_temp.streffect
  503.         e.push(Window_Getinfo.new(id, type, text, value))
  504.       else
  505.         $game_party.gain_item($data_armors[@params[0]], value, @params[4])
  506.       end
  507.     end
  508.   end
  509.   #--------------------------------------------------------------------------
  510.   # override method command_318 // スキルの増減
  511.   #--------------------------------------------------------------------------
  512.   alias game_interpreter_command_318_ew command_318
  513.   def command_318
  514.     # アクターを探して指定スキルを習得させる
  515.     # @params[1] = アクターID / $data_actors[] データベース上のアクターID
  516.     # @params[2] = 習得させる(0)か忘れさせる(1)か
  517.     # @params[3] = スキルID
  518.     iterate_actor_var(@params[0], @params[1]) do |actor|
  519.       if @params[2] == 0
  520.         actor.learn_skill(@params[3])
  521.       else
  522.         actor.forget_skill(@params[3])
  523.       end
  524.     end
  525.    
  526.     if $game_switches[CUSTOM_GET_WINDOW::DISPLAY_FLAG] #フラグチェック
  527.       if @params[2] == 0 #習得
  528.         type = 3
  529.         id = @params[3]
  530.         actor_name = $data_actors[@params[1]].name
  531.         text = actor_name + " / " + CUSTOM_GET_WINDOW::SKILL_TEXT_ADD
  532.         value = 1 #習得表示フラグ
  533.         e = $game_temp.streffect
  534.         e.push(Window_Getinfo.new(id, type, text, value))
  535.       elsif @params[2] == 1 #忘れる
  536.         type = 3
  537.         id = @params[3]
  538.         actor_name = $data_actors[@params[1]].name
  539.         text = actor_name + " / " + CUSTOM_GET_WINDOW::SKILL_TEXT_REMOVE
  540.         value = -1 #忘却表示フラグ
  541.         e = $game_temp.streffect
  542.         e.push(Window_Getinfo.new(id, type, text, value))
  543.       end
  544.     end
  545.   end
  546.   #--------------------------------------------------------------------------
  547.   # override method command_315 // 経験値の増減
  548.   #--------------------------------------------------------------------------
  549.   def command_315
  550.     value = operate_value(@params[2], @params[3], @params[4])
  551.     iterate_actor_var(@params[0], @params[1]) do |actor|
  552.       actor.change_exp(actor.exp + value, @params[5])
  553.     end
  554.     #p @params[0] #指定キャラか変数指定か(0 or 1)
  555.     #p @params[1] #指定キャラ番号 or 挿入する値(変数時)★
  556.     #p @params[2] #増やすのか、もしくは減らすのか(0 or 1)★
  557.     #p @params[3] #指定数値か変数指定か(0 or 1)
  558.     #p @params[4] #実際に入れる値★
  559.     #p @params[5] #レベルアップ表示するか?★
  560.    
  561.     if $game_switches[CUSTOM_GET_WINDOW::DISPLAY_FLAG] #フラグチェック
  562.       type = 6
  563.       if @params[1] == 0  #パーティ全体か(0)、個別か(1~)
  564.         actor_name = "パーティ全体"
  565.       else
  566.         actor_name = $data_actors[@params[1]].name
  567.       end
  568.       if @params[2] == 0  #増やす(0)のか減らす(1)のか
  569.         text = actor_name + " / " + CUSTOM_GET_WINDOW::EXP_TEXT_ADD
  570.         value = 1 #入手フラグ
  571.         id = @params[4] #IDに増減の値を挿入
  572.       elsif @params[2] == 1
  573.         text = actor_name + " / " + CUSTOM_GET_WINDOW::EXP_TEXT_REMOVE
  574.         value = -1 #消失フラグ
  575.         id = @params[4] * -1
  576.       end
  577.       e = $game_temp.streffect
  578.       e.push(Window_Getinfo.new(id, type, text, value))
  579.     end
  580.   end
  581. end
  582.   
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部