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

Project1

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

[讨论] 做出蒼之濤的戰鬥方法(車芸的)

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
45
在线时间
47 小时
注册时间
2009-6-1
帖子
127
跳转到指定楼层
1
发表于 2009-8-24 16:01:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
有玩過軒轅劍外傳:蒼之濤的人,應該知道女主角車芸的戰鬥方法和別的角色不太一樣吧

嘛,由雲狐攻擊這個部份在RM應該可以算作戰鬥動畫的部份

部份大招前面有動畫也可以用RGSS+公共事件+AVI/SWF腳本達成

絕招部分也有網友做出了類似的功能



不過我想討論的地方是當車芸戰鬥不能的時候,如果沒同伴在場直接判定GAME OVER
但是有同伴在場且能繼續戰鬥的話,車芸不算戰鬥不能而無法行動,反倒是可以繼續行動但不能進行攻擊或者是偵測敵方木甲,而只能做使用物品/修復雲狐的動作

像是這樣萬一一人無法戰鬥但有同伴在場且能繼續戰鬥則可繼續行動的戰鬥方法要怎麼用RGSS做出來呢?
(直覺是這不能用公用事件或者是戰鬥事件做)

我雖然還沒想要不要把這功能做進來,但是好像可以討論一下w

Lv1.梦旅人

梦石
0
星屑
50
在线时间
128 小时
注册时间
2009-1-28
帖子
2790
2
发表于 2009-8-24 16:04:08 | 只看该作者
跟龙仔一样的繁体字.......

其实只要加个状态和判定就可以拉

炼金术的根本法则是等价交换。想要获得,必须失去同等价值的东西。每当烦躁的时候,煎熬在不想做却又正在做的烦心事中的时候,我就安慰自己,提醒自己做这些事情的目的所在,告诉自己不要忽略所获得或者即将获得的回报,物质的,精神的,肉体的,灵魂的回报!只做想做的事情,就会失去不想失去的东西。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
382
在线时间
235 小时
注册时间
2009-2-13
帖子
470
3
发表于 2009-8-24 17:55:37 | 只看该作者
楼主最好给个截图……
那些人,那些事,等到明白了,也就无所谓了。
我博客:http://blog.sina.com.cn/gy963
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
87
在线时间
303 小时
注册时间
2006-7-12
帖子
958
4
发表于 2009-8-24 18:45:29 | 只看该作者
純事件的我又來亂入了……

為車芸添加一個戰鬥不能狀態。




每位隊員都要添加,比如還有桓遠之……
“附加”這個狀態可以用來限制攻擊/物品/逃跑等等。





木甲修复術,把Game_Battler 3中的if dead?改成if dead? and skill_id != 1(木甲修复ID)就可以用了。



有一個BUG(雲狐死後的第一回合不能行動),所以就不做範例了。
不過我覺得用事件模仿的效果不太好,希望有高手來指點一下……
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6645
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

5
发表于 2009-8-24 20:36:03 | 只看该作者
本帖最后由 后知后觉 于 2009-8-24 20:55 编辑

用脚本来做的话……我想想……

增加一个特定的状态 比如50号状态
然后全局搜索 def hp=(hp)
  def hp=(hp)
    @hp = [[hp, maxhp].min, 0].max
    if self.dead?
      # 如果对象的名字叫车云
      if self.name == "车云"
        # 增加50号状态
        add_state(50)
        return
      end
    end
    for i in 1...$data_states.size
      if $data_states[ i ].zero_hp
        if self.dead?
          add_state(i)
        end
        else
          remove_state(i)
        end
      end
    end
  end

这样的话,叫车云的角色就不会中 战斗不能状态
在死亡的时候中的是50号状态
这个50号状态的【限制】要设置为【无】

然后找到Scene_Battle 4 的 def start_phase4
下面写这样的一段
比如车云的ID号为5
# 如果id为5的角色中了50号状态
if $game_actors[5].state?(50)
  # 如果这个角色的命令为基本.特技就初始化命令
  if $game_actors[5].current_action.kind == 0 or $game_actors[5].current_action.kind == 1
    $game_actors[5].current_action.clear
  end
end
这样的话就是说车云在中了50号状态后只有使用物品或其他新增命令的种类
判断胜负应该不用改,因为判断胜负是根据的hp是否全为0来进行的判断而不是用的状态来判断
最后再说一下这个50号状态的设置
先去看看默认的1号状态【战斗不能】吧
这个状态在附加的时候要解除其他的所有状态,状态设置的右边那一竖行的[-]号
这个50号状态也要这样去设置,不然和其他状态并存的时候会出现灵异现象
给云狐复活的特殊物品什么的就专门解除这个50号状态就可以了

最后= =  我没有测试~~大概就是这样了吧,











你知道得太多了

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6645
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

6
发表于 2009-8-24 21:00:22 | 只看该作者
编辑不能= = 重新发一帖....
主要是那个代码.上面代码有个错误

  def hp=(hp)
    @hp = [[hp, maxhp].min, 0].max
    if self.dead?
      # 如果对象的名字叫车云
      if self.name == "车云"
        # 增加50号状态
        add_state(50)
        return
      end
    end

    for i in 1...$data_states.size
      if $data_states[ i ].zero_hp
        if self.dead?
          add_state(i)
        else
          remove_state(i)
        end
      end
    end
  end

比如车云的ID号为5
# 如果id为5的角色中了50号状态
if $game_actors[5].state?(50)
  # 如果这个角色的命令为基本.特技就初始化命令
  if $game_actors[5].current_action.kind == 0 or $game_actors[5].current_action.kind == 1
    $game_actors[5].current_action.clear
  end
end











你知道得太多了

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-13 23:41

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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