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

Project1

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

[有事请教] 请问如何设置角色装备一个物品后改职业

[复制链接]

Lv2.观梦者

梦石
0
星屑
268
在线时间
160 小时
注册时间
2014-9-17
帖子
67
跳转到指定楼层
1
发表于 2019-7-25 17:12:13 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
请问如何设置角色装备一个物品后改职业,然后卸下后变回原来职业?
c

Lv2.观梦者

梦石
0
星屑
550
在线时间
46 小时
注册时间
2017-10-3
帖子
3
17
发表于 2020-5-3 16:34:38 | 只看该作者
偶然间看到大神的那个换装备切换职业的脚本 正好用得上但是有一个问题 如果因为某个装备改变了职业 脱下来后 职业不会变化 而且仅仅只是改变了职业的称呼 技能啥的都没有变化 并且 改了职业后 无法获得经验值 至少我通过事件无法获得经验
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3781
在线时间
439 小时
注册时间
2019-3-3
帖子
87
16
发表于 2019-8-14 21:38:10 | 只看该作者
ccArtermices 发表于 2019-8-14 20:34
多神,还是不行,还是会报那个错,而这个报错一般是发生在没有装备可以改变职业的物品的角色上,这些角色 ...

当初你要求脱下装备恢复原来的职业,在制作时就在换装前记录下原来的职业。如果原来就是无职业,那么肯定就会报错了。所以建议保留基础职业(村民,新手之类的),再进行转职操作,而不是从无职业开始。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
268
在线时间
160 小时
注册时间
2014-9-17
帖子
67
15
 楼主| 发表于 2019-8-14 20:53:15 | 只看该作者
中华国哥 发表于 2019-8-1 09:35
口以试一下waynee95的插件,WAY_CustonOnEquipEval(还需way的核心插件),口以设定装备或脱下装备时执行某 ...

我看不是很懂这些脚本的help,可以解释一下吗?比如我要在code中设置更改actor的职业,应该怎么写?a.xx=yy吗?
c
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
268
在线时间
160 小时
注册时间
2014-9-17
帖子
67
14
 楼主| 发表于 2019-8-14 20:34:00 | 只看该作者
多卡多卡 发表于 2019-7-31 21:59
要将角色原来的职业储存起来比较麻烦,现在改过了不会报错了,并且关闭后重新读档也能切回原来的职业,可 ...

多神,还是不行,还是会报那个错,而这个报错一般是发生在没有装备可以改变职业的物品的角色上,这些角色的默认职业是“无职业”,这些“无职业”的角色装备上一些武器或者准备空的武器对象就会报这个错
c
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5469
在线时间
540 小时
注册时间
2017-9-28
帖子
154
13
发表于 2019-8-1 09:35:28 | 只看该作者
口以试一下waynee95的插件,WAY_CustonOnEquipEval(还需way的核心插件),口以设定装备或脱下装备时执行某些脚本。

<Custom On Equip Eval>
code
</Custom On Equip Eval>

https://github.com/waynee95/mv-plugins/tree/master/dist
回复 支持 1 反对 0

使用道具 举报

Lv2.观梦者

梦石
0
星屑
268
在线时间
160 小时
注册时间
2014-9-17
帖子
67
12
 楼主| 发表于 2019-8-1 09:31:17 | 只看该作者
多卡多卡 发表于 2019-7-31 21:59
要将角色原来的职业储存起来比较麻烦,现在改过了不会报错了,并且关闭后重新读档也能切回原来的职业,可 ...

好的,我再回去试试看
c
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3781
在线时间
439 小时
注册时间
2019-3-3
帖子
87
11
发表于 2019-7-31 21:59:10 | 只看该作者
本帖最后由 多卡多卡 于 2019-7-31 22:29 编辑
ccArtermices 发表于 2019-7-31 21:25
多神,这个脚本使用后只要角色一装备物品就会出现 cannot read property 'params' of null的错误,如何破 ...


要将角色原来的职业储存起来比较麻烦,现在改过了不会报错了,并且关闭后重新读档也能切回原来的职业,可以看看之前的代码,已经改过了
(临时变量果然不靠谱,还是全局变量稳些)
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
268
在线时间
160 小时
注册时间
2014-9-17
帖子
67
10
 楼主| 发表于 2019-7-31 21:25:28 | 只看该作者
多卡多卡 发表于 2019-7-28 20:47
这个就可以实现切换装备的同时切换职业了,如果脱下装备或者换了普通的装备,就会切回原来的职业。
//===== ...

多神,这个脚本使用后只要角色一装备物品就会出现 cannot read property 'params' of null的错误,如何破啊?
c
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3781
在线时间
439 小时
注册时间
2019-3-3
帖子
87
9
发表于 2019-7-28 20:47:32 | 只看该作者
本帖最后由 多卡多卡 于 2019-7-31 22:30 编辑

这个就可以实现切换装备的同时切换职业了,如果脱下装备或者换了普通的装备,就会切回原来的职业。
JAVASCRIPT 代码复制
  1. //=============================================================================
  2. // Doka_ChangeClassWithEquip.js
  3. // by 多卡多卡 on 2019/7/28
  4. //=============================================================================
  5.  
  6. /*:
  7.  * @plugindesc 换装切换职业
  8.  * @author 多卡多卡
  9.  *
  10.  * @param 装备-1
  11.  * @type struct<Equip>
  12.  * @desc 装备的详细配置信息。
  13.  * @default
  14.  *
  15.  * @param 装备-2
  16.  * @type struct<Equip>
  17.  * @desc 装备的详细配置信息。
  18.  * @default
  19.  *
  20.  * @param 装备-3
  21.  * @type struct<Equip>
  22.  * @desc 装备的详细配置信息。
  23.  * @default
  24.  *
  25.  * @param 装备-4
  26.  * @type struct<Equip>
  27.  * @desc 装备的详细配置信息。
  28.  * @default
  29.  *
  30.  * @param 装备-5
  31.  * @type struct<Equip>
  32.  * @desc 装备的详细配置信息。
  33.  * @default
  34.  *
  35.  * @param 装备-6
  36.  * @type struct<Equip>
  37.  * @desc 装备的详细配置信息。
  38.  * @default
  39.  *
  40.  * @param 装备-7
  41.  * @type struct<Equip>
  42.  * @desc 装备的详细配置信息。
  43.  * @default
  44.  *
  45.  * @param 装备-8
  46.  * @type struct<Equip>
  47.  * @desc 装备的详细配置信息。
  48.  * @default
  49.  *
  50.  * @param 装备-9
  51.  * @type struct<Equip>
  52.  * @desc 装备的详细配置信息。
  53.  * @default
  54.  *
  55.  * @param 装备-10
  56.  * @type struct<Equip>
  57.  * @desc 装备的详细配置信息。
  58.  * @default
  59.  *
  60.  * @param 装备-11
  61.  * @type struct<Equip>
  62.  * @desc 装备的详细配置信息。
  63.  * @default
  64.  *
  65.  * @param 装备-12
  66.  * @type struct<Equip>
  67.  * @desc 装备的详细配置信息。
  68.  * @default
  69.  *
  70.  * @param 装备-13
  71.  * @type struct<Equip>
  72.  * @desc 装备的详细配置信息。
  73.  * @default
  74.  *
  75.  * @param 装备-14
  76.  * @type struct<Equip>
  77.  * @desc 装备的详细配置信息。
  78.  * @default
  79.  *
  80.  * @param 装备-15
  81.  * @type struct<Equip>
  82.  * @desc 装备的详细配置信息。
  83.  * @default
  84.  *
  85.  * @param 装备-16
  86.  * @type struct<Equip>
  87.  * @desc 装备的详细配置信息。
  88.  * @default
  89.  *
  90.  * @param 装备-17
  91.  * @type struct<Equip>
  92.  * @desc 装备的详细配置信息。
  93.  * @default
  94.  *
  95.  * @param 装备-18
  96.  * @type struct<Equip>
  97.  * @desc 装备的详细配置信息。
  98.  * @default
  99.  *
  100.  * @param 装备-19
  101.  * @type struct<Equip>
  102.  * @desc 装备的详细配置信息。
  103.  * @default
  104.  *
  105.  * @param 装备-20
  106.  * @type struct<Equip>
  107.  * @desc 装备的详细配置信息。
  108.  * @default
  109.  *
  110.  * @help
  111.  * 切换装备可以同时切换职业
  112.  * 当换上一件装备时,如果可以变更职业,
  113.  * 那么职业将会转变成装备对应的职业。
  114.  * 如果脱下装备或换上一件普通的装备,
  115.  * 那么职业将会切换会原来的职业
  116.  */
  117. /*~struct~Equip:
  118.  *
  119.  * @param 切换职业
  120.  * @desc 切换装备后的职业
  121.  * @type class
  122.  * @default 0  
  123.  *
  124.  * @param 装备类型
  125.  * @type boolean
  126.  * @on 武器
  127.  * @off 防具
  128.  * @desc 装备的类型
  129.  * @default true
  130.  *
  131.  * @param ----装备Id----
  132.  * @default
  133.  *
  134.  * @param 武器Id
  135.  * @parent ----装备Id----
  136.  * @type weapon
  137.  * @desc 武器的Id(仅当装备类型为武器时生效)
  138.  * @default 0
  139.  *
  140.  * @param 防具Id
  141.  * @parent ----装备Id----
  142.  * @type armor
  143.  * @desc 防具的Id(仅当装备类型为防具时生效)
  144.  * @default 0
  145.  */
  146.  
  147. var Imported = Imported || {};
  148. Imported.Doka_ChangeClassWithEquip = true;
  149. var Doka_ChangeClassWithEquip = Doka_ChangeClassWithEquip || {};
  150.  
  151. Doka_ChangeClassWithEquip.parameters = PluginManager.parameters('Doka_ChangeClassWithEquip');
  152. Doka_ChangeClassWithEquip.MaxEquip = 20;
  153. Doka_ChangeClassWithEquip.Equips = [];
  154.  
  155. for (var i = 0; i < Doka_ChangeClassWithEquip.MaxEquip; i++) {
  156.     if (Doka_ChangeClassWithEquip.parameters['装备-' + String(i + 1)] != "") {
  157.         Doka_ChangeClassWithEquip.Equips[i] = JSON.parse(Doka_ChangeClassWithEquip.parameters['装备-' + String(i + 1)]);  //不知道这个有什么用,先抄下来
  158.         Doka_ChangeClassWithEquip.Equips[i]['Later Class'] = Number(Doka_ChangeClassWithEquip.Equips[i]['切换职业']);
  159.         Doka_ChangeClassWithEquip.Equips[i]['Type'] = String(Doka_ChangeClassWithEquip.Equips[i]["装备类型"] || "true") == "true";
  160.         Doka_ChangeClassWithEquip.Equips[i]['Weapon Id'] = Number(Doka_ChangeClassWithEquip.Equips[i]['武器Id']);
  161.         Doka_ChangeClassWithEquip.Equips[i]['Armor Id'] = Number(Doka_ChangeClassWithEquip.Equips[i]['防具Id']);
  162.     }
  163.     else {
  164.         Doka_ChangeClassWithEquip.Equips[i] = [];
  165.     }
  166. }
  167.  
  168. var Doka_Game_Actor_initMembers = Game_Actor.prototype.initMembers;
  169. Game_Actor.prototype.initMembers = function () {
  170.     Doka_Game_Actor_initMembers.call(this);
  171.     this.initOriginClass();
  172. };
  173.  
  174. Game_Actor.prototype.initOriginClass = function () {
  175.     if (!this._originClass) {
  176.         this._originClass = 0;
  177.     }
  178. };
  179.  
  180. var Doka_Game_Actor_changeEquip = Game_Actor.prototype.changeEquip;
  181. Game_Actor.prototype.changeEquip = function (slotId, item) {
  182.     for (var i = 0; i <= Doka_ChangeClassWithEquip.MaxEquip; i++) {
  183.         if (i < Doka_ChangeClassWithEquip.MaxEquip && this.equips()[slotId] != null && Doka_ChangeClassWithEquip.Equips[i]['Type'] != undefined) {
  184.             if ((Doka_ChangeClassWithEquip.Equips[i]['Type'] && (this.equips()[slotId].wtypeId != undefined && this.equips()[slotId].id != Doka_ChangeClassWithEquip.Equips[i]['Weapon Id']))
  185.                 || (!Doka_ChangeClassWithEquip.Equips[i]['Type'] && (this.equips()[slotId].atypeId != undefined && this.equips()[slotId].id != Doka_ChangeClassWithEquip.Equips[i]['Armor Id'])))
  186.             this._originClass = this._classId;
  187.         }
  188.     }
  189.     Doka_Game_Actor_changeEquip.call(this, slotId, item);
  190.     for (var i = 0; i <= Doka_ChangeClassWithEquip.MaxEquip; i++) {
  191.         if (i < Doka_ChangeClassWithEquip.MaxEquip && this.equips()[slotId] != null && Doka_ChangeClassWithEquip.Equips[i]['Type'] != undefined)
  192.         {
  193.             if ((Doka_ChangeClassWithEquip.Equips[i]['Type'] && this.equips()[slotId].wtypeId != undefined && this.equips()[slotId].id == Doka_ChangeClassWithEquip.Equips[i]['Weapon Id'])
  194.                 || (!Doka_ChangeClassWithEquip.Equips[i]['Type'] && this.equips()[slotId].atypeId != undefined && this.equips()[slotId].id == Doka_ChangeClassWithEquip.Equips[i]['Armor Id']))
  195.             {
  196.                 this._originClass = this._classId;
  197.                 this._classId = Doka_ChangeClassWithEquip.Equips[i]['Later Class']; break;
  198.             }
  199.         }
  200.         Doka_ChangeClassWithEquip.MaxEquip == i ? this._classId = this._originClass : 0;
  201.     }  
  202. }


如果20个装备不够的话,可以自己加

Doka_ChangeClassWithEquip.zip

1.41 KB, 下载次数: 126

评分

参与人数 1+1 收起 理由
j296196585 + 1 精品文章

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-12 20:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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