Project1

标题: 求个物品栏脚本 [打印本页]

作者: 10492222482    时间: 2013-2-26 11:42
标题: 求个物品栏脚本
RT。要可以兼容的
作者: 1715063941    时间: 2013-2-26 14:21
  1. #encoding:utf-8
  2. ###############################################################################
  3. # ■ [VA] 事件 [物品选择处理] 时显示物品描述 1.0.0.0
  4. #------------------------------------------------------------------------------
  5. #  作者: orzFly [http://orzfly.com]
  6. #  脚本主页: http://rgss.orzfly.com/key-item-description-va
  7. #------------------------------------------------------------------------------
  8. =begin
  9. ### 概况
  10. 功能是在当使用事件 [物品选择处理] 的时候能够显示出物品描述。

  11. 物品描述的显示,默认情况下将显示于选择框上侧。
  12. 您可以在 [显示文章] 和 [物品选择处理] 之间插入一个**空白**的 [显示文章],
  13. 请注意一定是空白的,文本内容留空并且头像设置也留空。此时这个指令的:

  14. * 窗口背景: 代表物品描述是否出现。即 `$game_message.item_help_visible` 属性。
  15.    * [普通窗口] 即属性值 `0`,代表出现。
  16.    * [暗色背景] 即属性值 `1`,代表按下 Shift 键时出现。
  17.                 此时位置设置将不起作用。
  18.    * [透明窗口] 即属性值 `2`,代表不出现。

  19. * 显示位置 : 代表物品描述显示位置。即 `$game_message.item_help_position` 属性。
  20.    * [居上] 即属性值 `true`,代表出现在物品栏选择框上侧。
  21.    * [居下] 即属性值 `false`,代表出现在物品栏选择框下侧。

  22. ### 更新日志
  23. * **1.0.0.0** January 16, 2012
  24.    * 初版。
  25. =end
  26. ###############################################################################
  27. #==============================================================================
  28. # ■ Window_Message (Patch: orzfly_key_item_description)
  29. #------------------------------------------------------------------------------
  30. #  显示文字信息的窗口。
  31. #==============================================================================

  32. class Window_Message < Window_Base
  33.   #--------------------------------------------------------------------------
  34.   # ● 生成所有窗口 (Patch: orzfly_key_item_description)
  35.   #--------------------------------------------------------------------------
  36.   alias create_all_windows_orzfly_key_item_description create_all_windows
  37.   def create_all_windows
  38.     create_all_windows_orzfly_key_item_description
  39.     @item_window.help_window = Window_Help.new
  40.     @item_window.help_window.openness = 0
  41.   end
  42.   #--------------------------------------------------------------------------
  43.   # ● 更新所有窗口 (Patch: orzfly_key_item_description)
  44.   #--------------------------------------------------------------------------
  45.   alias update_all_windows_orzfly_key_item_description update_all_windows
  46.   def update_all_windows
  47.     update_all_windows_orzfly_key_item_description
  48.     @item_window.help_window.update
  49.   end
  50.   #--------------------------------------------------------------------------
  51.   # ● 释放所有窗口 (Patch: orzfly_key_item_description)
  52.   #--------------------------------------------------------------------------
  53.   alias dispose_all_windows_orzfly_key_item_description dispose_all_windows
  54.   def dispose_all_windows
  55.     dispose_all_windows_orzfly_key_item_description
  56.     @item_window.help_window.dispose
  57.   end
  58. end

  59. #==============================================================================
  60. # ■ Window_KeyItem (Patch: orzfly_key_item_description)
  61. #------------------------------------------------------------------------------
  62. #  此窗口使用于事件指令中的“选择物品”功能。
  63. #==============================================================================

  64. class Window_KeyItem < Window_ItemList
  65.   #--------------------------------------------------------------------------
  66.   # ● 打开窗口 (Rewrite: orzfly_key_item_description)
  67.   #--------------------------------------------------------------------------
  68.   def open
  69.     self.help_window.open if $game_message.item_help_visible == 0
  70.     super
  71.   end
  72.   #--------------------------------------------------------------------------
  73.   # ● 关闭窗口 (Rewrite: orzfly_key_item_description)
  74.   #--------------------------------------------------------------------------
  75.   def close
  76.     self.help_window.close if $game_message.item_help_visible == 0
  77.     super
  78.   end
  79.   #--------------------------------------------------------------------------
  80.   # ● 更新窗口的位置 (Rewrite: orzfly_key_item_description)
  81.   #--------------------------------------------------------------------------
  82.   def update_placement
  83.     if $game_message.item_help_visible == 0
  84.       if $game_message.item_help_position
  85.         if @message_window.y >= Graphics.height / 2
  86.           self.help_window.y = 0
  87.           self.y = help_window.height
  88.         else
  89.           self.help_window.y = Graphics.height -
  90.                                self.help_window.height - self.height
  91.           self.y = Graphics.height - self.height
  92.         end
  93.       else
  94.         if @message_window.y >= Graphics.height / 2
  95.           self.y = 0
  96.           self.help_window.y = self.height
  97.         else
  98.           self.help_window.y = Graphics.height - help_window.height
  99.           self.y = Graphics.height - self.help_window.height - self.height
  100.         end
  101.       end
  102.     elsif $game_message.item_help_visible == 1
  103.       if @message_window.y >= Graphics.height / 2
  104.         self.y = 0
  105.         self.help_window.y = self.height
  106.       else
  107.         self.help_window.y = Graphics.height -
  108.                              self.help_window.height - self.height
  109.         self.y = Graphics.height - self.height
  110.       end
  111.     else
  112.       if @message_window.y >= Graphics.height / 2
  113.         self.y = 0
  114.       else
  115.         self.y = Graphics.height - height
  116.       end
  117.     end
  118.   end
  119.   #--------------------------------------------------------------------------
  120.   # ● “确定”和“取消”的处理 (Rewrite: orzfly_key_item_description)
  121.   #--------------------------------------------------------------------------
  122.   def process_handling
  123.     return unless open? && active
  124.     if $game_message.item_help_visible == 1
  125.       if Input.press?(:A)
  126.         self.help_window.open  if self.help_window.close?
  127.       else
  128.         self.help_window.close if self.help_window.open?
  129.       end
  130.     end
  131.     return super
  132.   end
  133. end

  134. #==============================================================================
  135. # ■ Game_Interpreter (Patch: orzfly_key_item_description)
  136. #------------------------------------------------------------------------------
  137. #  事件指令的解释器。
  138. #   本类在 Game_Map、Game_Troop、Game_Event 类的内部使用。
  139. #==============================================================================

  140. class Game_Interpreter
  141.   #--------------------------------------------------------------------------
  142.   # ● 显示文字 (Rewrite: orzfly_key_item_description)
  143.   #--------------------------------------------------------------------------
  144.   def command_101
  145.     wait_for_message
  146.     $game_message.face_name = @params[0]
  147.     $game_message.face_index = @params[1]
  148.     $game_message.background = @params[2]
  149.     $game_message.position = @params[3]
  150.     while next_event_code == 401       # 文字数据
  151.       @index += 1
  152.       $game_message.add(@list[@index].parameters[0])
  153.     end
  154.     case next_event_code
  155.     when 101
  156.       begin
  157.         if   @list[@index + 2].code          == 401 then
  158.           if @list[@index + 3].code          == 104 and
  159.              @list[@index + 2].parameters[0] == ""  and
  160.              @list[@index + 1].parameters[0] == ""  and
  161.              @list[@index + 1].parameters[1] == 0   then
  162.             @index += 1
  163.             $game_message.item_help_visible  = @list[@index].parameters[2]
  164.             $game_message.item_help_position = @list[@index].parameters[3] == 0
  165.             @index += 2
  166.             setup_item_choice(@list[@index].parameters)
  167.           end
  168.         end
  169.       rescue
  170.       end
  171.     when 102  # 显示选项
  172.       @index += 1
  173.       setup_choices(@list[@index].parameters)
  174.     when 103  # 数值输入的处理
  175.       @index += 1
  176.       setup_num_input(@list[@index].parameters)
  177.     when 104  # 物品选择的处理
  178.       @index += 1
  179.       setup_item_choice(@list[@index].parameters)
  180.     end
  181.     wait_for_message
  182.   end
  183. end

  184. #==============================================================================
  185. # ■ Game_Message (Patch: orzfly_key_item_description)
  186. #------------------------------------------------------------------------------
  187. #  处理信息窗口状态、文字显示、选项等的类。本类的实例请参考 $game_message 。
  188. #==============================================================================

  189. class Game_Message
  190.   #--------------------------------------------------------------------------
  191.   # ● 定义实例变量 (Patch: orzfly_key_item_description)
  192.   #--------------------------------------------------------------------------
  193.   attr_accessor :item_help_visible        # 物品选择: 显示方式
  194.   attr_accessor :item_help_position       # 物品选择: 显示位置
  195.   #--------------------------------------------------------------------------
  196.   # ● 清除 (Patch: orzfly_key_item_description)
  197.   #--------------------------------------------------------------------------
  198.   alias clear_orzfly_key_item_description clear
  199.   def clear
  200.     clear_orzfly_key_item_description
  201.     @item_help_visible = 0
  202.     @item_help_position = true
  203.   end
  204. end
复制代码
这个?
作者: 1715063941    时间: 2013-2-26 14:22
大概还有这个
  1. #==============================================================================
  2. # ★ RGSS3_アイコンポップ Ver1.2
  3. #==============================================================================
  4. =begin

  5. 作者:tomoaky
  6. webサイト:ひきも記 (http://hikimoki.sakura.ne.jp/)

  7. イベントの頭上に任意のアイコンを表示することができます。

  8. イベントコマンド『スクリプト』で以下を実行してください
  9.   pop_icon(event_id, icon_id, duration)
  10.   
  11.   event_id 番のイベントの頭上に icon_id 番のアイコンが表示されます。
  12.   event_id に 0 を指定すると実行中のイベント自身が対象となり、
  13.   -1 を指定すればプレイヤーが対象となります。
  14.   duration は省略することが可能です、その場合は 120 となります。
  15.   
  16.   例)pop_icon(-1, 17, 300)
  17.   プレイヤーに戦闘不能アイコンを5秒間(300フレーム)表示します
  18.   
  19.   アイコン表示中に pop_icon コマンドを実行しても効果はありません。
  20.   すぐに次のアイコンを表示したい場合は、delete_icon コマンドで
  21.   アイコンを削除してから pop_icon コマンドを実行してください。
  22.   
  23.   例)delete_icon(-1)
  24.   プレイヤーに表示中のアイコンを削除する
  25.   
  26. おまけとしてイベントコマンド『アイテムの増減』『武器の増減』『防具の増減』が
  27. 実行されたとき、自動でアイコンを表示する機能が付いています。
  28.   アイコンを表示する対象はゲーム変数(初期設定では6番)で変更が可能です、
  29.   値は pop_icon コマンドにおける event_id と同様ですが、-2 以下を指定することで
  30.   機能をオフにすることができます。
  31.   

  32. 使用するゲーム変数(初期設定)
  33.   0006
  34.   
  35. 2012.01.19  Ver1.2
  36.  ・表示中のアイコンポップを削除する delete_icon コマンドを追加
  37.  ・自律移動【カスタム】のスクリプトコマンドで
  38.   アイコンポップ機能が動作しない不具合を修正
  39.   
  40. 2011.12.21  Ver1.11
  41.  ・並列処理で event_id に 0 を指定するとアイコンが表示されない不具合を修正
  42.   
  43. 2011.12.17  Ver1.1
  44.  ・コマンドに表示時間を指定する機能を追加しました

  45. 2011.12.15  Ver1.0
  46.   公開

  47. =end

  48. #==============================================================================
  49. # □ 設定項目
  50. #==============================================================================
  51. module TMICPOP
  52.   GRAVITY = 24              # アイコンにかかる重力
  53.   SPEED   = -320            # アイコンの初速(Y方向)
  54.   
  55.   VN_TARGET = 6             # 自動ポップ対象設定として扱うゲーム変数番号
  56. end

  57. #==============================================================================
  58. # □ コマンド
  59. #==============================================================================
  60. module TMICPOP
  61. module Commands
  62.   #--------------------------------------------------------------------------
  63.   # ○ アイコンポップの開始
  64.   #--------------------------------------------------------------------------
  65.   def pop_icon(event_id, icon_id, duration = 120)
  66.     target = get_character(event_id)
  67.     return unless target
  68.     target.icpop_id = icon_id
  69.     target.icpop_duration = duration
  70.   end
  71.   #--------------------------------------------------------------------------
  72.   # ○ アイコンポップの削除
  73.   #--------------------------------------------------------------------------
  74.   def delete_icon(event_id)
  75.     target = get_character(event_id)
  76.     return unless target
  77.     target.icpop_delete_flag = true
  78.   end
  79. end
  80. end # module TMICPOP

  81. #==============================================================================
  82. # ■ Game_CharacterBase
  83. #==============================================================================
  84. class Game_CharacterBase
  85.   #--------------------------------------------------------------------------
  86.   # ● 公開インスタンス変数
  87.   #--------------------------------------------------------------------------
  88.   attr_accessor :icpop_id                 # アイコンポップ ID
  89.   attr_accessor :icpop_duration           # アイコンポップ 表示時間
  90.   attr_accessor :icpop_delete_flag        # アイコンポップ 削除フラグ
  91.   #--------------------------------------------------------------------------
  92.   # ● 公開メンバ変数の初期化
  93.   #--------------------------------------------------------------------------
  94.   alias tmicpop_game_characterbase_init_public_members init_public_members
  95.   def init_public_members
  96.     tmicpop_game_characterbase_init_public_members
  97.     @icpop_id = 0
  98.     @icpop_duration = 0
  99.     @icpop_delete_flag = false
  100.   end
  101. end

  102. #==============================================================================
  103. # ■ Sprite_Character
  104. #==============================================================================
  105. class Sprite_Character
  106.   #--------------------------------------------------------------------------
  107.   # ● オブジェクト初期化
  108.   #     character : Game_Character
  109.   #--------------------------------------------------------------------------
  110.   alias tmicpop_sprite_character_initialize initialize
  111.   def initialize(viewport, character = nil)
  112.     @icpop_duration = 0
  113.     tmicpop_sprite_character_initialize(viewport, character)
  114.   end
  115.   #--------------------------------------------------------------------------
  116.   # ● 解放
  117.   #--------------------------------------------------------------------------
  118.   alias tmicpop_sprite_character_dispose dispose
  119.   def dispose
  120.     dispose_icpop
  121.     tmicpop_sprite_character_dispose
  122.   end
  123.   #--------------------------------------------------------------------------
  124.   # ● フレーム更新
  125.   #--------------------------------------------------------------------------
  126.   alias tmicpop_sprite_character_update update
  127.   def update
  128.     update_icpop
  129.     tmicpop_sprite_character_update
  130.   end
  131.   #--------------------------------------------------------------------------
  132.   # ● 新しいエフェクトの設定
  133.   #--------------------------------------------------------------------------
  134.   alias tmicpop_sprite_character_setup_new_effect setup_new_effect
  135.   def setup_new_effect
  136.     tmicpop_sprite_character_setup_new_effect
  137.     if !@icpop_sprite && @character.icpop_id > 0
  138.       @icpop_id = @character.icpop_id
  139.       @character.icpop_id = 0
  140.       start_icpop
  141.     end
  142.   end
  143.   #--------------------------------------------------------------------------
  144.   # ○ アイコンポップ表示の開始
  145.   #--------------------------------------------------------------------------
  146.   def start_icpop
  147.     dispose_icpop
  148.     @icpop_duration = @icpop_duration_max = @character.icpop_duration
  149.     @icpop_sprite = ::Sprite.new(viewport)
  150.     @icpop_sprite.bitmap = Cache.system("IconSet")
  151.     @icpop_sprite.src_rect.set(@icpop_id % 16 * 24, @icpop_id / 16 * 24, 24, 24)
  152.     @icpop_sprite.ox = 12
  153.     @icpop_sprite.oy = 24
  154.     @icpop_y_plus = 0
  155.     @icpop_y_speed = TMICPOP::SPEED
  156.     update_icpop
  157.   end
  158.   #--------------------------------------------------------------------------
  159.   # ○ アイコンポップの解放
  160.   #--------------------------------------------------------------------------
  161.   def dispose_icpop
  162.     @character.icpop_delete_flag = false
  163.     if @icpop_sprite
  164.       @icpop_sprite.dispose
  165.       @icpop_sprite = nil
  166.     end
  167.   end
  168.   #--------------------------------------------------------------------------
  169.   # ○ アイコンポップの更新
  170.   #--------------------------------------------------------------------------
  171.   def update_icpop
  172.     if @icpop_duration > 0
  173.       @icpop_duration -= 1
  174.       if @character.icpop_delete_flag
  175.         @icpop_duration = 0
  176.         dispose_icpop
  177.       elsif @icpop_duration > 0
  178.         @icpop_sprite.x = x
  179.         @icpop_y_plus += @icpop_y_speed
  180.         @icpop_y_speed += TMICPOP::GRAVITY
  181.         if @icpop_y_plus > 0
  182.           @icpop_y_plus = 0 - @icpop_y_plus
  183.           @icpop_y_speed = 0 - @icpop_y_speed / 2
  184.         end
  185.         @icpop_sprite.y = y - height + (@icpop_y_plus / 256)
  186.         @icpop_sprite.z = z + 200
  187.         @icpop_sprite.opacity = (@icpop_duration < 16 ? @icpop_duration * 16 :
  188.           (@icpop_duration_max - @icpop_duration) * 32)
  189.       else
  190.         dispose_icpop
  191.         @character.icpop_id = 0
  192.       end
  193.     end
  194.   end
  195. end

  196. #==============================================================================
  197. # ■ Game_Event
  198. #==============================================================================
  199. class Game_Event
  200.   include TMICPOP::Commands
  201.   #--------------------------------------------------------------------------
  202.   # ○ キャラクターの取得
  203.   #     param : -1 ならプレイヤー、0 ならこのイベント、それ以外はイベント ID
  204.   #--------------------------------------------------------------------------
  205.   def get_character(param)
  206.     if param < 0
  207.       $game_player
  208.     else
  209.       $game_map.events[param > 0 ? param : @id]
  210.     end
  211.   end
  212. end

  213. #==============================================================================
  214. # ■ Game_Interpreter
  215. #==============================================================================
  216. class Game_Interpreter
  217.   include TMICPOP::Commands
  218.   #--------------------------------------------------------------------------
  219.   # ● アイテムの増減
  220.   #--------------------------------------------------------------------------
  221.   alias tmicpop_game_interpreter_command_126 command_126
  222.   def command_126
  223.     tmicpop_game_interpreter_command_126
  224.     value = operate_value(@params[1], @params[2], @params[3])
  225.     if value > 0
  226.       if $game_variables[TMICPOP::VN_TARGET] >= -1 && !$game_party.in_battle
  227.         item = $data_items[@params[0]]
  228.         pop_icon($game_variables[TMICPOP::VN_TARGET], item.icon_index)
  229.       end
  230.     end
  231.   end
  232.   #--------------------------------------------------------------------------
  233.   # ● 武器の増減
  234.   #--------------------------------------------------------------------------
  235.   alias tmicpop_game_interpreter_command_127 command_127
  236.   def command_127
  237.     tmicpop_game_interpreter_command_127
  238.     value = operate_value(@params[1], @params[2], @params[3])
  239.     if value > 0
  240.       if $game_variables[TMICPOP::VN_TARGET] >= -1 && !$game_party.in_battle
  241.         item = $data_weapons[@params[0]]
  242.         pop_icon($game_variables[TMICPOP::VN_TARGET], item.icon_index)
  243.       end
  244.     end
  245.   end
  246.   #--------------------------------------------------------------------------
  247.   # ● 防具の増減
  248.   #--------------------------------------------------------------------------
  249.   alias tmicpop_game_interpreter_command_128 command_128
  250.   def command_128
  251.     tmicpop_game_interpreter_command_128
  252.     value = operate_value(@params[1], @params[2], @params[3])
  253.     if value > 0
  254.       if $game_variables[TMICPOP::VN_TARGET] >= -1 && !$game_party.in_battle
  255.         item = $data_armors[@params[0]]
  256.         pop_icon($game_variables[TMICPOP::VN_TARGET], item.icon_index)
  257.       end
  258.     end
  259.   end
  260. end

复制代码

作者: 10492222482    时间: 2013-2-28 10:17
1715063941 发表于 2013-2-26 14:22
大概还有这个

表示这两个脚本用了都没有什么变化
作者: 10492222482    时间: 2013-2-28 11:28
10492222482 发表于 2013-2-28 10:17
表示这两个脚本用了都没有什么变化

我的是VX ACE的




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