查看: 62|回复: 0

[转载发布] 喜闻乐见的状态回血回蓝脚本

[复制链接]
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 37 天

    连续签到: 3 天

    [LV.5]常住居民I

    2028

    主题

    32

    回帖

    7260

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    0
    卡币
    5184
    OK点
    16
    积分
    7260
    发表于 同元一千年八月六日(秋) | 显示全部楼层 |阅读模式
    今天一个朋友叫我去写个用状态回血的脚本 本人比较懒所以直接去找了
    找了找发现好像还真没有这样的脚本……只能动手打了
    以下是脚本
    RUBY 代码
    1. #喜闻乐见的状态回血回蓝脚本
    2. #常数写"xx",百分比写"xx%"
    3. #↓具体方法请藏考帮助文档-脚本入门-基础篇-哈希表
    4. $自动回蓝状态 = {
    5. 17 => "50",18 => "50%"
    6. }
    7. $自动回血状态 = {
    8. 19 => "50",20 => "50%"
    9. }
    10. class Game_Battler
    11.   #--------------------------------------------------------------------------
    12.   # ● 判断状态 [自动回血]
    13.   #--------------------------------------------------------------------------
    14.   def 回血?
    15.     for i in@states
    16.       if $自动回血状态.include?(i)
    17.         @i = i
    18.         returntrue
    19.       end
    20.     end
    21.     returnfalse
    22.   end
    23.   #--------------------------------------------------------------------------
    24.   # ● 判断状态 [自动回蓝]
    25.   #--------------------------------------------------------------------------
    26.   def 回蓝?
    27.     for i in@states
    28.       if $自动回蓝状态.include?(i)
    29.         @i = i
    30.         returntrue
    31.       end
    32.     end
    33.     returnfalse
    34.   end
    35.   #--------------------------------------------------------------------------
    36.   # ● 应用回血
    37.   #--------------------------------------------------------------------------
    38.   def 自动回血
    39.     # 设置伤害
    40.    if $自动回血状态[@i].split(/%/)[1]
    41.     self.damage = self.maxhp * ($自动回血状态[@i].split(/%/)[0].to_i / 100)
    42.   else
    43.     self.damage = $自动回血状态[@i].split(/%/)[0].to_i
    44.   end
    45.    # 分散
    46.     ifself.damage.abs > 0
    47.       amp = [self.damage.abs * 15 / 100, 1].max
    48.       self.damage += rand(amp+1) + rand(amp+1) - amp
    49.     end
    50.     # SP 的伤害减法运算
    51.     self.hp += self.damage
    52.     # 过程结束
    53.     returntrue
    54.   end
    55.   #--------------------------------------------------------------------------
    56.   # ● 应用回蓝
    57.   #--------------------------------------------------------------------------
    58.   def 自动回蓝
    59.     # 设置伤害
    60.    if $自动回蓝状态[@i].split(/%/)[1]
    61.     self.damage = self.maxsp * ($自动回蓝状态[@i].split(/%/)[0].to_i / 100)
    62.   else
    63.     self.damage = $自动回蓝状态[@i].split(/%/)[0].to_i
    64.   end
    65.    # 分散
    66.     ifself.damage.abs > 0
    67.       amp = [self.damage.abs * 15 / 100, 1].max
    68.       self.damage += rand(amp+1) + rand(amp+1) - amp
    69.     end
    70.     # SP 的伤害减法运算
    71.     self.sp += self.damage
    72.     # 过程结束
    73.     returntrue
    74.   end
    75. end
    76. class Scene_Battle
    77.   #--------------------------------------------------------------------------
    78.   # ● 刷新画面 (主回合步骤 1 : 准备行动)
    79.   #--------------------------------------------------------------------------
    80.   def update_phase4_step1
    81.     # 隐藏帮助窗口
    82.     @help_window.visible = false
    83.     # 判定胜败
    84.     if judge
    85.       # 胜利或者失败的情况下 : 过程结束
    86.       return
    87.     end
    88.     # 强制行动的战斗者不存在的情况下
    89.     if$game_temp.forcing_battler == nil
    90.       # 设置战斗事件
    91.       setup_battle_event
    92.       # 执行战斗事件中的情况下
    93.       if$game_system.battle_interpreter.running?
    94.         return
    95.       end
    96.     end
    97.     # 强制行动的战斗者存在的情况下
    98.     if$game_temp.forcing_battler != nil
    99.       # 在头部添加后移动
    100.       @action_battlers.delete($game_temp.forcing_battler)
    101.       @action_battlers.unshift($game_temp.forcing_battler)
    102.     end
    103.     # 未行动的战斗者不存在的情况下 (全员已经行动)
    104.     if@action_battlers.size == 0
    105.       # 开始同伴命令回合
    106.       start_phase2
    107.       return
    108.     end
    109.     # 初始化动画 ID 和公共事件 ID
    110.     @animation1_id = 0
    111.     @animation2_id = 0
    112.     @common_event_id = 0
    113.     # 未行动的战斗者移动到序列的头部
    114.     @active_battler = @action_battlers.shift
    115.     # 如果已经在战斗之外的情况下
    116.     if@active_battler.index == nil
    117.       return
    118.     end
    119.     # 连续伤害
    120.     if@active_battler.hp > 0and@active_battler.slip_damage?
    121.       @active_battler.slip_damage_effect
    122.       @active_battler.damage_pop = true
    123.     end
    124.     if@active_battler.hp > 0and@active_battler.回蓝?
    125.       @active_battler.自动回蓝
    126.       @active_battler.damage_pop = true
    127.     end
    128.     if@active_battler.hp > 0and@active_battler.回血?
    129.       @active_battler.自动回血
    130.       @active_battler.damage_pop = true
    131.     end
    132.     # 自然解除状态
    133.     @active_battler.remove_states_auto
    134.     # 刷新状态窗口
    135.     @status_window.refresh
    136.     # 移至步骤 2
    137.     @phase4_step = 2
    138.   end
    139.   end
    复制代码

    测试用的范例实在是不堪入目所以不提供
    就是这样喜闻乐见……
    欢迎吐槽……
    [新人第一帖求糖~~]
                 本帖来自P1论坛作者1095884734,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=367498  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    天天去同能,天天有童年!
    回复 论坛版权

    使用道具 举报

    ahome_bigavatar:guest
    ahome_bigavatar:welcomelogin
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2024-5-13 15:09 , Processed in 0.048212 second(s), 44 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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