以下是取得源碼後,必須要修改後才可以編譯的程式段,若非源自日本l1j-jp則自行判斷是否要修改
1.修正:新手出生時的位置(與日方不同)
開啟檔案:l1j-jp\src\l1j\server\server\clientpackets\C_ItemUSe.java
找到:
if (itemId >= 40373 && itemId <= 40382 // 地図各種
|| itemId >= 40385 && itemId <= 40390) {
替換為:
if (itemId >= 40373 && itemId <= 40390 // 地図各種
) {
關檔與儲存
2.修正:隱谷卷無法使用
開啟檔案:l1j-jp\src\l1j\server\server\clientpackets\C_ItemUSe.java
找到:
else if (itemId == 40101) { // 隠された渓谷帰還スクロール
pc.sendPackets(new S_NPCTalkReturn(pc.getId(), "ei037")); //TODO 修正隱谷卷無法使用
}
替換為:
/*else if (itemId == 40101) { // 隠された渓谷帰還スクロール
pc.sendPackets(new S_NPCTalkReturn(pc.getId(), "ei037")); //TODO 修正隱谷卷無法使用
}*/
關檔與儲存
3.修正:留言板時間更新
開啟:l1j-jp\src\l1j\server\server\datatables\actionboardtable.java
找到:
import l1j.server.server.utils.SQLUtil;
在後面加入:
//TODO 留言板時間自動更新 by pigermin
import java.text.SimpleDateFormat;
//TODO 留言板時間自動更新 by pigermin
找到:
String fm = DateFormat.getDateTimeInstance().format(
board.getDeadline().getTime());
替換為:
/* String fm = DateFormat.getDateTimeInstance().format(
board.getDeadline().getTime()); */
//TODO 留言板時間自動更新 by pigermin
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
String fm = sdf.format(board.getDeadline().getTime());
//TODO 留言板時間自動更新 by pigermin
關檔與儲存
4.修正:盟屋時間
開啟:l1j-jp\src\l1j\server\server\datatables\housetable.java
找到:
import l1j.server.server.utils.SQLUtil;
在後面加入:
//TODO 盟屋買賣系統時間自動更新 by pigermin
import java.text.SimpleDateFormat;
//TODO 盟屋買賣系統時間自動更新 by pigermin
找到:
String fm = DateFormat.getDateTimeInstance().format(
house.getTaxDeadline().getTime());
替換為:
/* String fm = DateFormat.getDateTimeInstance().format(
house.getTaxDeadline().getTime()); */
//TODO 盟屋買賣系統時間自動更新 by pigermin
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
String fm = sdf.format(house.getTaxDeadline().getTime());
//TODO 盟屋買賣系統時間自動更新 by pigermin
關檔與儲存
5.修正:攻城戰時間
開啟:l1j-jp\src\l1j\server\server\datatables\castletable.java
找到:
import l1j.server.server.utils.SQLUtil;
在後面加入:
//TODO by linsf260 城堡攻守時間修正
import java.text.SimpleDateFormat;
//TODO by linsf260 城堡攻守時間修正
找到:
String fm = DateFormat.getDateTimeInstance().format(
castle.getWarTime().getTime());
替換為:
//TODO by linsf260 城堡攻守時間修正
/*String fm = DateFormat.getDateTimeInstance().format(
castle.getWarTime().getTime());*/
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
String fm = sdf.format(castle.getWarTime().getTime());
//TODO by linsf260 城堡攻守時間修正
關檔與儲存
6.修正編碼
開啟資料庫: etcitem
找到:
item_id 40082
修改:
locx 32831 改成 32783
locy 32838 改成 32782
mapid 8011 改成 68
show code js
2010年9月14日 星期二
l1j update project
自行更新版本及程式碼,延長程式生命週期
1.SVN
A.第一次二個目錄同時以svn取得日本原始碼
B.舊版目錄> l1j-jp
C.新版目錄> l1j-jp-new
2.流程
A.將l1j-jp-new更新至最新版本
B.以Windmerga比對二者目錄的差異,使用編碼為 shift-jis 932
C.將差異的部份,直接修改eclipse下已有的專案中相對應的檔案,使用編碼應為 utf-8 65001
D.將新增的檔案部份,進行轉碼 utf-8 65001 並放置相對應的目錄中
E.將修改過的DB匯出至l1j-jp\db\myisam中 utf-8 65001
F.將l1jserver.jar刪掉,重新以eclipse編譯完成
G.完成後將l1j-jp同步更新到最新版本與l1j-jp-new的版本相同
3.其他
A.如果建立失敗通常是漏掉程式碼、檔案編編碼格式不正確
4.Winmegre
A.設定
B.一般:自動到差異
C.比較:忽略空白處差異(選擇),忽略空白行、忽略換行字元(鉤選)
D.編碼頁 utf-8 65001 shift-jis 932
1.SVN
A.第一次二個目錄同時以svn取得日本原始碼
B.舊版目錄> l1j-jp
C.新版目錄> l1j-jp-new
2.流程
A.將l1j-jp-new更新至最新版本
B.以Windmerga比對二者目錄的差異,使用編碼為 shift-jis 932
C.將差異的部份,直接修改eclipse下已有的專案中相對應的檔案,使用編碼應為 utf-8 65001
D.將新增的檔案部份,進行轉碼 utf-8 65001 並放置相對應的目錄中
E.將修改過的DB匯出至l1j-jp\db\myisam中 utf-8 65001
F.將l1jserver.jar刪掉,重新以eclipse編譯完成
G.完成後將l1j-jp同步更新到最新版本與l1j-jp-new的版本相同
3.其他
A.如果建立失敗通常是漏掉程式碼、檔案編編碼格式不正確
4.Winmegre
A.設定
B.一般:自動到差異
C.比較:忽略空白處差異(選擇),忽略空白行、忽略換行字元(鉤選)
D.編碼頁 utf-8 65001 shift-jis 932
2010年8月27日 星期五
l1j run server
1.Config System
A.Download java, and install.
B.Download and install MySQL http://dev.mysql.com/downloads/mysql/6.0.html.
(1)Creating a database [l1jdb/database name], and set a user[database user] with password[database password] to allow connect to this database.
(2)Download and install MySQL Management Tool Navicat Lite http://www.navicat.com.tw/.
2.Server Config
A.extract l1j??db???.zip to server
B.Into [config] Folder, and open SERVER.PROJECT
(1)URL=jdbc:mysql://localhost/[database name]?useUnicode=true&characterEncoding=big5
(2)Login=[database user]
(3)Password=[database password]
(4)Modify [config] folder other args in all of project file
C.find [db] folder and SQL file, into your [l1jdb/database]
D.Open firewell default port is 2000(or other PORT)
E.run StartServer.bat and Service is active
F.Run Game
(1)Set a login tool, find LIN.BIN and copy to a new file to LIN.BIN.EXE, and send to desktop creating a shortcut
(2)Open this shortcut and modify target「"C:\???\LIN.BIN.EXE"」to「"C:\???\LIN.BIN.EXE" IP」(ex:「"C:\???\LIN.BIN.EXE" 127.0.0.1」,if your is not default port like this「"C:\???\LIN.BIN.EXE" 127.0.0.1 2001」)
2010年8月20日 星期五
自已編譯l1j
由於蠻喜歡這款遊戲的,忍不住也自已架一個,讓自已過一下當GM的癮,當然不能去作侵權的事哩。
一、環境配置
1、下載並安裝 JAVA JDK http://java.sun.com/javase/downloads/index.jsp
2、下載並安裝 SVN 軟體 http://subversion.tigris.org/
3、下載並安裝 Eclipse 編譯程式碼用軟體
二、Eclipse 配置
1、第一次啟動時,請設定 workspace 目錄
2、設定已安裝的JDK,請開啟主程式的「視窗」中的「喜好設定」,找到項目「Java」點選「已安裝的JRE」,執行「搜尋」並將目的指向JDK目錄後按完成,回到原畫面後鉤選JDK項目
3、設定「編碼」,請開啟主程式的「視窗」中的「喜好設定」,點選「一般」中的「工作區」,將文字檔編碼請選擇UTF-8
4、請開啟主程式的「視窗」中的「喜好設定」,點選「Java」的「已安裝的JRE」,再點選「編輯jdk」,執行「新增外部JAR」,將l1j-jp中lib的jar檔全加入
5、補充:新增MySQL Connectors程式庫 http://dev.mysql.com/downloads/connector/ 點選Connector/J取得最新版本(解開後將jar可放置在jdk的lib目錄下,方便取用),請開啟主程式>視窗>喜好設定>Java>已安裝的JRE>編輯jdk>新增外部JAR,將MySQL Connector加入
三、原始碼取得
1、建立目錄l1j-jp,並以滑鼠右鍵進入SVN選單,並取出l1j-jp所開發之未編譯程式 http://l1j-jp.googlecode.com/svn/trunk/ 程式至最新版本
2、將svn取出的l1j-jp程式匯至workspace下(取出後,再進入SVN選單將程式碼匯出方可使用)
3、網站參考
l1j-jp Team
Svn http://code.google.com/p/l1-jp/
Project Code Site http://code.google.com/p/l1j-jp/
Disscuz http://l1jjp.b.cmssquare.com/
WebSite http://umagonn.web.fc2.com/
line_...@hotmail.co.jp, line...@hotmail.co.jp
四、轉碼(中文化)
1、專案目錄中的config、src、db先用convertz802由日碼轉utf-8
2、將程式內的訊息中文化及伺服設置正確使用語言代號
3、接下來進行db的中文化
4、接下來進行config中文化
5、build.xml 轉碼utf-8並修改內容將shift-jis改為utf-8
6、修改config下的server檔,將characterEncoding=sjis改成big5,時區jst改為tst
7、中文化要修改到的檔案(參考)
\l1j-jp\src\l1j\server\Config.java
\l1j-jp\src\l1j\server\server\Announcements.java
\l1j-jp\src\l1j\server\server\ClientThread.java
\l1j-jp\src\l1j\server\server\GMCommands.java
\l1j-jp\src\l1j\server\server\GameServer.java
\l1j-jp\src\l1j\server\server\HomeTownTimeController.java
\l1j-jp\src\l1j\server\server\IdFactory.java
\l1j-jp\src\l1j\server\server\Logins.java
\l1j-jp\src\l1j\server\server\Shutdown.java
\l1j-jp\src\l1j\server\server\clientpackets\C_AuthLogin.java
\l1j-jp\src\l1j\server\server\clientpackets\C_BoardWrite.java
\l1j-jp\src\l1j\server\server\clientpackets\C_Chat.java
\l1j-jp\src\l1j\server\server\clientpackets\C_CreateChar.java
\l1j-jp\src\l1j\server\server\clientpackets\C_ItemUSe.java
\l1j-jp\src\l1j\server\server\clientpackets\C_LoginToServer.java
\l1j-jp\src\l1j\server\server\clientpackets\C_PickUpItem.java
\l1j-jp\src\l1j\server\server\clientpackets\C_SelectList.java
\l1j-jp\src\l1j\server\server\clientpackets\C_Shop.java
\l1j-jp\src\l1j\server\server\command\L1Commands.java
\l1j-jp\src\l1j\server\server\command\executor\L1AccountBanKick.java
\l1j-jp\src\l1j\server\server\command\executor\L1Action.java
\l1j-jp\src\l1j\server\server\command\executor\L1Adena.java
\l1j-jp\src\l1j\server\server\command\executor\L1AllBuff.java
\l1j-jp\src\l1j\server\server\command\executor\L1BanIp.java
\l1j-jp\src\l1j\server\server\command\executor\L1Buff.java
\l1j-jp\src\l1j\server\server\command\executor\L1CastGfx.java
\l1j-jp\src\l1j\server\server\command\executor\L1ChangeWeather.java
\l1j-jp\src\l1j\server\server\command\executor\L1Chat.java
\l1j-jp\src\l1j\server\server\command\executor\L1ChatNG.java
\l1j-jp\src\l1j\server\server\command\executor\L1CreateItem.java
\l1j-jp\src\l1j\server\server\command\executor\L1CreateItemSet.java
\l1j-jp\src\l1j\server\server\command\executor\L1DeleteGroundItem.java
\l1j-jp\src\l1j\server\server\command\executor\L1Describe.java
\l1j-jp\src\l1j\server\server\command\executor\L1Favorite.java
\l1j-jp\src\l1j\server\server\command\executor\L1GMRoom.java
\l1j-jp\src\l1j\server\server\command\executor\L1GfxId.java
\l1j-jp\src\l1j\server\server\command\executor\L1HomeTown.java
\l1j-jp\src\l1j\server\server\command\executor\L1HpBar.java
\l1j-jp\src\l1j\server\server\command\executor\L1InsertSpawn.java
\l1j-jp\src\l1j\server\server\command\executor\L1InvGfxId.java
\l1j-jp\src\l1j\server\server\command\executor\L1Invisible.java
\l1j-jp\src\l1j\server\server\command\executor\L1Kick.java
\l1j-jp\src\l1j\server\server\command\executor\L1Kill.java
\l1j-jp\src\l1j\server\server\command\executor\L1Level.java
\l1j-jp\src\l1j\server\server\command\executor\L1LevelPresent.java
\l1j-jp\src\l1j\server\server\command\executor\L1Move.java
\l1j-jp\src\l1j\server\server\command\executor\L1PartyRecall.java
\l1j-jp\src\l1j\server\server\command\executor\L1Poly.java
\l1j-jp\src\l1j\server\server\command\executor\L1PowerKick.java
\l1j-jp\src\l1j\server\server\command\executor\L1Present.java
\l1j-jp\src\l1j\server\server\command\executor\L1Recall.java
\l1j-jp\src\l1j\server\server\command\executor\L1ReloadTrap.java
\l1j-jp\src\l1j\server\server\command\executor\L1ResetTrap.java
\l1j-jp\src\l1j\server\server\command\executor\L1Ress.java
\l1j-jp\src\l1j\server\server\command\executor\L1SKick.java
\l1j-jp\src\l1j\server\server\command\executor\L1ShowTrap.java
\l1j-jp\src\l1j\server\server\command\executor\L1Shutdown.java
\l1j-jp\src\l1j\server\server\command\executor\L1SpawnCmd.java
\l1j-jp\src\l1j\server\server\command\executor\L1Speed.java
\l1j-jp\src\l1j\server\server\command\executor\L1Status.java
\l1j-jp\src\l1j\server\server\command\executor\L1Summon.java
\l1j-jp\src\l1j\server\server\command\executor\L1ToPC.java
\l1j-jp\src\l1j\server\server\command\executor\L1ToSpawn.java
\l1j-jp\src\l1j\server\server\command\executor\L1Visible.java
\l1j-jp\src\l1j\server\server\command\executor\L1Who.java
\l1j-jp\src\l1j\server\server\datatables\AuctionBoardTable.java
\l1j-jp\src\l1j\server\server\datatables\HouseTable.java
\l1j-jp\src\l1j\server\server\datatables\NPCTalkDataTable.java
\l1j-jp\src\l1j\server\server\datatables\NpcActionTable.java
\l1j-jp\src\l1j\server\server\datatables\NpcSpawnTable.java
\l1j-jp\src\l1j\server\server\datatables\PolyTable.java
\l1j-jp\src\l1j\server\server\datatables\SkillsTable.java
\l1j-jp\src\l1j\server\server\datatables\SpawnTable.java
\l1j-jp\src\l1j\server\server\datatables\SprTable.java
\l1j-jp\src\l1j\server\server\datatables\UBSpawnTable.java
\l1j-jp\src\l1j\server\server\datatables\UBTable.java
\l1j-jp\src\l1j\server\server\datatables\WeaponSkillTable.java
\l1j-jp\src\l1j\server\server\model\AcceleratorChecker.java
\l1j-jp\src\l1j\server\server\model\Instance\L1PcInstance.java
\l1j-jp\src\l1j\server\server\model\Instance\L1SummonInstance.java
\l1j-jp\src\l1j\server\server\model\Instance\L1TeleporterInstance.java
\l1j-jp\src\l1j\server\server\model\L1BossCycle.java
\l1j-jp\src\l1j\server\server\model\L1Clan.java
\l1j-jp\src\l1j\server\server\model\L1DeleteItemOnGround.java
\l1j-jp\src\l1j\server\server\model\L1Magic.java
\l1j-jp\src\l1j\server\server\model\L1PcInventory.java
\l1j-jp\src\l1j\server\server\model\L1UltimateBattle.java
\l1j-jp\src\l1j\server\server\model\item\L1TreasureBox.java
\l1j-jp\src\l1j\server\server\model\map\L1WorldMap.java
\l1j-jp\src\l1j\server\server\serverpackets\S_WhoCharinfo.java
五、編譯程式
1、開啟 Eclipse,檔案>新建>專案>Java專案,選擇>從現有的資源建立專案>設置好名稱l1j-jp後確認
2、在專案根目錄下的 build.xml 檔點選右鍵>執行為>Ant 建置 Alt+Shift+....進行編譯
3、完成後會在專案的根目錄下的build目錄下產生l1jserver.jar檔了
六、封裝
1、清除mapcache
2、DB匯出
3、壓成檔案發佈或上傳自專用的svn發佈
4、傳至伺服器執行ServerStart.bat開服
訂閱:
文章 (Atom)