show code js

顯示具有 l1j java 標籤的文章。 顯示所有文章
顯示具有 l1j java 標籤的文章。 顯示所有文章

2010年9月14日 星期二

l1j must fix to run

以下是取得源碼後,必須要修改後才可以編譯的程式段,若非源自日本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

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

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開服