Project1
标题:
求个物品栏脚本
[打印本页]
作者:
10492222482
时间:
2013-2-26 11:42
标题:
求个物品栏脚本
RT。要可以兼容的
作者:
1715063941
时间:
2013-2-26 14:21
#encoding:utf-8
###############################################################################
# ■ [VA] 事件 [物品选择处理] 时显示物品描述 1.0.0.0
#------------------------------------------------------------------------------
# 作者: orzFly [http://orzfly.com]
# 脚本主页: http://rgss.orzfly.com/key-item-description-va
#------------------------------------------------------------------------------
=begin
### 概况
功能是在当使用事件 [物品选择处理] 的时候能够显示出物品描述。
物品描述的显示,默认情况下将显示于选择框上侧。
您可以在 [显示文章] 和 [物品选择处理] 之间插入一个**空白**的 [显示文章],
请注意一定是空白的,文本内容留空并且头像设置也留空。此时这个指令的:
* 窗口背景: 代表物品描述是否出现。即 `$game_message.item_help_visible` 属性。
* [普通窗口] 即属性值 `0`,代表出现。
* [暗色背景] 即属性值 `1`,代表按下 Shift 键时出现。
此时位置设置将不起作用。
* [透明窗口] 即属性值 `2`,代表不出现。
* 显示位置 : 代表物品描述显示位置。即 `$game_message.item_help_position` 属性。
* [居上] 即属性值 `true`,代表出现在物品栏选择框上侧。
* [居下] 即属性值 `false`,代表出现在物品栏选择框下侧。
### 更新日志
* **1.0.0.0** January 16, 2012
* 初版。
=end
###############################################################################
#==============================================================================
# ■ Window_Message (Patch: orzfly_key_item_description)
#------------------------------------------------------------------------------
# 显示文字信息的窗口。
#==============================================================================
class Window_Message < Window_Base
#--------------------------------------------------------------------------
# ● 生成所有窗口 (Patch: orzfly_key_item_description)
#--------------------------------------------------------------------------
alias create_all_windows_orzfly_key_item_description create_all_windows
def create_all_windows
create_all_windows_orzfly_key_item_description
@item_window.help_window = Window_Help.new
@item_window.help_window.openness = 0
end
#--------------------------------------------------------------------------
# ● 更新所有窗口 (Patch: orzfly_key_item_description)
#--------------------------------------------------------------------------
alias update_all_windows_orzfly_key_item_description update_all_windows
def update_all_windows
update_all_windows_orzfly_key_item_description
@item_window.help_window.update
end
#--------------------------------------------------------------------------
# ● 释放所有窗口 (Patch: orzfly_key_item_description)
#--------------------------------------------------------------------------
alias dispose_all_windows_orzfly_key_item_description dispose_all_windows
def dispose_all_windows
dispose_all_windows_orzfly_key_item_description
@item_window.help_window.dispose
end
end
#==============================================================================
# ■ Window_KeyItem (Patch: orzfly_key_item_description)
#------------------------------------------------------------------------------
# 此窗口使用于事件指令中的“选择物品”功能。
#==============================================================================
class Window_KeyItem < Window_ItemList
#--------------------------------------------------------------------------
# ● 打开窗口 (Rewrite: orzfly_key_item_description)
#--------------------------------------------------------------------------
def open
self.help_window.open if $game_message.item_help_visible == 0
super
end
#--------------------------------------------------------------------------
# ● 关闭窗口 (Rewrite: orzfly_key_item_description)
#--------------------------------------------------------------------------
def close
self.help_window.close if $game_message.item_help_visible == 0
super
end
#--------------------------------------------------------------------------
# ● 更新窗口的位置 (Rewrite: orzfly_key_item_description)
#--------------------------------------------------------------------------
def update_placement
if $game_message.item_help_visible == 0
if $game_message.item_help_position
if @message_window.y >= Graphics.height / 2
self.help_window.y = 0
self.y = help_window.height
else
self.help_window.y = Graphics.height -
self.help_window.height - self.height
self.y = Graphics.height - self.height
end
else
if @message_window.y >= Graphics.height / 2
self.y = 0
self.help_window.y = self.height
else
self.help_window.y = Graphics.height - help_window.height
self.y = Graphics.height - self.help_window.height - self.height
end
end
elsif $game_message.item_help_visible == 1
if @message_window.y >= Graphics.height / 2
self.y = 0
self.help_window.y = self.height
else
self.help_window.y = Graphics.height -
self.help_window.height - self.height
self.y = Graphics.height - self.height
end
else
if @message_window.y >= Graphics.height / 2
self.y = 0
else
self.y = Graphics.height - height
end
end
end
#--------------------------------------------------------------------------
# ● “确定”和“取消”的处理 (Rewrite: orzfly_key_item_description)
#--------------------------------------------------------------------------
def process_handling
return unless open? && active
if $game_message.item_help_visible == 1
if Input.press?(:A)
self.help_window.open if self.help_window.close?
else
self.help_window.close if self.help_window.open?
end
end
return super
end
end
#==============================================================================
# ■ Game_Interpreter (Patch: orzfly_key_item_description)
#------------------------------------------------------------------------------
# 事件指令的解释器。
# 本类在 Game_Map、Game_Troop、Game_Event 类的内部使用。
#==============================================================================
class Game_Interpreter
#--------------------------------------------------------------------------
# ● 显示文字 (Rewrite: orzfly_key_item_description)
#--------------------------------------------------------------------------
def command_101
wait_for_message
$game_message.face_name = @params[0]
$game_message.face_index = @params[1]
$game_message.background = @params[2]
$game_message.position = @params[3]
while next_event_code == 401 # 文字数据
@index += 1
$game_message.add(@list[@index].parameters[0])
end
case next_event_code
when 101
begin
if @list[@index + 2].code == 401 then
if @list[@index + 3].code == 104 and
@list[@index + 2].parameters[0] == "" and
@list[@index + 1].parameters[0] == "" and
@list[@index + 1].parameters[1] == 0 then
@index += 1
$game_message.item_help_visible = @list[@index].parameters[2]
$game_message.item_help_position = @list[@index].parameters[3] == 0
@index += 2
setup_item_choice(@list[@index].parameters)
end
end
rescue
end
when 102 # 显示选项
@index += 1
setup_choices(@list[@index].parameters)
when 103 # 数值输入的处理
@index += 1
setup_num_input(@list[@index].parameters)
when 104 # 物品选择的处理
@index += 1
setup_item_choice(@list[@index].parameters)
end
wait_for_message
end
end
#==============================================================================
# ■ Game_Message (Patch: orzfly_key_item_description)
#------------------------------------------------------------------------------
# 处理信息窗口状态、文字显示、选项等的类。本类的实例请参考 $game_message 。
#==============================================================================
class Game_Message
#--------------------------------------------------------------------------
# ● 定义实例变量 (Patch: orzfly_key_item_description)
#--------------------------------------------------------------------------
attr_accessor :item_help_visible # 物品选择: 显示方式
attr_accessor :item_help_position # 物品选择: 显示位置
#--------------------------------------------------------------------------
# ● 清除 (Patch: orzfly_key_item_description)
#--------------------------------------------------------------------------
alias clear_orzfly_key_item_description clear
def clear
clear_orzfly_key_item_description
@item_help_visible = 0
@item_help_position = true
end
end
复制代码
这个?
作者:
1715063941
时间:
2013-2-26 14:22
大概还有这个
#==============================================================================
# ★ RGSS3_アイコンポップ Ver1.2
#==============================================================================
=begin
作者:tomoaky
webサイト:ひきも記 (http://hikimoki.sakura.ne.jp/)
イベントの頭上に任意のアイコンを表示することができます。
イベントコマンド『スクリプト』で以下を実行してください
pop_icon(event_id, icon_id, duration)
event_id 番のイベントの頭上に icon_id 番のアイコンが表示されます。
event_id に 0 を指定すると実行中のイベント自身が対象となり、
-1 を指定すればプレイヤーが対象となります。
duration は省略することが可能です、その場合は 120 となります。
例)pop_icon(-1, 17, 300)
プレイヤーに戦闘不能アイコンを5秒間(300フレーム)表示します
アイコン表示中に pop_icon コマンドを実行しても効果はありません。
すぐに次のアイコンを表示したい場合は、delete_icon コマンドで
アイコンを削除してから pop_icon コマンドを実行してください。
例)delete_icon(-1)
プレイヤーに表示中のアイコンを削除する
おまけとしてイベントコマンド『アイテムの増減』『武器の増減』『防具の増減』が
実行されたとき、自動でアイコンを表示する機能が付いています。
アイコンを表示する対象はゲーム変数(初期設定では6番)で変更が可能です、
値は pop_icon コマンドにおける event_id と同様ですが、-2 以下を指定することで
機能をオフにすることができます。
使用するゲーム変数(初期設定)
0006
2012.01.19 Ver1.2
・表示中のアイコンポップを削除する delete_icon コマンドを追加
・自律移動【カスタム】のスクリプトコマンドで
アイコンポップ機能が動作しない不具合を修正
2011.12.21 Ver1.11
・並列処理で event_id に 0 を指定するとアイコンが表示されない不具合を修正
2011.12.17 Ver1.1
・コマンドに表示時間を指定する機能を追加しました
2011.12.15 Ver1.0
公開
=end
#==============================================================================
# □ 設定項目
#==============================================================================
module TMICPOP
GRAVITY = 24 # アイコンにかかる重力
SPEED = -320 # アイコンの初速(Y方向)
VN_TARGET = 6 # 自動ポップ対象設定として扱うゲーム変数番号
end
#==============================================================================
# □ コマンド
#==============================================================================
module TMICPOP
module Commands
#--------------------------------------------------------------------------
# ○ アイコンポップの開始
#--------------------------------------------------------------------------
def pop_icon(event_id, icon_id, duration = 120)
target = get_character(event_id)
return unless target
target.icpop_id = icon_id
target.icpop_duration = duration
end
#--------------------------------------------------------------------------
# ○ アイコンポップの削除
#--------------------------------------------------------------------------
def delete_icon(event_id)
target = get_character(event_id)
return unless target
target.icpop_delete_flag = true
end
end
end # module TMICPOP
#==============================================================================
# ■ Game_CharacterBase
#==============================================================================
class Game_CharacterBase
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :icpop_id # アイコンポップ ID
attr_accessor :icpop_duration # アイコンポップ 表示時間
attr_accessor :icpop_delete_flag # アイコンポップ 削除フラグ
#--------------------------------------------------------------------------
# ● 公開メンバ変数の初期化
#--------------------------------------------------------------------------
alias tmicpop_game_characterbase_init_public_members init_public_members
def init_public_members
tmicpop_game_characterbase_init_public_members
@icpop_id = 0
@icpop_duration = 0
@icpop_delete_flag = false
end
end
#==============================================================================
# ■ Sprite_Character
#==============================================================================
class Sprite_Character
#--------------------------------------------------------------------------
# ● オブジェクト初期化
# character : Game_Character
#--------------------------------------------------------------------------
alias tmicpop_sprite_character_initialize initialize
def initialize(viewport, character = nil)
@icpop_duration = 0
tmicpop_sprite_character_initialize(viewport, character)
end
#--------------------------------------------------------------------------
# ● 解放
#--------------------------------------------------------------------------
alias tmicpop_sprite_character_dispose dispose
def dispose
dispose_icpop
tmicpop_sprite_character_dispose
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
alias tmicpop_sprite_character_update update
def update
update_icpop
tmicpop_sprite_character_update
end
#--------------------------------------------------------------------------
# ● 新しいエフェクトの設定
#--------------------------------------------------------------------------
alias tmicpop_sprite_character_setup_new_effect setup_new_effect
def setup_new_effect
tmicpop_sprite_character_setup_new_effect
if !@icpop_sprite && @character.icpop_id > 0
@icpop_id = @character.icpop_id
@character.icpop_id = 0
start_icpop
end
end
#--------------------------------------------------------------------------
# ○ アイコンポップ表示の開始
#--------------------------------------------------------------------------
def start_icpop
dispose_icpop
@icpop_duration = @icpop_duration_max = @character.icpop_duration
@icpop_sprite = ::Sprite.new(viewport)
@icpop_sprite.bitmap = Cache.system("IconSet")
@icpop_sprite.src_rect.set(@icpop_id % 16 * 24, @icpop_id / 16 * 24, 24, 24)
@icpop_sprite.ox = 12
@icpop_sprite.oy = 24
@icpop_y_plus = 0
@icpop_y_speed = TMICPOP::SPEED
update_icpop
end
#--------------------------------------------------------------------------
# ○ アイコンポップの解放
#--------------------------------------------------------------------------
def dispose_icpop
@character.icpop_delete_flag = false
if @icpop_sprite
@icpop_sprite.dispose
@icpop_sprite = nil
end
end
#--------------------------------------------------------------------------
# ○ アイコンポップの更新
#--------------------------------------------------------------------------
def update_icpop
if @icpop_duration > 0
@icpop_duration -= 1
if @character.icpop_delete_flag
@icpop_duration = 0
dispose_icpop
elsif @icpop_duration > 0
@icpop_sprite.x = x
@icpop_y_plus += @icpop_y_speed
@icpop_y_speed += TMICPOP::GRAVITY
if @icpop_y_plus > 0
@icpop_y_plus = 0 - @icpop_y_plus
@icpop_y_speed = 0 - @icpop_y_speed / 2
end
@icpop_sprite.y = y - height + (@icpop_y_plus / 256)
@icpop_sprite.z = z + 200
@icpop_sprite.opacity = (@icpop_duration < 16 ? @icpop_duration * 16 :
(@icpop_duration_max - @icpop_duration) * 32)
else
dispose_icpop
@character.icpop_id = 0
end
end
end
end
#==============================================================================
# ■ Game_Event
#==============================================================================
class Game_Event
include TMICPOP::Commands
#--------------------------------------------------------------------------
# ○ キャラクターの取得
# param : -1 ならプレイヤー、0 ならこのイベント、それ以外はイベント ID
#--------------------------------------------------------------------------
def get_character(param)
if param < 0
$game_player
else
$game_map.events[param > 0 ? param : @id]
end
end
end
#==============================================================================
# ■ Game_Interpreter
#==============================================================================
class Game_Interpreter
include TMICPOP::Commands
#--------------------------------------------------------------------------
# ● アイテムの増減
#--------------------------------------------------------------------------
alias tmicpop_game_interpreter_command_126 command_126
def command_126
tmicpop_game_interpreter_command_126
value = operate_value(@params[1], @params[2], @params[3])
if value > 0
if $game_variables[TMICPOP::VN_TARGET] >= -1 && !$game_party.in_battle
item = $data_items[@params[0]]
pop_icon($game_variables[TMICPOP::VN_TARGET], item.icon_index)
end
end
end
#--------------------------------------------------------------------------
# ● 武器の増減
#--------------------------------------------------------------------------
alias tmicpop_game_interpreter_command_127 command_127
def command_127
tmicpop_game_interpreter_command_127
value = operate_value(@params[1], @params[2], @params[3])
if value > 0
if $game_variables[TMICPOP::VN_TARGET] >= -1 && !$game_party.in_battle
item = $data_weapons[@params[0]]
pop_icon($game_variables[TMICPOP::VN_TARGET], item.icon_index)
end
end
end
#--------------------------------------------------------------------------
# ● 防具の増減
#--------------------------------------------------------------------------
alias tmicpop_game_interpreter_command_128 command_128
def command_128
tmicpop_game_interpreter_command_128
value = operate_value(@params[1], @params[2], @params[3])
if value > 0
if $game_variables[TMICPOP::VN_TARGET] >= -1 && !$game_party.in_battle
item = $data_armors[@params[0]]
pop_icon($game_variables[TMICPOP::VN_TARGET], item.icon_index)
end
end
end
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