NathanAmaro 1 Postado Abril 7, 2014 Share Postado Abril 7, 2014 Olá galera Vim aqui pedir uma ajuda a vocês. Um script de elevador, que fará o seguinte: Basicamente o número "1" seria a posição que o jogador deveria estar para subir. O número "2" é a alavanca (troquei a sprite pra ficar mais bonito), que ao clicar iria subir para o andar 2, e lá teria outra alavanca que ao clicar subiria pro andar 3, e assim por diante, são 7 andares, então quando chegar no sétimo andar quando o player clicar na alavanca novamente iria descer para o 6, depois o 5, e assim por diante. Se for preciso pode usar duas alavancas também. Quem quiser melhorar a ideia como por exemplo, escolher o número do andar que queira ir, seria uma boa também. Obrigado a todos! Link para o comentário Compartilhar em outros sites More sharing options...
Wiihtop 1 Postado Abril 7, 2014 Share Postado Abril 7, 2014 amigo tu postou na area errada ! Link para o comentário Compartilhar em outros sites More sharing options...
Killua 389 Postado Abril 8, 2014 Share Postado Abril 8, 2014 Nesta área não devem ser postados pedidos nem dúvidas. Preste mais atenção quando for criar um tópico! Movido para Pedidos e dúvidas - Scripting. Link para o comentário Compartilhar em outros sites More sharing options...
GstvoLiber 19 Postado Abril 8, 2014 Share Postado Abril 8, 2014 Hm.. parece uma boa idéia, vou tentar fazer, mas vai ter que usar 2 alavancas, uma pra descer e outra pra subir. -GstavoLiber Link para o comentário Compartilhar em outros sites More sharing options...
NathanAmaro 1 Postado Abril 8, 2014 Autor Share Postado Abril 8, 2014 Sim! Obrigado meu amigo. Link para o comentário Compartilhar em outros sites More sharing options...
DuuhCarvalho 327 Postado Abril 8, 2014 Share Postado Abril 8, 2014 fiz esse bem simples nem testei, to ocupado . ta ae... function onUse(cid, item, fromPosition, itemEx, toPosition) local idAlavanca = XX local posPlayer = getCreaturePosition(cid) local efeitoSubi = 1 local efeitoDescer = 2 if itemEx.itemid == idAlavanca then local pos1 = posPlayer.x and posPlayer.y and posPlayer.z + 1 local pos2 = posPlayer.x and posPlayer.y and posPlayer.z - 1 if (posPlayer.x == posPlayer.x) and (posPlayer.y == posPlayer.y) and (posPlayer.z >= 1) then doTeleportThing(cid, pos1) doSendMagicEffect(pos1, efeitoSubi) elseif (posPlayer.x == posPlayer.x) and (posPlayer.y == posPlayer.y) and (posPlayer.z == 7) then doTeleportThing(cid, pos2) doSendMagicEffect(pos2, efeitoDescer) end end return true end Link para o comentário Compartilhar em outros sites More sharing options...
NathanAmaro 1 Postado Abril 9, 2014 Autor Share Postado Abril 9, 2014 (editado) Ok, vou testar e já digo se funcionou. Obrigado! #DuuhCarvalho --------------------Editado---------------- Desculpe a demora, eu testei e não funcionou Deu esse error: Editado Abril 9, 2014 por NathanAmaro Link para o comentário Compartilhar em outros sites More sharing options...
zipter98 1101 Postado Abril 9, 2014 Share Postado Abril 9, 2014 (editado) Hm, fiz uma coisa meio estranha, mas deve funcionar. Configure o quê foi indicado. local floors = { [1] = {{x = x, y = y, z = z}, {x = x, y = y, z = z}}, --[andar] = {posição que o jogador deve ficar, posição para onde será teleportado}, [2] = {{x = x, y = y, z = z}, {x = x, y = y, z = z}}, [3] = {{x = x, y = y, z = z}, {x = x, y = y, z = z}}, [4] = {{x = x, y = y, z = z}, {x = x, y = y, z = z}}, [5] = {{x = x, y = y, z = z}, {x = x, y = y, z = z}}, [6] = {{x = x, y = y, z = z}, {x = x, y = y, z = z}}, [7] = {{x = x, y = y, z = z}, {x = x, y = y, z = z}}, } local storage = 918281 function onUse(cid, item, frompos, item2, topos) local position = getThingPos(cid) local function getFloor(cid) for _, p in pairs(floors) do if position.x == p[1].x and position.y == p[1].y and position.z == p[1].z then return _ end end return false end if not getFloor(cid) then return true end local floor = getFloor(cid) local function getNextFloor(cid) if getPlayerStorageValue(cid, storage) < 1 then return floor + 1 else return floor - 1 end end if not floors[getNextFloor(cid)] then return true end if getNextFloor(cid) == 7 then setPlayerStorageValue(cid, storage, 1) elseif getNextFloor(cid) == 1 then setPlayerStorageValue(cid, storage, -1) end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "*Plim* Now you're on the "..getNextFloor(cid).." floor.") doTeleportThing(cid, floors[getNextFloor(cid)][2]) return true end Editado Abril 9, 2014 por zipter98 Link para o comentário Compartilhar em outros sites More sharing options...
NathanAmaro 1 Postado Abril 10, 2014 Autor Share Postado Abril 10, 2014 Hm, fiz uma coisa meio estranha, mas deve funcionar. Configure o quê foi indicado. local floors = { [1] = {{x = x, y = y, z = z}, {x = x, y = y, z = z}}, --[andar] = {posição que o jogador deve ficar, posição para onde será teleportado}, [2] = {{x = x, y = y, z = z}, {x = x, y = y, z = z}}, [3] = {{x = x, y = y, z = z}, {x = x, y = y, z = z}}, [4] = {{x = x, y = y, z = z}, {x = x, y = y, z = z}}, [5] = {{x = x, y = y, z = z}, {x = x, y = y, z = z}}, [6] = {{x = x, y = y, z = z}, {x = x, y = y, z = z}}, [7] = {{x = x, y = y, z = z}, {x = x, y = y, z = z}}, } local storage = 918281 function onUse(cid, item, frompos, item2, topos) local position = getThingPos(cid) local function getFloor(cid) for _, p in pairs(floors) do if position.x == p[1].x and position.y == p[1].y and position.z == p[1].z then return _ end end return false end if not getFloor(cid) then return true end local floor = getFloor(cid) local function getNextFloor(cid) if getPlayerStorageValue(cid, storage) < 1 then return floor + 1 else return floor - 1 end end if not floors[getNextFloor(cid)] then return true end if getNextFloor(cid) == 7 then setPlayerStorageValue(cid, storage, 1) elseif getNextFloor(cid) == 1 then setPlayerStorageValue(cid, storage, -1) end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "*Plim* Now you're on the "..getNextFloor(cid).." floor.") doTeleportThing(cid, floors[getNextFloor(cid)][2]) return true end Cara, eu testei e não funcionou Link para o comentário Compartilhar em outros sites More sharing options...
Killua 389 Postado Abril 10, 2014 Share Postado Abril 10, 2014 (editado) Cara, eu testei e não funcionou Vc editou a tabela? local floors = { [1] = {{x = x, y = y, z = z}, {x = x, y = y, z = z}}, --[andar] = {posição que o jogador deve ficar, posição para onde será teleportado}, [2] = {{x = x, y = y, z = z}, {x = x, y = y, z = z}}, [3] = {{x = x, y = y, z = z}, {x = x, y = y, z = z}}, [4] = {{x = x, y = y, z = z}, {x = x, y = y, z = z}}, [5] = {{x = x, y = y, z = z}, {x = x, y = y, z = z}}, [6] = {{x = x, y = y, z = z}, {x = x, y = y, z = z}}, [7] = {{x = x, y = y, z = z}, {x = x, y = y, z = z}}, } Edit Fiz de uma maneira mais simples... local maxFloor = 7 local minFloor = 2 function onUse(cid, item, fromPosition, itemEx, toPosition) local pos_ = getThingPos(cid) if pos_.z < maxFloor and pos_.z < minFloor then if item.actionid == 4912 then doTeleportThing(cid, {x = pos_.x, y = pos_.y, z = pos_.z + 1}) doSendMagicEffect({x = pos_.x, y = pos_.y, z = pos_.z + 1}, 28) doPlayerSendTextMessage(cid, 25, "Voce desceu um andar.") elseif item.actionid == 4913 then doTeleportThing(cid, {x = pos_.x, y = pos_.y, z = pos_.z - 1}) doSendMagicEffect({x = pos_.x, y = pos_.y, z = pos_.z - 1}, 28) doPlayerSendTextMessage(cid, 25, "Voce subiu um andar.") end else doPlayerSendCancel(cid, "Voce ja esta no andar maximo!") end return true end Registra no actions.xml os actionIDs 4912 e 4913. Na alavanca de subir andar vc bota 4913 e na de descer vc bota 4912. maxFloor é o andar máximo q o cara pode ir minFloor é o andar mínimo q o cara pode ir Editado Abril 10, 2014 por Killua Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados