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.
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"/>
Ao usar o comando para fixar o checkpoint:
Ao usar o mesmo comando para voltar ao checkpoint no mesmo lugar:
Escolhendo uma nova posição
Usando o comando na nova posição:
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
Créditos