- Back to Home »
- 楓之谷教學 »
- 【楓之谷教學】遊戲中是如何透過NPC改寫資料表 ?
【前言】
相信想再跟深入SRC的朋友,一定都很好奇,到底是怎麼透過NPC改寫資料庫的資料 ? 他的邏輯是甚麼 ? 原理是甚麼 ? 在觀看本篇教學前,我預設各位都有相當的JAVA觀念基礎,因為如無基礎,會不理解為什麼語法這樣做,會有這樣的效果。
【教學開始】
綠色 : 顯示介紹,以及選項。
紅色 : 判斷是否 getBossLog 裡是否小於 1 ,與金錢是否小於等於 2147483647 - 5000000相減後的數字。
藍色 : 執行語法內容。
其實還能更詳細說明,但這不是本篇主角,本次的主角為 setBossLog ,各位可以試著搜尋自己SRC的 NPCConversationManager.JAVA 、 MapleCharacter.JAVA,相信會有這個方法,現在就來讓各位知道這個方法是如何運作的。
綠色 : 啟動並且連接資料庫
淺藍 : 說明要改寫的資料表,改寫內容有 accountid, characterid, bossid ,內容未知 (?,?,?),並將整串內容指定為 "ps"
粉紅 : 此處直接由上而下說明
ps.setInt(1, accountid); = 告知 ps 內容裡的 accountid ,要更換的內容。
ps.setInt(2, id); = 告知 ps 內容裡的 characterid,要更換的內容。
ps.setString(3, bossid); = 告知 ps 內容裡的 bossid ,要更換的內容。
寫入後會長這個樣子。
但各位一定有發現,第三個更改項目寫法稍有不同 ? 他是以 setString 為開頭,那為什麼要這樣寫呢 ? 各位可以在一次本段方法的本體 " setBossLog(String bossid) ", setBossLog裡會帶著被寫入的參數 String bossid ,那麼,這個參數在哪邊 ?
接著,請打開 NPCConversationManager.JAVA 這邊就會告訴你 String bossid 裡面的參數會帶入甚麼,首先,我們都知道 NPCConversationManager 是 JS 腳本中所運用到的所有方法的方法集,你要改寫JS,要用到的所有語法都是在NPCConversationManager所能找到,今天我們置入了 setBossLog 這個方法後,接下來就能透過JS操控拉~~
請各位在看一次JS,有沒有發現到紅框處的 setBossLog('VIPDAY2'); ,各位有看到 "()"裡面被置入 VIPDAY2 ? 也就是說,String bossid 這個參數會被寫入 'VIPDAY2' ,而改寫好的setBossLog因為加了參數所以他變完整了,因此未知的內容 ps.setString(3, bossid);,現在知道裡面的 bossid 要被寫入 VIPDAY2,整段方法執行完成。
以上就是簡單的邏輯介紹,語法不難,程式設計師之所以強,是因為他們有強大的邏輯力,這個概念可以運用在每個方法中,寫出一個方法就是單純的告訴JAVA,如果我執行這件事,那麼他該做什麼,我們下達指令給機器,就是這樣。