Ir para conteúdo
  • Cadastre-se

Help NPC que teleporta a cada 24 horas


Posts Recomendados

@Gustavo0098 Boa tarde

 

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

local config = {
  position = { x = 151, y = 57, z = 7 }, -- posicao para onde o player irá
  timeInHours = 24, -- tempo em horas para o teleport
  storage = 78186
}

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

if(msgcontains(msg, 'teleport') or msgcontains(msg, 'Teleport')) then
  selfSay('Do you really want to teleport?', cid)
  talkState[talkUser] = 1
end

if(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then

  if (getPlayerStorageValue(cid, config.storage) >= os.time()) then
    selfSay("Voce precisa aguardar ".. config.timeInHours .."hr(s) para se teleportar novamente", cid)
    talkState[talkUser] = 0
    return
  end

  if (getPlayerStorageValue(cid, config.storage) <= os.time()) then
    addTimeTeleportAgain(cid)
    doTeleportThing(cid, config.position)
    doSendMagicEffect(getThingPos(cid), 10)
    selfSay('Ok', cid)
    talkState[talkUser] = 0
  end
  
end

function addTimeTeleportAgain(cid)
  local time = (1 * 60 * 60) * config.timeInHours
  setPlayerStorageValue(cid, config.storage, os.time() + time)
end

return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Editado por MatteusDeli (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
1 hora atrás, MatteusDeli disse:

@Gustavo0098 Boa tarde

 


local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

local config = {
  position = { x = 151, y = 57, z = 7 }, -- posicao para onde o player irá
  timeInHours = 24, -- tempo em horas para o teleport
  storage = 78186
}

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

if(msgcontains(msg, 'teleport') or msgcontains(msg, 'Teleport')) then
  selfSay('Do you really want to teleport?', cid)
  talkState[talkUser] = 1
end

if(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then

  if (getPlayerStorageValue(cid, config.storage) >= os.time()) then
    selfSay("Voce precisa aguardar ".. config.timeInHours .."hr(s) para se teleportar novamente", cid)
    talkState[talkUser] = 0
    return
  end

  if (getPlayerStorageValue(cid, config.storage) <= os.time()) then
    addTimeTeleportAgain(cid)
    doTeleportThing(cid, config.position)
    doSendMagicEffect(getThingPos(cid), 10)
    selfSay('Ok', cid)
    talkState[talkUser] = 0
  end
  
end

function addTimeTeleportAgain(cid)
  local time = (1 * 60 * 60) * config.timeInHours
  setPlayerStorageValue(cid, config.storage, os.time() + time)
end

return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Obrigado!! funcionou certinho aq 

 

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por ambrozii0
      Gostaria de fazer um pedido de um NPC de Task progressiva,

      Ele iniciaria dando missões para level 8 para caçar Troll, Rotworm e Ghoul.
       
      No level 30 liberaria: Cyclops, Dragon e Wyrm... e assim em diante se puder deixar comentado eu faço as criaturas na sequencia dos leveis seguintes.
       
      O jogador pode fazer as tasks dos leveis anteriores mesmo que já tenha ultrapassado o level do próximo nível de task.
       
      E o jogador ao terminar a missão poderia escolher a recompensa em gold ou experiência. As tasks podem se repetir sem problema, mas apenas pode pegar uma de cada vez.
       
      Ao finalizar todas as tasks o jogador ganha uma montaria.
       
      Minha versão de cliente é 12.91
      Versão da Canary 2.6.1
      Não sei qual o TFS do meu servidor.
    • Por zGiovani
      Olá Galera, acabei de editar o npc para que funcione de maneira correta na nova versão v1.4.0
      do server: https://github.com/opentibiabr/otservbr-global/releases/download/stable-v1.4.0/otservbr.otbm
       
       
      Server/data/npc
       
      Imbuement Assistant.lua ?     "PADRÃO - SEM ITENS IMBUEMENT DE HOLY"
       
       
       
      Server/data/npc
      Imbuement Assistant.lua ?     "COM ITENS IMBUEMENT DE HOLY"
       
       
      EDITE TAMBÉM: imbuements.xml
      LOCALIZADO EM:      data/xml/imbuements.xml    edite ele  para funcionar os ITENS IMBUEMENT DE HOLY
      Editei ele na linha 99 a 118
       
       
       
      Valeu Galera! 
      Aproveitem esse ótimo conteúdo que vai poupar muito tempo de vocês, até a próxima!!! 
    • Por zGiovani
      Olá amigos do Tibia King, venho com muito carinho compartilhar com vocês esse npc com a lista dos itens de imbuiment para compra. ?
       
      Simples mas acredito que vá ajudar algumas pessoas, fiz com base no script adicionado pelo Bruxo Ots, apenas deixei ele de forma mais simplificada,
      é só adicionar a algum NPC de sua preferência!
       
      Localizado em: "PASTA DO SEU SERVER"/data/npc     
       
      escolha um deles,  de um Ctrl +F  localize seu: <parameter key="shop_buyable" value="   Nome Item, ID , Preço; "/>     
       
      Substitua por:
       
       
    • Por Bruxo Ots
      Fala meus queridos, como sabem existem alguns ots que possuem um npc que compra tudo pra facilitar a vida da galera.
      Vou compartilhar com vcs aqui.
      Npc ja atualizado com os items 12.60
      Porem e compativel com meu otb quem usa vai dar boa que não usa e so mudar os id e so alegria.
      Creditos ao dega aqui e a equipe do HadesOt.
       
       
       
      Arquivo.
      Tibia King.xml
       
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo