Jump to content

(Resolvido)Actions teleport


Go to solution Solved by hiquezerah,

Recommended Posts

  • Solution

.Qual servidor ou website você utiliza como base? Otx

 

Qual o motivo deste tópico?  Olá rapazeada do Tibiaking, Boa noite!! <3 
Fiz esse script simples para o meu servidor com o intuinto de colocar um pouco mais de rpg em clicar em alguns lugares diferentes no cenário.
Existe varios lugares que eu precisarei utilizar esse script, e seria muito melhor utilizar apenas um script para todos os locais ao envés de criar vários scripts, sabe?
Alguém poderia me ajudar a colocar uma actionid para cada teleport dentro do mesmo script?
ex: poder repetir o script dentro dele mesmo e mudar os locais e a actionid

 

local teleport1 = {x=283, y=984, z=6}

local teleport2 = {x=284, y=985, z=6}

 

        if isPlayer(cid) then -- actionid 222
        doTeleportThing(cid, teleport1)
        doSendMagicEffect(getPlayerPosition(cid), 12)
        end

else

        if isPlayer(cid) then -- actionid 111
        doTeleportThing(cid, teleport2)
        doSendMagicEffect(getPlayerPosition(cid), 12)
        end

end 

 

Você tem o código disponível? Se tiver publique-o aqui: 

function onUse(cid, item, fromPosition, item2, toPosition)

local teleport = {x=283, y=984, z=6}

		if isPlayer(cid) then
        doTeleportThing(cid, teleport)
        doSendMagicEffect(getPlayerPosition(cid), 12)
        end
end 

 

Olá rapazeada, desculpe-me a minha preguiça e não ter tentado ir um pouco mais no script, acabei fazendo alguns teste e consegui resolver, postarei o resultado embaixo caso alguém precise.

 

function onUse(cid, item, fromPosition, item2, toPosition)

local teleport1 = {x=283, y=984, z=6}
local teleport2 = {x=291, y=976, z=7} -- Pos que irá teleportar, repita um desses caso queira adicionar mais algum teleport --

		if isPlayer(cid) and item.uid == 12222 then      -- mude o "12222" para cada teleport e adicione ao item no remeres
        doTeleportThing(cid, teleport1)
		doPlayerSendTextMessage(cid,25,"Passagem Secreta")
        doSendMagicEffect(getPlayerPosition(cid), 12)
        end
		
		-- Se quiser adicionar mais teleportes repita apenas até o end 
		if isPlayer(cid) and item.uid == 12223 then      -- mude o "12223" para cada teleport e adicione ao item no remeres
        doTeleportThing(cid, teleport2)  -- mude de acordo com o local criado la encima
		doPlayerSendTextMessage(cid,25,"Succes")
        doSendMagicEffect(getPlayerPosition(cid), 12)
		end --  este aqui
		
		
end

Em action.xml adicione as tags
    <action uniqueid = "12222" event = "script" value = "teleportes/goa1.lua" />
    <action uniqueid = "12223" event = "script" value = "teleportes/goa1.lua" />

Edited by hiquezerah
Consegui solucionar o desejado e postarei o resultado para ajudar se algúem precisar (see edit history)
Link to post
Share on other sites

Vi que o tópico já está resolvido, mas criei uma solução mais otimizada e de fácil manutenção para que facilite futuramente pra ti:

 

Spoiler


local config = {
  [7010] = {
    position = {x = 1053, y = 1055, z = 7}
  },

  [7011] = {
    position = {x = 1051, y = 1058, z = 7}
  },

  [7012] = {
    position = {x = 1056, y = 1058, z = 7}
  },

  [7013] = {
    position = {x = 1048, y = 1058, z = 7}
  },

  [7014] = {
    position = {x = 1049, y = 1053, z = 7}
  },
  
  effect = 21,
  message = "Passagem Secreta" 
}

function onUse(cid, item, frompos, item2, topos)
local aidTable = config[item.actionid]

    if doTeleportThing(cid, aidTable.position) then
      doPlayerSendTextMessage(cid, 25, config.message)
      doSendMagicEffect(getCreaturePosition(cid), config.effect)
    end
  return true
end

 

 

No arquivo actions.xml coloque a tag deste modo, irá evitar o spam de várias tags:

<action actionid="7010;7011;7012;7013;7014" event="script" value="teleports.lua"/>

 

Esse script que tu apresentou iria ficar bem mais pesado futuramente, por ter que criar várias linhas de código toda vez que quisesse adicionar um novo lugar. Utiliza esse que mandei porque aí tu só precisa alterar a tabela para colocar novos lugares (basta seguir o modelo dela), não vai precisar mexer no código.

Edited by Pisces (see edit history)
Link to post
Share on other sites

5 horas atrás, Pisces disse:

Vi que o tópico já está resolvido, mas criei uma solução mais otimizada e de fácil manutenção para que facilite futuramente pra ti:

 

  Mostrar conteúdo oculto


local config = {
  [7010] = {
    position = {x = 1053, y = 1055, z = 7}
  },

  [7011] = {
    position = {x = 1051, y = 1058, z = 7}
  },

  [7012] = {
    position = {x = 1056, y = 1058, z = 7}
  },

  [7013] = {
    position = {x = 1048, y = 1058, z = 7}
  },

  [7014] = {
    position = {x = 1049, y = 1053, z = 7}
  },
  
  effect = 21,
  message = "Passagem Secreta" 
}

function onUse(cid, item, frompos, item2, topos)
local aidTable = config[item.actionid]

    if doTeleportThing(cid, aidTable.position) then
      doPlayerSendTextMessage(cid, 25, config.message)
      doSendMagicEffect(getCreaturePosition(cid), config.effect)
    end
  return true
end

 

 

No arquivo actions.xml coloque a tag deste modo, irá evitar o spam de várias tags:


<action actionid="7010;7011;7012;7013;7014" event="script" value="teleports.lua"/>

 

Esse script que tu apresentou iria ficar bem mais pesado futuramente, por ter que criar várias linhas de código toda vez que quisesse adicionar um novo lugar. Utiliza esse que mandei porque aí tu só precisa alterar a tabela para colocar novos lugares (basta seguir o modelo dela), não vai precisar mexer no código.

@Pisces Muito obrigado mano, estou começando a conseguir fazer algumas coisas do zero agora, então ta um pouco dificil ainda, mas com certeza irei utilizar o seu codigo e estudar ele um pouco, estou tendo uma grande dificuldade para criar tabelas :/  mas muito obrigado <3 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

Confirmação de Termo