-
Total de Posts
101 -
Registro em
-
Última visita
-
Dias Ganhos
18
Tipo de Conteúdo
Perfis
Fóruns
Galeria
Downloads
Tudo que gutinha postou
-
Salve rapaziada, vim disponibilizar o RME editado pra sprite 64x64. Download: Github do projeto: [Hidden Content] Créditos ao @ SkullzOTS
-
- 27
-
-
-
Compilando TFS 0.3.6 com Dev C++ para Windows
gutinha postou um tópico no fórum em Tutoriais de Infraestrutura
Eu sei que isso pode parecer muito antigo, mas é algo que eu gostaria de compartilhar porque demorei muito para resolver alguns detalhes, então vamos lá. Bem, antes que você diga 'Meeh, isso é muito antigo, ninguém liga', eu comecei meu servidor OT há alguns anos para o Tibia 8.60, e naquela época eu só tinha as sources para o TSF 0.3.6. Então, vamos começar com o tutorial Primeiramente, você deve baixar o Dev C++ no seguinte link: clique aqui Instale-o e, quando terminar, vá para a configuração do sistema (não sei exatamente o nome, mas é onde você altera as configurações do computador) e depois vá para 'Sistema' > 'Parâmetros avançados do sistema' > 'Variáveis de ambiente'. Desculpe se escrevi algo diferente, mas acho que você vai entender. Neste local adicione na variável 'PATH' a pasta onde seu Dev C++ está instalado, será algo como C:\Arquivos de Programas (x86)\Dev-Cpp ok? Por precaução, faça isso para as variáveis utilizadas pelo usuário e pelo sistema. Não esqueça de clicar em OK. Aí começa a diversão, você não usará o Dev C++ instalado antes! O que você vai fazer é baixar outro Dev C++, que tenha tudo que você precisa, tem alguns links onde você pode encontrar. Stian's Dev-cpp: Aqui > StiansRepackDev-Cpp_v2.zip Certo, você precisará da source do seu servidor, caso não tenha porque está aqui nesse tutorial? kkkk Bem, com tudo em mãos, agora vamos abrir o Dev C++ do Dev-cpp do Stian! Basta clicar no arquivo 'devcpp.exe'! Então, vamos verificar algumas coisas. Primeiro você vai em Arquivo> Abrir Projeto, e depois procura onde você salvou o The Forgotten Server, e será algum diretório como C:\Users\Your_user\Desktop\cryingdamson 0.3.6 (8.60) V8.2 Source\dev -cpp, e neste arquivo você procura TheForgottenServer-console.dev para finalmente abri-lo em Dev C++. Em Project > Project Options > Parameters: O compilador C++ deve ser: -D__USE_MYSQL__ -D__USE_SQLITE__ -D__ENABLE_SERVER_DIAGNOSTIC__ -D__CONSOLE__ E o Linker deve ser: -O1 -lboost_system -lgmp -llua5.1 -lmysql -lboost_regex -lsqlite3 -lwsock32 -lxml2 -lmysql -lws2_32 -s -lboost_filesystem -lboost_thread Ok, ainda em Project > Project Options > (mas) Diretórios/Arquivos: Em Library Directories você deve adicionar o diretório onde você salvou o Dev-cpp do Stian, algo como C:\Users\Seu_usuário\Desktop\Stian's Dev-cpp\lib e incluir diretórios devem adicionar C:\Users\Your_user\Desktop\Stian's Dev-cpp\include Obs: Esse é o caso do diretório estar na sua área de trabalho, ok? Tenha certeza de onde estará Quase terminando, acredite! Então, o próximo passo é em Tools > Compiler Options > Directories Para binaries, adicione: C:\Users\Your_user\Desktop\Stian's Dev-cpp\bin Para libraries, adicione: C:\Users\Your_user\Desktop\Stian's Dev-cpp\lib Para C includes adicione: C:\Users\Your_user\Desktop\Stian's Dev-cpp\include Para C++ Inclui adição: C:\Users\Your_user\Desktop\Stian's Dev-cpp\include\c++ Feito isso! Certifique-se de que não haja um diretório chamado MinGW em sua pasta C, como C:\MinGW, porque você não conseguirá terminar a compilação, acredite. Bem, acho que é isso, tente compilar e fique feliz com seu próprio servidor OT!- 2 respostas
-
- 109
-
-
-
-
-
Como por efeito shades/particula no OTC v8?
gutinha respondeu ao tópico de qrcode em OTClient Mehah, V8 e derivados
Se a versão do seu servidor for 1.x, o otcv8 tem um repositório com os commit das features do client. [Hidden Content] Só implementar na source e ativar a feature no client- 5 respostas
-
- 152
-
-
-
-
-
ANSWERED erro ao ligar servidor no ubuntu 22.04
gutinha respondeu ao tópico de Marcelo Junior em Resolvidos
O problema está no seu script de start, Ele está procurando um diretório que não existe "/home/pedro/desktop/sv/database" Além de outros erros ali em cima -
Efeito no jogador ao andar
gutinha respondeu ao tópico de gutinha em TFS 0.X, Compartilhe seu código C++, LUA, PHP e etc
Com efeito envolta teria q usar aura, já foge do intuito do script, seria outra coisa. -
Opa mano, o erro está dizendo que a versão do seu visual studio é desatualizada a versão que a source está pedindo, tente atualizar o visual studio
-
[Aberto] Base Poke Dxp Servidor+Cliente+Soucer (2023)
gutinha respondeu ao tópico de Zeon em Servidores Poketibia
Tópico Aprovado! Somos gratos por sua contribuição, com certeza será útil para toda a comunidade! ❤️ REP+ -
Sprites do NTO NINDO ( exclusivo )
gutinha respondeu ao tópico de The Baker em Compartilhe suas sprites
-
Sprites do pokeSHIELD ( exclusivo )
gutinha respondeu ao tópico de The Baker em Compartilhe suas sprites
-
[Tutorial] Como extender a tela do otclient e otcv8 (TFS 1.x e 0.3.6)
gutinha respondeu ao tópico de gutinha em OTClient Mehah, V8 e derivados
Mano, não foi testado no canary. Então não sei te informar. -
[GlobalEvent] Vip grátis para os top level
gutinha postou um tópico no fórum em TFS 0.X, Compartilhe seu código C++, LUA, PHP e etc
Salve rapaziada, esse script faz com que os 5 top leveis do servidor tenham vip por 1 semana. Ele faz essa checagem em um dia configurável no script. Por exemplo irei usar toda sexta. Testado em 0.3.6-
- 2
-
-
Salve rapaziada, vou trazer alguns comandos básicos pra bloquear alguns ataques DDos a sua host. É necessário estar usando linux. 1. Use o iptables para configurar o limite de conexões por IP, por segundo/minuto. Exemplo com portas 7000-8000 e 3 regras: máximo de 10 conexões ao mesmo tempo de 1 IP máximo de 40 novas conexões por minuto a partir de 1 IP máximo de 2 novas conexões por segundo de 1 IP Execute no terminal cada comando, respectivamente. sudo iptables -A INPUT -p tcp --syn --dport 7000:8000 -m connlimit --connlimit-above 10 --connlimit-mask 32 -j REJECT --reject-with tcp-reset sudo iptables -A INPUT -p tcp --dport 7000:8000 -m state --state NEW -m hashlimit --hashlimit-mode srcip --hashlimit-above 40/min --hashlimit-burst 40 --hashlimit-name ots_conn_rate_min -j REJECT --reject-with tcp-reset sudo iptables -A INPUT -p tcp --dport 7000:8000 -m state --state NEW -m hashlimit --hashlimit-mode srcip --hashlimit-above 2/sec --hashlimit-burst 2 --hashlimit-name ots_conn_rate_sec -j REJECT --reject-with tcp-reset 2. Se for host da OVH, você pode ir ao painel e configurar o anti-ddos para funcionar em 0 segundos, não em 30. O modo anti-ddos padrão da OVH é: analisar o tráfego de rede em busca de DDoS, se detectado: ativar o anti-ddos (leva de 0 a 120 segundos). Você pode configurá-lo para passar todo o tráfego de rede através do sistema anti-ddos, então ele ativará a proteção em 0 segundos. Conexões em massa com a porta 7171 geralmente bloqueiam a porta 7171 ao atingir o limite padrão do Linux de 1.024 conexões por aplicativo (ex. OTS). Aqui está o tutorial do gesior de como reconfigurá-lo para valores muito altos (está em polonês, mas poucas pessoas fizeram isso com o Google Translate e funcionou): [Hidden Content] Créditos: Gesior
- 2 respostas
-
- 19
-
-
-
Manda mensagem lá no discord do tibiaDevs pra gnt combinar
-
Consegue ir anydesk algum dia pra gente testar?
-
[LUA] Como migrar scripts do TFS 0.x para o TFS 1.x
gutinha postou um tópico no fórum em TFS 1.X, Compartilhe seu código C++, LUA, PHP e etc
APRENDA PELO EXEMPLO! Neste tópico postarei o script que migrei do antigo TFS para o TFS 1.1+. Eles não são um sistema pronto para ser executado, então não posso publicá-los em Recursos, mas tenho certeza de que muitas pessoas podem aprender como escrever 'novos scripts LUA' a partir dele. 1. onStatsChange(cid, attacker, type, combat, value) evento em 1.x é dividido em 2 eventos: onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin) onManaChange(creature, attacker, manaChange, origin) No TFS antigo você tinha que usar 'return false' para bloquear os danos, no novo você precisa definir os valores dos danos como 0 - as variáveis LUA estão vinculadas às variáveis C++ As variáveis vinculadas no TFS 1.1+ são: primaryDamage primaryType secondaryDamage secondaryType manaChange Se você modificar o valor de qualquer um deles, isso mudará nos cálculos do TFS C++! Agora você pode não apenas bloquear o dano, mas também reduzi-lo em porcentagem ou valor. 1° exemplo, reduza o dano de mana [e cura, poções?] em 25%: function onManaChange(creature, attacker, manaChange, origin) -- verifica se o atacante é Jogador, 'criatura' é sempre Jogador, pois 'registerEvent' é apenas para jogadores if attacker:isPlayer() then -- alterar manaChange para 75% do valor inicial manaChange = (manaChange * 75) / 100 end return true end 2° exemplo, alguma arena PvP (teletransporte para o templo quando o HP estiver abaixo de 0) e proteção de loot para níveis baixos: --// SCRIPT ANTIGO TFS 0.3.6 local Arena = { frompos = {x=1173,y=1390,z=7}, topos = {x=1250,y=1422,z=7} } local TemploArenas = {x=1429, y=1242, z=7, stackpos=1} function onStatsChange(cid, attacker, type, combat, value) if isInRange(getCreaturePosition(cid), Arena.frompos, Arena.topos) then if type == 1 then if getCreatureHealth(cid) <= value then if isPlayer(cid) then doSendMagicEffect(TemploArenas, 10) doTeleportThing(cid, TemploArenas, true) doCreatureAddHealth(cid, getCreatureMaxHealth(cid), true) if isPlayer(attacker) then doPlayerSetPzLocked(attacker, true) end end return false end end end if isPlayer(cid) and type == 1 and getCreatureHealth(cid) <= value then if getPlayerLevel(cid) <= 100 then if (getCreatureSkullType(cid) ~= SKULL_RED) and (getCreatureSkullType(cid) ~= SKULL_BLACK) then doCreatureSetDropLoot(cid, false) end end end return true end --// SCRIPT NOVO PARA TFS 1.1 local Arena = { frompos = {x=1173,y=1390,z=7}, topos = {x=1250,y=1422,z=7} } local TemploArenas = Position(1429, 1242, 7) --// config as Position object --// acertar na mana não pode matar o jogador, apenas acertar no HP, então não precisamos do evento onManaChange function onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin) local player = Player(creature) if player then --// não nulo = é um jogador, não um monstro/npc if isInRange(player:getPosition(), Arena.frompos, Arena.topos) then if primaryDamage < 0 then --// é ataque, não cura --// se o primário estiver abaixo de 0, o secundário também estará abaixo de 0 local totalDamage = -(primaryDamage + secondaryDamage) --// somar o dano e alterá-lo para um número positivo if player:getHealth() <= totalDamage then --// doSendMagicEffect(TemploArenas, 10) TemploArenas:sendMagicEffect(10) --// doTeleportThing(cid, TemploArenas, true) player:teleportTo(TemploArenas, true) --// doCreatureAddHealth(cid, getCreatureMaxHealth(cid), true) player:addHealth(player:getMaxHealth() - player:getHealth()) local attackerPlayer = Player(attacker) if attackerPlayer then --//doPlayerSetPzLocked(attacker, true --// WTF, não há função para definir o bloqueio PZ no TFS 1.1 (e 1.2)! --// Bug reportado: [Hidden Content] end --// return false - old code to block dmg primaryDamage = 0 secondaryDamage = 0 end end end if primaryDamage < 0 then --// é ataque, não cura local totalDamage = -(primaryDamage + secondaryDamage) --// somar o dano e alterá-lo para um número positivo if player:getHealth() <= totalDamage then if player:getLevel() <= 100 then if player:getSkull() ~= SKULL_RED) and player:getSkull() ~= SKULL_BLACK then --// doCreatureSetDropLoot(cid, false) player:setDropLoot(false) end end end end end return true end Créditos: Gesior.pl -
Existem muitos tutoriais sobre como escrever scripts para o TFS 1.x, então decidi escrever um breve tutorial sobre como NÃO escrever scripts para o TFS 1.x. Neste tutorial irei descrever dois erros comuns que resultam em travamento do servidor! A primeira coisa que todos notam quando mudam o mecanismo do TFS 0.x para 1.x são os objetos no LUA. Existem muitos deles, mas os mais populares são: Jogador, Monstro, Npc, Criatura, Bloco, Item, Recipiente, Posição. O que a maioria dos criadores de scripts não sabe é que esses objetos são vinculados diretamente ao endereço na memória RAM (a objetos C++). Se você tentar usar o objeto C++ (por exemplo, obter o nome do jogador) que foi excluído, isso resultará em crash do servidor. O ruim disso é: você não pode verificar se o objeto foi excluído em C++! Os programadores C++ estão acostumados a tomar cuidado para não usar objetos excluídos. Os criadores de scripts LUA em todos os mecanismos antigos sempre recebem uma boa mensagem de erro quando usam uma variável que não existe (por exemplo, Criatura não encontrada). Existem 2 erros comuns que resultam em travamento. A pior coisa sobre eles é que nem sempre travam o servidor. Você pode escrever um código como esse, testá-lo, colocá-lo em seu servidor, muitos jogadores irão usá-lo... e depois de uma semana você terá um travamento aleatório. 1° Problema 2° Problema Como tornar os scripts seguros? Passe cid/guid/itemid/position, não objeto. Script do Problema 1 - versão segura: Script do Problema 2 - versão segura: Versão com ID do jogador (em scripts antigos chamados 'cid'). É um ID de jogador temporário. Ele muda quando o jogador relog/morre: Existem 2 razões principais para usar a versão do ID: Às vezes é útil saber que o jogador relogou/morreu (alterou ID). Se ele foi para a zona sem logout e seu ID mudou, significa que ele morreu. Também funciona para objetos Monstro, Npc e Criatura. Você pode armazenar o ID do monstro/npc/player e carregá-lo da mesma maneira - alguns scripts LUA funcionam para monstros (ex. movements). Há um motivo para usar o GUID: - Alguns scripts precisam saber se o jogador está online, mesmo que ele tenha relogado. Créditos: Gesior.pl
-
Provavelmente ele puxa as fotos no client pelo módulo, só ir no .lua e ver de qual pasta ele puxa as fotos.
-
Bom hoje estou trazendo aqui a famosa Lan Engine que funciona como Ninja Ripper e sim funciona em todos os clients. Como usar: Troque o driver do jogo para OPENGL e jogue tudo da pasta LanEngine para dentro da pasta do jogo e aperte F1. Você pode modificar o programa abrindo a LanEngine.dll como bloco de notas ou notepad++. Download e scan:
- 2 respostas
-
- 62
-
-
-
-
-
Qual problema q deu?
-
eu to com esse erro no meu servidor alguem poderia me ajuda
gutinha respondeu ao tópico de dtel em Resolvidos
Envia o código do arquivo Shredder Tem.lua -
Opa mano, eu já fiz um post sobre. Se quiser dar uma olhada:
-
Sistema de Roleta
gutinha respondeu ao tópico de eduardogaier em TFS 0.X, Compartilhe seu código C++, LUA, PHP e etc
Tópico Aprovado! Somos gratos por sua contribuição, com certeza será útil para toda a comunidade! ❤️ REP+
- Criar Novo...
