设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1229|回复: 1
打印 上一主题 下一主题

[已经过期] 多个背包函数脚本调用第二第三背包出错

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
147 小时
注册时间
2013-12-2
帖子
132
跳转到指定楼层
1
发表于 2014-1-9 20:22:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
按照这个脚本给的方法
get_allthing(99,1,true)
  give_allthing(99,2)
按理说这里应该是保存现有背包的数据到背包1里面,然后清空,再加载第二背包的数据,可是执行之后会提示 $game_party.gain_item(i,itempack2)出错,可是也看不出哪里有错,第一背包是可以用的,按理说其余的背包用同样的脚本也应该没问题的才对 ……瞎了

  1. =begin
  2. ===============================================================================
  3.   多个背包函数脚本……(请原谅我的语文水平)
  4.   作者:512195574
  5.   调用方法:
  6.   get_allthing(c,j,d)
  7.   give_allthing(c,j)
  8.   c:数参,取得物品上限,如果全部取得的话取数据库里的最大值就好了
  9.   j:数参,背包名称,因为是第一版所以只做了三个,适用范围1~3
  10.   d:布尔参,是否清空,true时可以在取得物品数据的同时清空取得的物品
  11. ===============================================================================
  12. =end
  13. def get_allthing(c,j,d)
  14.   if j == 1
  15.     @itempack1 = []
  16.     @weaponpack1 = []
  17.     @armorpack1 = []
  18.     for i in 0..c
  19.       @itempack1[i]=$game_party.item_number(i)
  20.       @weaponpack1[i]=$game_party.weapon_number(i)
  21.       @armorpack1[i]=$game_party.armor_number(i)
  22.     end
  23.   end
  24.   if j == 2
  25.     itempack2 = []
  26.     weaponpack2 = []
  27.     armorpack2 = []
  28.     for i in 1..c
  29.       itempack2[i]=$game_party.item_number(i)
  30.       weaponpack2[i]=$game_party.weapon_number(i)
  31.       armorpack2[i]=$game_party.armor_number(i)
  32.     end
  33.   end
  34.   if j == 3
  35.     itempack3 = []
  36.     weaponpack3 = []
  37.     armorpack3 = []
  38.     for i in 0..c
  39.       itempack3[i]=$game_party.item_number(i)
  40.       weaponpack3[i]=$game_party.weapon_number(i)
  41.       armorpack3[i]=$game_party.armor_number(i)
  42.     end
  43.   end
  44.   if d == true
  45.     for i in 0..c
  46.       $game_party.gain_item(i,-99)
  47.       $game_party.gain_weapon(i,-99)
  48.       $game_party.gain_armor(i,-99)
  49.     end
  50.   end
  51. end

  52. def give_allthing(c,j)
  53.   if j == 1
  54.     for i in 0..c
  55.       $game_party.gain_item(i,@itempack1[i])
  56.       $game_party.gain_weapon(i,@weaponpack1[i])
  57.       $game_party.gain_armor(i,@armorpack1[i])
  58.     end
  59.   end
  60.   if j == 2
  61.     for i in 0..c
  62.       $game_party.gain_item(i,itempack2[i])
  63.       $game_party.gain_weapon(i,weaponpack2[i])
  64.       $game_party.gain_armor(i,armorpack2[i])
  65.     end
  66.   end
  67.   if j == 3
  68.     for i in 0..c
  69.       $game_party.gain_item(i,itempack3[i])
  70.       $game_party.gain_weapon(i,weaponpack3[i])
  71.       $game_party.gain_armor(i,armorpack3[i])
  72.     end
  73.   end
  74. end
复制代码
脚本原帖:http://rpg.blue/forum.php?mod=viewthread&tid=314788

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
2
发表于 2014-1-9 21:52:13 | 只看该作者
本帖最后由 恋′挂机 于 2014-1-9 21:53 编辑
  1. # 多背包
  2. # 使用方法:
  3. # $game_temp.pack 背包全局变量
  4. # $game_temp.pack.gain(0, 1, 10) 获得物品(背包索引<数组>, 物品id, 物品数量)
  5. # $game_temp.pack.add 新增背包

  6. # 其实是很简单的赋值而已。。。

  7. =begin
  8. 假定 0 号背包存放物品
  9. 获取该背包物品
  10. item = []
  11. for i in $game_temp.pack[0].keys
  12.            物品RPG::Item         物品数量
  13.   item << [$data_items[i], $game_temp.pack[0][i]]
  14. end

  15. 假定 1 号背包存放防具
  16. 获取该背包防具
  17. armor = []
  18. for i in $game_temp.pack[0].keys
  19.            物品RPG::Armor         防具数量
  20.   armor << [$data_armors[i], $game_temp.pack[0][i]]
  21. end
  22. =end

  23. class Pack
  24.   def initialize
  25.     @pack = [{}]
  26.   end
  27.   def add
  28.     @pack << {}
  29.     return
  30.   end
  31.   def num(n)
  32.     return @pack[n]
  33.   end
  34.   def gain(num, id, n)
  35.     if @pack[num][id] == nil
  36.       @pack[num][id] = n
  37.     else
  38.       @pack[num][id] += n
  39.     end
  40.     return
  41.   end
  42. end

  43. class Game_Temp
  44.   attr_accessor :pack
  45.   alias xxyy_rrmm_initialize initialize
  46.   def initialize
  47.     xxyy_rrmm_initialize
  48.     @pack = Pack.new
  49.   end
  50. end
复制代码

点评

是要保存它们,换到背包2时,背包1的物品保存并清除,替换为背包2物品,切换回背包1时读取之前保存的背包1的物品,背包2保存并清除以此类推  发表于 2014-1-9 23:02
00感谢回答,不过从脚本来看似乎不是我想要的效果,其实我想要的是两个背包能相互切换,背包各自拾取到的物品也不会相互影响  发表于 2014-1-9 22:57

评分

参与人数 1星屑 +45 收起 理由
myownroc + 45 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-9-30 11:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表