Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''programação''.



Mais opções de pesquisa

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • xTibia - Notícias e Suporte
    • Regras
    • Noticias
    • Soluções
    • Tutoriais para Iniciantes
    • Imprensa
  • OTServ
    • Notícias e Debates
    • OTServlist
    • Recursos
    • Suporte
    • Pedidos
    • Downloads
  • OFF-Topic
    • Barzinho do Éks
    • Design
    • Informática

Categorias

Não há resultados


Encontrar resultados em...

Encontrar resultados que contenham...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Sou

Encontrado 76 registros

  1. Bom, vou mostrar a vocês como editar o andar diagonal no otclient da maneira que vocês preferirem... Atualmente, creio que quando você anda diagonalmente, tem um delay até que você possa andar novamente. Vou ensinar tirar esse delay, e deixar a velocidade ao gosto de vocês. Em creature.cpp do server, procure pela linha: if(std::abs(newPos.x - oldPos.x) >= 1 && std::abs(newPos.y - oldPos.y) >= 1) lastStepCost = 3; Esse lastStepCost será a velocidade que o player terá ao andar diagonalmente, em relação a velocidade de quando ele anda em uma direção reta, por exemplo, um player que demora 1 segundo para andar 1 sqm, demoraria 3 segundos para andar diagonalmente. Edite esse valor ao seu gosto! Em creature.cpp do client, procure as linhas que tem isso: getStepDuration(true) E deixe assim: getStepDuration() Agora procure por: float factor = 3; if(g_game.getClientVersion() <= 810) factor = 2; Apague essa parte Logo mais abaixo tem: if(!ignoreDiagonal && (m_lastStepDirection == Otc::NorthWest || m_lastStepDirection == Otc::NorthEast || m_lastStepDirection == Otc::SouthWest || m_lastStepDirection == Otc::SouthEast)) interval *= factor; Em factor, deixe o mesmo valor que você deixou em lastStepCost no servidor. Agora em localplayer.cpp no client, novamente procure por: getStepDuration(true) E troque por: getStepDuration() Pronto, seu personagem andará diagonalmente mais suave, e com a velocidade que você escolheu.
  2. Boa noite, pessoal em resumo preciso de sources para TFS 0.4 com effects 256+, hp em porcentagem, pois preciso compilar um WDOBO (Dbo) para linux, alguém poderia me passar ? Obrigado.
  3. Tipo assim eu compilei para tfs 0.4 o meu mapa 8.60 e tudo mais antes da compilação tinha um erro que eu adicionava as scripts e abria o server até ai tudo bem, mais quando ia logar no char ou No Account Manager não iniciava, ou não logava. E tipo quando compilei foi tudo bem mais tento adicionar as scripts e continua o mesmo erro, já tentei de tudo em vez de adicionar pelo Notepad normal, já tentei pelo Notepad++ e nada funfa amigo por favor se souber e poder me ajudar agradeço de coração mais uma observação ele esta online em uma vps Windows e esta em mysql pela questão do site, aqui no meu pc por não ter xampp eu abri ele no Sqlite mesmo não sei se muda algo mais fiz isso para poder iniciar o server e estar testando algumas coisas nele
  4. Olá a todos os membros do xTibia! Os que estão lendo isso, claro. Assim como eu você pretende abrir um servidor ou ingressar em um em desenvolvimento, correto? Então vamos conversar um pouco. Eu não tenho uma ideia fixa do que estou procurando, o que eu quero é voltar a brincar com o Tibia, antes eu fazia isso, a uns dois ou três anos atrás, porém eu era somente um editor de mapas e por ventura acabei ficando mais ou menos bom nisso porém acabei por desistir pouco tempo depois, agora que eu voltei e estou interessado por programação o meu interesse em abrir um servidor regressou, pessoalmente eu sou apaixonado por RPG, mas estamos ai para tudo. Para trabalhar comigo em harmonia só há uma única regra, não trabalhar por dinheiro e nem fazer nada pensando no financeiro. O meu nome é Rodrigo, eu tenho vinte anos e é um prazer estar escrevendo para você leitor. Minha experiência é totalmente na área voltada a mapas, como eu tinha dito anteriormente, estou querendo fazer um servidor com alguma pessoa que tenha mais ou menos os mesmos interesses. Abrir um servidor por diversão e aumentar o conhecimento com isso, no caso estou tentando migrar para área voltada a programação .lua, eu normalmente faria isso com um amigo porém todos eles são pessoas normais(?), isso é, ninguém sabe o que é Tibia ou programação. O tipo de servidor não importa muito, desde Global até Baiak/RPG. A única coisa que eu acho interessante é que a TFS seja atual mas isso é dispensável, a versão do servidor também não importa, pode ser até mesmo 7x e falando sobre OTservers derivados, realmente eu não sinto nenhuma vontade de fazer ou trabalhar em um servidor com poucas sprites e em Top Down para completar a desgraça(naruto/dragon ball/bleach). Se você estiver interessado em abrir um servidor então me contate por PM aqui no fórum, lhe enviarei meu contato no privado, vamos ser amigos? 😆
  5. Bom, eu queria ajuda para adicionar LVL system nos pokémons meu Pokétibia é base REVOLUTION se alguém puder me ajudar agradeço.
  6. OLÁ ! Meu nome é Henrique, tenho 19 anos, atualmente estudo Análise e Desenvolvimento de Sistemas na Uniritter/POA, sou Freelancer à algum tempo e já desenvolvi diversos tipos de sistemas e estou aqui hoje para oferecer meus serviços de consultoria em otserver para aqueles que estiverem interessados. Segue abaixo uma lista dos serviços que presto junto dos meus contatos: SERVIÇOS - WEB DESIGN; - DESIGN DE OTCLIENT's; - CRIAÇÃO DE SITES; - PROGRAMAÇÃO (scripter, mapper); - CAPTURA DE SPRITES (busca por novas sprites para o ot relacionado, muitas vezes sprites conseguidas através do crack de rom's originais dos jogos); - MONTAGEM DE INFRAESTRUTURA (colocar server, site, banco no ar e fazer a manutenção da infra dos mesmos). CONTATOS - http://henriquegranatto.com.br - 51 9 9528 6988 (WhatsApp) * somente estas duas formas de contato, não forneço skype ou facebook. ÀQUELES QUE TIVEREM INTERESSE, MUITO PRAZER E SUCESSO NOS SEUS PROJETOS!
  7. O que é Tripeace? Tripeace é um site em código aberto para Tibia OT Server, sendo desenvolvido na linguagem C# .NET, principalmente para ser uma opção diferente aos sites existentes para OT Server em PHP. Tripeace é apenas o nome do projeto, nome de minha antiga guild no Tibia Global, mas será possível e fácil configurar o nome do site para o que você quiser. Quem é você, Striter?Me chamo Igor, tenho experiência profissional como desenvolvedor .NET por mais de 3 anos, principalmente como back-end. Também já trabalhei com automação de testes de sistemas e gestão de equipes de desenvolvimento. Atualmente estou desempregado. Meu GitHub: igorquintaes · GitHubMeu Portfólio: Igor Pauli QuintaesO que será necessário para hospedar o site? - Sistema operacional Windows com IIS e .NET Framework instalados e atualizados, ou Linux;- Atualizar o banco de dados do jogo com um arquivo .sql que é disponibilizado junto ao projeto;- Opcionalmente, ter o Visual Studio instalado caso queira alterar regras de negócio ou adicionar novas funcionalidades (back-end); Características e recursos - Suporte a mais de um idioma simultaneamenteO site tem uma linguagem padrão baseada no acesso do usuário, mas ele pode alterar para a linguagem que quiser em tempo real. É possível, também, adicionar facilmente novos idiomas ao projeto.- SegurançaProjetado em arquitetura em camadas, para prevenir acessos indesejados e injeções de dados. Também possui sistemas próprios de logins e criptografia, sistema de proteção a SQL Injection e de acessos não autorizados.- Multi-plataformaMesmo desenvolvido em C#, linguagem da microsoft, é possível hospedar o site tanto em um servidor Windows quanto em servidor Linux. É possível também hospedar em um local diferente ao do servidor do OT Server e do banco de dados.- ORM ao invés de consultas por SQLAcha chato trabalhar no back-end fazendo aqueles selects e updates utilizando linguagem de banco de dados? O Tripeace faz tudo isso baseado em variáveis. - Registre tudo o que aconteceA plataforma registra automaticamente o IP das pessoas, que páginas elas tentam acessar, a conta com a qual está conectada, tentativas de hack, tentativas de acessar páginas restritas, tentativas de explorar erros ou de enviar dados falsos. Tudo, e você ainda tem a opção de configurar para adicionar mais ou retirar algo que não deseja.- Painel administrativo para Gods e Game MastersCom informações sobre número de jogadores online, momentos de pico, edição de dados, bloqueio de contas, número de visitas e muito mais.- Template todo customizávelTendo conhecimento das linguagens utilizadas no front-end de um site (HTML, CSS, Javascript), é possível alterar todo o layout sem nem tocar no back-end do sistema, e nem mesmo ter o Visual Studio instalado. Dados dinâmicos para IFs, FORs, demais lógicas e variáveis estão em Razor Syntax, similar ao PHP mas sem precisar compilar com o back-end. - Sistema de postagems Para notícias, novidades, anúncios, enquetes. O que você quiser, e com comentários.- Sistema de E-mails Para anúncios, recuperação de conta, alertas, e mais!O que já está pronto? - Conexão ao banco de dados e mapeamento em variáveis;- Sistema para suporte a vários idiomas;- Sistema de registro de atividades;- Sistema seguro de login;- Criação de conta;- Criação de personagem;- Painel administrativo;- Gerenciamento de contas no painel administrativo (listar, bloquear/desbloquear acesso do site, editar, banir/desbanir do jogo);O que ainda será desenvolvido? - Gerenciamento de contas no painel administrativo (exclusão de conta);- Gerenciamento de personagens no painel administrativo;- Gerenciamento de configurações no painel administrativo;- Biblioteca- Forum (?)- Sistema de postagens;- Sistema de Guilds;- Ranking;- Sistema VIP e de pagamentos;- Formulário de contato;- E mais, muito mais!Quais ferramentas Tripeace usa? (útil para devs) - C# .NET Core as como linguagem e framework back-end;- HTML, CSS, Javascript/JQuery w Razor Syntaxe para front-end;- Entity Framework Core como ORM (trabalhar com SQL em variáveis);- NLOG para registrar atividades;- Cloudscribe para paginações;- AutoMapper para mapear e transferir objetos entre camadas;- .NET Core Identity para criar sistema de login mais seguro e à parte ao do jogo.Código fonte (Aberto, licença MIT)GitHub - igorquintaes/Tripeace: An open-source and free Open Tibia Website written in C# .NETDoações O projeto é grande, totalmente código aberto, e quem tá fazendo é um cara desempregado. Se você está curtindo o andamento das coisas, dê uma contribuição aí!Meu PayPal: [email protected]
  8. OLÁ ! Meu nome é Henrique, tenho 19 anos, atualmente estudo Análise e Desenvolvimento de Sistemas na Uniritter/POA, sou Freelancer à algum tempo e já desenvolvi diversos tipos de sistemas e estou aqui hoje para oferecer meus serviços de consultoria em otserver para aqueles que estiverem interessados. Segue abaixo uma lista dos serviços que presto junto dos meus contatos: SERVIÇOS - WEB DESIGN; - DESIGN DE OTCLIENT's; - CRIAÇÃO DE SITES; - PROGRAMAÇÃO (scripter, mapper); - CAPTURA DE SPRITES (busca por novas sprites para o ot relacionado, muitas vezes sprites conseguidas através do crack de rom's originais dos jogos); - MONTAGEM DE INFRAESTRUTURA (colocar server, site, banco no ar e fazer a manutenção da infra dos mesmos). CONTATOS - http://henriquegranatto.com.br - 51 9 9528 6988 (WhatsApp) * somente estas duas formas de contato, não forneço skype ou facebook. PAGAMENTO Não possuo uma forma de pagamento específica, quanto à isso deixo a combinar com o cliente. ÀQUELES QUE TIVEREM INTERESSE, MUITO PRAZER E SUCESSO NOS SEUS PROJETOS!
  9. Preciso de proteção/criptografia em arquivos do Client (extensões: .lua, .otmod, .otui, .dat, .spr, .png) Caso consiga proteger só algumas das extensões citadas acima (ex: dat e spr), tudo bem.
  10. Bom muita gente procura esse código, e ao olhar na internet só vi disponível em um fórum porém incompleto então decidi pegar o código e postá-lo com oque faltava. Esse código é utilizado para que um player passe por outro player evitando tantas reclamações por "trapar" caminho ou algo parecido, vamos lá! Ah mais uma coisa, para funcionar é preciso que o servidor esteja em NON-PVP. OBS: Testado em tfs 0.3.6 somente! Player.cpp procure por: bool Player::canWalkthrough(const Creature* creature) const Substitua todo o código por: bool Player::canWalkthrough(const Creature* creature) const { if(creature == this || hasCustomFlag(PlayerCustomFlag_CanWalkthrough) || creature->isWalkable() || (creature->getMaster() && creature->getMaster() != this && canWalkthrough(creature->getMaster()))) return true; const Player* player = creature->getPlayer(); if(!player) return false; if((((g_game.getWorldType() == WORLD_TYPE_NO_PVP && player->getVocation()->isAttackable()) || player->getTile()->hasFlag(TILESTATE_PROTECTIONZONE) || (player->getVocation()->isAttackable() && player->getLevel() < (uint32_t)g_config.getNumber(ConfigManager::PROTECTION_LEVEL))) && player->getTile()->ground) && (!player->hasCustomFlag(PlayerCustomFlag_GamemasterPrivileges) || player->getAccess() <= getAccess())) return true; return (player->isGhost() && getGhostAccess() < player->getGhostAccess()) || (isGhost() && getGhostAccess() > player->getGhostAccess()); } Depois vá em const.h e procure por: PlayerCustomFlag_CanWearAllAddons, //2^23 = 8388608 E em baixo coloque: PlayerCustomFlag_IsWalkable, //2^24 = 16777216 PlayerCustomFlag_CanWalkthrough, //2^25 = 33554433 Provavelmente em muitas sources do tfs 0.3.6, dê não exatamente um erro mais um aviso no player.cpp na função: void Player::updateInventoryWeight() Se o aviso ocorrer substitua a função citada acima por essa: void Player::updateInventoryWeight() { inventoryWeight = 0.00; if(!hasFlag(PlayerFlag_HasInfiniteCapacity)){ for(int i = SLOT_FIRST; i < SLOT_LAST; ++i){ Item* item = getInventoryItem((slots_t)i); if(item){ inventoryWeight += item->getWeight(); } } } } Só utilize o código acima se ocorrer o "warning/aviso" sobre a função. Abraço. Os créditos ficam até o momento só ao Bruno Minervino e a fireelement. Qualquer outro envolvido será creditado.
  11. Como fasso para adicionar novo slotType nas sources? Novo slot chamado Overall ao equipa ele voce nao pode equipar um legs pois o overall ocupa as 2 posiçoes
  12. Olá, eu venho por meio deste tópico procurar pessoas para me ajudar na formação de um servidor RPG, sei que o estilo agrada poucos aqui no Brasil porem eu sou um dos poucos que agrada, penso em criar um servidor focado no RPG, sistema de política interna e continentes grandes, um mundo de mistérios e magia, sempre fui fã de jogos RPG e o'que sempre me chamou atenção no tibia é a sua capacidade de entreter você mesmo com gráficos péssimos, quero pessoas que saibam trabalhar em equipe e tenha uma fácil convivência, tenha a noção ao ingressar que isso é uma responsabilidade a partir do momento que você decide entrar, espero que entenda que ideias novas são bem vindas e todo trabalho já é um passo a diante. Esse é só um tópico piloto, pretendo criar um tópico melhor e mais organizado em breve, as férias estão chegando e eu estou pensando em usar muito bem esse tempo :) Preciso de pessoas com tempo livre, boa vontade e criatividade! Quero fazer um servidor que possa entreter e prender jogadores, atualizações constantes mesmo depois de pronto, mas como não adianta só projetar e projetar, também procuro pessoas com qualificações especificas que tenham a condição de me ajudar, no caso mappers, designers e também programadores, se ainda estiver interessado em colaborar para a criação de um servidor RPG, preencha o formulário abaixo; Nome: Idade: Cidade: Função: Contato: Você deve preencher com suas informações corretas, ou não terei como contatar você assim que você ingressar.
  13. Bom dia galera do Xtibia! Preciso da ajuda dos Senhores hehe. Quero criar um client com o otclient para meu servidor, porém não sei nada, absolutamente nada. Espero que possam responder minhas perguntas. 1-Oque é Compilar otclient? Oque são sourcers? 2- Qual a primeira coisa a se fazer depois que eu baixo o otclient? Para que só rode o otclient no meu servidor? (Preciso baixar mais coisas? Oque fazer?) 3- Como deixo os updates automáticos? (Exemplo: Criei uma nova arma, uma criatura, corrigi alguns bugs). Já fazem automáticos no otclient ao abri-lo. 4- Como edito as funções do otclient? (Exemplo: Criar um botão de Novidades no Otclient) Obs: Não precisam ser respostas complexas, somente mostrando o caminho. Att
  14. Olá pessoal, boa tarde. Sei que é muito chato programar e ver os resultados apenas naquele console preto e sem graça. Por isso, vou ensinar pra vocês como criar uma janela em menos de 5 minutos, utilizando Java. Primeiramente, vamos precisar de 2 classes. Uma, será nossa Testadora, onde teremos o método main. A outra, que chamaremos de JanelaController teremos os componentes para exibir nossa janela. Primeiramente, nossa classe Testadora ficará assim: public class Testadora { public static void main(String args[]){ JanelaController janela = new JanelaController(); janela.abrirJanela(); } } Nada demais. Ela vai criar um objeto do tipo JanelaController, vai referencia-la como janela, e vai executar seu método chamado abrirJanela(), que veremos a seguir. Em Java, possuimos bibliotecas nativas para a utilização de janelas. Em nosso tutorial, usaremos a biblioteca Swing. Seu caminho é "javax.swing;". Primeira coisa, devemos importar essa biblioteca para nossa classe. Para isso, basta usar o comando import, antes da declaração da classe. import javax.swing.*; public class JanelaController { private JFrame frame; // É o componente responsável por exibir a janea private JLabel texto; // Responsável por exibir um texto public void abrirJanela(){ // Devemos instanciar o objeto do tipo JFrame, para que possamos utiliza-lo em nossa classe. frame = new JFrame(); // Aqui, chamamos os métodos da classe do JFrame. Por exemplo: frame.setSize(400, 400); // Define o tamanho que terá nossa janela frame.setVisible(true); // Colocamos a janela como visível frame.setTitle("Minha Janela Funciona !"); // Inserimos um título para nossa janela // Você pode conferir mais métodos, dentro da própia classe JFrame. É só abri-la! // Aqui, instanciamos um objeto do tipo JLabel, e chamamos sua variável de texto. texto = new JLabel(); // Definimos também um texto para ele, através do método setText() da classe do JLabel. texto.setText("Hail Xtibia!"); // Essa parte é muito importante, pois é onde adicionamos nosso JLabel na janela. frame.add(texto); } } Perceberam o quanto é fácil ? Se tiverem a curiosidade, podem pesquisar por mais componentes, para incrementar a janela de vocês. Segue algumas: JButton JCheckBox JMenu JProgressBar JTextField Entre muitos outros Espero que tenham gostado desse rápido tutorial. Abraços e até a próxima !
  15. Olá pessoal, boa noite. Neste artigo, explicarei o que é o paradigma de Orientação a Objetos(OO) que tanto comentam, suas características e quais são suas vantagens em relação ao estilo procedural. Neste artigo, vou me focar nos conceitos, que são fundamentais para um bom desenvolvimento OO. Para ser um bom programador, precisamos entender além de linhas de códigos. Precisamos entender o conceito de programação, a motivação, o porque de tudo aquilo, e claro, saber aplicar esses conceitos no dia-a-dia. Primeiramente, o que vem à sua mente quando ouve falar sobre Paradigmas de Desenvolvimento ? Um paradigma nada mais é do que a forma de estrutura que você vai aplicar para programar e executar seu software. Isto engloba conceitos e abstrações (como objetos, variáveis, funções, fluxo de dados), e define uma diretriz que o programador vai seguir durante o desenvolvimento. Atualmente, temos duas vertentes principais, são elas a Programação Procedural e Orientado a Objetos, como veremos a seguir: Programação Procedural A programação procedural, como o própio nome já nos adianta, se baseia na chamada a procedimentos(procedures call), isto é, chamadas à funções, rotinas, sub-rotinas, que possuem um conjunto de passos a serem executados pelo sistema. Um sistema desenvolvido utilizando esse paradigma, realiza a troca de mensagens entre as diferentes funções existentes, e possui uma grande utilização de algoritmos. A modelagem de um sistema procedural se dá pela utilização de fluxogramas, definindo um caminho lógico pelo sistema. Algumas linguagens que utilizam esse método: C Pascal PHP Visual Basic Lua C++ COBOL Entretanto, um dos grandes problemas, está na dificuldade da manutenibilidade do código, isto é, em como será, no futuro, realizado manutenções, escalável, etc. Vejamos um exemplo muito simples que explica isso: "O problema do paradigma procedural é que não existe uma forma simples de criar conexão forte entre dados e funcionalidades" Para solucionar esse e muitos outros tipos de problemas, foi elaborado o conceito de linguagem orientada a objetos, como veremos a seguir: Programação Orientada a Objetos (POO) Neste modelo, o programa é composto por objetos, possuindo propiedades (atributos) e que executa ações (métodos). Todas as funcionalidades e atributos de cada entidade do sistema são armazenadas em classes que representam esta entidade. Com isso, as operações(sinônimo de funções) e as responsabilidades são centralizadas em suas devidas classes, não ficando mais espalhadas pelo código. A comunicação não se dá mais por chamadas a funções como no modelo procedural, mas sim, entre a troca de mensagens entre os objetos. Objetos são dependentes de outros objetos para a troca de mensagens. Para a modelagem de um sistema orientado a objetos, normalmente se utiliza a UML (Unified Modeling Language). Algumas linguagens que utilizam: Java C++ C# Python PHP (a partir da versão 4 houve uma adaptação,mas não a tornou totalmente OO) Vou relatar agora alguns conceitos essenciais, que todo Programador OO precisa saber: Classe - representa um conjunto de objetos com características afins. Define o que o objeto deve ter e como se comportar.Se altera em tempo de compilação. Ex: Classe Pessoa. Objeto - É a instancia de uma classe. É o objeto carregado na memória, capaz de executar métodos. Possui um ciclo de vida. Vemos ele em ação em tempo de execução. Exemplo: Como um objeto da classe Pessoa, podemos ter: o objeto Maria, o objeto Joao, etc. Atributo - Representa uma característica do objeto. Exemplo: Temos uma classe Pessoa, cujo um atributo pode ser nome. Método - Representa uma ação de determinado objeto. Exemplo: Na classe Pessoa, temos o método andar. Mensagem - É quando se chama um método de um determinado objeto. Exemplo: Uma classe Pessoa chama o método ligar carro de um outro objeto chamado Carro. Herança - Nos permite extender as funcionalidades de outra classe, reaproveitando código. Utiliza-se o conceito de super-classe e sub-classe. Temos uma super-classe Pessoa com o atributo nome, onde podemos extender em 2 sub-classes: Pessoa Física e Pessoa Jurídica. Essas últimas herdam o atributo nome automaticamente. Encapsulamento - Mecanismo utilizado como proteção da classe, definindo que apenas a própia classe pode conhecer o estado de seus atributos e altera-los. Classes externas modificam esses valores através de métodos denominados getters(obtem informações de atributos) e setters(modificam valores de atributos) Não precisamos conhecer internamente como um smartphone realiza chamadas. Apenas queremos fazer ligações. Polimorfismo - Vem do grego (poli = muitas, morphos = formas). Quando duas ou mais classes distintas herdadas de uma mesma classe abstrata, possuem métodos de mesmo nome, sendo que cada uma vai executar o mesmo método de forma especializada, isto é, de forma individual Exemplo: Super-classe Animal que possui um método emitir som. Extendemos através do conceito de herança em duas sub-classes Cachorro e Gato. Tanto cachorro como gato herdam o método emitir som, sendo que cada um em sua implementação, vão ter comportamentos diferentes. Isto é, ao chamar o método emitir som de um objeto cachorro, ele vai latir. Ao chamar o método emitir som de um objeto gato ele vai miar. Abstração - Esta na capacidade do analista/desenvolvedor em abstrair conceitos/entidades do mundo-real (mundo físico) e transforma-los em objetos no mundo lógico. Exemplo: Representar uma pessoa e seus comportamentos através de uma classe chamada Pessoa. Interface - É um contrato realizado entre classes. Quando uma classe implementa uma interface, ela se compromete a executar os métodos declarados naquela interface. Bem pessoal, espero que tenham gostado desse tutorial. Qualquer dúvida ou correção, podem postar nos comentários por favor. Abraços e até a próxima!
  16. Olá Estou a procura de candidatos que queiram participar de um novo projeto. Esse projeto consiste em um servidor de tibia com novas classes, magias, monstros, mapas, etc.. O candidato precisa entender de programação, já tenha experiência na criação de servidores, comprometimento, seriedade e, principalmente, profissionalismo. Caso se interesse e queira saber um pouco mais, envie uma mensagem privada. Obrigado
  17. Não consigo compilar a source CryingDamson v8.2 - 8.60, o dev c++ carrega um pouco, mas quando chega em certo ponto do seguinte erro: (e não aparece o executavel compilado) Ja usei stians repack, e da o mesmo erro... REP+ pra quem ajudar a resolver !!
  18. Bom já notei várias pessoas com problemas em relação á isso, por isso decidi compartlhar. MAS POR INDICAÇÃO NÂO USEM POKEMON DASH DERIVADO DO PDA, MESMO COM SOURCES SÃO VÁRIOS OUTROS PROBLEMAS QUE APARECERÃO, NENHUM É TOTALMENTE ESTÁVEL! O problema é quando o pokemon selvagem fica com o HP no vermelho ele começa á tomar menos HIT, e acaba demorando mais pra morrer oque é BEM chato. O problema é simples de resolver, vamos lá! Vá nas sources do servidor em game.cpp e procure esta linha std::min(target->getHealth(), damage); Apague-a ou comente-a caso não tenha certeza se irá utilizá-la. Exemplo de linha comentada //std::min(target->getHealth(), damage); Atenciosamente, Douglas!
  19. Olá, gostaria de saber se alguém teria o código de barra e mana por porcentagem para TFS 1.2, eu tentei alterar os arquivos na source mas não deu muito certo. Agradeço desde já!
  20. img: em iologindata.h procure: uint32_t getAccountIdByName(const std::string& name) const; e substituia por: std::string getCheckPlayerLevel(const std::string& name) const; iologindata.cpp para tfs 0.3.6 std::string IOLoginData::getCheckPlayerLevel(const std::string& name) const { Database* db = Database::getInstance(); DBQuery query; query << "SELECT `level`, `vocation`, `promotion` FROM `players` WHERE `name` " << db->getStringComparison() << db->escapeString(name) << ";"; DBResult* result; if (!(result = db->storeQuery(query.str()))) return false; const uint32_t pLevel = result->getDataInt("level"); const uint32_t pVoc = result->getDataInt("vocation"); const uint32_t prom = result->getDataInt("promotion"); std::string voc; if (prom == 0) { switch (pVoc) { case 0: voc = "Rookie"; break; case 1: voc = "S"; break; case 2: voc = "D"; break; case 3: voc = "P"; break; case 4: voc = "K"; break; default: voc = "Uknown"; } } else if (prom == 1) { switch (pVoc) { case 0: voc = "Rookie"; break; case 1: voc = "MS"; break; case 2: voc = "ED"; break; case 3: voc = "RP"; break; case 4: voc = "EK"; break; default: voc = "Uknown"; } } std::stringstream ret; ret << "Level: "<< pLevel << " Voc: " << voc; result->free(); return ret.str(); } para tfs 0.4: std::string IOLoginData::getCheckPlayerLevel(const std::string& name) const { Database* db = Database::getInstance(); DBQuery query; query << "SELECT `level`, `vocation`, `promotion` FROM `players` WHERE `name` " << db->getStringComparer() << db->escapeString(name) << ";"; DBResult* result; if (!(result = db->storeQuery(query.str()))) return false; const uint32_t pLevel = result->getDataInt("level"); const uint32_t pVoc = result->getDataInt("vocation"); const uint32_t prom = result->getDataInt("promotion"); std::string voc; if (prom == 0) { switch (pVoc) { case 0: voc = "Rookie"; break; case 1: voc = "S"; break; case 2: voc = "D"; break; case 3: voc = "P"; break; case 4: voc = "K"; break; default: voc = "Uknown"; } } else if (prom == 1) { switch (pVoc) { case 0: voc = "Rookie"; break; case 1: voc = "MS"; break; case 2: voc = "ED"; break; case 3: voc = "RP"; break; case 4: voc = "EK"; break; default: voc = "Uknown"; } } std::stringstream ret; ret << "Level: "<< pLevel << " Voc: " << voc; result->free(); return ret.str(); } agora em protocollogin.cpp procure: output->putString(g_config.getString(ConfigManager::SERVE R_NAME)); e em baixo adicione: output->putString(IOLoginData::getInstance()->getCheckPlayerLevel((*it))); testado em 0.3.6 e 0.4 tfs. créditos: jetros
  21. Alguém me Ajuda por favor , abrir a portas do meu roteador para deixar meu serve online... Quem me ajudar dou uma semana de REP. Skype: Gabriel.silva051998
  22. Eai galera. Então, achei um código super útil aqui no fórum, mas ele é pra TFS 0.3.6 e eu fui compilar no TFS 0.4 e deu erro, então gostaria de que alguém me ajudasse a adaptar ele. O código é do henriqueberro e aqui está o tópico dele: link Mas pra facilitar aqui está o código: em player.cpp, procure a função: uint32_t Player::getAttackSpeed() e​ substituía ela toda por: uint32_t Player::getAttackSpeed() { int32_t weaponAttackSpeed = 0; int32_t minimumAttackSpeed = 500; Item* weapon = getWeapon(); if(weapon && weapon->getAttackSpeed() != 0) weaponAttackSpeed = floor ((int)weapon->getAttackSpeed()); // FORMULA int32_t attackSpeed = vocation->getAttackSpeed() - (getSkill(SKILL_CLUB, SKILL_LEVEL) * 20) - weaponAttackSpeed; // CHECA A VELOCIDADE MÍNIMA if (attackSpeed && attackSpeed < minimumAttackSpeed) return minimumAttackSpeed; return attackSpeed; } No tópico diz que se adicionarmos a tag <attribute key="attackspeed" value="X"/> em algum item, o mesmo vai adicionar mais velocidade ao ataque, se eu colocar essa tag e um anel vai funcionar? Igual a tag "increaseMagicPercent"?​
  23. Olá, gostaria de saber se alguém poderia passar o maptracker na versão 10.80 com suporte a otserv. Se puderem ajudar eu agradeço muito.
  24. depois do quest.cpp aparece esse erro \boost\boost/bind/bind.hpp(447): warning C4244: 'argument' : conversion from 'uint16_t' to 'uint8_t', possible loss of data (..\protocolgame.cpp) 1> C:\boost\boost/bind/bind_template.hpp(20) : see reference to function template instantiation 'R boost::_bi::list4<A1,A2,A3,A4>::operator ()<bool,F,boost::_bi::list0>(boost::_bi::type<T>,F &,A &,long)' being compiled 1> with 1> [ 1> R=bool, 1> A1=boost::_bi::value<Game *>, 1> A2=boost::_bi::value<uint32_t>, 1> A3=boost::_bi::value<uint16_t>, 1> A4=boost::_bi::value<uint16_t>, 1> F=boost::_mfi::mf3<bool,Game,uint32_t,uint16_t,uint8_t>, 1> T=bool, 1> A=boost::_bi::list0 1> ] 1> C:\boost\boost/bind/bind_template.hpp(20) : see reference to function template instantiation 'R boost::_bi::list4<A1,A2,A3,A4>::operator ()<bool,F,boost::_bi::list0>(boost::_bi::type<T>,F &,A &,long)' being compiled 1> with 1> [ 1> R=bool, 1> A1=boost::_bi::value<Game *>, 1> A2=boost::_bi::value<uint32_t>, 1> A3=boost::_bi::value<uint16_t>, 1> A4=boost::_bi::value<uint16_t>, 1> F=boost::_mfi::mf3<bool,Game,uint32_t,uint16_t,uint8_t>, 1> T=bool, 1> A=boost::_bi::list0 1> ] 1> C:\boost\boost/bind/bind_template.hpp(18) : while compiling class template member function 'bool boost::_bi::bind_t<R,F,L>::operator ()(void)' 1> with 1> [ 1> R=bool, 1> F=boost::_mfi::mf3<bool,Game,uint32_t,uint16_t,uint8_t>, 1> L=boost::_bi::list4<boost::_bi::value<Game *>,boost::_bi::value<uint32_t>,boost::_bi::value<uint16_t>,boost::_bi::value<uint16_t>> 1> ] 1> C:\boost\boost/function/function_template.hpp(153) : see reference to function template instantiation 'bool boost::_bi::bind_t<R,F,L>::operator ()(void)' being compiled 1> with 1> [ 1> R=bool, 1> F=boost::_mfi::mf3<bool,Game,uint32_t,uint16_t,uint8_t>, 1> L=boost::_bi::list4<boost::_bi::value<Game *>,boost::_bi::value<uint32_t>,boost::_bi::value<uint16_t>,boost::_bi::value<uint16_t>> 1> ] 1> ..\protocolgame.cpp(1486) : see reference to class template instantiation 'boost::_bi::bind_t<R,F,L>' being compiled 1> with 1> [ 1> R=bool, 1> F=boost::_mfi::mf3<bool,Game,uint32_t,uint16_t,uint8_t>, 1> L=boost::_bi::list4<boost::_bi::value<Game *>,boost::_bi::value<uint32_t>,boost::_bi::value<uint16_t>,boost::_bi::value<uint16_t>> 1> ] 1>C:\boost\boost/bind/bind.hpp(660): warning C4244: 'argument' : conversion from 'uint16_t' to 'uint8_t', possible loss of data (..\protocolgame.cpp) 1> C:\boost\boost/bind/bind_template.hpp(20) : see reference to function template instantiation 'R boost::_bi::list7<A1,A2,A3,A4,A5,A6,A7>::operator ()<bool,F,boost::_bi::list0>(boost::_bi::type<T>,F &,A &,long)' being compiled 1> with 1> [ 1> R=bool, 1> A1=boost::_bi::value<Game *>, 1> A2=boost::_bi::value<uint32_t>, 1> A3=boost::_bi::value<uint16_t>, 1> A4=boost::_bi::value<uint16_t>, 1> A5=boost::_bi::value<uint16_t>, 1> A6=boost::_bi::value<bool>, 1> A7=boost::_bi::value<bool>, 1> F=boost::_mfi::mf6<bool,Game,uint32_t,uint16_t,uint8_t,uint8_t,bool,bool>, 1> T=bool, 1> A=boost::_bi::list0 1> ] 1> C:\boost\boost/bind/bind_template.hpp(20) : see reference to function template instantiation 'R boost::_bi::list7<A1,A2,A3,A4,A5,A6,A7>::operator ()<bool,F,boost::_bi::list0>(boost::_bi::type<T>,F &,A &,long)' being compiled 1> with 1> [ 1> R=bool, 1> A1=boost::_bi::value<Game *>, 1> A2=boost::_bi::value<uint32_t>, 1> A3=boost::_bi::value<uint16_t>, 1> A4=boost::_bi::value<uint16_t>, 1> A5=boost::_bi::value<uint16_t>, 1> A6=boost::_bi::value<bool>, 1> A7=boost::_bi::value<bool>, 1> F=boost::_mfi::mf6<bool,Game,uint32_t,uint16_t,uint8_t,uint8_t,bool,bool>, 1> T=bool, 1> A=boost::_bi::list0 1> ] 1> C:\boost\boost/bind/bind_template.hpp(18) : while compiling class template member function 'bool boost::_bi::bind_t<R,F,L>::operator ()(void)' 1> with 1> [ 1> R=bool, 1> F=boost::_mfi::mf6<bool,Game,uint32_t,uint16_t,uint8_t,uint8_t,bool,bool>, 1> L=boost::_bi::list7<boost::_bi::value<Game *>,boost::_bi::value<uint32_t>,boost::_bi::value<uint16_t>,boost::_bi::value<uint16_t>,boost::_bi::value<uint16_t>,boost::_bi::value<bool>,boost::_bi::value<bool>> 1> ] 1> C:\boost\boost/function/function_template.hpp(153) : see reference to function template instantiation 'bool boost::_bi::bind_t<R,F,L>::operator ()(void)' being compiled 1> with 1> [ 1> R=bool, 1> F=boost::_mfi::mf6<bool,Game,uint32_t,uint16_t,uint8_t,uint8_t,bool,bool>, 1> L=boost::_bi::list7<boost::_bi::value<Game *>,boost::_bi::value<uint32_t>,boost::_bi::value<uint16_t>,boost::_bi::value<uint16_t>,boost::_bi::value<uint16_t>,boost::_bi::value<bool>,boost::_bi::value<bool>> 1> ] 1> ..\protocolgame.cpp(1496) : see reference to class template instantiation 'boost::_bi::bind_t<R,F,L>' being compiled 1> with 1> [ 1> R=bool, 1> F=boost::_mfi::mf6<bool,Game,uint32_t,uint16_t,uint8_t,uint8_t,bool,bool>, 1> L=boost::_bi::list7<boost::_bi::value<Game *>,boost::_bi::value<uint32_t>,boost::_bi::value<uint16_t>,boost::_bi::value<uint16_t>,boost::_bi::value<uint16_t>,boost::_bi::value<bool>,boost::_bi::value<bool>> 1> ] 1>C:\boost\boost/bind/bind.hpp(515): warning C4244: 'argument' : conversion from 'uint16_t' to 'uint8_t', possible loss of data (..\protocolgame.cpp) 1> C:\boost\boost/bind/bind_template.hpp(20) : see reference to function template instantiation 'R boost::_bi::list5<A1,A2,A3,A4,A5>::operator ()<bool,F,boost::_bi::list0>(boost::_bi::type<T>,F &,A &,long)' being compiled 1> with 1> [ 1> R=bool, 1> A1=boost::_bi::value<Game *>, 1> A2=boost::_bi::value<uint32_t>, 1> A3=boost::_bi::value<uint16_t>, 1> A4=boost::_bi::value<uint16_t>, 1> A5=boost::_bi::value<uint16_t>, 1> F=boost::_mfi::mf4<bool,Game,uint32_t,uint16_t,uint8_t,uint8_t>, 1> T=bool, 1> A=boost::_bi::list0 1> ] 1> C:\boost\boost/bind/bind_template.hpp(20) : see reference to function template instantiation 'R boost::_bi::list5<A1,A2,A3,A4,A5>::operator ()<bool,F,boost::_bi::list0>(boost::_bi::type<T>,F &,A &,long)' being compiled 1> with 1> [ 1> R=bool, 1> A1=boost::_bi::value<Game *>, 1> A2=boost::_bi::value<uint32_t>, 1> A3=boost::_bi::value<uint16_t>, 1> A4=boost::_bi::value<uint16_t>, 1> A5=boost::_bi::value<uint16_t>, 1> F=boost::_mfi::mf4<bool,Game,uint32_t,uint16_t,uint8_t,uint8_t>, 1> T=bool, 1> A=boost::_bi::list0 1> ] 1> C:\boost\boost/bind/bind_template.hpp(18) : while compiling class template member function 'bool boost::_bi::bind_t<R,F,L>::operator ()(void)' 1> with 1> [ 1> R=bool, 1> F=boost::_mfi::mf4<bool,Game,uint32_t,uint16_t,uint8_t,uint8_t>, 1> L=boost::_bi::list5<boost::_bi::value<Game *>,boost::_bi::value<uint32_t>,boost::_bi::value<uint16_t>,boost::_bi::value<uint16_t>,boost::_bi::value<uint16_t>> 1> ] 1> C:\boost\boost/function/function_template.hpp(153) : see reference to function template instantiation 'bool boost::_bi::bind_t<R,F,L>::operator ()(void)' being compiled 1> with 1> [ 1> R=bool, 1> F=boost::_mfi::mf4<bool,Game,uint32_t,uint16_t,uint8_t,uint8_t>, 1> L=boost::_bi::list5<boost::_bi::value<Game *>,boost::_bi::value<uint32_t>,boost::_bi::value<uint16_t>,boost::_bi::value<uint16_t>,boost::_bi::value<uint16_t>> 1> ] 1> ..\protocolgame.cpp(1504) : see reference to class template instantiation 'boost::_bi::bind_t<R,F,L>' being compiled 1> with 1> [ 1> R=bool, 1> F=boost::_mfi::mf4<bool,Game,uint32_t,uint16_t,uint8_t,uint8_t>, 1> L=boost::_bi::list5<boost::_bi::value<Game *>,boost::_bi::value<uint32_t>,boost::_bi::value<uint16_t>,boost::_bi::value<uint16_t>,boost::_bi::value<uint16_t>>
×
×
  • Criar Novo...