薛定谔的钱10086
rt,水锅群里有人提出这样一个问题:怎么修改npc职业
然后我翻阅了1.12的api,发现没有
最后在1.7的脚本句型用法里找到了如下一串
  1. npc.getMCEntity().advanced.setJob
复制代码
我无法理解的是如何得知npc有哪些数据,以及数据含义或方法
感觉就好像突然断层了一样,跟个人太菜也有关联
望大佬指点

Finvoler666_
customnpcmod好像可以自己在gui改职业
用npc魔杖看看村民里面应该有

无敌三脚猫
我猜你想问的不是怎么修改npc职业,而是怎么用脚本修改npc职业
只能反编译看代码,职业对应的数字都写在noppes.npcs.entity.data.DataAdvancedf的setJob方法的代码里,就是你写的这个setJob方法
之后getJob拿到就可以改,这里说是noppes.npcs.api.entity.data.INPCJob,但同时也是noppes.npcs.roles.JobInterface类型,想怎么改怎么改,不过得看代码,比如设置一个力量Ⅱ的治疗师,要去看noppes.npcs.roles.JobHealer的代码
  1. e.npc.getMCEntity().advanced.setJob(2)
  2. e.npc.getJob().effects.put(5,1)
复制代码

薛定谔的钱10086
无敌三脚猫 发表于 2023-7-8 19:30
我猜你想问的不是怎么修改npc职业,而是怎么用脚本修改npc职业
只能反编译看代码,职业对应的数字都写在nop ...

其实我是想知道这种规律来着
就是是否是这种调用npc实体数据的都类似于e.npc.getMCEntity().xxxxxx
例如e.npc.getMCEntity().stats

无敌三脚猫
薛定谔的钱10086 发表于 2023-7-8 21:19
其实我是想知道这种规律来着
就是是否是这种调用npc实体数据的都类似于e.npc.getMCEntity().xxxx ...

算不上什么规律,总归是要去看反编译的代码的
比如上面的e.npc.getMCEntity().advanced.setJob(2)也可以写成e.npc.getAdvanced().setJob(2),毕竟npc就那几个get,没必要非得总结成什么规律
可能出于js或者nashorn的特**,这种getXxx()倒是有个规律,可以写成xxx,比如上面那句可以再简短点,写成e.npc.advanced.setJob(2),npc.getX可以写成npc.x,npc.getName()可以写成npc.name,即使反编译代码里不是这么写的,脚本里也能这么写

第一页 上一页 下一页 最后一页