BR

[Resolvido] Door Que Somente Membro De Uma Guild Pode Entrar

Por bruno333, 03 de mar. de 2011 em Scripts

script
13
3.2k
bruno333B
03 de março de 2011 às 15:11

Galera o Script q eu preciso e mais ou menos assim

 

uma Door que somente players que pertence a uma guild podem passar por ela!

 

creio que n seja dificil de fazer porem eu não tenho conhecimento sobre Script's e por isso venho pedir uma ajudinha de vcs

 

 

Obrigado desde Já !

 

 

Caso n seja possivel uma door poderia ser tbem um Tile onde somente membros de guild podem passar

Editado Março 3 por bruno333

03 de março de 2011 às 16:02

retired.

Editado Março 3 por Demonbholder

bruno333B
03 de março de 2011 às 16:16

ai no caso eu teria q por guild por guild?

 

n teria outra função q deixase passar todas as guilds?

03 de março de 2011 às 16:27

Ah sim. Tenta:

 

Possibilidade 1:

 

 

Se tem uma porta pra cada guild, segue as instruções:

 

1_ Coloca um unique id diferente em cada porta.

 

2_ Usa o script a seguir:

 

function onUse(cid, item)

 

local t = {

[100] = {guild='Nome'},

[101] = {guild='Nome'},

[102] = {guild='Nome'},

[103] = {guild='Nome'},

[104] = {guild='Nome'},

[105] = {guild='Nome'},

[106] = {guild='Nome'},

[107] = {guild='Nome'}

}

 

if getPlayerGuildName(cid) ~= t[item.uid].guild then

return FALSE

else

return TRUE

end

end

 

Azul: Os números dentro dos colchetes são os unique ids.

Vermelho: Ai é o nome de cada guild.

 

E a tag:

 

<action uniqueid="uid1;uid2;uid3;uid4;uid5;uid6;uid7" script="nome_do_arquivo.lua" />

 

 

Possibilidade 2:

 

 

Se for uma porta para todas as guilds, dai é só colocar um unique id nessa porta, e usar o script abaixo:

 

function onUse(cid, item)

 

if getPlayerGuildId(cid) == 0 then

return FALSE

else

return TRUE

end

end

 

 

Acho que é isso, não testei nenhum, até.

Editado Março 3 por Demonbholder

bruno333B
03 de março de 2011 às 16:47

Ah sim. Tenta:

 

Possibilidade 1:

 

 

Se tem uma porta pra cada guild, segue as instruções:

 

1_ Coloca um unique id diferente em cada porta.

 

2_ Usa o script a seguir:

 

function onUse(cid, item)

 

local t = {

[100] = {guild='Nome'},

[101] = {guild='Nome'},

[102] = {guild='Nome'},

[103] = {guild='Nome'},

[104] = {guild='Nome'},

[105] = {guild='Nome'},

[106] = {guild='Nome'},

[107] = {guild='Nome'}

}

 

if getPlayerGuildName(cid) ~= t[item.uid].guild then

return FALSE

else

return TRUE

end

end

 

Azul: Os números dentro dos colchetes são os unique ids.

Vermelho: Ai é o nome de cada guild.

 

E a tag:

 

<action uniqueid="uid1;uid2;uid3;uid4;uid5;uid6;uid7" script="nome_do_arquivo.lua" />

 

 

Possibilidade 2:

 

 

Se for uma porta para todas as guilds, dai é só colocar um unique id nessa porta, e usar o script abaixo:

 

function onUse(cid, item)

 

if getPlayerGuildId(cid) == 0 then

return FALSE

else

return TRUE

end

end

 

 

Acho que é isso, não testei nenhum, até.

 

 

no caso eu quero ea possibilidade 2 que você colocou ae

e como ficaria a tag?

03 de março de 2011 às 16:49

Coloca um uniqueid na porta, e a tag ficará assim:

 

<action uniqueid="UID" script="NomeDoArquivo.lua" />

 

Até mais parceiro.

bruno333B
03 de março de 2011 às 16:57

obrigado vou testa aqui e já edito mais mesmo assim já dei +Repp ai so pela atenção e boa vontade que vc teve

 

obrigado e ate mais !

03 de março de 2011 às 18:24

Velho, eu tava testando aqui, e achei um problema, pois no script, eu tenho que colocar para a porta teleportar o jogador, só usar o return TRUE não adianta não. Então me diga, é só uma porta no mapa? Se for, ela é de lado, ou de frente?

 

Lado: Jogador PORTA Lugar

Frente: Lugar
       Porta
       Jgaodor

 

Ou, para ser mais fácil, poderia colocar um action id nos tile na frente da porta, ai o jogador não poderia pisar nele para abrir a porta.

Editado Março 3 por Demonbholder

bruno333B
03 de março de 2011 às 18:48

ela e assim

Lado: Jogador PORTA Lugar

 

sim e somente essa no mapa

 

no caso se tiver como fazer por movements tipo um tile q só players com guild podem passar por ele

seria uma boa tbem

 

Vlw obrigado ai mais uma vez pela atenção!

03 de março de 2011 às 19:12

Ah, otimo, se é só uma no mapa fica fácil, ta ae:

 

function onUse(cid, item)

 

if getPlayerGuildId(cid) == 0 then

return FALSE

else

return doTelPlayer(cid, item)

end

end

 

function doTelPlayer(cid, item)

 

if getPlayerPosition(cid).x > getThingPos(item.uid).x then

doTeleportThing(cid, {x=getThingPos(item.uid).x - 1, y=getThingPos(item.uid).y, z=getThingPos(item.uid).z})

elseif getPlayerPosition(cid).x < getThingPos(item.uid).x then

doTeleportThing(cid, {x=getThingPos(item.uid).x + 1, y=getThingPos(item.uid).y, z=getThingPos(item.uid).z})

end

return TRUE

end

 

É isso ai parceiro, não precisa mudar nada, e esse eu testei, ta pronto para ser usado, até mais.

bruno333B
03 de março de 2011 às 19:18

no caso teria como por uma msg caso o player n for de guild?

tipo assim (Somente Membros de guild passa nessa porta!)

 

obrigado ai mais uma vez !

03 de março de 2011 às 19:28

Claro parceiro:

 

function onUse(cid, item)

 

if getPlayerGuildId(cid) == 0 then

doPlayerSendCancel(cid, "Você não pode entrar nesta porta.")

return FALSE

else

return doTelPlayer(cid, item)

end

end

 

function doTelPlayer(cid, item)

 

if getPlayerPosition(cid).x > getThingPos(item.uid).x then

doTeleportThing(cid, {x=getThingPos(item.uid).x - 1, y=getThingPos(item.uid).y, z=getThingPos(item.uid).z})

elseif getPlayerPosition(cid).x < getThingPos(item.uid).x then

doTeleportThing(cid, {x=getThingPos(item.uid).x + 1, y=getThingPos(item.uid).y, z=getThingPos(item.uid).z})

end

return TRUE

end

DaNDaNrOxXD
05 de março de 2011 às 11:03

Provavelmente resolvido, o usuário não voltou para dizer. Caso ainda não, me mande um e-mail (daniel@xtibia.com) que eu abro o tópico

 

Abraços