微信扫一扫 分享朋友圈

已有 4779 人浏览分享

[服務器教學] 透過SRC 在遊戲裡面新增轉蛋機物品

[複製鏈接]

集團新軍

Rank: 1

97

威望

149

金錢

20

A幣
主題
5
帖子
62
精華
0
綜合社群主題發文量
5
電玩社群主題發文量
0
娛樂社群主題發文量
0
技術社群主題發文量
5
閱讀權限
10
註冊時間
2021-8-6
  • TA的每日心情
    開心
    2022-7-11 11:36
  • 簽到天數: 14 天

    連續簽到: 1 天

    [LV.3]偶爾看看II

    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就不提供了 謝謝個未


    共收到 20 A幣
    打賞榜
    共打賞 20 A幣
    暫無
    暫無
    暫無
    ----
    暫無
    ----
    暫無
    ----
    暫無
    ----

    站長

    Rank: 12Rank: 12Rank: 12

    1701

    威望

    2803

    金錢

    104

    A幣
    主題
    1315
    帖子
    2430
    精華
    3
    綜合社群主題發文量
    262
    電玩社群主題發文量
    1
    娛樂社群主題發文量
    4
    技術社群主題發文量
    26
    閱讀權限
    200
    註冊時間
    2013-1-28

    我是傳奇贊助感謝勳章精華作者勳章

  • TA的每日心情

    2023-10-27 16:33
  • 簽到天數: 381 天

    連續簽到: 1 天

    [LV.9]以壇為家II

    TWAICL 發表於 2022-3-18 23:25:01 | 顯示全部樓層
    網站給了許多思路,但實際寫會發現並沒有想像中容易,你能做出來代表你真的很花心思研究JAVA的寫法,真的很棒!!

    很期待你未來能看到你更多的作品。

    小小建議,如果要分享代碼的話,可以用編輯工具裡下圖這個功能,
    把代碼放到裡面編輯出來,排版會比較容易讀。

    螢幕擷取畫面 2022-03-18 232345.png

    集團新軍

    Rank: 1

    97

    威望

    149

    金錢

    20

    A幣
    主題
    5
    帖子
    62
    精華
    0
    綜合社群主題發文量
    5
    電玩社群主題發文量
    0
    娛樂社群主題發文量
    0
    技術社群主題發文量
    5
    閱讀權限
    10
    註冊時間
    2021-8-6
  • TA的每日心情
    開心
    2022-7-11 11:36
  • 簽到天數: 14 天

    連續簽到: 1 天

    [LV.3]偶爾看看II

     樓主| leo1245 發表於 2022-3-19 07:48:12 | 顯示全部樓層
    TWAICL 發表於 2022-3-18 23:25
    網站給了許多思路,但實際寫會發現並沒有想像中容易,你能做出來代表你真的很花心思研究JAVA的寫法,真的很 ...

    當時不知道排版在哪
    謝謝會長的教學
    您需要登錄後才可以回帖 登錄 | 註冊會員

    本版積分規則

    62

    發文

    149

    金錢

    20

    A幣

    ----------榮譽勳章----------

    熱門推薦
    圖文推薦
    • 聯繫我們

    小黑屋|AICL社群娛樂集團

    GMT+8, 2024-2-22 03:03 , 網路刷新 0.106676 秒 .

    歡迎來到 AICL網路社群

    版權AICL社群所有 2011-2021.

    Total:123 Today:213 Online:322