Project1

标题: 怎么做战斗结束后自动回复? [打印本页]

作者: reichal    时间: 2008-3-31 10:16
标题: 怎么做战斗结束后自动回复?
以前看见过这个范例,可我找了半天没找到。
问题是这样的,因剧情需要,战败后剧情继续,但人物的HP已经为0。
然后我在事件里加了个增减HP+9999,却奇怪的是一到这个事件,就自动Game Over。
估计是因为人物HP已经为0的原因,所以现在求一个战斗结束后自动回复的办法。
请各位帮帮忙,找到以前的那个范例也行。 [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: reichal    时间: 2008-3-31 10:53
都睡觉了?没人理我啊?
作者: 暴风の龙    时间: 2008-3-31 12:35
17.如何设置战斗胜利后自动回复HP?

http://rpg.blue/viewthread.php?tid=49634

在问题索引贴里有……
作者: Singin    时间: 2008-3-31 18:23
打开脚本  ,按  shift+ctrl+f  输入
    def initialize(exp, gold, treasures)
弹出的框双击查询出的内容.
   第17行 @treasures = treasures 下面加:
    for actor in $game_party.actors
       actor.hp += actor.maxhp/10
       actor.sp += actor.maxsp/10
     end
----
打完后加上限的十分一.
如果加满,写成:
    for actor in $game_party.actors
       actor.hp = actor.maxhp
       actor.sp = actor.maxsp
     end
----
大概就可以了!
作者: reichal    时间: 2008-3-31 20:00
谢谢两位,我试试看看!
作者: reichal    时间: 2008-3-31 20:38
四楼的Singin哥哥,照你的做了,但还是现实战斗不能,HP为0。

作者: reichal    时间: 2008-3-31 20:41
我发现了,在战斗不能,HP为0的情况下,HP回复药水,回复技能都不能用。但由于剧情需要,战斗必须要输,HP必须为0,然后用魔法回复……
这该怎么解决啊??
作者: 八云紫    时间: 2008-3-31 20:43
强行战斗,勾上允许失败即可。
作者: reichal    时间: 2008-3-31 20:44
Singin哥哥的方法在战斗没有失败的情况下可以实现,没有问题。
但在战斗失败HP为0的情况下就没有反应了。
作者: 禾西    时间: 2008-3-31 20:48
好像是這樣:
   for actor in $game_party.actors
      actor.remove_state(1) if actor.dead?
      actor.hp = actor.maxhp
      actor.sp = actor.maxsp
    end
作者: reichal    时间: 2008-3-31 20:49
八云紫,可能你没有看清楚我的问题。
我就是在战斗处理下勾了失败的话继续。是可以继续了,但状态是战斗不能HP为0的情况下,无法恢复HP,我只是要解决这个恢复问题。
作者: 八云紫    时间: 2008-3-31 20:50
那就就数据库中写上条件分歧来判断角色HP在为0时的行动,不知道可以不可以。
作者: 八云紫    时间: 2008-3-31 20:56
以下引用西行寺幽幽子于2008-3-31 12:50:36的发言:

那就就数据库中写上条件分歧来判断角色HP在为0时的行动,不知道可以不可以。


会出现GameOver。

作者: reichal    时间: 2008-3-31 23:30
恩,我用了个很烂的办法来解决,就是……
在战斗完毕后,让NPC给了个恢复战斗不能的药让玩家吃……
作者: reichal    时间: 2008-3-31 23:32
禾西前辈的办法也试了,问题主要在玩家战斗结束后,玩家的状态就变成了战斗不能,在这种状态下,直接是不能加HP的。
作者: Singin    时间: 2008-4-1 00:01
呵呵~  我不是很仔细啊,见笑了~ 你试试这个行不行
    第一步,先把状态 战斗不能 结束时消除 选钩
   然后----:
    还是脚本打开, shift+ctrl+f , 输入:  if zero_hp == false

137 行开始
        if zero_hp == false
          @hp = 1        
        end
改成
        if zero_hp == false
         # @hp = 1             #**
          @hp = maxhp         
          @sp = maxsp          #*
        end

这个大概就不能在战斗时用复活药了!

大家还有好的方法,一起说一下!

---------
我太不仔细啦!既然有错别字,还把1都写成了0!!!
------------------再编辑一下:
以下引用reichal于2008-3-31 12:41:08的发言:
我发现了,在战斗不能,HP为0的情况下,HP回复药水,回复技能都不能用。但由于剧情需要,战斗必须要输,HP必须为0,然后用魔法回复……
这该怎么解决啊??

-----------------
LZ啊,我算是太佩服我自己了.要是只是这个要求,不用改脚本,只要在NPC那里设置:

战斗设置:[什么什么怪]  (允许失败)

胜利情况

失败情况
  更改状态 全体同伴 - 战斗不能
  完全恢复 全体同伴
分支结束
[LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: 禾西    时间: 2008-4-1 05:35
以下引用reichal于2008-3-31 15:32:40的发言:

禾西前辈的办法也试了,问题主要在玩家战斗结束后,玩家的状态就变成了战斗不能,在这种状态下,直接是不能加HP的。

加在這裏的……昨晚忘記說:
  #--------------------------------------------------------------------------
  # ● 战斗结束
  #     result : 結果 (0:胜利 1:失败 2:逃跑)
  #--------------------------------------------------------------------------
  def battle_end(result)
    for actor in $game_party.actors
     actor.remove_state(1) if actor.dead?
     actor.hp = actor.maxhp
     actor.sp = actor.maxsp
    end

作者: reichal    时间: 2008-4-1 08:53
谢谢二位了,
Singin的那个事件的方法既省时又省力。

作者: reichal    时间: 2008-4-1 08:55
还有禾西前辈,每当我遇到问题的时候,禾西前辈的身影就会悄然的来到我的大楼里。
呵呵……(说得有点像鬼片……)
作者: bloblo    时间: 2008-4-1 09:27
拜读了  强 很强 很强大   楼主辛苦了 o(∩_∩)o...哈哈          
   
     
      
   
   
  
     
   
      
------------------------------------------------------------
域名注册就是网址,网址也叫中文域名,搞不懂!头晕~
作者: benjamin    时间: 2008-4-1 09:54
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1