Project1

标题: 求队员濒死状态处理的脚本 [打印本页]

作者: 浪使者    时间: 2008-6-26 07:12
标题: 求队员濒死状态处理的脚本
求队员濒死状态处理的脚本 以及 脚本插入位置

就是让濒死状态的队员,在hp=0后自动离开队伍。

虽然可以通过其他方法实现,但是用脚本估计运用会更好。

以下可能用到的脚本代码,供参考:

def remove_actor(actor_id)
    @actors.delete(actor_id)
    $game_player.refresh
  end

def dead?
    return (not @hidden and @hp == 0 and not @immortal)
  end

if @hp == 0 and not state?(1) and not @immortal

def all_dead?
    return existing_members.empty?
  end

  def dead_members
    result = []
    for battler in members
      next unless battler.dead?
      result.push(battler)
    end
    return result
  end

[LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: link006007    时间: 2008-6-27 04:47
这贴子是讨论还是请教?
作者: 浪使者    时间: 2008-6-27 05:41
以为终于有人解答了。。。。。

是请教啊,标题就说明了。

偶列出来的代码 不一定用得上 参考而已。。
作者: 水仙晶女    时间: 2008-6-27 12:44
提示: 作者被禁止或删除 内容自动屏蔽
作者: 浪使者    时间: 2008-6-27 15:36
TO 水仙晶女

尝试过很多了,但是不能成。偶可还是加进来不到15天的新手!!
你说的就很简单 可问题其实不少。关键是具体在哪里添加,以及怎样写脚本。

判断队员彻底离开队伍的代码  应该就是借鉴 @actors.delete(actor_id) 的类似模式
也就是对符合条件的actor使用delete。才有效果。

仅仅在game_batter里面可能添加的地方就有:
if @hp == 0 and not state?(1) and not @immortal
其后的离队脚本代码
if state_id == 1                    # 如状态是「无法战斗」(1号状态)
   其后的离队脚本代码
def dead?
    return (not @hidden and @hp == 0 and not @immortal)
死亡判断确认后 其后的离队脚本代码

又或者是自己再另外写一段完整的代码插入。使用的脚本语句:。
比如 使用 if...(在某种情况下) case...(某队员或无法战斗情况) when (无法战斗及其他情况或某队员等) end
或 使用 if 无法战斗情况  就delete某队员 刷新队伍 end
等等

作者: 水仙晶女    时间: 2008-6-27 17:48
提示: 作者被禁止或删除 内容自动屏蔽
作者: 浪使者    时间: 2008-6-27 19:00
  
for actor in members           #循環同伴隊員內部
      if actor.dead?              #用.dead?判斷队员死亡状态
   $Game_Party.remove_actor       #讓該隊員離開调用Game_Party的remove_actor

这段脚本有什么问题吗?
作者: 水仙晶女    时间: 2008-6-27 20:03
提示: 作者被禁止或删除 内容自动屏蔽
作者: 浪使者    时间: 2008-6-27 20:19
都修正了,脚本没有错误

但是没有达到想要的效果,挂掉的队员依然存在队伍列表中。


作者: 水仙晶女    时间: 2008-6-27 20:59
提示: 作者被禁止或删除 内容自动屏蔽
作者: 浪使者    时间: 2008-6-27 21:16
脚本正确执行,没有错误。

但是经测试,挂掉的队员依然在队伍列表里,可以替换,没有彻底离开。

会不会是还要在其他什么地方加入或修改?
作者: 雪流星    时间: 2008-6-28 06:23
不可能
除非你做错了什麽

否则我这工程用了同样一段我给你的脚本
http://rpg.blue/upload_program/files/Project11_95034089.rar

自己试试看吧

你说「替换」?
是不是用了其他的脚本?
作者: 浪使者    时间: 2008-6-28 07:34
嗯。。。和其他脚本没有冲突。。。

我知道问题所在了

我一直测试的是踩地雷减血事件,直接减hp到0 这种情况下即时队员hp=0也不会离开队伍

但是在战斗过程中导致的战斗减员是ok的。。。

偶原本设想的是 无论在战斗或是非战斗中 只要队员hp=0 就要离队

该脚本实现了一半。。也可以了。。
作者: 浪使者    时间: 2008-6-28 07:36
鉴于 水仙晶女 先给出来的 认可她了
再额外 感谢 snstar2006 (反正你是超级斑竹 不在乎这点积分了。)

作者: 雪流星    时间: 2008-6-28 08:24
= =
水仙晶女是我的MJ
我們是同一個人.....
還有,我只是版主,不是超級版主

還有,在地圖上減HP的話
把同樣的判斷腳本放在並行公共事件裡面(或Scene_Map裡面)
就可以在地圖上離隊




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