设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1369|回复: 6
打印 上一主题 下一主题

制作新的持续伤害异常状态

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2006-4-11
帖子
122
跳转到指定楼层
1
发表于 2007-8-3 23:09:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2006-4-11
帖子
122
2
 楼主| 发表于 2007-8-3 23:09:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

Lv1.梦旅人

梦石
0
星屑
95
在线时间
49 小时
注册时间
2006-5-7
帖子
526
3
发表于 2007-8-3 23:36:20 | 只看该作者
我只知道需要改脚本的做法,主站上有详细教学

状态共存在数据库里就可以设置
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2006-4-11
帖子
122
4
 楼主| 发表于 2007-8-3 23:47:47 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
95
在线时间
49 小时
注册时间
2006-5-7
帖子
526
5
发表于 2007-8-4 03:25:11 | 只看该作者
我知道,没什么问题,我的游戏里就有3个不同的持续伤害,还有持续恢复...........

唉。。。算了,详细给你说一下吧
持续伤害的处理位于Game_Party(平时行走时造成伤害)和Game_Battler 3,分别修改这两处即可
以game_party为例,搜索slip_damage找到以下内容
  #--------------------------------------------------------------------------
  # ● 检查连续伤害 (地图用)
  #--------------------------------------------------------------------------
  def check_map_slip_damage
    for actor in @actors
      if actor.hp > 0 and actor.slip_damage?
        actor.hp -= [actor.maxhp / 100, 1].max
        if actor.hp == 0
          $game_system.se_play($data_system.actor_collapse_se)
        end
        $game_screen.start_flash(Color.new(255,0,0,128), 4)
        $game_temp.gameover = $game_party.all_dead?
      end
    end
  end
回复 支持 反对

使用道具 举报

6
乌有君  发表于 2007-8-4 03:37:26
以下引用cftx于2007-8-3 19:25:11的发言:

我知道,没什么问题,我的游戏里就有3个不同的持续伤害,还有持续恢复...........

唉。。。算了,详细给你说一下吧
持续伤害的处理位于Game_Party(平时行走时造成伤害)和Game_Battler 3,分别修改这两处即可
以game_party为例,搜索slip_damage找到以下内容
#--------------------------------------------------------------------------
# ● 检查连续伤害 (地图用)
#--------------------------------------------------------------------------
def check_map_slip_damage
   for actor in @actors
     if actor.hp > 0 and actor.slip_damage?
       actor.hp -= [actor.maxhp / 100, 1].max
       if actor.hp == 0
         $game_system.se_play($data_system.actor_collapse_se)
       end
       $game_screen.start_flash(Color.new(255,0,0,128), 4)
       $game_temp.gameover = $game_party.all_dead?
     end
   end
end


[本贴由作者于 2007-8-3 19:28:46 最后编辑]


很好,很强大,很尽责的解释。
顺便说一下,通过这个可以改掉血时的效果。
回复 支持 反对

使用道具

Lv1.梦旅人

梦石
0
星屑
95
在线时间
49 小时
注册时间
2006-5-7
帖子
526
7
发表于 2007-8-4 03:38:26 | 只看该作者
详细说明。。。。。
  #--------------------------------------------------------------------------
  # ● 检查连续伤害 (地图用)
  #--------------------------------------------------------------------------
  def check_map_slip_damage
    for actor in @actors
      if actor.hp > 0 and actor.slip_damage?
从这里开始,就是对连续伤害的处理了,我们可以通过添加各种判断达到多重连续伤害的效果
        actor.hp -= [actor.maxhp / 100, 1].max这是对角色的伤害
        if actor.hp == 0  这下面是人物对死亡的判断,对于持续恢复可以不要这些
          $game_system.se_play($data_system.actor_collapse_se)
        end
        $game_screen.start_flash(Color.new(255,0,0,128), 4)
        $game_temp.gameover = $game_party.all_dead?
到此结束

      end
    end
  end

试将以上彩色部分修改成如下内容:
if actor.state?(3)      #当人物有3号状态时
        actor.hp -= 20  #每次减20血
elsif actor.state?(4)      #当人物有4号状态时
       actor.hp -= 10  #每次减10血
        actor.sp -= 20  #每次减20魔
elsif actor.state?(5)  #当人物有5号状态时
      actor.hp -= actor.hp/10   #每次减当前血量的10%
end
        if actor.hp == 0  #这下面是人物对死亡的判断,对于持续恢复可以不要这些
          $game_system.se_play($data_system.actor_collapse_se)
        end
        $game_screen.start_flash(Color.new(255,0,0,128), 4)
        $game_temp.gameover = $game_party.all_dead?

这样,你就拥有了3号、4号、5号这三个不同的连续伤害状态,在game_battler也做修改就可以让它们在战斗时也发挥作用(需要注意战斗时用self而不是actor),用类似
用类似的修改可以达到任何想要的效果
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2026-6-29 12:10

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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