Ola Galera Do Xtibia.
Queria Um Script,De Uma Porta,Em Que So Gamemaster Poderia Abrir.
Quem Me Ajudar Dou Rep+
Obrigado!
Ola Galera Do Xtibia.
Queria Um Script,De Uma Porta,Em Que So Gamemaster Poderia Abrir.
Quem Me Ajudar Dou Rep+
Obrigado!
D u u H Y o u r s ° ~
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!
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.
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.
Não Deu Serto Aqui
Aparece Isso 23:33 It is locked.
D u u H Y o u r s ° ~
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.
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
D u u H Y o u r s ° ~
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.
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
D u u H Y o u r s ° ~
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.
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 endAgora 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
D u u H Y o u r s ° ~
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
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
D u u H Y o u r s ° ~
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.