
【前言】
道具兌換是非常基本的入門指令,基本只需參考前人的設定,
就可以做出功能相同的JS,但是,如果要限制玩家僅能領取一次呢? 這邊所用的是透過"每日領取"的設計技巧,做出全新變化。 【優點】
- 設定簡單,更改條件容易。
- BUG出線機率極低。
- 玩家兌換狀況清楚明瞭。
- 功能彈性,可運用許多不同 JS 判斷寫法。
[size=14.6667px]【教學開始】
# 步驟一
[size=14.6667px]首先,我們要先打開SRC,開啟 「NPCConversationManager.JAVA」
[size=14.6667px]新增底下兩種方法 :
- public int getBossLog2(String bossid) {
- return getPlayer().getBossLog2(bossid);
- }
-
- public void setBossLog2(String bossid) {
- getPlayer().setBossLog2(bossid);
- }
複製代碼
[size=14.6667px]紅色部分可隨意更改,但務必顏色的內容要一致。
[size=14.6667px]「解釋」上面的內容,會用於JS方法,第一個是導出,第二個是導入。
# 步驟二
[size=14.6667px]打開SRC,開啟 「MapleCharacer.JAVA」
[size=14.6667px]新增底下兩種方法 : - 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) {
- }
- }
複製代碼
[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]謝謝大家
|