Ir para conteúdo

Gengo

Cavaleiro
  • Total de itens

    177
  • Registro em

  • Última visita

  • Dias Ganhos

    50

Tudo que Gengo postou

  1. 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
  2. Estranho dar erro, poste o erro que da no console, por favor.
  3. 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.
  4. 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.
  5. 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
  6. 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.
  7. 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.
  8. 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.
  9. @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>
  10. 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.
  11. 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'];
  12. 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
  13. 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.
  14. O que você pode fazer é mandar mais tiles a visão do jogador, segue o link que ensina como fazer esse procedimento. https://www.xtibia.com/forum/topic/238779-adicionando-mais-tiles-a-vis%C3%A3o-do-jogador/
  15. Acho que tenho o que você precisa, só vai faltar as outifit mostrando do lado. Para instalar creio que é bem simples, então vamos lá. 1º Abra a pasta do seu gesior e vá em /layouts/tibiacom/layout.php, e caso você já tenha um TopLevel substitua por esse trecho: E já estará funcionando como no meu: Vou deixar o link das imagens utilizada para colocar no seu devido diretório: Se ficar meio confuso deixo aqui o meu arquivo layouts.php inteiro para você dar uma olhada e ver se orienta você. Bom acho que é isso que você quer, espero ter ajudado.
  16. Gengo

    [OtClient] Auto-Loot

    Tenta outro autoloot da parte do servidor para poketibia e adapta para usar no módulo, como o autoloot que fica no servidor não foi eu que desenvolvi, não vou saber oque pode estar ocorrendo de errado no seu.
  17. Gengo

    [OtClient] Auto-Loot

    Certeza? Me parece se não me engano o erro fala que vc não tem a função doSendPlayerExtendedOpcode e ainda manda algo nulo. Ou então você deve ter configurado algo errado, por favor faça um teste com outra coisa só para tirar a duvida se vc tem essa função, já tem 2 servidores que testei esse autoloot e estão funcionando normal sem esse erro que vc cita.
  18. Gengo

    [OtClient] Auto-Loot

    E seu servidor tem suporte a opcodes?
  19. Gengo

    [OtClient] Auto-Loot

    É só remover essa linha: btnAutoLoot = modules.client_topmenu.addRightGameToggleButton('lootButton', tr('Auto-Loot'), 'loot', toggle) E caso queira chamar pela tecla de atalho utilize essa: g_keyboard.bindKeyPress('Ctrl+E', toggle)
  20. Gengo

    [OtClient] Auto-Loot

    Você fala usar sem o topbutton que fica lá no topo?
  21. Gengo

    [OtClient] Auto-Loot

    Fala ai galera do xtibia estou aqui trazendo mais um module para o otClient. Esses dias atras estavo jogando pokestorm e me deparei com o autoloot e decidi fazer um parecido com o deles e então pensei porque não trazer para a comunidade? Afinal não vejo muitos modulos de autoloot para otClient o unico que vi foi o autoloot da DxP, porem não é muito intuitivo comparado com modulo da pokestorm, bom sem mais enrolação vamos lá. Feito o download do arquivo, coloque-o na pasta do seu otClient em /modules/ e pronto já é possível "utilizar-lo", porem com algumas exceções de algumas configurações básicas que temos que fazer para poder utilizar-lo com algumas eficiências. 1º Na pasta do seu otClient/data/ crie uma pasta chamada items e coloque o seus arquivos items.otb e items.xml. 2º Vai até a pasta do seu otClient/modules/game_things abre o arquivo things.lua e procure a função load(), e coloque o seguinte: g_things.loadOtb ('/items/items.otb') g_things.loadXml('/items/items.xml') Obs: Não se assustem quando entrarem no client para logar, no inicio vai dar uma travada, mas depois de esperar uns segundos ele normaliza, pois o único problema é que o carregamento dos arquivos dos items eles são demorados. Também é preciso fazer umas configurações rápida na parte do servidor para poder funcionar. Copie e cole esse script e coloque na pasta do servidor em mods/ e de o nome de autoloot.xml Ainda na pasta do seu servidor abre o arquivo /data/creaturescripts/scripts/login.lua e coloque o seguinte script dentro da função onLogin: local loot = '' for i = 1, #getPlayerStorageTable(cid, info.Storages[1]) do loot = loot..getItemInfo(getPlayerStorageTable(cid, info.Storages[1])[i]).clientId..'-'..getItemNameById(getPlayerStorageTable(cid, info.Storages[1])[i])..'@' end doSendPlayerExtendedOpcode(cid, 157, loot) Feito todos os passos corretamente, configurado certo, deve ficar assim no game: Bom espero que tenham entendido e gostado, não sou muito de ficar escrevendo tutorial, até uma próxima. Download Créditos
  22. Clica com o botao direito do mouse em cima desse teleporte e clica em goto position, vc será redirecionado para o templo.
  23. Teste ai mano, acabei de testar aqui e está funcionando normal. OBS: Escreva o código em vez de copiar e colar, acabei de fazer um teste e me parece que copiando e colando daqui, no código buga, esse foi o motivo de dar erro no seu, a logica é esta se não fazer o que falei, não vai conseguir mesmo executar o script.
  24. Testa assim: events2[getPlayerGUID(cid)] = addEvent(doRemoveCreature, config.tempo*60*1000-500, cid)
  25. Na parte do modulo onde registra: ProtocolGame.registerExtendedOpcode(122, ... O 122 possivelmente está em uso no seu otClient, troque-o por um que não esteja em uso. Dai você se pergunta também como saber qual não está em uso, simples coloque um numero que não de erro deste tipo, lembrando que o opcode vai do 0 ao 255. OBS: Trocar o numero 122 do servidor também. E mais, veja se o registro do Opcodes do HealthChange também não esteja em uso. Verificado tudo isso, deverá funcionar normal, se erros surgirem dai não é erro com o module em que criei e sim má configuração sua.
  • Quem Está Navegando   0 membros estão online

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