Ir para conteúdo

Featured Replies

Postado

npc.xml

<npc name="destino" script="data/npc/scripts/arquivo.lua" floorchange="0" access="5" level="1" maglevel="1">
	<health now="150" max="150"/>
	<look type="128" head="0" body="87" legs="39" feet="0"/>
	<parameters>
      <parameter key="module_travel" value="1"/>
	<parameter key="message_greet" value="Olá |PLAYERNAME|. o que vc quer {destino} ?" />
	</parameters>
</npc>

 

arquivo.lua

-- config elton123
local npc_destino = {
msg = "vc quer que eu escolha o seu destino",  -- frase do npc
tempo = 120, --em segundos 
destino_final = {x=160, y=54, z=8},
salas = {
{{x=160, y=54, z=7},sala_msg ="espere eu vou teletransportar você para sala 1"},
{{x=160, y=55, z=7},sala_msg ="espere eu vou teletransportar você para sala 2"},
},
}
-- config elton123

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
      if msgcontains(msg, 'destino') then
            selfSay(npc_destino.msg, cid)
            talkState[talkUser] = 1
      elseif (msgcontains(msg,'no') and talkState[talkUser] == 1) then
            selfSay("bye", cid)
            talkState[talkUser] = 0
      elseif (msgcontains(msg,'yes') and talkState[talkUser] == 1) then
            local do_destino = math.random(1,#npc_destino.salas)
            selfSay(npc_destino.salas[do_destino].sala_msg, cid)
            doCreatureSetNoMove(cid,true)
            addEvent(doTeleportThing,5000,cid,npc_destino.salas[do_destino][1])
            addEvent(doCreatureSetNoMove,4999,cid,false)
            addEvent(destinoFinal,npc_destino.tempo*1000,cid,npc_destino.destino_final)
            talkState[talkUser] = 0
      end     
end

function destinoFinal (cid,fim)
      return doTeleportThing(cid,fim) and true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

só achei estranho  que o cara vai ser teletransportado 

para uma sala ou para outra sala só que no final

tem que ir para templo é isso msm?

Editado por elton123 (veja o histórico de edições)

  • Respostas 10
  • Visualizações 467
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • cara da pra fazer em dois script  primeiro script ia criar um npc no dia e hora e no minuto marcado segundo script ia ser npc que manda para sala 1 e 2 etc   uma pergunta é você queria npc um dia

  • eu criei a parte que eu acredito ser a mais difícil que tem que usar pattern e bibliotecas  que é dia e hora que npc vai aparecer data\globalevents\scripts arquivo.lua TAG <globalevent

  • eu tinha imaginado que as salas seria fechadas sem poder desloga dps eles seria tele...   seria assim -- config elton123 local npc_destino = { msg = "vc quer que eu escolha o seu destino", -- fra

Postado
  • Autor

npc.xml

<npc name="destino" script="data/npc/scripts/arquivo.lua" floorchange="0" access="5" level="1" maglevel="1">	<health now="150" max="150"/>	<look type="128" head="0" body="87" legs="39" feet="0"/>	<parameters>      <parameter key="module_travel" value="1"/>	<parameter key="message_greet" value="Olá |PLAYERNAME|. o que vc quer {destino} ?" />	</parameters></npc>

arquivo.lua

-- config elton123local npc_destino = {msg = "vc quer que eu escolha o seu destino",  -- frase do npctempo = 120, --em segundos destino_final = {x=160, y=54, z=8},salas = {{{x=160, y=54, z=7},sala_msg ="espere eu vou teletransportar você para sala 1"},{{x=160, y=55, z=7},sala_msg ="espere eu vou teletransportar você para sala 2"},},}-- config elton123local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler)NpcSystem.parseParameters(npcHandler)local talkState = {}function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) endfunction onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) endfunction onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) endfunction onThink() npcHandler:onThink() endfunction 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, 'destino') then            selfSay(npc_destino.msg, cid)            talkState[talkUser] = 1      elseif (msgcontains(msg,'no') and talkState[talkUser] == 1) then            selfSay("bye", cid)            talkState[talkUser] = 0      elseif (msgcontains(msg,'yes') and talkState[talkUser] == 1) then            local do_destino = math.random(1,#npc_destino.salas)            selfSay(npc_destino.salas[do_destino].sala_msg, cid)            doCreatureSetNoMove(cid,true)            addEvent(doTeleportThing,5000,cid,npc_destino.salas[do_destino][1])            addEvent(doCreatureSetNoMove,4999,cid,false)            addEvent(destinoFinal,npc_destino.tempo*1000,cid,npc_destino.destino_final)            talkState[talkUser] = 0      end     endfunction destinoFinal (cid,fim)      return doTeleportThing(cid,fim) and trueendnpcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)npcHandler:addModule(FocusModule:new())

só achei estranho que o cara vai ser teletransportado

para uma sala ou para outra sala só que no final

tem que ir para templo é isso msm?

cara esse addevent eu acho que vai da erro tipo, eu crie as salas 4x4 se o player sair desse 4x4 ele n volta por templo, só volta que fica nesses 4x4 nas duas sala. Se n tiver como fazer isso, então remover o tempo de volta deixa só pra ir, aí eu coloco um teleporte pra ir pow templo.
Postado
  • Solução

eu tinha imaginado que as salas seria fechadas sem poder desloga dps eles seria tele...

 

seria assim

-- config elton123
local npc_destino = {
msg = "vc quer que eu escolha o seu destino",  -- frase do npc
tempo = 10, --em segundos
destino_final = {x=160, y=54, z=8},

area  = {
x = {152,164},  -- posição x as duas pontas horizontal a direita e a esquerda
y = {47,54}, -- posição y as duas pontas vertical de cima e de baixo
z = {7},
},

salas = {
{{x=160, y=54, z=7},sala_msg ="espere eu vou teletransportar você para sala 1"},
{{x=160, y=55, z=7},sala_msg ="espere eu vou teletransportar você para sala 2"},
},
}
-- config elton123

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
      if msgcontains(msg, 'destino') then
            selfSay(npc_destino.msg, cid)
            talkState[talkUser] = 1
      elseif (msgcontains(msg,'no') and talkState[talkUser] == 1) then
            selfSay("bye", cid)
            talkState[talkUser] = 0
      elseif (msgcontains(msg,'yes') and talkState[talkUser] == 1) then
            local do_destino = math.random(1,#npc_destino.salas)
            selfSay(npc_destino.salas[do_destino].sala_msg, cid)
            doCreatureSetNoMove(cid,true)
            addEvent(doTeleportThing,5000,cid,npc_destino.salas[do_destino][1])
            addEvent(doCreatureSetNoMove,4999,cid,false)
            addEvent(destinoFinal,npc_destino.tempo*1000,cid,npc_destino.destino_final)
            talkState[talkUser] = 0
      end
end

function destinoFinal (cid,fim)
      for xx = npc_destino.area.x[1] , npc_destino.area.x[2] do
            for yy = npc_destino.area.y[1] , npc_destino.area.y[2] do
                  local floor1 = getTopCreature({x=xx,y=yy,z=npc_destino.area.z[1]}).uid
                        if floor1 > 0 and isPlayer(floor1) then
                              doTeleportThing(cid,fim)
                        end
            end
      end
      return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

só editar essa parte

area = {
x = {152,164}, -- posição x as duas pontas horizontal a direita e a esquerda
y = {47,54}, -- posição y as duas pontas vertical de cima e de baixo
z = {7},
},

Editado por elton123 (veja o histórico de edições)

Postado
  • Autor

Poderia coloca uma alerta pra quando o tempo acaba. tipo, "o Tempo acabou, quem n saiu da sala voltará por tempo".

tem como pow pra quando o primeiro player fala sempre e pra sala 1, o segundo pra sala 2 eo 3 pra sala 1 assim por diante. tipo impar, par.

-- edit -- Arrumei geral vlw

Postado

cara tem um bug que só ta olhando area de uma sala

eu arrumei nesse

-- config elton123
local npc_destino = {
msg = "vc quer que eu escolha o seu destino",  -- frase do npc
tempo = 60, --em segundos
destino_final = {x=160, y=54, z=8},
salas = {
{
    {x=160, y=54, z=7},sala_msg ="espere eu vou teletransportar você para sala 1",
    area  = {
    x = {152,164},  -- posição x as duas pontas horizontal a direita e a esquerda
    y = {47,54}, -- posição y as duas pontas vertical de cima e de baixo
    z = {7},
    frase = "volte para sala 1 que sera teletransportado",
},
},
{
    {x=160, y=54, z=8},sala_msg ="espere eu vou teletransportar você para sala 2",
    area  = {
    x = {152,164},  -- posição x as duas pontas horizontal a direita e a esquerda
    y = {47,54}, -- posição y as duas pontas vertical de cima e de baixo
    z = {8},
    frase = "volte para sala 2 que sera teletransportado",
},
},
},
}
-- config elton123

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
      if msgcontains(msg, 'destino') then
            selfSay(npc_destino.msg, cid)
            talkState[talkUser] = 1
      elseif (msgcontains(msg,'no') and talkState[talkUser] == 1) then
            selfSay("bye", cid)
            talkState[talkUser] = 0
      elseif (msgcontains(msg,'yes') and talkState[talkUser] == 1) then
            local do_destino = math.random(1,#npc_destino.salas)
            selfSay(npc_destino.salas[do_destino].sala_msg, cid)
            doCreatureSetNoMove(cid,true)
            addEvent(doTeleportThing,5000,cid,npc_destino.salas[do_destino][1])
            addEvent(doCreatureSetNoMove,4999,cid,false)
            addEvent(msgPlay,(npc_destino.tempo-10)*1000,cid,22,npc_destino.salas[do_destino].area.frase)
            addEvent(destinoFinal,npc_destino.tempo*1000,cid,npc_destino.destino_final,do_destino)
            talkState[talkUser] = 0
      end
end

function destinoFinal (cid,fim,s)
      for xx = npc_destino.salas[s].area.x[1],npc_destino.salas[s].area.x[2] do
            for yy = npc_destino.salas[s].area.y[1] , npc_destino.salas[s].area.y[2] do
                  local floor1 = getTopCreature({x=xx,y=yy,z=npc_destino.salas[s].area.z[1]}).uid
                        if floor1 > 0 and isPlayer(floor1) then
                              doTeleportThing(cid,fim)
                        end
            end
      end
      return true
end

function msgPlay (cid,cor,m)
      if isPlayer(cid) then 
            doPlayerSendTextMessage(cid,cor,m)
      end
      return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new()) 
{
    {x=160, y=54, z=8}, -- posição que play vai cair na sala
    sala_msg ="espere eu vou teletransportar você para sala 2", -- frase do npc
    area  = {
    x = {152,164},  -- posição x as duas pontas horizontal a direita e a esquerda
    y = {47,54}, -- posição y as duas pontas vertical de cima e de baixo
    z = {8},
    frase = "volte para sala 2 que sera teletransportado", -- frase que vai falar 10 segundos antes
},
},

Editado por elton123 (veja o histórico de edições)

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.7k

Informação Importante

Confirmação de Termo