找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2579|回复: 3

小白式战斗后自动恢复之事件版(刚研究的,不知道有人发过

[复制链接]
发表于 2005-10-13 09:30:08 | 显示全部楼层 |阅读模式
第一步:建立 公共事件  
名称:自动恢复    目标:并行事件   条件开关:0001恢复开关

条件分歧:[角色A] 为  在同伴中
    条件分歧  :  [角色A] 为  [死亡] 变为
        更改状态 : [角色A] , - [死亡]#这段一定要放在前面,否则如果全员HP为0时还没有恢复就会直接GAME OVER#
        除此之外的场合  
            变量操作  :  [0001:HP恢复量] = [角色A]  的  MAXHP
            变量操作  :  [0001:HP恢复量] /= 10  #10是恢复比例,可以自行调整#
            变量操作  :  [0002:SP恢复量] = [角色A]  的  MAXSP
            变量操作  :  [0002:SP恢复量] /= 10
            增减HP    :  [角色A],  + 变量  [0001:HP恢复量]
            增减SP    :  [角色A],  + 变量  [0002:SP恢复量]
     分歧结束
分歧结束
条件分歧:[角色B] 为  在同伴中
......

分歧结束
开关操作   :  [0001]恢复开关 = OFF

第二步:在数据库的"队伍"里全部敌人队伍里加上这段战斗事件:
条件分歧 : [敌人A] 为 [死亡]
    条件分歧  :  [敌人B] 为 [死亡]
        条件分歧  :  [敌人C] 为 [死亡]  #有多少敌人就分歧多少次#
            开关操作  :  [0001:恢复开关] = ON
        
        分歧结束
     
     分歧结束
分歧结束

因为不想碰脚本而想出来的笨办法
请教是否能优化
谢谢
发表于 2005-10-13 21:17:13 | 显示全部楼层
事件中 条件分歧给的各种情况,有时不足以满足我们的需要,这样就产生了楼上
分歧套分歧的做法.....这也是一个典型的脚本优势的事例~



我觉得这个事件设置成 自动执行 也没什么问题阿,为什么要并行呢?
 楼主| 发表于 2005-10-13 22:05:58 | 显示全部楼层
这个...纯粹的习惯问题...
以前不懂得开关控制老是死循环,呵呵
发表于 2005-10-14 19:18:21 | 显示全部楼层
# ■ 战斗后回复

module After_Battle

  # HP回复开关
  HP_RE = true
  # HP回复量(%)
  HP_RE_PER = 5
  # SP回复开关
  SP_RE = true
  # SP回复量(%)
  SP_RE_PER = 5

  CORPSE_RE = true

#==============================================================================
end

class Scene_Battle
  include After_Battle
  #--------------------------------------------------------------------------
  alias start_phase5_rec start_phase5
  def start_phase5
    for actor in $game_party.actors
      # HP回复
      if HP_RE and !actor.dead?
        actor.hp += (actor.maxhp * HP_RE_PER / 100).truncate
      end
      # SP回复
      if SP_RE and !actor.dead?
        actor.sp += (actor.maxsp * SP_RE_PER / 100).truncate
      end
      # 不能回复
      if CORPSE_RE and actor.dead?
        actor.hp = 1
      end
    end
    start_phase5_rec
  end
end
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|幻想森林

GMT+8, 2026-10-30 01:03 , Processed in 0.011428 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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