赞 | 40 |
VIP | 559 |
好人卡 | 234 |
积分 | 47 |
经验 | 251834 |
最后登录 | 2024-10-11 |
在线时间 | 5240 小时 |
Lv3.寻梦者 (版主) 八宝粥的基叔
- 梦石
- 0
- 星屑
- 4684
- 在线时间
- 5240 小时
- 注册时间
- 2009-4-29
- 帖子
- 14318
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 雪流星 于 2009-7-15 21:42 编辑
前些天我们已经学习了“巧用数据库之一”,今天我们的话题还是巧用数据库,学习一下“巧用数据库之二”。依旧先声明,本帖的发表目的是为了给新手们提供帮助,本来就懂得的朋友请勿笑话。
再次说一下,不要因为文章比较长而惧怕阅读,其实真的很简单,对您绝对有帮助!
按照惯例,以一个例子来引出一个新的问题:
当我们设计一个敌人,我们知道,它的MP上限在默认情况下是9999,要是我们想要把某个特定敌人的MP上限改成大于10000,怎么实现?
这个问题的解决方法可能是多种的。现在我来说一种方法,巧妙地应用我们的数据库。首先,把脚本Game_Enemy类下的def base_maxhp(第61行开始)修改一下。
原来的脚本是:
- #--------------------------------------------------------------------------
- # ● 获取基本 MaxHP
- #--------------------------------------------------------------------------
- def base_maxhp
- return enemy.maxhp
- end
复制代码 现在我们改成:
- #--------------------------------------------------------------------------
- # ● 获取基本 MaxMP
- #--------------------------------------------------------------------------
- def base_maxmp
- if enemy.maxmp <= 9000
- return enemy.maxmp
- else
- a = (enemy.maxmp - 9000) * 100
- return a
- end
- end
复制代码 意思就是,假如设定某敌人的最大MP在1至9000,那么直接设定即可。如果最大MP大于9000的话,就等于“最大MP”减去9000后再乘以100。那么,假如我们要求某敌人的的最大MP为10000,就把数据库里“最大MP”的数值输入9100,(9100-9000)*100=10000,因此达到预期目的。假如要最大MP为12500,则输入9125,(9125-9000)*100=12500。呵呵!很巧妙吧?
这样一来,我们可谓学会了一绝招。因为我们要设置类似的问题,就可以:
- if ……<= 5000
- 实现目标1
- elseif……> 5000&&……<= 6000
- 实现目标2
- elseif……> 6000&&……<= 7000
- 实现目标3
- ……
复制代码 甚至可以:
- if ……== 1060
- ……
- end
- if ……== 1061
- ……
- end
- if ……== 1062
- ……
- end
复制代码 不光可以利用最大MP,还可以利用HP、精神力,敏捷等其他的数据!
哇!前景多么广阔!想设置什么都可以啦。 |
|