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

Project1

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

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

 关闭 [复制链接]

Lv3.寻梦者 (版主)

八宝粥的基叔

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

贵宾

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

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

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

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

前些日子比较忙,今天终于有点时间了。我今天就和新手们分享一下怎么巧用数据库(之一),老手们别笑话哦。
    请耐心地看看,不要因为文章太长就跳过,其实问题不是很复杂,而且保证对你有启发。
    按照惯例,先举一个例子来引出问题。我们知道,特技伤害有一个统一的计算公式(在Game_Battler类的def make_obj_damage_value(user, obj)里面),可是我们想设计一个特殊的特技,它的伤害计算和普通特技的伤害计算不同,那怎么办呢?
    数据库的特技里有这么几个选项:物理攻击、伤害MP、将伤害吸收和无视防御力。假如我们的游戏从头到尾都没有任何设定特技是“无视防御力”的,那我们的特殊特技就可以使用上这个选项!
    具体地说,普通法术的伤害计算是默认def make_obj_damage_value(user, obj)里面:
  1. damage += user.atk * 4 * obj.atk_f / 100      # 打击关系度: 使用者
  2. damage += user.spi * 2 * obj.spi_f / 100      # 精神关系度: 使用者
复制代码
我们要设定特殊特技的伤害计算就等于使用特技角色的精神力,那我们可以这样把669至772这四行删除,既在每行前面加“#”:
  1. #unless obj.ignore_defense                     # 无视防御力以外
  2.   #damage -= self.def * 2 * obj.atk_f / 100    # 打击关系度: 对象者
  3.   #damage -= self.spi * 1 * obj.spi_f / 100    # 精神关系度: 对象者
  4. #end
复制代码
然后在下面加上:
  1. if obj.ignore_defense
  2.     damage = user.spi
  3. end
复制代码
最后我们在数据库里把特殊特技的“无视防御力”前面打勾,就完成了。强调:这样做的前提是我们的游戏从头到尾都没有任何设定特技是“无视防御力”,也就是“无视防御力”选项不再具有其原先的功能!
    也许你会说,假如我想设定第二种特殊特技怎么办?
    好办!用上其他的选项!比如第二种特殊特技的伤害为使用者精神力的2倍,你可以在最后一个end前这样写(一定要在最后一个end前,否则会因if obj.damage_to_mp 后面的“else”影响到MP伤害的计算):
  1. if obj.ignore_defense && obj.damage_to_mp
  2.     damage = 2 * user.spi
  3. end
复制代码
为了使第一种特殊特技继续生效,要把原来的
  1. if obj.ignore_defense
复制代码
改成
  1. if obj.ignore_defense && obj.damage_to_mp ==false
复制代码
这样,“MP伤害”选项的功能不变,但是只要同时勾选“无视防御力”和“MP伤害”两项,就能实现第二种特殊特技伤害为使用者精神力的2倍。
    三种或更多的情况,你可以用这几个选项之间的多重勾选排列组合来实现,这样会是选项失去原来的功能,但只要在相应的地方改一下就可以恢复其功能了。
    当然,类似的修改还可以用在特级的效果范围:敌单体随机、敌二体随机……只要在Game_BattleAction类的def make_obj_targets(obj)里面修改,假如改成下面这样:
  1.      if obj.for_random?
  2.        if obj.for_one?         # 敌单体随机
  3.          number_of_targets = 2
  4.        elsif obj.for_two?      # 敌二体随机
  5.          number_of_targets = 3
  6.        else                    # 敌三体随机
  7.          number_of_targets = 4
  8.        end
复制代码
就能实现虽然勾选“敌单体随机”,但实际攻击敌二体随机;虽然勾选“敌二体随机”,但实际攻击敌三体随机;虽然勾选“敌三体随机”,但实际攻击敌四体随机。
    以上两个例子简单地说明了对数据库巧用的方法,虽然文章很长,但是理解起来并不复杂,希望能给大家带来帮助。下次发表巧用数据库(之二),欢迎大家继续关注和学习。
《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

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

Lv1.梦旅人

风雪夜不归人

梦石
0
星屑
50
在线时间
276 小时
注册时间
2006-3-7
帖子
6721

贵宾

2
发表于 2009-7-14 20:56:50 | 只看该作者
如此关怀之贴,值得支持和收藏。
请LZ再接再厉!
有些人,到了七八月份就会诈尸。
宫斗,是女生永远的爱。
冷门,是本人不变的欲。
作弊,是玩家自由的痛。
练级,是橙光割舍的情。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-10-19
帖子
271
3
发表于 2009-7-14 22:23:28 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
317 小时
注册时间
2009-1-18
帖子
177
4
发表于 2009-7-15 00:02:24 | 只看该作者
超极品的教学贴!感激LZ的说!{:3_64:}
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 04:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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