本次教學以l1jtw(rev378)為基礎,
首先呢,我們新增一個GM指令,
我是新增refdrop,L1RefDropList到資料庫裡,
原始碼的部分到l1j.server.server.command.executor新增一個L1RefDropList,
內容還蠻簡單的,主要就是執行伺服器初始化時的DropTable.getInstance(),
public void execute(L1PcInstance pc, String cmdName, String arg) {
try {
pc.sendPackets(new S_SystemMessage("更新掉落清單。"));
DropTable.getInstance();//掉落機率
pc.sendPackets(new S_SystemMessage("掉落清單更新完成。"));
}
catch (Exception e) {
pc.sendPackets(new S_SystemMessage("輸入錯誤。"));
}
}內容大概像這樣。
接下來就是l1j.server.server.datatables裡的DropTable,
因為_droplists要讓他的內容可變,所以去掉final並加上static,
public static DropTable getInstance() {
if (_instance == null) {
_instance = new DropTable();
}else{
_droplists.clear();
_instance = new DropTable();
}
return _instance;
}instance的地方改成像這個樣子,
else的部分是先將droplists這個動態陣列清除後重新加入資料。
最後小叮嚀,
這個方法是可讓droplist裡的資料跟遊戲即時同步的,
不過已經產生的怪物其掉寶資料還是不變的,
也就是要等到怪物刷新後或者使用spwan指令新增怪物,
掉寶資料才會是修改後的新資料。99天堂1游戏发布站转于99NETS