Ir para conteúdo
  • 0

Alavanca Teleporta E Tira Item


1579091

Pergunta

Bom, gostaria de pedir um script, de uma alavanca:

 

Precisaria de 8 pessoas em cima dos tiles pra poder puxar a alavanca (apenas uma alavanca óbvio).

Ao puxar a alavanca, todos os 8 players, cada um teria que ter 300 demonic essence. Caso eles não tenha, o player que puxo a alavanca recebe uma mensagem dizendo que um deles não possuem os itens necessários.

Ao puxar a alavanca, cada um dos 8 players ia ser teleportado para uma posição configuravel por exemplo, player 1 pra pos 1, player 2 pra pos 2, player 3 pra pos 3, e assim em diante.

 

Bom, creio q n é um script mto dificil. Mas não tenho capacidade pra isso, quem ajudar +REP! Vlw

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

Em data/actions/scripts crie um arquivo.lua e cole isto dentro:

 

 

 

local t = {
essence = 2160, -- id da demonic essence
count = 300, -- quantidade minima
level = 50,  -- level necessário
inicio = { -- posição inicial dos players
{x = 1, y = 1, z = 1},
{x = 1, y = 1, z = 1},
{x = 1, y = 1, z = 1},
{x = 1, y = 1, z = 1},
{x = 1, y = 1, z = 1},
{x = 1, y = 1, z = 1},
{x = 1, y = 1, z = 1},
{x = 1, y = 1, z = 1}
},
fim = {  -- posição para onde os players irão
{x = 1, y = 1, z = 1},
{x = 1, y = 1, z = 1},
{x = 1, y = 1, z = 1},
{x = 1, y = 1, z = 1},
{x = 1, y = 1, z = 1},
{x = 1, y = 1, z = 1},
{x = 1, y = 1, z = 1},
{x = 1, y = 1, z = 1}
}}

function onUse(cid, item, fromPosition, itemEx, toPosition)  
local test = {}
for _, k in ipairs(t.inicio) do
local x = getTopCreature(k).uid
if(x == 0 or not isPlayer(x) or getPlayerLevel(x) < t.level or getPlayerItemCount(x, t.essence) < t.count) then
doPlayerSendCancel(cid, "Não tem 8 players ou alguém não tem level "..t.level.." ou alguém não tem "..t.count.." demonic essences.")
return true
end
table.insert(test, x)
end
for i, pid in ipairs(test) do
doSendMagicEffect(t.inicio[i], 2)
doPlayerRemoveItem(pid, t.essence, t.count)
doTeleportThing(pid, t.fim[i], false)
doSendMagicEffect(t.fim[i], 10)
end
doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945)
return true
end

 

 

 

Configure o script de acordo com suas posições, id da demonic essence e quantidade. Depois, é só colocar a tag em actions.xml:

<action actionid="ACTION_ID_DA_ALAVANCA" script="NOMEDOSEUARQUIVO.lua"/>

Editado por Leoxtibia
Link para o comentário
Compartilhar em outros sites

  • 0

Ah, tava fazendo aqui e já responderam...

bom, mesmo assim vou deixar aqui a script que fiz:

 

 

local positions = {
{from = {x = 1, y = 1, z = 1}, to = {x = 1, y = 1, z = 1}}, -- from é aonde checa, to é pra onde teleporta
{from = {x = 1, y = 1, z = 1}, to = {x = 1, y = 1, z = 1}}, -- from é aonde checa, to é pra onde teleporta
{from = {x = 1, y = 1, z = 1}, to = {x = 1, y = 1, z = 1}}, -- from é aonde checa, to é pra onde teleporta
{from = {x = 1, y = 1, z = 1}, to = {x = 1, y = 1, z = 1}}, -- from é aonde checa, to é pra onde teleporta
{from = {x = 1, y = 1, z = 1}, to = {x = 1, y = 1, z = 1}}, -- from é aonde checa, to é pra onde teleporta
{from = {x = 1, y = 1, z = 1}, to = {x = 1, y = 1, z = 1}}, -- from é aonde checa, to é pra onde teleporta
{from = {x = 1, y = 1, z = 1}, to = {x = 1, y = 1, z = 1}}, -- from é aonde checa, to é pra onde teleporta
{from = {x = 1, y = 1, z = 1}, to = {x = 1, y = 1, z = 1}}, -- from é aonde checa, to é pra onde teleporta
}
local removeItemId = 2160 -- id do item a ser removido
local removeItemCount = 300 -- quantidade do item a ser removido

function onUse(cid, item, frompos, item2, topos)

   local playersWithoutItem, readyToGo, missing = {}, true, false

   for _, pos in pairs (positions) do
    local creature = getTopCreature(pos.from).uid
    if not isCreature(creature) or not isPlayer(creature) then
	    doSendMagicEffect(pos.from, CONST_ME_POFF)
	    missing = true
	    readyToGo = false
    elseif getPlayerItemCount(creature, removeItemId) < removeItemCount then
	    table.insert(playersWithoutItem, creature)
	    doSendMagicEffect(pos.from, CONST_ME_POFF)
	    readyToGo = false
    else
	    doSendMagicEffect(pos.from, 13)
    end
   end

   if not readyToGo then
    local str = ""
    if missing then
	    str = "São necessários "..#positions.." jogadores para puxar a alavanca."
    elseif #playersWithoutItem > 0 then
	    local s = #playersWithoutItem == 1 and "" or "s"
	    local es = #playersWithoutItem == 1 and "" or "es"
	    local don = #playersWithoutItem == 1 and "doesn't" or "don't"
	    local e = #playersWithoutItem == 1 and "e" or "ê"
	    str = "O"..s.." jogador"..es.." a seguir não t"..e.."m os itens necessários:\n\n"
	    for _, id in pairs (playersWithoutItem) do
		    str = str .. getCreatureName(id) .. "\n"
	    end
    end
    doPlayerPopupFYI(cid, str)
    return true
   else
    for _, pos in pairs (positions) do
	    local creature = getTopCreature(pos.from).uid
	    doPlayerRemoveItem(creature, removeItemId, removeItemCount)
	    doSendMagicEffect(pos.from, CONST_ME_TELEPORT)
	    doTeleportThing(creature, pos.to, false)
	    addEvent(doSendMagicEffect, 50, pos.to, CONST_ME_TELEPORT)
    end
    doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945)
   end

return true
end

 

 

Não tem checagem de level já que você não pediu.

O script do Leoxtibia não está removendo os itens eu acho.

Editado por brun123
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...