Ir para conteúdo

Oneshot

Marquês
  • Total de itens

    1347
  • Registro em

  • Última visita

  • Dias Ganhos

    36

Tudo que Oneshot postou

  1. Oneshot

    LuaFileSystem

    LuaFileSystem Bom dia, galera. Você sabe que Lua é uma linguagem completa, "baseada" em C, possui uma biblioteca padrão com muitas funções úteis, e que volta-e-meia você utiliza nos scripts de Open Tibia. Mas nossa linguagem também possui várias bibliotecas secundárias, com muitas outras funções que fornecem ao desenvolvedor, variados recursos extras. Uma dessas bibliotecas é o LuaFileSystem que complementa as funções relacionados ao gerenciamento de arquivos da biblioteca padrão de Lua. Já a utilizei na construção de programas, como por exemplo, o Open Tibia Data Cleaner e posso dizer que essa é uma ótima biblioteca e que fornece funções muito versáteis e úteis. Para usar o LuaFileSystem, basta fazer o download disponibilizado no tópico e no script adicionar a seguinte linha: require("lfs") Uma das principais funções da biblioteca é o lfs.dir que itera todos os arquivos de um diretório, sejam eles, outros diretórios ou arquivos em geral. Por exemplo: for tmp in lfs.dir("C:/") do if lfs.attributes(tmp).mode == "directory" then io.write("Achei uma pasta de nome ".. tmp ..".\n") end end Download DLL Sources Manual de Referência
  2. Oneshot

    srlua

    srlua Construindo programas executáveis baseados em códigos Lua Bom dia, galera. Como sabem Lua é uma linguagem bastante rica, utilizada não só na área do Open Tibia, mas em jogos Android, como o Angry Birds ou no gigante da Blizzard, o World of Warcraft. Mas você já parou para se perguntar, será que é possível criar programas em Lua, como você faz com C/C++? Sim, aqueles simples programas de console. Você, estudante de C++, deve lembrar do seu primeiro programa Hello World, você compila ele e através de um arquivo .exe executável, você abre uma janela do console com aquela frase super clichê. Sim, é possível transformar um script Lua em um arquivo executável, uma das maneiras de fazer isso é com auxílio da biblioteca srlua. Com ele, você pode unir um interpretador e script Lua em um executável. Em tese, é o mesmo funcionamento do conhecido por muitos, Molebox. Para fazer isso, basta baixar o pacote srlua, colocar na pasta C:\ (Ou onde você desejar), colocar o script Lua na mesma pasta do pacote baixado e através do cmd, fazer isso: cd X:/srlua glue interpretador.exe script.lua programa.exe O primeiro parâmetro (interpretador.exe) vem com o nome srlua.exe na pasta, o segundo parâmetro (script.lua) é o script que você irá desenvolver e o terceiro parâmetro (programa.exe) é o output, ou seja, o nome do programa final que pode ser qualquer um. Download Binários Sources Contribuição - Vulpes Vulpes Skyen
  3. É seu spells.xml que apresenta problemas, poste entre [*/CODE]
  4. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  5. Pode ser simplesmente qualquer coisa, amigo, desde um erro crítico em um script ou um bug no mapa que o servidor pode não interpretar e fechar como na imagem. E também, se você usa o The Forgotten Server 0.4, deveria saber que ele é uma versão bastante instável.
  6. Nas sources, colega. Você precisa editar o arquivo iologindata.cpp, procure por isso: bool IOLoginData::createCharacter(uint32_t accountId, std::string characterName, int32_t vocationId, uint16_t sex, uint32_t townId) { if(playerExists(characterName)) return false; Vocation* vocation = Vocations::getInstance()->getVocation(vocationId); Vocation* rookVoc = Vocations::getInstance()->getVocation(0); Town* town = Towns::getInstance()->getTown(townId); uint16_t healthMax = 150, manaMax = 0, capMax = 400, lookType = 136; if(sex % 2) lookType = 128; uint32_t level = g_config.getNumber(ConfigManager::START_LEVEL), tmpLevel = std::min((uint32_t)7, (level - 1)); uint64_t exp = 0; if(level > 1) exp = Player::getExpForLevel(level); if(tmpLevel > 0) { healthMax += rookVoc->getGain(GAIN_HEALTH) * tmpLevel; manaMax += rookVoc->getGain(GAIN_MANA) * tmpLevel; capMax += rookVoc->getGainCap() * tmpLevel; if(level > 8) { tmpLevel = level - 8; healthMax += vocation->getGain(GAIN_HEALTH) * tmpLevel; manaMax += vocation->getGain(GAIN_MANA) * tmpLevel; capMax += vocation->getGainCap() * tmpLevel; } } Database* db = Database::getInstance(); DBQuery query; query << "INSERT INTO `players` (`id`, `name`, `world_id`, `group_id`, `account_id`, `level`, `vocation`, `health`, `healthmax`, `experience`, `lookbody`, `lookfeet`, `lookhead`, `looklegs`, `looktype`, `lookaddons`, `maglevel`, `mana`, `manamax`, `manaspent`, `soul`, `town_id`, `posx`, `posy`, `posz`, `conditions`, `cap`, `sex`, `lastlogin`, `lastip`, `skull`, `skulltime`, `save`, `rank_id`, `guildnick`, `lastlogout`, `blessings`, `online`) VALUES (NULL, " << db->escapeString(characterName) << ", " << g_config.getNumber(ConfigManager::WORLD_ID) << ", 1, " << accountId << ", " << level << ", " << vocationId << ", " << healthMax << ", " << healthMax << ", " << exp << ", 68, 76, 78, 39, " << lookType << ", 0, " << g_config.getNumber(ConfigManager::START_MAGICLEVEL) << ", " << manaMax << ", " << manaMax << ", 0, 100, " << townId << ", " << town->getPosition().x << ", " << town->getPosition().y << ", " << town->getPosition().z << ", 0, " << capMax << ", " << sex << ", 0, 0, 0, 0, 1, 0, '', 0, 0, 0)"; return db->query(query.str()); } Essa é a linha que você deve mudar: uint16_t healthMax = 150, manaMax = 0, capMax = 400, lookType = 136; Abraços.
  7. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  8. Legalzinho, mas você precisa entender que o não falta na seção de actions do nosso fórum são alavancas de comprar itens. http://www.xtibia.com/forum/topic/142444-action-comprar-itens-por-alavanca/ http://www.xtibia.com/forum/topic/194606-comprar-item-por-alavanca/ http://www.xtibia.com/forum/topic/145046-action-item-por-alavanca/ Acho que você poderia usar a ideia para criar um código melhor, bem programado, organizado, e claro, identado. Recomendo este tutorial: Qual é a coisa mais importante em um código? E por que é a elegância? Grande abraço.
  9. Além de você ter postado em um tópico inativo há mais de 30 dias, faz um comentário que não representa dúvida, feedback, erro no script, nem nada. Apenas um comentário sem conteúdo algum. Estou te dando um alerta verbal, na próxima, negativo sua reputação.
  10. Só executar essas query: DELETE FROM accounts WHERE id > 1 Normalmente o ID onde ficam as samples é o 1, então depois que você executar essa query, um efeito dominó ocorrerá, executando todas as triggers da database e a limpando.
  11. Oneshot

    Save

    Sim, é possível, basta achar as duas funções internas das sources, a primeira de trade e a segunda de mover itens e chamar o IOLoginData para salvar o jogador.
  12. Vamos começar do zero, então. Orientação a Objetos, é um tipo de programação, onde você desenvolve o código, como "ações" de algo, um objeto. Essas "ações" podem ser chamadas, de maneira grossa, de métodos. Lua não é uma linguagem tipada como C++, certo? Tão pouco é uma linguagem orientada a objetos. Mas existe um sistema da biblioteca Lua que dá a possibilidade de desenvolver Lua orientada a objetos - este é o sistema que chamamos de meta-tabelas. As funções de meta-tabelas, são simplesmente, funções que transformam tabelas normais da linguagem Lua em objetos. Para aprofundar, precisamos, primeiro, de algumas definições da POO, ou, programação orientada a objetos. Classe - Classe é a definição que usamos para um grupo de objetos com características em comum. Tomando como exemplo, cachorros, são várias raças, mas todos tem características em comum, certo? Latem, uivam, têm pelos, quatro patas... logo, pegaremos a classe dos cachorros. Objeto - É um integrante de uma classe, tomando o exemplo anterior, vamos considerar um objeto como um Rottweiler. Atributos - Uma definição de fácil compreensão para atributos - são as características de um objeto. Métodos - São as ações de um objeto, o que o objeto "sabe fazer", em poucas palavras. Agora em Lua, vamos pensar na classe do nosso exemplo anterior, te disse que a biblioteca das meta-tabelas transforma tabelas em objetos. Continuo a explicação daqui a pouco, abraços.
  13. @GabrielSv Vejo que você tentou ajudar, mas, nada contra, esse tutorial do Skydangerous simplesmente é ridículo. @LuckOake Certo, você entendeu a Orientação a Objetos, ou seja, de modo redundante, aprendeu a programar um modo de interação entre várias unidades de programação, os objetos. Então, primeiro, preciso confirmar que você sabe e compreende cem porcento das definições de classe, objeto, atributo e método para te ensinar como funciona a orientação a objetos em Lua.
  14. Oneshot

    Bomb System

    Olá, XTibiano. Seu tópico foi movido para Pedidos e dúvidas resolvidos - Scripting, por não possuir atividade há mais de uma semana.
  15. Olá, XTibiano. Seu tópico foi movido para Pedidos e dúvidas resolvidos - Scripting, por não possuir atividade há mais de uma semana.
  16. Bom, não achei nenhum script no servidor que o cara possa estar se aproveitando para obter GOD. Enfim, se vocês tem site e database no Xampp/Uniserver, verifiquem se o cara não está fazendo SQL Injection e etcétera. Abraços.
  17. Bom saber, valeu pelo feedback, irei consertar tudo isso em uma atualização. Abraços.
  18. Você baixou o servidor de algum lugar? Se sim, passe aqui o link de download do servidor.
  19. Por exemplo, existe um usuário no PHPMyAdmin que não tem senha. Este usuário se chama 'pma', se você monta um servidor, sem colocar a senha neste usuário, qualquer um que ache o endereço do PHPMyAdmin do seu servidor, vai poder ter acesso ao seu banco de dados. Na pasta do seu PHPMyAdmin, encontre o arquivo config.inc.php, e procure por essas duas linhas: /* PMA User advanced features */ $cfg['Servers'][$i]['controluser'] = 'pma'; $cfg['Servers'][$i]['controlpass'] = ''; Mude: $cfg['Servers'][$i]['controlpass'] = ''; Para uma senha de 8 caracteres. Depois acesse o PHPMyAdmin e lá na aba Privileges/Privilégios, faça o procedimento da imagem abaixo: Há também a possibilidade de o servidor que vocês usam, ter um script relacionado com alguma parte do mapa que dê acesso de GOD a um jogador qualquer.
  20. Qual o servidor utilizado pelo seu amigo? Usa MySQL? Se sim, fez todos os procedimentos de segurança para com o PHPMyAdmin?
  21. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  22. Essa dúvida não tem muita relação com C++ que é o assunto abordado na seção. Estou movendo para Pedidos e dúvidas - Geral
  23. Faz assim. local outfit = getCreatureOutfit(cid) outfit.lookType = 340 doSetCreatureOutfit(cid, outfit, -1) Pois irá mudar apenas o elemento lookType e manter os outros, uma vez que a função getCreatureOutfit(cid) retorna uma tabela com essa estrutura: local outfit = { lookType = 0, lookTypeEx = 0, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookAddons = 0, }
  24. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  25. Olá, AnneMotta. Antes de criar um tópico, procure sempre utilizar o sistema de pesquisa do nosso fórum. Se você pesquisar 'fórmulas' no sistema de pesquisa, o primeiro resultado é um tutorial: http://www.xtibia.com/forum/topic/187138-algumas-formulas-uteis/ Abraços.
  • Quem Está Navegando   0 membros estão online

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