Ir para conteúdo

Featured Replies

Postado
  • Este é um post popular.

Bom, eu estava cá fazendo uma talkaction para praticar, mas aí fui aprimorando e resolvi compartilhar, para ver se é útil para alguém...

 

 

 

Como funciona: Bom, basicamente, é um comando sem parâmetros, que marca um lugar na zona de proteção e volta para esse lugar depois que usa o comando pela segunda vez, 

 

Em caso de 

local parceiro = true

 

deixando um portal que some em aproximadamente 3 segundos, para que possam seguir ele...

 

Caso não queira isso, coloque false.

 

Ao usar o comando para fixar o checkpoint:

Jj5FJyf.png

wRCdXnA.png

 

 

Ao usar o mesmo comando para voltar ao checkpoint no mesmo lugar: 

4Sev0RR.png

nRIFYRp.png

 

 

Escolhendo uma nova posição:

lnxeTvS.png

 

 

Usando o comando na nova posição: 

JyfyFnz.png

KGsxy4p.png

 

 

 

Bom, o script é esse:

depois irei adicionar mais coisas

 

(talkactions/scripts/checkpoint.lua)

local parceiro = true -- false vai tirar o teleporte que o player deixa de rastro

function onSay(cid, words, param)

if param == "" then
	local cidpos = getThingPos(cid)

	if not getTileInfo(cidpos).protection then
		return  doPlayerSendCancel(cid,"You need stay in a protect zone ( PZ ). ")
	end
  
    if(tonumber(getPlayerStorageValue(cid,"Checkpoint"))) then
		
		setPlayerStorageValue(cid,"Checkpoint", "{x = "..cidpos.x..", y = "..cidpos.y..", z = "..cidpos.z..", stackpos = "..cidpos.stackpos.."}")  
		doPlayerSendTextMessage(cid, 27, "You put a checkpoint here.")
		doSendMagicEffect(cidpos, 9)
	else
		local str = "return "..getPlayerStorageValue(cid, "Checkpoint")
		local pos = loadstring(str)()
		
		doTeleportThing(cid, pos, TRUE)
		if "{x = "..cidpos.x..", y = "..cidpos.y..", z = "..cidpos.z..", stackpos = "..cidpos.stackpos.."}" == "{x = "..pos.x..", y = "..pos.y..", z = "..pos.z..", stackpos = "..pos.stackpos.."}" then	
	      return doPlayerSendCancel(cid,"You can't do this, please choose another position to come back") and doSendMagicEffect(cidpos, 2)
		end
		
		if parceiro then 
		doCreateTeleport(1387, pos, cidpos)
		doSendAnimatedText(cidpos, "Removing", 221)
		local t = { [500] = "in", 
					[1000] = "3",
					[1500] = "2",
					[2000] = "1",
				}
			for q, w in pairs(t) do
				addEvent(doSendAnimatedText,q,cidpos, w, 221)
		     end
						addEvent(function()
						doRemoveItem(getTileItemById(cidpos, 1387).uid)
						doSendMagicEffect(cidpos, 2)
						end,2700)
		end
		doCreatureSay(cid, "You reached your destiny.", MESSAGE_EVENT_ORANGE)
		doPlayerSendTextMessage(cid, 27, "You reached your destiny.")
                setPlayerStorageValue(cid,"Checkpoint", 0) 
		doSendMagicEffect(cidpos, 67)
	end
end
	return true
end

Em (talkactions.xml)

<talkaction log="yes" words="/checkpoint" event="script" value="Xcriptis/checkpoint.lua"/>

 

  Em 28/03/2015 em 23:29, Baltazar disse:

Sugestão: O jogador só pode usar o comando a cada 24 horas, e o tempo é sincronizado com o tempo real (horário real fora do jogo).

 

 

CASO QUEIRAM COM EXHAUST EM SEGUNDOS, CONFIGURÁVEL !!!, AQUI ESTÁ:

local parceiro = true -- false vai tirar o teleporte que o player deixa de rastro
local tempo = 24*60*60 -- 24 h em segundos

function onSay(cid, words, param)

	if param == "" then

local cidpos = getThingPos(cid)

if not getTileInfo(cidpos).protection then
	return  doPlayerSendCancel(cid,"You need stay in a protect zone ( PZ ). ")
end

	if(tonumber(getPlayerStorageValue(cid,"Checkpoint"))) then
		setPlayerStorageValue(cid,"Checkpoint", "{x = "..cidpos.x..", y = "..cidpos.y..", z = "..cidpos.z..", stackpos = "..cidpos.stackpos.."}")  
		doPlayerSendTextMessage(cid, 27, "You put a checkpoint here.")
		doSendMagicEffect(cidpos, 9)
	else
		local str = "return "..getPlayerStorageValue(cid, "Checkpoint")
		local pos = loadstring(str)()

		if not (tonumber(getPlayerStorageValue(cid,"Checkpoint"))) and getCreatureStorage(cid, 10001) - os.time() < 0 then
			setPlayerStorageValue(cid,10001, os.time() + tempo)
		else return doPlayerSendCancel(cid,"You can't do this, please wait " .. getCreatureStorage(cid, 10001) - os.time() .." seconds.") end

			doTeleportThing(cid, pos, TRUE)

			if "{x = "..cidpos.x..", y = "..cidpos.y..", z = "..cidpos.z..", stackpos = "..cidpos.stackpos.."}" == "{x = "..pos.x..", y = "..pos.y..", z = "..pos.z..", stackpos = "..pos.stackpos.."}" then	
				return doPlayerSendCancel(cid,"You can't do this, please choose another position to come back") and doSendMagicEffect(cidpos, 2)
			end

				if parceiro then 
					doCreateTeleport(1387, pos, cidpos)
					doSendAnimatedText(cidpos, "Removing", 221)
		local t = { [500] = "in", 
					[1000] = "3",
					[1500] = "2",
					[2000] = "1",
					}
						for q, w in pairs(t) do
							addEvent(doSendAnimatedText,q,cidpos, w, 221)
						end
				addEvent(function()
							doRemoveItem(getTileItemById(cidpos, 1387).uid)
							doSendMagicEffect(cidpos, 2)
						end,2700)
				end
					doCreatureSay(cid, "You reached your destiny.", MESSAGE_EVENT_ORANGE)
					doPlayerSendTextMessage(cid, 27, "You reached your destiny.")
					setPlayerStorageValue(cid,"Checkpoint", 0) 
					doSendMagicEffect(cidpos, 67)
	end
end
return true
end

Qualquer problema, resolver no tópico.

por favor, gostaria de feedbacks com sugestões ou qualquer coisa.

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


Mostrar conteúdo oculto

 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

  • Respostas 20
  • Visualizações 2.5k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • local parceiro = true -- false vai tirar o teleporte que o player deixa de rastro function onSay(cid, words, param) if param == "" then local cidpos = getThingPos(cid) if not getTileInfo(cidpos).

  • Bom, esqueci de postar o 1.1    Coloquei em um novo TÓPICO

Postado
  • Autor

De nada, depois quando eu tiver tempo vou fazer com parâmetros, com configuração de posições com nomes e listagem.

 

Exemplo:

 

/checkpoint set Templo

/checkpoint set Hunt

/checkpoint  go Templo

/checkpoint list 

 

Your checkpoint list is: Templo, Hunt 

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


Mostrar conteúdo oculto

 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Postado
  • Autor
  Em 26/03/2015 em 16:12, Summ disse:

Muito bom  :D

 

Obrigado, em breve ficará melhor...

só tenho que fazer outros posts primeiro.

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


Mostrar conteúdo oculto

 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

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

Informação Importante

Confirmação de Termo