本帖最后由 酱油君 于 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);//向玩家发送信息
}
}
|