-
Total de itens
926 -
Registro em
-
Última visita
-
Dias Ganhos
18
Tudo que Danihcv postou
-
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:
-
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:
-
@Spring Trap, fiz a adaptação. Vê se resolve:
-
@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.
-
Tópico movido para Tópicos Resolvidos (Clientes)
-
Conteúdo do tópico removido. Tópico movido para lixeira, qualquer dúvida entre em contato com qualquer membro da equipe.
-
@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.
-
@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
-
@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
-
@Taiger, o Miguel removeu aqui do fórum.
-
tfs 1.2 [Encerrado] AJUDA-ME Não sobe nem desce escada
tópico respondeu ao barbaresco de Danihcv em Tópicos Sem Resposta
Este tópico foi movido para Tutoriais e Suporte - Tutoriais para Iniciantes - Suporte Geral -
tfs 0.3.4 [Encerrado] Aumento de Effects
tópico respondeu ao Marcelo Junior de Danihcv em Tópicos Sem Resposta
Este tópico foi movido para Tutoriais e Suporte - Tutoriais para Iniciantes - Suporte Geral -
tfs 1.0 Bug em alguns sistemas de Poketibia
pergunta respondeu ao Biscoito Gamer de Danihcv em Scripts
Este tópico foi movido para Tutoriais e Suporte - Tutoriais de Scripting - Suporte Scripting -
Este tópico foi movido para Tutoriais e Suporte - Tutoriais de Scripting - Suporte Scripting
-
Tópico movido para dúvidas / pedidos resolvidos.
-
Este tópico foi movido para Tutoriais e Suporte - Tutoriais de Scripting - Suporte Scripting
-
tfs 1.0 [Encerrado] Mega stone Funfando
tópico respondeu ao Wicke de Danihcv em Tópicos Sem Resposta
Este tópico foi movido para Tutoriais e Suporte - Tutoriais para Iniciantes - Suporte Geral -
tfs 1.0 [Encerrado] ERRO AO CRIAR CONTA
tópico respondeu ao Wicke de Danihcv em Tópicos Sem Resposta
Este tópico foi movido para Tutoriais e Suporte - Tutoriais para Iniciantes - Suporte Geral -
Este tópico foi movido para Tutoriais e Suporte - Tutoriais de Scripting - Suporte Scripting
-
tfs 0.3.4 [AJUDA] Castle War 24h , POR FAVOR
pergunta respondeu ao KaMuZiNhUuU de Danihcv em Scripts
Este tópico foi movido para Tutoriais e Suporte - Tutoriais de Scripting - Suporte Scripting -
[Encerrado] Pokemon Ataca o player mais nao ataca o pokemon
tópico respondeu ao zude96 de Danihcv em Tópicos Sem Resposta
Este tópico foi movido para Tutoriais e Suporte - Tutoriais para Iniciantes - Suporte Geral -
@Spring Trap, como que tá os arquivos .xml desses npcs?
-
Tópico movido para lixeira, qualquer dúvida entre em contato com qualquer membro da equipe.
-
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.
-
Tópico movido para dúvidas / pedidos resolvidos.
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.