-
Total de itens
1347 -
Registro em
-
Última visita
-
Dias Ganhos
36
Tudo que Oneshot postou
-
[Encerrado] Erro ao criar novo id de item
tópico respondeu ao pobredobrega de Oneshot em Tópicos Sem Resposta
Movido para Pedidos e dúvidas resolvidos - Geral -
Ah, eu sou muito burro, esqueci do parâmetro toPosition. Faz algo, tipo assim, olha: local items = { {itemid = 2472, amount = 1, chance = 2}, {itemid = 2466, amount = 1, chance = 5}, {itemid = 8930, count = 1, chance = 10}, {itemid = 8858, count = 1, chance = 15}, {itemid = 2160, count = 10, chance = 30}, {itemid = 6569, count = 50, chance = 100}, } local position = {x = 1011, y = 991, z = 7} function onUse(cid, item, fromPosition, itemEx, toPosition) local match if toPosition.x == position.x and toPosition.y == position.y and toPosition.z == position.z then if itemEx.itemid == 2472 then for tmp = 1, #items do if items[tmp].chance > math.random(1, 100) then match = doPlayerAddItem(cid, items[tmp].itemid, items[tmp].amount) doPlayerSendTextMessage(cid, 27, "You make a ".. getItemNameById(items[tmp].id) ..".") break end end end end if not match then doPlayerSendTextMessage(cid, 27, "You don't make nothing") end doRemoveItem(itemEx.uid) return true end
-
[Encerrado] Erro ao criar novo id de item
tópico respondeu ao pobredobrega de Oneshot em Tópicos Sem Resposta
Editando o tibia.dat, não sei ao certo o atributo que você deve colocar, mas acho que seja um chamado Rune. -
Fala, meu colega, utilize a seguinte construção condicional. local position = {x = 100, y = 100, z = 7} if getThingPosition(item2).x == position.x and getThingPosition(item2).y == position.y and getThingPosition(item2).z == position.z then -- INSERIR CÓDIGO MACARRÔNICO AQUI end Abraços.
-
Provavelmente o debug se dá porque a quantidade de texto enviado para a função doShowTextDialog excede o máximo que ela pode mostrar. Isso só acontece se uma vocação tiver acesso a todas as magias do servidor ou se você for GOD.
-
[Encerrado] Erro ao criar novo id de item
tópico respondeu ao pobredobrega de Oneshot em Tópicos Sem Resposta
É mais ou menos assim, meu colega, você procura ali no menu esquerdo o ID do item que quer editar, ou cria um novo item, com a opção do menu Tools. Nas opções da direita, você configura o item, no campo cid, é o ID do item no arquivo .dat do seu servidor e no campo Options são as propriedades do item. Caso você marque uma propriedade que o item não tenha no .dat, é bem provável que ele dê debug. Ou caso você coloque um cid que não exista também.. -
[Encerrado] Erro ao criar novo id de item
tópico respondeu ao pobredobrega de Oneshot em Tópicos Sem Resposta
Mas no caso você utilizou o aplicativo OTItemEditor para editar seu items.otb e adicionar informações e sprite no itemid 112? Se não, é bem provável que ele iria mesmo dar debug. -
Obrigado por ajudar com os reports, SkyLigh. Tópico movido para Pedidos e dúvidas resolvidos - Scripting
-
Tá aqui o erro meu velho: <instant name="Aura" words="aura" lvl="50" mana="100" prem="0" blockwalls="1" needlearn="0" event="script" value="aura spell.lua"/> </instant> Você fechou duas vezes a mesma magia, haha. Substitua por isso: <instant name="Aura" words="aura" lvl="50" mana="100" prem="0" blockwalls="1" needlearn="0" event="script" value="aura spell.lua"> </instant> Ou isso <instant name="Aura" words="aura" lvl="50" mana="100" prem="0" blockwalls="1" needlearn="0" event="script" value="aura spell.lua"/> Se o erro continuar, procure por erros parecidos de fechamento. Abraços.
-
É, tô precisando aprender mais sobre o Linux, raposa \o/ Adicionei ao tópico.
-
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
-
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
-
É seu spells.xml que apresenta problemas, poste entre [*/CODE]
-
dúvida [The Forgotten Server] O meu .exe está dando "parou de funcionar"
pergunta respondeu ao jeandoido de Oneshot em Resolvidos
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. -
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.
-
Tópico movido para a seção de dúvidas e pedidos resolvidos.
-
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.
-
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 respostas
-
- tic tac toe
- xisinho e bolinha
- (e 4 mais)
-
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.
-
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.
-
@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.
-
Olá, XTibiano. Seu tópico foi movido para Pedidos e dúvidas resolvidos - Scripting, por não possuir atividade há mais de uma semana.
- 5 respostas
-
- sistema de bomba!
- otserv
-
(e 2 mais)
Tags:
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.