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

Project1

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

[已经解决] 如何使角色在临死时自动附加状态?

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
211
在线时间
905 小时
注册时间
2010-9-6
帖子
3229
跳转到指定楼层
1
发表于 2011-6-28 22:30:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 stevenrock 于 2011-6-29 20:23 编辑

我注意到了,当角色生命值低到一定程度时候,生命值的数字会变成黄色。(我用的是原版战斗系统)
能否让角色在生命垂危的时候自动附加某个状态?然后当生命脱离危险后,状态也随之自动消除?

我搜索时,发现了一个样板,也许用这个可以制作出来这样的效果……
好心的人,帮帮忙?

slick_HPSP人性化设定_114379486.rar

1.52 MB, 下载次数: 51

Lv1.梦旅人

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
帖子
3597
2
发表于 2011-6-29 07:58:21 | 只看该作者
  1.   #--------------------------------------------------------------------------
  2.   # ● 更改 HP
  3.   #     hp : 新的 HP
  4.   #--------------------------------------------------------------------------
  5.   def hp=(hp)
  6.     @hp = [[hp, maxhp].min, 0].max
  7.     # 解除附加的战斗不能状态
  8.     for i in 1...$data_states.size
  9.       if $data_states[i].zero_hp
  10.         if self.dead?
  11.           add_state(i)
  12.         else
  13.           remove_state(i)
  14.         end
  15.       end
  16.     end
  17.   end
复制代码
这是在默认系统里Game_Battle的一个定义,每次更改HP都会使用
可以根据HP改变后的数值来确定是否增加某个状态
  1.   if self.is_a?(Game_Actor)
复制代码
判断self是否角色(Game_Actor类)

点评

能不能再解释得稍微清楚一点,我好像还是稍微有一点不明白,刚开始学脚本,不好意思……  发表于 2011-6-29 19:30

http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可
回复

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
22 小时
注册时间
2011-5-8
帖子
62
3
发表于 2011-6-29 08:57:17 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
108 小时
注册时间
2010-7-7
帖子
114
4
发表于 2011-6-29 10:00:06 | 只看该作者
本帖最后由 qazsdwexc 于 2011-6-29 10:32 编辑

Project2.rar (186.52 KB, 下载次数: 16) 这个方法普通战斗就可行,先建立你要的状态
然后在你要发动此状态的队伍做一下设置
之后在战斗时就会出现 经测试可行- -嗯.....还有你如果不想刚发动状态还没行动就被打死,在队伍设置事件发动条件那里距离必须要是回合

点评

哦忘了还有个小BUG....状态发动后如果加血的话,状态不会解除,但状态增减的属性是变回来了....  发表于 2011-6-29 10:07
回复

使用道具 举报

Lv1.梦旅人

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
帖子
3597
5
发表于 2011-6-29 19:35:21 | 只看该作者
Wind2010 发表于 2011-6-29 07:58
这是在默认系统里Game_Battle的一个定义,每次更改HP都会使用
可以根据HP改变后的数值来确定是否增加某个状 ...

第6行确定了新的HP值,然后可以通过@hp*100/maxhp(HP百分比)来确定是否附加状态

点评

把这个定义复制进Game_Actor里,只对Game_Actor类有效果,这样Game_Enemy就不受影响了。  发表于 2011-6-29 20:22
又看不懂了……55555  发表于 2011-6-29 20:18
判断是否附加状态时,或者干脆在Game_Actor里重定义这个方法  发表于 2011-6-29 20:07
这个状态我已经做出来了……但是这个状态敌我不分啊!我可不希望敌人也拥有这样的状态,你说的self判断角色该在哪里写呢?  发表于 2011-6-29 20:03
嗯,我好像有点明白了,我试试看……  发表于 2011-6-29 19:39

http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
211
在线时间
905 小时
注册时间
2010-9-6
帖子
3229
6
 楼主| 发表于 2011-6-29 20:22:23 | 只看该作者
Wind2010 发表于 2011-6-29 19:35
第6行确定了新的HP值,然后可以通过@hp*100/maxhp(HP百分比)来确定是否附加状态 ...

我完成一小半了,帮忙修改一下吧……谢谢你了……等会我追加悬赏给你。
呵呵。

Project3.rar

186.6 KB, 下载次数: 15

回复

使用道具 举报

Lv1.梦旅人

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
帖子
3597
7
发表于 2011-6-29 20:39:12 | 只看该作者
stevenrock 发表于 2011-6-29 20:22
我完成一小半了,帮忙修改一下吧……谢谢你了……等会我追加悬赏给你。
呵呵。 ...
  1.   #--------------------------------------------------------------------------
  2.   # ● 更改 HP
  3.   #     hp : 新的 HP
  4.   #--------------------------------------------------------------------------
  5.   def hp=(hp)
  6.     @hp = [[hp, maxhp].min, 0].max
  7.     # 解除附加的战斗不能状态
  8.     for i in 1...$data_states.size
  9.       if $data_states[i].zero_hp
  10.         if self.dead?
  11.           add_state(i)
  12.         else
  13.           remove_state(i)
  14.         end
  15.       end
  16.       #####
  17.       return unless self.is_a?(Game_Actor)
  18.       # ↑如果不是Game_Actor类的话则跳过下面
  19.       if @hp*100/maxhp <= 30 #如果HP百分比低于30的话
  20.         add_state(17)
  21.       else        
  22.         remove_state(17)
  23.       end
  24.       #####
  25.     end
  26.   end
复制代码

点评

谢谢,虽然第一条我还真没搞明白为啥这样写,不过我会努力去继续学的。祝你今晚好梦啊!  发表于 2011-6-29 21:02

http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-30 02:09

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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