Project1

标题: 关于怪物掉宝率的问题!!!! [打印本页]

作者: 我心飞扬    时间: 2012-9-6 08:55
标题: 关于怪物掉宝率的问题!!!!
关于怪物的掉宝率,有几个问题想请教前辈们:
1、我想设计一种装备,在队伍中任一人装备的状态下,怪物的掉宝率会增加n%。这样的情况应该怎么设计?从脚本到事件应该怎么设计,请前辈们指点!
2、XP默认一个敌人ID只能掉落一样物品,我想设计成可以掉落多样物品。搜了一下本站,很多前辈已经做出了解答,但是因为“众所周知”的原因,很多都打不开了,没法看到链接。因此请前辈们再次指点一下。有位前辈说“给怪物添加一个新属性..可以利用怪物的名字做成数组来判断获得的物品”,并且被评为最佳答案了。不好意思,我是新人,对他说的没搞明白。请哪位前辈能给详细解答一下。谢谢了。dsu_plus_rewardpost_czw
作者: 没是的人    时间: 2012-9-6 16:34
本帖最后由 没是的人 于 2012-9-6 16:47 编辑

假设:幽灵掉落恢复剂的概率为10%,当主角装备铜剑时,幽灵掉落恢复剂的概率变为50%

你打开数据库先把幽灵本身掉落物品清空
在幽灵的队伍里设置事件页,有几个幽灵就设置几个事件页
当铜剑可以被多人装备,你必须判断队伍里所有的人是否持有

这个方法比较简单,想掉多个物品也差不多简单
你不会是装备了铜剑所有的怪物掉宝率都增加了吧。。。。
那就比较麻烦了,自己看癫狂侠客的视频学脚本改吧
作者: 我心飞扬    时间: 2012-9-6 17:23
没是的人 发表于 2012-9-6 16:34
假设:幽灵掉落恢复剂的概率为10%,当主角装备铜剑时,幽灵掉落恢复剂的概率变为50%

你打开数据库先把幽灵 ...

的确是想所有敌人的掉宝率增加。
作者: 乱糟糟    时间: 2012-9-6 18:04
1、掉落多种物品搜索 四格掉宝……
2、关于概率增加问题提供个思路,查找代码:
if rand(100) < enemy.treasure_prob
          if enemy.item_id > 0
            treasures.push($data_items[enemy.item_id])
          end
          if enemy.weapon_id > 0
            treasures.push($data_weapons[enemy.weapon_id])
          end
          if enemy.armor_id > 0
            treasures.push($data_armors[enemy.armor_id])
          end
        end
这里是战斗结束结算的时候按掉落概率来决定是否获得敌人掉落的物品。
for actor in $game_party.actors   #所有的角色
        if actor.weapon_id == 4 #假设有装备了4号装备
          treasure_prob_plus = 50 #比如增加50%的掉率
        end  
  end
类似这样引入treasure_prob_plus 增加概率的参数。
然后  if rand(100) < enemy.treasure_prob 改为  if rand(100) < enemy.treasure_prob + treasure_prob_plus
这样,就使得所有的敌人掉宝概率都增加了。
PS:引入四格掉宝之后,每种物品都有个掉率,到时候都增加即可。
作者: 我心飞扬    时间: 2012-9-8 19:42
乱糟糟 发表于 2012-9-6 18:04
1、掉落多种物品搜索 四格掉宝……
2、关于概率增加问题提供个思路,查找代码:
if rand(100) < enemy.tre ...

您这样一说我更糊涂了,能不能详细指点一下?谢谢。
作者: 乱糟糟    时间: 2012-9-8 20:02
我心飞扬 发表于 2012-9-8 19:42
您这样一说我更糊涂了,能不能详细指点一下?谢谢。

就是:已知战斗结束之后获得物品概率的脚本,现在只需要写个判断角色是否装备某武器,使概率增加即可,很简单了吧。。。
作者: 我心飞扬    时间: 2012-9-8 20:12
标题: 3
本帖最后由 我心飞扬 于 2012-9-8 21:09 编辑
乱糟糟 发表于 2012-9-8 20:02
就是:已知战斗结束之后获得物品概率的脚本,现在只需要写个判断角色是否装备某武器,使概率增加即可,很 ...


你的每个汉字的意思我全都明白。
我就是看不懂脚本。不知道该在哪里改,该怎么改。根据脚本对应的在数据库中怎么设置?所以想请您详细说一说。最好像2楼那样图文并茂的。
我是个脚本盲,不好意思,请见谅。

我试着改了一下,不知道对不对,请指正一下。

第一步:找到你提示的脚本句,在176行开始到188行结束。题外话:那个限制宝物数为 6 个的脚本是什么意思?

第二步:在189行插入你写的这段脚本,并注释。

第三步:把176行的 if rand(100) < enemy.treasure_prob这一句改为if rand(100) < enemy.treasure_prob + treasure_prob_plus
              并且对齐脚本句。
第四步:在数据库的防具栏里设计一个装备,并将该装备的ID号在191行进行相应更改。
第五步:在192行更改自己想要增加的概率。题外话:这里改为50的话是不是在游戏中掉宝率就是数据库中设计的掉宝率的150%?那么我想增加到130%,只要这里改为30可就对了?如果我原来的掉宝率是50%,那么+50%是100%还是75%?
作者: 乱糟糟    时间: 2012-9-8 21:13
我心飞扬 发表于 2012-9-8 20:12
你的每个汉字的意思我全都明白。
我就是看不懂脚本。不知道该在哪里改,该怎么改。根据脚本对应的在数据 ...

增加概率那段应该插在 判断是否获得物品前面。
限制宝物6:最多获得6个宝物,你可以改[0..5]使得获得更多或者更少
50的话就是增加50%,比如原来掉率是100的话现在就是150%,用上述脚本作判断的时候也即100%获得。
增加到100%以上的概率都相当于100%的概率。
这里的掉率是你在数据库里设定的概率+装备某武器之后增加概率。比如原来掉率是10,增加50,就是60%。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1