使用以下的“插件脚本”,效果是无论任何角色在队伍第一个位置,领队的角色都固定是1号。
class Game_Player < Game_Character def actor $game_actors[1] end end class Game_Follower < Game_Character def actor $game_party.battle_members.reject{|a| a.id == 1}[@member_index - 1] end end
class Game_Player < Game_Character
def actor
$game_actors[1]
end
end
class Game_Follower < Game_Character
def actor
$game_party.battle_members.reject{|a| a.id == 1}[@member_index - 1]
end
end
原理:
Game_Player(玩家角色类)里面的actor方法定义着领队的角色。默认是$game_party.battle_members[0]也就是战斗队伍的领队。
把它改成$game_actors[1]就能将领队固定为1号角色了。
但这还不能达成效果。因为你会发现,怎么会有重复的角色?!!(闲的话可以自己试试)
这是因为虽然固定显示领队角色为1号,但是该角色在队伍内的位置却可能不是第一位。那么系统决定跟随者身份的时候就会出现重复的情况。
于是Game_Follower(跟随角色类)里面的actor方法定义着该跟随者所对应的的角色。
原本是$game_party.battle_members[@member_index],而@member_index这个变量里面存着的是跟随者的自身ID(1,2,3…)
那么我们知道,在程序界,数组索引编号是从0开始的。所以$game_party.battle_members[1]的话就是队伍内的第二个角色。以此类推。
那么我用了$game_party.battle_members.reject{|a| a.id == 1}来获取一个不包含1号角色在内的新数组。
然后因为数组的内容少了1个,所以本来索引是[@member_index],就要改成[@member_index - 1]
最终拼成$game_party.battle_members.reject{|a| a.id == 1}[@member_index - 1]
脚本是非常神奇的玩意儿,你看看才几行的东西,理论上改的代码才两行就达成了效果,比什么事件啦噼里啪啦的都强。
如果有兴趣的话可以尝试学一学,可以下载本区置顶的F1汉化帮助文档,阅读里面的脚本入门。(也要看看默认脚本里面的绿字注释)
|