查看: 5574|回复: 13

[有事请教] 如何让队伍里某个职业不能重复

[复制链接]
梦石
0
星屑
218
在线时间
56 小时
注册时间
2019-1-29
回帖
22
发表于 2020-7-24 23:53:36 | 显示全部楼层 |阅读模式

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

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

×
例如我做了个超级厉害的职业,为了平衡,我想让这种职业只能上场一个,不知道描述的能不能理解
梦石
0
星屑
913
在线时间
162 小时
注册时间
2019-4-18
回帖
37
发表于 2020-7-24 23:56:28 | 显示全部楼层
那你就做一个不厉害的职业,另一个人不是这个厉害的职业应该就行了吧?
回复

使用道具 举报

梦石
0
星屑
3922
在线时间
1198 小时
注册时间
2016-8-9
回帖
2355

开拓者

发表于 2020-7-25 01:14:58 | 显示全部楼层
只允许一个角色转职为这个职业
酸酸甜甜就④哇噢
回复

使用道具 举报

梦石
0
星屑
218
在线时间
56 小时
注册时间
2019-1-29
回帖
22
 楼主| 发表于 2020-7-25 01:45:44 | 显示全部楼层
白嫩白嫩的 发表于 2020-7-25 01:14
只允许一个角色转职为这个职业

有N个角色是这个职业,但是我要只能上场一个。因为游戏系统设定需要
回复

使用道具 举报

梦石
0
星屑
1343
在线时间
153 小时
注册时间
2020-4-26
回帖
146
发表于 2020-7-25 09:38:02 | 显示全部楼层
用个上场队员管理的插件不知可否
回复

使用道具 举报

梦石
0
星屑
395
在线时间
101 小时
注册时间
2009-2-3
回帖
292
发表于 2020-7-25 10:29:29 | 显示全部楼层
我曾经也遇到过一样的问题,也想过这个功能,不过最后也没想到好的解决办法
感谢还有你,Project1
回复

使用道具 举报

梦石
0
星屑
34465
在线时间
5096 小时
注册时间
2012-11-19
回帖
4715

开拓者

发表于 2020-7-25 11:50:51 | 显示全部楼层
把下面的代码写入插件试试。
  1. Game_Party.StrongClassId = 10;
  2. var XR_StrongClass_Game_Party_addActor = Game_Party.prototype.addActor;
  3. Game_Party.prototype.addActor = function(actorId) {
  4.     var result = !this._actors.contains(actorId);
  5.     XR_StrongClass_Game_Party_addActor.call(this, actorId);
  6.     result && this.sortStrongClass();
  7. };
  8. Game_Party.prototype.sortStrongClass = function() {
  9.     var arr = this._actors.filter(function(id){
  10.         return $gameActors.actor(id).currentClass().id === Game_Party.StrongClassId;
  11.     });
  12.     if (arr.length > 0) {
  13.         var arr2 = this._actors.filter(function(id){ return !arr.contains(id); });
  14.         shiftId = arr.shift();
  15.         this._actors = [shiftId].concat(arr2, arr);
  16.     }
  17. };
  18. var XR_StrongClass_Game_Party_maxBattleMembers = Game_Party.prototype.maxBattleMembers;
  19. Game_Party.prototype.maxBattleMembers = function() {
  20.     var max = XR_StrongClass_Game_Party_maxBattleMembers.call(this);
  21.     var index = this._actors.length;
  22.     for (var i=1;i<this._actors.length;++i) {
  23.         var actor = $gameActors.actor(this._actors[i]);
  24.         if (actor.currentClass().id === Game_Party.StrongClassId) {
  25.             index = i;
  26.             break;
  27.         }
  28.     }
  29.     return Math.min(max, index);
  30. };
复制代码


预设的厉害职业ID为 10 ,将 Game_Party.StrongClassId = 10  改成你的厉害的职业ID。
构思是将 第一个厉害职业角色 排在首位,中间是其他职业角色,最后是剩下的 厉害职业角色 。
然后在 maxBattleMembers 截断它。
未测试

点评

缺点是,在菜单里调整了角色位置,会无效。  发表于 2020-7-25 11:59

评分

参与人数 1赞 +1 收起 理由
白嫩白嫩的 + 1 666

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2020-7-25 16:26:55 | 显示全部楼层
我来组成头部...合体!
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2020-7-25 16:29:52 | 显示全部楼层
本帖最后由 soulsaga 于 2020-7-25 16:45 编辑

有N个角色是这个职业,但是只能上场一个
那么多人都是这职业要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要怎么判断上场哪一个..

点评

???  发表于 2020-7-25 16:53
回复

使用道具 举报

梦石
0
星屑
218
在线时间
56 小时
注册时间
2019-1-29
回帖
22
 楼主| 发表于 2020-7-26 19:18:26 | 显示全部楼层
芯☆淡茹水 发表于 2020-7-25 11:50
把下面的代码写入插件试试。

这个估计实现不了
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部