Ir para conteúdo

Danihcv

Conde
  • Total de itens

    926
  • Registro em

  • Última visita

  • Dias Ganhos

    17

Tudo que Danihcv postou

  1. Danihcv

    [erro] npc

    O erro tava no código que teu amigo mandou (bem que eu tinha achado uma coisa estranha nele). Vê se o npc.lua assim funciona:
  2. sauhsahu, de boas. Só tenho 1 pergunta... Pq você tá refazendo a função msgcontains (justamente nela que deu o erro agr)? Ela não existe no teu server ñ? Enfim, vê se dá certo:
  3. Danihcv

    [erro] npc

    @Spring Trap, fiz a adaptação. Vê se resolve:
  4. @kttallan, o erro está se dando pq vc não está conseguindo acessar (da forma correta) o valor desejado. Temos a seguinte tabela: local table = { ["Arcanine"] = {price = 10, storages = 1212, storagese = 1213, time = 24 * 60 * 60, egg_ID = 12127} } Se você rodar o seguinte código: local table = { ["Arcanine"] = {price = 10, storages = 1212, storagese = 1213, time = 24 * 60 * 60, egg_ID = 12127} } for k, v in pairs(table) do print(k) end O console mostrará o valor de k. O resultado seria o seguinte: *ou seja, mostrará o "identificador" do elemento componente da tabela. Se você rodar, o seguinte código: local table = { ["Arcanine"] = {price = 10, storages = 1212, storagese = 1213, time = 24 * 60 * 60, egg_ID = 12127} } for k, v in pairs(table) do print(k.time) end O resultado será o seguinte: *ou seja, você não conseguiu acessar o valor desejado. Agora, se você rodar o seguinte código: local table = { ["Arcanine"] = {price = 10, storages = 1212, storagese = 1213, time = 24 * 60 * 60, egg_ID = 12127} } for k, v in pairs(table) do print(table[k].time) end O resultado será o seguinte: *ou seja, aqui você conseguirá acessar o valor desejado. Explicação na prática: Se você usar k.time em qualquer parte do código, ele terá o valor nil. Porém, se você utilizar table[k].time ele terá o valor da variável time do elemento k da tabela.
  5. Tópico movido para Tópicos Resolvidos (Clientes)
  6. Conteúdo do tópico removido. Tópico movido para lixeira, qualquer dúvida entre em contato com qualquer membro da equipe.
  7. @kttallan, dessa forma você estaria fazendo um arrodeio desnecessário. Observe uma forma mais sucinta e prática: local table = { ["Arcanine"] = {} } for k, v in pairs(table) do if msgcontains(msg, k) then ..etc etc.. end end Eu fiz um npc um tempo atrás utilizando esse mesmo princípio: http://www.xtibia.com/forum/topico/240211-npc-que-dá-informaçõesconta-histórias/ Dá uma olhada nos códigos dele pra vc ver como é que funcionaria a execução prática disso.
  8. Danihcv

    EDIT NPC

    @carlinhoo0ww, vê se resolve teu problema: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end -- Config -- local configs = { items = { [8262] = {count = 1}, [8263] = {count = 1}, [8264] = {count = 1}, [8265] = {count = 1}, } SecondItemId = 8266, SecondItemCount = 1, isQuest = "false", questStorage = 17890, msgMeet = 'Você deseja trocar '..items[8262].count ..' '..getItemName(8262)..', '..items[8263].count ..' '..getItemName(8263)..', '..items[8264].count ..' '..getItemName(8264)..', '..items[8265].count ..' '..getItemName(8265)..' por '..SecondItemCount..' '..getItemName(SecondItemId)..'?', msgQuestCompleted = "Você já fez essa quest.", msgQuestNotItem = "Voce não tem os itens necessarios.", } function npcTroca(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end c = 0 for k, v in pairs(configs.items) do if getItemCount(cid, configs.items[k]) >= configs.items[k].count then c=c+1 end end if (configs.isQuest == "true") then if (getPlayerStorageValue(configs.questStorage) <= 0) then if c == #configs.items then for k, v in pairs(configs.items) do doRemoveItem(configs.items[k], configs.items[k].count) doPlayerAddItem(cid, configs.SecondItemId, configs.SecondItemCount) end else return doPlayerSendTextMessage(cid, 27, configs.msgQuestNotItem) end else return doPlayerSendTextMessage(cid, 27, configs.msgQuestCompleted) end else if c == #configs.items then for k, v in pairs(configs.items) do doRemoveItem(configs.items[k], configs.items[k].count) doPlayerAddItem(cid, configs.SecondItemId, configs.SecondItemCount) end else return doPlayerSendTextMessage(cid, 27, configs.msgQuestNotItem) end end end itemTrade = keywordHandler:addKeyword({'offer'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = configs.msgMeet}) itemTrade:addChildKeyword({'yes'}, npcTroca, {}) itemTrade:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then.', reset = true}) npcHandler:addModule(FocusModule:new())nd
  9. @kttallan, pelo que dá pra entender, nessa linha você está qrnd pegar o id de um item. local tb = tables[item.itemid] Sendo que você está usando um parâmetro (item) que não possui nenhum valor atribuído. Faria sentido utilizar essa linha se o script fosse um action. Eis o porquê: Como você pode ver, aqui se vc utilizar o parâmetro item em algum lugar do script (action), ele terá um valor que terá sido pego automaticamente no momento em que o script foi acionado. Porém você está utilizando um onCreatureSay, e nesse tipo de evento, não é possível utilizar o parâmetro item. Vc terá que arranjar alguma outra forma de capturar o id do item X que vc tá qrnd. Não sei se me fiz entender, mas espero que sim... sahusahusahu possível solução: Já que na tabela tables vc tá usando só 1 elemento, acredito que usar isso não irá te trazer problemas: for k, v in pairs(tables) do if getPlayerItemCount(cid, k) > 0 then ..etc etc.. end end
  10. @Taiger, o Miguel removeu aqui do fórum.
  11. Este tópico foi movido para Tutoriais e Suporte - Tutoriais para Iniciantes - Suporte Geral
  12. Este tópico foi movido para Tutoriais e Suporte - Tutoriais para Iniciantes - Suporte Geral
  13. Este tópico foi movido para Tutoriais e Suporte - Tutoriais de Scripting - Suporte Scripting
  14. Este tópico foi movido para Tutoriais e Suporte - Tutoriais de Scripting - Suporte Scripting
  15. Tópico movido para dúvidas / pedidos resolvidos.
  16. Este tópico foi movido para Tutoriais e Suporte - Tutoriais de Scripting - Suporte Scripting
  17. Este tópico foi movido para Tutoriais e Suporte - Tutoriais para Iniciantes - Suporte Geral
  18. Este tópico foi movido para Tutoriais e Suporte - Tutoriais para Iniciantes - Suporte Geral
  19. Danihcv

    Sistema De P

    Este tópico foi movido para Tutoriais e Suporte - Tutoriais de Scripting - Suporte Scripting
  20. Este tópico foi movido para Tutoriais e Suporte - Tutoriais de Scripting - Suporte Scripting
  21. Este tópico foi movido para Tutoriais e Suporte - Tutoriais para Iniciantes - Suporte Geral
  22. Danihcv

    [erro] npc

    @Spring Trap, como que tá os arquivos .xml desses npcs?
  23. Tópico movido para lixeira, qualquer dúvida entre em contato com qualquer membro da equipe.
  24. Galera, quando vocês virem algum conteúdo suspeito, utilizem o botão de DENUNCIAR POST (que se encontra na parte superior esquerda de cada post). As medidas cabíveis já foram tomadas e obrigado por alertarem os demais membros.
  • Quem Está Navegando   0 membros estão online

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