Postado Fevereiro 12, 2018 7 anos Tfs 0.4 Boa Tarde, estou com esse script de npc para uma quest, onde gostaria que esse npc só teleportasse as vocations [1,2,3,4] pagando uma quantia [100kk] e proibisse as [5,6,7,8] e é possivel tambem adicionar uma "storage" para aquelas pessoas que ja completaram a quest que esse npc vai levar, não poder ir denovo? obs: [Se ele não completou a quest .. pode continuar indo, caso ele complete o npc não permite] .. Desde já agradeço a atenção :D local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) -- OTServ event handling functions start 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 -- OTServ event handling functions end -- Don't forget npcHandler = npcHandler in the parameters. It is required for all StdModule functions! local travelNode = keywordHandler:addKeyword({'Quest Promotion'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Eu posso te levar para a Quest Promotion. Diga Quest Promotion. Eu cobrarei 30kk para a sua morte chegar!'}) travelNode:addChildKeyword({'yes'}, StdModule.travel, {npcHandler = npcHandler, premium = true, level = 0, cost = 0, destination = {x=1553, y=1825, z=4} }) travelNode:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, reset = true, text = 'Ok Obrigado Boa Escolha HAHA.'}) keywordHandler:addKeyword({'Quest Promotion'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Você quer ir para a Quest Promotion? Eu irei cobrar 30kk'}) -- Makes sure the npc reacts when you say hi, bye etc. npcHandler:addModule(FocusModule:new()) if getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 2 or getPlayerVocation(cid) == 5 or getPlayerVocation(cid) == 6 then end Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. Editado Fevereiro 12, 2018 7 anos por Kyllini (veja o histórico de edições)
Postado Fevereiro 13, 2018 7 anos Solução @Kyllini segue o script do npc. Espero que esteja funcional! Abraços! 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 local config = { destino = {x=1553, y=1825, z=4}, -- para onde o player vai ser teleportado storage = 1111, -- storage da quest. lembre-se de por o mesmo storage da quest que voce fez permitir = {1,2,3,4}, --id das vocações que podem ir money = 100000000 -- dinheiro (aqui está custando 100kk) } playerVocInfo = getVocationInfo(getPlayerVocation(cid)) if msgcontains(msg, 'quest') or msgcontains(msg, 'promotion') then if(getPlayerStorageValue(cid, config.storage) ~= 1) and (isInArray(config.permitir, playerVocInfo.id)) then npcHandler:say("Eu posso te levar para a Quest Promotion. Eu cobrarei 100kk para a sua morte chegar! Diga {sim} caso queira desafiar seu destino, ou {nao}, se voce for um covarde!", cid) talkState[talkUser] = 1 elseif getPlayerStorageValue(cid, config.storage) >= 1 then -- caso ja tenha a quest feita npcHandler:say("Desculpe voce ja fez a Quest Promotion. Nao posso permitir que voce pise naquelas terras novamente.", cid) return true elseif not isInArray(config.permitir, playerVocInfo.id) then -- caso nao tenha a vocação permitida npcHandler:say("Desculpe, nao posso permitir que players com a sua voca\çao pisem nessas terras.", cid) return true end elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then if doPlayerRemoveMoney(cid, config.money) then npcHandler:say("HAHAHA Ja vou preparando o seu caixao, entao!", cid) doTeleportThing(cid, config.destino) talkState[talkUser] = 0 else npcHandler:say("HAHAHAH! Quer enfrentar desafios mas nao tem nem um centavo no bolso? Saia daqui, charlatao!", cid) talkState[talkUser] = 0 end elseif(msgcontains(msg, 'no') or msgcontains(msg, 'nao')) and talkState[talkUser] > 0 then npcHandler:say("La nao \é lugar para covardes, mesmo! HAHAH", cid) talkState[talkUser] = 0 end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
Postado Fevereiro 13, 2018 7 anos Autor @SoulSarti Funcionou 100% !!! valeu mano se é zika kkk , aee consegui da o rep kkk dei até o de ontem que não tava dando kk Editado Fevereiro 13, 2018 7 anos por Kyllini (veja o histórico de edições)
Postado Fevereiro 13, 2018 7 anos Hahahahah sou nada Bem, espero ter ajudado. Precisando, manda inbox, ou marca no post
Postado Fevereiro 13, 2018 7 anos Autor @SoulSarti Ok !! valeus kkk, tem q reporta o topico pra fecharem ? ou tem que esperar até eles vir e fechar ?
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.