Queria que alguem cria-se pra min um porta que so passa um player por vezes e que estiver level 300. e eu queria aquelas que portas teleporta e n aqui abri e fecha.
Porta Só passa um player por vez
Como assim, 1 player por vez? Se alguém atravessa, não dá mais pra atravessar?
Projeto Fall of Kingdoms em desenvolvimento, mais informações em breve...
Fall of Kingdoms RPG
fis uma area, ai tem uma porta o player so pode entra um de cada vez. tipo eu entro na sala, so vai pode entra outro quando eu sair,
De uma olhada nisso:
http://www.xtibia.com/forum/topic/235070-limite-de-player-por-sala/

Então amigo eu vir o seu tópico ia até pow aqui pra quem tenta min ajuda, ter como uma noção. Mas eu queria uma porta no lugar de um teleporte.
Então amigo eu vir o seu tópico ia até pow aqui pra quem tenta min ajuda, ter como uma noção. Mas eu queria uma porta no lugar de um teleporte.
Usando a lógica do RigBy, só fiz algumas alterações, vê se dá...
Em data/actions/actions.xml adicione a seguinte tag:
<action actionid="50000" script="questDoor.lua"/>Agora em data/actions/scripts crie o arquivo x com o seguinte conteúdo:
-- Do not remove the credits --
-- [MOVEEVENT] Limite de player por sala --
-- Developed by Rigby --
-- Especially for the Xtibia.com --
local config = {
-- Config --
-- [ACTIONID] = {area = getPlayersInArea(AREA QUE IRA CHECAR (FROMPOS,TOPOS)), amountOfPlayers = QUANTIDADE QUE CABE}
[50000] = {area = getPlayersInArea({x = 1030, y = 1020, z = 7}, {x = 1040, y = 1030, z = 7}), amountOfPlayers = 1}
-- Config --
}
function onUse(cid, item, topos)
if config[item.actionid] then
if #config[item.actionid].area >= config[item.actionid].amountOfPlayers then
return doPlayerSendCancel(cid, 'Ja tem um player fazendo a quest, aguarde...')
end
doTeleportThing(cid, topos, true)
end
return true
end
function getPlayersInArea(fromPos, toPos) -- Function made by Vodkart
local players = {}
for _, pid in ipairs(getPlayersOnline()) do
if isInRange(getPlayerPosition(pid), fromPos, toPos) then
table.insert(players, pid)
end
end
return players
endAgora basta colocar a actionid na porta.erro
[29/07/2015 16:51:20] data/actions/scripts/other/doorsquest.lua:8: attempt to call global 'getPlayersInArea' (a nil value)
como coloca tempo maximo para o player ficar nesta area? por exemplo: ficou mais de 10min toma kick pra fora
De uma olhada nisso:
http://www.xtibia.com/forum/topic/235070-limite-de-player-por-sala/
como poe limite, por exemplo ficou 10 mins na sala toma kick pra fora
Alguém
como coloca tempo maximo para o player ficar nesta area? por exemplo: ficou mais de 10min toma kick pra fora
como poe limite, por exemplo ficou 10 mins na sala toma kick pra fora
substitui o movement por esse:
-- Do not remove the credits --
-- [MOVEEVENT] Limite de player por sala --
-- Developed by Rigby --
-- Especially for the Xtibia.com --
function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
local pos = {x = 1073, y = 1031, z = 7} -- quando o tempo acaba para onde ele ira ser teleportado
local tempo = 10 -- tempo que pode fica em minutos
local config = {
[5555] = {area = getPlayersInArea({x = 1030, y = 1020, z = 7}, {x = 1040, y = 1030, z = 7}), amountOfPlayers = 1, teleport = {x = 1037, y = 1025, z = 7}},
}
if config[item.actionid] then
if #config[item.actionid].area < config[item.actionid].amountOfPlayers then
doTeleportThing(cid, config[item.actionid].teleport, false)
doPlayerSendTextMessage(cid, 25, "Welcome")
setPlayerStorageValue(cid, 21321321, 1)
addEvent(function()
if not isPlayer(cid) then
return false
end
if getPlayerStorageValue(cid, 21321321) == 1 then
doTeleportThing(cid, pos)
setPlayerStorageValue(cid, 21321321, -1)
end
end, tempo * 60 * 1000)
else
doPlayerSendTextMessage(cid, 25, "The room already reached its limit "..config[item.actionid].amountOfPlayers.." player 's wait someone out .")
doTeleportThing(cid, fromPosition)
end
end
return true
end
function getPlayersInArea(fromPos, toPos) -- Function made by Vodkart
local players = {}
for _, pid in ipairs(getPlayersOnline()) do
if isInRange(getPlayerPosition(pid), fromPos, toPos) then
table.insert(players, pid)
end
end
return players
end
if getPlayerStorageValue(cid, 21321321) == 1 then
local pos = {x = 1073, y = 1031, z = 7} -- posição para onde ele vai
doTeleportThing(cid, pos)
setPlayerStorageValue(cid, 21321321, 1)
end
if getPlayerStorageValue(cid, 21321321) == 1 then local pos = {x = 1073, y = 1031, z = 7} -- posição para onde ele vai doTeleportThing(cid, pos) setPlayerStorageValue(cid, 21321321, 1) end
creio que ta errado essa parte, se não sempre que ele deslogar ele vai para o templo, tem que modificar ali
setPlayerStorageValue(cid, 21321321, -1)
edit: poderia me explicar qual a função faz a contagem para o player tomar teleport pra fora? pois queria adicionar ela em um outro script, vlw
creio que ta errado essa parte, se não sempre que ele deslogar ele vai para o templo, tem que modificar ali
setPlayerStorageValue(cid, 21321321, -1)edit: poderia me explicar qual a função faz a contagem para o player tomar teleport pra fora? pois queria adicionar ela em um outro script, vlw
Eu fiz isso porque caso o player deslogue la dentro e o tempo acaba-se o script ia buga e ele poderia fica la pra sempre.
desculpa, muda o valor de 1 para -1 no setPlayerSto....
Da uma olhada nessa parte:
addEvent(function()
if not isPlayer(cid) then
return false
end
if getPlayerStorageValue(cid, 21321321) == 1 then
doTeleportThing(cid, pos)
setPlayerStorageValue(cid, 21321321, -1)
end
end, tempo * 60 * 1000)

Já meu pedido nds. Isso que vcs estão fazendo não é contra regras não. Pq, que eu saiba ele teria que cria outro tópico.
Já meu pedido nds. Isso que vcs estão fazendo não é contra regras não. Pq, que eu saiba ele teria que cria outro tópico.
mano, ele ja postou seu script completo, é so ver acima.
o erro que deu é pq tu não prestou atenção direito
29/07/2015 16:51:20] cannot open data/actions/scripts/doorsquest.lua: No such file or directory
nao foi encontrado o arquivo chamado doorsquest.lua na sua pasta data/actions/scripts. voce colocou o nome dele errado!
to achando que o erro msm é aqui [29/07/2015 16:51:20] data/actions/scripts/other/doorsquest.lua:8: attempt to call global 'getPlayersInArea' (a nil value)











