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

Project1

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

[有事请教] 请问如何修改相同武器槽的名字

[复制链接]

Lv1.梦旅人

梦石
0
星屑
110
在线时间
19 小时
注册时间
2020-3-11
帖子
3
跳转到指定楼层
1
发表于 2024-5-12 10:51:40 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 rinkfly 于 2024-5-12 10:53 编辑

不懂就问,请问怎样修改双刀流两个武器的名字(或者是多个同类装备的名字)
例如下图,想改为"左手“和”右手“,并限制使用不同类型的武器。
坛子里爬了好多天也没找到答案

783b58e97a3bd6a1a20d0a950ea31a84.png (30.78 KB, 下载次数: 23)

783b58e97a3bd6a1a20d0a950ea31a84.png

Lv2.观梦者

梦石
0
星屑
833
在线时间
84 小时
注册时间
2023-10-20
帖子
18
2
发表于 2024-5-12 12:58:49 | 只看该作者
在数据库的类型页面更改
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7394
在线时间
478 小时
注册时间
2021-12-4
帖子
519
3
发表于 2024-5-12 18:43:27 | 只看该作者
【想改为"左手“和”右手“,并限制使用不同类型的武器】,很明显楼主是被RPG Maker自己的装备系统限制住了。
说实话武器比起防具不就是【多了个攻击动画(animationId,可以用备注代替),少了个装备类型(etypeId,固定为1,不可更改),把防具类型(atypeId,默认为0)改成了武器类型(wtypeId,默认也为0)】么,按理说应该合并为【装备】的,所以有很多游戏作者会自己写一个小插件来让【所有槽都可以装备"防具"但限制不同类型】,然后数据库里也【只有"防具"而没有"武器"】。
加了双引号的防具和武器这两个词楼主或许已经猜到是什么意思了,没错就是【把某几种etypeId的"防具"视为武器(需要攻击动画就写在备注),而其他的视为防具】(当然游戏中需要修改展示给玩家的"防具"这个词,例如改为"装备")。

要做到这种效果,需要先修改下面的代码,它位于 rpg_objects.js 第 3600 行左右。
Game_Actor.prototype.equipSlots = function() {
    var slots = [];
    for (var i = 1; i < $dataSystem.equipTypes.length; i++) {
        slots.push(i);
    }
    if (slots.length >= 2 && this.isDualWield()) {
        slots[1] = 1;
    }
    return slots;
};
上面是这段代码原本的样子,可以看到它根据【数据库-类型-装备类型】的总种数n创建了一个长度为n的数组,然后把第0到n-1项分别设为1~n
然后又检测了这个角色是否有二刀流特性,如果有就把第0项和第1项都设为1,也就是原本应该装备盾牌的位置也变成了装备武器。
那到了这里思路就比较明确了,首先在【数据库-类型-装备类型】中从第2种(默认是"盾牌")开始依次重命名为【"左手"、"右手"、……】(第1种"武器"弃用),然后心里默记左手和右手这两种类型虽然在数据库里属于"防具"但其实是武器。

接着,把上面那段代码改成下面的样子:
Game_Actor.prototype.equipSlots = function() {
    var slots = [];
    for (var i = 3; i < $dataSystem.equipTypes.length; i++) {
// 上一行的数字3表示跳过前2种类型(弃用的“武器"和默认不开启的"左手"),从第3种"右手"开始,这样装备槽顺序默认就是【右手、盾牌、头盔、……】
        slots.push(i);
    }
    if (slots.length >= 2 && this.isDualWield()) {
        slots[1] = 2;
// 上一行的2表示如果角色有二刀流特性,则将原本的第二个装备槽(数据库中的第4种类型,如"盾牌")改为数据库中的第2种("左手"),于是装备槽顺序变成【右手、左手、头盔……】
    }
    return slots;
};

如果你的作品中所有的角色都是所谓的二刀流,那么应该直接把 var i = 3; 中的3改成2然后不再使用二刀流这个特性,这样装备槽顺序默认就是【左手、右手、头盔……】
如果你需要更复杂的效果,比如【每个角色可以装备两个饰品】什么的,也可以直接像二刀流那样用 slots[a] = b; 来更改,这里a是一个从0到slots.length-1的整数,b为数据库的装备类型编号,如果有两个不同的a对应了同一个b就意味着角色可以同时穿戴两件b类型的装备。以此类推还可以实现诸如【数据库中编号为奇数和偶数的角色(比如用来区分性别,需要在代码中用this等手段来判定)可以穿戴不同b值的装备类型】等等……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
110
在线时间
19 小时
注册时间
2020-3-11
帖子
3
4
 楼主| 发表于 2024-5-12 20:00:02 | 只看该作者
小秋橙 发表于 2024-5-12 18:43
【想改为"左手“和”右手“,并限制使用不同类型的武器】,很明显楼主是被RPG Maker自己的装备系统限制住了 ...

膜拜大佬!!!十分感谢!!!!
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
833
在线时间
84 小时
注册时间
2023-10-20
帖子
18
5
发表于 2024-5-13 13:33:12 | 只看该作者
小秋橙 发表于 2024-5-12 18:43
【想改为"左手“和”右手“,并限制使用不同类型的武器】,很明显楼主是被RPG Maker自己的装备系统限制住了 ...

请问这样更改后,默认游戏时,背包里的‘防具’页可以改名成‘装备’,但原本的‘武器’页面怎么删除呢?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
110
在线时间
19 小时
注册时间
2020-3-11
帖子
3
6
 楼主| 发表于 2024-5-13 16:17:36 | 只看该作者
我用了个笨方法,把防具改成武器,把武器改成防具
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7394
在线时间
478 小时
注册时间
2021-12-4
帖子
519
7
发表于 2024-5-13 22:14:23 | 只看该作者
浪里个浪 发表于 2024-5-13 13:33
请问这样更改后,默认游戏时,背包里的‘防具’页可以改名成‘装备’,但原本的‘武器’页面怎么删除呢? ...

Window_ItemCategory.prototype.makeCommandList = function() {
    this.addCommand(TextManager.item,    'item');
    this.addCommand(TextManager.weapon,  'weapon'); // rpg_windows.js 第 1890 行,删掉这行即可
    this.addCommand(TextManager.armor,   'armor');
    this.addCommand(TextManager.keyItem, 'keyItem');
};
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-5 10:07

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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