- Fórum
- OTServ
- Recursos
- Scripting
- Actions e Talkactions
- Sistema de elevador no próprio servidor
LA
action
Sistema de elevador no próprio servidor
Por larissaots, 31 de mai. de 2015 em Actions e Talkactions
script
1
754
Por larissaots, 31 de mai. de 2015 em Actions e Talkactions
info
Grupo: Banidos
Registrado: 07/04/13
Posts: 648
Reputação: +163
Créditos à Marcelo Druida.
Observações
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.
Use The Forgotten Server 0.3.6 crying damson.
Como funciona
É só entrar no piso do elevador e dizer: andar X
0 = térreo
X = número do andar
Tutorial
Crie no mapa um local assim:
Vá em talkactions/scripts e crie um arquivo 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 endAdicione em talkactions/talkactions.xml a linha:
No arquivo actions/scripts/others/doors.lua. Substitua a linha 16 por:
Pronto!
Editado Maio 31 por Larissa Azhaurn