Ir para conteúdo

Featured Replies

Postado
  • Este é um post popular.

Bom dia!!

 

Trago um sistema de elevador como presente pelo ano que se iniciará!

Use The Forgotten Server 0.3.6 crying damson.

Se uma boa alma adaptá-lo a TFS 1.0, agradecerei e incluirei ao post!

 

Crie no mapa um local assim:

8wjytv.png

 

Não importa a quantidade de andares, só importa que deve partir do térreo z=7, e não deve ser feito no subterrâneo.

 

Crie um arquivo talkactions/scripts/elevador.lua

function onSay(cid, words, param, channel)
pos = getPlayerPosition(cid)
pos.stackpos = 0
floor_id = getThingfromPos(pos).itemid
z = (pos.z - 7) * -1
    -- verifica se está no piso do elevador
    if floor_id == 417 and getPlayerStorageValue(cid,42000)==-1 then
        -- verifica se existe o parametro numero do andar, se não existir termina o codigo
        if (not isNumber(param)) then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Digite o numero do andar.")    
                return false
        end
        numeroDeAndares = tonumber(param) - z        
        -- teleporte a andares superiores
        if numeroDeAndares > 0 then
        new_pos = {x=pos.x,y=pos.y,z=pos.z-numeroDeAndares,stackpos=0}
            if getThingfromPos(new_pos).itemid == 416 then
                    doSendAnimatedText(pos, "SUBINDO!!!", 180)
                    setPlayerStorageValue(cid,42000,1)
                    for i=1, numeroDeAndares do
                        addEvent(doTeleportThing,500*i,cid, {x=pos.x,y=pos.y,z=pos.z-i}, true)
                    end
                    addEvent(checkAndar,500,cid,param)
            else
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Andar invalido.")    
                return false
            end
        -- teleporte a andar inferiores
        elseif numeroDeAndares < 0 then
                setPlayerStorageValue(cid,42000,1)
                doSendAnimatedText(pos, "DESCENDO!!!", 180)
                for i=1, numeroDeAndares*-1 do
                    addEvent(doTeleportThing,500*i,cid, {x=pos.x,y=pos.y,z=pos.z+i}, true)
                end    
                addEvent(checkAndar,500,cid,param)                
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce esta neste andar.")    
            return false
        end            
    elseif floor_id ~= 417 then
        doCreatureSay(cid, words .." ".. param)
    end
    return true
end


function checkAndar(cid, param)
pos = getPlayerPosition(cid)
z = (pos.z - 7) * -1
    if tonumber(param) == z then
        doSendMagicEffect({x=pos.x,y=pos.y,z=pos.z}, CONST_ME_TELEPORT)
        doSendAnimatedText({x=pos.x,y=pos.y,z=pos.z}, "Andar "..tonumber(param), 180)
        setPlayerStorageValue(cid,42000,-1)
    else
        addEvent(checkAndar,500,cid,param)
    end
end

Adicione em talkactions/talkactions.xml a linha:

 

<talkaction log="no" words="andar" access="0" event="script" value="elevador.lua"/>

 

 

 

No arquivo actions/scripts/others/doors.lua

Substitua a linha 16 por:

 

if(getItemLevelDoor(item.itemid) > 0) and getPlayerStorageValue(cid,42000)==-1 then

 

 

 

Pronto!

 

 

É só entrar no piso do elevador e dizer:

 

andar X

 

X = o numero do andar, sendo 0 = térreo

 

 

Peço sugestões de melhoria do código!

Espero que seja útil a alguém!

Abraço, feliz ano novo a todos!

Editado por Marcelo Druida (veja o histórico de edições)

  • Respostas 5
  • Visualizações 967
  • Created
  • Última resposta

Top Posters In This Topic

Postado

Haha, muito interessante maninho!

 

Reputado! Feliz ano novo pra você também!

Postado

Boa idéia, man. Reputado! sahusauhashu[

 

Eu posso até ler o código depois, pra ver se tem o que otimizar, mas agora não posso... To meio numa correria. 

Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

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