Ir para conteúdo
  • 0

Porta que somente VIP passam.


markim1986

Pergunta

Nome do Script: Porta que somente VIP passam.

Tipo do Script: Nao sei!

Versão Utilizada: 8.60

Servidor Utilizado: TheLostServer

Nível de Experiência: Iniciante

Informações Extras: --

 

Pessoal to usando o sistema de VIP do MOCK e estou querendo colocar uma porta onde somente os VIPS passem, estou tentendo com o script do Vodkart segue abaixo:

 

 

function onUse(cid, item, frompos, item2, topos)

if getPlayerStorageValue(cid, 13540) - os.time() <= 0 then

return doCreatureSay(cid, "Você não possui Vip Access.", TALKTYPE_ORANGE_1)

end

doTransformItem(item.uid, item.itemid + 1)

playerpos = getPlayerPosition(cid)

doorpos = {x = frompos.x, y = frompos.y, z = frompos.z, stackpos = 253}

if playerpos.y == doorpos.y + 1 and playerpos.x == doorpos.x then

doMoveCreature(cid, 0)

elseif playerpos.x == doorpos.x - 1 and playerpos.y == doorpos.y then

doMoveCreature(cid, 1)

elseif playerpos.y == doorpos.y - 1 and playerpos.x == doorpos.x then

doMoveCreature(cid, 2)

elseif playerpos.y == doorpos.y and playerpos.x == doorpos.x + 1 then

doMoveCreature(cid, 3)

elseif playerpos.x == doorpos.x + 1 and playerpos.y == doorpos.y - 1 then

doMoveCreature(cid, 4)

elseif playerpos.x == doorpos.x - 1 and playerpos.y == doorpos.y - 1 then

doMoveCreature(cid, 5)

elseif playerpos.x == doorpos.x + 1 and playerpos.y == doorpos.y + 1 then

doMoveCreature(cid, 6)

elseif playerpos.x == doorpos.x - 1 and playerpos.y == doorpos.y + 1 then

doMoveCreature(cid, 7)

end

return TRUE

end

 

 

e em action.xml

<action actionid="2075" script="vipdoorsystem.lua"/>

 

O script funciona 100% so que eu nao consigo abrir a porta, fala que somente os vips possam abrir, e o player é VIP, acho que o erro esta relacionado ao storege de meu VIP, que nao sei como achar.

Uso esse sistema - http://www.xtibia.co...em-by-mock-100/

Eu sou muito leigo, mas eu vi que poderia ser essa variavel - 55555, mas ainda sim colocando isso nesta linha:

if getPlayerStorageValue(cid, 55555) - os.time() <= 0 then

Ainda sim nao consigo abrir a porta!

Agradeço desde ja!

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

tenta assim..

 

 

function onUse(cid, item, frompos, item2, topos)

if vip.hasVip(cid) then

return doCreatureSay(cid, "Você não possui Vip Access.", TALKTYPE_ORANGE_1)

end

doTransformItem(item.uid, item.itemid + 1)

local dir = getDirectionTo(getPlayerPosition(cid), fromPos)

doMoveCreature(cid, dir)

doMoveCreature(cid, dir)

doTransformItem(item.uid, item.itemid-1)

return TRUE

end

 

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

  • 0

tenta assim..

 

 

function onUse(cid, item, frompos, item2, topos)

if vip.hasVip(cid) then

return doCreatureSay(cid, "Você não possui Vip Access.", TALKTYPE_ORANGE_1)

end

doTransformItem(item.uid, item.itemid + 1)

local dir = getDirectionTo(getPlayerPosition(cid), fromPos)

doMoveCreature(cid, dir)

doMoveCreature(cid, dir)

doTransformItem(item.uid, item.itemid-1)

return TRUE

end

 

 

 

Nao deu cara, ainda fala que preciso ser vip para entrar!

Desde ja agredeço pela ajuda!

Link para o comentário
Compartilhar em outros sites

  • 0

mano entao tu mudo algu no script de vip ali q tu passo o.O segundo os proprios exemplos do topico, eh assim q ferifica VIP.. ;/ ou vc n ta colocando vip certo no player...

 

edit: tenta assim..

troca ali..

if vip.hasVip(cid) then

por...

if isPlayerVip(cid) then

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

  • 0

mano entao tu mudo algu no script de vip ali q tu passo o.O segundo os proprios exemplos do topico, eh assim q ferifica VIP.. ;/ ou vc n ta colocando vip certo no player...

 

edit: tenta assim..

troca ali..

if vip.hasVip(cid) then

por...

if isPlayerVip(cid) then

 

Cara tbm nao pegou, da esse erro:

00:52 The door seems to be sealed against unwanted intruders.

Tudo que te passei no post acima ta certinho.

 

Poié cara nao é a primeira vez que tento fazer um script relacionado a meu sistema de VIP e nao consigo, certa vez eu pedi um script para os player que fosem vips ganhasem 50% de exp ai fico uns 3 caras tentando fazer o script dar certo, ate que um cara conseguiu.

Segue o script abaixo:

function onLogin(cid)

local rate = 1.5 -- 50%
local config = {
vip = "Parabens, agora você tem "..((rate - 1)*100).."% a mais de experiencia, entre em nosso site e descubra como voce pode aumentar seus dias VIPS, acesse - , bom jogo!!!",
notvip = "Tornesse vip e ganhe "..((rate - 1)*100).."% a mais de experiencia!",
}

if vip.hasVip(cid) == FALSE then 
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.notvip)
else
doPlayerSetExperienceRate(cid, rate)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.vip)
end
return TRUE
end

 

Somente esse script o cara conseguiu adptar para mim, derrepente com esse script ai voce consegue ver algo de minha VIP que possa lhe ajudar!

Se tiver algo que eu possa esta postando aki de meu server que possa te ajudar arrumar esse script ai pra mim, voce me diz por favor.

 

Grato, e um Feliz Natal!

Link para o comentário
Compartilhar em outros sites

  • 0

mano vo nem comenta...

coloca assim..

if vip.hasVip(cid) == FALSE then

eu so muito burro sem + drunk.gif

 

 

kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk

Manu agora a porta ate abriu ;)

mas o char nao passa, hehe..

Deixei o script assim, voce mando adicionar ou substituir ai linha?

function onUse(cid, item, frompos, item2, topos)
if vip.hasVip(cid) == FALSE then
return doCreatureSay(cid, "Você não possui Vip Access.", TALKTYPE_ORANGE_1)
end
doTransformItem(item.uid, item.itemid + 1)
local dir = getDirectionTo(getPlayerPosition(cid), fromPos)
doMoveCreature(cid, dir)
doMoveCreature(cid, dir)
doTransformItem(item.uid, item.itemid-1)
return TRUE
end

 

 

e depois eu dei uma relogada pra ver se passava, vc nao vai acreditar, a porta viro uma pedra o.O

Olha ai a imagem:

pedrai.png

 

Ai fui ver no topic origianal, tinha um piao com o mesmo problema da pedra, ai o vodkart mando ele usar esse script

function onUse(cid, item, frompos, item2, topos)

local config = {
porta_fechada = 5748, -- id da porta fechada
porta_aberta = 5749 -- id da porta aberta
}

vipstatus = getPlayerStorageValue(cid, 13540) - os.time() <= 0

if vipstatus ~= TRUE then
if item.itemid == config.porta_fechada then
doTransformItem(item.uid,config.porta_aberta)
elseif item.itemid == config.porta_aberta then
doTransformItem(item.uid,config.porta_fechada)
end
else
doCreatureSay(cid, "Você não possui Vip Access.", TALKTYPE_ORANGE_1)
end
return TRUE
end

 

Agora é com você. esse script eu ja usei e tbm nao pegou, axo que voce tava no caminho certo!

Link para o comentário
Compartilhar em outros sites

  • 0

tpw entao os ids das portas sao um pouco diferentes..

function onUse(cid, item, frompos, item2, topos)
local idPortaAberta = 2222
local idPortaFechada = 3333
if vip.hasVip(cid) == FALSE then
return doCreatureSay(cid, "Você não possui Vip Access.", TALKTYPE_ORANGE_1)
end
doTransformItem(item.uid, idPortaAberta)
local dir = getDirectionTo(getPlayerPosition(cid), fromPos)
doMoveCreature(cid, dir)
doMoveCreature(cid, dir)
doTransformItem(item.uid, idPortaFechada)
return TRUE
end

tenta assim entao.. dai coloca ali o id da porta fechada e o id da porta aberta q combina com a fechada.. ;x

Link para o comentário
Compartilhar em outros sites

  • 0

tpw entao os ids das portas sao um pouco diferentes..

function onUse(cid, item, frompos, item2, topos)
local idPortaAberta = 2222
local idPortaFechada = 3333
if vip.hasVip(cid) == FALSE then
return doCreatureSay(cid, "Você não possui Vip Access.", TALKTYPE_ORANGE_1)
end
doTransformItem(item.uid, idPortaAberta)
local dir = getDirectionTo(getPlayerPosition(cid), fromPos)
doMoveCreature(cid, dir)
doMoveCreature(cid, dir)
doTransformItem(item.uid, idPortaFechada)
return TRUE
end

tenta assim entao.. dai coloca ali o id da porta fechada e o id da porta aberta q combina com a fechada.. ;x

 

Ai cara voce esta quase, a porta abriu, somente os vips estao passando, porem ela ta com um bug, o player vip pode simplismente abrir ela e deixar aberta deixando os chares free passarem, acredito que seja esse erro que esta dando no console.

[25/12/2012 17:46:29] [Error - Action Interface]
[25/12/2012 17:46:29] data/actions/scripts/vipdoorsystem.lua:onUse
[25/12/2012 17:46:29] Description:
[25/12/2012 17:46:29] data/lib/032-position.lua:17: attempt to index local 'pos2' (a nil value)
[25/12/2012 17:46:29] stack traceback:
[25/12/2012 17:46:29]  data/lib/032-position.lua:17: in function 'getDirectionTo'
[25/12/2012 17:46:29]  data/actions/scripts/vipdoorsystem.lua:8: in function <data/actions/scripts/vipdoorsystem.lua:1>

 

E quando o player abre a porta da essa mensagem

18:01 The door seems to be sealed against unwanted intruders.

 

Abraços!

Link para o comentário
Compartilhar em outros sites

  • 0

fromPos

troca para..

frompos

fui no automatico.. normalmenta ta com maiuculo kk

 

sobre a msg q da.. como flei, achu q tem outra action funcionando nesse porta tb... ;x

Link para o comentário
Compartilhar em outros sites

  • 0

fromPos

troca para..

frompos

fui no automatico.. normalmenta ta com maiuculo kk

 

sobre a msg q da.. como flei, achu q tem outra action funcionando nesse porta tb... ;x

 

 

Hum vou fazer o test com outra porta, mudei o que vc falou, ainda sim esta dando este erro:

[25/12/2012 18:24:08] [Error - Action Interface]
[25/12/2012 18:24:08] data/actions/scripts/vipdoorsystem.lua:onUse
[25/12/2012 18:24:08] Description:
[25/12/2012 18:24:08] data/lib/032-position.lua:17: attempt to index local 'pos2' (a nil value)
[25/12/2012 18:24:08] stack traceback:
[25/12/2012 18:24:08]  data/lib/032-position.lua:17: in function 'getDirectionTo'
[25/12/2012 18:24:08]  data/actions/scripts/vipdoorsystem.lua:8: in function <data/actions/scripts/vipdoorsystem.lua:1>

;)

Link para o comentário
Compartilhar em outros sites

  • 0

não sei se vai dar certo .. mas não custa tentar >.<

 

function onUse(cid, item, frompos, item2, topos)

local idPortaAberta = 2222

local idPortaFechada = 3333

if vip.hasVip(cid) == FALSE then

return doCreatureSay(cid, "Você não possui Vip Access.", TALKTYPE_ORANGE_1)

end

doTransformItem(item.uid, idPortaAberta)

local dir = getPlayerLookDir(cid)

doMoveCreature(cid, dir)

doMoveCreature(cid, dir)

doTransformItem(item.uid, idPortaFechada)

return TRUE

end

 

Link para o comentário
Compartilhar em outros sites

  • 0

/\

problema eh se o player clica na porta olhando pro lado por exemplo.. ;x

 

@topic

mano tas usando exatamente aquele script ali de cima? o.O antes blz, o frompos tava errado mas agora... o.O

Link para o comentário
Compartilhar em outros sites

  • 0

não sei se vai dar certo .. mas não custa tentar >.<

 

function onUse(cid, item, frompos, item2, topos)

local idPortaAberta = 2222

local idPortaFechada = 3333

if vip.hasVip(cid) == FALSE then

return doCreatureSay(cid, "Você não possui Vip Access.", TALKTYPE_ORANGE_1)

end

doTransformItem(item.uid, idPortaAberta)

local dir = getPlayerLookDir(cid)

doMoveCreature(cid, dir)

doMoveCreature(cid, dir)

doTransformItem(item.uid, idPortaFechada)

return TRUE

end

 

 

Cara ja ta melhor ;)

O lance é o seguinte foi o que o amigo falo, quando eu entro na porta ele dar 2 passos, e se o player estiver olhando pra esquerda ele da dois passos pra esquerda, mas ja é um bom jeito ;)

Segue o erro que ta dando

[25/12/2012 19:52:21] [Error - Action Interface]
[25/12/2012 19:52:21] data/actions/scripts/vipdoorsystem.lua:onUse
[25/12/2012 19:52:21] Description:
[25/12/2012 19:52:21] (luaDoTransformItem) Item not found

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...