Project1

标题: 限制队伍编号为4的角色不行动的脚本该怎么写? [打印本页]

作者: 幻耶    时间: 2008-1-14 21:11
标题: 限制队伍编号为4的角色不行动的脚本该怎么写?
战斗中永远限制为不行动,该怎么写?

$game_party.actors[4] [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 幻耶    时间: 2008-1-14 21:11
标题: 限制队伍编号为4的角色不行动的脚本该怎么写?
战斗中永远限制为不行动,该怎么写?

$game_party.actors[4] [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: link006007    时间: 2008-1-14 21:44
制作状态..   将那个状态设置为不能行动
$game_party.actors[4] 就可以调用Game_battler的add_state(state_id, force = false)方法附加状态

作者: 幻耶    时间: 2008-1-14 21:55
我是添加了33号状态为不行动,在数据库所有队伍的战斗事件里添加:$game_party.actors[4].add_state(33)

能不能在脚本里添加,使得一读取游戏就有这种效果了
作者: link006007    时间: 2008-1-14 22:03
$game_party.actors[4].add_state(33)本身也是脚本,不考虑性能==其它乱七八糟的因素的话,哪里需要就在哪里添加, 比如哪里进入游戏就在哪里添加咯...  如果只是在战斗中使用的话,在buttle的初始化调用一次应该是可以的
作者: 幻耶    时间: 2008-1-14 22:11
哪里进入游戏就在哪里添加??那么比如说可以加在哪里啊??我随便加一个地方总是说:语法错误或者actors没定义什么的
作者: link006007    时间: 2008-1-14 22:23
以下引用幻耶于2008-1-14 14:11:30的发言:

哪里进入游戏就在哪里添加??那么比如说可以加在哪里啊??我随便加一个地方总是说:语法错误或者actors没定义什么的


[本贴由作者于 2008-1-14 14:12:03 最后编辑]


比如在战斗初始化时添加... 那么那个角色在战斗中一开始就有这个状态了
但是如果在Scene_Title初始化里添加则会报错  因为那是的$game_party为空或者刚初始化,actors为空数组.  如果在
    # 设置初期同伴位置
    $game_party.setup_starting_members  #这后面添加
    $game_party.actors[0].add_state(1, true)  则1号角色已进入新游戏就附上1好状态

另外   $game_party.actors[4] 是第5号角色   3才是4号角色
作者: 幻耶    时间: 2008-1-14 22:43
我这个状态是给后来加入的几个角色的,如果那些角色一开始还没加入,刚进新游戏会报错的吧。。。
我其实是想让加入队伍的人数超过四人以上的时候,第五至第八个角色全部附带33号状态

因为用了八人脚本,角色的位置随时会变动,所以我用队伍编号来定义
作者: link006007    时间: 2008-1-15 03:02
$game_party.actors.size 就是获取actors数组长度.  该长度就是队伍人员数
根据这个判断队伍人数的分歧, 用循环给后面的角色附上状态就可以了 [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: 幻耶    时间: 2008-1-15 03:55
循环怎么用哦?{/gg}
比如:
if $game_party.actors.size > 4
$game_party.actors[4].add_state(1, true)

用这个没效果
作者: link006007    时间: 2008-1-15 04:27
新建一个默认工程  在Scene_Title的 def command_new_game函数下找到
    # 设置初期同伴位置
    $game_party.setup_starting_members
    # 添加
    i=1
    while i < $game_party.actors.size
      $game_party.actors.add_state(1, true)
      i+=1
    end
LZ进入游戏看队伍就会知道效果了   这个就是循环的用法
作者: 幻耶    时间: 2008-1-15 05:38
以下引用link006007于2008-1-14 20:27:23的发言:

新建一个默认工程  在Scene_Title的 def command_new_game函数下找到
   # 设置初期同伴位置
   $game_party.setup_starting_members
   # 添加
   i=1
   while i < $game_party.actors.size
     $game_party.actors.add_state(1, true)
     i+=1
   end
LZ进入游戏看队伍就会知道效果了   这个就是循环的用法



添加了上面的,怎么没效果啊?一定要新建的工程??比如,我希望队伍编号排在4号以上的所有队员一加入队伍就自动附加1号状态
作者: link006007    时间: 2008-1-15 05:45
新建工程是让你看看效果
  i=1
  while i < $game_party.actors.size
    $game_party.actors.add_state(1, true)
    i+=1
  end
上面的脚本是让所有人员除第一个以外全部附加上1号状态
作者: 幻耶    时间: 2008-1-15 05:56
原来是这样。那么对于新加入的队员总是在队伍末尾四位自动附加上1号状态能不能在脚本里解决?

因为用了人数上限的脚本,角色排列可以随时调整的,所以不管加入多少队员,只想用队伍编号来限制末尾四位角色自动附加上N号状态




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