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

Project1

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

[RMVX发布] 教给新手们的第三招

 关闭 [复制链接]

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4684
在线时间
5240 小时
注册时间
2009-4-29
帖子
14318

贵宾

跳转到指定楼层
1
发表于 2009-7-16 09:22:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 雪流星 于 2009-7-15 21:42 编辑

前些天我们已经学习了“巧用数据库之一”,今天我们的话题还是巧用数据库,学习一下“巧用数据库之二”。依旧先声明,本帖的发表目的是为了给新手们提供帮助,本来就懂得的朋友请勿笑话。
    再次说一下,不要因为文章比较长而惧怕阅读,其实真的很简单,对您绝对有帮助!
    按照惯例,以一个例子来引出一个新的问题:
    当我们设计一个敌人,我们知道,它的MP上限在默认情况下是9999,要是我们想要把某个特定敌人的MP上限改成大于10000,怎么实现?
    这个问题的解决方法可能是多种的。现在我来说一种方法,巧妙地应用我们的数据库。首先,把脚本Game_Enemy类下的def base_maxhp(第61行开始)修改一下。
    原来的脚本是:

  1.   #--------------------------------------------------------------------------
  2.   # ● 获取基本 MaxHP
  3.   #--------------------------------------------------------------------------
  4.   def base_maxhp
  5.     return enemy.maxhp
  6.   end
复制代码
现在我们改成:

  1.   #--------------------------------------------------------------------------
  2.   # ● 获取基本 MaxMP
  3.   #--------------------------------------------------------------------------
  4.   def base_maxmp
  5.     if enemy.maxmp <= 9000
  6.       return enemy.maxmp
  7.     else
  8.       a = (enemy.maxmp - 9000) * 100
  9.       return a
  10.     end
  11.   end
复制代码
意思就是,假如设定某敌人的最大MP在1至9000,那么直接设定即可。如果最大MP大于9000的话,就等于“最大MP”减去9000后再乘以100。那么,假如我们要求某敌人的的最大MP为10000,就把数据库里“最大MP”的数值输入9100,(9100-9000)*100=10000,因此达到预期目的。假如要最大MP为12500,则输入9125,(9125-9000)*100=12500。呵呵!很巧妙吧?
    这样一来,我们可谓学会了一绝招。因为我们要设置类似的问题,就可以:

  1.      if ……<= 5000
  2.       实现目标1
  3.     elseif……> 5000&&……<= 6000
  4.       实现目标2     
  5.     elseif……> 6000&&……<= 7000
  6.       实现目标3
  7. ……
复制代码
甚至可以:

  1. if ……== 1060
  2. ……
  3. end
  4. if ……== 1061
  5. ……
  6. end
  7. if ……== 1062
  8. ……
  9. end
复制代码
不光可以利用最大MP,还可以利用HP、精神力,敏捷等其他的数据!
哇!前景多么广阔!想设置什么都可以啦。
《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
609
在线时间
1243 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

2
发表于 2009-7-16 09:25:18 | 只看该作者
那个啥,if连判断可以用case
  1. if var == 1060
  2. 语句1
  3. end
  4. if var== 1061
  5. 语句2
  6. end
  7. if var== 1062
  8. 语句3
  9. end
复制代码
可以缩写成
  1. case var
  2. when 1060
  3.   语句1
  4. when 1061
  5.   语句2
  6. when 1062
  7.   语句3
  8. end
复制代码
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4684
在线时间
5240 小时
注册时间
2009-4-29
帖子
14318

贵宾

3
 楼主| 发表于 2009-7-16 09:31:33 | 只看该作者
呵呵,楼上说得对!这样就更加简洁了。:)
《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复 支持 反对

使用道具 举报

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
609
在线时间
1243 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

4
发表于 2009-7-16 09:49:33 | 只看该作者
还有啊,你把代码部分用code标签框出来阅读起来会清晰些
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复 支持 反对

使用道具 举报

Lv2.观梦者

天仙

梦石
0
星屑
620
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

5
发表于 2009-7-16 11:36:11 | 只看该作者
本帖最后由 雪流星 于 2009-7-15 21:38 编辑

case 还可以用范围
例如:

  1. case numberRange
  2.   when 0..10
  3.     .....
  4.   when 11..15
  5.     ....
  6.   when 16...20
  7.     ...
  8.   else
  9.     ...
  10. end
复制代码
如果用 if 来分歧范围的话,就要

  1. if numberRange >= 0 or numberRange <= 10
  2.   ...
  3. elsif ....
  4. .......
复制代码
或是

  1. if numberRange === (0..10)
  2.   ...
  3. elsif ....
  4. .......
复制代码
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4684
在线时间
5240 小时
注册时间
2009-4-29
帖子
14318

贵宾

6
 楼主| 发表于 2009-7-16 13:10:42 | 只看该作者
大家补充得很好!这样大家都来探讨,内容就越来越充实了。呵呵。
《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 08:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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