Postado Maio 14, 2016 9 anos Este é um post popular. Antes de tudo quero deixar claro que pesquisei no fórum, Não encontrei. Resolvi fazer o meu Este NPC faz oq o titulo diz vende Stone ou Item por Diamond. Npc simples e configurável Testado em Poketibia 8.54 tfs 0.3.6 Em data/npc, coloque um novo arquivo com o nome Ditem.xml e cole isso dentro: Spoiler <?xml version="1.0" encoding="UTF-8"?> <npc name="Dian" script="Ditem.lua" walkinterval="3000" floorchange="0" access="5" > <health now="150" max="150"/> <look type="664" head="0" body="114" legs="114" feet="0"/> <parameters> <parameter key="message_greet" value="Bem-vindo |PLAYERNAME| Aqui voce pode comprar Stones, Vamos la diga {offer}."/> <parameter key="message_farewell" value="Bye! See you next time."/> </parameters> </npc> Na pasta data/npc/script, crie um arquivo chamado "Ditem.lua" e cole isso: Spoiler local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} 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 function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid -- Conversa Jogador/NPC if(msgcontains(msg, 'offer') or msgcontains(msg, 'Offer')) then selfSay('Eu vendo Fire stone, Water stone, Leaf stone. Diga qual voce quer adquirir.', cid) elseif(msgcontains(msg, 'Fire stone') or msgcontains(msg, 'fire stone')) then selfSay('A Fire stone custa 3 Diamonds, Voce vai querer?', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'Water stone') or msgcontains(msg, 'water stone')) then selfSay('A Water stone Custa 3 Diamonds, Voce vai querer?', cid) talkState[talkUser] = 2 elseif(msgcontains(msg, 'Leaf stone') or msgcontains(msg, 'leaf stone')) then selfSay('A Leaf stone Custa 3 Diamonds, Voce vai querer?', cid) talkState[talkUser] = 3 -- Confirmação da Compra elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if(doPlayerRemoveItem(cid, 2145, 3) == true) then selfSay('Thanks!', cid) doPlayerAddItem(cid, 11447, 1) talkState[talkUser] = 0 else selfSay('Voce nao tem diamonds suficiente.', cid) talkState[talkUser] = 0 end elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then if(doPlayerRemoveItem(cid, 2145, 3) == true) then selfSay('Thanks!', cid) doPlayerAddItem(cid, 11442, 1) talkState[talkUser] = 0 else selfSay('Voce nao tem diamonds suficiente.', cid) talkState[talkUser] = 0 end elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 3) then if(doPlayerRemoveItem(cid, 2145, 3) == true) then selfSay('Thanks!', cid) doPlayerAddItem(cid, 11441, 1) talkState[talkUser] = 0 else selfSay('Voce nao tem diamonds suficiente.', cid) talkState[talkUser] = 0 end end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Para adicionar mais itens: 1º - adiciona o nome do item para o player falar o nome dele, caso queira comprar - selfSay('Eu vendo Fire stone, Water stone, Leaf stone. Diga qual voce quer adquirir.', cid) 2º - Após o ultimo talkState[talkUser] = 3 Vc adiciona isso - elseif(msgcontains(msg, '----NOME DO ITEM----') or msgcontains(msg, '---nome do item---')) then selfSay('O item Custa 3 Diamonds, Voce vai querer?', cid) talkState[talkUser] = 4 ----- Aqui coloca 4 pq ja tem a 3 3º - Na parte de -- Confirmação da Compra -- Depois de um talkState[talkUser] = 0 end Adicione -- elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 4) then ---Coloque 4 por causa da ---talkState[talkUser] = 4--- if(doPlayerRemoveItem(cid, 2145, 3) == true) then ----Item q sera removido no caso 2145 Diamonds e 3 é a quantidade. selfSay('Thanks!', cid) doPlayerAddItem(cid, 11447, 1) ----- 11447 é o item q será entregue no caso é a fire stone, o 1 é a quantidade de itens. talkState[talkUser] = 0 else selfSay('Voce nao tem diamonds suficiente.', cid) talkState[talkUser] = 0 end Bom é isso espero ajudar alguém rsrsrs
Postado Maio 14, 2016 9 anos Parabéns, seu tópico de conteúdo foi aprovado! Muito obrigado pela sua contribuição, nós do Tibia King agradecemos. Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP. Spoiler Congratulations, your content has been approved! Thank you for your contribution, we of Tibia King we are grateful. Your content will help many other users, you received +1 REP.
Postado Maio 17, 2020 5 anos Em 13/05/2016 em 19:17, Ayron5 disse: Antes de tudo quero deixar claro que pesquisei no fórum, Não encontrei. Resolvi fazer o meu Este NPC faz oq o titulo diz vende Stone ou Item por Diamond. Npc simples e configurável Testado em Poketibia 8.54 tfs 0.3.6 Em data/npc, coloque um novo arquivo com o nome Ditem.xml e cole isso dentro: Ocultar conteúdo <?xml version="1.0" encoding="UTF-8"?> <npc name="Dian" script="Ditem.lua" walkinterval="3000" floorchange="0" access="5" > <health now="150" max="150"/> <look type="664" head="0" body="114" legs="114" feet="0"/> <parameters> <parameter key="message_greet" value="Bem-vindo |PLAYERNAME| Aqui voce pode comprar Stones, Vamos la diga {offer}."/> <parameter key="message_farewell" value="Bye! See you next time."/> </parameters> </npc> Na pasta data/npc/script, crie um arquivo chamado "Ditem.lua" e cole isso: Ocultar conteúdo local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} 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 function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid -- Conversa Jogador/NPC if(msgcontains(msg, 'offer') or msgcontains(msg, 'Offer')) then selfSay('Eu vendo Fire stone, Water stone, Leaf stone. Diga qual voce quer adquirir.', cid) elseif(msgcontains(msg, 'Fire stone') or msgcontains(msg, 'fire stone')) then selfSay('A Fire stone custa 3 Diamonds, Voce vai querer?', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'Water stone') or msgcontains(msg, 'water stone')) then selfSay('A Water stone Custa 3 Diamonds, Voce vai querer?', cid) talkState[talkUser] = 2 elseif(msgcontains(msg, 'Leaf stone') or msgcontains(msg, 'leaf stone')) then selfSay('A Leaf stone Custa 3 Diamonds, Voce vai querer?', cid) talkState[talkUser] = 3 -- Confirmação da Compra elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if(doPlayerRemoveItem(cid, 2145, 3) == true) then selfSay('Thanks!', cid) doPlayerAddItem(cid, 11447, 1) talkState[talkUser] = 0 else selfSay('Voce nao tem diamonds suficiente.', cid) talkState[talkUser] = 0 end elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then if(doPlayerRemoveItem(cid, 2145, 3) == true) then selfSay('Thanks!', cid) doPlayerAddItem(cid, 11442, 1) talkState[talkUser] = 0 else selfSay('Voce nao tem diamonds suficiente.', cid) talkState[talkUser] = 0 end elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 3) then if(doPlayerRemoveItem(cid, 2145, 3) == true) then selfSay('Thanks!', cid) doPlayerAddItem(cid, 11441, 1) talkState[talkUser] = 0 else selfSay('Voce nao tem diamonds suficiente.', cid) talkState[talkUser] = 0 end end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Para adicionar mais itens: 1º - adiciona o nome do item para o player falar o nome dele, caso queira comprar - selfSay('Eu vendo Fire stone, Water stone, Leaf stone. Diga qual voce quer adquirir.', cid) 2º - Após o ultimo talkState[talkUser] = 3 Vc adiciona isso - elseif(msgcontains(msg, '----NOME DO ITEM----') or msgcontains(msg, '---nome do item---')) then selfSay('O item Custa 3 Diamonds, Voce vai querer?', cid) talkState[talkUser] = 4 ----- Aqui coloca 4 pq ja tem a 3 3º - Na parte de -- Confirmação da Compra -- Depois de um talkState[talkUser] = 0 end Adicione -- elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 4) then ---Coloque 4 por causa da ---talkState[talkUser] = 4--- if(doPlayerRemoveItem(cid, 2145, 3) == true) then ----Item q sera removido no caso 2145 Diamonds e 3 é a quantidade. selfSay('Thanks!', cid) doPlayerAddItem(cid, 11447, 1) ----- 11447 é o item q será entregue no caso é a fire stone, o 1 é a quantidade de itens. talkState[talkUser] = 0 else selfSay('Voce nao tem diamonds suficiente.', cid) talkState[talkUser] = 0 end Bom é isso espero ajudar alguém rsrsrs vlw tava procurando um npc pra comprar held box tier 1 com tokens e me ajudo muito
Postado Maio 17, 2020 5 anos Autor 9 horas atrás, ADM Flow disse: vlw tava procurando um npc pra comprar held box tier 1 com tokens e me ajudo muito Faça bom proveito.
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.