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

Project1

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

仿梦幻西游的修炼系统与血爆,丹元济会效果

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
95
在线时间
24 小时
注册时间
2007-6-16
帖子
160
跳转到指定楼层
1
发表于 2008-12-18 23:59:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
大家好,我是个老手中的新手,不会写脚本,只会改脚本,第一次发贴#83写的不好大家莫怪#17说是老手,注册已经1年多了,说是新手,对脚本基本上没什么感觉....废话少说,进入正题.

梦幻西游里有个"修炼系统",就是修炼等级提升后在人物的属性不变的情况下打出或抵抗更多的伤害.下面是伤害/法抗/物抗的制作方法,其实很简单,只是调用了几个变量.
在Game_battler3里面,找到 ●应用通常攻击效果:
  def attack_effect(attacker)
    # 清除会心一击标志
    self.critical = false
    # 第一命中判定
    hit_result = (rand(100) < attacker.hit)
    # 命中的情况下
    if hit_result == true
      # 计算基本伤害
#########################普通攻击伤害计算式改###########################
      atk = [attacker.atk-self.pdef/2, 0].max
      if attacker.is_a?(Game_Actor)
      self.damage = (atk* 3) * (10+$game_variables[251])/10
      self.damage *= elements_correct(attacker.element_set)
      self.damage /= 100



    else
      self.damage = (atk * 3) / (1 + $game_variables[253]/10)
      self.damage *= elements_correct(attacker.element_set)
      self.damage /= 100
      end
这个红色的地方就是攻击修炼部分了,意思是"当攻击者是玩家的场合(不限制的话怪物的攻击也会提高),伤害就等于(你定义的伤害公式)×(10+[你设定的攻击修炼等级变量号])/10
这样一来,假如你设定251号变量为"攻击修炼等级",当游戏中变量达到1时实际的伤害就会变成(你定义的伤害公式)*(10+1)/10,就会打出1.1倍的伤害,那样看上去就是有了修炼了.至于修炼变量如何增加,增加消耗的代价,大家自己在游戏中设定即可.
    再看下面的"else"这一段,这段定义的是敌人的伤害公式,第一行后面有个
(1+变量253)/100的计算式,这个计算式中的变量就是指"物理防御修炼",公式也可以自己改.我这里的公式是这样的,假如物抗的变量加到了20级,那么受到的实际伤害就是(怪物的伤害)/(1+20/10),实际所受伤害就是原伤害除以2.1,也就是说20级修炼,在属性不变的情况下抵抗了一半以上的伤害了.
    至于法术伤害,和物理伤害一样,本人为了方便,采取了和物理伤害相同的变量,也就是说"伤害修炼"的变量同时增加物理和法术伤害.还是同一个脚本,在里面找到特技的"属性修正"下面,
      # 属性修正
      self.damage *= elements_correct(skill.element_set)
      self.damage /= 100
      # 伤害符号正确的情况下
      if self.damage > 0
        if user.is_a?(Game_Actor)
        self.damage = (power * rate / 10 + 1) * (100+$game_variables[251])/100
        self.damage +=rand(50)
        self.damage +=atk/4
         self.fennu += (1 + rand(10))
       else
         self.damage = (power * rate / 10 + 1) / (1 + $game_variables[254]/100)
         self.damage +=rand(50)
        self.damage +=atk/4
        end
这里的原理和物理攻击一样,判断施法者是玩家还是怪物,然后控制变量.251是伤害变量,254是法抗变量,大家自己调整.
    另外我还做了个功能,就是物理防御修炼增加物理必杀几率,找到"修正会心一击"那里,写成这样:
      if attacker.is_a?(Game_Actor)
        if rand(100) < 4+$game_variables[253]/10
          self.damage *= 2
          self.critical = true
         
        else
           if rand(100) < 4
          self.damage *= 2
          self.critical = true
          self.fennu += (1 + rand(10))
          end
        end
        end
就变成了当253号变量增加时会心一击几率也会跟着增加.法爆呢,就到刚才定义法术伤害的那一段下面加上
      if user.is_a?(Game_Actor)
        if rand(100) < 4+$game_variables[254]/10
          self.damage *= 2
          self.critical = true

        else
           if rand(100) < 4
          self.damage *= 2
          self.critical = true
          self.fennu += (1 + rand(10))
          end
        end
        end
就可以了,那个254是法抗变量,可以自己改.
    另外,化生寺的法宝"慈悲"大家听说过吧?还有吃药的"丹元济会"的加成效果?呵呵,这里也有哦!
首先设置一个变量,定义为"药物修炼",比如是252号变量.
那么如何实现慈悲的血爆(加血法术双倍恢复)效果呢?
还记不记得刚才的法伤定义有一个
# 伤害符号正确的情况下
      if self.damage > 0
这是当伤害值为正就执行这段脚本那么为付呢?
可以在if self.damage > 0这段判断完之后加上一个else:
      
else
if user.is_a?(Game_Actor)
        if rand(1001) < $game_variables[252]
        self.damage = (power * rate / 10 + 1)*2
        self.critical = true
      end
      end

       end
这里一定要加上if user.is_a?(Game_Actor)哦!不然当252号变量增加后敌人的恢复法术也会变成有血爆效果了!
细心的人大概会发现多了一个end?额,那个end是if self.damage > 0的结束句啦!
血爆完成了,丹元济会嘛!找到"应用物品效果"里的"计算回复量",后面加上:
recover_hp = maxhp * item.recover_hp_rate / 100 +
item.recover_hp+item.recover_hp*$game_variables[252]/100



recover_sp = maxsp * item.recover_sp_rate / 100 +
item.recover_sp+item.recover_sp*$game_variables[252]/100
这样大家吃蓝或血药的时候只要有252号变量的值,药品的效果就会提升哦!

好啦,罗嗦完了,大家pia飞我#17
喜欢玩游戏,更喜欢自己做游戏

Lv1.梦旅人

梦石
0
星屑
95
在线时间
24 小时
注册时间
2007-6-16
帖子
160
2
 楼主| 发表于 2008-12-19 00:05:34 | 只看该作者
注意:发现多写了一句!
就是那个
self.fennu += (1+rand(10))
这一句是我定义的SP(愤怒),大家删掉,否则会出错{/fd}
喜欢玩游戏,更喜欢自己做游戏
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
9 小时
注册时间
2006-9-7
帖子
303
3
发表于 2008-12-19 19:17:59 | 只看该作者
多谢分享,学习了.
十年磨一剑,蓦然回首,年华如水,青春如歌。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-6-12
帖子
340
4
发表于 2008-12-19 20:50:58 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
398
在线时间
972 小时
注册时间
2007-12-31
帖子
2137
5
发表于 2008-12-20 17:06:33 | 只看该作者
我想问一下为什么是脚本,如果本来就是脚本的话为什么要写事件交流??{/fd}
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 10:39

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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