Ir para conteúdo

Checkpoint


Mudrock

Posts Recomendados

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:

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

Usando o comando na nova posição:

JyfyFnz.png

KGsxy4p.png


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

@@Caronte

Editado por Daniel
Link para o comentário
Compartilhar em outros sites

Bom script, se o script não for de sua autoria, lembre-se de colocar os devidos créditos, pois já vi esse script em um outro fórum, criado por um colega meu.

Link para o comentário
Compartilhar em outros sites

Bom script, se o script não for de sua autoria, lembre-se de colocar os devidos créditos, pois já vi esse script em um outro fórum, criado por um colega meu.

 

Foi eu quem fez...

Editado por Krhiegen
Link para o comentário
Compartilhar em outros sites

Créditos no tópico, caso alguem mais tenha ajudado por favor me passar o nome para ser adicionado

 

Não, foi só eu mesmo...out.gif

 

 

Obrigado por ter trazido o conteúdo...

Ahh...

esqueci de por talkaction log = "no"

fica mais bonita a talkaction, não aparece /checkpoint toda hora que fala...

Link para o comentário
Compartilhar em outros sites

 

Não, foi só eu mesmo...out.gif

 

 

Obrigado por ter trazido o conteúdo...

Ahh...

esqueci de por talkaction log = "no"

fica mais bonita a talkaction, não aparece /checkpoint toda hora que fala...

 

return false, tb faz isso :D

Link para o comentário
Compartilhar em outros sites

  • 1 month later...

 

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:

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

Usando o comando na nova posição:

JyfyFnz.png

KGsxy4p.png

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

 

Funfa em tfs 1.2 ?

Link para o comentário
Compartilhar em outros sites

  • 10 months later...
×
×
  • Criar Novo...