硬件环境
角色 | 类型 | 操作系统 | 配置 |
---|---|---|---|
Server | VMWare虚拟机 | Windows 7 | 内存:2GB 磁盘:20GB |
Client | VMWare虚拟机 | Ubuntu 16.04 TLS | 内存:1GB 磁盘:30GB |
软件环境
Server节点配置
- 网络配置
# vim /etc/network/interfaces
auto ens33
iface ens33 inet static
address 192.168.30.145
netmask 255.255.255.0
gateway 192.168.30.2
dns-nameserver 114.114.114.114
- 软件安装
### 添加中文支持
# apt install language-pack-zh-hans
### 安装eclipse
# apt install eclipse
$ cd ~/workspace/
### 下载java代码(http://pan.baidu.com/s/1sljPie5)
$ unzip Sungod_V8.zip
$ mv Sungod_V8 Lineage
### 安装PyCharm
$ tar zxf pycharm-professional-2016.1.2.tar.gz
$ pycharm-2016.1.2/bin/pycharm.sh
### 安装git
# apt install git
### 下载代码
$ git clone git@github.com:silvermagic/Lineage.git -b python
### 安装mysql
# apt install mysql-server
### 修改绑定地址bind-address = 0.0.0.0
# vim /etc/mysql/mysql.conf.d/mysqld.cnf
# systemctl restart mysql
### 导入数据库
$ myql -u root -p
mysql> set password for root@localhost = password('root');
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
mysql> create database l1jdb default character set gbk collate gbk_chinese_ci;
### 在windows下直接运行mysql下的mysql.exe,然后使用Navicat连接本地和Server节点的数据库,修改本地l1jdb数据库的log_chat表的datetime默认值为default,然后使用数据传输将本地l1jdb数据导入到Server服务器
### 安装python运行环境
# apt install python-pip
# pip install sqlalchemy
# pip install pymysql
- Java源码修改
############ 修改点一 ############
### 编辑Sungod_V8/src/META-INF/MANIFEST.MF的Class-Path: lib/c3p0-0.9.1.1.jar lib/mysql-connector-java-5.1.5-bin.jar lib/javolution.jar
############ 修改点二 ############
### 修改ClientThread.java的run方法,key使用固定值
//String keyHax = Integer.toHexString((int) (Math.random() * 2147483647) + 1);
//int key = Integer.parseInt(keyHax, 16);
int key = 2147483647;
############ 修改点三 ############
### 修改ClientThread.java的run方法,添加日志打印
byte data[] = null;
try {
data = readPacket();
} catch (Exception e) {
break;
}
System.out.println("[Recv C]\n" + new ByteArrayUtil(data).dumpToString());
############ 修改点四 ############
### 修改ClientThread.java的sendPacket方法,添加日志打印
abyte0 = UByte8.fromArray(ac);
System.out.println("[Send C]\n" + new ByteArrayUtil(abyte0).dumpToString());
- Java导入项目
File->Import
Existing Projects into Workspace
Select root directory(Browse选择本地Lineage目录)
最后选择完成
- Java项目编译
JRE System Library(右键)-> Build Path -> Configure Build Path
build.xml(右键)-> Run As -> 1 Ant Build
- Java项目运行
#
- Python项目导入
使用Pycharm打开对应项目目录即可
- Python项目运行
Server.py(右键)-> Run 'Server'
Client节点配置
- 下载客户端代码
- 生成变档
- 拷贝文件到登入器目录下
- 拷贝登入器目录文件到Client节点的天堂目录下
- 执行吃档程序
- 设置新的登入器
错误处理
### Pycharm启动告警
###
Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap"
Gtk-WARNING **: Unable to locate theme engine in module_path: "adwaita"
Gtk-Message: Failed to load module "canberra-gtk-module"
###
### 解决办法
###
# apt install gtk2-engines-pixbuf gnome-themes-standard libcanberra-gtk-module