Coisas importantes na source
Pode ser compilado para sistemas 32 ou 64 bits você vai ter que fazer ajustes no makefile e resolver os problemas que aparecerem.
PACKAGE’S LIST : ( Estou usando o Ubuntu-20.04 (source 152), os nomes dos packages ou comandos podem mudar de acordo com a Distro que você está usando ).
Os pacotes são os mesmo usados para rodar o servidor, adicionando somente alguns para fins de compilação.
sudo apt-get install build-essential
sudo apt-get install gcc-multilib
sudo apt-get install g++-multilib
sudo apt-get install dos2unix
sudo apt-get install default-jdk
sudo apt-get install libxml-dom-perl
sudo apt-get install libxml2-dev
sudo apt-get install libpcre3-dev
sudo apt-get install libssl-dev
sudo apt-get install libcrypto++-dev
sudo apt-get install ant
sudo apt-get install libsaxonhe-java
sudo apt-get install libxslt1-dev
sudo apt-get install libreadline-dev
sudo apt-get install python
sudo dpkg --add-architecture i386
sudo apt-get install libssl1.0-dev:i386
download the “libssl1.0.0_1” package
wget [Conteúdo Oculto]
sudo dpkg -i *.deb
sudo apt-get update
sudo apt-get upgrade
apt --fix-broken install
sudo apt-get install zlib1g:i386
sudo apt-get install libncurses5:i386
sudo apt-get install libssl-dev:i386
sudo apt-get install libxml2:i386
sudo apt-get install libpcre3-dev:i386
sudo apt-get install libxml2-dev:i386
sudo apt-get install libc6:i386
sudo apt-get install libstdc++6:i386
sudo apt-get update
sudo apt-get upgrade
Primeiro de tudo converter os arquivos para UNIX :
pwsource/ = ./fixsrc.sh ( essa é minha pasta raiz “pwsource” você deve colacar o script dentro da sua pasta raiz )
#!/bin/bash
find . -name "*.h" -exec dos2unix {} \;
find . -name "*.hpp" -exec dos2unix {} \;
find . -name "*.hxx" -exec dos2unix {} \;
find . -name "*.cpp" -exec dos2unix {} \;
find . -name "*.cxx" -exec dos2unix {} \;
find . -name "Makefile" -exec dos2unix {} \;
chmod -R 0755 . ; chmod -R 0755 *
chown -R root:root ; chown -R root:root *
share :
pasta e arquivos = common , io , mk, perf, rpc, rpcgen, storage
criar um link dinâmico para a pasta “cnet” ou copiar diretamente os arquivos.
cnet :
gfaction/operations/ = ./opgen.pl opgen.xml ( cria arquivos protocol’s)
cnet/ = ./rpcgen rpcalls.xml ( cria arquivos protocol’s )
gamed/ = cria static lib libgsPro2.a
gdbclient/ = cria static lib libdbCli.a
logclient/ = cria static lib liblogCli.a
io/ = cria static lib libgsio.a
storage/ = cria static lib libdb.a ( necessário instalar o Berkeley DB 4.2 ( por algum motivo as pessoas não usam essa static lib para compilar a gs, outros jogos da Wanmei usam isso quando compila a gs. ) )
gacd/ = cria gacd
gamedbd/ = cria gamedbd
gauthd/ = cria gauthd substitui a authd feita em java .
gdeliveryd/ = cria gdeliveryd
gfaction/ = cria gfaction
glinkd/ = cria glinkd
logservice/ = cria logservice
uniquenamed/ = cria uniquenamed
gacdclient/ = ????
gclient/ = ????
cskill :
skill/ = cria static lib libskill.a
gen/ = ant compile cria skilleditor ( alterar a versão do java no “build.xml” para sua versão instalada)
gen/ = ant -buildfile build.xml cria gen.jar ( skilleditor e gen.jar trabalham juntos , em teoria conecta num banco de dados)
gen/ = java -jar gen.jar ( executa o programa )
Obs. : Existe uma relação desse programa com o rpcalls.xml , existe uma função no xmlcoder.pl para verificar a versão do rpcalls.xml ele tenta acessar o bando de dados.
iolib :
copiar as statics libs ( arquivos *.a ) da pasta “cnet” para a “iolib”.
cgame:
libcommon/ = cria static lib libcommon. a ( não é necessário copiar para “iolib”)
cgame/ = cria gs e a dynamic lib libtask.so
Extra:
Não tem uma utilidade real, porém o arquivo “rpcalls.xsl” serve para gerar uma versão do “rpcalls.xml” em “.html”
Gera um HTML com link para os arquivos.
cnet/ = java -jar /usr/share/java/Saxon-HE.jar -s:rpcalls.xml -xsl:rpcalls.xsl -o:nome.html cria nome.html (“nome” é o nome do arquivo html, você pode usar qualquer um)
OBS. :
A pasta “share” existem muitos programas em java, porém não são necessários para compilar a source mas devem ter alguma utilidade, não me aprofundei mais fiquem a vontade para descobrir suas funcionalidades.