1549023568
请问下为什么安装了引擎之后游戏就闪退了

2004哥哥
作者辛苦了!

@TGL
怎么判断NPC周围是否有玩家

@@Leo
@TGL 发表于 2018-5-24 17:18
怎么判断NPC周围是否有玩家

恩哼,昨天还在学校里学习所以不能回复抱歉
啊**,在该NPC的脚本里面调用npc就是指当前的NPC
  1. npc.getSurroundingEntities(10);
复制代码
获取NPC附近十格内的实体,返回一个实体数组ScriptEntity[]
建议可以多去看看DOC,总会找到的2333
顺带一提,这个方法可以有两个传入
  1. npc.getSurroundingEntities(10,0);
复制代码
取NPC附近十格内的,id为0的实体,返回一个实体数组ScriptEntity[],这样子就不用自己再筛选是不是玩家了,我记得好像玩家是0还是几来着,你可以去试试看

@TGL
@@Leo 发表于 2018-5-26 17:34
恩哼,昨天还在学校里学习所以不能回复抱歉
啊**,在该NPC的脚本里面调用npc就是指当前的NPC
获取NPC附近 ...

请问如何判断返回的ScriptEntity[]中是否存在玩家,返回true或者false

@@Leo
@TGL 发表于 2018-5-27 14:38
请问如何判断返回的ScriptEntity[]中是否存在玩家,返回true或者false

ScriptEntity有一个typeOf(int type)方法可以检测是不是目标类型的实体
至于玩家的type值是多少我就不知道了

582558781
能办到npc累计受到多少次攻击之后tp攻击最多的玩家嘛...
另外,能不能像东方那样子设置npc死亡后换成另一个npc来实现符卡的效果
(三更半夜才发现这个帖子,死)

582558781
本帖最后由 582558781 于 2018-6-10 14:37 编辑

那个npc怎么在玩家身边刷出方块就是一堆石头围着能暂时困住玩家
或者如何通过命令方块来实现。
(1.7.10)

星层
@@Leo 发表于 2018-6-2 17:31
ScriptEntity有一个typeOf(int type)方法可以检测是不是目标类型的实体
至于玩家的type值是多少我就不知 ...

玩家的type是plear

cos003
lz,我可以联系你吗?

1549023568
大佬 请问下怎么让npc的攻击附带药水效果【瞬间伤害这样的】

粘兽
1549023568 发表于 2018-6-11 10:10
大佬 请问下怎么让npc的攻击附带药水效果【瞬间伤害这样的】

代码放入攻击(Attack)监听内
  1. event.getTarget().addPotionEffect(7,1,0,1)
复制代码

excit
。。。作为凡人我看不懂

银星sama
一直都不知道怎么弄,谢谢楼主

iverson119
请问一下大神,我想实现这么一个效果。
几个人一起攻击一个npc,在npc死亡的时候,结算时每个人都有是杀死这个npc之人,而不是只有最后一击的才是。
如果这个效果很难实现的话,那换一下思路,凡是攻击过boss的人,在boss死亡之后,都能完成一个任务(就是杀死boss的任务,只不过用指令或者脚本去强制完成)。如果boss脱战之后,攻击过boss的人的记录被重置。

@@Leo
iverson119 发表于 2018-6-23 10:24
请问一下大神,我想实现这么一个效果。
几个人一起攻击一个npc,在npc死亡的时候,结算时每个人都有是杀死 ...

你可以选择用TempData
有这么几个个方法
  1. public java.lang.Object getTempData(java.lang.String key)
  2. public void setTempData(java.lang.String key, java.lang.Object value)
  3. public boolean hasTempData(java.lang.String key)
  4. public void removeTempData(java.lang.String key)
复制代码
不过具体维护起来很繁琐,尤其是攻击的人多的时候判断重复很麻烦

要么就是维护一个容器了
至于脱战……tick里面循环,超过1s都没有攻击目标大概就是脱战了吧

iverson119
本帖最后由 iverson119 于 2018-6-23 18:37 编辑
@@Leo 发表于 2018-6-23 17:11
你可以选择用TempData
有这么几个个方法不过具体维护起来很繁琐,尤其是攻击的人多的时候判断重复很麻烦
...

对啊,如果是A打一下,B打一下,A再打一下,这样会不会记录了2个A?再请问下高手,如果我就希望输出的结果是,伤害过这个npc的玩家,都能完成对应任务ID的任务。这个完成任务我会做,但是怎样输出这个玩家的名单?

@@Leo
iverson119 发表于 2018-6-23 18:35
对啊,如果是A打一下,B打一下,A再打一下,这样会不会记录了2个A?再请问下高手,如果我就希望输出的结果 ...

所以要检查很麻烦啊
你可以从1~n这样子保存
然后保存和读取的时候都要这样子按照引索来

粘兽
本帖最后由 粘兽sama 于 2018-6-27 06:16 编辑

1.12.2如何实现1.7.10"event.setCancelled(true)"的效果,
我没有找到对应的API......




摸索了一会,找到方法了!

123crs
大佬 想请教一下 1.7.10
如何让npc在被杀时发送一条全服都能看到的公告
复活时发送另一条全服都能看到的公告呢?

粘兽
123crs 发表于 2018-7-1 01:10
大佬 想请教一下 1.7.10
如何让npc在被杀时发送一条全服都能看到的公告
复活时发送另一条全服都能看到的公 ...

在'死亡'和'复活'的监听里加一个执行指令的脚本即可。

123crs
粘兽sama 发表于 2018-7-1 05:33
在'死亡'和'复活'的监听里加一个执行指令的脚本即可。

具体应该怎么执行呢 qwq

粘兽
123crs 发表于 2018-7-1 15:32
具体应该怎么执行呢 qwq

执行指令的脚本如下
npc.executeCommand("bc <消息内容>")

@TGL
有方法让NPC死亡后,不掉落物品吗。(用代码实现)
或者让NPC死亡后所在的区块暂停两秒再卸载

111968511
很棒的作品!

凛弦
谢谢版主大人提供的教程

1549023568
请问下怎么给范围内同一个阵营/敌对阵营的npc上药水效果

DJMC
当任务被激活时,或者红石被激活,或者群体对话完成后,A士兵和B士兵去攻击一个农民npc,怎么写啊

@@Leo
DJMC 发表于 2018-7-18 18:40
当任务被激活时,或者红石被激活,或者群体对话完成后,A士兵和B士兵去攻击一个农民npc,怎么写啊 ...

可以用脚本。
任务执行完后,让他执行某段脚本,让A和B走到某个位置,然后把这两个阵营设置成敌对就对开打了

1549023568
请问下大佬。如果用脚本来改变职业里傀儡的动作参数会有0.5s延迟(从脚本执行到动作改变之间有0.5S)。大佬有没有什么想法或者方法来去掉这0.5s

粘兽
本帖最后由 粘兽sama 于 2018-8-6 20:45 编辑

楼主有意向做高版本的CustomNpcs教程么

1549023568
粘兽sama 发表于 2018-8-6 20:43
楼主有意向做高版本的CustomNpcs教程么

粘受大佬

Hueihuea
我来这里请教了awa
对于获取附魔list后返回数组
想知道这个[0:{"lvl":1s,"id":16s}]的数组是如何定义的

Hueihuea
@TGL 发表于 2018-7-3 10:47
有方法让NPC死亡后,不掉落物品吗。(用代码实现)
或者让NPC死亡后所在的区块暂停两秒再卸载 ...

一个月后的回复awa
让NPC不掉落物品的办法倒是没有(1.7.10)
让NPC掉物品的办法倒是有……
区域暂停应该做不到(或者放个两秒死亡的区域加载者awa)
如果让整个服务器的主线程暂停倒是可以使用sleep方法
你想做到什么样的效果

Hueihuea
本帖最后由 skpsk自己家 于 2018-8-7 23:56 编辑
582558781 发表于 2018-6-10 00:55
能办到npc累计受到多少次攻击之后tp攻击最多的玩家嘛...
另外,能不能像东方那样子设置npc死亡后换成另一个 ...

没人回答你呢
两个月后我看见了呢awa
瞬移可以在伤害钩子中(1.7.10)
使用代码

  1. var time;
  2. for(var i=0;i<1;i++){if(time>=1)break;time=0;}
  3. time++;
  4. if(time==10){
  5. event.getSource().setRider(npc);
  6. event.getSource().setRider(null);
  7. time=null;
  8. }

  9. //为什么用setRider方法 因为刚好有就复制过来了 懒癌晚期
  10. //为什么是time 因为我从之前的定时代码拿的awa
复制代码

死亡钩子可以使用scriptWorld类里面的一个方法
这里就不写代码了 因为懒啊

luomu丶夕阳
本帖最后由 luomu丶夕阳 于 2018-8-9 01:06 编辑

请问下,怎么右键NPC实现打开bs菜单  不做任务 直接右键NPC打开菜单

@TGL
npc.setAttackTarget(这里应该填什么(试了很多都不行))

粘兽
@TGL 发表于 2018-8-11 08:40
npc.setAttackTarget(这里应该填什么(试了很多都不行))



粘兽
luomu丶夕阳 发表于 2018-8-8 23:52
请问下,怎么右键NPC实现打开bs菜单  不做任务 直接右键NPC打开菜单

交互钩子下用脚本执行指令
  1. npc.executeCommand("bs open <shop> "player.name"")
  2. <shop> 改为你想打开的菜单 其余不用更改
复制代码

luomu丶夕阳
粘兽sama 发表于 2018-8-12 02:57
交互钩子下用脚本执行指令

没效果呀   显示这个<eval>:1:40 Expected , but found player
npc.executeCommand("bossShop open Menu "player.name"")
                                        ^ in <eval> at line number 1 at column number 40


粘兽
luomu丶夕阳 发表于 2018-8-12 21:48
没效果呀   显示这个:1:40 Expected , but found player
npc.executeCommand("bossShop open Menu "playe ...

哦 不好意思 写错了
  1. npc.executeCommand("bs open <shop> "+player.name)
  2. <shop> 改为你想打开的菜单 其余不用更改
复制代码

我心不变
很好的教程,谢谢了

m7862k224
一看到脚本两个字,就头疼

不二语
请问下为什么一对npc在damaged钩子里用knockback就闪退

iverson119
本帖最后由 iverson119 于 2018-8-25 17:00 编辑

再次请教大神。
我使用了这条命令<npc> owner [玩家] ---------------------- 设置npc跟随的玩家
发现他并不会跟随玩家。
有没有什么方法是可以令npc不需要雇佣也跟随玩家的?

如果玩家在雇佣过程中下线了,超过了雇佣时间还不上线,是不是这个雇佣的npc会自动消失?

iverson119
skpsk自己家 发表于 2018-8-7 23:55
没人回答你呢
两个月后我看见了呢awa
瞬移可以在伤害钩子中(1.7.10)

这个用骑乘来代替tp的方法很棒!层主有试过有用吗?如果有用的话那真是太强了,这思路好开阔

Hueihuea
iverson119 发表于 2018-8-25 16:45
这个用骑乘来代替tp的方法很棒!层主有试过有用吗?如果有用的话那真是太强了,这思路好开阔 ...

用过 为什么用setRider 因为用setPosition比较长

Hueihuea
大佬啊awa
因为我太懒了 不想在脚本教程再加个NPC基础教程
所以你来接盘下行吧qwq

Hueihuea
iverson119 发表于 2018-8-25 16:45
这个用骑乘来代替tp的方法很棒!层主有试过有用吗?如果有用的话那真是太强了,这思路好开阔 ...

我今天在你那个setTimeout帖子下面回复了整理好的 不知道你看见没有

@@Leo
本帖最后由 @@Leo 于 2018-8-25 21:32 编辑
skpsk自己家 发表于 2018-8-25 17:12
大佬啊awa
因为我太懒了 不想在脚本教程再加个NPC基础教程
所以你来接盘下行吧qwq

可以可以可以可以,谢谢谢谢谢谢谢谢
终于有个像样的教程了2333
我也可以把你的链接挂在帖子里面么

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