Project1

标题: 普通攻击消耗SP怎么写...? [打印本页]

作者: Mr.Jin    时间: 2013-11-23 21:41
标题: 普通攻击消耗SP怎么写...?
呃,前段时间倒是会写技能消耗HP的,不过很长时间没写,忘记了
所以来水区虚心求教啦...
作者: 凝望·流年    时间: 2013-11-23 21:44
LZ使用的是什么工具呢?
作者: chd114    时间: 2013-11-24 10:06
同上···另外我想说要是你普通攻击没SP了岂不是等于废了···
作者: 咕噜    时间: 2013-11-24 12:12
chd114 发表于 2013-11-24 10:06
同上···另外我想说要是你普通攻击没SP了岂不是等于废了···

常理来说应该是VA...??
因为其他工具没有SP的设定

不过不应该是攻击增加么,普通攻击减少的话难道用技能可以加SP 囧
作者: chd114    时间: 2013-11-24 12:48
delv25 发表于 2013-11-24 12:12
常理来说应该是VA...??
因为其他工具没有SP的设定

彩虹岛的火枪手、狂战士、吉他手、机甲师的普通攻击就会消耗SP···但是他们的技能本来就很少···
作者: 咕噜    时间: 2013-11-24 12:50
chd114 发表于 2013-11-24 12:48
彩虹岛的火枪手、狂战士、吉他手、机甲师的普通攻击就会消耗SP···但是他们的技能本来就很少··· ...

那么就是说楼主的游戏是开场满SP的?但是SP不够怎么破
(歪楼
作者: fux2    时间: 2013-11-24 13:01
看到CHD大大回帖我就滚进来了。
然后,VA里攻击不本来就是个技能么,设置消耗即可。
作者: 1091160905    时间: 2013-11-24 13:05
本帖最后由 1091160905 于 2013-11-24 13:06 编辑

RMXP :脚本(自己下的,不知行不行)
  1. class Game_Battler
  2.      def attack_effect(attacker)
  3.     self.critical = false
  4.     hit_result = (rand(100) < attacker.hit)
  5.     if hit_result == true
  6.       atk = [attacker.atk - self.pdef / 2, 0].max
  7.       self.damage = atk * (20 + attacker.str) / 20
  8.       self.damage *= elements_correct(attacker.element_set)
  9.       self.damage /= 100
  10.       if self.damage > 0
  11.         if rand(100) < 4 * attacker.dex / self.agi
  12.           self.damage *= 2
  13.           self.critical = true
  14.         end
  15.         if self.guarding?
  16.           self.damage /= 2
  17.         end
  18.       end
  19.       if self.damage.abs > 0
  20.         amp = [self.damage.abs * 15 / 100, 1].max
  21.         self.damage += rand(amp+1) + rand(amp+1) - amp
  22.       end
  23.       eva = 8 * self.agi / attacker.dex + self.eva
  24.       hit = self.damage < 0 ? 100 : 100 - eva
  25.       hit = self.cant_evade? ? 100 : hit
  26.       hit_result = (rand(100) < hit)
  27.     end
  28.     if hit_result == true
  29.       attacker.mp -= 1
  30.       remove_states_shock
  31.       self.hp -= self.damage
  32.       @state_changed = false
  33.       states_plus(attacker.plus_state_set)
  34.       states_minus(attacker.minus_state_set)
  35.     elsif attacker.mp <= 1
  36.       $game_temp.message_text("SP不足")
  37.     else
  38.       attacker.mp -= 1
  39.       self.damage = "Miss"
  40.       self.critical = false
  41.     end
  42.     return true
  43.   end
  44. end
复制代码
VX:
  1. class Game_Battler
  2.   def make_attack_damage_value(attacker)
  3.     if attacker.mp <=1
  4.       $game_temp.message_text("#{Vocab.mp_a}不足")
  5.     else
  6.      attacker.mp -=1
  7.     damage = attacker.atk * 4 - self.def * 2
  8.     damage = 0 if damage < 0
  9.     damage *= elements_max_rate(attacker.element_set)
  10.     damage /= 100
  11.     if damage == 0
  12.       damage = rand(2)
  13.     elsif damage > 0
  14.       @critical = (rand(100) < attacker.cri)
  15.       @critical = false if prevent_critical
  16.       damage *= 3 if @critical
  17.     end
  18.     damage = apply_variance(damage, 20)
  19.     damage = apply_guard(damage)
  20.     @hp_damage = damage
  21.   end
  22.   end
复制代码
VA  数据库--技能--1号(也就是攻击),设置他的SP消耗
作者: chd114    时间: 2013-11-24 13:19
delv25 发表于 2013-11-24 12:50
那么就是说楼主的游戏是开场满SP的?但是SP不够怎么破
(歪楼

好像默认的就是满状态出场吧···SP不够的话就只能防御了···除非有技能消耗的SP比普通攻击少···
作者: 你最珍贵    时间: 2013-11-24 13:27
  1. actor.sp -= value
复制代码
这段不是消耗SP的脚本咩




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