幻想森林

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

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

[复制链接]

13

主题

92

帖子

713

积分

⑤进阶

传说中的路人甲

积分
713
发表于 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
        
        分歧结束
     
     分歧结束
分歧结束

因为不想碰脚本而想出来的笨办法
请教是否能优化
谢谢
万恶的BT将可爱的手提摧残得体无完肤 从此与深夜篮球惜别OTL... 继续艰苦的RM之路...
回复

使用道具 举报

14

主题

375

帖子

5760

积分

⑦老手

科学大迫力研究所

积分
5760
发表于 2005-10-13 21:17:13 | 显示全部楼层
事件中 条件分歧给的各种情况,有时不足以满足我们的需要,这样就产生了楼上
分歧套分歧的做法.....这也是一个典型的脚本优势的事例~



我觉得这个事件设置成 自动执行 也没什么问题阿,为什么要并行呢?
继续荒野与渡鸟的那场梦......
回复 支持 反对

使用道具 举报

13

主题

92

帖子

713

积分

⑤进阶

传说中的路人甲

积分
713
 楼主| 发表于 2005-10-13 22:05:58 | 显示全部楼层
这个...纯粹的习惯问题...
以前不懂得开关控制老是死循环,呵呵
万恶的BT将可爱的手提摧残得体无完肤 从此与深夜篮球惜别OTL... 继续艰苦的RM之路...
回复 支持 反对

使用道具 举报

2

主题

19

帖子

10万

积分

⑧专业

恭喜发财

积分
104219
QQ
发表于 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, 2024-5-20 19:15 , Processed in 0.031944 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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