赞 | 0 |
VIP | 0 |
好人卡 | 1 |
积分 | 1 |
经验 | 2849 |
最后登录 | 2016-10-20 |
在线时间 | 63 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 63 小时
- 注册时间
- 2009-3-25
- 帖子
- 38
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
因为脚本无能,组卡方面就通过仓库系统或者库存商店来实现……
但手牌方面就实在没办法了,请大触们指教,谢谢!
我的渣思路是这样的:
a. 战斗开始前,将所有物品栏内物品(全部为物品,无需考虑武器,防具)的id和数量复制到另一个数组(A)里;(通过事件呼叫脚本实现)
b. 0回合时,失去所有物品栏物品,从数组A中随机获得4件物品加入物品栏,同时更新数组A(去掉这4件);(通过战斗事件+脚本实现)
c. 每个回合开始:从数组A中随机获得1件物品加入物品栏,同时更新数组A(去掉这1件);(通过战斗事件+脚本实现)
d. 战斗过程中可通过技能手动获得x件物品(方法同c); (通过技能设置+脚本实现)
e. 当数组A中没有数组元素时,主角获得状态Y并-y生命(y为虚弱持续的回合数) (通过战斗事件+脚本实现)
之前在这里找到的【随机获取物品】脚本如下,但我不知道怎么在“随机奖品列表”那里修改……请参考,谢谢!
=begin
說明:
事件中執行腳本呼叫來獲取隨機物品
random_gift(group, number)
例:隨機獲得組:A中的三件物品: random_gift(:A, 3)
=end
class Game_Interpreter
Random_Gifts = { #隨機獎品列表
:A => [:i1, :i2, :i3, :w1, :w2, :a1, :a3], #i物品,w武器,每個組用逗號隔開
:B => [:i1_10, :w1_12, :a5_9], #這樣代表物品1~10,武器1~12,護甲5~9
:C => [:w1_60]
}
# 設置開關號碼,當開關開啟時一定會獲取到不同的幾件物品
# 設置為 nil 的話則總是有可能獲取到相同的物品
Diff_Gift_Swth = 1
def display_gift_text(name)
$game_message.add("獲得:" + name)
end
#
def random_gift(group, num)
gifts = []
Random_Gifts[group].each {|g|
g = g.to_s
type = g[0]=="i" ? 0 : g[0]=="w" ? 1 : 2
if g.include?("_")
a, b = g.scan(/\d+/)
for i in a.to_i..b.to_i
gift = which_random_gift(type)[i]
gift ? gifts.push(gift) : (return report_random_gifts_crash(group, g))
end
else
g =~ /(\d+)/
gift = which_random_gift(type)[$1.to_i]
gift ? gifts.push(gift) : (return report_random_gifts_crash(group, g))
end
}
wait_for_message
if Diff_Gift_Swth && $game_switches[Diff_Gift_Swth]
gifts.sample(num).each {|g|
$game_party.gain_item(g, 1)
display_gift_text(g.name)
}
else
num.times {
g = gifts[rand(gifts.size)]
$game_party.gain_item(g, 1)
display_gift_text(g.name)
}
end
$game_message.face_name = ''
$game_message.face_index = 0
$game_message.background = 0
$game_message.position = 2
wait_for_message
end
#
def which_random_gift(type)
case type
when 0; $data_items
when 1; $data_weapons
when 2; $data_armors
end
end
#
def report_random_gifts_crash(group, g)
msgbox("隨機禮物發生錯誤:Group :#{group} Element :#{g}") if $TEST
end
end
|
|