Ir para conteúdo

Skulls

Herói
  • Total de itens

    859
  • Registro em

  • Última visita

  • Dias Ganhos

    22

Tudo que Skulls postou

  1. Boa noite galera, Trago hoje um gifzinho rápido do sistema de basic attack que estou desenvolvendo. Ele consiste em uma customização completa do ataque básico do jogador sem precisar de armas. A customização abrange desde efeitos, dano base, tipo de dano, distância e skill base até critical, dodge, rajadas, cleave e outros. O inicio desse sistema foi postado aqui no fórum por mim, mostro pra vocês agora a evolução dele e o leque de possibilidades que aquele sisteminha que postei abre quando alterado. Espero que gostem. Abraços,
  2. Qualquer edição nas sources precisa compilar para funcionar. No caso, você tem que compilar OTC e TFS pra funcionar. Abraços e valeu! =)
  3. Hahahaha valeu! São detalhes, mas na hora de fazer algumas coisas no OTC faz falta. Abraços!
  4. Boa tarde galera. Hoje trago um pequeno fix de compatibilidade na troca de informação básica do player entre tfs 1.2 e OTC. O que acontece é que o TFS envia uma coisa e o OTC está preparado para receber outras. A solução prevista aqui não foi testada em cipclients, portanto, não me responsabilizo. Envios que o ptc não utilizava e recebimentos que o tfs não enviava foram deletados. Chega de falar, mãos a obras. Primeiro passo: vá na source do OTC, no arquivo protocolgameparse.cpp, e altere a função void ProtocolGame::parsePlayerInfo(constInputMessagePtr& msg) pela mostrada abaixo: void ProtocolGame::parsePlayerInfo(const InputMessagePtr& msg){bool premium = msg->getU8(); // premiumint vocation = msg->getU8(); // vocationm_localPlayer->setPremium(premium);m_localPlayer->setVocation(vocation);} Segundo passo: agora no servidor, va em ProtocolGame.cpp, procure por void ProtocolGame::sendBasicData() e substitua por: void ProtocolGame::sendBasicData(){NetworkMessage msg;msg.addByte(0x9F);msg.addByte(player->isPremium() ? 0x01 : 0x00);msg.addByte(player->getVocation()->getClientId());writeToOutputBuffer(msg);} Bom galera, por hoje é só. Espero que ajude. Abraços
  5. A reformulação tem mais alguns passos, apos isso a sessao deve reabrir. Fico feliz que a galera testa gostando das mudanças. Abracos!
  6. O mark vacilou de tirar, ele tinha que ter colocado uma flag pra checar o cliente nela e pronto. Mas, resolvido xD Passei pelo mesmo tempos atrás, mas eu tinha preguiça de source edit. E cá estou eu hoje fazendo quase só isso. Valeu ai galerinha! Abraços!
  7. Pois é, eu acho essa função sensacional. Fiquei bolado pq o mark tirou no 1.x e a po##@ da sendTextMessage só gera número dinâmicos, nada de textos. =/ Valeu ai! o/ Hahaha obrigado @Daniel! Até que faço tópicos organizados, kkkk Parece impossível pra você assim como seus mapas são pra mim, hahahah Mas no fundo, essa função é bem simples. Só usei o canal do protocolo que ja existia no OTC e refiz ela . Abraços!
  8. comenta no meu topico por favor, ele disse Legal esse NPC @danihcv, belo trabalho! Da pra usar em várias situações! Abraços,
  9. Fala galera, tudo bem? Hoje, para estrear a cara nova do fórum, trago pra vocês uma função bem simples, porém muito legal e útil. Nos TFS 1.X a função sendAnimatedText foi retirada. O motivo aparente, pelo que procurei saber, é que a função não mais é suportada em cipclients. Porém, o suporte a função continua funcionando no OTC e, por isso, decidi refazê-la e trazer para vocês. O tfs 1.2 possui a opção de enviar número animados pela sendTextMessage, porém só funciona para números. sendAnimatedText -> Envia um texto animado na posição escolhida. Ex: "critical" animation, damage animation, etc. Sem mais delongas, vamos ao que interessa. Em luascript.h, abaixo de "// Game", cole: static int luaGameSendAnimatedText(lua_State* L); Em luascript.cpp, abaixo de "// Game", coloque a nova função: int LuaScriptInterface::luaGameSendAnimatedText(lua_State* L) { // Game.sendAnimatedText(position, text, color) TextMessage message; message.position = getPosition(L, 1); message.text = getString(L, 2); message.primary.color = getNumber<TextColor_t>(L, 3); if (message.position.x && message.position.y && message.position.z) { SpectatorVec list; g_game.map.getSpectators(list, message.position, false, true); for (Creature* spectator : list) { spectator->getPlayer()->sendAnimatedText(message); } pushBoolean(L, true); } else { lua_pushnil(L); } return 1;} Feito isso agora vá até player.h, procure por void sendTextMessage e logo após a segunda função sendText message cole: void sendAnimatedText (TextMessage& message) const { if (client) { client->sendAnimatedMessage(message); } } Para finalizar vamos criar o protocolo de envio das informações do nosso efeito de texto para o cliente. Vamos criar a chamada da função em protocolgame.h. Logo após "void sendTextMessage(const TextMessage& message);" coloque: void sendAnimatedMessage(const TextMessage& message); Vá em protocolgame.cpp, procure pela função "void ProtocolGame::sendTextMessage(const TextMessage& message)" e cole logo após seu fim: void ProtocolGame::sendAnimatedMessage(const TextMessage& message){ NetworkMessage msg; msg.addByte(0x84); msg.addPosition(message.position); msg.addByte(message.primary.color); msg.addString(message.text); writeToOutputBuffer(msg);} É isso galerinha, após seguir esses passos você terá a função sendAnimatedText funcionando certinho. Para usá-la basta, no lua, usar a função como no exemplo abaixo: Game.sendAnimatedText(Creature(attacker):getPosition(), "ATACOU", TEXTCOLOR_SKYBLUE) Abraços,
  10. Obrigado pelo "nova galerinha" mas eu sou das antigas mais antigas que a sua antiga! Da época que pokémon era só desenho, o JV ainda tava virando diretor, o Conde Sapo era vivo e Nostradamus não fazia arquitetura! huahuahueuhae Valeu ai pelos votos! Abraços!
  11. E esse favorecimento na equipe ai com uma citação quase gay ao Andy( @Night Wolf)? ahuehaeuheha Brincadeiras a parte, parabéns ai @Daniel pelo belíssimo trabalho. Que continuemos assim. Grande abraço!
  12. Isso eu ainda não cheguei a fazer não, mas é uma ideia legal! hehehe Obrigado ai!
  13. Tem,em mais de um tópico, informações sobre a desativação e reformulação da area de patrocínio. Lamento que tenha se sentido assim, mas em epoca de mudanças as vezes e complicado dar retorno para todo mundo.Em breve teremos novidades, se ainda estiver disposto procure nos contatar apos as reformulacoes. Abraços,
  14. Você nao esta sendo ignorado, o forum esta sendo reformulado em algums aspectos, dentre eles a area de projetos patrocinados. Nao possos dar maiores detalhes ainda, mas devemos ter novidades nos proximos dias. Vou te pedir so mais um pouquinho de paciência ate as coisas terminarem de ser planejadas e refeitas. Abraços,
  15. Reformulação é sempre importante para manter a seriedade e o foco no que realmente queremos. Tenho certeza que a decisão foi muito bem embasada, como sempre. Acredito no sucesso das mudanças e np bom trabalho que você vem realizando @@Daniel. Abraços!
  16. hahahahah acontece! O que tiver erro cria um topico que galera ajuda. Abraços!
  17. Piores erros de se diagnosticar é os que não acontecem nada =/
  18. Bom, tem N fatores que podem fazer o mod não funcionar. É muito dificil dizer, ainda mais cada mod comportando de um jeito diferente. Apresentam algum erro ou algum comportamento diferente ou simplesmente não dão sinal de vida?
  19. Não, pois na verdade é só um bug fix. Existe uma função no TFS chamada creatureHideHealth que faz com que a vida da criatura não apareça e que funciona bem para cipclient. Porém, o OTC para de responder quando usado com ela e só volta quando a vida da criatura voltar a aparecer. Isso pq ele considera que o player estava morto e, portanto, não responde a suas ações. Esse tópico resolve esse problema e torna o hidehealth funcional para otc.
  20. Tópico movido para dúvidas / pedidos resolvidos.
  21. Ele vem fazendo um ótimo trabalho com o xtibia mesmo. Vamos em frente. Valeu pelos votos de boa sorte
  22. E o aprendizado. Valeu!
  23. Hahaha quando o projeto tiver mais concreto voces ficarão sabendo. Nao entendi o que disse sobre a aula.
  24. Cara, possível é. Eu não tenho tempo para fazer isso, porém basicamente você precisaria das imagens (rofl) e um mod com uma função para mostrar/esconder o painel da image (similar a de quando você clica em um botão). Esse painel seria desenhado por cima do jogo e os controles de jogo ficariam travados ate o painel sair. A funcao seria chamada por um callback que você teria que criar, tipo um onLoadNextScreen. ou algo asism. Daria um trabalho bom, não sei se compensa.
  25. Quando você altera só arquivos .cpp recompila só esse arquivo. Quando você altera cabeçalhos ai ele recompila todos os arquivos ligados aquele cabeçalho. Só quando a edição é muito extensa que há recompilação total. xD
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...