TekaZudo
seuserver.com.br
DESCRIÇÃO
Anuncie aqui neste countdown e dê maior visibilidade ao seu lançamento |
Full Global • Custom Quests • Custom Outfits • Lottery System • Version 15x
Inicia em:
--
Participar
Histórico de Curtidas
-
Ackerzin deu reputação a Dwarfer em (Resolvido)Npc Craftingcrafter.lua
Crafter.xml
<?xml version="1.0" encoding="UTF-8"?> <npc name="Crafter" script="crafter.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="66"/> </npc>
Edite as falas e os nomes como queira. Apenas coloquei exemplos para te servir como base.
-
Ackerzin recebeu reputação de CainOTServer em Mana&Life 100/100 sem bug.Mana e Life 100/100
Salve galerinha, estive procurando em vários tópicos, algum codigo de life e mana 100/100, e nenhum deles funcionava perfeito para oque eu precisava, todos eles paravam de funcionar quando o player atingia o level 715835 ou mana/life "21474847" o numero 100 da vida virava 65750 ou da mana, de qual você atingisse primeiro "21474847" e pra quem quer por high XP isso é um problema, mas depois de muito, MUITO,MUITO,muito esforço de um amigo, @Rusherzin, ele conseguiu burla isso, e agora você pode pegar quantos de level/mana/life quiser que não vai sair de 100/100, então é isso vamos ao que interessa.
TFS 0.4 foi testado !
Nas SOURCES arquivo protocolgame.cpp procure por:
void ProtocolGame::AddPlayerStats(NetworkMessage_ptr msg) e substitua por isso:
Imagem mostrando certinho a life/mana
Créditos:
99% @Rusherzin Por fazer tudo !
1% @Zzyzx Por ficar incomodando até ele fazer !
-
Ackerzin recebeu reputação de CainOTServer em Minimap generatorOlá, achei esse codigo em outro forum, ele foi desenvolvido para abrir o mapa do old cliente, mas ele foi feito para 1.2+, gostaria de saber se alguem poderia passar ele para 0.4.
crédito Gesior.pl
-
Ackerzin recebeu reputação de Leandro Vidal Martins em Classic-Yurots [8.60] - Push Cruzado + Cast com SetasNão me lembro agora, qual dos dois bugs que é, mas possui um deles no servidor ou talvez os dois, testei faz 1 mes, "NPC BANK", hi, deposit 999999999999999999999999999999999999, yes.
e você fica com dinheiro infinito, ou é o do sample, hi, transfer, qualquer Player Sample, e voce transfere para os samples, e quando cria um char novo, voce começa com o dinheiro no banco que depositou, todos chares novos.
-
Ackerzin recebeu reputação de Gabrielx17 em Usar 2 buffs ao mesmo tempoAcabei de enxer o saco do @KotZletY no discord, e ele explicou certinho, aconselho que façam o mesmo, zoeira, HEIUAHEa
setConditionParam(condition, CONDITION_PARAM_SUBID, 1) Isso ai em cima é o SUBID que ele fala, você tem que por isso, com numeros diferentes em cada Buff, no caso no script ai ficaria assim.
-
Ackerzin deu reputação a WhiteBubble em *Quest Diaria*Você não especificou pra qual versão de servidos, mas para o tfs 0.3.6, 0.4 (8.60) use esse.
Em actions.xml coloque:
O uniqueid deverá ser usado no bau que ira ganhar as recompensas.
Agora em scripts crie um arquivo.lua com o nome:
questdaily.lua
e adicione dentro:
Creditos: @Ackerzin
-
Ackerzin deu reputação a renato95souza em Como rodar servidor 7.70 com arquivos da Cipsoft - Ubuntu Server 16.04Olá amigos,
Estive em busca de conseguir rodar um servidor do tibia 7.70 com os arquivos originais da CipSoft, mas olhando vários tutoriais na internet eu percebi que todos eles estão incompletos, mal explicados (até com erros de digitação em partes importantes) ou utilizam tecnologias muito antigas e de difícil utilização (exemplo CentOs 3.1), mas calma lá, não estou falando mal deles hein, rsrs. Só acho que vale a pena a criação de um tutorial totalmente revisado para garantir que tudo funcione como proposto.
Após 2 semanas de estudos, análises e testes, consegui rodar o servidor no Ubuntu Server 16.04 com sucesso, então documentei todo este tutorial para evitar que o conhecimento venha a se perder. Somente para a criação deste tutorial eu levei 3 dias testando e retestando o passo a passo.
Estou muito feliz de ter conseguido rodar o servidor, o que pode ser simples para alguns, mas me rendeu muitos dias de esforço. Li todas as páginas dos links que estão nos créditos no final deste tutorial e com as dicas de várias pessoas eu finalmente consegui rodar.
Antes de iniciar o passo a passo, é necessário ter instalado no seu Windows os programas:
MySQL Workbench ou Toad MySQL para gerenciamento do banco de dados que será criado no Ubuntu. Putty - Para acessar remotamente o Ubuntu via SSH. WinSCP - Para transferir arquivos facilmente entre o Windows e o Ubuntu.
Observação: Não ensinarei como utilizar os programas acima, para isto veja tutoriais no Google.
Saliento que: estes procedimentos tem que serem executados no Ubuntu versão 16.04 para ter 100% de sucesso, é possível instalar em outras versões, mas há algumas etapas diferentes.
1- Instale a distribuição Ubuntu Server 16.04 do zero, podendo ser em máquina física ou virtual (Vmware, VirtualBox etc), por motivos óbvios não ensinarei a instalar o Ubuntu, para isto procure tutoriais no Google.
1.a- Durante a instalação do Ubuntu, há uma tela que permite selecionar a instalação do pacote ssh, faça a instalação deste pacote. Caso já tenha terminado a instalação do Ubuntu sem instalar o ssh, rode os seguintes comandos no terminal:
sudo apt-get update sudo apt-get install openssh-server
2- Configure um IP estático na sua distribuição Ubuntu, link: https://www.fredericodecastro.com.br/configurando-ip-estatico-no-ubuntu-server-16-04/
2.a- Reinicie o Ubuntu após configurar o IP com o comando:
sudo shutdown -r now
3- Com o IP definido no passo 2, acesse o Ubuntu via SSH com o Putty no Windows
3.a- Instale todos os pacotes que iremos precisar durante as configurações, para isso execute cada linha separadamente no terminal do ubuntu:
sudo apt-get update sudo apt-get install cmake build-essential liblua5.2-dev libgmp3-dev libmysqlclient-dev libboost-system-dev libpugixml-dev sudo apt-get install g++ libmysqlclient-dev lib32z1 make mysql-server
3.b- Durante a instalação do mysql-server, será solicitado a criação de uma senha para o usuário root (tenham muita atenção nesta parte).
4- Há 6 arquivos upados no mediafire para que vocês façam download (links no fim deste tópico), sendo eles:
dennis-libraries.rar, game.rar, loginserver.rar, querymanager.rar, schema_data.rar e tibia-game.tarball.tar
4.a- No seu computador Windows em uma pasta da sua escolha, descompacte somente os arquivos dennis-libraries.rar, game.rar, loginserver.rar, querymanager.rar e schema_data.rar.
4.b- Coloque também o arquivo tibia-game.tarball.tar na pasta do passo 4.a, mas não descompacte, ficando desta forma:
4.c- Com auxílio do WinSCP, acesse o servidor Ubuntu que acabamos de criar e transfira os 6 arquivos dos passos 4.a e 4.b para /home/seu_usuário_linux, ficando desta forma:
5- Agora vamos acessar o MySQL via terminal e iremos criar uma database, um usuário e uma senha para acesso.
sudo mysql -u root -p
5.a- Insira a senha do usuário root definido na instalação do MySQL (passo 3.b).
5.b- Agora que temos acesso ao ambiente MySQL via linha de comando, insira cada linha separadamente:
CREATE USER 'otserv'@'%' IDENTIFIED BY 'sua_senha'; GRANT ALL ON *.* TO 'otserv'@'%' IDENTIFIED BY 'sua_senha' WITH GRANT OPTION; FLUSH PRIVILEGES; CREATE DATABASE otserv; USE otserv; SOURCE /home/seu_usuario_linux/schema_data.sql; EXIT;
5.c- Lembrando que: seu_usuario_linux é o usuário definido na instalação do Ubuntu.
6- Vamos liberar o acesso ao MySQL a partir de outros ips, pois o padrão é somente localhost. No terminal rode os seguintes comandos:
cd /etc/mysql/mysql.conf.d sudo nano mysqld.cnf
6.a- Procure por:
bind-address = 127.0.0.1
6.b- Mude para:
bind-address = 0.0.0.0
6.c- Salve e feche o arquivo. No terminal rode o seguinte comando:
sudo service mysql restart
6.d- Pronto, agora você pode acessar seu banco de dados MySQL a partir de outro pc na rede.
7- Agora vamos mover o arquivo tibia-game.tarball.tar.gz para /home/game e descompactar o arquivo com os comandos abaixo:
cd /home/seu_usuario_linux sudo mkdir /home/game sudo mv tibia-game.tarball.tar.gz /home/game cd /home/game sudo tar -xf tibia-game.tarball.tar.gz
7.a- Após executar os comandos, aguarde alguns minutos até que a descompactação seja concluída.
8- Mova as pastas loginserver e querymanager para /home/game com os comandos:
cd /home/seu_usuario_linux sudo mv loginserver querymanager /home/game
9- Vamos dar permissões de escrita/leitura para os arquivos em /home/game:
cd /home sudo chmod 777 -R game
10- Vamos dar permissões para as libs e move-las para /lib
cd /home/seu_usuario_linux sudo chmod 770 -R dennis-libraries cd dennis-libraries sudo cp *.* /lib
11- Agora iremos configurar o QueryManager, no terminal rode os comandos:
sudo su cd /home/game/querymanager sudo nano main.cpp
11.a- Procure por "Cz7" sem aspas (atalho para pesquisa no editor nano: CTRL+W).
11.b- Onde há:
"Cz7u89dmyPzHDNEL"
11.c- Troque por:
"senha_mysql"
11.d- "senha_mysql" é a senha que você criou no passo 5.b.
11.e- No arquivo inteiro há 8 resultados com "Cz7u89dmyPzHDNEL", altere todos.
11.f- Ainda no arquivo main.cpp do passo 11, procure por:
htonl(INADDR_LOOPBACK);
11.g- Mude para:
inet_addr("ip_ubuntu");
11.h- No campo "ip_ubuntu" deve ser inserido o IP definido no passo 2.
11.i- Ainda no arquivo main.cpp do passo 12, procure por:
writeMsg.addByte(213); writeMsg.addByte(163); writeMsg.addByte(67); writeMsg.addByte(173);
11.j- No campo entre parênteses deve ser inserido o IP definido no passo 2, se o seu IP for por exemplo 192.168.3.15, ficará desta forma:
writeMsg.addByte(192); writeMsg.addByte(168); writeMsg.addByte(3); writeMsg.addByte(15);
11.k- Salve e feche o arquivo.
12- Agora vamos compilar o QueryManager para que o mesmo rode com as configurações feitas no passo 11 inteiro. Rode os seguintes comandos no terminal:
cd /home/game/querymanager sudo make
12.a- Aguarde o processo de compilação...
13- Agora vamos alterar algumas configurações no arquivo .tibia:
cd /home/game sudo nano .tibia
13.a- Logo no topo do arquivo você verá o seguinte:
BINPATH = "/game/bin" MAPPATH = "/game/map" ORIGMAPPATH = "/game/origmap" DATAPATH = "/game/dat" USERPATH = "/game/usr" LOGPATH = "/game/log" SAVEPATH = "/game/save" MONSTERPATH = "/game/mon" NPCPATH = "/game/npc"
13.b- Você deverá alterar para:
BINPATH = "/home/game/bin" MAPPATH = "/home/game/map" ORIGMAPPATH = "/home/game/origmap" DATAPATH = "/home/game/dat" USERPATH = "/home/game/usr" LOGPATH = "/home/game/log" SAVEPATH = "/home/game/save" MONSTERPATH = "/home/game/mon" NPCPATH = "/home/game/npc"
13.c- Ainda no arquivo .tibia, vamos alterar o IP e porta de comunicação com o QueryManager.
13.d- Onde há:
QueryManager = {("127.0.0.1",7173,"nXE?/>j`"),("127.0.0.1",7174,"nXE?/>j`"),("127.0.0.1",7175,"nXE?/>j`"),("127.0.0.1",7176,"nXE?/>j`")}
13.e- Altere para:
QueryManager = {("seu_ip",17778,"nXE?/>j`"),("seu_ip",17778,"nXE?/>j`"),("seu_ip",17778,"nXE?/>j`"),("seu_ip",17778,"nXE?/>j`")}
13.f- "seu_ip" é o IP que foi definido no passo 2.
13.g- As portas 7173, 7174, 7175 e 7176 devem ser trocadas para 17778.
13.h- Feito isso, salve e feche o arquivo.
14- Vamos criar uma cópia do arquivo .tibia nas pastas /root e /home/seu_usuario_linux:
cd /home/game sudo cp .tibia /root sudo cp .tibia /home/seu_usuario_linux
15- Agora iremos configurar o Login Server:
cd /home/game/loginserver/ sudo nano config.lua
15.a- No topo do arquivo você verá o seguinte:
-- Connection Config ip = "127.0.0.1"
15.b- Troque para:
-- Connection Config ip = "seu_ip"
15.c- "seu_ip" é o IP definido no passo 2.
15.d- Onde há:
--version clientVersionMin = 772 clientVersionMax = 772 clientVersionStr = "7.72"
15.e- Altere para:
--version clientVersionMin = 770 clientVersionMax = 770 clientVersionStr = "7.70"
15.f- Ainda em config.lua, procure por:
-- MySQL mysqlHost = "127.0.0.1" mysqlUser = "root" mysqlPass = "" mysqlDatabase = "otserv" mysqlPort = 3306 mysqlSock = ""
15.g- Altere para:
-- MySQL mysqlHost = "seu_ip" mysqlUser = "otserv" mysqlPass = "sua_senha_mysql" mysqlDatabase = "otserv" mysqlPort = 3306 mysqlSock = ""
15.h- "seu_ip" é o IP definido no passo 2.
15.i- "sua_senha_mysql" foi definida no passo 5.b quando foi criado o usuário otserv e a database otserv no MySQL.
15.j- Salve e feche o arquivo.
16- Agora vamos editar o arquivo gameserver.xml:
cd /home/game/loginserver/ sudo nano gameservers.xml
16.a- Na linha:
<server id="0" name="RealOts" ip="127.0.0.1" port="7172" />
16.b- Altere para:
<server id="0" name="RealOts" ip="seu_ip" port="7172" />
16.c- "seu_ip" é o IP definido no passo 2.
16.d- Em "RealOts" coloque o nome do seu servidor que você quer que apareça no character list.
16.e- Salve e feche o arquivo.
17- Agora iremos compilar o Login Server para que ele funcione com as novas configurações:
cd /home/game/loginserver sudo mkdir build && cd build sudo cmake .. sudo make
17.a- Aguarde até que o Login Server seja compilado. Ao terminar, insira os comandos abaixo no terminal:
sudo mv tfls .. cd ..
18- Vamos copiar o binário game modificado para a pasta /home/game/bin
cd /home/game/bin mv game "game(vanilla)." cd /home/seu_usuario_linux sudo cp game /home/game/bin
18.a- Copiado o arquivo, agora vamos conceder as permissões necessárias para o arquivo game:
cd /home/game/bin sudo chmod 777 game
19- Para rodar o OTServer, temos que abrir 3 arquivos binários: querymanager, tfls e game, para isso abra 3 terminais via Putty e em cada um rode um binário:
Terminal 1:
cd /home/game/querymanager ./querymanager
Terminal 2:
cd /home/game/loginserver ./tfls
Terminal 3:
cd /home/game/bin sudo ./game
19.a- No terminal 3 (que roda o binário game), pode ser que ocorra o erro abaixo:
Initialisierungsfehler: Game-Server is already running, PID file exists. error.log: Initialisierungsfehler: Game-Server is already running, PID file exists.
19.b- Para corrigir, rode o comando abaixo:
sudo rm /home/game/save/game.pid
19.c- Feito isso, repita os comandos do Terminal 3 no passo 19.
20- Esta é uma dica adicional, se não quiser, pode pular diretamente para o passo 21.
20.a- Podemos criar "atalhos" para execução dos arquivos binários para não precisar ficar navegando nas várias pastas do passo 19 todas vez que formos abrir o OT.
20.b- Atalho do QueryManager:
cd /home/seu_usuario_linux sudo nano querymanager.sh
20.c- Preencha com o seguinte conteúdo:
#!/bin/bash cd /home/game/querymanager ./querymanager
20.d- Salve e feche o arquivo.
20.e- Atalho do Login Server:
cd /home/seu_usuario_linux sudo nano tfls.sh
20.f- Preencha com o seguinte conteúdo:
#!/bin/bash cd /home/game/loginserver ./tfls
20.g- Salve e feche o arquivo.
20.h- Atalho do binário game:
cd /home/seu_usuario_linux sudo nano game.sh
20.i- Preencha com o seguinte conteúdo:
#!/bin/bash cd /home/game/bin ./game
20.j- Salve e feche o arquivo.
20.k- Desta maneira, basta somente abrir 3 terminais via Putty (normalmente ao logar no Putty ele já entra na pasta do usuário em /home) e então executar:
Terminal 1:
sh querymanager.sh
Terminal 2:
sh tfls.sh
Terminal 3:
sudo sh game.sh
21- Com o servidor aberto, podemos entrar in-game, basta selecionar uma conta no banco de dados MySQL. Já adianto a conta abaixo para vocês entrarem:
Login: 856373 Senha: zolo1939
21.a- Observação: notem que não instalamos o phpmyadmin para gerenciamento do banco de dados MySQL, eu utilizo o MySQL Workbench ou Toad MySQL no Windows. Se preferirem, podem instalar o phpmyadmin, mas isto fica por conta de vocês.
22- Para dar previlégios de CM, GM ou tutor para uma conta, faça o seguinte:
No banco de dados MySQL, há uma coluna de nome "userlevel" na tabela users, o valor vai de 0 a 255:
0 = Player 1 = Premium 50 = Tutor 100 = GM 255 = CM
22.a- Basta alterar o valor da coluna "userlevel" da conta desejada, aplicar a alteração e ser feliz ?
23- Importante: para entrar in-game é necessário alterar o IP do tibia 7.70 diretamente no HEX do client (temos opção também de editar o arquivo hosts do Windows para direcionar o trafégo do client para o IP do seu servidor), IP changer não funciona pois altera a RSA Key e você não consegue se conectar ao seu servidor. Pesquisem no Google sobre estas duas opções, caso haja muita dúvida/dificuldade sobre isto, comentem neste tópico e farei outro tutorial somente para explicar as 2 opções que comentei.
24- De brinde, deixei também um link para download do arquivo 'Comandos CM-GM.txt', testei todos os comandos e deixei explicado como é a utilização (alguns eu não entendi o funcionamento).
Créditos:
renato95souza / Mitztroke (eu) por ter criado este tutorial e para os usuários da OtLand que forneceram diversos conhecimentos.
https://otland.net/threads/tutorial-running-cipsoft-server-files.244579/
https://otland.net/threads/7-7-realots-7-7-cipsoft-files-virgin.244562/
https://otland.net/threads/tutorial-for-running-7-7-cipsoft-server-on-ubuntu.274678/
Arquivos para download:
dennis-libraries.rar https://www.mediafire.com/file/1fmaqpi4e7g6jsq/dennis-libraries.rar/file
https://www.virustotal.com/gui/file/51e8b37067a6787836755309be0edba0a6def90fe7f41346ec82744d2c960d92/detection
game.rar https://www.mediafire.com/file/8kthr1au2lc2fu0/game.rar/file
https://www.virustotal.com/gui/file/db3fbc4f6f31701d8ed6c8ad3235fbcc560900e0a6b3c721597d13df593f0d92/detection
loginserver.rar https://www.mediafire.com/file/3r337ypa4f3dj7l/loginserver.rar/file
https://www.virustotal.com/gui/file/986eef3d686e20d8f691caa84406df18e3ab57ebe4b10ed649a695fc25348da4/detection
querymanager.rar https://www.mediafire.com/file/ubaj5841iyzc4sc/querymanager.rar/file
https://www.virustotal.com/gui/file/5cc0b2897731ad23da334244cd1ef4bd4b3aafecab304abc7ff463f3a18e1a7f/detection
schema_data.rar https://www.mediafire.com/file/1buiif04y8ovnm7/schema_data.rar/file
https://www.virustotal.com/gui/file/0af8174cd19557a3d6c7cc4084216ff4067f76d511aaaf3d0a6533a6f89303e9/detection
tibia-game.tarball.tar.gz https://www.mediafire.com/file/qvh4zxnp5s84jt2/tibia-game.tarball.tar.gz/file
https://www.virustotal.com/gui/file/67b771d1e3b4a6ef48c554b9b8b0db56da39cae6b0de5444f7bf6e71c0b2de8e/detection
Comandos CM-GM.txt https://www.mediafire.com/file/870bhktabqv7j8s/Comandos_CM-GM.txt/file
https://www.virustotal.com/gui/file/8afa3579e7b2014d188df9c96a07ce7141234190f6626dc6d09b82cf45ce17c2/detection
-
Ackerzin deu reputação a Vodkart em Lottery system com limitação a trainerstroca a função la do sistema por essa:
local function getOnlineParticipants() local players = {} for _, pid in pairs(getPlayersOnline()) do if getPlayerAccess(pid) <= 2 and getPlayerStorageValue(pid, 281821) <= os.time() and getPlayerStorageValue(pid, 281822) <= os.time() then table.insert(players, pid) end end if #players > 0 then return players end return false end
e no creaturescript:
function onLogin(cid) registerCreatureEvent(cid, "LoterryTreiner") setPlayerStorageValue(cid, 281822, 0) return true end function onCombat(cid, target) local treiners = {"Trainer", "Training Monk"} -- nome dos trainera do seu ot if isPlayer(cid) and isMonster(target) and isInArray(treiners, getCreatureName(target)) then setPlayerStorageValue(cid, 281822, os.time()+15) end return true end
-
Ackerzin deu reputação a FlameArcixt em Remeres Map Editor (3.3) Em grupo (LIVE)??
A muito tempo eu procuro um Remere's map editor com a opção Live funcional (Mapear em grupo), no dia (28/02/2021) o membro @WooX me apresentou esse Editor que possui essa opção funcional, hoje venho compartilhar aqui no Tibiaking, Mesmo que não seja relevante.
⛔ Não vou ensinar a instalação, pois é igual em todos os editor, e já existem vários tutoriais de instalação no TibiaKing. ⛔
? Passo 1: Baixando/Usando Radmin (Necessário para quem não consegue abrir as portas do roteador/modem) ?
? Passo 2: Hosteando uma partida no Remere's Map Editor ?
? Passo 3: Entrando na live de alguém ?
Demonstração em ação (Ignorem a musica)
? DEMONSTRAÇÂO ?
⚠️ DOWNLOAD REMERES MAP EDITOR 3.3: LINK ⚠️
⚠️ DOWNLOAD RADMIN: LINK ⚠️
-
Ackerzin deu reputação a Rusherzin em Compactar script!Na verdade o teu script original pega uma posição randômica entre as 3 da lista, por isso perguntei. Mas tu pode fazer assim:
local positions = { [999] = { {x = 1000, y = 1000, z = 7} }, [1000] = { {x = 1000, y = 999, z = 7} }, [1001] = { {x = 1001, y = 1001, z = 7} } } function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) local pos = positions[item.actionid] if not pos then return true end doTeleportThing(cid, pos[math.random(1, #pos)]) return true end
-
Ackerzin recebeu reputação de Nto Avus Official em Água transparente no Tibia 70% (psd + png + obd)https://github.com/SaiyansKing/Tibia-Extended-Client-Library/releases/tag/1.0
-
Ackerzin deu reputação a Heyron em [OTClient Showoff] Mostre seu Projeto/Módulo/Interface do seu OTClientEssa comunidade br é foda, na boa. Nunca vou achar tanto conteúdo de OT diferenciado em nenhum outro fórum.
Aqui estão e já passaram os melhores mappers, programadores, spriters e a porra toda.
-
Ackerzin deu reputação a MUNlZ em [Dll Injection] Old Client Auto UpdaterBom galera, estou voltando a trabalhar com tibia após alguns anos apenas nas Sombras =P
Estou com um projeto de reviver o Pokémon SvkE, exatamente como ele era nos primordios de 2010, e para isso estou utilizando o old client, mas como vocês sabem para customizar o old dá um trabalho bem pesado, já faz algumas semanas que estou estudando injeção de dependencia no old e venho aqui mostrar o meu trabalho com o moduo de Auto Updater, segue abaixo o gif:
Bom como eu trabalho o dia todo e ainda estou pegado no svke nos tempos livres, acaba que fico com pouco tempo de tentar postar algum tutorial do assunto, mas para quem tiver interesse nessa area de dll injecion, criação de janelas customizadas e etc.. Recomendo dar uma olhada no projeto do tibianic-dll vocês encontram fácil no github, ele é para 772 mas já é uma base para vocês verem como que funcionam as coisas em uma dll.
Sobre o updater em sí o que eu fiz foram os seguintes passos:
No cliente eu tenho um arquivo chamado version, nele vai ficar salvo a versão do cliente do jogador.
Quando eu abro o cliente pego a versão dele e envio para uma API rest.
Na API rest eu checo se a versão que foi informada pelo cliente está na mais atual ou não, se não estiver eu envio de volta pra ele a lista de arquivos que precisam ser baixados e a nova versão.
No cliente eu recebo essas informações da API e começo o processo de download dos arquivos e só sucessos.
OBS1: A API rest eu fiz em .net core mas pode ser em qualquer tecnologia, php, lua, um simples xml em uma pasta do seu site, vocês que vão decidir, eu optei dessa forma pois na minha concepção é a forma ideal, eu pretendo criar um programinha desktop ou até mesmo no meu site, uma integração com a api, onde eu seleciono os arquivos coloco a versão e subo essas coisas para a api salvar no banco e por sua vez repassar as informações novas para os clientes S2.
OBS2: Quem tiver ficado interessado no projeto do svke só entrar no discord para jogar ou acompanhar o desenvolvimento, atualmente estamos em beta: https://discord.gg/8XZc64yN9G
-
Ackerzin deu reputação a Cat em Água transparente no Tibia 70% (psd + png + obd)ÁGUA TRANSPARENTE NO TIBIA
Amostra/teste:
Download Tibia.otfi -> Arquivo necessário para ativar transparência no seu client.
(coloque junto ao tibia.dat e tibia.spr)
Tibia.otfi
Para ativar a transparência nas versões 8.54 e 8.60 é necessário o uso de dll:
https://github.com/SaiyansKing/Tibia-Extended-Client-Library
Download Object Builder -> Programa usado para add sprites
https://github.com/ottools/ObjectBuilder/releases/tag/v0.4.8
Download Item Editor -> Usado para cadastrar as propriedades de itens novos e abrir no map editor.
https://github.com/ottools/ItemEditor/releases/tag/v0.5.1
Download Sprites
Contém:
- Sprites de piso d'água full ground + 1 estilo borda (recomendo usar todos como borda, tirar full ground)
- Sprites borda água-barranco.
- Sprites borda água-areia.
- Sprites borda areia-barranco-água.
- Sprites borda água solo.
- Sprites cachoeira + quedas d'água versão leste/norte
- Sprites água transparente versão córrego (12x)
sprites transparentes.rar
(Senha para abrir o arquivo: tibiaking)
-
-
Ackerzin recebeu reputação de Cat em (Resolvido)Contagem de tempo por StorageVocês podem postar isso para nos, meros mortais?
-
-
-
Ackerzin deu reputação a xWhiteWolf em DIA 18piedade
-
-
-
Ackerzin recebeu reputação de Rogex Joyz em Premium AccountO @movie quer o script que aparece essas mensagens ai, acho que é quando clica no livro certo? pega o action que ta nele, e procura em actions.xml depois ve o nome do arquivo, abre ele e posta o script aqui.
Mas faz o seguinte, apaga isso ai tudo faz isso.
data/actions/scripts
diasvip.lua
function onUse(cid, item, fromPosition, itemEx, toPosition) local dias = 10 -- quantidades de dias premium que vai add doPlayerAddPremiumDays(cid, dias) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você ganhou " .. dias .. " premium.") doRemoveItem(item.uid, 1) end
data/actions e abra o actions.xml e add essa tag:
Troca o "1234" pelo ID do item que você quer que de Premium.
<action itemid="1234" event="script" value="diasvip.lua"/>
Agora pra fazer um tile no chão que só Premium passa, faça o seguinte.
data/movements/scripts e crie um arquivo chamado passe_vip.lua e dentro desse arquivo coloque:
-- Creditos: Breno Neves (KotZletY) = Criador do Script! function onStepIn(cid, item, position, fromPosition) if getPlayerPremiumDays(cid) >= 1 then doSendMagicEffect(getThingPos(cid), 12) doPlayerSendTextMessage(cid, 25, "Seja Bem-vindo ".. getPlayerName(cid) .." !") else doTeleportThing(cid, fromPosition, true) doSendMagicEffect(getThingPos(cid), 2) doPlayerSendTextMessage(cid, 25, "Apenas Players Premium podem passa.") end return true end Agora em data/movements e abra o arquivo movements.xml e adicione essa tag:
Em actionid="50008" coloque esse action id no(os) pisos onde o player tem que passar "MAPA EDITOR"
<movevent type="StepIn" actionid="50008" event="script" value="passe_vip.lua"/> Tudo isso que postei, achei em 2 minutos aqui no forum, basta procurar as coisas que você acha facil!
-
-
Ackerzin deu reputação a Naze em Otimizado: AutoLoot in Sources for TFS 0.3.6, TFS 0.4@RicK Sanchez
em monsters.cpp usa esse dropLoot:
e esse createChildLoot :
-
Ackerzin deu reputação a Naze em Otimizado: AutoLoot in Sources for TFS 0.3.6, TFS 0.4@RicK Sanchez Na linha 722 tenta substituir
unsigned long lootListSize; por
uint64_t lootListSize = 0;
Teria q colocar um configManager com numero de slots free numa verificação na parte de add do talkactions, depois edito esse post com essa modificação.
-
Ackerzin deu reputação a Naze em Otimizado: AutoLoot in Sources for TFS 0.3.6, TFS 0.4Adaptar não teria como, pois iria contra a logica do sistema que é entregar o item direto ao player ao invés do corpo.