微信扫一扫 分享朋友圈

已有 1669 人浏览分享

[服務器教學] 實用功能!結合資料庫限制玩家道具領取次數

[複製鏈接]

集團會長

Rank: 12Rank: 12Rank: 12

1083

威望

1007

金錢

0

A幣
主題
1266
帖子
2246
精華
3
綜合社群主題發文量
258
電玩社群主題發文量
1
娛樂社群主題發文量
3
技術社群主題發文量
17
閱讀權限
200
註冊時間
2013-1-28

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

  • TA的每日心情

    2022-4-29 14:35
  • 簽到天數: 371 天

    連續簽到: 1 天

    [LV.9]以壇為家II

    TWAICL 發表於  2018-8-20 08:03:22 | 顯示全部樓層 | 閱讀模式


    【前言】
      道具兌換是非常基本的入門指令,基本只需參考前人的設定,

    就可以做出功能相同的JS,但是,如果要限制玩家僅能領取一次呢?

    這邊所用的是透過"每日領取"的設計技巧,做出全新變化。

    【優點】

    • 設定簡單,更改條件容易。
    • BUG出線機率極低。
    • 玩家兌換狀況清楚明瞭。
    • 功能彈性,可運用許多不同 JS 判斷寫法。

    [size=14.6667px]【教學開始】
    # 步驟一
    [size=14.6667px]首先,我們要先打開SRC,開啟 「NPCConversationManager.JAVA」
    [size=14.6667px]新增底下兩種方法 :

    1.      public int getBossLog2(String bossid) {
    2.         return getPlayer().getBossLog2(bossid);
    3.     }
    4.   
    5.        public void setBossLog2(String bossid) {
    6.         getPlayer().setBossLog2(bossid);
    7.     }
    複製代碼


    [size=14.6667px]紅色部分可隨意更改,但務必顏色的內容要一致。

    [size=14.6667px]「解釋」上面的內容,會用於JS方法,第一個是導出,第二個是導入。

    # 步驟二
    [size=14.6667px]打開SRC,開啟 「MapleCharacer.JAVA」
    [size=14.6667px]新增底下兩種方法 :
    1.         public int getBossLog2(String bossid) {
    2.         Connection con1 = DatabaseConnection.getConnection();
    3.         try {
    4.             int ret_count = 0;
    5.             PreparedStatement ps;
    6.             ps = con1.prepareStatement("select count(*) from bosslog2 where characterid = ? and bossid = ? ");
    7.             ps.setInt(1, id);
    8.             ps.setString(2, bossid);
    9.             ResultSet rs = ps.executeQuery();
    10.             if (rs.next())
    11.                 ret_count = rs.getInt(1);
    12.             else
    13.                 ret_count = -1;
    14.             rs.close();
    15.             ps.close();
    16.             return ret_count;
    17.         } catch (Exception Ex) {
    18.             return -1;
    19.         }
    20.     }


    21.         public void setBossLog2(String bossid) {
    22.         Connection con1 = DatabaseConnection.getConnection();
    23.         try {
    24.             PreparedStatement ps;
    25.             ps = con1.prepareStatement("insert into bosslog2 (accountid, characterid, bossid) values (?,?,?)");
    26.             ps.setInt(1, accountid);
    27.             ps.setInt(2, id);
    28.             ps.setString(3, bossid);
    29.             ps.executeUpdate();
    30.             ps.close();
    31.         } catch (Exception Ex) {
    32.         }
    33.     }
    複製代碼

    [size=14.6667px]此處請注意到,紅色部分要跟第一步的方法名稱相同,否則會出錯。
    [size=14.6667px]粉色部分為資料庫名,未來的所有資料都會存在此名稱資料庫。

    # 步驟三
    [size=14.6667px]新增一個資料庫,設定內容如下。


    [size=14.6667px]設定完後,資料庫名稱要是第二步驟,粉色的名稱,設定完後SRC才能正確連接到資料庫。


    # 步驟四
    [size=14.6667px]接下來最後一步驟,就是寫出您要的 JS 內容囉!!
    [size=14.6667px]這部分就不貼上寫法了,照著圖上做,應該不難。
    [size=14.6667px]IF會去判斷角色是不是有"DAY1"跟另一個道具,有的話就跳出 IF 的內容,
    [size=14.6667px]而玩家在最一開始,資料庫一定是沒有"DAY1"的,所以會先跳 ELSE ,
    [size=14.6667px]然後執行了"setBossLog2",並寫入"DAY1",這樣一個簡單的判斷就誕生了!!




    [size=14.6667px]謝謝大家
    共收到 0 A幣
    打賞榜
    暫無
    暫無
    暫無
    暫無
    ----
    暫無
    ----
    暫無
    ----
    暫無
    ----

    集團新軍

    Rank: 1

    28

    威望

    179

    金錢

    0

    A幣
    主題
    1
    帖子
    11
    精華
    1
    綜合社群主題發文量
    9
    電玩社群主題發文量
    0
    娛樂社群主題發文量
    0
    技術社群主題發文量
    0
    閱讀權限
    10
    註冊時間
    2019-4-17
  • TA的每日心情

    2019-7-14 21:15
  • 簽到天數: 34 天

    連續簽到: 0 天

    [LV.5]常住居民I

    恆恆恆 發表於 2019-5-17 04:40:56 | 顯示全部樓層
    請問如果沒有要設定每日刷新的話
    是在public int getBossLog2(String bossid)
    裡面把
    else
           ret_count = -1;
    刪掉嗎,不太知道要怎麼修改~~
    您需要登錄後才可以回帖 登錄 | 註冊會員

    本版積分規則

    2246

    發文

    1007

    金錢

    0

    A幣

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

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

    熱門推薦
    圖文推薦
    • 關於我們
    • 企業文化
    • 人才招聘
    • 常見問題
    • 建議反饋
    • 合作夥伴
    • 新聞媒體
    • 商家合作
    • 客戶案例
    • 產品服務
    • 聯繫我們

    小黑屋|AICL社群娛樂集團

    GMT+8, 2022-6-28 14:21 , 網路刷新 0.095564 秒 .

    歡迎來到 AICL網路社群

    版權AICL社群所有 2011-2021.

    Total:123 Today:213 Online:322