Ir para conteúdo

Featured Replies

Postado

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 por Kyllini (veja o histórico de edições)

Resolvido por SoulSarti

Ir para solução
  • Respostas 6
  • Visualizações 604
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • @Kyllini segue o script do npc. Espero que esteja funcional! Abraços!   local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters

  • Hahahahah sou nada  Bem, espero ter ajudado. Precisando, manda inbox, ou marca no post

  • Sim, é que esqueci de colocar que o ot é 8.60 kkk 

Postado
  • 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())

 

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo