Histórico de Curtidas
-
premii deu reputação a AndreAzevedo em [IDÉIA+PEDIDO] Quest+Mob+Item+Raid o.oMuitos já devem ter tido esta idéia, mas não achei algo parecido aqui no tk, nem no famoso GooGle.
TFS: 0.4
Lá vai pensa comigo, Uma raid que aconteça 1 vez na semana "Domingo" se tiver como configurar data.
Raid eu sei fazer, mob também, mas gostaria que este mob contivesse um Script, se cabível fazer isto, pois já tentei utilizar script em monstros para aparecer portal e ele da erro.
Idéia é:
Um Evento Automático que no caso seria uma raid todo fim de semana no domingo, um mob nascesse em um local que configuraria na Raid sem problemas até ai, mas que o mob Conte-se Life infinita fácil configurar, e tal, mas que ao atacar o monstro, foce sorteado varias vezes e no mode Random os players que estiverem atacando ele, com algum item configurável que contaria como uma moeda de evento, e com essa moeda eu criaria um Npc para trocas, isso é fácin, queria que desse como nessa minha visão que tive "o.o", seria interessante, eu nunca vi scripts desta forma ou algo parecido.
ai é que vem a parte interessante para os Scripers mais fodas do TK, um local seria configurado para que apenas um Player "IP", poderia entrar no local, caso algum engraçadinho usar MC, o char recebe kick do servidor hehe. perdendo lugar na volta do mob para ataca-lo. e tem um porém o mob teria que ser "IMÓVEL".
RESUMINDO...
Um mob, que tu vai batendo e cada Golpe tem chance de 10% de receber um Item, configurado no script, esse item vai acumulando e troca, é como se fosse uma Moeda de Evento!
Oque consigo e não fazer sobre o que falei:
1- Criar um mob com vida gigantesca, e que Heale bastante para não morrer. CONCLUÍDO - André Felipe de Azev
1,1- deixar o Mob Imóvel - CONCLUÍDO - André Felipe de Azev
2- Script com Mob Apanhar e dar Random Item pro player, chance de 15% - CONCLUÍDO - @Elwyn
3- Raid - CONCLUÍDO - André Felipe de Azev
4- MAPA - CONCLUÍDO - André Felipe de Azev
5- Script de Negar MC entrar na area. - NÃO INICIADO -
6- Script que teleporta os players para o Templo após 15min no local do monstro - NÃO INICIADO -
7- NPC de Troca - EM CONCLUSÃO - André Felipe de Azev
Iniciação do Evento
História:
Monstro para o Evento. Nome Opcional.
RAID
SCRIPT 15% Chance Receber Item por Hit
NPC Que Troca os Itens Dropados no Monstro
MAPA OPCIONAL NÃO TEM DOWNLOAD
SCRIPT DOS 15min Perto do Monstro/ou atacando o monstro
Créditos: André Felipe de Azev
Créditos: @Elwyn
-
premii recebeu reputação de FeeTads em [OTX 2.x / 8.60] - OTSERVEREditei o post, adicionei as DLL's junto ao executável. valeu por avisar, ótima distro
-
premii deu reputação a L3K0T em Tibia Ginius Versão 1.1 by L3K0TTibia Ginius Versão 1.1 by L3K0T
O Tibia Genius, desenvolvido por L3K0T, é uma ferramenta essencial para desenvolvedores de OTServ que desejam otimizar e simplificar o processo de desenvolvimento dos seus servidores. Essa ferramenta integra diversas funcionalidades que eliminam a necessidade de utilizar múltiplos programas para tarefas distintas. Entre suas principais funcionalidades, destacam-se:
Item Editor: Permite a edição detalhada dos itens do jogo, facilitando a criação e modificação de itens conforme a necessidade do servidor. RME (Remere's Map Editor): Um editor de mapas completo que oferece uma interface intuitiva para criar e modificar mapas do jogo. Object Builder: Ferramenta para a construção e edição de objetos no jogo, essencial para personalizar a experiência do jogador. Mapa Converter: Utilitário que converte mapas entre diferentes formatos, garantindo compatibilidade e facilitando a integração de mapas em diversos servidores. Servidor Integrado: Opção para iniciar o servidor diretamente no ambiente Windows para testes, eliminando a necessidade de configurar servidores externos para verificações rápidas. Acesso Facilitado às Pastas: Botões dedicados para acessar rapidamente as pastas do servidor, aumentando a eficiência no gerenciamento dos arquivos do servidor.
Antes de utilizar o Tibia Genius, é necessário importar o servidor. Isso é feito através do botão "Selecionar Servidor", onde o usuário deve especificar a pasta do servidor para que todas as funcionalidades possam ser utilizadas de forma integrada. Da mesma forma, para utilizar o RME e o Item Editor, é preciso importar os arquivos SPR e DAT do cliente do jogo.
Com o Tibia Genius, l3k0t proporciona uma solução tudo-em-um para desenvolvedores de OTServ, tornando o processo de desenvolvimento mais ágil e centralizado, ao mesmo tempo que oferece ferramentas poderosas e de fácil acesso para a criação e manutenção de servidores personalizados.
Espero que ajude os preguiçosos risos, qualquer coisa reporte e ajude a melhorar, ideias são todas bem vindas!
Download GitHub: https://github.com/l3k0t/Tibia_Ginius
Scan Virus Total: https://www.virustotal.com/gui/file/f406f1310f8c5f403c35115eaaddc609ccdff2ff56b4a96b619ac7df914829e1?nocache=1
Discord do Projeto: https://discord.gg/MGD55hPWYf
-
premii deu reputação a WooX em (Resolvido)Usar potion e abrir corpos mortos/puxar ringProcure pela função bool Actions::useItemEx e onde estiver assim:
player->setNextActionTask(NULL); player->stopWalk(); player->setNextAction(OTSYS_TIME() + g_config.getNumber(ConfigManager::EX_ACTIONS_DELAY_INTERVAL) - SCHEDULER_MINTICKS); Altere para:
int32_t potions[] = {7620, 7589, 7590}; // IDs potions int16_t potionID = item->getID(); if(std::find(std::begin(potions), std::end(potions), potionID) == std::end(potions)) { player->setNextAction(OTSYS_TIME() + g_config.getNumber(ConfigManager::EX_ACTIONS_DELAY_INTERVAL)); } player->stopWalk();
Lembrando que isso vai retirar o exausted exActions de todas os items adicionados ali, terá que ser adicionado exausted no script lua das poções.
-
premii deu reputação a KotZletY em Aumentando a quantidade de ShootEffects permitida - 8.60Salve galera recentemente Criei um Tópico de como aumentar o Limite de effects no 8.60 para mais de 255 efeitos, e fiz um Tópico de como mudar de uint8 para uint16 nas Source, para MagicEffect e ShootEffect, porém o Tutorial ficou meio inútil para ShootEffect pois precisa mudar no Client também. E então hoje estarei mostrando como mudar no Client. Abaixo mais informações!
Esse Tutorial serve apenas para Versão 8.60 do Client, a versão 8.54 é diferente e então caso queiram eu posso mostra como fazer em um Futuro não distante. Hehe!
Para que as alterações funcione, é preciso que você modifique também na source da sua distro!
Muito bem, abra o OllyDbg e abra seu Client:
Depois de ter aberto o Client aperte Ctrl+G e procure pela função 004108F1 e de um enter, como mostra a foto abaixo:
Feito isso, você cairá exatamente em cima do endereço onde deve alterar, como mostra a imagem abaixo:
Muito bem hora de altera, o endereço que devemos altera é o segundo e terceiro. Dê 2x clicks ou aperte espaço em cima da função e mude o segundo endereço para CALL 004F9C00
e depois click em Assembly, como mostra a imagem abaixo:
Depois mudamos o terceiro endereço, para MOVZX EAX, AX e depois click em assembly, como mostra a imagem abaixo:
E fim, precisamos agora salvar nosso Client com a modificação, aperte com o Botão direito do mause e vá em
Copy to executable > All modifications
Depois em Copy All
Vai abrir outra janela, novamente click com o botão direito do mause, e vá em save file:
E depois escolha o Luga onde quer salvar:
E fim, lembre-se de fazer a modificação na Source, caso não saiba fazer use esse Tutorial aqui!
Download do OllyDbg
Scan do OllyDbg
Lembrando que o Vírus encontrado no OllyDbg é por causa da sua Dll que faz alteração interna na source de um Programa.
Créditos: {
Breno Neves (Eu)
Fernando Prado (Parça que me passou os últimos endereços.)
}
É proibido posta esse Conteúdo em outro Blog, site ou fórum, Tutorial feito exclusivo para o Tk!
Bom uso e até mais! xD
-
premii deu reputação a KotZletY em Aumentando a quantidade de effects permitida - 8.60Salve galera, recentemente um Membro postou um Tópico de como tirar o Limite de Efeitos do Old-Client(Client da Cipsfot ), só que somente para a versão 8.54, então devido ao numero de pedidos dos membros que utilizam Client na versão 8.6, resolvi criar esse Tópico ensinando a fazer isso, porém ele criou um Programa para Sobre-Escrever o Endereço, o meu Tutorial será na raça. Kkkkk Vamos nessa, a baixo citarei o Programa que iremos utilizar para essa mudança, e uns requisitos!
Informações e Requisitos!
Vamos colocar a mão na massa, abra o Debugador que faz a leita em Hexadecimal, para isso usaremos o OllyDbg, que deixarei o Link dele no final do Tópico. Após baixado abra ele. E no icone da pastinha no canto superior esquerdo, clique na pastinha e selecione O diretório do Client.
Obs: Lembre-se de deixa o Client junto com a SPR e Dat, pois irá precisa runnar o Client para ele mostrar os Endereços!
Apos ter carregado completamente, irá aparecer na metade a barra de rolagem, então suba para cima até o fim.
Feito isso de um Ctrl+S para abrir a função Find Command, e então digite essa chamada CALL 00410450 e de um enter.
OBS, lembre-se de desmarca a função Entire Block, e então achará a função, impossível dar erro, afinal só existe uma chamada como esse Code.
Depois de ter achado ela, de um Enter com a função selecionada, e irá até outro Endereço.
WTF, aja endereço nessa poxa! Kkkkk
E agora é hora da mágica, iremos mudar para Uint_16 finalmente. Kkkkkk,
Ali em baixo mais precisamente em cima dos Args, terá duas funções que você irá alterá, como mostra os próximos passos.
Click na primeira chamada, e aperte espaço ou aperte duas vezes com o botão esquerdo do mause, para que você possa alterá o endereço.
Irá vim a função CALL 004F9A60 então mude por completo para CALL 004F9C00 e click em assembly:
Agora fazemos isso na segunda função, abaixo da primeira, click duas vezes ou aperte espaço, e virá a função MOVZX EAX,AL, e então mude para
MOVZX EAX, AX e depois click em assembly:
Pronto, só isso seu Client agora passará a Ler em Uint_16 o que significa que você poderá usar até 65534 Effects no seu Old-Client, mais ainda não acabou, precisamos salvar. Após ter mudado, click com o Botão auxiliar(esquerdo) do mause, em cima em cima de uma das funções, qualquer uma, e vá em Copy to executable > All Modifications:
E depois Click em Copy All:
Irá aparecer outra janela, agora nessa nova janela, click novamente com o botão esquerdo do mause, E click em Save file e salve o Exe modificado na pasta desejada:
Pronto, seu Client foi Modificado com Sucesso, e como falei anteriormente, não esqueça de configurar seu Server em Uint_16, e ter liberado os efeitos para mais de 255, coloque quantos quiser, brincks tem um limite, de 65534, e fim, seja feliz.
Antes de mais nada vamos testa ? Veja no meu Dat, tem efeitos até 259, então irei usar o 259 para mostra que está tudo certo.
Isso ae Galera, tudo nosso nada deles. Bom Uso do Uint_16, é algo que presenciei muitos pedindo, e muitos cobrando para fazer essa Alteração, bem, ta ae, e vou nessa. E agora claro o Link do Download.
Gostaria de Informa que o Vírus Detectado, não é nada mais nada menos que um Falso-Positivo, por se tratar que Programa, faça uma Alteração Interna dentro de Outro programa. Caso você não saiba modificar a source para uint16 siga esse Tutorial aqui!
Download do OllyDbg Versão 1.10
Scan do OllyDbg Versão 1.10
Créditos: {
Breno Neves (Eu),
Fernando Prado (Parça que me passou o Ultimo endereço)
}
Peço desculpas pelos erros de Escrita nas imgs. Sorry! xD
Conteúdo Exclusivo para o Tk, não é permitido levar para outro site, blog ou fórum!
-
premii deu reputação a Kamuizera em Erro de Opcodes no otclientO meu tinha um erro parecido e a solução foi usar o Uint16 pelas effects serem extendidas, poder ser que funciona contigo.
Vá na pasta do seu client e procure por modules/game_features/features.lua, e na versão do seu cliente coloque:
g_game.enableFeature(GameMagicEffectU16)
g_game.enableFeature(GameDistanceEffectU16)
-
premii deu reputação a Ryaan em (Resolvido)Erro Gesior ao criar contatenta rodar esse comando na sua DB, já me salvou de muitos problemas
SET GLOBAL sql_mode='';
-
premii deu reputação a LeoTK em - Client 8.60 que abre estendido!@Damatio segue
OBS: ele abre estendido sem precisar de dll etc... a única coisa é que as dll não ta hokada ai só vai precisar você injetar as dll que queira add nele sem problemas
-
premii deu reputação a GabrielSapient em Launcher AutoUpdate C#Galera sempre procurei um Launcher AutoUpdate para meu servidor, depois de muita pesquisa e pouco conhecimento consegui fazer um em C#, está ai:
1. Download:
• Download | • Scan
2. Oque ele faz:
• Verifica a existência da versão local na pasta do cliente; • Se a versão do arquivo não existir, ele assume que a versão é "1.0" e cria um arquivo de versão; • Verifica arquivo .xml no servidor de atualização; • Baixar atualizações para todas as versões maiores do que a versão atual do cliente (atualiza tudo em apenas formato de arquivo .zip); • Extrai os arquivos .zip; • Exclui os arquivos .zip após a extração; • Arquiva a versão atualizada na pasta do cliente; • E, finalmente, desbloqueia o botão "Start Game". 3. Como editar: • Abra o arquivo .sln na pasta "VS Project" com o Visual Studio: Procure por: string Server = "http://127.0.0.1/Updates/"; • Altere o http://127.0.0.1/Updates/ para qualquer URL que você estará hospedando suas atualizações.
• Agora vamos procurar por: Process.Start("OTClient PkR DX9.exe", "\\Pokémon Rusty"); • Modifique o OTClient PkR DX9.exe pelo nome do .exe do seu Client.
• \\Pokémon Rusty e a pasta que está seu .exe e vai ficar seu Launcher. (troque sem tirar os "\\")
• No Visual Studio, selecione o controle WebBrowser(Neste caso, o nome "patchNotes") e alterar a url do "http://127.0.0.1/"para o caminho do arquivo index.html, na pasta do host: OBS: Isto á opcional, é apenas um template em .html. Você pode remove-lo e editar da maneira deseja. • Agora apenas jogue o .exe, .dll e o arquivo version da pasta "Launcher\VS Project\Launcher v2\bin\Debug ou Release" para a pasta de seu Client: Pronto! Agora e com o Site. • No host do site, apos colarmos a pasta Updates, editamos o arquivo Updates.xml, para cada atualização adicionamos um <update> fechamos com </update> como no exemplo do arquivo. Colocamos o arquivo atualização em .zip nessa mesma pasta, editando a versão e o nome no arquivo: • No arquivo version.txt colocamos a versão da nova atualização: • Uma dica para o .zip de atualização é colocar em pastas o caminho no client desejado a fazer update. Exemplo: data/things/854 nesta pasta colocaremos os arquivos que será substituído, no exemplo foi Tibia.spr e .dat. Depois compactamos e deixamos na pasta Updates, sem esquecer de colocar o nome no arquivo Updates.xml. 4. Dica • Pronto! Agora e só criar um instalador com o launcher, com atalho na área de trabalho (o launcher é o .exe que você colocou no client). Você pode modificar o launcher do jeito que quiser, o arquivo index.html e etc. Quando abrir o arquivo ele irá atualizar, liberar o botão "Start Game", e quando você clicar vai fechar o Launcher e abrir o Client. 5. Créditos Eu - Pelo launcher e pelo tutorial. -
premii deu reputação a Diego Rulez em Instalando Site e Compilando Source (Ubuntu 20.04)Nesse tutorial vou explicar como instalar tudo que é necessário para rodar qualquer site. Também ensino como compilar as sources OTX2 e TFS-1.3. Utilizarei a versão mais atual do Ubuntu, a versão 20.04.
Iniciando
Ao executar os comandos, algumas vezes será perguntado se você deseja continuar. Por padrão sempre aperte a tecla Y e em seguida a tecla ENTER do teclado, se houver algum ponto em que você precisara agir diferente eu irei indicar o que e onde fazer.
sudo apt update sudo apt upgrade sudo apt install zip sudo apt install nano
Instalando e Configurando NGINX
sudo apt install nginx sudo nano /etc/nginx/sites-available/default Nesse arquivo deve ser adicionado a chamada index.php e deve ser removido o sinal # em algumas linhas. Vou deixar em vermelho as modificações que deverão ser feitas no arquivo. Após terminar a edição aperte CTRL+X, aperte Y, aperte ENTER (tudo isso para salvar o arquivo).
server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; # Add index.php to the list if you are using PHP index index.php index.html index.htm index.nginx-debian.html; server_name example.com www.example.com; # pass PHP scripts to FastCGI server # location ~ \.php$ { include snippets/fastcgi-php.conf; # # # With php-fpm (or other unix sockets): fastcgi_pass unix:/var/run/php/php7.1-fpm.sock; # # With php-cgi (or other tcp sockets): # fastcgi_pass 127.0.0.1:9000; } } E agora, vamos reiniciar o serviço para que entre em vigor todas as alterações.
sudo systemctl restart nginx.service Para testar se ocorreu tudo certo com a instalação, insira o IP do seu VPS no navegador. Se obtiver uma tela de Boas Vindas como na imagem abaixo. Só vá para o próximo passo se estiver tudo certo até aqui.
Instalando MariaDB
sudo apt install mariadb-server
Instalando PHP
sudo apt-get install php-fpm
Instalando phpMyAdmin
Ao executar esse comando, vai aparecer uma tela indicando para você selecionar o apache2 ou lighttpd, porém não selecione nenhuma opção, apenas aperte TAB e depois ENTER.
Na próxima tela terá duas opções YES ou NO, aperte a tecla TAB para marcar a opção NO e depois aperte ENTER para prosseguir.
sudo apt-get install phpmyadmin Após isso, execute o comando a seguir e em sequencia entre no site http://ipNumericoDoSeuServer/phpmyadmin
sudo ln -s /usr/share/phpmyadmin /var/www/html
Será nescessário criar um acesso, pois qualquer outra senha que você tenha definido anteriormente provavelmente não irá funcionar. Não esqueça de substituir as informações em evidencia pelas suas.
sudo mysql -u root CREATE USER 'DIGITE UM LOGIN'@'localhost' IDENTIFIED BY 'DIGITE UMA SENHA'; GRANT ALL PRIVILEGES ON *.* TO 'DIGITE NOVAMENTE SEU LOGIN'@'localhost'; FLUSH PRIVILEGES; Após isso, acesse: 0.0.0.0/phpmyadmin. Onde você vai trocar o 0.0.0.0 pelo IP do seu VPS.
Lembra da senha que você escolheu na instalação do MariaDB? É aqui que você vai usa-la. O usuário é root e a senha é que você escolheu. Depois clique em Banco de Dados e em seguida digite um nome para o banco de dados e clique em criar.
Agora clique em importar, selecione a database e clique em executar.
Transfira os arquivos do seu site para o diretório /var/www/html. Preste muita atenção nessa parte, pois os arquivos do site já devem estar dentro da pasta html, não pode ficar algo como /var/www/html/site. Após isso, abra o arquivo config.php do website que você deseja utilizar e coloque as informações sobre o banco de dados: nome, root, senha.
Compilando a Source TFS 1.3
Entre no repositório do forgottenserver clique aqui
Faça o download para seu PC e extraia o arquivo. Renomeie a pasta extraída para otserv e abra o famoso arquivo config.lua. Configure essa parte de acordo com seus dados, também adicione a última linha.
ip = "digita o ip do VPS" -- MySQL mysqlHost = "127.0.0.1" mysqlUser = "root" mysqlPass = "digite a senha que você escolheu na instalação do Maria DB" mysqlDatabase = "digite o nome da database que você escolheu quando criou a database" mysqlPort = 3306 mysqlSock = "" passwordType = "sha1" Salve o arquivo e depois zipe a paste com a compactação .zip e envie para o diretório /home em seu VPS. Após isso, só executar em sequencia os comandos a seguir que estará compilado.
apt-get install git cmake build-essential liblua5.2-dev libgmp3-dev libmariadb-dev-compat libboost-filesystem-dev libboost-system-dev libboost-iostreams-dev libpugixml-dev libcrypto++-dev cd /home unzip otserv.zip cd otserv mkdir build && cd build cmake .. make -j 2 mv tfs.. && cd .. Para abrir o fechar o servidor respectivamente, você vai usar:
./tfs killall -9 tfs
Compilando a Source OTX 2
Entre no repositório do OTX2 clique aqui
Faça o download para seu PC e extraia o arquivo. Renomeie a pasta extraída para otserv e abra o famoso arquivo config.lua. Configure essa parte de acordo com seus dados, também adicione a última linha.
ip = "digita o ip do VPS" -- MySQL mysqlHost = "127.0.0.1" mysqlUser = "root" mysqlPass = "digite a senha que você escolheu na instalação do Maria DB" mysqlDatabase = "digite o nome da database que você escolheu quando criou a database" mysqlPort = 3306 mysqlSock = "" encryptionType = "sha1" Salve o arquivo e depois zipe a paste com a compactação .zip e envie para o diretório /home em seu VPS. Após isso, só executar em sequencia os comandos a seguir que estará compilado.
apt-get install subversion autoconf build-essential pkg-config libboost-dev libgmp3-dev libxml2-dev liblua5.1-0-dev libmariadbclient-dev-compat ccache libboost-filesystem-dev libboost-regex-dev libboost-system-dev libboost-thread-dev screen libssl-dev libboost-iostreams-dev cd /home/ unzip otserv.zip cd otserv && cd sources sh ./autogen.sh && ./configure --enable-server-diag --enable-mysql --enable-root-permission && make -j mv theotxserver .. && cd .. Para abrir o fechar o servidor respectivamente, você vai usar:
./theotxserver killall -9 theotxserver -
premii deu reputação a Altairjr em Gesior - Baiak-PvP 2020@msousay.94 provavelmente é a key do recaptcha do google precisa colocar uma nova.... se você quiser desabilitar o recaptcha para poder acessar ou criar conta no site, acessa o config.php e localize por:
$config['site']['google_captcha_enabled'] = true;
Onde está true troque para false
vai desabilitar a função do recaptcha e você vai conseguir acessar ou criar conta pelo site.
@necroids esse erro é porque não tem os rook sample, sorcerer, druid, paladin e knight junto do account manager, então você não consegue criar conta pelo site se não tiver eles.
Para resolver, rode as query a baixo no seu mysql.
INSERT INTO `players` (`id`, `name`, `world_id`, `group_id`, `account_id`, `level`, `vocation`, `health`, `healthmax`, `experience`, `lookbody`, `lookfeet`, `lookhead`, `looklegs`, `looktype`, `lookaddons`, `lookmount`, `maglevel`, `mana`, `manamax`, `manaspent`, `soul`, `town_id`, `posx`, `posy`, `posz`, `cap`, `sex`, `lastlogin`, `lastip`, `save`, `skull`, `skulltime`, `rank_id`, `guildnick`, `lastlogout`, `blessings`, `pvp_blessing`, `balance`, `stamina`, `direction`, `loss_experience`, `loss_mana`, `loss_skills`, `loss_containers`, `loss_items`, `premend`, `online`, `marriage`, `promotion`, `deleted`, `description`, `comment`, `create_ip`, `create_date`, `hide_char`, `signature`, `broadcasting`, `castDescription`, `viewers`, `ip`, `offlinetraining_time`, `offlinetraining_skill`, `guildjoin`, `sbw_points`) VALUES (NULL, 'Rook Sample', '0', '1', '1', '8', '0', '185', '185', '4200', '0', '0', '0', '0', '136', '0', '0', '0', '35', '35', '0', '0', '0', '1988', '2018', '7', '480', '0', '0', '0', '0', '0', '0', '0', '', '0', '0', '0', '0', '151200000', '0', '100', '100', '100', '100', '100', '0', '0', '0', '0', '0', '', '', '0', '0', '0', '', '0', '', '0', '127.0.0.1', '43200', '-1', '0', '0')
INSERT INTO `players` (`id`, `name`, `world_id`, `group_id`, `account_id`, `level`, `vocation`, `health`, `healthmax`, `experience`, `lookbody`, `lookfeet`, `lookhead`, `looklegs`, `looktype`, `lookaddons`, `lookmount`, `maglevel`, `mana`, `manamax`, `manaspent`, `soul`, `town_id`, `posx`, `posy`, `posz`, `conditions`, `cap`, `sex`, `lastlogin`, `lastip`, `save`, `skull`, `skulltime`, `rank_id`, `guildnick`, `lastlogout`, `blessings`, `pvp_blessing`, `balance`, `stamina`, `direction`, `loss_experience`, `loss_mana`, `loss_skills`, `loss_containers`, `loss_items`, `premend`, `online`, `marriage`, `promotion`, `deleted`, `description`, `comment`, `create_ip`, `create_date`, `hide_char`, `signature`, `broadcasting`, `castDescription`, `viewers`, `ip`, `offlinetraining_time`, `offlinetraining_skill`, `guildjoin`, `sbw_points`) VALUES (3, 'Sorcerer Sample', 0, 1, 1, 8, 1, 185, 185, 4200, 0, 0, 0, 0, 136, 0, 0, 0, 35, 35, 0, 100, 0, 1988, 2018, 7, '', 400, 0, 0, 0, 0, 0, 0, 0, '', 0, 0, 0, 0, 151200000, 0, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, '', '', 0, 0, 0, '', 0, '', 0, '127.0.0.1', 43200, -1, 0, 0), (4, 'Druid Sample', 0, 1, 1, 8, 2, 185, 185, 4200, 0, 0, 0, 0, 136, 0, 0, 0, 35, 35, 0, 100, 0, 1988, 2018, 7, '', 400, 0, 0, 0, 0, 0, 0, 0, '', 0, 0, 0, 0, 151200000, 0, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, '', '', 0, 0, 0, '', 0, '', 0, '127.0.0.1', 43200, -1, 0, 0), (5, 'Paladin Sample', 0, 1, 1, 8, 3, 185, 185, 4200, 0, 0, 0, 0, 136, 0, 0, 0, 35, 35, 0, 100, 0, 1988, 2018, 7, '', 400, 0, 0, 0, 0, 0, 0, 0, '', 0, 0, 0, 0, 151200000, 0, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, '', '', 0, 0, 0, '', 0, '', 0, '127.0.0.1', 43200, -1, 0, 0), (6, 'Knight Sample', 0, 1, 1, 8, 4, 185, 185, 4200, 0, 0, 0, 0, 136, 0, 0, 0, 35, 35, 0, 100, 0, 1988, 2018, 7, '', 400, 0, 0, 0, 0, 0, 0, 0, '', 0, 0, 0, 0, 151200000, 0, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, '', '', 0, 0, 0, '', 0, '', 0, '127.0.0.1', 43200, -1, 0, 0);
@luancanela23 pode dizer como fez para adicionar essa função?
-
premii deu reputação a FeeTads em Correções gesior/myacc + configurações + proteções (ddos?)Salve rapaziada do TK e da comunidade de tibia Otserv.
Recentemente alguns invejosos estão atacando servidores (DDoS), bugando o guilds de varios sites (tirando o lider e membros), assim buga a guild e muita coisa no OT.
Eles vão até o teu servidor e se passam por "adm do deletebra", já ouvi a uns tempos algumas pessoas falando disso, mas como eu tinha contato isso caiu por terra facilmente, um deles foi o ADM brendo, dono do antigo strongerFusion, onde ele me contou toda essa história, essa foi a primeira vez que me foi relatado sobre isso, hoje vejo que está parecendo ser mais frequente.
Caso qualquer pessoa entre no seu OT se passando pelo ADM do deletebra, favor entrar em contato comigo via discord: FeeTads#0246 Te ajudarei a resolver problemas que eles exploram sem cobrar nada por isso, para provar que não necessito atacar outros OT's para ter algum publico. Já tenho em mente quem pode ser essas pessoas, caso alguém tenha numero de telefone, nome real, ou alguma informação a mais dessas pessoas atacando e se passando por mim ou meu sócio, favor enviar no discord, irei atrás de resolver isso.
Vou deixar aqui alguns tutoriais de coisas básicas para você conseguir proteger o seu site desses SQL injections, e mais algumas coisinhas, caso futuramente eu resolva outros bugs explorados, vou postar aqui as correções.
Configurando CloudFlare (SSL) E subDominio (sv.seuIP)
Após isso para que a pessoa não entre no site pelo (sv.seudominio.com.br)
abra o index.php da pasta raiz (está dentro da pasta html)
if($_SERVER['HTTP_HOST'] == 'sv.seuDominio.com.br') { header("Location: https://seuDominio.com.br"); } if($_SERVER['HTTP_HOST'] == 'IP NUMÉRICO') { header("Location: https://seuDominio.com.br"); }
Isso fará que quando a pessoa tente entrar no seu site usando meios não seguros (DNS only) ele redirecione pro seguro > proxiado pela cloudflare
_________________________________________________________________________________________________________________________________________
CORREÇÃO GUILDS.PHP / INJECTION SQL TIRANDO LIDER DA GUILD
PROTEÇÕES PARA DIMINUIR EFEITOS DE DDoS
Espero que isso ajude a muitos, a se prevenir de pessoas que tentam atacar OT's se passando por outros, ou até que vão la pedir pontos para jogar se não eles irão atacar, se prevenir de pessoas mal intencionadas.
PS: Caso você tenha no seu site a pagine "house" e "tickets" recomendo retirar do seu site, pois há maneira de injetar SQL por esses arquivos.
Vou postar em breve o tickets arrumado.
Boa sorte rapaziada, se cuidem, e caso alguém faça isso, por favor entre em contato comigo.
-
premii deu reputação a Under em [ABERTURA OFICIAL] ETERNAL GLOBAL - CRIE JA SUA CONTA!Updates @SHARINGAN.exe
Removido a possiblidade de usar a funcionalidade auto attack target no client.
NEW FEATURES CLIENT 8.60
VSCYN SUPPORTE!
DISCORD RPC SUPPORTE!
SELECT OUTFIT 8.60 NEW WINDOW
MARKET SYSTEM 8.60
STORE
Em construção
-
premii recebeu reputação de Kramer em [OTX 2.x / 8.60] - OTSERVERBoa tarde á todos, eu baixei a source pelo github e abri pelo visual studio 2017, pediu para fazer upgrade pra uma boost mais atualizada do windows 10 etc, eu selecionei para não fazer o update, utilizei a boost 1_71_0 do próprio OTX e consegui compilar sem problemas ou erros irei deixar abaixo o download do executável já compilado e o scan no vírus total, peço desculpas caso esteja errado não tenho muita prática com tópicos.
OTX Windows 64 bits
LINK: https://www.mediafire.com/file/ce2vwbuopgyakro/TheOTXServer-64-bits-windows.rar/file
Scan: https://www.virustotal.com/gui/file/070c1fe14de7d967d2c210fbb890ffb9c0650a453c52d5f3c1b4a1aedead2a8c?nocache=1
-
premii deu reputação a FeeTads em [OTX 2.x / 8.60] - OTSERVEROpa rapaziadaa beleza?
Hoje estou disponibilizando uma source OTX 2, baseada na otx 2.x do mattyx - aqui, essa source que estou disponibilizando é um pouco diferente, com algumas features a mais do que a OTX padrão, como muitos sabem, a OTX serve apenas para abrir o seu OT, essa estou disponibilizando com algumas features, onde disponibilizei até scripts do TK, ou usando scripts do TK, tais como o autoloot na source do Naze, o projeto é pra Otserv 8.60.
Está sendo desenvolvido no github (projeto github) onde posto atualizações diárias do datapack e source. Vocês podem postar dúvidas, erros/bugs, dicas e qualquer outra coisa aqui no tópico ou no próprio github. Lembre-se de dar FOLLOW no projeto no github e SEGUIR o projeto aqui no fórum para acompanhar as atualizações.
Edit: MatheusJP2 Adicionado como contribuidor, ajudando a estender pra source custom
LINK: https://github.com/FeTads/otxserver/tree/custom
Essa Tree será pra implementar sistemas pra custom tibia / derivados, como sistema de aura, shaders, etc.. voltado para a modificação para OTC.
Edit
systems Added:
Max Absorb All: (protect SSA + Might Ring, você coloca o máximo de protect all que pode ser atingido, caso o player passe disso é ignorado, o maximo de protect vai ser o que está no config.lua)
Commit max absorb all edit: fixed all system
Delete Players With Monster Name: Deleta o player com nome de monstro, ou com nome proibido (alteravel pelo config.lua), caso vc deixe "deletePlayersWithMonsterName = false", irá apenas renomear o player aleatóriamente sem deleta-lo, ele não conseguirá logar com nome de monstro ou nome proibido.
ps: Esse script pega o monster.xml todo, então mesmo que você adicione novos monstros, não precisar mexer em nada, ele ja vai pegar o novo monstro, mesmo sem precisar derrubar o Ot etc..
deletePlayersWithMonsterName = true forbiddenNames = "gm;adm;cm;support;god;tutor;god ; god; adm;adm ; gm;gm ; cm;cm ;" --// other names here
edit: 30/10
modifyDamageInK = true (essa função ativada irá modificar a saida do dano pra K, por exemplo 219000 > 219.0K / 2.000.000 > 2.00 KK).
modifyExperienceInK = true (esas função também mudará a saida normal pra K, isso é bom em high EXP pra arrumar aquela exp "-2147483647", de muita EXP, irá mudar pra "+2.14 Bi Exp").
17/01 Last Changes:
displayBroadcastLog = true - Desabilita os logs de broadcast do server na distro, aqueles logs de eventos etc... deixa a distro mais limpa. (by kizuno18)
enableCriticalAndDodgeSource = true - (Sistema de Dodge E Critical de StatsChange pra source, deixa mais clean, mais leve, e o sistema pega em monstros, sem a necessidade de registrar o evento, previne bugs.)
pushInProtectZone = false - Sistema para desabilitar o push de player em PZ, impossibilitando que players empurrem outros players dentro do PZ.
SpyCast: Sistema de SPY, pra GM+ ver a tela dos jogadores, como se eles estivessem de cast aberto, GM spy não mostra aviso nenhum que vc está monitorando o player, (sistema de telescope, se o player clicar no item com actionId configurado, mostra os players com cast on), Para GM+ mostra todos os players logados, independente se estão de cast on, para players mostra somente players com cast on.
SendProgressbar: Sistema para feature do OTC, necessário saber usar e compilar o otcv8 com a modificação
SetCreatureSpeed: Sistema usado pra setar a quantidade exata de speed de alguma criatura/player, usado no sistema de roleta (ainda não disponivel do datapack).
(Projeto github)
Informações:
º 8.60
º Baseado na OTX 2.x mattyx
º Lib global (sistema pesadex)
º Informações / changelog
Dúvidas, erros, dicas e contribuições:
Caso tenha dúvidas, ou queira resolver algum bug/erro, dar dicas para o projeto, ou também ajudar em sua construção, crie um issue / pull requests pelo github ou use esse tópico.
Créditos:
FeTads (FeeTads#0246) mattyx (source base e datapack) Reason182 (fixes e mais) Luxx (meu sócio de servidor, ajudou com teste) Daniel (spriter e dev junior) ADM Mario (cara brabo dos mapas e testes, achador de bug profissional) Luan Luciano (cara brabo que no inicio me ajudou d++) MatheusJP2 (Editor e contribuidor com implementações pra Tree custom source)
Download:
O download pode ser feito diretamente no github, ou clonando o projeto via git.
How Compile:
Windows Tutorial - Linux(Ubuntu) Tutorial
Sistemas adicionado até o momento, todos 100% e sem bug.
-
premii deu reputação a Jzm em Mapa IKSUPANMapa IKSUPAN com respawn!!
Download:
https://www.mediafire.com/file/tk08cgl981ysxgn/Iksupan.zip/file
Scan:
https://www.virustotal.com/gui/file/589762c4536652920fc3d8e8cfb51cd5edd51dcabc9007351120ec985951df38?nocache=1
Créditos:
Canary
-
premii deu reputação a luanluciano93 em [Canary] Mapa Global Completo 14x AtualizadoOlá galera, em 02/12/23 o projeto Canary atualizou seu release para a versão 3.1.2 e como estou desenvolvendo um servidor usando esta base decidi divulga-la, pois a cada dia ela melhor muito, é um projeto promissor.
Para quem não conhece, Canary é um projeto desenvolvido no github de um servidor completo na versão 13.21 (atualmente) com todas as features do tibia global. Ele tem duas opções de datapack que seriam o global e um custom.
Aqui está o link do projeto para quem quiser conhecer melhor: https://github.com/opentibiabr/canary
Aqui está o link do lançamento do release para a versão 3.1.2 e suas mudanças e melhorias: https://github.com/opentibiabr/canary/compare/v3.1.1...v3.1.2
Aqui está o link do discord do projeto para dúvidas e etc: https://discord.com/invite/gvTj5sh9Mp
Aqui está o link de tutoriais e a documentação do projeto: https://docs.opentibiabr.com/home/welcome
Algumas das features existentes no projeto:
BOOSTED CREATURE:
EVENT SCHEDULE:
CYCLOPEDIA:
CHARMS:
DAILY REWARD:
PREY:
IMBUEMENTS:
MARKET:
STORE:
CUSTOM CHARACTERS:
DENTRE MUITOS OUTROS!
-
premii deu reputação a Belmont em [AntiMC] PortalAlguém modifica este script para que ao invés dele puxar a área do evento, ele já impedir que entre no portal? Obrigado desde já rep+ para quem ajudar.
E colocar um contador? Tipo, eu posso estar escolhendo quantos mc's pode entrar, se é 2, 3. Pq quero usar esses script em várias coisas.
-
premii deu reputação a slyton em [AJUDA] Mudando !party outfitAgora esse vai pegar!!!
<talkaction words="!party" event="script" value="party.lua"/>
function onSay(cid, words, param, channel) if not isInParty(cid) or getPlayerParty(cid) ~= cid then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não é líder de uma party") end local outfit = getCreatureOutfit(cid) local addons = outfit.lookAddons for _, cid2 in ipairs(getPartyMembers(cid)) do outfit.lookAddons = 0 doCreatureChangeOutfit(cid2, outfit) doPlayerSendTextMessage(cid2, MESSAGE_STATUS_CONSOLE_BLUE, "Outfit da party trocado.") if canPlayerWearOutfit(cid2, outfit.lookType, addons) then outfit.lookAddons = addons doCreatureChangeOutfit(cid2, outfit) return true elseif addons == 3 then outfit.lookAddons = (canPlayerWearOutfit(cid2, outfit.lookType, 1) and 1) or (canPlayerWearOutfit(cid2, outfit.lookType, 2) and 2) or 0 doCreatureChangeOutfit(cid2, outfit) end end return true end -
premii deu reputação a WooX em ERRO COMPILAR TFS 0.4 LINUX UBUNTU 20.04https://github.com/mattyx14/otxserver/commit/129d1f60ace94f0476b2d4d722b10b5ad9ab87e3
-
premii deu reputação a L3K0T em (Resolvido)-=[TFS]=- 0.4 8.60 Quando player usa magia em area ou mata um player com sword wand rod etc servidor trava volta trava e volta trava no jogo depois volta eu não sei o que é issolocal LVL_CRIT_STORAGE = 48904 local MULTIPLIER = 1.001 function onStatsChange(cid, attacker, type, combat, value) if type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS then if isPlayer(attacker) and isCreature(cid) then local playerLvlCrit = getPlayerStorageValue(attacker, LVL_CRIT_STORAGE) local critThreshold = playerLvlCrit * 3 local randomValue = math.random(0, 1000) if critThreshold >= randomValue then local boostedDamage = math.ceil(value * (MULTIPLIER - 1)) -- Subtrair 1 para obter o valor percentual doTargetCombatHealth(attacker, cid, combat, -boostedDamage, -boostedDamage, boostedDamage) -- Verifique se o atacante é uma criatura antes de obter sua posição if isCreature(attacker) then doSendAnimatedText(getCreaturePos(attacker), "+BOOSTER", 1000) end return false end end end return true end
-
premii deu reputação a Vabrindox em [Pedido] Tile que pode passar com x item sem removerfunction onStepIn(cid, item, position, fromPosition) local id,amount = 2160,1 if isPlayer(cid) and getPlayerItemCount(cid, id) < amount then doTeleportThing(cid, fromPosition, true) doPlayerSendTextMessage(cid, 25, "Voce so pode passar se tiver " .. amount .. " " .. getItemNameById(id) .. ".") doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) return true end return true end
-
premii deu reputação a Endless em Gerador de Outfits Automática para o SiteOlá meus senhores, tem muita gente que pede serviços em relação a Gerar Outfits Animadas do seu cliente, o que muitos não sabem é que existe esse sistema de Gerar as Outfit animadas gratuitamente na internet e ele foi desenvolvido pelo Gesior.pl (Polones), então todo o crédito deste tutorial em relações a códigos vão para ele.
Primeiro de tudo, o que é esse Sistema de Gerar Outfits Animadas?
Basicamente é 1 Sistema Web que vai ler o teu tibia.spr / tibia.dat e seu items.otb e gerar todas suas outfit do seu cliente em forma de frames e na hora de exibir o sistema utiliza uma script em php que fica responsável por montar 1 gif utilizando esses frames.
O resultado é algo como isto:
Existe 2 formas de utilizar o sistema, eu vou ensinar a mais fácil, para quem quiser vou deixar o link do código fonte e vocês podem simplesmente estar clonando o repositório e fazer suas alterações a vontade. (Sim, ele é open source e.e).
Código Fonte: https://github.com/gesior/open-tibia-library
Explicando como utilizar o sistema:
1° acesse o link => https://outfit-images.ots.me/generator/
Você deve visualizar algo como isto:
Percebam que ele vai pedir os seguintes dados:
-Client Version:
-Sprite file:
-Dat file:
-Otb file:
Antes de sair adicionando, precisamos configurar nosso cliente para que o sistema consiga reconhecer ele. Abra seu cliente no object builder. Agora vá na área de effects e apague todos os efeitos. Sim apague TODOS, agora vá até Tools->Spriter Otimizer
Clique em start e você vai ter 1 retorno parecido com isto:
Agora aperta CTRL+SHIFT+S, vamos salvar esse cliente em 1 pasta separada (você só vai usar ele pra esse sistema, então fique tranquilo, você não vai apagar o original). Na hora de salvar deixe desmarcado as 3 opções (Extended, Transparency, Improved Animations).
Tendo feito isso, agora vamos voltar para o site.
Em Client Version você vai digitar a versão de seu cliente. Exemplo: Se for 8.60 digite 860
Em sprite file você vai selecionar o tibia.spr do seu cliente que você exportou (esse sem efeitos)
Em dat file você vai selecionar o tibia.dat do seu cliente que você exportou (esse sem efeitos)
Em otb file você vai selecionar o items.otb do seu servidor.
Agora clique em Load Files. Você deve ter 1 retorno parecido com isto:
Agora clique em Generate Imagens e ele vai começar a gerar os frames das suas outfits.
Ao terminar ele vai efetuar sozinho o download das outfits.
Agora acesse este repositório no github e baixe os arquivos: https://github.com/gesior/open-tibia-library/tree/master/tools/colored-outfit-images-generator
Tendo feito o download, você vai extrair a pasta outfits.zip que você baixo e extrair a pasta que você clonou o repositório. Ao extrair o arquivo outfits.zip você vai encontrar 1 pasta chamada outfits_anim, dentro dela você deve ter algo como isto:
Cada pasta é referente a 1 looktype do seu cliente.
Agora copie a pasta 'outfits_anim' que está dentro da pasta outfits que você extraiu e cole dentro da pasta do repositório que foi clonado. Ficando assim:
Pronto, agora você somente precisa deixar essa pasta em 1 servidor web e utilizar a mesma via requisição. Exemplo:
Se você for exibir uma outfit, você pode exibir da seguinte forma:
<img src="http://seudominio.com/nomedapastaqueestaoosarquivos/animoutfit.php/?id=270">
Esse id será o looktype que você deseja. Lembrando que: Você pode colocar 1 script pra puxar a outfit de cada vocação e chamar esse diretório, ele vai exibir a imagem já com o diretório correto.
Sugestão de uso: Para derivados de NTO/DBO e afins, você pode utilizar para exibir as outfits de transformações de cada Personagens, algo como isto:
Outra opção é exibir na lista de Ranking no menu da direita (Normalmente Tibia Classico faz isso)
A criatividade fica por conta de vocês.
Créditos:
Gesior.pl por todo o código e disponibilizar para a comunidade em 1 Forum Gringo
A mim por disponibilizar o tutorial para a comunidade.
-
premii deu reputação a zipter98 em (Resolvido)Evento matar outro player ganhar EXPSubstitua seu creaturescript por este:
function onDeath(cid, corpse, deathList) local config = { exp = math.random(300000, 900000), killer_name = getCreatureName(deathList[1]), target_name = getCreatureName(cid) } --if getPlayerIp(cid) == getPlayerIp(deathList[1]) then return true end --se nao for testar em casa remova os 2 sinais(de menos) no começo do script. essa função é para evitar que alguem use MC para ganhar exp; if getGlobalStorageValue(9571) > -1 then if isPlayer(deathList[1]) then doPlayerSendTextMessage(deathList[1], MESSAGE_INFO_DESCR, "Você recebeu ".. config.exp .. ", de EXP por matar o ".. config.target_name ..".") doPlayerAddExp(deathList[1], config.exp) end end return true end Código da talkaction: function onSay(cid, words) if getGlobalStorageValue(9571) > -1 then setGlobalStorageValue(9571, -1) broadcastMessage("Experience on kill desactivated.") else setGlobalStorageValue(9571, 1) broadcastMessage("Experience on kill activated.") end return true end