Ir para conteúdo
  • 0

Porta Que So Gm Abre


EduziTow

Pergunta

13 respostass a esta questão

Posts Recomendados

  • 0

OnlyGM.lua

local id_aberta = 1950 -- Id da porta aberta
local id_fechada = 1951 -- Id da porta fechada
local group_id = 6 -- Somente quem tiver no mínimo esse group poderá abrir a porta.

local simple = {
      [id_aberta] = id_fechada,
      [id_fecahda] = id_aberta
}
function onUse(cid, item)
      if getPlayerGroupId(cid) < group_id then
              doPlayerSendCancel(cid, "Você não tem permissão para abrir esta porta!")
              return false
      end
      return doTransformItem(item.uid, simple[item.itemid])
end

 

<action actionid = "7953" event = "script" value = "OnlyGM.lua"/>

 

Depois só é abrir seu Map Editor e colocar na porta a actionoid 7953. Done!

Link para o comentário
Compartilhar em outros sites

  • 0

~Edited

MaXwEllDeN

Exatamente, apenas errou em:

 

local id_aberta = 1950 -- Id da porta aberta

local id_fechada = 1951 -- Id da porta fechada

local group_id = 6 -- Somente quem tiver no mínimo esse group poderá abrir a porta.

 

local simple = {

[id_aberta] = id_fechada,

[id_fecahda] = id_aberta

}

function onUse(cid, item)

if getPlayerGroupId(cid) < group_id then

doPlayerSendCancel(cid, "Você não tem permissão para abrir esta porta!")

return false

end

return doTransformItem(item.uid, simple[item.itemid])

end

 

Já a vírgula como disse antes, é preferêncial.

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

  • 0

MaXwEllDeN

Amigo, só errou em:

local simple = {
   [id_aberta] = id_fechada,
   [id_fechada] = id_aberta
}

O correto seria:

local simple = {
   [id_aberta] = id_fechada,
   [id_fechada] = id_aberta,
}

 

Desculpe, mas, não achei o erro .-., só ví a vírgula que você pos após o último elemento da tabela.

Link para o comentário
Compartilhar em outros sites

  • 0

Amigo, então em vez de mudar a actionid mude a uniqueid e use esta tag no lugar da que te mandei antes:

 


<action uniqueid = "7953" event = "script" value = "OnlyGM.lua"/>

 

Lembrando a você que você terá que por a actionid da porta no map editor em 0 novamente.

Link para o comentário
Compartilhar em outros sites

  • 0

Amigo, então em vez de mudar a actionid mude a uniqueid e use esta tag no lugar da que te mandei antes:

 


<action uniqueid = "7953" event = "script" value = "OnlyGM.lua"/>

 

Lembrando a você que você terá que por a actionid da porta no map editor em 0 novamente.

 

Agora Todos Abrem A Porta

Link para o comentário
Compartilhar em outros sites

  • 0

Para isto estar acontecendo provavelmente o servidor não carregou o script, ou na porta não foi colocada a uniqueid. Vou testar no meu servidor de testes e qualquer coisa posto aqui novamente.

 

Abraços.

So Preciso de ajudar,para que os players nao fexem tbm

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

  • 0

Abra a pasta data/actions/scripts e crie um arquivo chamado gmdoor.lua

Adicione o script:

local groupid = 4
function onUse(cid, item, frompos)
if getPlayerGroupId(cid) >= groupid then
else
doPlayerSendCancel(cid, "You do not have permission to open the door.")
return false
end
end

Agora na pasta data/actions abra o arquivo actions.xml

Adicione a tag:

<action actionid="9550" event="script" value="gmdoor.lua"/>

 

Coloque a ActionID na porta pelo Map Editor, que você quer que seja aberta apenas pelos que possuirem o GroupID descrito em local groupid.

PS: Está configurado para cargos de GM e superiores a ele.

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

  • 0

Abra a pasta data/actions/scripts e crie um arquivo chamado gmdoor.lua

Adicione o script:

local groupid = 4
function onUse(cid, item, frompos)
if getPlayerGroupId(cid) >= groupid then
else
doPlayerSendCancel(cid, "You do not have permission to open the door.")
return false
end
end

Agora na pasta data/actions abra o arquivo actions.xml

Adicione a tag:

<action actionid="9550" event="script" value="gmdoor.lua"/>

 

Coloque a ActionID na porta pelo Map Editor, que você quer que seja aberta apenas pelos que possuirem o GroupID descrito em local groupid.

PS: Está configurado para cargos de GM e superiores a ele.

não deu serto,aparece it locked

Link para o comentário
Compartilhar em outros sites

  • 0
function onUse(cid, item)

local needGroup = 5
local aberta = xx
local fechada = xx

if getPlayerGroupId(cid) < needGroup then
doPlayerSendTextMessage(cid, 27, "You can't open this door.")
return true
end

return doTransformItem(item.uid, item.itemid == aberta and fechada or aberta)
end

Link para o comentário
Compartilhar em outros sites

  • 0

function onUse(cid, item)

local needGroup = 5
local aberta = xx
local fechada = xx

if getPlayerGroupId(cid) < needGroup then
doPlayerSendTextMessage(cid, 27, "You can't open this door.")
return true
end

return doTransformItem(item.uid, item.itemid == aberta and fechada or aberta)
end

Não Quero Colocar Id Da Porta,é chato,meu servidor tem que ficar trancando assim umas 32 portas de eventos,e eu so quero colocar o actionid e nao ficar fazendo outro script para colocar outra porta

Link para o comentário
Compartilhar em outros sites

  • 0


local needGroup = 5

local doors = {
  -- [iDABERTA] = IDFECHADA,
  [2170] = 2171,
  [2175] = 2172,
}

local function getIndex(t, val)
  for i, v in pairs(t) do
     if v == val then
        return i
     end
  end

  return nil
end

function onUse(cid, item)

  if getPlayerGroupId(cid) < needGroup then
     return doPlayerSendTextMessage(cid, 27, "You can't open this door.")
  end

  return doTransformItem(item.uid, doors[item.itemid] or getIndex(doors, item.itemid))
end

 

Você tem que colocar o id das portas ai, abertas e fechadas, só é você usar uma actionid só em todas as portas.

É praticamente impossível fazer sem saber o id das portas abertas ou fechadas, sem ter um padrão.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...