Ir para conteúdo
  • Cadastre-se

Posts Recomendados

@luanluciano93  

Seria bom se você conseguir fazer uma video aula compilando ela no linux(qualquer versão),assim resolveria 80% dos problemas em relação a compilação de falar que não deu certo,eu ainda não tentei por falta de um S.O linux(falta de espaço HD),mas ja compilei ela para windows 32x pelo DEV e foi 100%...Faz uma video aula pra gente,apesar de existir algumas,parece que cada sources tem seus truques,etc.

 

@Coul, acabei de compilar essa source no Ubuntu 14.04 64 bits. Tive que arrumar alguns erros. Estou montando um tutorial pra postar aqui na thread pra contribuir. Postarei também a distro compilada para quem quiser. 

Link para o post
Compartilhar em outros sites
  • Respostas 176
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Olá pessoal, tive a iniciativa de criar esse tópico para atualizar e otimizar as sources do TFS 0.4 DEV que é uma das mais usadas no mundo do otserv. Conteúdo totalmente gratuito e pretendemos melhora

@Coul e @luanluciano93, como havia dito, consegui compilar a distro no Ubuntu Server 14.04. Agora que finalmente coloquei meu ot no ar e estou com um tempinho, vou dizer o que tiver que fazer:    Pr

Tem que compilar com o visual studio pra fucionar 64bit fix para o disband: https://github.com/fir3element/3884/commit/34a1746f64568471504ec0ee5e1adf566e578961

Posted Images

@Coul, acabei de compilar essa source no Ubuntu 14.04 64 bits. Tive que arrumar alguns erros. Estou montando um tutorial pra postar aqui na thread pra contribuir. Postarei também a distro compilada para quem quiser. 

Poxa que maravilha seria muito bom amigo!

Também estou apanhando aqui,eu instalei o 14.04 aqui e removi  porque nao cosegui compilar,entao instalei o 12.04 para tentar e ate agora so quebrando a cabeça ,kkkkk

 

 

_____Edit______

 

Aewww depois de quebrar a cabeça,e uma ajudinha do OneShot e Stian,consegui compilar no Ubuntu 12.04!!

 

swze6v.png

Editado por Lyon (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Qual é Essa Virtual Machine que você Usa Lyon?

Tentei Compilar aqui pra windows 64bit não funfo não! :(

Cade Distro 64bit? Please! :(

"Ainda que eu ande pelo vale da sombra da morte, não temerei mal algum, pois tu estás comigo. Salmos 23:4"

 

Link para o post
Compartilhar em outros sites

Qual é Essa Virtual Machine que você Usa Lyon?

Tentei Compilar aqui pra windows 64bit não funfo não! :(

Cade Distro 64bit? Please! :(

Na verdade nao eh virtualizaçao,instalei em dual boot.

Eu tambem compilei no windows mas era 32bits,usando o Dev cpp do stian e foi de primeira.

Link para o post
Compartilhar em outros sites

@luanluciano93  

Seria bom se você conseguir fazer uma video aula compilando ela no linux(qualquer versão),assim resolveria 80% dos problemas em relação a compilação de falar que não deu certo,eu ainda não tentei por falta de um S.O linux(falta de espaço HD),mas ja compilei ela para windows 32x pelo DEV e foi 100%...Faz uma video aula pra gente,apesar de existir algumas,parece que cada sources tem seus truques,etc.

 

@Coul e @luanluciano93, como havia dito, consegui compilar a distro no Ubuntu Server 14.04. Agora que finalmente coloquei meu ot no ar e estou com um tempinho, vou dizer o que tiver que fazer: 

 

Primeiramente, falta a dependência da libcrypto++, que pode ser instalada com o comando: sudo apt-get install libcrypto++.

 

Depois, removi o pacote liblua5.1-sql-mysql que o dono do tópico manda instalar. Esse pacote não existe no Ubuntu Server 14.04.

 

Ai apareceu um problema bem dos brabos. O Ubuntu 14.04 usa uma versão nova da biblioteca boost, a qual deprecou o boost filesystem 2 e tem suporte somente ao boost filesystem 3. E adivinha em qual versão a source está? Na 2. Então eu precisei editar os arquivos luascript.cpp accountmanager.cpp, procurando por std::string s = it->path().filename(); e substituindo por std::string s = it->path().filename().string();

 

A partir dai, a única coisa diferente que fiz foi no comando de configuração, que eu usei ./configure --enable-mysql --enable-server-diag para poder usando o comando /serverdiag com meu God. 

 

Pra quem quiser então, segue a distro compilada por mim, em Ubuntu Server 14.04 64 bits, e com as flags mencionadas acima (não tenho certeza se funcionaria em outros Linux e definitivamente nem adianta tentar se for 32 bits): https://mega.co.nz/#!Ql1jEK6L!ez8HoC-LS4n0n_QiF6zR4zZahYFX6dGGoY-55S-r1Vg

 

EDIT: A propósito, estou com mais de 4 dias de uptime nessa distro, sem cair.

Editado por douglasamata (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

@Coul e @luanluciano93, como havia dito, consegui compilar a distro no Ubuntu Server 14.04. Agora que finalmente coloquei meu ot no ar e estou com um tempinho, vou dizer o que tiver que fazer: 

 

Primeiramente, falta a dependência da libcrypto++, que pode ser instalada com o comando: sudo apt-get install libcrypto++.

 

Depois, removi o pacote liblua5.1-sql-mysql que o dono do tópico manda instalar. Esse pacote não existe no Ubuntu Server 14.04.

 

Ai apareceu um problema bem dos brabos. O Ubuntu 14.04 usa uma versão nova da biblioteca boost, a qual deprecou o boost filesystem 2 e tem suporte somente ao boost filesystem 3. E adivinha em qual versão a source está? Na 2. Então eu precisei editar os arquivos luascript.cpp accountmanager.cpp, procurando por std::string s = it->path().filename(); e substituindo por std::string s = it->path().filename().string();

 

A partir dai, a única coisa diferente que fiz foi no comando de configuração, que eu usei ./configure --enable-mysql --enable-server-diag para poder usando o comando /serverdiag com meu God. 

 

Pra quem quiser então, segue a distro compilada por mim, em Ubuntu Server 14.04 64 bits, e com as flags mencionadas acima (não tenho certeza se funcionaria em outros Linux e definitivamente nem adianta tentar se for 32 bits): https://mega.co.nz/#!Ql1jEK6L!ez8HoC-LS4n0n_QiF6zR4zZahYFX6dGGoY-55S-r1Vg

 

EDIT: A propósito, estou com mais de 4 dias de uptime nessa distro, sem cair.

Obrigado fera!Legal saber que esta bem estável!Boa sorte ae.

 

Então nas sources basta trocar std::string s = it->path().filename();  por std::string s = it->path().filename().string();  dentro do luascript.cpp accountmanager.cpp ?

Editado por Coul (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Obrigado fera!Legal saber que esta bem estável!Boa sorte ae.

 

Então nas sources basta trocar std::string s = it->path().filename();  por std::string s = it->path().filename().string();  dentro do luascript.cpp accountmanager.cpp ?

 

Isso. Na source é só substituir todas as ocorrências disso ai nos dois arquivos. Não esqueça de instalar o pacote libcrypto++ também.

Link para o post
Compartilhar em outros sites

alguem poderia ajuda quando fui compilar deu esse erro 

 

em ubuntu-12.04

 

otserv.cpp: In function 'void signalHandler(int32_t)':
otserv.cpp:184:8: error: 'SIGHUP' was not declared in this scope
otserv.cpp:189:8: error: 'SIGTRAP' was not declared in this scope
otserv.cpp:193:8: error: 'SIGCHLD' was not declared in this scope
otserv.cpp:197:8: error: 'SIGUSR1' was not declared in this scope
otserv.cpp:202:8: error: 'SIGUSR2' was not declared in this scope
otserv.cpp:206:8: error: 'SIGCONT' was not declared in this scope
otserv.cpp:211:8: error: 'SIGQUIT' was not declared in this scope
otserv.cpp:216:8: error: 'SIGTERM' was not declared in this scope
otserv.cpp: In function 'int main(int, char**)':
otserv.cpp:277:19: error: aggregate 'main(int, char**)::sigaction sigh' has incomplete type and cannot be defined
otserv.cpp:278:20: error: 'SIG_IGN' was not declared in this scope
otserv.cpp:281:27: error: 'sigemptyset' was not declared in this scope
otserv.cpp:282:12: error: 'SIGPIPE' was not declared in this scope
otserv.cpp:282:32: error: invalid use of incomplete type 'struct main(int, char**)::sigaction'
otserv.cpp:277:9: error: forward declaration of 'struct main(int, char**)::sigaction'
otserv.cpp:285:9: error: 'SIGHUP' was not declared in this scope
otserv.cpp:285:30: error: 'signal' was not declared in this scope
otserv.cpp:286:9: error: 'SIGTRAP' was not declared in this scope
otserv.cpp:287:9: error: 'SIGCHLD' was not declared in this scope
otserv.cpp:288:9: error: 'SIGUSR1' was not declared in this scope
otserv.cpp:289:9: error: 'SIGUSR2' was not declared in this scope
otserv.cpp:290:9: error: 'SIGCONT' was not declared in this scope
otserv.cpp:291:9: error: 'SIGQUIT' was not declared in this scope
otserv.cpp:292:9: error: 'SIGTERM' was not declared in this scope
make[1]: *** [otserv.o] Error 1
make[1]: *** Waiting for unfinished jobs....
mv -f .deps/npc.Tpo .deps/npc.Po
make[1]: Leaving directory `/otserv/trunk'
make: *** [all] Error 2
root@localhost:/otserv/trunk# otserv.cpp: In function 'void signalHandler(int32_t)':
-bash: otserv.cpp:: command not found
root@localhost:/otserv/trunk# otserv.cpp:184:8: error: 'SIGHUP' was not declared in this scope
-bash: otserv.cpp:184:8:: command not found
root@localhost:/otserv/trunk# otserv.cpp:189:8: error: 'SIGTRAP' was not declared in this scope
-bash: otserv.cpp:189:8:: command not found
root@localhost:/otserv/trunk# otserv.cpp:193:8: error: 'SIGCHLD' was not declared in this scope
-bash: otserv.cpp:193:8:: command not found
root@localhost:/otserv/trunk# otserv.cpp:197:8: error: 'SIGUSR1' was not declared in this scope
-bash: otserv.cpp:197:8:: command not found
root@localhost:/otserv/trunk# otserv.cpp:202:8: error: 'SIGUSR2' was not declared in this scope
-bash: otserv.cpp:202:8:: command not found
root@localhost:/otserv/trunk# otserv.cpp:206:8: error: 'SIGCONT' was not declared in this scope
-bash: otserv.cpp:206:8:: command not found
root@localhost:/otserv/trunk# otserv.cpp:211:8: error: 'SIGQUIT' was not declared in this scope
-bash: otserv.cpp:211:8:: command not found
root@localhost:/otserv/trunk# otserv.cpp:216:8: error: 'SIGTERM' was not declared in this scope
-bash: otserv.cpp:216:8:: command not found
root@localhost:/otserv/trunk# otserv.cpp: In function 'int main(int, char**)':
-bash: otserv.cpp:: command not found
root@localhost:/otserv/trunk# otserv.cpp:277:19: error: aggregate 'main(int, char**)::sigaction sigh' has incomplete type and cannot be defined
-bash: otserv.cpp:277:19:: command not found
root@localhost:/otserv/trunk# otserv.cpp:278:20: error: 'SIG_IGN' was not declared in this scope
-bash: otserv.cpp:278:20:: command not found
root@localhost:/otserv/trunk# otserv.cpp:281:27: error: 'sigemptyset' was not declared in this scope
-bash: otserv.cpp:281:27:: command not found
root@localhost:/otserv/trunk# otserv.cpp:282:12: error: 'SIGPIPE' was not declared in this scope
-bash: otserv.cpp:282:12:: command not found
root@localhost:/otserv/trunk# otserv.cpp:282:32: error: invalid use of incomplete type 'struct main(int, char**)::sigaction'
-bash: otserv.cpp:282:32:: command not found
root@localhost:/otserv/trunk# otserv.cpp:277:9: error: forward declaration of 'struct main(int, char**)::sigaction'
-bash: otserv.cpp:277:9:: command not found
root@localhost:/otserv/trunk# otserv.cpp:285:9: error: 'SIGHUP' was not declared in this scope
-bash: otserv.cpp:285:9:: command not found
root@localhost:/otserv/trunk# otserv.cpp:285:30: error: 'signal' was not declared in this scope
-bash: otserv.cpp:285:30:: command not found
root@localhost:/otserv/trunk# otserv.cpp:286:9: error: 'SIGTRAP' was not declared in this scope
-bash: otserv.cpp:286:9:: command not found
root@localhost:/otserv/trunk# otserv.cpp:287:9: error: 'SIGCHLD' was not declared in this scope
-bash: otserv.cpp:287:9:: command not found
root@localhost:/otserv/trunk# otserv.cpp:288:9: error: 'SIGUSR1' was not declared in this scope
-bash: otserv.cpp:288:9:: command not found
root@localhost:/otserv/trunk# otserv.cpp:289:9: error: 'SIGUSR2' was not declared in this scope
-bash: otserv.cpp:289:9:: command not found
root@localhost:/otserv/trunk# otserv.cpp:290:9: error: 'SIGCONT' was not declared in this scope
-bash: otserv.cpp:290:9:: command not found
root@localhost:/otserv/trunk# otserv.cpp:291:9: error: 'SIGQUIT' was not declared in this scope
-bash: otserv.cpp:291:9:: command not found
root@localhost:/otserv/trunk# otserv.cpp:292:9: error: 'SIGTERM' was not declared in this scope
-bash: otserv.cpp:292:9:: command not found
root@localhost:/otserv/trunk# make[1]: *** [otserv.o] Error 1
-bash: make[1]:: command not found
root@localhost:/otserv/trunk# make[1]: *** Waiting for unfinished jobs....
-bash: make[1]:: command not found

se alguém poder ajuda vlw..


@Coul e @luanluciano93, como havia dito, consegui compilar a distro no Ubuntu Server 14.04. Agora que finalmente coloquei meu ot no ar e estou com um tempinho, vou dizer o que tiver que fazer: 

 

Primeiramente, falta a dependência da libcrypto++, que pode ser instalada com o comando: sudo apt-get install libcrypto++.

 

Depois, removi o pacote liblua5.1-sql-mysql que o dono do tópico manda instalar. Esse pacote não existe no Ubuntu Server 14.04.

 

Ai apareceu um problema bem dos brabos. O Ubuntu 14.04 usa uma versão nova da biblioteca boost, a qual deprecou o boost filesystem 2 e tem suporte somente ao boost filesystem 3. E adivinha em qual versão a source está? Na 2. Então eu precisei editar os arquivos luascript.cpp accountmanager.cpp, procurando por std::string s = it->path().filename(); e substituindo por std::string s = it->path().filename().string();

 

A partir dai, a única coisa diferente que fiz foi no comando de configuração, que eu usei ./configure --enable-mysql --enable-server-diag para poder usando o comando /serverdiag com meu God. 

 

Pra quem quiser então, segue a distro compilada por mim, em Ubuntu Server 14.04 64 bits, e com as flags mencionadas acima (não tenho certeza se funcionaria em outros Linux e definitivamente nem adianta tentar se for 32 bits): https://mega.co.nz/#!Ql1jEK6L!ez8HoC-LS4n0n_QiF6zR4zZahYFX6dGGoY-55S-r1Vg

 

EDIT: A propósito, estou com mais de 4 dias de uptime nessa distro, sem cair.

ai mano eu tento executa sua distro no linux e n vai olha o erro 

 

./theforgottenserver: error while loading shared libraries: libboost_filesystem.so.1.54.0: cannot open shared object file: No such file or directory

Link para o post
Compartilhar em outros sites

 

alguem poderia ajuda quando fui compilar deu esse erro 

 

em ubuntu-12.04

 

otserv.cpp: In function 'void signalHandler(int32_t)':
otserv.cpp:184:8: error: 'SIGHUP' was not declared in this scope
otserv.cpp:189:8: error: 'SIGTRAP' was not declared in this scope
otserv.cpp:193:8: error: 'SIGCHLD' was not declared in this scope
otserv.cpp:197:8: error: 'SIGUSR1' was not declared in this scope
otserv.cpp:202:8: error: 'SIGUSR2' was not declared in this scope
otserv.cpp:206:8: error: 'SIGCONT' was not declared in this scope
otserv.cpp:211:8: error: 'SIGQUIT' was not declared in this scope
otserv.cpp:216:8: error: 'SIGTERM' was not declared in this scope
otserv.cpp: In function 'int main(int, char**)':
otserv.cpp:277:19: error: aggregate 'main(int, char**)::sigaction sigh' has incomplete type and cannot be defined
otserv.cpp:278:20: error: 'SIG_IGN' was not declared in this scope
otserv.cpp:281:27: error: 'sigemptyset' was not declared in this scope
otserv.cpp:282:12: error: 'SIGPIPE' was not declared in this scope
otserv.cpp:282:32: error: invalid use of incomplete type 'struct main(int, char**)::sigaction'
otserv.cpp:277:9: error: forward declaration of 'struct main(int, char**)::sigaction'
otserv.cpp:285:9: error: 'SIGHUP' was not declared in this scope
otserv.cpp:285:30: error: 'signal' was not declared in this scope
otserv.cpp:286:9: error: 'SIGTRAP' was not declared in this scope
otserv.cpp:287:9: error: 'SIGCHLD' was not declared in this scope
otserv.cpp:288:9: error: 'SIGUSR1' was not declared in this scope
otserv.cpp:289:9: error: 'SIGUSR2' was not declared in this scope
otserv.cpp:290:9: error: 'SIGCONT' was not declared in this scope
otserv.cpp:291:9: error: 'SIGQUIT' was not declared in this scope
otserv.cpp:292:9: error: 'SIGTERM' was not declared in this scope
make[1]: *** [otserv.o] Error 1
make[1]: *** Waiting for unfinished jobs....
mv -f .deps/npc.Tpo .deps/npc.Po
make[1]: Leaving directory `/otserv/trunk'
make: *** [all] Error 2
root@localhost:/otserv/trunk# otserv.cpp: In function 'void signalHandler(int32_t)':
-bash: otserv.cpp:: command not found
root@localhost:/otserv/trunk# otserv.cpp:184:8: error: 'SIGHUP' was not declared in this scope
-bash: otserv.cpp:184:8:: command not found
root@localhost:/otserv/trunk# otserv.cpp:189:8: error: 'SIGTRAP' was not declared in this scope
-bash: otserv.cpp:189:8:: command not found
root@localhost:/otserv/trunk# otserv.cpp:193:8: error: 'SIGCHLD' was not declared in this scope
-bash: otserv.cpp:193:8:: command not found
root@localhost:/otserv/trunk# otserv.cpp:197:8: error: 'SIGUSR1' was not declared in this scope
-bash: otserv.cpp:197:8:: command not found
root@localhost:/otserv/trunk# otserv.cpp:202:8: error: 'SIGUSR2' was not declared in this scope
-bash: otserv.cpp:202:8:: command not found
root@localhost:/otserv/trunk# otserv.cpp:206:8: error: 'SIGCONT' was not declared in this scope
-bash: otserv.cpp:206:8:: command not found
root@localhost:/otserv/trunk# otserv.cpp:211:8: error: 'SIGQUIT' was not declared in this scope
-bash: otserv.cpp:211:8:: command not found
root@localhost:/otserv/trunk# otserv.cpp:216:8: error: 'SIGTERM' was not declared in this scope
-bash: otserv.cpp:216:8:: command not found
root@localhost:/otserv/trunk# otserv.cpp: In function 'int main(int, char**)':
-bash: otserv.cpp:: command not found
root@localhost:/otserv/trunk# otserv.cpp:277:19: error: aggregate 'main(int, char**)::sigaction sigh' has incomplete type and cannot be defined
-bash: otserv.cpp:277:19:: command not found
root@localhost:/otserv/trunk# otserv.cpp:278:20: error: 'SIG_IGN' was not declared in this scope
-bash: otserv.cpp:278:20:: command not found
root@localhost:/otserv/trunk# otserv.cpp:281:27: error: 'sigemptyset' was not declared in this scope
-bash: otserv.cpp:281:27:: command not found
root@localhost:/otserv/trunk# otserv.cpp:282:12: error: 'SIGPIPE' was not declared in this scope
-bash: otserv.cpp:282:12:: command not found
root@localhost:/otserv/trunk# otserv.cpp:282:32: error: invalid use of incomplete type 'struct main(int, char**)::sigaction'
-bash: otserv.cpp:282:32:: command not found
root@localhost:/otserv/trunk# otserv.cpp:277:9: error: forward declaration of 'struct main(int, char**)::sigaction'
-bash: otserv.cpp:277:9:: command not found
root@localhost:/otserv/trunk# otserv.cpp:285:9: error: 'SIGHUP' was not declared in this scope
-bash: otserv.cpp:285:9:: command not found
root@localhost:/otserv/trunk# otserv.cpp:285:30: error: 'signal' was not declared in this scope
-bash: otserv.cpp:285:30:: command not found
root@localhost:/otserv/trunk# otserv.cpp:286:9: error: 'SIGTRAP' was not declared in this scope
-bash: otserv.cpp:286:9:: command not found
root@localhost:/otserv/trunk# otserv.cpp:287:9: error: 'SIGCHLD' was not declared in this scope
-bash: otserv.cpp:287:9:: command not found
root@localhost:/otserv/trunk# otserv.cpp:288:9: error: 'SIGUSR1' was not declared in this scope
-bash: otserv.cpp:288:9:: command not found
root@localhost:/otserv/trunk# otserv.cpp:289:9: error: 'SIGUSR2' was not declared in this scope
-bash: otserv.cpp:289:9:: command not found
root@localhost:/otserv/trunk# otserv.cpp:290:9: error: 'SIGCONT' was not declared in this scope
-bash: otserv.cpp:290:9:: command not found
root@localhost:/otserv/trunk# otserv.cpp:291:9: error: 'SIGQUIT' was not declared in this scope
-bash: otserv.cpp:291:9:: command not found
root@localhost:/otserv/trunk# otserv.cpp:292:9: error: 'SIGTERM' was not declared in this scope
-bash: otserv.cpp:292:9:: command not found
root@localhost:/otserv/trunk# make[1]: *** [otserv.o] Error 1
-bash: make[1]:: command not found
root@localhost:/otserv/trunk# make[1]: *** Waiting for unfinished jobs....
-bash: make[1]:: command not found

se alguém poder ajuda vlw..

ai mano eu tento executa sua distro no linux e n vai olha o erro 

 

./theforgottenserver: error while loading shared libraries: libboost_filesystem.so.1.54.0: cannot open shared object file: No such file or directory

 

 

Você precisa instalar as libs indicadas pelo criador do tópico e a libcrypto++ que eu indiquei tb

Link para o post
Compartilhar em outros sites

eu ja tentei instalar a s libs libcrypto++

 

so q n adianta em nada ai fui tenta compilar dinovo e da esse erro 

-Wno-unused-parameter -Wno-array-bounds -pthread -pipe -MT luascript.o -MD -MP -MF .deps/luascript.Tpo -c -o luascript.o luascript.cpp
luascript.cpp: In member function 'bool LuaInterface::loadDirectory(const string&, Npc*)':
luascript.cpp:741:41: error: 'boost::filesystem2::basic_path<std::basic_string<char>, boost::filesystem2::path_traits>::string_type' has no member named 'string'
mv -f .deps/items.Tpo .deps/items.Po
g++ -DHAVE_CONFIG_H -I.    -I/usr/include/libxml2  -I/usr/include/lua5.1   -O2 -fomit-frame-pointer -D__USE_MYSQL__    -D__WAR_SYSTEM__ -D__ENABLE_SERVER_DIAGNOSTIC__ -D__ROOT_PERMISSION__ -D_THREAD_SAFE -D_REENTRANT -Wall -Wextra -Wno-strict-aliasing -Wno-unused-parameter -Wno-array-bounds -pthread -pipe -MT mailbox.o -MD -MP -MF .deps/mailbox.Tpo -c -o mailbox.o mailbox.cpp
make[1]: *** [luascript.o] Error 1
make[1]: *** Waiting for unfinished jobs....
mv -f .deps/mailbox.Tpo .deps/mailbox.Po
make[1]: Leaving directory `/otserv/trunk'
make: *** [all] Error 2

COMPILAR EM 64BITS EU N CONSEGUIR MAIS EM 32BITS DEU CERTO VLW.

 

SE ALGUEM PODER FAZER UM TUTORIAL COMO INSTALAR AS LIB LA EM 64BITS E AJEITA OS ERROS  LA ERA BOM  VLW.

Link para o post
Compartilhar em outros sites

Ops tem um erro quando coloco esse tfs em meu server os monstros nao dropam loot

e com o tfs que eu usava dropava normalmente

alguem tem alguma ideia?

 

Arrumei

mds so mt mongol eu tava na acc do admin '-'

Editado por BeluciGamer (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

não da pra falar morgaroth kkkkk


 

Por gentileza Luan, teria como adicionar algumas coisas ?

 

• Na aba Help, colocar para o grupo 2/3 falar em laranja ? O grupo 4/5/6 falar em vermelho? E colocar o tempo de fala igual o trade? 120 segundos por favor, e colocar a msg que tem que esperar, e se possível na hora que abre aparecer a msg bem vindo ao help ou alguma coisa do tipo, pois aquele texto fica feio (anunciando global, rs)

• No quest log não está aceitando a váriavel |STATE|, e não aparece a mensagem em branco "Your quest log has been updated." toda vez que atualiza

• Pelo fato de ter grupo 4/5 zerar a cap (Creio eu que é possível fazer isso, senão faço manualmente)

• O Grupo 4/5 não pode arrastar item de longe (Atrás de balcão)

• O /ghost ficar com o mesmo efeito que quando está com utana vid

 

Se possível disponibilizar Distro Compilada 64x para windows.

 

Agradeço demais toda a sua ajuda, e parabéns pelo sucesso !

 

Obrigado! 

 

 

1° sobra a aba help e etc. é configurado em XML.

2° grupo 4 e 5 é pra ajudar os jogadores, somente grupo 6 pode arrastar esses items, pois é o GOD.

3° o ghost é configuravel no config.lua 

4° procura mais na internet o que vc deseja antes de sair pedindo coisa pros outros, tente resolver primeiro sozinho, para você pegar experiencia, nem sempre vai ter alguem pra te ajudar, rala que vc consegue kk  :bleh:  :bleh:  :bleh:  :bleh:  :bleh:  :bleh:  :bleh:


Obrigado fera!Legal saber que esta bem estável!Boa sorte ae.

 

Então nas sources basta trocar std::string s = it->path().filename();  por std::string s = it->path().filename().string();  dentro do luascript.cpp accountmanager.cpp ?

 

ei fera, me diz uma coisa, se eu usar em linux 64x tem problema ou pode dar algum problema relacionado ao mapa? pq eu uso meu server em windows 32x, obrigado

EM BREVE: AncientWar 8.60

 

SERVIDOR: Global Full 8.60 + Cidades Premium Account.

Reformulamento de TODAS as quests igual ao Real Tibia.

Todas as runas 7.6 com mesmo attack, knights heal na UH.

 

Eventos Diários (Zombie Event/Carlin Castle/BattleField/Boss of the Day)

 

Rates:

Experience: 150

Skills: 22

Magic: 8

Loot: 2

Spawns: 2

 

Obrigado - Att Wisac.

Link para o post
Compartilhar em outros sites

ei fera, me diz uma coisa, se eu usar em linux 64x tem problema ou pode dar algum problema relacionado ao mapa? pq eu uso meu server em windows 32x, obrigado

Não,apenas siga as dicas postadas para compilar,ou pegue ele compilado que o douglasmata postou na pagina anterior e seja feliz.

Link para o post
Compartilhar em outros sites

@luanluciano93, tenho uma dúvida, não sei como funciona o esquema mas a OTX possui algum tipo de otimização que na jogabilidade diminui consideravelmente a latência dos jogadores. Esse TFS que você disponibilizou possui essa otimização da latência?

Link para o post
Compartilhar em outros sites

Olá LuanLuciano,

 

Reparei que quando tem dois bixo na tela, mais só tem passagem para um, depois que ele morre o outro bixo não vem, pesquisei sobre e achei um tópico que você falou que era erro nas source ( http://www.tibiaking.com/forum/topic/39803-monster-bug-monstros-n%C3%A3o-caminham-em-cima-de-corpos/), poderia averiguar por gentileza ?

Editado por AlekysRocha. (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Os players reclamaram bastante sobre um "bug" que quando está ativo o anti-push do bot, tudo dá exhaust imenso: runas, spells, etc. O que pode ser?

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por L3K0T
      Sistema de Drop Personalizado
       
      Esse sistema de loot foi projetado para adicionar um elemento de sorte e surpresa ao derrotar monstros. Sempre que um jogador derrota um monstro, há uma chance configurada para que ele solte entre 1 a 3 itens especiais, garantindo recompensas valiosas ao jogador.
       
      O sistema realiza as seguintes ações:
      Chance de Drop: A cada morte de um monstro, há uma chance configurada para dropar itens específicos. O sistema permite que sejam dropados entre 1 a 3 unidades do item, tornando o sistema mais dinâmico.
       
      Efeito Visual: Quando o loot é bem-sucedido, um efeito visual especial (ID 231) é exibido na posição exata onde o monstro foi derrotado, criando uma animação visual que destaca a recompensa.
       
      Notificação ao Jogador: Após o drop, o jogador recebe uma mensagem personalizada informando a quantidade de itens obtidos. Essa notificação aparece após 3 segundos, adicionando uma camada de imersão e evitando sobrecarregar o chat imediatamente após a morte do monstro.
       
      *Ótimo para fazer eventos de dropar certo itens para alguma missão ou resgates.
      *Uso no meu TIBIA HARRY POTTER ORIGIN
       
      VAi em creaturescripts/scripts.lua
      local function findCorpse(position) for i = 1, 255 do position.stackpos = i local corpse = getThingfromPos(position) if isCorpse(corpse.uid) then return corpse.uid end end return false end local function dropLoot(position, killer) local corpse = findCorpse(position) if not corpse then return false end local itemId = 2160 local chance = 23 if math.random(100) <= chance then local amountToDrop = math.random(1, 3) doAddContainerItem(corpse, itemId, amountToDrop) local corpsePosition = getThingPos(corpse) doSendMagicEffect(corpsePosition, 7) local function sendMessage() if isPlayer(killer) then local message = string.format("Você dropou %d Crystal Coin(s).", amountToDrop) doPlayerSendTextMessage(killer, MESSAGE_INFO_DESCR, message) end end addEvent(sendMessage, 2500) end return true end function onKill(cid, target) local position = getCreaturePosition(target) addEvent(dropLoot, 100, position, cid) return true end  
      creaturescripts.xml
      <event type="kill" name="GlobalDrops" registerTo ="GlobalDrops" event="script" value="globalDrops.lua"/> ou depende do tfs
      <event type="kill" name="GlobalDrops" event="script" value="globalDrops.lua"/>  
      Para ambos TFS registra o evento no login.lua
      registerTo ="GlobalDrops"
      feito isso.. agora todos os monstros do mapa vai cair os crystal coins de 1 há 3.
    • Por L3K0T
      TUTORIAL BY L3K0T PT~EN
       
      Olá pessoal, trago a vocês uma atualização que fiz no sistema, contendo 3 novas funcionalidades de movimentação de itens e uma proteção contra Elf Bot. Estas adições foram cuidadosamente implementadas para aperfeiçoar a experiência de jogo e manter a integridade do seu servidor.
      As novas funcionalidades têm a função vital de impedir que jogadores deixem itens indesejados em locais inapropriados, como na entrada de sua casa, em cima de seus depósitos ou em teleportes. Agora, apenas proprietários, subproprietários e convidados têm permissão para manipular itens nesses locais.
      Este pacote de atualização foi meticulosamente revisado para evitar abusos por parte de jogadores mal-intencionados e garantir um ambiente de jogo justo e equilibrado para todos os usuários.
       
       
       
      Iniciando o Tutorial
      1Abra o arquivo "creatureevents.cpp" com o editor de sua preferência. Eu pessoalmente recomendo o Notepad++. 
       
       
      Em creatureevents.cpp:
      return "onPrepareDeath"; Adicione abaixo:
      case CREATURE_EVENT_MOVEITEM: return "onMoveItem"; case CREATURE_EVENT_MOVEITEM2: return "onMoveItem2";  
      Em:
      return "cid, deathList"; Adicione abaixo:
      case CREATURE_EVENT_MOVEITEM: return "moveItem, frompos, topos, cid"; case CREATURE_EVENT_MOVEITEM2: return "cid, item, count, toContainer, fromContainer, fromPos, toPos";  
      Em:
      m_type = CREATURE_EVENT_PREPAREDEATH; Adicione abaixo:
      else if(tmpStr == "moveitem") m_type = CREATURE_EVENT_MOVEITEM; else if(tmpStr == "moveitem2") m_type = CREATURE_EVENT_MOVEITEM2;  
      Procure por:
      bool CreatureEvents::playerLogout(Player* player, bool forceLogout) { //fire global event if is registered bool result = true; for(CreatureEventList::iterator it = m_creatureEvents.begin(); it != m_creatureEvents.end(); ++it) { if((*it)->getEventType() == CREATURE_EVENT_LOGOUT && (*it)->isLoaded() && !(*it)->executeLogout(player, forceLogout) && result) result = false; } return result; } Adicione abaixo:
      uint32_t CreatureEvents::executeMoveItems(Creature* actor, Item* item, const Position& frompos, const Position& pos) { // fire global event if is registered for(CreatureEventList::iterator it = m_creatureEvents.begin(); it != m_creatureEvents.end(); ++it) { if((*it)->getEventType() == CREATURE_EVENT_MOVEITEM) { if(!(*it)->executeMoveItem(actor, item, frompos, pos)) return 0; } } return 1; }  
      Em:
      bool CreatureEvents::playerLogin(Player* player) { //fire global event if is registered bool result = true; for(CreatureEventList::iterator it = m_creatureEvents.begin(); it != m_creatureEvents.end(); ++it) { if((*it)->getEventType() == CREATURE_EVENT_LOGIN && (*it)->isLoaded() && !(*it)->executeLogin(player) && result) result = false; } if (result) { for(CreatureEventList::iterator it = m_creatureEvents.begin(); it != m_creatureEvents.end(); ++it) { CreatureEvent* event = *it; if(event->isLoaded() && ( event->getRegister() == "player" || event->getRegister() == "all") ) player->registerCreatureEvent(event->getName()); } } return result; } Adicione Abaixo:
      uint32_t CreatureEvent::executeMoveItem(Creature* actor, Item* item, const Position& frompos, const Position& pos) { //onMoveItem(moveItem, frompos, position, cid) if(m_interface->reserveEnv()) { ScriptEnviroment* env = m_interface->getEnv(); if(m_scripted == EVENT_SCRIPT_BUFFER) { env->setRealPos(pos); std::stringstream scriptstream; env->streamThing(scriptstream, "moveItem", item, env->addThing(item)); env->streamPosition(scriptstream, "position", frompos, 0); env->streamPosition(scriptstream, "position", pos, 0); scriptstream << "local cid = " << env->addThing(actor) << std::endl; scriptstream << m_scriptData; bool result = true; if(m_interface->loadBuffer(scriptstream.str())) { lua_State* L = m_interface->getState(); result = m_interface->getGlobalBool(L, "_result", true); } m_interface->releaseEnv(); return result; } else { #ifdef __DEBUG_LUASCRIPTS__ char desc[35]; sprintf(desc, "%s", player->getName().c_str()); env->setEventDesc(desc); #endif env->setScriptId(m_scriptId, m_interface); env->setRealPos(pos); lua_State* L = m_interface->getState(); m_interface->pushFunction(m_scriptId); LuaInterface::pushThing(L, item, env->addThing(item)); LuaInterface::pushPosition(L, frompos, 0); LuaInterface::pushPosition(L, pos, 0); lua_pushnumber(L, env->addThing(actor)); bool result = m_interface->callFunction(4); m_interface->releaseEnv(); return result; } } else { std::clog << "[Error - CreatureEvent::executeMoveItem] Call stack overflow." << std::endl; return 0; } } uint32_t CreatureEvent::executeMoveItem2(Player* player, Item* item, uint8_t count, const Position& fromPos, const Position& toPos, Item* toContainer, Item* fromContainer, int16_t fstack) { //onMoveItem2(cid, item, count, toContainer, fromContainer, fromPos, toPos) if(m_interface->reserveEnv()) { ScriptEnviroment* env = m_interface->getEnv(); if(m_scripted == EVENT_SCRIPT_BUFFER) { env->setRealPos(player->getPosition()); std::stringstream scriptstream; scriptstream << "local cid = " << env->addThing(player) << std::endl; env->streamThing(scriptstream, "item", item, env->addThing(item)); scriptstream << "local count = " << count << std::endl; env->streamThing(scriptstream, "toContainer", toContainer, env->addThing(toContainer)); env->streamThing(scriptstream, "fromContainer", fromContainer, env->addThing(fromContainer)); env->streamPosition(scriptstream, "fromPos", fromPos, fstack); env->streamPosition(scriptstream, "toPos", toPos, 0); scriptstream << m_scriptData; bool result = true; if(m_interface->loadBuffer(scriptstream.str())) { lua_State* L = m_interface->getState(); result = m_interface->getGlobalBool(L, "_result", true); } m_interface->releaseEnv(); return result; } else { #ifdef __DEBUG_LUASCRIPTS__ char desc[30]; sprintf(desc, "%s", player->getName().c_str()); env->setEvent(desc); #endif env->setScriptId(m_scriptId, m_interface); env->setRealPos(player->getPosition()); lua_State* L = m_interface->getState(); m_interface->pushFunction(m_scriptId); lua_pushnumber(L, env->addThing(player)); LuaInterface::pushThing(L, item, env->addThing(item)); lua_pushnumber(L, count); LuaInterface::pushThing(L, toContainer, env->addThing(toContainer)); LuaInterface::pushThing(L, fromContainer, env->addThing(fromContainer)); LuaInterface::pushPosition(L, fromPos, fstack); LuaInterface::pushPosition(L, toPos, 0); //lua_pushnumber(L, env->addThing(actor)); bool result = m_interface->callFunction(7); m_interface->releaseEnv(); return result; } } else { std::clog << "[Error - CreatureEvent::executeMoveItem] Call stack overflow." << std::endl; return 0; } }  
       
       
      Agora em em creatureevents.h:
      CREATURE_EVENT_PREPAREDEATH, Adicione abaixo:
      CREATURE_EVENT_MOVEITEM, CREATURE_EVENT_MOVEITEM2  
      Em:
      uint32_t executePrepareDeath(Creature* creature, DeathList deathList); Adicione abaixo:
      uint32_t executeMoveItem(Creature* actor, Item* item, const Position& frompos, const Position& pos); uint32_t executeMoveItem2(Player* player, Item* item, uint8_t count, const Position& fromPos, const Position& toPos, Item* toContainer, Item* fromContainer, int16_t fstack);  
      Em:
      bool playerLogout(Player* player, bool forceLogout); Abaixo adicone também
      uint32_t executeMoveItems(Creature* actor, Item* item, const Position& frompos, const Position& pos); uint32_t executeMoveItem2(Player* player, Item* item, uint8_t count, const Position& fromPos, const Position& toPos, Item* toContainer, Item* fromContainer, int16_t fstack);  
       
      Agora em em game.cpp:
      if(!canThrowObjectTo(mapFromPos, mapToPos) && !player->hasCustomFlag(PlayerCustomFlag_CanThrowAnywhere)) { player->sendCancelMessage(RET_CANNOTTHROW); return false; } ReturnValue ret = internalMoveItem(player, fromCylinder, toCylinder, toIndex, item, count, NULL); if(ret == RET_NOERROR) return true; player->sendCancelMessage(ret); return false; } Altere para:
      if (!canThrowObjectTo(mapFromPos, mapToPos) && !player->hasCustomFlag(PlayerCustomFlag_CanThrowAnywhere)) { player->sendCancelMessage(RET_CANNOTTHROW); return false; } bool success = true; CreatureEventList moveitemEvents = player->getCreatureEvents(CREATURE_EVENT_MOVEITEM2); for (CreatureEventList::iterator it = moveitemEvents.begin(); it != moveitemEvents.end(); ++it) { Item* toContainer = toCylinder->getItem(); Item* fromContainer = fromCylinder->getItem(); if (!(*it)->executeMoveItem2(player, item, count, fromPos, toPos, (toContainer ? toContainer : 0), (fromContainer ? fromContainer : 0), fromStackpos) && success) success = false; } if (!success) return false; if (g_config.getBool(ConfigManager::ANTI_PUSH)) { std::string antiPushItems = g_config.getString(ConfigManager::ANTI_PUSH_ITEMS); IntegerVec tmpVec = vectorAtoi(explodeString(antiPushItems, ",")); if (tmpVec[0] != 0) { for (IntegerVec::iterator it = tmpVec.begin(); it != tmpVec.end(); ++it) { if (item->getID() == uint32_t(*it) && player->hasCondition(CONDITION_EXHAUST, 1)) { player->sendTextMessage(MSG_STATUS_SMALL, "Please wait a few seconds to move this item."); return false; } } } } int32_t delay = g_config.getNumber(ConfigManager::ANTI_PUSH_DELAY); if (Condition* condition = Condition::createCondition(CONDITIONID_DEFAULT, CONDITION_EXHAUST, delay, 0, false, 1)) player->addCondition(condition); if (!g_creatureEvents->executeMoveItems(player, item, mapFromPos, mapToPos)) return false; ReturnValue ret = internalMoveItem(player, fromCylinder, toCylinder, toIndex, item, count, NULL); if (ret != RET_NOERROR) { player->sendCancelMessage(ret); return false; } player->setNextAction(OTSYS_TIME() + g_config.getNumber(ConfigManager::ACTIONS_DELAY_INTERVAL) - 10); return true; }  
      Agora em configmanager.h
      ADMIN_ENCRYPTION_DATA Adicione abaixo:
      ANTI_PUSH_ITEMS,  
      em:
      STAMINA_DESTROY_LOOT, Adicione abaixo:
      ANTI_PUSH_DELAY,  
      em:
      ADDONS_PREMIUM, Adicione abaixo:
      ANTI_PUSH  
      Agora você pode compilar a Source.
       
       
      Configurando no servidor:
       
      Abra seu config.lua do servidor e adicione isso dentro qualquer lugar:
      -- Anti-Push useAntiPush = true antiPushItems = "2148,2152,2160,3976" antiPushDelay = 500  
       
      Navegue até o diretório 'creaturescripts' e localize o arquivo 'login.lua'.
      em resgistros de eventos adicione:
      login.lua
      registerCreatureEvent(cid, "MoveItem") registerCreatureEvent(cid, "MoveItem2")  
      Agora abra o aquivo creaturescript .xml
      <event type="moveitem" name="MoveItem" event="script" value="houseprotecao.lua"/> <event type="moveitem2" name="MoveItem2" event="script" value="moveitem2.lua"/>  
      Crie um novo arquivo lua em scripts com o nome houseprotecao.lua e adicione isso:
      function onMoveItem(moveItem, frompos, position, cid) if position.x == CONTAINER_POSITION then return true end local house = getHouseFromPos(frompos) or getHouseFromPos(position) --correção 100% if type(house) == "number" then local owner = getHouseOwner(house) if owner == 0 then return false, doPlayerSendCancel(cid, "Isso não é Possível.") end if owner ~= getPlayerGUID(cid) then local sub = getHouseAccessList(house, 0x101):explode("\n") local guest = getHouseAccessList(house, 0x100):explode("\n") local isInvited = false if (#sub > 0) and isInArray(sub, getCreatureName(cid)) then isInvited = true end if (#guest > 0) and isInArray(guest, getCreatureName(cid)) then isInvited = true end if not isInvited then return false, doPlayerSendCancel(cid, "Desculpe, você não está invitado.") end end end return true end  
      Crie um novo arquivo lua em scripts com o nome moveitem2.lua e adicione isso abaixo:
      local depottiles = {} --piso pra n jogar local depots = {2589} --id dos dps local group = 3 --id dos group 6 é todos. local function checkIfThrow(pos,topos) if topos.x == 0xffff then return false end local thing = getThingFromPos(pos) if isInArray(depottiles,thing.itemid) then if not isInArea(topos,{x=pos.x-1,y=pos.y-1,z=pos.z},{x=pos.x+1,y=pos.y+1, z=pos.z}) then return true end else for i = 1, #depots do if depots[i] == getTileItemById(topos,depots[i]).itemid or getTileInfo(topos).actionid == 7483 then return true end end end return false end function onMoveItem2(cid, item, count, toContainer, fromContainer, fromPos, toPos) if isPlayer(cid) then local pos = getThingPos(cid) if getPlayerGroupId(cid) > group then return true end if checkIfThrow({x=pos.x,y=pos.y,z=pos.z,stackpos=0},toPos) then doPlayerSendCancel(cid,"Não jogue item ai!!") doSendMagicEffect(getThingPos(cid),CONST_ME_POFF) return false end end return true end  
      ajudei?? REP+
      CRÉDITOS:
      @L3K0T
      Fir3element
      Summ
      Wise
      GOD Wille
      Yan Lima
       
       
       
       
    • Por L3K0T
      Não jogar itens pelo teleportes C++
       

       

       
       
      Bom.. o nome já diz, qualquer um que jogar itens nos teleportes do seu otserv, o mesmo será removido, como aquelas lixeiras, porem esse sistema é pela source, descartando scripts .LUA.
       
       
      Em teleporte.cpp ache:
       
      void Teleport::__addThing(Creature* actor, int32_t, Thing* thing) { if(!thing || thing->isRemoved()) return; Tile* destTile = g_game.getTile(destination); if(!destTile) return; if(Creature* creature = thing->getCreature()) { g_game.addMagicEffect(creature->getPosition(), MAGIC_EFFECT_TELEPORT, creature->isGhost()); creature->getTile()->moveCreature(actor, creature, destTile); g_game.addMagicEffect(destTile->getPosition(), MAGIC_EFFECT_TELEPORT, creature->isGhost()); } else if(Item* item = thing->getItem()) { g_game.addMagicEffect(item->getPosition(), MAGIC_EFFECT_TELEPORT); g_game.internalMoveItem(actor, item->getTile(), destTile, INDEX_WHEREEVER, item, item->getItemCount(), NULL); g_game.addMagicEffect(destTile->getPosition(), MAGIC_EFFECT_TELEPORT); } }  
      Altere ele todo para:
       
      void Teleport::__addThing(Creature* actor, int32_t, Thing* thing) { if (!thing || thing->isRemoved()) return; Tile* destTile = g_game.getTile(destination); if (!destTile) return; if (Creature* creature = thing->getCreature()) { g_game.addMagicEffect(creature->getPosition(), MAGIC_EFFECT_TELEPORT, creature->isGhost()); creature->getTile()->moveCreature(actor, creature, destTile); g_game.addMagicEffect(destTile->getPosition(), MAGIC_EFFECT_TELEPORT, creature->isGhost()); } else { Player* player = dynamic_cast<Player*>(actor); if (player) { player->sendTextMessage(MSG_STATUS_SMALL, "You cannot teleport items."); // Remover o item Item* item = dynamic_cast<Item*>(thing); if (item) { g_game.internalRemoveItem(actor, item); } } return; } } agora é só compilar no modo Rebuilder e ligar o servidor, créditos a mim L3K0T pela alterações.
    • Por Mateus Robeerto
      Vi que muitas pessoas estão reclamando e que não funciona, bugs, erros no console, etc. Então, resolvi baixar a base do Thunder feita por MovieBr, atualizei do TFS 1.3 para o TFS 1.5 e corrigi cerca de 80% dos problemas. No entanto, ainda não consigo encontrar alguns bugs. Quem encontrar os bugs pode me relatar pelo Discord: 82mateusroberto. Dependendo do meu dia, pode levar alguns dias para eu responder e corrigir ou não. Acredito que vocês conseguem corrigir os erros, apenas precisam aprender a consertá-los. Não é difícil. Aproveitem para usar como base do seu mapa ou mesmo do projeto Thunder futuramente! Seguem as imagens que mostram a implementação de montaria e modal widow.
       
      Obs: Alguns mapas/cavernas podem estar vazios por falta de adição. Eu não tinha boas ideias para adicionar, mas vocês podem adicionar ao seu gosto. Tenham uma boa utilização e sucesso com o projeto no futuro!
       
      https://www.mediafire.com/file/0jtn2slt2j67666/baiakthunder-master.rar/file
      https://www.mediafire.com/file/bougg0q6dlpu2fq/tfs+1.5+source.rar/file
      https://www.mediafire.com/file/yq1s63xo6np9v53/860.rar/file
       
      Este servidor só usa o OtClient. Abra o arquivo otclient/modules/game_feature/feature.lua e procure por esta linha.
      if (versão >= 860) then adicione abaixo e salve.. pronto
      g_game.enableFeature(GamePlayerMounts)  
       
      Aqui estão os GIFs
      https://imgur.com/UGdQoSS
      https://imgur.com/OwJ4hpp
      https://imgur.com/7sN1MaJ
       
       
       
      Para quem deseja usar uma gamestore personalizada, há uma disponível para TFS 1.5 e 8.6. Já a compartilhei há alguns dias. Dê uma olhada aqui.
       
       
    • Por GM Antica
      Olá galera tudo bem?
      Achei esse mapa aqui no fórum, porém ele nao estava funcional. Foi retirado alguns bugs visuais, e certificado que não ocorra PVP dentro dos Treiners:
      Modificações:
      ● Capacidade total = 76 players
      ● Treiners divididos com "Wall" para o bom funcionamento e evitar que ocorra mortes dentro dos Treiners...
      ● Paisagens refeitas, um andar "Lobby" foi adicionado para interação e comércio
      ● Teleport adicionado no final de cada corredor para uma possível extensão
      CRÉDITOS: Alissow + GM Antica
       
      Segue alguns Prints:







       
       
      Scan Vírus Total: https://www.virustotal.com/gui/file/456c5959bd38bd7bd61f8c46af1117e0425963da0f8e5afce0bf411bdd366171?nocache=1
       
      Download:
       
      Training Room 8.60 - by Alissow & GM Antica.rar



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo