Ir para conteúdo

Gengo

Artesão
  • Total de itens

    128
  • Registro em

  • Última visita

  • Dias Ganhos

    16

Tudo que Gengo postou

  1. O erro é por causa que a condição: if items.azul == item2.itemid then está dentro da condição if items.amarelo == item2.itemid then Segue as alterações:
  2. Seu erro é que você não fechou com chaves essa função: void ProtocolGame::sendMoveCreature Segue o link com o código corrigido: https://hastebin.com/jugehavure.cpp
  3. @SirDubstep A melhor forma de se fazer o que você quer é pelo próprio método que você mesmo apresentou, porem um pouco quanto diferente, segue o exemplo da melhor maneira de se fazer e veja se atende suas necessidades. Se não funcionar, você está fazendo a implementação dessa função de forma inadequada. Pelo que da para perceber você tentou colocar essa função como propriedade de função do UIWidget e no caso ela não é uma função que atrela aos widgets
  4. Esses erros são bem explícitos na hora da compilação, nem sei se vale a pena dizer, já que o nosso amigo ai do tópico apresenta uma dúvida e na hora de responder ele nem retorna ao tópico dando rep+ ou falando que conseguiu utilizar o tutorial que demostrei, só que porem surge outro erro e tal.
  5. Taiger blz! Então, já tem tutorial demonstrando como faz pra compilar sources quando se tem só os arquivos .h e .cpp Link Compilar Sources No meio do tutorial ensina exatamente o que você deve estar procurando.
  6. Gengo

    [OTClient] Player Info OTPokemon

    [OTClient] Health Player Info OTPokemon Eae galerinha do xtibia, hoje venho trazer mais uma contribuição para a comunidade, um módulo indêntico ao do OtPokemon. Mesmo que seja simples a instalação, tem sempre aquele que não sabe onde deve colocar o módulo, peço então que tenha paciência quanto a esse simples tutorial, aos demais aqueles que já sabem, peço que ao menos leia a Observações do módulo. 1º Faça o download do módulo. 2º Extraia o módulo para a pasta do seu otClient em /modules ficando assim: Feito o passo 1 e 2 creio que já estará funcionando, isto se você fez tudo certinho. •Observações do módulo• Demonstrativo do módulo no jogo.
  7. Se vc clicar na pokebar, não é pra acontecer nada mesmo, não fiz ela pra ser clicado e chamar o pokemon. Fiz para poder arrastar individualmente sim. Na verdade isso é só um módulo para outros poderem ter uma noção de como fazer uma pokebar para seus pokemons.
  8. Gengo

    [Resolvido] NPC Dialog

    Printa no console o param e veja qual indice retorna a outift, possivelmente deve ser isso o param[2] não deve retornar o esperado, testei o aqui no meu e não dá erro nenhum. Obs: estou usando o UICreature
  9. Gengo

    [Resolvido] NPC Dialog

    Estranho dar erro, poste o erro que da no console, por favor.
  10. Gengo

    [Resolvido] NPC Dialog

    Fala @Marshmello, Blz! Para que seja enviado a outfit do npc, mude sua função sendDialogNpc para essa: E na parte do module em npcdialog.lua mude sua função NpcDialog para esta: Bom, acho que da para entender muito bem.
  11. Mano tem que seguir o tutorial com atenção, em nenhum momento uso essa variavel pokeLifeMax e doSetAttributesBallsByPokeName, se vc está com problemas nessa variável e na função, isso não tem nada haver com o modulo de estar dando erros, veja a estrutura de como eu envio o nome, portrait, health e veja quais funções no seu servidor faz para pegar essas informações e por fim substitua para adaptar. O que não faz sentido é lotar o tópico com bugs do servidor que não tem muito haver com o modulo. Para não deixar vc na mão vou mostrar minhas function que pega o health e o nome do pokemon.
  12. Gengo

    [OtClient] Auto-Loot

    Coloque isso na 050-function info = { AutomaticDeposit = true, BlockMonsters = {}, BlockItemsList = {2123,2515}, Max_Slots = {free = 3, premium = 5}, Storages = {27000,28001,28002} } Pode ser que o serv nao enxerga essa parte la no xml como variáveis global
  13. Mano no onLogin pelo que erro que você printou do console, me parece que é um carácter especial disso está explicito no erro; No npc da Nurse Joy basta colocar a função doSendPlayerExtendedOpcode, veja de exemplo como o meu está. Obs: Seu link não estão mostrando mais nada.
  14. Gengo

    [OtClient] Auto-Loot

    Seu erro acontece pq vc provavelmente não tem um autoloot.xml na pasta mods do seu servidor, esse info é de uma storage que faz o uso nesse autoloot.xml. Troque por um autoloot que funciona no seu servidor, o modulo do OTC não depende do autoloot na parte do servidor, logo qualquer autoloot que possa funcionar no seu servidor vc pode colocar e fazendo alterações minimas que não requer nenhum conhecimento médio ou avançado.
  15. 1º Seu otserv precisa ter opcodes. 2º Antes de sair copiando e colando, favor confira se não vem caracteres especiais, pois quando você copia algo daqui do forum e cola num editor de texto, eles vem com alguns caracteres indevido, é o que da para perceber no seu código. Caso não seja isso, a 1ª opção que falei é valida.
  16. @Phineasz é basicamente aquilo ali o código, vc só vai ajeitar a posição onde vai ficar o Widget e colocar um paragrafo ali na parte preta. $guildName = $SQL->query('SELECT name FROM `guilds` WHERE id = (SELECT value FROM global_storage WHERE global_storage.key = 100006)')->fetch()['name']; <p>$guildName</p>
  17. Gengo

    [OtClient] Auto-Loot

    Devido o carregamento dos arquivo do item xml e otb, ele gera uma lentidão na hora de carregar, porem uma vez carregada ele fica normal, espere um pouco e veras que vai carregar, mas é logico se vc fez tudo certo.
  18. Bom o layout do Widget não é comigo, vou deixar para o mestre @VictorWEBMaster, mas para pegar o nome da Guild basta utilizar essa essa linha, do resto é só design. $guildName = $SQL->query('SELECT name FROM `guilds` WHERE id = (SELECT value FROM global_storage WHERE global_storage.key = 100006)')->fetch()['name'];
  19. Usa ele em cima do chat
  20. Sim no otui vc coloca a propriedade @onClick: showChat()
  21. Coloca o onClick a função showChat nesse botão e no botão que faz desocultar.
  22. Tem que colocar no .otui com cuidado, uma vez que colocar lá algum espaço ou forma indevida, o arquivo inteiro já para de funcionar, inclusive até deu certo comigo, pq não daria com vc também. Faça os passo a passo na mão, não tente copiar e colar, deve ser algum erro besta que passa despercebido.
  23. Bom, é bem simples de fazer, vamos lá. 1º Na pasta do seu otClient em /modules/game_interface abra o arquivo gameinterface.otui Em cima de: GameBottomPanel id: gameBottomPanel anchors.left: gameLeftPanel.right anchors.right: gameRightPanel.left anchors.top: bottomSplitter.top anchors.bottom: parent.bottom Coloque: UIWidget anchors.bottom: gameBottomPanel.top anchors.horizontalCenter: parent.horizontalCenter image-source: /images/game/console/chat @onClick: showChat() Depois na mesma pasta, abre o arquivo gameinterface.lua e coloque a seguinte function: function showChat() gameBottomPanel:setMarginTop(gameBottomPanel:getHeight() - gameBottomPanel:getPaddingTop()) end Bom é isso, atente-se na hora de colocar pois o arquivo .otui exige indentação e etc. In-Game ficará assim:
  24. Comando: !autoloot add, itemId or name -- Adding a item to the list !autoloot remove, itemId or name -- Removing a item from the list !autoloot show -- Show the autoLoot list !autoloot clear -- Clears the autoLoot list Abra seu arquivo global.lua e coloque o seguinte script: -- AutoLoot config AUTO_LOOT_MAX_ITEMS = 5 -- Reserved storage AUTOLOOT_STORAGE_START = 10000 AUTOLOOT_STORAGE_END = AUTOLOOT_STORAGE_START + AUTO_LOOT_MAX_ITEMS -- AutoLoot config end Agora vá para talkactions/talkactions.xml e cole esta linha: <talkaction words="!autoloot" separator=" " script="autoloot.lua"/> Depois disso, vá para talkactions/scripts e crie um novo arquivo lua e nomeie-a: autoloot.lua e cole este código: function onSay(player, words, param) local split = param:split(",") local action = split[1] if action == "add" then local item = split[2]:gsub("%s+", "", 1) local itemType = ItemType(item) if itemType:getId() == 0 then itemType = ItemType(tonumber(item)) if itemType:getId() == 0 then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "There is no item with that id or name.") return false end end local itemName = tonumber(split[2]) and itemType:getName() or item local size = 0 for i = AUTOLOOT_STORAGE_START, AUTOLOOT_STORAGE_END do local storage = player:getStorageValue(i) if size == AUTO_LOOT_MAX_ITEMS then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "The list is full, please remove from the list to make some room.") break end if storage == itemType:getId() then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, itemName .." is already in the list.") break end if storage <= 0 then player:setStorageValue(i, itemType:getId()) player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, itemName .." has been added to the list.") break end size = size + 1 end elseif action == "remove" then local item = split[2]:gsub("%s+", "", 1) local itemType = ItemType(item) if itemType:getId() == 0 then itemType = ItemType(tonumber(item)) if itemType:getId() == 0 then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "There is no item with that id or name.") return false end end local itemName = tonumber(split[2]) and itemType:getName() or item for i = AUTOLOOT_STORAGE_START, AUTOLOOT_STORAGE_END do if player:getStorageValue(i) == itemType:getId() then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, itemName .." has been removed from the list.") player:setStorageValue(i, 0) return false end end player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, itemName .." was not founded in the list.") elseif action == "show" then local text = "-- Auto Loot List --\n" local count = 1 for i = AUTOLOOT_STORAGE_START, AUTOLOOT_STORAGE_END do local storage = player:getStorageValue(i) if storage > 0 then text = string.format("%s%d. %s\n", text, count, ItemType(storage):getName()) count = count + 1 end end if text == "" then text = "Empty" end player:showTextDialog(1950, text, false) elseif action == "clear" then for i = AUTOLOOT_STORAGE_START, AUTOLOOT_STORAGE_END do player:setStorageValue(i, 0) end player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "The autoloot list has been cleared.") else player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Use the commands: !autoloot {add, remove, show, clear}") end return false end Agora vá para creaturescripts/creaturescripts.xml e cole esta linha: <event type="kill" name="AutoLoot" script="autoloot.lua" /> Depois disso, vá para creativecripts/scripts e crie um novo arquivo lua e nomeie-a autoloot.lua e cole isto: local function scanContainer(cid, position) local player = Player(cid) if not player then return end local corpse = Tile(position):getTopDownItem() if not corpse or not corpse:isContainer() then return end if corpse:getType():isCorpse() and corpse:getAttribute(ITEM_ATTRIBUTE_CORPSEOWNER) == cid then for a = corpse:getSize() - 1, 0, -1 do local containerItem = corpse:getItem(a) if containerItem then for b = AUTOLOOT_STORAGE_START, AUTOLOOT_STORAGE_END do if player:getStorageValue(b) == containerItem:getId() then containerItem:moveTo(player) end end end end end end function onKill(player, target) if not target:isMonster() then return true end addEvent(scanContainer, 100, player:getId(), target:getPosition()) return true end E não se esqueça de colar isso em login.lua que está localizado em creaturescripts/scripts: player:registerEvent("AutoLoot") Obs: Atente-se na hora de copiar o código para um editor de texto, creio que as vezes quando copiamos e colamos daqui do fórum, no editor vem com alguns caracteres especiais. Coloquei o tutorial aqui mesmo, não sei se é permitido colocar links de outros forums. Créditos: Printer
  25. Gengo

    [OtClient] Auto-Loot

    O erro que acontece é que quando cópia código daqui do forum e coloca em um editor, vem bugado, escreva manualmente ou atente-se os caracteres especiais do code que veio bugado do forum e corriga no seu.
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...