
FelipeWikky
Membro
-
Registro em
-
Última visita
Solutions
-
FelipeWikky's post in (Resolvido)Ajuda Em criar 1 Npc De Informações was marked as the answerBom, achei aqui no TK um script, só fiz edita-lo para que ao falar "deposito", ele dirá a msg que está contida no script.
No entanto, ele manda a mensagem em forma de Creaturesay, ou seja. É como se o npc estivesse falando, e em certo tempo a mensagem some, impossibilitando as vezes, de ser lida completamente. Caso queira o script, segue abaixo
Crie um arquivo .xml na pasta data/npc e coloque:
<?xml version="1.0" encoding="UTF-8"?> <npc name="Informador" script="information.lua" walkinterval="350000" floorchange="0" speed="0"> <health now="150" max="150"/> <look type="606" head="91" body="114" legs="86" feet="0"/> <parameters> <parameter key="message_greet" value="Ola. Gostaria de Comprar 1 item Donate? Diga 'deposito' Para Saber Os Dados Bancarios Para Deposito."/> <parameter key="message_farewell" value="Good bye!"/> <parameter key="message_idletimeout" value="Good bye!"/> <parameter key="message_walkaway" value="Good bye!"/> </parameters> </npc>
Agora em data/npc/scripts crie um arquivo .lua e renomie para information.lua e dentro coloque:
local text = { deposito = 'Digite aqui o dados que deseja', -- escreva o texto } local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) npcHandler.topic = {} 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 if msgcontains(msg:lower(), 'deposito') then npcHandler:say(text.deposito, cid) npcHandler.topic[cid] = 0 elseif msgcontains(msg:lower(), 'bye') or msgcontains(msg:lower(), 'ok') then npcHandler:say('Bye!', cid) npcHandler.topic[cid] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Agora, tenho um script que faz a mesma coisa, só que por talkaction(comando). Basicamente, ao digitar um comando(/deposito), abre uma janela com as informações que você desejar. Acho mais eficaz que o sistema por npc, pois como eu disse, depois de um certo tempo a mensagem some, impossibilitando as vezes de ser lida completamente. Caso queira o script, segue abaixo
Crie um arquivo em data/talkaction/scripts com o nome infodeposito.lua e coloque dentro:
function onSay(cid, words) local msg = [[ -----Dados para Deposito----- Digite os dados Dentro desse espaço entre o local msg e o colchete fechando \/ ]] doPlayerPopupFYI(cid, msg) return true end Agora, vá no arquivo talkactions.xml e adicione esta tag
<talkaction words="/deposito" event="script" value="infodeposito.lua"/> Pronto, ai é só digitar o comando /deposito que abrirá uma janela com as informações que você colocar no script
Créditos a fywell pelo script do npc
Créditos a mim pelo script do talkaction
Rep+
-
FelipeWikky's post in (Resolvido)Falar 1 Palavra e Ser teleportado was marked as the answerSim Sim, é o mesmo esquema, você vai adicionando mais "if(words).
Veja o Spoiler
E no talkactions.xml é a mesma coisa, adicione mais tag's com as words que voce colocou no script (De acordo com o script que eu mandei, ficará assim)
-
FelipeWikky's post in (Resolvido)[ERRO] Stone nao evolui! was marked as the answerVocê adicionou o número do item da stone, no actions.xml também? Pois é preciso colocar lá também
(O meu está assim, o seu deve estar quase a mesma coisa)
Adicione o número do item ai também, e teste
Edit:
Li o seu tópico e vi que você adicionou a tag no actions.xml
Você pode fazer assim, use esse sistema de Shiny Stone(Está no spoiler)
Eu uso esse sistema, e funciona tranquilo. Você pode usa-lo para adicionar a stone que você está tentando colocar