Ir para conteúdo
Propaganda

gutinha

Administrador
  • Total de Posts

    87
  • Registro em

  • Última visita

  • Dias Ganhos

    18

Tudo que gutinha postou

  1. Tópico Aprovado! Somos gratos por sua contribuição ❤️ REP+
  2. Tópico Aprovado! Somos gratos por sua contribuição ❤️ REP+
  3. Nice content
  4. Tópico Aprovado! Somos gratos por sua contribuição ❤️ REP+
  5. Tópico Aprovado! Somos gratos por sua contribuição, com certeza será útil para toda a comunidade! ❤️ REP+
  6. Salve rapaziada, esse tutorial é pra você que odeia ter que ficar abrindo suas bags toda vez ao relogar no client. Bora lá, na source do server 1° Passo 2° Passo 3° Passo 4° Passo 5° Passo Feito isso, basta compilar e testar. Código retirado do github do v8 > [Hidden Content]
      • 21
      • Like
  7. O próprio v8 já tem o auto updater, basta configurar. [Hidden Content]
  8. gutinha

    Item Editor 64px

    Salve rapaziada, vim disponibilizar o Item Editor compilado para sprites 64x64 Download: Github do projeto: [Hidden Content] Créditos ao @ SkullzOTS
      • 19
      • Thanks
      • Like
      • Confused
  9. gutinha

    RME 64px

    Salve rapaziada, vim disponibilizar o RME editado pra sprite 64x64. Download: Github do projeto: [Hidden Content] Créditos ao @ SkullzOTS
      • 21
      • Thanks
      • Like
  10. 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!
  11. 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
  12. 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
  13. Com efeito envolta teria q usar aura, já foge do intuito do script, seria outra coisa.
  14. 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
  15. Tópico Aprovado! Somos gratos por sua contribuição, com certeza será útil para toda a comunidade! ❤️ REP+
  16. Outfit com 8 animações
  17. Mano, não foi testado no canary. Então não sei te informar.
  18. 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
      • Like
  19. 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
  20. Manda mensagem lá no discord do tibiaDevs pra gnt combinar
  21. Consegue ir anydesk algum dia pra gente testar?
  22. 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
×
  • Criar Novo...