鍐掗櫓宀涜鍧

 找回密码
 立即注册
查看: 72540|回复: 4

教学,如何做一个赌博的脚本

[复制链接]
  • TA的每日心情
    难过
    2022-7-5 11:34
  • 签到天数: 317 天

    [LV.8]以坛为家I

    384

    主题

    788

    帖子

    8万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    83843
    发表于 2020-3-8 21:07:28 | 显示全部楼层 |阅读模式
    /*
    ZXMS冒险岛(079)游戏服务端
    脚  本:游戏赌博脚本,点券,金币,抵用券 3合1切换
    可设置相关赌博信息
    1.赌博类型
    2.赌博赢的几率
    3.赌博赢的赔率
    4.赌博暴击几率
    5.赌博暴击的赔率
    6.赌注下注上下限
    7.连败保护机制,增加赢的几率
    8.连赢限制机制,减少赢的几率
    9.欧洲人设置
    10.非洲人设置
    */

    //赌博类型,1金币,2点券,3抵用
    var 赌博类型 = 1;

    //赌博赌赢的百分率(%)
    var 赌赢几率 = 30;

    //赌博获胜后获得的赔率,本金x倍率(倍)
    var 赌博赔率 = 2;

    //赌博获胜后出现暴击几率(%)
    var 赌博暴击 = 10;

    //赌博暴击赔率,本金x倍率(倍)
    var 暴击赔率 = 5;

    //赌博最高下赌注
    var 赌注上限 = 100 * 10000;

    //赌博最低下赌注
    var 赌注下限 = 1 * 10;

    //连败增加赢的几率保护机制,1开启,2关闭
    var 连败保护 = 1;

    //连赢增加输的几率保护机制,1开启,2关闭
    var 连赢限制 = 1;

    //欧洲人增加赢的几率
    var 欧洲人人品 = 5;

    //欧洲人增加赢的几率【暴击】
    var 欧洲人人品2 = 10;

    //欧洲人名单设置
    var 欧洲人 = [
        ["赏花人"],
            ["豆瓣鸡"],
            ["肥鸡"]
    ];

    //非洲人减少赢的几率
    var 非洲人人品 = 5;

    //非洲人减少赢的几率【暴击】
    var 非洲人人品2 = 5;

    //非洲人名单设置
    var 非洲人 = [
        ["花卷小妹"]
    ];
    /**脚本调试信息**/
    //脚本调试设置,1开启,2关闭,非调试请关闭,这里会输出所有赌博信息。
    var 脚本调制 = 1;

    importPackage(net.sf.odinms.client);
    var status = 0;
    var 赌注;

    function start() {
        status = -1;
        action(1, 0, 0);
    }

    function action(mode, type, selection) {
        if (mode == -1) {
            cm.对话结束();
        } else {
            if (mode == 0) {
                //否定后显示的文字
                cm.说明文字("你暂时还不想赌博?");
                cm.对话结束();
                return;
            }
            if (mode == 1) {
                status++;
            } else {
                status--;
            }
            var 获胜值 = cm.getBossRank("赌博获胜值", 2);
            var 失败值 = cm.getBossRank("赌博失败值", 2);
            if (status == 0) {
                //判断赌博类型
                if (赌博类型 == 1) {
                    var 类型 = "金币";
                    /**调试输出信息**/
                    if (脚本调制 == 1) {
                        cm.getPlayer().dropMessage(5, "赌博类型:金币");
                    }
                } else if (赌博类型 == 2) {
                    var 类型 = "点券";
                    /**调试输出信息**/
                    if (脚本调制 == 1) {
                        cm.getPlayer().dropMessage(5, "赌博类型:点券");
                    }
                } else if (赌博类型 == 3) {
                    var 类型 = "抵用券";
                    /**调试输出信息**/
                    if (脚本调制 == 1) {
                        cm.getPlayer().dropMessage(5, "赌博类型:抵用券");
                    }
                }
                //显示说明,输入框
                cm.sendGetText("   Hi~#b#h ##k,你要来试试手气吗?输入你要下的赌注数量,然后放手一搏听天由命吧?搏一搏,单车变摩托哦。\r\n\r\n输入你要下的赌注#r(" + 类型 + ")#k:");
            } else if (status == 1) {
                赌注 = cm.getText();
                //判断输入的赌注是否是正数
                if (赌注 < 0) {
                    cm.说明文字("你输入的赌注不正确。");
                    cm.对话结束();
                    return;
                }
                //判断赌注最高
                if (赌注 > 赌注上限) {
                    cm.说明文字("赌注超过限制上限。");
                    cm.对话结束();
                    return;
                }
                //判断赌注最低
                if (赌注 < 赌注下限) {
                    cm.说明文字("赌注低于限制下限。");
                    cm.对话结束();
                    return;
                }
                /**调试输出信息**/
                if (脚本调制 == 1) {
                    cm.getPlayer().dropMessage(5, "赌赢几率:" + 赌赢几率 + "% (基础前)");
                    cm.getPlayer().dropMessage(5, "赌博暴击:" + 赌博暴击 + "% (基础前)");
                }
                //赌博保护机制
                ////连败保护机制
                if (连败保护 == 1) {
                    //连败值大于或者等于10
                    if (失败值 >= 10) {
                        //增加10%赌赢的几率
                        赌赢几率 += 10;
                        /**调试输出信息**/
                        if (脚本调制 == 1) {
                            cm.getPlayer().dropMessage(5, "连败保护:触发");
                            cm.getPlayer().dropMessage(5, "连败保护:增加10%赌赢");
                        }
                    } else {
                        /**调试输出信息**/
                        if (脚本调制 == 1) {
                            cm.getPlayer().dropMessage(5, "连败保护:未触发");
                        }
                    }
                }
                ////连赢限制机制
                if (连赢限制 == 1) {
                    //连赢值大于或者等于10
                    if (获胜值 >= 10) {
                        //减少10%赌赢的几率
                        赌赢几率 -= 10;
                        /**调试输出信息**/
                        if (脚本调制 == 1) {
                            cm.getPlayer().dropMessage(5, "连赢限制:触发");
                            cm.getPlayer().dropMessage(5, "连赢限制:减少10%赌赢");
                        }
                    } else {
                        if (脚本调制 == 1) {
                            cm.getPlayer().dropMessage(5, "连赢限制:未触发");
                        }
                    }
                }
                //欧洲人
                for (var i = 0; i < 欧洲人.length; i++) {
                    if (cm.getChar().getName() == 欧洲人[0]) {
                        赌赢几率 += 欧洲人人品;
                        赌博暴击 += 欧洲人人品2;
                        /**调试输出信息**/
                        if (脚本调制 == 1) {
                            cm.getPlayer().dropMessage(5, "欧 洲 人:" + 欧洲人[0] + "");
                        }
                    }
                }
                //非洲人
                for (var i = 0; i < 非洲人.length; i++) {
                    if (cm.getChar().getName() == 非洲人[0]) {
                        赌赢几率 -= 非洲人人品;
                        赌博暴击 -= 非洲人人品2;
                        /**调试输出信息**/
                        if (脚本调制 == 1) {
                            cm.getPlayer().dropMessage(5, "非 洲 人:" + 非洲人[0] + "");
                        }
                    }
                }
                /**调试输出信息**/
                if (脚本调制 == 1) {
                    cm.getPlayer().dropMessage(5, "赌    注:" + 赌注 + "");
                    cm.getPlayer().dropMessage(5, "赌注上限:" + 赌注上限 + "");
                    cm.getPlayer().dropMessage(5, "赌注下限:" + 赌注下限 + "");
                    cm.getPlayer().dropMessage(5, "失 败 值:" + 失败值 + "");
                    cm.getPlayer().dropMessage(5, "获 胜 值:" + 获胜值 + "");
                    cm.getPlayer().dropMessage(5, "赌赢几率:" + 赌赢几率 + "% (计算后)");
                    cm.getPlayer().dropMessage(5, "赌博暴击:" + 赌博暴击 + "% (计算后)");
                }
                //判断赌博类型
                ////金币
                if (赌博类型 == 1) {
                    if (cm.判断金币() < 赌注) {
                        cm.说明文字("你没有这么多金币哦。");
                        cm.对话结束();
                        return;
                    }
                    //开始计算赌博的结果
                    if (cm.百分率(赌赢几率)) {
                        //收取赌博下注本金
                        cm.收金币(赌注);
                        //赌博赢了的奖励
                        if (cm.百分率(赌博暴击)) {
                            cm.给金币(赌注 * 暴击赔率);
                            //个人公告
                            cm.说明文字("#r【暴击】#k 恭喜你赌赢了,获得 #b" + 赌注 * 暴击赔率 + "#k 金币。");
                            //全服公告
                            cm.全服公告("[赌博公告]:恭喜玩家 " + cm.getChar().getName() + " [暴击]赌赢了 " + 赌注 * 暴击赔率 + " 金币。");
                        } else {
                            cm.给金币(赌注 * 赌博赔率);
                            //个人公告
                            cm.说明文字("恭喜你赌赢了,获得 #b" + 赌注 * 赌博赔率 + "#k 金币。");
                            //全服公告
                            cm.全服公告("[赌博公告]:恭喜玩家 " + cm.getChar().getName() + " 赌赢了 " + 赌注 * 赌博赔率 + " 金币。");
                        }
                        //增加获胜值
                        cm.setBossRankCount("赌博获胜值", 1);
                        //清空失败值
                        cm.setBossRankCount("赌博失败值", -失败值);
                        cm.对话结束();
                    } else {
                        //收取赌博下注本金
                        cm.收金币(赌注);
                        cm.说明文字("很遗憾,你输了。");
                        //增加失败值
                        cm.setBossRankCount("赌博失败值", 1);
                        //清空获胜值
                        cm.setBossRankCount("赌博获胜值", -获胜值);
                        cm.对话结束();
                    }
                    ////点券
                } else if (赌博类型 == 2) {
                    if (cm.判断点券() < 赌注) {
                        cm.说明文字("你没有这么多点券哦。");
                        cm.对话结束();
                        return;
                    }
                    //开始计算赌博的结果
                    if (cm.百分率(赌赢几率)) {
                        //收取赌博下注本金
                        cm.收点券(赌注);
                        //赌博赢了的奖励
                        if (cm.百分率(赌博暴击)) {
                            cm.给点券(赌注 * 暴击赔率);
                            //个人公告
                            cm.说明文字("#r【暴击】#k 恭喜你赌赢了,获得 #b" + 赌注 * 暴击赔率 + "#k 点券。");
                            //全服公告
                            cm.全服公告("[赌博公告]:恭喜玩家 " + cm.getChar().getName() + " [暴击]赌赢了 " + 赌注 * 暴击赔率 + " 点券。");
                        } else {
                            cm.给点券(赌注 * 赌博赔率);
                            //个人公告
                            cm.说明文字("恭喜你赌赢了,获得 #b" + 赌注 * 赌博赔率 + "#k 点券。");
                            //全服公告
                            cm.全服公告("[赌博公告]:恭喜玩家 " + cm.getChar().getName() + " 赌赢了 " + 赌注 * 赌博赔率 + " 金币。");
                        }
                        //增加获胜值
                        cm.setBossRankCount("赌博获胜值", 1);
                        //清空失败值
                        cm.setBossRankCount("赌博失败值", -失败值);
                        cm.对话结束();
                    } else {
                        //收取赌博下注本金
                        cm.收点券(赌注);
                        cm.说明文字("很遗憾,你输了。");
                        //增加失败值
                        cm.setBossRankCount("赌博失败值", 1);
                        //清空获胜值
                        cm.setBossRankCount("赌博获胜值", -获胜值);
                        cm.对话结束();
                    }
                    ////抵用
                } else if (赌博类型 == 3) {
                    if (cm.判断抵用券() < 赌注) {
                        cm.说明文字("你没有这么多抵用哦。");
                        cm.对话结束();
                        return;
                    }
                    //开始计算赌博的结果
                    if (cm.百分率(赌赢几率)) {
                        //收取赌博下注本金
                        cm.收抵用券(赌注);
                        //赌博赢了的奖励
                        if (cm.百分率(赌博暴击)) {
                            cm.给抵用券(赌注 * 暴击赔率);
                            //个人公告
                            cm.说明文字("#r【暴击】#k 恭喜你赌赢了,获得 #b" + 赌注 * 暴击赔率 + "#k 抵用券。");
                            //全服公告
                            cm.全服公告("[赌博公告]:恭喜玩家 " + cm.getChar().getName() + " [暴击]赌赢了 " + 赌注 * 暴击赔率 + " 抵用券。");
                        } else {
                            cm.给抵用券(赌注 * 赌博赔率);
                            //个人公告
                            cm.说明文字("恭喜你赌赢了,获得 #b" + 赌注 * 赌博赔率 + "#k 抵用券。");
                            //全服公告
                            cm.全服公告("[赌博公告]:恭喜玩家 " + cm.getChar().getName() + " 赌赢了 " + 赌注 * 赌博赔率 + " 金币。");
                        }
                        //增加获胜值
                        cm.setBossRankCount("赌博获胜值", 1);
                        //清空失败值
                        cm.setBossRankCount("赌博失败值", -失败值);
                        cm.对话结束();
                    } else {
                        //收取赌博下注本金
                        cm.收抵用券(赌注);
                        cm.说明文字("很遗憾,你输了。");
                        //增加失败值
                        cm.setBossRankCount("赌博失败值", 1);
                        //清空获胜值
                        cm.setBossRankCount("赌博获胜值", -获胜值);
                        cm.对话结束();
                    }
                } else {
                    cm.说明文字("脚本错误,判断赌博类型错误。");
                    cm.对话结束();
                    return;
                }
            }
        }
    }
    哎...今天够累的,签到来了4...
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2023-11-20 00:34
  • 签到天数: 59 天

    [LV.5]常住居民I

    12

    主题

    99

    帖子

    8069

    积分

    论坛元老

    Rank: 8Rank: 8

    积分
    8069
    发表于 2022-6-5 01:23:06 | 显示全部楼层
    有没有做好的啊
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2022-8-12 00:11
  • 签到天数: 28 天

    [LV.4]偶尔看看III

    15

    主题

    57

    帖子

    3348

    积分

    论坛元老

    Rank: 8Rank: 8

    积分
    3348
    发表于 2022-6-30 16:57:53 | 显示全部楼层
    要是可以做一个购买彩票的脚本就不错,求学习
    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2023-6-30 12:48
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    2

    主题

    30

    帖子

    1602

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    1602
    发表于 2022-7-23 10:50:57 | 显示全部楼层
    ZXMS冒险岛(079)游戏服务端
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2022-12-25 12:07
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    2

    主题

    41

    帖子

    922

    积分

    高级会员

    Rank: 4

    积分
    922
    发表于 2022-11-5 00:29:20 | 显示全部楼层
    学习来试试
    回复

    使用道具 举报

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

    本版积分规则

    |网站地图

    免责声明:论坛资源来源网络公开渠道,如有侵权,请及时告知,联系删除! 邮箱: 2927653759@qq.com

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