Project1
标题:
多个背包函数脚本调用第二第三背包出错
[打印本页]
作者:
domodomodomo
时间:
2014-1-9 20:22
标题:
多个背包函数脚本调用第二第三背包出错
按照这个脚本给的方法
get_allthing(99,1,true)
give_allthing(99,2)
按理说这里应该是保存现有背包的数据到背包1里面,然后清空,再加载第二背包的数据,可是执行之后会提示 $game_party.gain_item(i,itempack2
)出错,可是也看不出哪里有错,第一背包是可以用的,按理说其余的背包用同样的脚本也应该没问题的才对 ……
瞎了
=begin
===============================================================================
多个背包函数脚本……(请原谅我的语文水平)
作者:512195574
调用方法:
get_allthing(c,j,d)
give_allthing(c,j)
c:数参,取得物品上限,如果全部取得的话取数据库里的最大值就好了
j:数参,背包名称,因为是第一版所以只做了三个,适用范围1~3
d:布尔参,是否清空,true时可以在取得物品数据的同时清空取得的物品
===============================================================================
=end
def get_allthing(c,j,d)
if j == 1
@itempack1 = []
@weaponpack1 = []
@armorpack1 = []
for i in 0..c
@itempack1[i]=$game_party.item_number(i)
@weaponpack1[i]=$game_party.weapon_number(i)
@armorpack1[i]=$game_party.armor_number(i)
end
end
if j == 2
itempack2 = []
weaponpack2 = []
armorpack2 = []
for i in 1..c
itempack2[i]=$game_party.item_number(i)
weaponpack2[i]=$game_party.weapon_number(i)
armorpack2[i]=$game_party.armor_number(i)
end
end
if j == 3
itempack3 = []
weaponpack3 = []
armorpack3 = []
for i in 0..c
itempack3[i]=$game_party.item_number(i)
weaponpack3[i]=$game_party.weapon_number(i)
armorpack3[i]=$game_party.armor_number(i)
end
end
if d == true
for i in 0..c
$game_party.gain_item(i,-99)
$game_party.gain_weapon(i,-99)
$game_party.gain_armor(i,-99)
end
end
end
def give_allthing(c,j)
if j == 1
for i in 0..c
$game_party.gain_item(i,@itempack1[i])
$game_party.gain_weapon(i,@weaponpack1[i])
$game_party.gain_armor(i,@armorpack1[i])
end
end
if j == 2
for i in 0..c
$game_party.gain_item(i,itempack2[i])
$game_party.gain_weapon(i,weaponpack2[i])
$game_party.gain_armor(i,armorpack2[i])
end
end
if j == 3
for i in 0..c
$game_party.gain_item(i,itempack3[i])
$game_party.gain_weapon(i,weaponpack3[i])
$game_party.gain_armor(i,armorpack3[i])
end
end
end
复制代码
脚本原帖:
http://rpg.blue/forum.php?mod=viewthread&tid=314788
作者:
恐惧剑刃
时间:
2014-1-9 21:52
本帖最后由 恋′挂机 于 2014-1-9 21:53 编辑
# 多背包
# 使用方法:
# $game_temp.pack 背包全局变量
# $game_temp.pack.gain(0, 1, 10) 获得物品(背包索引<数组>, 物品id, 物品数量)
# $game_temp.pack.add 新增背包
# 其实是很简单的赋值而已。。。
=begin
假定 0 号背包存放物品
获取该背包物品
item = []
for i in $game_temp.pack[0].keys
物品RPG::Item 物品数量
item << [$data_items[i], $game_temp.pack[0][i]]
end
假定 1 号背包存放防具
获取该背包防具
armor = []
for i in $game_temp.pack[0].keys
物品RPG::Armor 防具数量
armor << [$data_armors[i], $game_temp.pack[0][i]]
end
=end
class Pack
def initialize
@pack = [{}]
end
def add
@pack << {}
return
end
def num(n)
return @pack[n]
end
def gain(num, id, n)
if @pack[num][id] == nil
@pack[num][id] = n
else
@pack[num][id] += n
end
return
end
end
class Game_Temp
attr_accessor :pack
alias xxyy_rrmm_initialize initialize
def initialize
xxyy_rrmm_initialize
@pack = Pack.new
end
end
复制代码
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1