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

Project1

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

[原创发布] 多个背包函数脚本

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
192 小时
注册时间
2010-8-23
帖子
161
跳转到指定楼层
发表于 2013-6-8 13:19:42 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 512195574 于 2014-4-6 22:05 编辑

啊,第一次做脚本,不知道有人发过类似的东西了没有……

下面进入正题:

因为这只是个函数脚本,没有窗口化什么的,如果要做成菜单界面的多背包的话就只是基础了……(还得大改估计)。
这个脚本的功能主要解决游戏中的角色场景切换、而物品常在问题(如OZ中由PET切换到snow,或者梦境中,前者或平时的道具还能使用的情况)
使用之后就可以用这个脚本保存以前有的物品了,换新人物时物品清零,而原主角加入后再将物品得到

条用方法:注释中有了,我在这复制一下= =
事件中执行脚本调用,或者脚本中也是同样的方法


  get_allthing(c,j,d)

取得物品的数据
  c:数参,取得物品ID上限,如果全部取得的话取数据库里的最大值就好了
j:数参,背包名称,因为是第一次所以只做了三个,适用范围1~3
  d:布尔参,true/false,是否清空,true时可以在取得物品数据的同时清空取得的物品




  give_allthing(c,j)

给予玩家背包物品
  c:数参,给予物品ID上限,如果全部给予的话取数据库里的最大值就好了
j:数参,取得j号背包中的东西,同上只做了三个,适用范围1~3



拓展用法:
一窝堆仓库:每次东西过多时取得物品并清除,调用仓库的时候一起拿走……

冲突:
数据类的脚本,因为从没改过、引用任何定义,所以冲突的概率不大。不过遇到类似随机装备这种对低层数据修改的就不大好说了……

修改版在三楼,加了点不算太实用的功能……如果只是做到介绍中的效果的话,这个版本就已经足够了



下面是脚本

  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
复制代码

评分

参与人数 1星屑 +12 收起 理由
存档不能 + 12 实用

查看全部评分

其实我是个三流的画师  ←_←

Lv1.梦旅人

梦石
0
星屑
50
在线时间
192 小时
注册时间
2010-8-23
帖子
161
14
 楼主| 发表于 2014-1-18 20:55:33 | 只看该作者
domodomodomo 发表于 2014-1-4 17:23
get_allthing(15,2,false)会粗错
不对啊,是不是什么地方写错了

才半年RM就忘得差不多了,很不理解当时怎么会这么弄……已修改

  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/false,是否清空,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 0..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
复制代码

点评

尤溪!层主好人一生平安  发表于 2014-1-18 21:50
其实我是个三流的画师  ←_←
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
147 小时
注册时间
2013-12-2
帖子
132
13
发表于 2014-1-4 17:23:43 | 只看该作者
本帖最后由 domodomodomo 于 2014-1-4 19:16 编辑

get_allthing(15,2,false)会粗错
不对啊,是不是什么地方写错了
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

12
发表于 2013-6-9 15:31:00 | 只看该作者
我知道问题出在哪里了···http://pan.baidu.com/share/link? ... 6&uk=3003758822和这个的物品重量系统不兼容

点评

问题是我没物品重量脚本•••  发表于 2013-6-16 22:04
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
192 小时
注册时间
2010-8-23
帖子
161
11
 楼主| 发表于 2013-6-9 14:53:07 | 只看该作者
chd114 发表于 2013-6-9 11:45
你把范例发出来我下来看看怎么用的好了···

测试正常……
Project8.rar (188.06 KB, 下载次数: 21)

点评

你倒是把BUG解决了啊····VX的多个背包函数脚本可以和重量脚本兼容的你这个却不行···  发表于 2013-6-15 20:30
其实我是个三流的画师  ←_←
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

10
发表于 2013-6-9 11:45:41 | 只看该作者
512195574 发表于 2013-6-9 10:36
不知道啊……没用过RMVX,只是因为做的游戏需要切换主角,但是物品不能跟着携带,所以就想到了这个脚本( ...

你把范例发出来我下来看看怎么用的好了···
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
192 小时
注册时间
2010-8-23
帖子
161
9
 楼主| 发表于 2013-6-9 10:36:52 | 只看该作者
本帖最后由 512195574 于 2013-6-9 10:40 编辑
chd114 发表于 2013-6-9 09:39
感觉楼主的说明有些废话···这脚本其实就是那个p神做的RMVX的多背包脚本的RMXP版本吧? ...


不知道啊……没用过RMVX,只是因为做的游戏需要切换主角,但是物品不能跟着携带,所以就想到了这个脚本(我是按照C语言的思路编的,肯定没他那个好,而且没有窗口化,与其叫多背包不如叫做主角从监狱中醒来系统= =)

我这测试的很正常……还有第二版的需要5个参数,如果第一版这样还出错就不知道为什么了= =
我记得你的那个游戏底层数据好像修改的很大……
其实我是个三流的画师  ←_←
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

8
发表于 2013-6-9 09:48:15 | 只看该作者
  1. get_allthing(15,1,false)
复制代码
楼主为什么我这样运行了脚本会出错···
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

7
发表于 2013-6-9 09:39:58 | 只看该作者
感觉楼主的说明有些废话···这脚本其实就是那个p神做的RMVX的多背包脚本的RMXP版本吧?
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
46
在线时间
1502 小时
注册时间
2010-8-27
帖子
392
6
发表于 2013-6-8 18:21:33 | 只看该作者
原来如此,这样就清楚了,不过我觉得楼主还是改一下解释吧,不然物品上限一般人不会往物品id上想的
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
192 小时
注册时间
2010-8-23
帖子
161
5
 楼主| 发表于 2013-6-8 16:53:48 | 只看该作者
本帖最后由 512195574 于 2013-6-8 17:09 编辑
存档不能 发表于 2013-6-8 16:36
我就说随口一问楼主就搞出来了,真是太认真了……
不过我还想问一下,这个上限应该不是指实际记录 ...


原来是指这个意思,解释可能说的不清楚……参数c指的是数据库的物品ID上限……也就是说如果数据库里有200件东西,那么C选200就好了,选150的话,后50个物品就不会读取了……(用数参而不是定义中的参数直接读取最大值的原因,是因为这样可以防止与其他脚本冲突)
而物品数量是全读取的,100红药不知道用的什么脚本得到的(上限不是99吗……),不知道使用后是不是还能给予100个物品。
这个脚本主要就是游戏换主角时物品清空,再到主角来时物品加入用。实行仓库式多背包还得大改……那样不如用R站上现存的仓库脚本了。

至于物品数量上限……也有办法,脚本输入
@shanxian = 50
就行了
表示物品上限为50,也就是说如果这个数值确定50的话,就算有70个物品,读取之后,返回也最多50个……这样就适用于那些将物品上限调整了的脚本了
其实我是个三流的画师  ←_←
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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