【前言】 道具兌換是非常基本的入門指令,基本只需參考前人的設定,
就可以做出功能相同的JS,但是,如果要限制玩家僅能領取一次呢? 這邊所用的是透過"每日領取"的設計技巧,做出全新變化。 【優點】
- 設定簡單,更改條件容易。
- BUG出線機率極低。
- 玩家兌換狀況清楚明瞭。
- 功能彈性,可運用許多不同 JS 判斷寫法。
【教學開始】 # 步驟一 首先,我們要先打開SRC,開啟 「NPCConversationManager.JAVA」 新增底下兩種方法 :
public int getBossLog2(String bossid) { return getPlayer().getBossLog2(bossid); } public void setBossLog2(String bossid) { getPlayer().setBossLog2(bossid); }
紅色部分可隨意更改,但務必顏色的內容要一致。
「解釋」上面的內容,會用於JS方法,第一個是導出,第二個是導入。
# 步驟二 打開SRC,開啟 「MapleCharacer.JAVA」 新增底下兩種方法 :
public int getBossLog2(String bossid) { Connection con1 = DatabaseConnection.getConnection(); try { int ret_count = 0; PreparedStatement ps; ps = con1.prepareStatement("select count(*) from bosslog2 where characterid = ? and bossid = ? "); ps.setInt(1, id); ps.setString(2, bossid); ResultSet rs = ps.executeQuery(); if (rs.next()) ret_count = rs.getInt(1); else ret_count = -1; rs.close(); ps.close(); return ret_count; } catch (Exception Ex) { return -1; } }
public void setBossLog2(String bossid) { Connection con1 = DatabaseConnection.getConnection(); try { PreparedStatement ps; ps = con1.prepareStatement("insert into bosslog2 (accountid, characterid, bossid) values (?,?,?)"); ps.setInt(1, accountid); ps.setInt(2, id); ps.setString(3, bossid); ps.executeUpdate(); ps.close(); } catch (Exception Ex) { } } 此處請注意到,紅色部分要跟第一步的方法名稱相同,否則會出錯。 粉色部分為資料庫名,未來的所有資料都會存在此名稱資料庫。
# 步驟三 新增一個資料庫,設定內容如下。
設定完後,資料庫名稱要是第二步驟,粉色的名稱,設定完後SRC才能正確連接到資料庫。
# 步驟四 接下來最後一步驟,就是寫出您要的 JS 內容囉!! 這部分就不貼上寫法了,照著圖上做,應該不難。 IF會去判斷角色是不是有"DAY1"跟另一個道具,有的話就跳出 IF 的內容, 而玩家在最一開始,資料庫一定是沒有"DAY1"的,所以會先跳 ELSE , 然後執行了"setBossLog2",並寫入"DAY1",這樣一個簡單的判斷就誕生了!!
謝謝大家
|