Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Boa noite pessoal do TK, meu pedido é algo que aparentemente é simples, (para um praticamente leigo em lua) porém não impossível.

 

Consiste em uma scroll, que utilizada com o "USE WITH" no chão, vai salvar a posição que o player selecionoi (pode salvar em uma txt sei lá.). Quando o player estiver lá na pqp, ele usa a scroll e abre-se um portal de uns 15 segundos somente, para a posição que ele salvou. Após isto o portal some, porém ele pode usar isso quantas vezes quiser.

 

O que não pode:

 

-Portal para casas

-Portal para PZ

-Portal para cima de casas ou pedras. (nada que dê uma vantagem para o player)

-Portal para lugares onde ele não tenha acesso. (tipo um outro lado de parede)

 

O Que pode:

 

-Portal para diferentes floor's, desde que ele marque a runa neste floor.

-Amigos entrarem no portal

-Amigos pegarem o scroll e utilizarem para a posição que ele salvou. (amigos abrirem o portal)

 

 

 

Fico no aguardo, obrigado!

Link para o post
Compartilhar em outros sites

Bom dia. Comecei a fazer o script e a primeira parte deu certo, porém a segunda parte eu consigo fazer o portal aparecer, exceto sumir. Para fazer ele sumir, tem como fazer por database, ou por globalStorage, mas ultimamente estou com a cabeça fraca para isso, então estou postando o que eu fiz:

 

em actions, cria o arquivo scroll teleport.lua

local function v_msg1(cid)
	if isPlayer(cid) == true then
		if getPlayerStorageValue(cid, SCROLLTELEPORT_.storageRuna1) >= 1 then
			return '['.. getItemNameById(SCROLLTELEPORT_.idDaRuna_1) ..'] - Ok'
		else
			return '[Slot vazio]'
		end
	end
end

local function v_msg2(cid)
	if isPlayer(cid) == true then
		if getPlayerStorageValue(cid, SCROLLTELEPORT_.storageRuna2) >= 1 then
			return '['.. getItemNameById(SCROLLTELEPORT_.idDaRuna_2) ..'] - Ok'
		else
			return '[Slot vazio]'
		end
	end
end

local function v_msg3(cid)
	if isPlayer(cid) == true then
		if getPlayerStorageValue(cid, SCROLLTELEPORT_.storageRuna3) >= 1 then
			return '['.. getItemNameById(SCROLLTELEPORT_.idDaRuna_3) ..'] - Ok'
		else
			return '[Slot vazio]'
		end
	end
end

function onUse(cid, item, fromPosition, itemEx, toPosition)
	if item.itemid == SCROLLTELEPORT_.idDaRuna_1 then
		setPlayerStorageValue(cid, SCROLLTELEPORT_memoria1.valorX, SCROLLTELEPORT_obter.x)
		setPlayerStorageValue(cid, SCROLLTELEPORT_memoria1.valorY, SCROLLTELEPORT_obter.y)
		setPlayerStorageValue(cid, SCROLLTELEPORT_memoria1.valorZ, SCROLLTELEPORT_obter.z)
		setPlayerStorageValue(cid, SCROLLTELEPORT_.storageRuna1, 1)
		doRemoveItem(item.uid, 1)
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Marcou as coordenadas: ".. SCROLLTELEPORT_obter.x ..", ".. SCROLLTELEPORT_obter.y ..", ".. SCROLLTELEPORT_obter.z .." na runa: ".. getItemNameById(SCROLLTELEPORT_.idDaRuna_1) ..".")
	end
	if item.itemid == SCROLLTELEPORT_.idDaRuna_2 then
		setPlayerStorageValue(cid, SCROLLTELEPORT_memoria2.valorX, SCROLLTELEPORT_obter.x)
		setPlayerStorageValue(cid, SCROLLTELEPORT_memoria2.valorY, SCROLLTELEPORT_obter.y)
		setPlayerStorageValue(cid, SCROLLTELEPORT_memoria2.valorZ, SCROLLTELEPORT_obter.z)
		setPlayerStorageValue(cid, SCROLLTELEPORT_.storageRuna2, 1)
		doRemoveItem(item.uid, 1)
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Marcou as coordenadas: ".. SCROLLTELEPORT_obter.x ..", ".. SCROLLTELEPORT_obter.y ..", ".. SCROLLTELEPORT_obter.z .." na runa: ".. getItemNameById(SCROLLTELEPORT_.idDaRuna_2) ..".")
	end
	if item.itemid == SCROLLTELEPORT_.idDaRuna_3 then
		setPlayerStorageValue(cid, SCROLLTELEPORT_memoria3.valorX, SCROLLTELEPORT_obter.x)
		setPlayerStorageValue(cid, SCROLLTELEPORT_memoria3.valorY, SCROLLTELEPORT_obter.y)
		setPlayerStorageValue(cid, SCROLLTELEPORT_memoria3.valorZ, SCROLLTELEPORT_obter.z)
		setPlayerStorageValue(cid, SCROLLTELEPORT_.storageRuna3, 1)
		doRemoveItem(item.uid, 1)
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Marcou as coordenadas: ".. SCROLLTELEPORT_obter.x ..", ".. SCROLLTELEPORT_obter.y ..", ".. SCROLLTELEPORT_obter.z .." na runa: ".. getItemNameById(SCROLLTELEPORT_.idDaRuna_3) ..".")
	end
	if item.itemid == SCROLLTELEPORT_.idDoLivro then
		if ((getPlayerStorageValue(cid, SCROLLTELEPORT_.storageRuna1) <= 0) and (getPlayerStorageValue(cid, SCROLLTELEPORT_.storageRuna2) <= 0) and (getPlayerStorageValue(cid, SCROLLTELEPORT_.storageRuna3) <= 0)) then
			doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Sem coordenadas marcadas.")
		else
			doShowTextDialog(cid, SCROLLTELEPORT_.idDoLivro, 'Para criar um portal no destino que voce salvou usando a runa.\nBasta usar o comando: !nomeDaRuna\nExemplo: !runaVermelha\n\n'.. v_msg1(cid) ..'.\n'.. v_msg2(cid) ..'.\n'.. v_msg3(cid) ..'')
		end	
	end

	if ((getCreatureCondition(cid, CONDITION_INFIGHT) == true) or (isPlayerPzLocked(cid) == true)) then
		doPlayerSendCancel(cid, "Nao pode usar em batalha.")
		return false
	end

	if getTilePzInfo(getThingPos(cid)) == true then
		doPlayerSendCancel(cid, "Nao pode usar em area protegida.")
		return false
	end

	return true
end

 

Em actions.xml

<action itemid="2276" event="script" value="scroll teleport.lua"/><!-- runaAzul -->
<action itemid="2306" event="script" value="scroll teleport.lua"/><!-- runaVermelha -->
<action itemid="2299" event="script" value="scroll teleport.lua"/><!-- runaAmarela -->
<action itemid="6124" event="script" value="scroll teleport.lua"/><!-- livro -->

 

Em items.xml

<item id="2276" article="uma" name="runaAzul">
	<attribute key="weight" value="50" />
</item>
<item id="2306" article="uma" name="runaVermelha">
	<attribute key="weight" value="50" />
</item>
<item id="2299" article="uma" name="runaAmarela">
	<attribute key="weight" value="50" />
</item>

 

Em uma lib qualquer

SCROLLTELEPORT_ = {
idDaRuna_1 = 2276,
storageRuna1 = 971701,

idDaRuna_2 = 2306,
storageRuna2 = 971702,

idDaRuna_3 = 2299,
storageRuna3 = 971703,

idDoLivro = 6124,
}

SCROLLTELEPORT_memoria1 = {valorX = 97170101, valorY = 97170102, valorZ = 97170103}
SCROLLTELEPORT_memoria2 = {valorX = 97170201, valorY = 97170202, valorZ = 97170203}
SCROLLTELEPORT_memoria3 = {valorX = 97170301, valorY = 97170302, valorZ = 97170303}

SCROLLTELEPORT_obter = {x = getCreaturePosition(cid).x, y = getCreaturePosition(cid).y, z = getCreaturePosition(cid).z}

 

Para criar um teleport, por exemplo, por talkactions, deve-se usar:

-- Runa 1
doCreateTeleport(1387, {x=getPlayerStorageValue(cid, SCROLLTELEPORT_memoria1.valorX), y=getPlayerStorageValue(cid, SCROLLTELEPORT_memoria1.valorY)}, z=getPlayerStorageValue(cid, SCROLLTELEPORT_memoria1.valorZ)}, getCreaturePosition(cid))

-- Runa 2
doCreateTeleport(1387, {x=getPlayerStorageValue(cid, SCROLLTELEPORT_memoria2.valorX), y=getPlayerStorageValue(cid, SCROLLTELEPORT_memoria2.valorY)}, z=getPlayerStorageValue(cid, SCROLLTELEPORT_memoria2.valorZ)}, getCreaturePosition(cid))

-- Runa 3
doCreateTeleport(1387, {x=getPlayerStorageValue(cid, SCROLLTELEPORT_memoria3.valorX), y=getPlayerStorageValue(cid, SCROLLTELEPORT_memoria3.valorY)}, z=getPlayerStorageValue(cid, SCROLLTELEPORT_memoria3.valorZ)}, getCreaturePosition(cid))

 

Eternera Tibia Server - RPG

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 Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
    • Por Ayron5
      Substitui uma stone no serve, deu tudo certo fora  esse  erro ajudem  Valendo  Rep+  Grato  

      Erro: data/actions/scripts/boost.lua:557: table index is nil
       [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

      Script:
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo