查看: 2211|回复: 2

[已经解决] 关于指定领队角色和领队行走图的问题。

[复制链接]
梦石
0
星屑
1736
在线时间
761 小时
注册时间
2013-9-23
回帖
180

开拓者

发表于 2016-12-29 01:00:40 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 午睡的风铃 于 2016-12-29 01:06 编辑

主要是领队角色的行走要和1号角色的一样。可以把1号角色固定为领队,也可以是伪造的1号角色。
并且自带的整队功能可用,也就是说其他的角色在队伍第一个位置时,领队的行走图都是1号角色的。

希望可以得到以下任何一种解决的办法(是任意一种,不是兼备全部):
1】无论任何角色在队伍第一个位置,领队的角色都固定是1号。
2】论坛里有一个<插入领队角色>的脚本,但是插入的领队只有一套行走图,
因为我的游戏里的领队角色有两套行走图要反复更换,所以求一个能给插入的领队换行走图的脚本也行。
脚本链接http://rpg.blue/forum.php?mod=vi ... p;page=1#pid2132221
3】有更改指定角色行走图颜色,或者明暗度的脚本也行。
4】事件也行,就是能用事件或脚本给任何在队伍第一个位置的角色换成特定行走图,
并且能在整队后换回原行走图。越简化越好。

评分

参与人数 1星屑 +50 收起 理由
VIPArcher + 50 结贴

查看全部评分

梦石
0
星屑
6891
在线时间
7027 小时
注册时间
2013-11-2
回帖
1263

开拓者剧作品鉴家

发表于 2016-12-29 13:30:54 | 显示全部楼层
使用以下的“插件脚本”,效果是无论任何角色在队伍第一个位置,领队的角色都固定是1号。

[pre lang="ruby"]
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
[/pre]

原理:
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汉化帮助文档,阅读里面的脚本入门。(也要看看默认脚本里面的绿字注释)

点评

问题完美解决。我文化程度不高但年龄却算得上不低...你的讲解非常的细致入微,看完后我似乎弄明白了些什么重要的东西,很受启发。非常感谢。  发表于 2016-12-29 17:48

评分

参与人数 2星屑 +30 梦石 +1 收起 理由
VIPArcher + 1 认可答案
午睡的风铃 + 30 认可答案

查看全部评分

回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部