切换风格

默认晚霞 雪山 粉色心情 伦敦 花卉 绿野仙踪 加州 白云 星空 薰衣草 城市 简约黑色 龙珠
回复 0

1

主题

1

帖子

43

积分

论坛萌新

Rank: 1

积分
43
人气
0 点
钻石粒
28 粒
贡献
0 点
论坛币
14 个
爱心
0 点
强化附魔等级[复制链接]
发表于 2020-6-20 12:56:41 | 显示全部楼层 |阅读模式
脚本例子
脚本版本: 1.0
适用版本: 1.12.2 1.7.10 
编写语言: EMCA
最后更新: 2020-06-20
代码版权: 弱版权

请注册论坛会员,已便查看高清图片!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
在默默的偷吃了网站那里和群里的大佬们的脚本,

在思望望望大佬和群里其他大佬的淳淳教诲下,
我终于写出了我自己需求的第一个脚本了
下面把代码分享给大家

  1. /*食用准备:可以通过对话钩子设置player.getHeldItem().setTag("itensify","damage")的方法。
  2. 通过拿着手上的物品右键npc来为你选定的强化石物品进行标记。
  3. ps:除"damage"外还有"durability"和"thorns"两种默认类型;
  4.   食用方法:可以把该脚本放在对话钩子;然后手拿你要强化的物品,右键npc即可(背包要有标记了的强化石)
  5.   Time:2020.6.20
  6.   author:Coolla
  7.   */

  8. if(player.getHeldItem()!==null){
  9. var success =100;//基础成功率设置
  10. var maxlvl=200;//最大等级限制
  11. var searchitem=player.getInventory();

  12. var itemid=search(searchitem);
  13. if(itemid!==-1){
  14. var tickets=identify(searchitem[itemid]);//判断强化石类型
  15. if(tickets!==0){
  16. var enchment= Java.type("org.bukkit.enchantments.Enchantment");
  17. switch (tickets){//三种附魔类型
  18. case 1:var ench=enchment.DAMAGE_ALL;break;
  19. case 2:var ench=enchment.DURABILITY;break;
  20. case 3:var ench=enchment.THORNS;break;
  21. };

  22. var bukkit =Java.type("org.bukkit.Bukkit");
  23. var playerName = player.getName();
  24. var playerB=bukkit.getPlayer(playerName);
  25. var hand=playerB.getItemInHand();

  26. success=matchlvl(hand,ench,maxlvl);//检查附魔的等级
  27. if(success>0){
  28. remove(searchitem,itemid);

  29. levelup(hand,ench,success);//强化附魔
  30. }else npc.say("你已经超过附魔等级限制")}
  31. }else npc.say("你没有强化石");
  32. }else npc.say("请把需要强化的东西放在手上");

  33. function search (itemlist){//寻找强化石
  34. for(var i=0;i<36;i++){
  35. if(itemlist[i]!==null){
  36.          if(itemlist[i].hasTag("itensify")==true)return i;
  37. }}return -1}


  38. function identify(matchitem){//鉴别附魔强化石
  39.          var name=matchitem.getTag("itensify");
  40. switch(name){
  41. case "damage":var id =1;break;
  42. case "durability":var id =2;break;
  43. case "thorns":var id =3;break;
  44. };return id
  45. }

  46. function matchlvl(hand,ench,maxlvl){//检查附魔的等级
  47. var lvl=hand.getEnchantmentLevel(ench);
  48. var i=0;
  49. if(lvl>=maxlvl)return 0;
  50. if(lvl>10)i= 90;
  51. if(lvl>20)i=80;
  52. if(lvl>50)i=50;
  53. if(lvl>100)i=40;//强化几率
  54. return i;
  55. }

  56. function levelup (item,ench,success){//强化方法
  57. var random=parseInt(Math.random()*100+1);
  58. if(random<success){
  59. var lvl=1+item.getEnchantmentLevel(ench);
  60. item.addUnsafeEnchantment(ench,lvl);
  61. npc.say("&6恭喜你,强化成功");}
  62. else {npc.say("很遗憾,强化失败");}
  63. }

  64. function remove(matchitem,i)//移除强化石方法
  65.          {var num=matchitem[i].getStackSize();
  66.                 if(num==1){
  67. player.getMCEntity().field_71071_by.field_70462_a[i]=null;
  68. player.sendMessage("&6&l★★已消耗强化石*1★★");
  69. }else{
  70.                 num-=1;
  71.                matchitem[i].setStackSize(num);
  72.                player.sendMessage("&6&l★★已消耗强化石*1★★");
  73.                }}

复制代码





评分

参与人数 1钻石粒 -20 收起 理由
Guai_Shou -20 请仔细阅读群公告,并修改标题.

查看全部评分

回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|自定义NPC脚本中文论坛 ( 蜀ICP备17005795号-3 )

GMT+8, 2020-8-15 22:21 , Processed in 0.073153 second(s), 33 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

返回顶部