XT
script

Porta Só passa um player por vez

Por Xtudomuito, 27 de jul. de 2015 em Scripts

29
6.4k
zipter98Z
31 de julho de 2015 às 18:49


-- Do not remove the credits --

-- [MOVEEVENT] Limite de player por sala --

-- Developed by Rigby --

-- Especially for the Xtibia.com --

 

function onUse(cid, item, topos)

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 --

}

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

end

 

XtudomuitoX
01 de agosto de 2015 às 12:16

Desculpe mas quando eu entro e tento sair disse que tem gente fazendo a quest

zipter98Z
01 de agosto de 2015 às 18:09

What? Você entra na quest por esta porta mas tenta sair da quest pela mesma porta?

XtudomuitoX
02 de agosto de 2015 às 11:27

Sim, pq o meu n é uma quest. fis uma sala e coloque o npc pra vende item raros, dentro da sala. Pra fala com esse npc só pode um player por vez(entra e sair pera msm porta). E quem loga lah dentro é teleportado pow templo. E tb pra passa nessa porta precisa se lvl 300.

Editado Agosto 2 por Xtudomuito

RigByR
03 de agosto de 2015 às 11:49

Sim, pq o meu n é uma quest. fis uma sala e coloque o npc pra vende item raros, dentro da sala. Pra fala com esse npc só pode um player por vez(entra e sair pera msm porta). E quem loga lah dentro é teleportado pow templo. E tb pra passa nessa porta precisa se lvl 300.

 

porque você simplesmente não coloca um teleport dentro da sala?

XtudomuitoX
03 de agosto de 2015 às 13:41

Pq na sala só tem um npc, e eu quero porta e n teleporte. E fora do tópico pq se colocou meu pedido spells stun pra lixeira se é totalmente diferente do spell stop.

Editado Agosto 3 por Xtudomuito

RigByR
03 de agosto de 2015 às 14:12

Pq na sala só tem um npc, e eu quero porta e n teleporte. E fora do tópico pq se colocou meu pedido spells stun pra lixeira se é totalmente diferente do spell stop.

 

Não deveria responde mas já respondendo, qual a diferencia entre:

"Eu queria uma spell que de stun no target."

Para:

"Queria uma spell que deixa o target parado.

Explicaõ: eu atacou um target o ficara parado por 10 segundos n poderá se move, mas ninguém poderá o ataca. E fica uma statua em cima do target que foi ativado a spell, a statua ficará por 10 segundos depois some."

Para que dois pedidos com a mesma coisa?

Qualquer duvida entre em contato via PM

 

#tópico

Então espere alguém responde com a solução.

Quer que mova para a área de pedidos e duvidas? já que você já tinha marcado como melhor resposta e desmarco.

XtudomuitoX
03 de agosto de 2015 às 15:18

cara spells stun fica parado mas todo mundo pode atack e n tem o efeito do statuas

jah spells stop fica parado e niguem podera o atack e aparece o item da statuas

Editado Agosto 3 por Xtudomuito

Alencar522A
03 de agosto de 2015 às 15:20
Melhor resposta

Tenta assim:

-- Do not remove the credits --
-- [MOVEEVENT] Limite de player por sala --
-- Developed by Rigby --
-- Especially for the Xtibia.com --
 
function onUse(cid, item, topos)
    local config = {
        -- Config --
        -- [ACTIONID] = {area = getPlayersInArea(AREA QUE IRA CHECAR (FROMPOS,TOPOS)), amountOfPlayers = QUANTIDADE QUE CABE}
        [212331] = {area = getPlayersInArea({x = 1030, y = 1020, z = 7}, {x = 1040, y = 1030, z = 7}), amountOfPlayers = 1}
        -- Config --
    }
	if getPlayerLevel(cid) <= 299 then
	doPlayerSendCancel(cid, 'Você precisa de nivel 300 ou mais para passar')
	return true end
	if getPlayerStorageValue(cid, 1233256) == 1 then
	doTeleportThing(cid, topos,true)
	setPlayerStorageValue(cid, 1233256, -1)
	return true end
    if config[item.actionid] then
        if #config[item.actionid].area >= config[item.actionid].amountOfPlayers then
            return doPlayerSendCancel(cid, 'Ja tem um player, aguarde...')
        end
		setPlayerStorageValue(cid, 1233256, 1)
        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
end
XtudomuitoX
03 de agosto de 2015 às 15:29

so fica dizendo Ja tem um player, aguarde...

 

Alencar522A
03 de agosto de 2015 às 16:12

Se você colocou esse script e já havia um player lá dentro vai dar isso mesmo, tira ele de lá manualmente e testa novamente.

Para funcionar o player tem que clicar na porta para ganhar a storage.

Editado Agosto 3 por Alencar522

XtudomuitoX
03 de agosto de 2015 às 16:45

Entao mano eu cliquei entrei, mas pra sair disso isso. sera que configurei errado

 

Alencar522A
04 de agosto de 2015 às 12:35

Coloca o teu script aí pra ver se tem algo errado.

XtudomuitoX
04 de agosto de 2015 às 15:42

 

-- Do not remove the credits --
-- [MOVEEVENT] Limite de player por sala --
-- Developed by Rigby --
-- Especially for the Xtibia.com --

function onUse(cid, item, topos)
local config = {
-- Config --
-- [ACTIONID] = {area = getPlayersInArea(AREA QUE IRA CHECAR (FROMPOS,TOPOS)), amountOfPlayers = QUANTIDADE QUE CABE}
[50001] = {area = getPlayersInArea({x = 1513, y = 1438, z = 7}, {x = 1513, y = 1440, z = 7}), amountOfPlayers = 1}
-- Config --
}
if getPlayerLevel(cid) <= 299 then
doPlayerSendCancel(cid, 'Você precisa de nivel 300 ou mais para passar')
return true end
if getPlayerStorageValue(cid, 1233256) == 1 then
doTeleportThing(cid, topos,true)
setPlayerStorageValue(cid, 1233256, -1)
return true end
if config[item.actionid] then
if #config[item.actionid].area >= config[item.actionid].amountOfPlayers then
return doPlayerSendCancel(cid, 'Ja tem um player, aguarde...')
end
setPlayerStorageValue(cid, 1233256, 1)
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
end