Ir para conteúdo
  • 0

[Resolvido] Ncp que Teleporta para um local


Olan trein

Pergunta

4 respostass a esta questão

Posts Recomendados

  • 1
4 horas atrás, Olan trein disse:

Esse NCP iria transportar para um local,e ao falar com um outro ncp ele traria a pessoa de volta ao local anterior.

EXEMPLO:O ncp AGOSTINHO,no OTpokemon.

Vamos lá: 

em data/npc/scripts crie o arquivo npctele.lua e cole dentro...

Spoiler

local DESTINO = {x = 160, y = 54, z = 7} -- POSIÇÃO DE DESTINO

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
 
function onCreatureAppear(cid)         npcHandler:onCreatureAppear(cid)         end
function onCreatureDisappear(cid)      npcHandler:onCreatureDisappear(cid)         end
function onCreatureSay(cid, type, msg)   npcHandler:onCreatureSay(cid, type, msg:lower())   end
function onThink()                  npcHandler:onThink()                  end
local talkState = {}
 
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, "sim") or msgcontains(msg, "yes") then
      selfSay("Aí está!", cid)
      doSendMagicEffect(getThingPos(cid), 10)
      npcHandler:releaseFocus(cid)
      doTeleportThing(cid, DESTINO)
      doSendMagicEffect(DESTINO, 10)
   elseif msgcontains(msg, "nao") or msgcontains(msg, "no") then
      selfSay("Entao tá!", cid)
   end
   return true
end
 
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Agora volte e crie um arquivo xml com o nome do npc... Zure.XML e cole dentro...

Spoiler

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Zure" script="npctele.lua" walkinterval="2000">
  <health now="100" max="100" />
  <look type="131" head="58" body="43" legs="38" feet="76" addons="0" />
  <parameters>
    <parameter key="message_greet" value="Ola |PLAYERNAME|  voce deseja ir para...?" />
    <parameter key="message_farewell" value="So I am alone again." />
    <parameter key="message_walkaway" value="So I am alone again." />
  </parameters>
</npc>

 

Blz agora vamos para o 2 npc o da volta...

data/npc/scripts crie um arquivo Lua chamado... npctele2 e cole dentro...

Spoiler

local DESTINO = {x = 160, y = 54, z = 7} -- POSIÇÃO DE DESTINO DA VOLTA, EDITE!

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
 
function onCreatureAppear(cid)         npcHandler:onCreatureAppear(cid)         end
function onCreatureDisappear(cid)      npcHandler:onCreatureDisappear(cid)         end
function onCreatureSay(cid, type, msg)   npcHandler:onCreatureSay(cid, type, msg:lower())   end
function onThink()                  npcHandler:onThink()                  end
local talkState = {}
 
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, "sim") or msgcontains(msg, "yes") then
      selfSay("Aí está!", cid)
      doSendMagicEffect(getThingPos(cid), 10)
      npcHandler:releaseFocus(cid)
      doTeleportThing(cid, DESTINO)
      doSendMagicEffect(DESTINO, 10)
   elseif msgcontains(msg, "nao") or msgcontains(msg, "no") then
      selfSay("Entao tá!", cid)
   end
   return true
end
 
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Volte e crie um XML com o nome Zepo e dentro cole...

Spoiler

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Zepo" script="npctele2.lua" walkinterval="2000">
  <health now="100" max="100" />
  <look type="131" head="58" body="43" legs="38" feet="76" addons="0" />
  <parameters>
    <parameter key="message_greet" value="Ola |PLAYERNAME|  voce deseja ir para...?" />
    <parameter key="message_farewell" value="So I am alone again." />
    <parameter key="message_walkaway" value="So I am alone again." />
  </parameters>
</npc>

 

Agora é só editar as coordenadas de destino. Espero ter ajudado, Abraço. 

Link para o comentário
Compartilhar em outros sites

  • 0

Ent man,a primeira parte esta correta.

Vou explicar aki.

Vai ter um ncp  (X ) em todas cidades levando você a um lugar.Então,quando for retornar esse ncp (Y) te leva da onde você veio.(Terá muitos ncps em varias cidades e eu quero que o ncp (Y) te leve a cidade anterior).

Nesse script ele teleporta a um lugar só e eu quero que o segundo ncp teleporte de onde você veio.

kkskskssk num sei se compreeendeu.

Link para o comentário
Compartilhar em outros sites

  • 0
1 hora atrás, Olan trein disse:

Ent man,a primeira parte esta correta.

Vou explicar aki.

Vai ter um ncp  (X ) em todas cidades levando você a um lugar.Então,quando for retornar esse ncp (Y) te leva da onde você veio.(Terá muitos ncps em varias cidades e eu quero que o ncp (Y) te leve a cidade anterior).

Nesse script ele teleporta a um lugar só e eu quero que o segundo ncp teleporte de onde você veio.

kkskskssk num sei se compreeendeu.

Pois é não tinha entendido bem... mas veja, eu sei fazer com que o player volte para a cidade natal dele, é pratico pq vai ficar mais simples o script e funcional para todos players tbm...

esse negocio de voltar para a posição inicial dele eu não sei se consigo.

testa aí ...

no npc da volta vc troca tudo por isso...

Spoiler

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
 
function onCreatureAppear(cid)         npcHandler:onCreatureAppear(cid)         end
function onCreatureDisappear(cid)      npcHandler:onCreatureDisappear(cid)         end
function onCreatureSay(cid, type, msg)   npcHandler:onCreatureSay(cid, type, msg:lower())   end
function onThink()                  npcHandler:onThink()                  end
local talkState = {}
 
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, "sim") or msgcontains(msg, "yes") then
      selfSay("Aí está!", cid)
      doSendMagicEffect(getThingPos(cid), 10)
      npcHandler:releaseFocus(cid)
      doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
   elseif msgcontains(msg, "nao") or msgcontains(msg, "no") then
      selfSay("Entao tá!", cid)
   end
   return true
end
 
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...