Project1

标题: 如何使普通攻击消耗SP? [打印本页]

作者: DF_XYZ    时间: 2008-9-15 17:45
标题: 如何使普通攻击消耗SP?
目前在做特殊类型的RPG,需要使普通攻击消耗SP,但目前不知道怎么弄{/pz}……
应该是在脚本里设吧?该怎么改呢?请高手指教,谢谢! [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 国家机密    时间: 2008-9-15 18:53
提示: 作者被禁止或删除 内容自动屏蔽
作者: DF_XYZ    时间: 2008-9-15 19:52
这样不行啊,不攻击也会扣SP的,最后是改一下脚本,就是不知在哪里……
作者: 灯笼菜刀王    时间: 2008-9-15 20:20
GAME BATTLE3,SELF.HP-SHLF.DAMAGE加上ATTACKER.SP-=XXX。

不过,这样就算SP为0也能普通攻击。想要限制就要到SCENE BATTLE里限制。
作者: DF_XYZ    时间: 2008-9-15 20:26
以下引用灯笼菜刀王于2008-9-15 12:20:07的发言:

GAME BATTLE3,SELF.HP-SHLF.DAMAGE加上ATTACKER.SP-=XXX。

不过,这样就算SP为0也能普通攻击。想要限制就要到SCENE BATTLE里限制。

先谢谢了,不过怎么再限制呢?(脚本只懂四则运算{/ll})

作者: 灯笼菜刀王    时间: 2008-9-15 20:42
  1. class Scene_Battle
  2. $普通攻击消耗的SP = 10
  3. def make_basic_action_result
  4.     # 攻击的情况下
  5.     if @active_battler.current_action.basic == 0
  6.       if @active_battler.sp < $普通攻击消耗的SP
  7.       @active_battler.current_action.basic = 3
  8.       return
  9.       else
  10.       @active_battler.sp -= $普通攻击消耗的SP
  11.       end
  12.       # 设置攻击 ID
  13.       @animation1_id = @active_battler.animation1_id
  14.       @animation2_id = @active_battler.animation2_id
  15.       # 行动方的战斗者是敌人的情况下
  16.       if @active_battler.is_a?(Game_Enemy)
  17.         if @active_battler.restriction == 3
  18.           target = $game_troop.random_target_enemy
  19.         elsif @active_battler.restriction == 2
  20.           target = $game_party.random_target_actor
  21.         else
  22.           index = @active_battler.current_action.target_index
  23.           target = $game_party.smooth_target_actor(index)
  24.         end
  25.       end
  26.       # 行动方的战斗者是角色的情况下
  27.       if @active_battler.is_a?(Game_Actor)
  28.         if @active_battler.restriction == 3
  29.           target = $game_party.random_target_actor
  30.         elsif @active_battler.restriction == 2
  31.           target = $game_troop.random_target_enemy
  32.         else
  33.           index = @active_battler.current_action.target_index
  34.           target = $game_troop.smooth_target_enemy(index)
  35.         end
  36.       end
  37.       # 设置对像方的战斗者序列
  38.       @target_battlers = [target]
  39.       # 应用通常攻击效果
  40.       for target in @target_battlers
  41.         target.attack_effect(@active_battler)
  42.       end
  43.       return
  44.     end
  45.     # 防御的情况下
  46.     if @active_battler.current_action.basic == 1
  47.       # 帮助窗口显示"防御"
  48.       @help_window.set_text($data_system.words.guard, 1)
  49.       return
  50.     end
  51.     # 逃跑的情况下
  52.     if @active_battler.is_a?(Game_Enemy) and
  53.        @active_battler.current_action.basic == 2
  54.       #  帮助窗口显示"逃跑"
  55.       @help_window.set_text("逃跑", 1)
  56.       # 逃跑
  57.       @active_battler.escape
  58.       return
  59.     end
  60.     # 什么也不做的情况下
  61.     if @active_battler.current_action.basic == 3
  62.       # 清除强制行动对像的战斗者
  63.       $game_temp.forcing_battler = nil
  64.       # 移至步骤 1
  65.       @phase4_step = 1
  66.       return
  67.     end
  68.   end
  69. end
复制代码


把这段脚本塞到MAIN前,名字随便。

默认普通攻击消耗10SP,想改就改前面的那个$普通攻击消耗的SP = 10 后面的数字。 [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~




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