Postado Dezembro 31, 2014 11 anos 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: 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 Dezembro 31, 2014 11 anos por Marcelo Druida (veja o histórico de edições)
Postado Dezembro 31, 2014 11 anos Haha, muito interessante maninho! Reputado! Feliz ano novo pra você também!
Postado Dezembro 31, 2014 11 anos 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.
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.