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

Project1

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

[已经解决] 物品上限分歧

 关闭 [复制链接]

Lv3.寻梦者

梦石
0
星屑
1433
在线时间
1705 小时
注册时间
2011-8-17
帖子
818
跳转到指定楼层
1
发表于 2011-10-9 11:15:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想在事件里弄一条“背包里所有物品的总数是否大于X的情况下”的条件分歧,请问能否实现?
roguelike求生RPG研发中....

Lv2.观梦者

梦石
0
星屑
280
在线时间
1374 小时
注册时间
2005-10-16
帖子
5113

贵宾

2
发表于 2011-10-9 11:27:41 | 只看该作者
本帖最后由 亿万星辰 于 2011-10-9 12:59 编辑

用个循环
$game_party.item_number(物品ID)
$game_party.weapon_number(物品ID)
$game_party.armor_number(物品ID)

用事件里的脚本操作,通过循环物品ID,把物品总数统计起来;循环武器ID,把武器总数统计起来;循环防具ID,把防具总数统计起来。
  1. for i in 1...$data_items.size
  2. $game_variables[X]+=
  3. $game_party.item_number(i)
  4. end
复制代码
这是事件的方法,当然还有脚本的方法。

因为Game_Party中物品、武器、防具都是通过Hash来存储的,所以只要把Game_Party中的@items、@weapons、@armors的value中的各个数组元素相加起来即可。���

点评

能一步一步慢慢来么……=。=  发表于 2011-10-9 13:46
那前面那3个循环的是做什么用的?  发表于 2011-10-9 13:42
把上面扩起来的代码放到事件的脚本里运行,当然要把X改成你需要的变量ID,然后这个变量里存储的就是当前所有物品的数量了。自己多尝试一下吧!  发表于 2011-10-9 12:58
.....能说说步骤么...循环那3句脚本后面的物品ID没明白...然后在分歧里填什么我也没搞明白...一头雾水,我脚本盲.....抱歉了  发表于 2011-10-9 12:52
自己试试看先  发表于 2011-10-9 11:49
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
46 小时
注册时间
2011-10-7
帖子
95
3
发表于 2011-10-9 12:39:11 | 只看该作者
本帖最后由 我不是字母君 于 2011-10-9 12:56 编辑
  1. class Game_Party
  2.   def item_num(b)
  3.     a=0
  4.     for i in 1...$data_items.size
  5.       a+=item_number(i)
  6.     end
  7.     $game_variables[b]=a
  8.   end
  9.   def weapon_num()
  10.     a=0
  11.     for i in 1...$data_weapons.size
  12.       a+=weapon_number(i)
  13.     end
  14.     $game_variables[b]=a
  15.   end
  16.   def armor_num()
  17.     a=0
  18.     for i in 1...$data_armors.size
  19.       a+=armor_number(i)
  20.     end
  21.     $game_variables[b]=a
  22.   end
  23. end
复制代码
插入这个代码然后运行脚本$game_party.item_num(6)即可把物品总数保存到编号为6的变量。依此类推

点评

繁琐了,可看看我回帖里所提到的脚本方法的描述~  发表于 2011-10-9 12:53
能说下步骤么,脚本盲,没明白下面那3是什么意思  发表于 2011-10-9 12:53
我是傻逼
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
280
在线时间
1374 小时
注册时间
2005-10-16
帖子
5113

贵宾

4
发表于 2011-10-9 13:18:35 | 只看该作者
  1. class Game_Party
  2.   def total_item
  3.     n = 0
  4.     @items.values.each{|v|n += v}
  5.     return n
  6.   end
  7.   def total_weapon
  8.     n = 0
  9.     @weapons.values.each{|v|n += v}
  10.     return n
  11.   end
  12.   def total_armor
  13.     n = 0
  14.     @armors.values.each{|v|n += v}
  15.     return n
  16.   end
  17. end
复制代码
事件-脚本
$game_variables[X]=$game_party.total_item #所有物品总数
$game_variables[X]=$game_party.total_weapon #所有武器总数
$game_variables[X]=$game_party.total_armor #所有防具总数

点评

帮下忙,看下5楼  发表于 2011-10-9 14:14
关键是要在折腾中有所收获……  发表于 2011-10-9 13:51
弄好了,受教了.....折腾的够呛啊~  发表于 2011-10-9 13:47
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1433
在线时间
1705 小时
注册时间
2011-8-17
帖子
818
5
 楼主| 发表于 2011-10-9 14:12:17 | 只看该作者
本帖最后由 黑舞嗜 于 2011-10-9 14:13 编辑

如果我想判断特技数量,这样
  1. class Game_Party
  2.   def total_item
  3.     n = 0
  4.     @items.values.each{|v|n += v}
  5.     return n
  6.   end
  7.   def total_weapon
  8.     n = 0
  9.     @weapons.values.each{|v|n += v}
  10.     return n
  11.   end
  12.   def total_armor
  13.     n = 0
  14.     @armors.values.each{|v|n += v}
  15.     return n
  16.   end
  17.   def total_Skill
  18.     n = 0
  19.     @Skills.values.each{|v|n += v}
  20.     return n
  21.   end

  22. end
复制代码
然后在事件里写$game_variables[X]=$game_party.total_skill能行吗?

roguelike求生RPG研发中....
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
280
在线时间
1374 小时
注册时间
2005-10-16
帖子
5113

贵宾

6
发表于 2011-10-9 14:17:59 | 只看该作者
黑舞嗜 发表于 2011-10-9 14:12
如果我想判断特技数量,这样然后在事件里写$game_variables[X]=$game_party.total_skill能行吗?

...

嗯,勇于探索的精神是值得鼓励的!!
不过这样显然是不行的,特技是针对于每个角色的,要获取队伍中所有成员的技能总数,那需要首先以每个角色为主体进行判断,同时skills在Game_Actor中是一个数组而并非一个Hash。
此外,对于方法名,变量名的大小写还要多加注意。
  1. def total_skill
  2.   n = 0
  3.   @actors.each{|a|n += a.skills.size}
  4.   reutn n
  5. end
  6.   
复制代码

点评

虽然不是很明白,但还是谢谢  发表于 2011-10-9 14:26
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-27 10:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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