ZEV 发表于 2018-11-7 15:16:47

教学,如何做一个简单装备的脚本。

/*
ZEVMS冒险岛(079)游戏服务端
版本号:20181107B
脚本:游戏装备鉴定脚本
出现鉴定的概率在前面设置,每种鉴定的属性值在后面设置,
欧洲人非洲人名单在前面设置,概率在中间设置。
*/

//鉴定费用 (点券)
var 鉴定费用 = 1000;

//出现SSS鉴定概率(%)
var SSS = 1;

//出现SS鉴定概率(%)
var SS = 5;

//出现S鉴定概率(%)
var S = 10;

//出现A鉴定概率(%)
var A = 20;

//出现B鉴定概率(%)
var B = 30;

//出现C鉴定概率(%)
var C = 40;

//出现D鉴定概率(%)
var D = 50;

//欧洲人名单设置
var 欧洲人 = [
    ["小Z"],
    ["老康"],
    ["帅康无敌"]
];

//非洲人名单设置
var 非洲人 = [
    ["枫之念"]
];



importPackage(java.lang);
importPackage(Packages.tools);
importPackage(Packages.client);
importPackage(Packages.server);
var 箭头 = "#fUI/Basic/BtHide3/mouseOver/0#";
var status;
var text;
var itemid, item;
var selstatus = -1;
var itemList = new Array();
var deleteSlot;
var 力量, 敏捷, itemFlag, 运气, 智力, 生命值, 法力值, 物理攻击力, 魔法攻击力, 物理防御力, 魔法防御力, 回避率, 命中率, 跳跃力, 移动速度;
var Flag_random = 1;
function start() {
    status = -1;
    action(1, 0, 0);
}

function action(mode, type, selection) {
    if (mode <= 0) {
      cm.dispose();
      return;
    } else {
      if (mode == 1) {
            status++;
      } else {
            status--;

      }
      if (status == 0) {
            text = "   Hi~#b#h ##k,你有装备需要鉴定一下吗?鉴定后装备会发生很奇妙的变化哦。不过在此之前,你需要给我一些费用。#k#n\r\n\r\n";
            text += " \t\t\t\t#L0#" + 箭头 + "#b装备强化#k#l";
            cm.sendSimple(text);
      } else {
            if (selstatus == -1) {
                selstatus = selection;
            }
            switch (selstatus) {
                case 0:
                  deleteItemBySlot(selection);
                  break;

            }
      }
    }
}

function deleteItemBySlot(selection) {
    if (status == 1) {
      itemList = cm.getInventory(1).list().iterator();
      text = "选择你要鉴定的装备:#k#n\r\n\r\n";
      var indexof = 1;
      while (itemList.hasNext()) {
            var item = itemList.next();
            text += "\t\t\t#L" + item.getPosition() + "##v" + item.getItemId() + "##b#t" + item.getItemId() + "##l\r\n";
            if (indexof > 1 && indexof % 5 == 0) {
                text += "\r\n";
            }
            indexof++;
      }
      cm.sendSimple(text);
    } else if (status == 2) {
                //装备各种属性初始化
      item = cm.getInventory(1).getItem(selection);
      itemgetOwner = item.getOwner();
      itemid = item.getItemId();
      itemFlag = item.getFlag();
      力量 = item.getStr();
      敏捷 = item.getDex();
      运气 = item.getLuk();
      智力 = item.getInt();
      生命值 = item.getHp();
      法力值 = item.getMp();
      物理攻击力 = item.getWatk();
      魔法攻击力 = item.getMatk();
      物理防御力 = item.getWdef();
      魔法防御力 = item.getMdef();
      回避率 = item.getAvoid();
      命中率 = item.getAcc();
      跳跃力 = item.getJump();
      移动速度 = item.getSpeed();
      itemsj = item.getUpgradeSlots();
      deleteSlot = selection;
      if (itemgetOwner != "") {
            cm.说明文字("该装备已经鉴定过了。");
            cm.对话结束();
            return;
      }
      if (itemsj <= 0) {
            cm.说明文字("该装备没有升级次数,无法鉴定。");
            cm.对话结束();
            return;
      }
                if(cm.判断点券()<鉴定费用){
                        cm.说明文字("你不够鉴定的费用,需要 #r"+鉴定费用+"#k 点券。");
            cm.对话结束();
            return;
                }
                ////欧洲人和非洲人设置
      //欧洲人
      for (var i = 0; i < 欧洲人.length; i++) {
            if (cm.getChar().getName() == 欧洲人) {
                SSS += 1;
                                SS += 2;
                                S += 3;
            }
      }
      //非洲人
      for (var i = 0; i < 非洲人.length; i++) {
            if (cm.getChar().getName() == 非洲人) {
                SSS -= 3;
                                SS -= 2;
                                S -= 1;
            }
      }
      //出现SSS级别鉴定
      if (cm.百分率(SSS)) {
            //回收掉鉴定的装备
            cm.removeSlot(1, deleteSlot, 1);
            //给予新的鉴定装备
            cm.gainItem("SSS级别",
                  itemid,
                  itemsj,
                  itemFlag,
                  力量 + 50,
                  敏捷 + 50,
                  运气 + 50,
                  智力 + 50,
                  生命值 + 500,
                  法力值 + 500,
                  物理攻击力 + 50,
                  魔法攻击力 + 50,
                  物理防御力 + 500,
                  魔法防御力 + 500,
                  回避率 + 50,
                  命中率 + 50,
                  跳跃力 + 50,
                  移动速度 + 50
                  );
            //个人公告
            cm.说明文字(" 恭喜你鉴定出 #rSSS#k 级别的 " + cm.显示物品(itemid) + "");
            //全服公告
            cm.全服公告("恭喜玩家 " + cm.getChar().getName() + " 鉴定出 SSS 级别的 " + cm.getItemName(itemid) + "");
            //出现SS级别鉴定
      } else if (cm.百分率(SS)) {
            //回收掉鉴定的装备
            cm.removeSlot(1, deleteSlot, 1);
            //给予新的鉴定装备
            cm.gainItem("SS级别",
                  itemid,
                  itemsj,
                  itemFlag,
                  力量 + 30,
                  敏捷 + 30,
                  运气 + 30,
                  智力 + 30,
                  生命值 + 300,
                  法力值 + 300,
                  物理攻击力 + 30,
                  魔法攻击力 + 30,
                  物理防御力 + 300,
                  魔法防御力 + 300,
                  回避率 + 30,
                  命中率 + 30,
                  跳跃力 + 30,
                  移动速度 + 30
                  );
            //个人公告
            cm.说明文字(" 恭喜你鉴定出 #rSS#k 级别的 " + cm.显示物品(itemid) + "");
            //全服公告
            cm.全服公告("恭喜玩家 " + cm.getChar().getName() + " 鉴定出 SS 级别的 " + cm.getItemName(itemid) + "");
            //出现S级别鉴定
      } else if (cm.百分率(S)) {
            //回收掉鉴定的装备
            cm.removeSlot(1, deleteSlot, 1);
            //给予新的鉴定装备
            cm.gainItem("S级别",
                  itemid,
                  itemsj,
                  itemFlag,
                  力量 + 20,
                  敏捷 + 20,
                  运气 + 20,
                  智力 + 20,
                  生命值 + 200,
                  法力值 + 200,
                  物理攻击力 + 20,
                  魔法攻击力 + 20,
                  物理防御力 + 200,
                  魔法防御力 + 200,
                  回避率 + 20,
                  命中率 + 20,
                  跳跃力 + 20,
                  移动速度 + 20
                  );
            //个人公告
            cm.说明文字(" 恭喜你鉴定出 #rS#k 级别的 " + cm.显示物品(itemid) + "");
            //全服公告
            cm.全服公告("恭喜玩家 " + cm.getChar().getName() + " 鉴定出 S 级别的 " + cm.getItemName(itemid) + "");
            //出现A级别鉴定
      } else if (cm.百分率(A)) {
            //回收掉鉴定的装备
            cm.removeSlot(1, deleteSlot, 1);
            //给予新的鉴定装备
            cm.gainItem("A级别",
                  itemid,
                  itemsj,
                  itemFlag,
                  力量 + 10,
                  敏捷 + 10,
                  运气 + 10,
                  智力 + 10,
                  生命值 + 100,
                  法力值 + 100,
                  物理攻击力 + 10,
                  魔法攻击力 + 10,
                  物理防御力 + 100,
                  魔法防御力 + 100,
                  回避率 + 10,
                  命中率 + 10,
                  跳跃力 + 10,
                  移动速度 + 10
                  );
            //个人公告
            cm.说明文字(" 恭喜你鉴定出 #rA#k 级别的 " + cm.显示物品(itemid) + "");
            //全服公告
            cm.全服公告("恭喜玩家 " + cm.getChar().getName() + " 鉴定出 A 级别的 " + cm.getItemName(itemid) + "");
            //出现B级别鉴定
      } else if (cm.百分率(B)) {
            //回收掉鉴定的装备
            cm.removeSlot(1, deleteSlot, 1);
            //给予新的鉴定装备
            cm.gainItem("B级别",
                  itemid,
                  itemsj,
                  itemFlag,
                  力量 + 10,
                  敏捷 + 10,
                  运气 + 10,
                  智力 + 10,
                  生命值 + 0,
                  法力值 + 0,
                  物理攻击力 + 10,
                  魔法攻击力 + 10,
                  物理防御力 + 0,
                  魔法防御力 + 0,
                  回避率 + 10,
                  命中率 + 10,
                  跳跃力 + 10,
                  移动速度 + 10
                  );
            //个人公告
            cm.说明文字(" 恭喜你鉴定出 #rB#k 级别的 " + cm.显示物品(itemid) + "");
            //全服公告
            cm.全服公告("恭喜玩家 " + cm.getChar().getName() + " 鉴定出 B 级别的 " + cm.getItemName(itemid) + "");
            //出现C级别鉴定
      } else if (cm.百分率(C)) {
            //回收掉鉴定的装备
            cm.removeSlot(1, deleteSlot, 1);
            //给予新的鉴定装备
            cm.gainItem("C级别",
                  itemid,
                  itemsj,
                  itemFlag,
                  力量 + 10,
                  敏捷 + 10,
                  运气 + 10,
                  智力 + 10,
                  生命值 + 0,
                  法力值 + 0,
                  物理攻击力 + 10,
                  魔法攻击力 + 10,
                  物理防御力 + 0,
                  魔法防御力 + 0,
                  回避率 + 0,
                  命中率 + 0,
                  跳跃力 + 0,
                  移动速度 + 0
                  );
            //个人公告
            cm.说明文字(" 恭喜你鉴定出 #rC#k 级别的 " + cm.显示物品(itemid) + "");
            //全服公告
            cm.全服公告("恭喜玩家 " + cm.getChar().getName() + " 鉴定出 C 级别的 " + cm.getItemName(itemid) + "");
            //出现D级别鉴定
      } else if (cm.百分率(D)) {
            //回收掉鉴定的装备
            cm.removeSlot(1, deleteSlot, 1);
            //给予新的鉴定装备
            cm.gainItem("C级别",
                  itemid,
                  itemsj,
                  itemFlag,
                  力量 + 10,
                  敏捷 + 10,
                  运气 + 10,
                  智力 + 10,
                  生命值 + 0,
                  法力值 + 0,
                  物理攻击力 + 0,
                  魔法攻击力 + 0,
                  物理防御力 + 0,
                  魔法防御力 + 0,
                  回避率 + 0,
                  命中率 + 0,
                  跳跃力 + 0,
                  移动速度 + 0
                  );
            //个人公告
            cm.说明文字(" 恭喜你鉴定出 #rD#k 级别的 " + cm.显示物品(itemid) + "");
            //全服公告
            cm.全服公告("恭喜玩家 " + cm.getChar().getName() + " 鉴定出 D 级别的 " + cm.getItemName(itemid) + "");
      } else {
            cm.说明文字("鉴定失败了。");
            cm.对话结束();
      }
    }
}

3193697 发表于 2021-12-2 10:45:52

谢谢大佬的分享

a987 发表于 2022-9-24 11:19:38

谢谢分享   

lihaoyu 发表于 2023-1-15 07:27:29

大佬请问下,importPackage();
报错怎么办
页: [1]
查看完整版本: 教学,如何做一个简单装备的脚本。