Ir para conteúdo

Reds

Membro
  • Registro em

  • Última visita

Tudo que Reds postou

  1. Se você está usando esse aqui (acredito que seja): https://github.com/OTCv8/otclientv8 Abre o lugar onde fica o otclient_dx.exe Lá vai ter a pasta data e dentro da data tem a things. A questão de ser 8.6, 8.7 e etc.., varia pouca coisa, vai depender do que quer para o servidor. Exemplo: montaria o 8.7 em diante já vai vir pronto. Se for fazer no 8.6 vai ter que editar o OTC, adicionar uma penca de sprites e por ai vai..
  2. https://canyouseeme.org/ checa aqui se as portas realmente estão abertas
  3. 1 - Alguém sabe um server mais puro possível? para fazer a limpeza? - Como você está pensando em 8.6, pega um tfs 0.4 rev 3884. Não tem muitos scripts e é só você ir removendo. 2 - como adiciono o cliente OTC no server 8.6 - Basta criar uma pasta "860" dentro do diretório things do otclient e acessar. 3 - a adição de itens e sprites é feita pelo objectitem? - Vai precisar de um editor de tibia.dat e tibia.spr. Eu sugiro o ObjectBuilder. Da um google que você acha com scan e etc.., mas pode ficar tranquilo que não tem vírus. 4 - Tenho que fazer todas as edições e depois compilar o server (criar o tfs)? - A princípio o tfs já vem compilado para você. Só precisa compilar caso você queira fazer alguma edição que não seja possível fazer com as funções que o TFS proporciona. 5 - como adiciono tais coisas editadas no meu client (que eu quero q seja o OTC) - Eu acho bem chatinho de fazer e não tenho muito conhecimento. Confesso que encontrar conteúdo disso é meio chato, mas você pode ir estudando as estruturas dos componentes que já existem no OTC original e criar os seus a partir deles. 6 - Essa é uma boa versão para este tipo de coisa? se não qual recomendariam? - O tfs 0.4 rev 3884 é um dos mais completos que tem. Hoje em dia estou usando o TFS 1.2 e digo que sinto falta de algumas funções que tinham na versão antiga.
  4. Reds postou uma resposta no tópico em Suporte OTServer Derivados
    Você precisa importar os npc e monstros para o remeres
  5. Reds postou uma resposta no tópico em OTClient
    Boa tarde pessoal, vim aqui trazer o OTClient V8 + OTClient Bot v8. Acredito que a maioria do fórum já conheça o OTClient (utilizado em servidores como o pokexgames). Ano passado o Kondra começou um projeto e melhorou o OTClient, então hoje temos um client otimizado e com funções novas. Melhor otimização e renderização (60 fps em um computador de 11 anos) Melhor suporte para DirectX9 e DirectX11 Renderização adaptativa Renderizações de luzes refeitas Encontrador de caminhos e caminhada automática reescritas Reescrito sistema de caminhada Suporte HTTP lua api com JSON (O que permite troca de informações entre os clientes) Atualizador automático Novo sistema de arquivos Encriptação e compressor de arquivos Sistema automático de diagnóstico Interface atualizada Novo handler para erros e crashes Protocolo HTTP para login Notícias e lojas ingame Atualizado gerenciador de hotkeys Battle list atualizada e otimizada Novos painéis e efeitos visuais no mapa Removido diversos recursos não utilizados Kondra (criador dessa nova versão do client) destaca a velocidade em comparação ao client da cipsoft. Além disso foi criado um bot a parte para esse client. Dentro do otclient temos o candyBot, porém esse é muito mais avançado. Entre as funções disponíveis no OTClient V8 BOT temos: Auto stack Dash Transformador de gp Anti push Cavehunting (waypoints, autoattack, autoloot) auto hur auto utamo auto heal auto eat Vejam que para configurar o monstro a ser atacado, são disponibilizadas diversas funções, como spell, runa, distância.. Outros prints: Claro, além disso podem ser criados novas funções, já que o cliente está com todas as funções para isso. A documentação oficial das novas funções no bot está no github: https://github.com/OTCv8/otclientv8_bot Vídeo mostrando comuncação HTTP com JSON entre clientes para magicwall: Vídeo mostrando o cavehunting: Scan: https://www.virustotal.com/gui/file/2625727cb794aafea480ff2ee3107cd349b2266ba085190e57e8b82d0c3882d8/detection Download do client + bot: https://github.com/OTCv8/otclientv8/archive/master.zip Créditos: Kondra
  6. function onTargetCreature(cid, target) if isCreature(target) and getCreatureStorage(target, chaveStorage) > 0 then doTargetCombatHealth(cid, target, COMBAT_HOLYDAMAGE, -10, -20, CONST_ME_HOLYAREA) doCreatureSetStorage(target, chaveStorage, -1) end end
  7. estou tentando abrir um client no object builder, ele tinha um signature próprio, ai eu adicionei no xml, porém apresenta o seguinte erro: Alguém sabe como posso resolver?
  8. tira o código que ele mandou, o server vai continuar exatamente igual, porém dano em monstro e player vai ser o mesmo, você entendeu errado o que ele disse de black skull black skull -> TOMA o dobro de dano, vai continuar assim
  9. opa, me atrapalhei, coloca: setField(L, "magicPoints", item->abilities.stats[STAT_MAGICLEVEL]); se não der, abra items.cpp, de control + F por magicpoints e coloca o código aqui
  10. Addon e login?
  11. abre luascript.cpp e depois de: setField(L, "speed", item->speed); coloca: setField(L, "magicPoints", item->abilities.increment[STAT_MAGICLEVEL]); depois cria sua lógica usando algo +- assim: local currentItem = getItemInfo(itemid) local magicPoints = 0 if currentItem.magicPoints ~= nil and currentItem.dodgeChance > 0 then magicPoints = currentItem.magicPoints end se tiver alguma dúvida me avise EDIT: Lembrando que é o id do item, não o uid
  12. Você usa TFS 0.4? Ai eu te ajudo
  13. pior que o increaseMagic não tem como sem alterar as sources, achei que o luaGetInfo poderia trazer ML ou inc Magic, porém não traz, se quiser mesmo isso tem que alterar as sources, pelo menos no tfs 0.4 não tem nada para que isso funcione (ou eu to vendo mt errado..)
  14. Olá, há muitos anos publiquei um script no tibiaking de uma spell onde acontecia uma chuva de flechas, agora em 2019 eu refiz vários dos scripts do meu antigo servidor e este foi um deles. Basicamente eu simplifiquei o código (não tinha conhecimento suficiente para isso na época) e corrigi um dos bugs que existia, enfim segue o script: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_NONE) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -60, -1, -60, 5, 5, 4, 7) function onTargetCombat(cid, target) local posCid = getCreaturePosition(cid) local posTarget = getCreaturePosition(target) doSendDistanceShoot(posCid, posTarget, CONST_ANI_ONYXARROW) end setCombatCallback(combat, 4, "onTargetCombat") local area = createCombatArea(AREA_CROSS6X6) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end xml: <instant name="Chuva de Flechas" words="chuva de flechas" lvl="80" manapercent="25" prem="1" soul="0" aggressive="0" exhaustion="1000" selftarget="1" needlearn="0" event="script" value="especiais/mas shadow.lua"> <vocation id="2"/> <vocation id="6"/> </instant> Vou publicar o mesmo gif de demonstração pois a funcionalidade segue praticamente a mesma: https://giphy.com/gifs/r0DNAlUJKUxeo Espero que tenham gostado e notado como um código pode ser bem mais simples do que parece..
  15. opa, só vi hoje, manda ai o seu método que calcula attack speed por favor
  16. Muito bom, o melhor é que já tem todas as funções listadas, só baixar e por, não precisa configurar o json.
  17. Até comentei que algumas funcionalidades já vi no Notepad++, porém dos snippets e extensões, se tem não deve ser tão prático..
  18. Eu gosto bastante, você já conseguiu abrir? Qualquer coisa posso te mandar o instalador
  19. Não, o nuker manda pacotes de dados ao ip
  20. Reds postou uma resposta no tópico em Tutoriais sobre Scripting
    Boa tarde, há algum tempo não posto scripts por falta de sugestão, porém hoje navegando encontrei um pedido muito antigo que não foi fechado, talvez o criador do tópico já concluiu, mas vou disponibilizar para outras pessoas que queiram o código. O tópico era: No tfs 0.4 rev 3884 tem a mesma configuração para envio de critico, então para iniciar, você deve ir até o arquivo weapons.cpp e colocar abaixo de: player->sendCritical(); o seguinte: target->sendCritical(); Em creature.cpp adicione no final do arquivo o seguinte: void Creature::sendCritical() const { if(g_config.getBool(ConfigManager::DISPLAY_CRITICAL_HIT)) g_game.addMagicEffect(getPosition(), MAGIC_EFFECT_MIRRORVERTICAL); } E em creature.h adicione na linha abaixo de: void setLossSkill(bool _skillLoss) {skillLoss = _skillLoss;} o código: void sendCritical() const; Depois só compilar e testar. Imagem mostrando o resultado (apenas alterei o magicEffect): Edit1: notei que foi publicado em Aulas de Scripting ao invés de "Códigos", porém ao editar o tópico não posso mover para outro lugar.
  21. 1) Você usa a spell que tem a ativação 5x 2) na segunda ativação você matou o player ou monstro 3) sobram 3 ativações 4) nas próximas 3 ativações ele não vai encontrar o alvo 5) estoura erro no console
  22. Você tem que verificar se é player, pq as vezes ele morreu ou algo do tipo..
  23. sem o código fica dificil ajudar
  24. Reds postou uma resposta no tópico em Suporte OTServer Derivados
    local combat8_Brush_2 = createCombatObject() setCombatParam(combat8_Brush_2, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA) setCombatParam(combat8_Brush_2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat8_Brush_2,createCombatArea({{1, 0, 1}, {0, 2, 0}, {1, 0, 1}})) function getDmg_Brush_2(cid, level, maglevel) return (16)*-1,(53)*-1 end setCombatCallback(combat8_Brush_2, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_2") local combat0_Brush = createCombatObject() setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA) setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat0_Brush,createCombatArea({{0, 1, 0}, {1, 2, 1}, {0, 1, 0}})) function getDmg_Brush(cid, level, maglevel) return (27)*-1,(54)*-1 end setCombatCallback(combat0_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush") local function RunPart(c,cid,var,dirList,dirEmitPos) -- Part if (isCreature(cid)) then doCombat(cid, c, positionToVariant(getCreaturePosition(uid))) if (dirList ~= nil) then -- Emit distance effects local i = 2; while (i < #dirList) do doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList,y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1]) i = i + 2 end end end end function onCastSpell(cid, var) local startPos = getCreaturePosition(cid) addEvent(RunPart,800,combat8_Brush_2,cid,var) RunPart(combat0_Brush,cid,var) return true end
  25. opa, troca cid para param.cid

Informação Importante

Confirmação de Termo