自定义NPC脚本论坛

搜索
查看: 432|回复: 1

[1.12.2]雷霆领主的法令

[复制链接]

6

主题

8

帖子

261

积分

Lv.5 深海明珠

Rank: 8Rank: 8

积分
261
发表于 2021-4-29 23:06:14 | 显示全部楼层 |阅读模式
本帖最后由 酱油君 于 2021-5-15 19:57 编辑
//粘贴至Players中
var cd=10000;//1000毫秒=1秒
var range=5;//范围
var key=47;//按键 47 代表 V
var update_tick=1;//刷新频率,20ticks≈1秒
var canMessage=true;//是否启用提示
/*召唤圆形闪电效果
*IPlayer player   ---以某玩家为中心
*IWorld  world    ---生成闪电的世界
*int     range    ---圆形闪电的范围
*/
function Lightning_Show(player,world,range){
        var x=player.getX(),z=player.getZ();
        for(var angle=0;angle<60;angle++){
                var h=2*Math.PI/360*6*angle;
                var x1=x+Math.sin(h)*range;
                var z1=z-Math.cos(h)*range;
                world.thunderStrike(x1,player.getY(),z1);
        }
}
//用于更新雷霆法令cd
function timer(e){
        if(e.id==888){//若计时器id为888
                update(e.player);//触发函数用于更新雷霆法令
        }
}
/*实现雷霆法令更新效果的函数
*IPlayer player   ---更新的玩家
*/
function update(player){
        var store=player.getStoreddata();//获取玩家 存储 数据
        var can=eval(store.get("Lightning"));//将存储数据中的 Lightning 转为 boolean,即 是否可以使用雷霆法令数据
        var time=store.get("Lightning_Time");//从存储数据中取出 Lightning_Time,即 雷霆法令的cd数据
        var date=new Date().getTime();//获取当前时间,即 返回从 1970 年 1 月 1 日至今的毫秒数
        if(!can && time<date){//判断是否 可以使用雷霆法令 与 比较雷霆法令进入cd的时间
                store.put("Lightning","true");//将雷霆法令 改为可用
                message(player,"§5§l[技能-雷霆领主的法令]§9§l已冷却完毕,按 §4§lV §9§l释放");//提示信息
        }
}
//按键监听
function keyPressed(e){
        if(e.key==key){//判断玩家按下的键是否为 V
                var player=e.player;
                player.timers.forceStart(888,update_tick,true);//设置雷霆法令计时器.id为888,更新时间为 update_tick(即1ticks),循环执行
                var date=new Date().getTime();//获取当前时间,即 返回从 1970 年 1 月 1 日至今的毫秒数
                var store=player.getStoreddata();//获取玩家 存储 数据
                if(!store.has("Lightning")){//判断玩家是否有 Lightning 数据
                        store.put("Lightning","true");//玩家无 Lightning 数据,初始化 Lightning 数据为 "true"
                }
                var can=eval(store.get("Lightning"));//将存储数据中的 Lightning 转为 boolean,即 是否可以使用雷霆法令数据
                if(can){//判断 雷霆法令是否可用
                        store.put("Lightning","false");//使用雷霆法令,将雷霆法令改为 不可使用
                        store.put("Lightning_Time",date+cd);//设置雷霆法令cd
                        Lightning_Show(player,player.world,range);//召唤雷霆法令效果
                        message(player,"§5§l[技能-雷霆领主的法令]§2§l成功释放!冷却 §6"+cd/1000+" §2秒");//提示信息
                }else{//雷霆法令当前不可用
                        var time=store.get("Lightning_Time");//获取雷霆法令cd
                        var time_t=((time-date)/1000).toFixed(1);//转换进制到秒 并 取一位小数
                        message(player,"§5§l[技能-雷霆领主的法令]§4§l冷却还需要 §6"+time_t+" §4秒");//提示信息
                }
        }
}
/*向玩家发送提示
*IPlayer player   ---发送至某玩家信息
*String mess      ---发送的信息
*/
function message(player,mess){
        if(canMessage){//判断是否 启用提示
                player.message(mess);//向玩家发送信息
        }
}

评分

参与人数 1人气 +5 贡献 +1 收起 理由
小明 + 5 + 1

查看全部评分

回复

使用道具 举报

2

主题

15

帖子

224

积分

Lv.5 深海明珠

Rank: 8Rank: 8

积分
224
发表于 2021-4-30 10:12:08 | 显示全部楼层
好!虽然是1.12的脚本我用不着,但还是要说句牛逼!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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