Ir para conteúdo

Featured Replies

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

Top Posters In This Topic

Most Popular Posts

  • Bodak Reborn
    Bodak Reborn

    Se ninguém ajudar até amanhã, eu faço. Hoje não tem como. \;

  • Bodak Reborn
    Bodak Reborn

    local config = { newPos = {x = 1049, y = 1058, z = 7}, -- posição para onde os jogadores irão. tpPos = {x = 1055, y = 1052, z = 7}, -- posição onde será criado o teleporte. exhaust = 5, -- tempo em se

Postado
local config = {
newPos = {x = 1049, y = 1058, z = 7}, -- posição para onde os jogadores irão.
tpPos = {x = 1055, y = 1052, z = 7}, -- posição onde será criado o teleporte.
exhaust = 5, -- tempo em segundos para poder usar a skill novamente.
storage = 15020,
timeRemove = 3, -- tempo em segundos para o teleport sumir.
tpInside = {x = 1048, y = 1053, z = 7}, -- posição do teleport verdadeiro.
}

function doMarkPos(cid, posx, posy, posz)
	setPlayerStorageValue(cid, 12000, posx)
	setPlayerStorageValue(cid, 12001, posy)
	setPlayerStorageValue(cid, 12002, posz)
end
		
function getMarkPos(cid)
	return {x=getPlayerStorageValue(cid, 12000), y=getPlayerStorageValue(cid, 12001), z=getPlayerStorageValue(cid, 12002)}
end
	
local function doRemoveTeleportIn (tpPos)
	local tpRemove = getTileItemById(tpPos, 1387).uid
	return tpRemove > 0 and doRemoveItem(tpRemove)
end
	
local pos = getCreaturePosition(cid)
function onCastSpell(cid, var)
	doMarkPos(cid, pos.x, pos.y, pos.z)
	if getPlayerStorageValue(cid, config.storage) < os.time() then
		if getMarkPos(cid).x > 0 then
			doCreateTeleport(1387,  config.newPos, config.tpPos)
			doCreateTeleport(1387,  getMarkPos(cid), config.tpInside)
			setPlayerStorageValue(cid, config.storage, config.exhaust + os.time())
			addEvent (doRemoveTeleportIn, config.timeRemove * 1000, config.tpPos)
		end
	else
		doPlayerSendCancel(cid, "You are exhausted")
	end
return true
end

movements/scripts/nome_arquivo.lua

 

function onStepIn(cid, item, position, fromPosition)
	local config = {
	tpInside = {x = 1048, y = 1053, z = 7}, -- posição do teleport verdadeiro.
	from = {x = 1047, y = 1049, z = 7}, -- canto superior esquerdo da sala para onde os jogadores irão.
	to = {x = 1054, y = 1056, z = 7}, -- canto inferior direito da sala para onde os jogadores irão.
	}

	local function getPlayersInArea(fromPos, toPos)
		  local players = {}
			for _, cid in ipairs(getPlayersOnline()) do
				if isInRange(getThingPos(cid), fromPos, toPos) then
					table.insert(players, cid)
				end
			end
	return players
	end
	
	local function doRemoveTeleportInside (tpInside)
		local tpRemoveInside = getTileItemById(tpInside, 1387).uid
		return tpRemoveInside > 0 and doRemoveItem(tpRemoveInside)
	end
	
	local function playersInArea ()
		if table.getn(getPlayersInArea(config.from, config.to)) == 0 then
			doRemoveTeleportInside (config.tpInside)
		end
	return true
	end
              
	addEvent(playersInArea, 1)
return true
end

XML

<movevent type="StepIn" actionid="Action_id_do_tp" event="script" value="nome_arquivo.lua" />

Na posição que você colocar o teleport verdadeiro (para voltar para a posição antes de usar a spell) coloque um action id, o mesmo que você vai colocar no XML.

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

Não dou suporte via PM, crie um tópico caso tenha dúvidas.

Isso previne que outras pessoas com a mesma dúvida criem tópicos desnecessários.

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

Informação Importante

Confirmação de Termo