leo1245

透過SRC 在遊戲裡面新增轉蛋機物品

發表於 2022-3-18 20:28:48
leo1245 發表於 2022-3-18 20:28:48 | 顯示全部樓層 |閱讀模式
之前花很久時間 終於寫出來的東西 然後在看完幾天前那篇轉蛋機文章 也來發一下這篇 來感謝這邊所有人 如果寫不好 請見諒 這必須有Gashapon語法才能用在Gashapon.java新增 以下語法
       public String ShowItem(String type) {    //可以顯示轉蛋機物品
        StringBuilder sb = new StringBuilder();
        Iterator<Pair<Long, GashaponReward>> iterator = this.items.iterator();
        sb.append("#b轉蛋機物品有:\r\n");
        while (iterator.hasNext()) {
            Pair<Long, GashaponReward> c = iterator.next();   
            if (MapleItemInformationProvider.getInstance().itemExists(c.right.getItemId()) && c.right.getChance() > 0) {
                switch (type) {
                    case "1":
                        sb.append("#v" + c.right.getItemId() + "#");
                        break;
                    case "2":
                        sb.append("#v" + c.right.getItemId() + "#  道具名稱: #z" + c.right.getItemId() + "#\r\n");
                        break;
                    case "GM":
                        sb.append("#L" + c.right.getItemId() + "##v" + c.right.getItemId() + "##z" + c.right.getItemId() + "# 機率:" + c.right.getChance()  + "(點擊更改)\r\n");
                        break;
                    default:
                        sb.append("顯示錯誤!");
                        break;
                }
            }
        }
        if (type == "GM") {
            sb.append("\r\n#b#L10000#我要新增抽獎物品#l\r\n");
        }
        return sb.toString();
    }

    public String ShowItem_GM() { //透過GM權限可以修改轉蛋機物品
        StringBuilder sb = new StringBuilder();
        Iterator<Pair<Long, GashaponReward>> iterator = this.items.iterator();
        sb.append("#b轉蛋機物品有:\r\n");
        while (iterator.hasNext()) {
            Pair<Long, GashaponReward> c = iterator.next();      
            if (MapleItemInformationProvider.getInstance().itemExists(c.right.getItemId())) {
                sb.append("#L" + items.size() + "##v" + c.right.getItemId() + "##z" + c.right.getItemId() + "# 機率:" + c.right.getChance() +  "(點擊更改)\r\n");
            }
        }
        return sb.toString();
    }


    public void ChangeChance(MapleCharacter chr, int itemid, int chance) {   // 更改轉蛋物機率
        try (Connection con = DatabaseConnection.getConnection(); PreparedStatement ps = con.prepareStatement("UPDATE gashapon_items SET chance = ? WHERE gashaponsid = ? AND itemid = ?")) {
            ps.setInt(1, chance);
            ps.setInt(2, getId());
            ps.setInt(3, itemid);
            ps.executeUpdate();
        } catch (SQLException ex) {
            System.out.println("Error GashaponChance" + ex);
            FilePrinter.printError("GashaponChance.txt", ex, "GashaponChance has SQL Exception");
        }
        FileoutputUtil.logToFile("logs/GM_LOG/GM更改轉蛋物機率.txt", "\r\n" + FileoutputUtil.NowTime() + "GM: " + chr.getName() + "  更改物品:" + MapleItemInformationProvider.getInstance().getName(itemid) + " 機率更改為" + chance);  //可以新增LOG紀錄

    }

    public void AddItem(MapleCharacter chr, int itemid, int chance, boolean msg) {   //新增轉蛋機物品
        try (Connection con = DatabaseConnection.getConnection(); PreparedStatement ps = con.prepareStatement("INSERT INTO gashapon_items SET chance = ? , gashaponsid = ? , itemid = ? , name = ?, showmsg = ?")) {
            ps.setInt(1, chance);
            ps.setInt(2, getId());
            ps.setInt(3, itemid);
            ps.setString(4, MapleItemInformationProvider.getInstance().getName(itemid));
            ps.setInt(5, (msg ? 1 : 0));
            ps.executeUpdate();
        } catch (SQLException ex) {
            System.out.println("Error GashaponAddItem" + ex);
            FilePrinter.printError("GashaponAddItem.txt", ex, "GashaponAddItem has SQL Exception");
        }
        FileoutputUtil.logToFile("logs/GM_LOG/GM新增轉蛋物.txt", "\r\n" + FileoutputUtil.NowTime() + "GM: " + chr.getName() + "  新增轉蛋物品:" + MapleItemInformationProvider.getInstance().getName(itemid) + " 機率設定為" + chance + " 是否上綠廣:" + (msg ? "是" : "否")); //可以新增LOG紀錄

    }


配合轉蛋機重載指令 跟JS 就能做出以下效果

JS就不提供了 謝謝個未


瀏覽 8451 回復 4

您需要登錄後才可以回帖 登錄 | 註冊會員

返回頂部