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

Project1

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

[已经解决] 如何让恢复血或者魔的技能或物品起到这样的效果?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
49
在线时间
186 小时
注册时间
2012-5-8
帖子
987
跳转到指定楼层
1
发表于 2012-6-22 16:55:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
打个比方说:
1:
A对B使用了XXX技能(回血类的)

B的血量不是马上恢复,而是缓慢恢复。

2:
A使用了XXX物品(回血类的)


A的血量不是马上恢复,而是缓慢恢复。

3:

A挂机,随着时间的流逝,

血量和魔力缓慢恢复。

如何做到以上这样子的效果呢?

点评

并行处理事件通过判断某个角色处于某个状态,给该角色加血,然后等待XX帧数。每次执行某变量+1,变量达到一定值后开关关掉,停止加血。  发表于 2012-6-23 12:06
就是某个技能会给角色加上一个状态,并且公共事件打开一个开关。这个开关英法一个并行处理事件。  发表于 2012-6-23 12:05
战斗之外的话……我只知道一个事件法,而且那个比这个还要麻烦点。  发表于 2012-6-23 12:04
额,原理就是中毒是先算出MAXHP的百分之多少多少,然后剪掉。那么持续恢复就是每回合加上这个值。  发表于 2012-6-23 11:51
看什么看,没看过大坑啊!
-------------------------炫翼-----------------------------
剧情:4%
地图:2%
系统:7%
优化:3%
脚本:25%
--------------------------炫翼----------------------------

      工作室


广告位招租....  

Lv1.梦旅人

54酱是大笨蛋!

梦石
0
星屑
66
在线时间
1389 小时
注册时间
2011-2-23
帖子
5014
2
发表于 2012-6-22 17:29:01 | 只看该作者
1、2使用状态恢复
3.请参考小瞬的挂机系统
去你爹的现充.去你爹的异性恋.
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
22 小时
注册时间
2011-12-9
帖子
6
3
发表于 2012-6-22 21:55:24 | 只看该作者
厲害.樓上的.

点评

纯水了,@版主拉出去轮回了!  发表于 2012-6-22 21:58
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
6 小时
注册时间
2012-6-22
帖子
29
4
发表于 2012-6-22 22:54:30 | 只看该作者
可以用公共事件附加。
具体的楼主应该很容易摸索的。
其实很多事情就是这么简单。

点评

鉴定完毕,纯属胡说,你认真看我的问题了吗?  发表于 2012-6-22 23:06
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
470 小时
注册时间
2010-6-25
帖子
316
5
发表于 2012-6-23 09:26:46 | 只看该作者
同2楼
第一第二个就是用了物品或者技能后给角色一个状态。这个状态勾选“连续伤害”
然后找到“● 应用连续伤害效果”进行修改
def slip_damage_effect
    # 设置伤害
    self.damage = self.maxhp * 3 / 100 #这个是加血扣血的比例
    # 分散
    if self.damage.abs > 0
      amp = [self.damage.abs * 15 / 100, 1].max
      self.damage += rand(amp+1) + rand(amp+1) - amp
    end
    # HP 的伤害减法运算
    if self.state?(11)  #状态11就加血
      self.hp += self.damage
    end
    if self.state?(12)
      self.hp -= self.damage #状态12就中毒
    end
    # 过程结束
    return true
  end

===================================================
挂机回复是不是站着不动的时候回复血啊……
可以写个公共事件,并行处理
条件分歧,脚本:$game_player.moving?
除此以外的场合回复血。
分歧结束
等待XXX帧

点评

不一定要在战斗里面才可以这样,我还想要在战斗之外的。用状态回复的话是可以,但是毕竟麻烦了。  发表于 2012-6-23 11:55
伤害减算是算于回复的吗?...我还是看不太懂,请在详细一点,谢谢。  发表于 2012-6-23 11:48

回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

6
发表于 2012-6-23 15:01:37 | 只看该作者
很简单,使用某个物品的时候X开关打开,在公共事件里面放一个并行处理的事件,出现条件设置为X号开关打开,在那个事件里面这样写:

(如果是1分钟里每秒恢复X的话,重复我指出来的步骤60次即可)

等待20真(1秒)
HP+10

等待20真
HP+10

点评

这个就是我想到的,但是很麻烦,所以就不怎么考虑了。  发表于 2012-6-23 15:18
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

7
发表于 2012-6-23 15:20:08 | 只看该作者
难道你要脚本?

点评

越简单就越好、当然希望有脚本了。  发表于 2012-6-23 15:22
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2728
在线时间
1600 小时
注册时间
2010-10-22
帖子
1058
8
发表于 2012-6-23 18:05:46 | 只看该作者
关于持续回血、回魔的状态,需要修改两个部分的脚本,分别是作为战斗效果部分的Game_Battler 3以及地图效果部分的Game_Party,两个部分可分开使用,比如想做战斗中恢复,但战斗以外的情况下伤害,又或者是相反的情况。下面以100号回血,200号回魔的状态为例:
1.Game_Battler 3的部分:

  1.   #--------------------------------------------------------------------------
  2.   # ● 应用连续伤害效果
  3.   #--------------------------------------------------------------------------
  4.   def slip_damage_effect
  5.     # 设置伤害
  6. #--------------------------------------------------修改部分↓
  7. if self.state?(200)#增加一个判定用来分开回血回魔
  8.   if self.state?(200)#
  9.        self.damage = -self.maxsp / 10
  10.    end
  11.     # 分散
  12.     if self.damage.abs > 0
  13.       amp = [self.damage.abs * 15 / 100, 1].max
  14.       self.damage += rand(amp+1) + rand(amp+1) - amp
  15.     end
  16.     # HP 的伤害减法运算
  17.     self.sp -= self.damage #魔力减法运算
  18. else
  19. if self.state?(100) #
  20.   self.damage = -self.maxhp / 10 #改为增加10%血量
  21. else
  22.     self.damage = self.maxhp / 10
  23. end
  24. #--------------------------------------------------
  25.     # 分散
  26.     if self.damage.abs > 0
  27.       amp = [self.damage.abs * 15 / 100, 1].max
  28.       self.damage += rand(amp+1) + rand(amp+1) - amp
  29.     end
  30.     # HP 的伤害减法运算
  31.     self.hp -= self.damage
  32. end #判定回血回魔的end
  33.     # 过程结束
  34.     return true
  35.   end
复制代码
2.Game_Party的部分:

  1.   #--------------------------------------------------------------------------
  2.   # ● 检查连续伤害 (地图用)
  3.   #--------------------------------------------------------------------------
  4.   def check_map_slip_damage
  5.     for actor in @actors
  6. #---------------------------------------------------------------------修改部分↓
  7.      if actor.state?(100) #
  8.        actor.hp += [actor.maxhp / 100, 1].max #持续恢复1%血量
  9.      end
  10.      if actor.state?(200) #
  11.        actor.sp += [actor.maxsp / 100, 1].max #持续恢复1%魔力
  12.      end
  13.     if actor.state?(100) or actor.state?(200) #增加这个判定是为了在回血状态下屏蔽掉红屏的效果
  14.    elsif actor.hp > 0 and actor.slip_damage?
  15. #-----------------------------------------------------------------------
  16.         actor.hp -= [actor.maxhp / 100, 1].max
  17.         if actor.hp == 0
  18.           $game_system.se_play($data_system.actor_collapse_se)
  19.         end
  20.         $game_screen.start_flash(Color.new(255,0,0,128), 4)
  21.         $game_temp.gameover = $game_party.all_dead?
  22.       end
  23.     end
  24.   end
复制代码
大体就是这样,其实回血就是将伤血状态造成的伤害改为负数,回魔则是将hp改为sp罢了。用这个方法还可以做出持续伤害魔力的状态。

评分

参与人数 1梦石 +2 收起 理由
hcm + 2 认可答案

查看全部评分

【2022.06.03】原本以为已经不可能再找回来的东西重新找回来了,原本一直念念不忘的坑终于再一次拿起铲子了。一别竟近10年,你好,我的世界我的梦。
【不可阻挡】异元-地劫黎明
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 12:04

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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