Postado Abril 13, 2017 8 anos Exemplo: NPC NAME: MASTER POKEBALLS ITENS A VENDA: ITEM: MASTEBALL PREÇO:10 DIAMONDS ITEM: SHINY STONE PREÇO: 15 DIAMONDS ITEM: "MONEY" PREÇO: 1 DIAMONDS Alguém sabe fazer isso ? me ajuda ?
Postado Abril 13, 2017 8 anos @Thelzp1 Amigo, teste esse aqui, porém não testei e não sei se realmente funciona, peguei daqui do fórum mesmo, vamos lá! Em Data/npc crie um arquivo .xml com o nome que desejar e adicione: <?xml version="1.0" encoding="UTF-8"?> <npc name="Nome" script=".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> Agora em Data/Npc/Scripts crie um arquivo .lua com o nome que desejar e adicione: 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()) Obs: Não sei se é realmente assim que você pediu e se realmente funciona, peguei daqui do TK e aguardo resposta! Espero ter ajudado, abraços =)
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.