Postado Dezembro 15, 2017 7 anos Opa , gostaria de 4 npcs. o 1º npc com 2 keywords(palavras-chaves) para falar com o 2º npc o 2º npc com 1 keyword para falar com o 3º npc o 3º npc com 4 keywords para falar com o 4º npc e 4º com uma keyword para ser teleportado para o lugar X (tipo os npcs de barco) obs: voce so pode falar com o 2 npc se tiver falado com o 1 e assim em diante
Postado Dezembro 16, 2017 7 anos @Fernandooww Você quer que ele precise ter falado ou quer que ele fale as palavras ? Ajudei? REP+ Meus Servers: PokeUnwind Em Breve Rust Tibia Fechado Tópicos: [Tutorial] Adicionando Pokemons com icon system [Solução] ElfBot não abre corpos Projetos: DigiTibia Fechado Rust Tibia Fechado(temporariamente!)
Postado Dezembro 16, 2017 7 anos Autor 37 minutes ago, Ckfox said: @Fernandooww Você quer que ele precise ter falado ou quer que ele fale as palavras ? quero que o player use palavras chaves. exmplo: o jogador fala hi no npc e o npc responde "hi , what a lovely day to die" e pra ele falar vc usa a keyword "madmax" ele diz o texto2 e ai vc colocava a keyword2 e finalizava. tem um npc que eu consegui fazer isso . mas ele so funciona com um texto e 1 keyword ... nao consigo colocar mais que isso. vou por aki em baixo \/ <?xml version="1.0"?> <npc name="Warp" script="data/npc/scripts/warp.lua" walkinterval="2000"> <health now="100" max="100"/> <look type="289" head="0" body="120" legs="120" feet="132" addons="2"/> <parameters> <parameter key="message_greet" value="|PLAYERNAME|, os mortos nao contam historias." /> <parameter key="message_farewell" value="Cuidado pelos mares afora." /> <parameter key="message_onsell" value="YO HO." /> <parameter key="message_walkaway" value="Justo." /> <parameter key="module_keywords" value="1" /> <parameter key="keywords" value="pirata" /> <parameter key="keyword_reply1" value="Ouvi dizer que capitao Sales e sua tripulacao chegavam mais rapidos em todas as Hunts mas ninguem descobriu como." /> </parameters> </npc>
Postado Dezembro 16, 2017 7 anos Meu amigo!! Eu to nessa tb, to tomando uma surra, pra fazer eu ir no outro npc, preciso do mesmo script que vc.
Postado Dezembro 16, 2017 7 anos Fiz de uma forma simplificada para vocês. Em npcs/scripts crie um arquivo.lua: 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 local npcOrder = 1 -- edite a ordem do npc local t = { [1] = {keyword = "kazordoon", text = "Bela cidade construída pelos seres mais fortes, os dwarfs."}, -- palavra-chave, texto [2] = {keyword = "mushroom", text = "Comida típica dos dwarfs. A propósito, você não teria algum para mim?"} } function creatureSayCallback(cid, type, msg) local talkUser, msg = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid, string.lower(msg) if(not npcHandler:isFocused(cid)) then if isInArray({"hi", "hello"}, msg) then if (getPlayerStorageValue(cid, 96772) == -1 and npcOrder == 1) or getPlayerStorageValue(cid, 96772) == npcOrder then npcHandler:addFocus(cid) npcHandler:say("Olá, "..getPlayerName(cid).."! Você tem algo a me dizer?", cid) talkState[talkUser] = 1 else npcHandler:addFocus(cid) npcHandler:say("Olá, "..getPlayerName(cid).."! Talvez possamos conversar outra hora...", cid) talkState[talkUser] = 0 npcHandler:releaseFocus(cid) end else return false end elseif t[talkState[talkUser]] and msgcontains(msg, t[talkState[talkUser]].keyword) then npcHandler:say(t[talkState[talkUser]].text, cid) if talkState[talkUser] == #t then setPlayerStorageValue(cid, 96772, npcOrder + 1) talkState[talkUser] = 0 else talkState[talkUser] = talkState[talkUser] + 1 end elseif msgcontains(msg, "bye") then npcHandler:say("Bye.", cid) talkState[talkUser] = 0 npcHandler:releaseFocus(cid) else npcHandler:say("WHAT?", cid) talkState[talkUser] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) Como arquivo.xml base você pode utilizar esse, faça as mudanças que desejar. <?xml version="1.0" encoding="UTF-8"?> <npc name="Dwarfer" script="NOMEDOSEUARQUIVO.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="66"/> </npc> Para os outros npcs é só copiar a mesma coisa, mudar a ordem do npc em npcOrder para (2, 3, 4...), além das palavras-chave e dos textos enviados ao player. Contato: Email: [email protected] Discord: Dwarfer#2715
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.