Postado Agosto 12, 2014 10 anos Solução Desculpe-me pela demora, é que estou desenvolvendo um site. Enfim, segue o script: 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 ------------------- Configuração dos Itens ----------------------- local items = {1820, 1821, 2037, 2038, 2097, 2098, 2096, 2099, 2400} -- ID dos Itens local nome = {'item1', 'item2', 'item3', 'item4', 'item5', 'item6', 'item7', 'item8', 'item9'} -- Nome dos Itens local valor = {2145, 5} -- id da moeda, quantidade ------------------- MESSAGES INICIAIS ---------------------------------------- if msgcontains(msg, nome[1]) then selfSay('Deseja comprar um {'..getItemNameById(items[1])..'} pagando '..valor[2]..' {'..getItemNameById(valor[1])..'?}', cid) talkState[talkUser] = 1 elseif msgcontains(msg, nome[2]) then selfSay('Deseja comprar um {'..getItemNameById(items[2])..'} pagando '..valor[2]..' {'..getItemNameById(valor[1])..'?}', cid) talkState[talkUser] = 2 elseif msgcontains(msg, nome[3]) then selfSay('Deseja comprar um {'..getItemNameById(items[3])..'} pagando '..valor[2]..' {'..getItemNameById(valor[1])..'?}', cid) talkState[talkUser] = 3 elseif msgcontains(msg, nome[4]) then selfSay('Deseja comprar um {'..getItemNameById(items[4])..'} pagando '..valor[2]..' {'..getItemNameById(valor[1])..'?}', cid) talkState[talkUser] = 4 elseif msgcontains(msg, nome[5]) then selfSay('Deseja comprar um {'..getItemNameById(items[5])..'} pagando '..valor[2]..' {'..getItemNameById(valor[1])..'?}', cid) talkState[talkUser] = 5 elseif msgcontains(msg, nome[6]) then selfSay('Deseja comprar um {'..getItemNameById(items[6])..'} pagando '..valor[2]..' {'..getItemNameById(valor[1])..'?}', cid) talkState[talkUser] = 6 elseif msgcontains(msg, nome[7]) then selfSay('Deseja comprar um {'..getItemNameById(items[7])..'} pagando '..valor[2]..' {'..getItemNameById(valor[1])..'?}', cid) talkState[talkUser] = 7 elseif msgcontains(msg, nome[8]) then selfSay('Deseja comprar um {'..getItemNameById(items[8])..'} pagando '..valor[2]..' {'..getItemNameById(valor[1])..'?}', cid) talkState[talkUser] = 8 elseif msgcontains(msg, nome[9]) then selfSay('Deseja comprar um {'..getItemNameById(items[9])..'} pagando '..valor[2]..' {'..getItemNameById(valor[1])..'?}', cid) talkState[talkUser] = 9 elseif (msgcontains(msg, 'help') or msgcontains(msg, 'ajuda')) then selfSay(' Digite qual item deseja adquirir.', cid) selfSay('Atualmente temos {'..getItemNameById(items[1])..'}, {'..getItemNameById(items[2])..'}, {'..getItemNameById(items[3])..'}, {'..getItemNameById(items[4])..'}, {'..getItemNameById(items[5])..'}, {'..getItemNameById(items[6])..'}, {'..getItemNameById(items[7])..'} e {'..getItemNameById(items[8])..'}.', cid) talkState[talkUser] = 0 ---------------------- NEGOCIAÇÃO ------------------------------- elseif talkState[talkUser] == 1 then if (msgcontains(msg, 'sim') or msgcontains(msg, 'yes')) then if getPlayerItemCount(cid, valor[1]) >= valor[2] then doPlayerRemoveItem(cid, valor[1], valor[2]) doPlayerAddItem(cid, items[1], 1) selfSay('Parabens, voce acaba de adquirir um '..getItemNameById(items[1])..'.', cid) else selfSay('Voce nao tem dinheiro o suficiente.', cid) talkState[talkUser] = 0 end end elseif talkState[talkUser] == 2 then if (msgcontains(msg, 'sim') or msgcontains(msg, 'yes')) then if getPlayerItemCount(cid, valor[1]) >= valor[2] then doPlayerRemoveItem(cid, valor[1], valor[2]) doPlayerAddItem(cid, items[2], 1) selfSay('Parabens, voce acaba de adquirir um '..getItemNameById(items[2])..'.', cid) else selfSay('Voce nao tem dinheiro o suficiente.', cid) talkState[talkUser] = 0 end end elseif talkState[talkUser] == 3 then if (msgcontains(msg, 'sim') or msgcontains(msg, 'yes')) then if getPlayerItemCount(cid, valor[1]) >= valor[2] then doPlayerRemoveItem(cid, valor[1], valor[2]) doPlayerAddItem(cid, items[3], 1) selfSay('Parabens, voce acaba de adquirir um '..getItemNameById(items[3])..'.', cid) else selfSay('Voce nao tem dinheiro o suficiente.', cid) talkState[talkUser] = 0 end end elseif talkState[talkUser] == 4 then if (msgcontains(msg, 'sim') or msgcontains(msg, 'yes')) then if getPlayerItemCount(cid, valor[1]) >= valor[2] then doPlayerRemoveItem(cid, valor[1], valor[2]) doPlayerAddItem(cid, items[4], 1) selfSay('Parabens, voce acaba de adquirir um '..getItemNameById(items[4])..'.', cid) else selfSay('Voce nao tem dinheiro o suficiente.', cid) talkState[talkUser] = 0 end end elseif talkState[talkUser] == 5 then if (msgcontains(msg, 'sim') or msgcontains(msg, 'yes')) then if getPlayerItemCount(cid, valor[1]) >= valor[2] then doPlayerRemoveItem(cid, valor[1], valor[2]) doPlayerAddItem(cid, items[5], 1) selfSay('Parabens, voce acaba de adquirir um '..getItemNameById(items[5])..'.', cid) else selfSay('Voce nao tem dinheiro o suficiente.', cid) talkState[talkUser] = 0 end end elseif talkState[talkUser] == 6 then if (msgcontains(msg, 'sim') or msgcontains(msg, 'yes')) then if getPlayerItemCount(cid, valor[1]) >= valor[2] then doPlayerRemoveItem(cid, valor[1], valor[2]) doPlayerAddItem(cid, items[6], 1) selfSay('Parabens, voce acaba de adquirir um '..getItemNameById(items[6])..'.', cid) else selfSay('Voce nao tem dinheiro o suficiente.', cid) talkState[talkUser] = 0 end end elseif talkState[talkUser] == 7 then if (msgcontains(msg, 'sim') or msgcontains(msg, 'yes')) then if getPlayerItemCount(cid, valor[1]) >= valor[2] then doPlayerRemoveItem(cid, valor[1], valor[2]) doPlayerAddItem(cid, items[7], 1) selfSay('Parabens, voce acaba de adquirir um '..getItemNameById(items[7])..'.', cid) else selfSay('Voce nao tem dinheiro o suficiente.', cid) talkState[talkUser] = 0 end end elseif talkState[talkUser] == 8 then if (msgcontains(msg, 'sim') or msgcontains(msg, 'yes')) then if getPlayerItemCount(cid, valor[1]) >= valor[2] then doPlayerRemoveItem(cid, valor[1], valor[2]) doPlayerAddItem(cid, items[8], 1) selfSay('Parabens, voce acaba de adquirir um '..getItemNameById(items[8])..'.', cid) else selfSay('Voce nao tem dinheiro o suficiente.', cid) talkState[talkUser] = 0 end end elseif talkState[talkUser] == 9 then if (msgcontains(msg, 'sim') or msgcontains(msg, 'yes')) then if getPlayerItemCount(cid, valor[1]) >= valor[2] then doPlayerRemoveItem(cid, valor[1], valor[2]) doPlayerAddItem(cid, items[9], 1) selfSay('Parabens, voce acaba de adquirir um '..getItemNameById(items[9])..'.', cid) else selfSay('Voce nao tem dinheiro o suficiente.', cid) talkState[talkUser] = 0 end end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Boa sorte. Gosta do meu trabalho? Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs. Atenciosamente,Adriano Swatt' Para ver meus tutoriais acesse meu perfil.
Postado Agosto 12, 2014 10 anos Autor Mais ele está assim : Player >> Hi NPC >> Olá deseja compra algo? vamos lá fale trade Player >> Trade ai abre uma janela com os items que o npc vai vende?
Postado Agosto 12, 2014 10 anos Não, está por "palavras" mesmo, você configura e fala o nome do item que deseja. Pode dizer help ou ajuda e aparece a lista de itens disponíveis. Gosta do meu trabalho? Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs. Atenciosamente,Adriano Swatt' Para ver meus tutoriais acesse meu perfil.
Postado Agosto 12, 2014 10 anos Autor Não, está por "palavras" mesmo, você configura e fala o nome do item que deseja. Pode dizer help ou ajuda e aparece a lista de itens disponíveis. não teria como fazer do jeito que disse acima né ? obrigado mesmo assim rep+
Postado Agosto 12, 2014 10 anos Deve até ter, mas creio que será um pouco mais chatinho de fazer. Este seria um exemplo: Script. Só que pra mim fazer agora, infelizmente, seria inviável. Enfim, boa sorte. Gosta do meu trabalho? Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs. Atenciosamente,Adriano Swatt' Para ver meus tutoriais acesse meu perfil.
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.