RO
sistema

[Idle-System] 1.0

Por Roksas, 27 de set. de 2013 em Mods, funções e outros

otserv
tibia
script
14
2.6k
RoksasR
27 de setembro de 2013 às 15:40

Idle-System 1.0

 

Hello guys, só deboua na lagoua é? Pensei em criar um sisteminha bem legal para OTServ, nele, os jogadores podem se distanciar [ficar AFK] quanto tempo quiserem, sem ser kikados pelo Idle do config.lua. Nenhum jogador gosta de ir comer e quando voltar estar deslogado rsrs.

 

Vá em (data/talkactions/scripts), crie um arquivo chamado idleSys.lua e adicione dentro:

--[[

Idle-System 1.0
Criado por Roksas
Acesse já - XTibia.com.

]]--

function onSay(cid, words, param)

    if not param or param == "" then
        return doPlayerSendCancel(cid, "[Idle-System] Você deve informar o status desejado, [on/off].") and true
    end

    if getCreatureCondition(cid, CONDITION_INFIGHT) then
        return doPlayerSendCancel(cid, "[Idle-System] Você não pode utilizar este recurso caso esteja em batalha.") and  true
    end

    if param == "on" then

        if getPlayerStorageValue(cid, 154490) >= 1 then
            return doPlayerSendCancel(cid, "[Idle-System] O seu idle já havia sido ativado, favor desativar.") and true
        end

        doCreatureSetNoMove(cid, true)
        setPlayerStorageValue(cid, 154490, 1)
        idleStart(cid)
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "[Idle-System] Você ativou o seu idle.")
        elseif param == "off" then

        if getPlayerStorageValue(cid, 154490) < 1 then
            return doPlayerSendCancel(cid, "[Idle-System] O seu idle já havia sido desativado.") and true
        end

        doCreatureSetNoMove(cid, false)
        setPlayerStorageValue(cid, 154490, -1)
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "[Idle-System] Você desativou o seu idle.")
        return true
    end
    return true
end
--//--//

function idleStart(uid)
    local txts = {"Ausente", "AFK!", "Já volto!", "Aguarde..."}

    if not isPlayer(uid) then
        return true
    end
    
    if getPlayerStorageValue(uid, 154490) < 1 then
        return true
    end

    doCreatureSetLookDir(uid, math.random(1, 4))
    doSendAnimatedText(getThingPos(uid), txts[math.random(#txts)], math.random(1, 255))
    return addEvent(idleStart, 10 * 1000, uid)
end

Logo em seguida, volte para a pasta (data/talkactions), abra com algum editor de texto o arquivo talkactions.xml e adicione esta seguinte tag:

<talkaction words="/afk;!afk;!ausente;/ausente" event="script" value="idleSys.lua"/>

É só isto meus anjos, façam bom proveito haha. Obrigado por acessar a comunidade :)

 

2cprpci.png

Editado Abril 8 por CyberBot

kttallanK
27 de setembro de 2013 às 15:43

Sistemas ja tem em varios serve mais tudo de conteudo bom pro xtibia é aceito .

weslwy10W
27 de setembro de 2013 às 15:44

Muito Bom

RoksasR
27 de setembro de 2013 às 15:44

Hehe, eu particularmente nunca vi, mas tá valendo, obrigado ;D

27 de setembro de 2013 às 16:03

bom de mais rokas

JackgokuJ
27 de setembro de 2013 às 17:19

Perfeito! Funcionou certinho.

Mas existe em outros ot sim, mas faz muito tempo que não vejo. Rep+

WillOliveiraW
27 de setembro de 2013 às 17:24

Bem criativo...

StyloMaldosoS
27 de setembro de 2013 às 17:35

muito bom xd

 

legal o nome dos seus systemas

RoksasR
27 de setembro de 2013 às 17:43

iHUEUHAE, criativo né? Laziness Shop mais ainda, meu deus.

StyloMaldosoS
27 de setembro de 2013 às 17:46

esse nome é nota 10 AHUUHA

poderia ser [afk system] ou sei lá, voce inventa cada coisa

porém não vamos tirar os meritos do script..parabéns ²

Editado Setembro 27 por StyloMaldoso

RoksasR
27 de setembro de 2013 às 17:47

Obrigado cara haha, aguarde, o próximo vai ser top.

LuckOakeL
27 de setembro de 2013 às 20:03

Hehe, eu particularmente nunca vi, mas tá valendo, obrigado ;D

 

http://www.xtibia.com/forum/topic/205308-remake-scripts-antigos-refeitos/

 

Procure por AFK.

 

@Topic

 

Fikdik, cuidado com a gambiarra.

return doPlayerSendCancel(cid, "[Idle-System] Você não pode utilizar este recurso caso esteja em batalha.") and  true

Esse and true não deveria estar aí.

Editado Setembro 27 por LuckOake

RoksasR
27 de setembro de 2013 às 20:14

Por que? Que eu saiba o return pode ser usado desta maneira, logo, o comando não sairía como fala, em amarelo.

LuckOakeL
27 de setembro de 2013 às 22:13

As funções, em sua grande maioria, ao serem chamadas já retornam true ou false, dependendo da ocasião.

 

Se a doPlayerSendCancel funcionar, vai retornar true. Aí o return ficaria parecido com isso:

return true and true

Desnecessário, não acha?

 

Só retornando o doPlayerSendCancel já traz um true.

Editado Setembro 27 por LuckOake