查看: 4353|回复: 3

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

  • TA的每日心情
    无聊
    2020-7-26 17:37
  • 签到天数: 56 天

    [LV.5]常住居民I

    服务端开发者

    枫币
    4899
    威望
    61
    贡献
    431
    在线时间
    56 小时
    注册时间
    2016-12-30
    QQ
    发表于 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() == 欧洲人[i][0]) {
                    SSS += 1;
                                    SS += 2;
                                    S += 3;
                }
            }
            //非洲人
            for (var i = 0; i < 非洲人.length; i++) {
                if (cm.getChar().getName() == 非洲人[i][0]) {
                    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.对话结束();
            }
        }
    }

    评分

    参与人数 1威望 +1 枫币 +1 贡献 +1 收起 理由
    a987 + 1 + 1 + 1

    查看全部评分

    ZEVMS冒险岛(079)游戏服务端

    该用户从未签到

    新人上路

    枫币
    23
    威望
    0
    贡献
    1
    在线时间
    2 小时
    注册时间
    2021-11-20
    发表于 2021-12-2 10:45:52 | 显示全部楼层
    谢谢大佬的分享
  • TA的每日心情
    奋斗
    2024-3-10 23:37
  • 签到天数: 26 天

    [LV.4]偶尔看看III

    中级会员

    枫币
    811
    威望
    0
    贡献
    21
    在线时间
    36 小时
    注册时间
    2022-7-17
    发表于 2022-9-24 11:19:38 | 显示全部楼层
    谢谢分享   

    该用户从未签到

    新人上路

    枫币
    20
    威望
    0
    贡献
    0
    在线时间
    3 小时
    注册时间
    2023-1-8
    QQ
    发表于 2023-1-15 07:27:29 | 显示全部楼层
    大佬请问下,importPackage();
    报错怎么办
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    枫叶物语即使倒闭也绝对不会变质
    Copyright © 2001-2013 Discuz Team. Powered by Discuz! X3.5 |网站地图 | 本站已运行: