就是类似服福利那种
我在一个区域内随机刷一只NPC出来
但是有限时的 也就是说在几分钟什么的就消失了
我在一个区域内随机刷一只NPC出来
但是有限时的 也就是说在几分钟什么的就消失了
npcmod可能不支持此项功能
你可以用指令,或在旁边手动
duzhaoyang0922 发表于 2022-3-17 17:20
npcmod可能不支持此项功能
有什么插件或者是脚本什么的能实现不
我对插件没有研究
你可以去私聊那些做RPG地图的大佬,他们可能会给你别的建议
应该可以用npc脚本实现
大体思路就是预先将要召唤的npc存在复制魔杖里面;再设置一个专门的脚本npc,当达到一定条件后在指定坐标范围内随机选择一点召唤指定的npc;并且在指定npc中存入脚本,设定在生成后的多少秒自动消失
由于npc脚本不同版本不互通,因此需要您提供游戏版本,并且最好能细化要求,例如在什么条件下刷npc(固定时间?or 有玩家经过?or 随机时间间隔?)以及这个限时消失的时长具体多久(这个不是很重要,您也可以等我脚本框架大体出来后自行修改)
大体思路就是预先将要召唤的npc存在复制魔杖里面;再设置一个专门的脚本npc,当达到一定条件后在指定坐标范围内随机选择一点召唤指定的npc;并且在指定npc中存入脚本,设定在生成后的多少秒自动消失
由于npc脚本不同版本不互通,因此需要您提供游戏版本,并且最好能细化要求,例如在什么条件下刷npc(固定时间?or 有玩家经过?or 随机时间间隔?)以及这个限时消失的时长具体多久(这个不是很重要,您也可以等我脚本框架大体出来后自行修改)
猜猜谁是谁 发表于 2022-3-17 17:49
应该可以用npc脚本实现
大体思路就是预先将要召唤的npc存在复制魔杖里面;再设置一个专门的脚本npc,当达 ...
ok 我的是1.7.10版本
随机时间刷新 玩家得达到一定数量
刷新的时候如果可以加条信息和坐标位置
小帅120 发表于 2022-3-17 18:04
ok 我的是1.7.10版本
随机时间刷新 玩家得达到一定数量
刷新的时候如果可以加条信息和坐标位置
在使用脚本前需要先进行一些准备工作,详见该贴(做到安装完nashorn.jar即可)
在安装脚本前 首先要准备好要召唤的npc,建议在皮肤名称等属性都设置完以后再安装脚本,因为开启脚本后就会开始计时,到一定时间自动删除该npc
以下是脚本:
用脚本魔杖右键你要召唤的npc,显示出以下界面后将“开启”这一项从“否”改成“是”
然后点击左上角Scripts 在“运行”栏中粘贴以下代码:(粘贴请使用界面右上角自带的粘贴按钮,不要用ctrl+v,下同)
- npc.setTempData("init",world.getTotalTime());
然后点开“更新”栏,粘贴下面的代码:(此处代码可自行修改npc自动消失的时间)
- var time=30;//设定自动消失时间,单位:秒
- var inittime=npc.getTempData("init");
- if(world.getTotalTime()-inittime>=time*20){
- world.spawnParticle("cloud",npc.x,npc.y,npc.z,0.1,0.1,0.1,1,2);
- npc.despawn();
- }
然后按esc关闭界面
随后尽快用Mob复制魔杖右键npc,并按照下图设置
名称自定义即可,但是需要记住,下面要手动填入名称
然后点击保存
之后在新建一个专门执行脚本的npc,可以在你想召唤的地点中央,或者也可以在任意地方,这个npc是专门用来执行脚本的工具人,所以可以把它设置成不可见或者藏起来
使用脚本魔杖右键该npc 将“开启”调为“是”后,在“运行”栏填入以下代码
- npc.clearStoredData();
召唤坐标的原理:确定两个点,以这两个点形成的矩形内随机挑一个坐标来召唤npc
- var name="要召唤的NPC名称";//设置要召唤的NPC名称(该NPC需要提前存入复制魔杖)
- var tab=1;//设置要召唤的NPC处于脚本魔杖中的tab编号,为1到9之间的数字
- var playernum=1;//设置区域内至少要有几个玩家才会随机刷新
- var cdmin=180,cdmax=300;//设置随机刷新的最短间隔与最长间隔,单位:秒
- var x1=npc.x-50,z1=npc.z-50,x2=npc.x+50,z2=npc.z+50;//设置刷新区域的范围,示例为相对坐标,可自行设置为绝对坐标
- //可以像这样设置绝对坐标:var x1=-123,z1=-456,x2=123,z2=456;
- var tmp;
- if(cdmin>cdmax) {tmp=cdmax;cdmax=cdmin;cdmin=tmp;}
- if(x1>x2) {tmp=x2;x2=x1;x1=tmp;}
- if(z1>z2) {tmp=z2;z2=z1;z1=tmp;}
- if(!npc.hasStoredData("timer")){
- npc.setStoredData("timer",world.getTotalTime());
- var randomcd=randomNum(cdmin,cdmax);
- //print("cd:"+cdmin+" "+cdmax+" "+randomcd);
- npc.setStoredData("cd",randomcd);
- }
- var cd=npc.getStoredData("cd");
- if(world.getTotalTime()-npc.getStoredData("timer")>=cd*20){//当满足刷新冷却时间
- //print("满足冷却时间 "+cd)
- if(getPlayerNum(x1,z1,x2,z2)>=playernum){//当区域内有足够多的玩家
- //print("满足玩家数目 "+playernum)
- npc.removeStoredData("timer");
- npc.removeStoredData("cd");
- var rx=randomNum(x1,x2),rz=randomNum(z1,z2),ry;
- ry=getGroundY(rx,rz);
- var clone=world.spawnClone(rx,ry,rz,tab,name);
- if(clone==null) print("错误:未在脚本魔杖的TAB "+tab+" 中找到名为 "+name+" 的npc!")
- else tellAll(rx,ry,rz);
- }
- }
- function tellAll(tx,ty,tz){
- var msg="§e"+name+" NPC已在 X=§c"+tx+" §eY=§c"+ty+" §eZ=§c"+tz+" §e处出现!";
- var player=world.getAllServerPlayers();
- for(var i=0;i<player.length;i++){
- player[i].sendMessage(msg);
- }
- }
- function getGroundY(px,pz){
- var result=npc.y,p=false;
- for(var i=npc.y+20;i>=npc.y-20;i--){
- var block=world.getBlock(px,i,pz);
- if(block==null) p=true;
- if(block!=null&&p==true){
- result=i+1;break;
- }
- }
- return result;
- }
- function getPlayerNum(xmin,zmin,xmax,zmax){
- var player=world.getAllServerPlayers();
- var cnt=0;
- for(var i=0;i<player.length;i++){
- if(player[i].x>=xmin&&player[i].x<=xmax&&player[i].z>=zmin&&player[i].z<=zmax) cnt++;
- }
- return cnt;
- }
- function randomNum(minNum,maxNum){//生成位于[minNum,maxNum]的随机数
- switch(arguments.length){
- case 1:
- return parseInt(Math.random()*minNum+1,10);
- break;
- case 2:
- return parseInt(Math.random()*(maxNum-minNum+1)+minNum,10);
- break;
- default:
- return 0;
- break;
- }
- }
正常的话在召唤时会提示信息,如下图
如果没法使用或者报错的话再告诉我 我帮你找找原因
本帖最后由 LoserXM 于 2022-3-17 21:01 编辑
纯原版 使用延时电路执行/summon Zombie ~ ~ ~ {CustomName:"福利怪"}
/kill @e[type=Zombie,name=福利怪]支持自定义npc 只要你知道自定义npc的type是什么
之前试过能让指定的自定义npc传送和旋转角度

纯原版 使用延时电路执行/summon Zombie ~ ~ ~ {CustomName:"福利怪"}
/kill @e[type=Zombie,name=福利怪]支持自定义npc 只要你知道自定义npc的type是什么
之前试过能让指定的自定义npc传送和旋转角度
