Project1

标题: 脚本game_battlers3普通攻击修改后连击问题 [打印本页]

作者: chd114    时间: 2013-12-14 20:38
标题: 脚本game_battlers3普通攻击修改后连击问题
  1.   #--------------------------------------------------------------------------
  2.   # ● 应用通常攻击效果
  3.   #     attacker : 攻击者 (battler)
  4.   #--------------------------------------------------------------------------
  5.   def attack_effect(attacker)
  6.     # 清除会心一击标志
  7.     self.critical = false
  8.     hit_result = false
  9.     damage = 0#敌人受到实际伤害
  10.     self.damage = 0#输出伤害
  11.     mdamage = 0#魔法盾伤害
  12.     rdamage = 0#反弹伤害
  13.     combos = attacker.as%100#概率连击
  14.     combo = (attacker.as-combos)/100#连击
  15.    
  16.     mz = rand(100)
  17.     if mz <combos
  18.       combo+=1
  19.     end
  20.    
  21.     for i in 0...combo
  22.       
  23.       mz=rand(100)
  24.       if mz > self.pdod
  25.         mz=rand(100)
  26.         if mz < attacker.phit
  27.           self.damage = (attacker.patk - self.pdef)*(100+attacker.pog)/100
  28.           mz=rand(100)
  29.           ## 属性修正
  30.           #self.damage *= elements_correct(attacker.element_set)
  31.           #self.damage /= 100
  32.           if mz < attacker.pcr
  33.             self.damage *= (100+attacker.pcrc)/100
  34.             self.critical = true
  35.           end
  36.           if self.damage < 0
  37.             self.damage = 0
  38.           end
  39.           ## 防御修正
  40.           #if self.guarding?
  41.           #  self.damage /= 2
  42.           #end
  43.           ## 分散
  44.           #if self.damage.abs > 0
  45.           #  amp = [self.damage.abs * 15 / 100, 1].max
  46.           #  self.damage += rand(amp+1) + rand(amp+1) - amp
  47.           #end
  48.          
  49.           # 状态冲击解除
  50.           remove_states_shock
  51.           damage = self.damage*(100-self.pdr)/100#敌人受到实际伤害
  52.          
  53.           #判断是否开启魔法盾
  54.           if states.include?(17)
  55.             madamge = damage*self.sdr/100#计算开启魔法盾的魔力伤害
  56.             if self.sp < mdamage/self.sdd#魔力不足以支持完整的魔法盾
  57.               self.hp -= damage-self.sp*self.sdd
  58.               self.sp = 0
  59.               attacker.hp -= (damage - self.sp*self.sdd) * self.preb / 100#受到反弹
  60.               remove_state(17)
  61.             else
  62.               self.hp -= damage - mdamage
  63.               self.sp -= mdamage / self.sdd
  64.               attacker.hp -= (damage - mdamage) * self.preb / 100#受到反弹
  65.             end
  66.           else
  67.             self.hp -= damage
  68.             attacker.hp -= damage * self.preb / 100#受到反弹
  69.           end
  70.           attacker.hp += self.damage * attacker.pvam / 100#攻击吸血
  71.          
  72.           # 伤害设置为 damage
  73.           self.damage = damage
  74.           # 清除会心一击标志
  75.           self.critical = false
  76.           # 状态变化
  77.           @state_changed = false
  78.           states_plus(attacker.plus_state_set)
  79.           states_minus(attacker.minus_state_set)
  80.          
  81.         else#MISS
  82.           # 伤害设置为 "Miss"
  83.           self.damage = "Miss"
  84.           # 清除会心一击标志
  85.           self.critical = false
  86.         end
  87.       else#MISS
  88.         # 伤害设置为 "Miss"
  89.         self.damage = "Miss"
  90.         # 清除会心一击标志
  91.         self.critical = false
  92.       end
  93.       
  94.     end
  95.     # 过程结束
  96.     return true
  97.   end
复制代码
角色as200,每回合打出两次攻击,但实际上只显示一次动画和伤害```
作者: ikki    时间: 2013-12-17 10:24
{:2_265:}我的连击米有用脚本。。。用的公共事件。。。效果还可以。。。只是公共事件写了一堆动画的播放和伤害公式和伤害的显示
作者: chd114    时间: 2013-12-18 11:36
ikki 发表于 2013-12-17 10:24
我的连击米有用脚本。。。用的公共事件。。。效果还可以。。。只是公共事件写了一堆动画的播放和 ...

能把工程发来做参考吗···表示我的战斗系统是推倒重写的···
作者: fux2    时间: 2013-12-18 12:13
你直接让伤害等于“1800|1850”这种特殊字符,双显示让处理伤害显示的部分去做好了。
作者: chd114    时间: 2013-12-18 12:25
fux2 发表于 2013-12-18 12:13
你直接让伤害等于“1800|1850”这种特殊字符,双显示让处理伤害显示的部分去做好了。 ...

啥意思···我的意思是角色或者怪物连续攻击只显示最后一次攻击造成的伤害···
作者: fux2    时间: 2013-12-18 12:27
chd114 发表于 2013-12-18 12:25
啥意思···我的意思是角色或者怪物连续攻击只显示最后一次攻击造成的伤害··· ...

默认不就只显示最后一次伤害么。
作者: chd114    时间: 2013-12-18 12:53
fux2 发表于 2013-12-18 12:27
默认不就只显示最后一次伤害么。

我加了连击···还是只显示一次伤害和动画···所以问题就在这里了···用其他脚本调用+等待也无效···
作者: fux2    时间: 2013-12-18 12:55
chd114 发表于 2013-12-18 12:53
我加了连击···还是只显示一次伤害和动画···所以问题就在这里了···用其他脚本调用+等待也无效· ...

看来chd巨巨是根本无视我4楼的回帖了,我还是退散好了。
作者: chd114    时间: 2013-12-18 13:00
fux2 发表于 2013-12-18 12:55
看来chd巨巨是根本无视我4楼的回帖了,我还是退散好了。

⊙﹏⊙b汗···原来还有四楼···话说我这看不到点评了是什么情况······不过这样用的话出了暴击怎么算···
作者: fux2    时间: 2013-12-18 13:03
chd114 发表于 2013-12-18 13:00
⊙﹏⊙b汗···原来还有四楼···话说我这看不到点评了是什么情况······不过这样用的话出了暴击 ...

critral = [true,false,false,true]
作者: chd114    时间: 2013-12-18 13:21
fux2 发表于 2013-12-18 13:03
critral = [true,false,false,true]

第二个第三个为嘛关掉···
作者: fux2    时间: 2013-12-18 13:28
chd114 发表于 2013-12-18 13:21
第二个第三个为嘛关掉···


卧槽我只是示范一下,chd巨巨不用这么纠结吧
既然暴击标记变成数组了,伤害也换成数组吧[1800,2500]这种
作者: ikki    时间: 2013-12-19 20:38
{:2_265:}连击脚本需要不?
作者: chd114    时间: 2013-12-23 14:29
ikki 发表于 2013-12-19 20:38
连击脚本需要不?

需要个技能连击的···普通攻击的鼓捣半天解决了···




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