加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 Dazz 于 2015-9-26 14:41 编辑
事件里的物品选择,只能选择贵重品,且只能选择能在背包里直接使用的物品,这功能的狭隘程度实在是太气人了。所以我就自己搞了个脚本来强化它。
顺便一提,我特别爱用$的变量-。-
————————————————————以下是脚本内容————————————————————
=begin ■ RPGMakerVXAce 物品选择改良模块 v1.02 发布区:6r论坛 作者:DAZZ 仅仅是改良事件里的物品选择部分的简单脚本。 允许您在事件里的物品选择功能中,更自由地进行物品选择。 在进行物品选择以前,用脚本定义一个数组:$ITEM_SELECT_TARGET 即可使用。 $ITEM_SELECT_TARGET=[道具类别,可否留空,[可选道具ID表]] 道具类别为"I","W","A"的其中一个,分别代表道具(含贵重品)、 武器、护具的选择。 可否留空为true代表可以不选道具就这样结束,为false代表必选。 例如: $ITEM_SELECT_TARGET=["I",false,[1,2,3]] 代表:从1、2、3道具中选择1个,且不能不选。 $ITEM_SELECT_TARGET=["W",true,[4,8,9]] 代表:从4、8、9武器中选择1个,可以不选。 当然您的填写也可以不受拘束,比如这样: list=[] for i in 50..60 do list.push(i) end $ITEM_SELECT_TARGET=["A",false,list] 这就会变成:从50到60号护具中选择1个,且不能不选。 您便可以不用在脚本里把50到60的数字写个遍了。 ※本脚本使用时,必须注意以下事项:※ ●如果你设置了“必须选择”,而你的背包里可选的道具 一件也没有,则你会被卡在那里,无法执行任何操作。 ●如果你定义了$ITEM_SELECT_TARGET但未及时使用它, 你在菜单栏等地方使用背包里的道具的话可能受到干扰。 所以请在定义这个全球变量后,立刻选择物品。 ●物品选择完毕后,本脚本会自动回收$ITEM_SELECT_TARGET 这个全球变量(就是把这个变量设为nil来删除它), 使用时您可不必担心全球变量的问题。 您无须声明使用情况,也无须为作者署名。可任意修改、传播。 若在使用时出现纠纷问题,作者概不负责。 更新履历: v1.02又修复了一个低级BUG…… v1.01修复了一个低级BUG…… v1.0发行 =end class Window_ItemList < Window_Selectable #◇创建可选道具表 alias make_item_list_DAZZ make_item_list def make_item_list if $ITEM_SELECT_TARGET==nil make_item_list_DAZZ else type=$ITEM_SELECT_TARGET[0] list=$ITEM_SELECT_TARGET[2] case type when "I" @data=$game_party.items.select{|item|list.include?(item.id)} when "W" @data=$game_party.weapons.select{|item|list.include?(item.id)} when "A" @data=$game_party.armors.select{|item|list.include?(item.id)} end @data.push(nil) if $ITEM_SELECT_TARGET[1]==true end end #◇是否可使用道具(防止不可直接使用的道具变成无法被选择的BUG) alias enable_DAZZ enable? def enable?(item) if $ITEM_SELECT_TARGET==nil return enable_DAZZ(item) else return true end end end class Window_KeyItem < Window_ItemList #◇回收全球变量 alias on_ok_DAZZ on_ok def on_ok $ITEM_SELECT_TARGET=nil on_ok_DAZZ end #◇回收全球变量 alias on_cancel_DAZZ on_cancel def on_cancel $ITEM_SELECT_TARGET=nil on_cancel_DAZZ end #●禁用取消 def cancel_enabled? if $ITEM_SELECT_TARGET !=nil && $ITEM_SELECT_TARGET[1]==false return false else return handle?(:cancel) end end end
=begin
■ RPGMakerVXAce 物品选择改良模块 v1.02
发布区:6r论坛
作者:DAZZ
仅仅是改良事件里的物品选择部分的简单脚本。
允许您在事件里的物品选择功能中,更自由地进行物品选择。
在进行物品选择以前,用脚本定义一个数组:$ITEM_SELECT_TARGET
即可使用。
$ITEM_SELECT_TARGET=[道具类别,可否留空,[可选道具ID表]]
道具类别为"I","W","A"的其中一个,分别代表道具(含贵重品)、
武器、护具的选择。
可否留空为true代表可以不选道具就这样结束,为false代表必选。
例如:
$ITEM_SELECT_TARGET=["I",false,[1,2,3]]
代表:从1、2、3道具中选择1个,且不能不选。
$ITEM_SELECT_TARGET=["W",true,[4,8,9]]
代表:从4、8、9武器中选择1个,可以不选。
当然您的填写也可以不受拘束,比如这样:
list=[]
for i in 50..60 do
list.push(i)
end
$ITEM_SELECT_TARGET=["A",false,list]
这就会变成:从50到60号护具中选择1个,且不能不选。
您便可以不用在脚本里把50到60的数字写个遍了。
※本脚本使用时,必须注意以下事项:※
●如果你设置了“必须选择”,而你的背包里可选的道具
一件也没有,则你会被卡在那里,无法执行任何操作。
●如果你定义了$ITEM_SELECT_TARGET但未及时使用它,
你在菜单栏等地方使用背包里的道具的话可能受到干扰。
所以请在定义这个全球变量后,立刻选择物品。
●物品选择完毕后,本脚本会自动回收$ITEM_SELECT_TARGET
这个全球变量(就是把这个变量设为nil来删除它),
使用时您可不必担心全球变量的问题。
您无须声明使用情况,也无须为作者署名。可任意修改、传播。
若在使用时出现纠纷问题,作者概不负责。
更新履历:
v1.02又修复了一个低级BUG……
v1.01修复了一个低级BUG……
v1.0发行
=end
class Window_ItemList < Window_Selectable
#◇创建可选道具表
alias make_item_list_DAZZ make_item_list
def make_item_list
if $ITEM_SELECT_TARGET==nil
make_item_list_DAZZ
else
type=$ITEM_SELECT_TARGET[0]
list=$ITEM_SELECT_TARGET[2]
case type
when "I"
@data=$game_party.items.select{|item|list.include?(item.id)}
when "W"
@data=$game_party.weapons.select{|item|list.include?(item.id)}
when "A"
@data=$game_party.armors.select{|item|list.include?(item.id)}
end
@data.push(nil) if $ITEM_SELECT_TARGET[1]==true
end
end
#◇是否可使用道具(防止不可直接使用的道具变成无法被选择的BUG)
alias enable_DAZZ enable?
def enable?(item)
if $ITEM_SELECT_TARGET==nil
return enable_DAZZ(item)
else
return true
end
end
end
class Window_KeyItem < Window_ItemList
#◇回收全球变量
alias on_ok_DAZZ on_ok
def on_ok
$ITEM_SELECT_TARGET=nil
on_ok_DAZZ
end
#◇回收全球变量
alias on_cancel_DAZZ on_cancel
def on_cancel
$ITEM_SELECT_TARGET=nil
on_cancel_DAZZ
end
#●禁用取消
def cancel_enabled?
if $ITEM_SELECT_TARGET !=nil && $ITEM_SELECT_TARGET[1]==false
return false
else
return handle?(:cancel)
end
end
end
————————————————————到此为止———————————————————— |