Ir para conteúdo
  • Cadastre-se

(Resolvido)[ PEDIDO ] Portinhas Por profissão


Ir para solução Resolvido por joadson,

Posts Recomendados

Queria uma script com que só possa passar tal profissão pelas portas . igual as portas do começo da Poi em alguns mapas. 

 

Só que ao invés de criar 4 portas seriam apenas 3 .. Ficariam assim

 

1 Portinha para Elite knight 

1 Portinha para Royal Paladin

1 Portinha para Elder Druid e Master Sorcerer 

 

 

Essas portinhas ficariam no final da Quest para cara qual entrar em sua determinada porta e pegar seus itens 

Editado por igorcbc (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Bom, já tem tópico com isso, mas vou tentar te ensinar.
Data/actions e abre seu action.xml

 

<action actionid="8651;8652;8653;8654" event="script" value="portavocation.lua"/>


 

Agora vai em actions/scripts e crie um arquivo com portavocatoin.lua e cole isso dentro:

 function onUse(cid, item, topos)

        local doors = {
                [8651] = {vocation = {1, 5}, messageFail = "Desculpe, voce precisa ser um Sorcerer ou Master Sorcerer para passar."},
                [8652] = {vocation = {2, 6}, messageFail = "Desculpe, voce precisa ser um Druid ou Elder Druid para passar."},
                [8653] = {vocation = {3, 7}, messageFail = "Desculpe, voce precisa ser um Paladin ou Royal Paladin para passar."},
                [8654] = {vocation = {4, 8}, messageFail = "Desculpe, voce precisa ser um Knight ou Elite Knight para passar."},
        }
 
        if not(isInArray(doors[item.actionid].vocation, getPlayerVocation(cid))) then
                return doPlayerSendCancel(cid, doors[item.actionid].messageFail)
        end
 
        doTeleportThing(cid, topos, TRUE)
        return true
end

 



Se for fazer a porta para elite knight você vai usar no remers (editor do mapa) a action na porta com id de: 8654 (por ser um knight).
Script original do Kimoszin e editado por mim.

Feliz daquele que ensina o que sabe, e aprende o que ensina.

 

               

star-wars-animated-gif-23.gif

Link para o post
Compartilhar em outros sites
  • 3 weeks later...

Não entendi muito amigo  no caso eu queria apenas 3 portas uma Para Mage , 1 Kina e outra para palla 

Então meu amigo, isso que ele fez.

                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Link para o post
Compartilhar em outros sites

Então meu amigo, isso que ele fez.

 

 

Sim amigo mais como faço para criar uma unica  porta para Sorcerer ( Master Sorcerer ) e Druid ( Elder Druid ) Para as 2 profissões Entrar por uma unica porta .. Outra este Script não abre e fecha a portinha. o personagem simplesmente passa por cima da porta sem abri-la 

Editado por igorcbc (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
function onUse(cid, item, topos)
        local doors = {
                [88651] = {vocation = {1, 5, 2, 6}, messageFail = "Sorry, you need to be a Sorcerer or Druid to pass."},
                [88653] = {vocation = {3, 7}, messageFail = "Sorry, you need to be a Paladin or Royal Paladin to pass."},
                [88654] = {vocation = {4, 8}, messageFail = "Sorry, you need to be a Knight or Elite Knight to pass."}
        }
 
        if isInArray(doors[item.actionid].vocation, getPlayerVocation(cid)) then
			doTeleportThing(cid, toPosition)
			doTransformItem(item.uid, item.itemid + 1)
		else
            return doPlayerSendCancel(cid, doors[item.actionid].messageFail)
        end
    return true
end
<action actionid="88651;88653;88654" event="script" value="portavocation.lua"/>

EQD4Qy4.gif

Link para o post
Compartilhar em outros sites
function onUse(cid, item, topos)
        local doors = {
                [88651] = {vocation = {1, 5, 2, 6}, messageFail = "Sorry, you need to be a Sorcerer or Druid to pass."},
                [88653] = {vocation = {3, 7}, messageFail = "Sorry, you need to be a Paladin or Royal Paladin to pass."},
                [88654] = {vocation = {4, 8}, messageFail = "Sorry, you need to be a Knight or Elite Knight to pass."}
        }
 
        if isInArray(doors[item.actionid].vocation, getPlayerVocation(cid)) then
			doTeleportThing(cid, toPosition)
			doTransformItem(item.uid, item.itemid + 1)
		else
            return doPlayerSendCancel(cid, doors[item.actionid].messageFail)
        end
    return true
end
<action actionid="88651;88653;88654" event="script" value="portavocation.lua"/>

Amigo a porta fala que esta Locked agora e apresenta o seguinte erro 

 

 

[01/02/2015 21:43:59] [Error - Action Interface] 
[01/02/2015 21:43:59] data/actions/scripts/Portasquestvip.lua:onUse
[01/02/2015 21:43:59] Description: 
[01/02/2015 21:43:59] attempt to index a nil value
[01/02/2015 21:43:59] stack traceback:
[01/02/2015 21:43:59] [C]: in function 'doTeleportThing'
[01/02/2015 21:43:59] data/actions/scripts/Portasquestvip.lua:9: in function <data/actions/scripts/Portasquestvip.lua:1>
Link para o post
Compartilhar em outros sites
function onUse(cid, item, topos)
        local doors = {
                [88651] = {vocation = {1, 5, 2, 6}, messageFail = "Sorry, you need to be a Sorcerer or Druid to pass."},
                [88653] = {vocation = {3, 7}, messageFail = "Sorry, you need to be a Paladin or Royal Paladin to pass."},
                [88654] = {vocation = {4, 8}, messageFail = "Sorry, you need to be a Knight or Elite Knight to pass."}
        }
 
        if isInArray(doors[item.actionid].vocation, getPlayerVocation(cid)) then
			doTeleportThing(cid, toPosition, true)
			doTransformItem(item.uid, item.itemid + 1)
		else
            return doPlayerSendCancel(cid, doors[item.actionid].messageFail)
        end
    return true
end

EQD4Qy4.gif

Link para o post
Compartilhar em outros sites


function onUse(cid, item, topos)
        local doors = {
                [88651] = {vocation = {1, 5, 2, 6}, messageFail = "Sorry, you need to be a Sorcerer or Druid to pass."},
                [88653] = {vocation = {3, 7}, messageFail = "Sorry, you need to be a Paladin or Royal Paladin to pass."},
                [88654] = {vocation = {4, 8}, messageFail = "Sorry, you need to be a Knight or Elite Knight to pass."}
        }
 
        if isInArray(doors[item.actionid].vocation, getPlayerVocation(cid)) then
			doTeleportThing(cid, toPosition, true)
			doTransformItem(item.uid, item.itemid + 1)
		else
            return doPlayerSendCancel(cid, doors[item.actionid].messageFail)
        end
    return true
end

 

 

amigo , Este script ele não passa pela portinha ela fala que esta locked . o script do nosso amigo la de cima ele passa pelo porta só que ao invés dele abrir a porta ele passa por cima dela . sem abrir ou fechar  e ainda continua o erro    .. Tava fuçando e vi que se eu trocar estar parte  Onde esta escrito Toposition por ( TOPOS) a portinha abre e fecha quando o char passa , mais o problema é que ao ficar no meio da porta se alguém der use ela ira trocar de porta automaticamente bugando a mesma ---   

 

 

doTeleportThing(cid, toPosition, true) ---

 

doTeleportThing(cid, Topos, true)

 

[01/02/2015 23:16:50] [Error - Action Interface] 

[01/02/2015 23:16:50] data/actions/scripts/Portasquestvip.lua:on Use
[01/02/2015 23:16:50] Description: 
[01/02/2015 23:16:50] attempt to index a nil value
[01/02/2015 23:16:50] stack traceback:
[01/02/2015 23:16:50] [C]: in function 'doTeleportThing'
[01/02/2015 23:16:50] data/actions/scripts/Portasquestvip.lua:9: in function <data/actions/scripts/Portasquestvip.lua:1>
Editado por igorcbc (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Aqui, tente esse...

vá em action/script e crie um script chamado pdoor.lua e coloque isso dentro

function onUse(cid, item, frompos, item2, topos)
reqvoc = getPlayerVocation(cid)
if item.uid == 8200 then  -- mude para 8201 se quando for usar o mesmo script para outra vocação e 8203....
if reqvoc == 3 or recvoc == 7 then -- Aqui é o id da vocação, 3 é paladin e 7 é royal
pos = getPlayerPosition(cid)

if pos.x == topos.x then
if pos.y < topos.y then
pos.y = topos.y + 1
else
pos.y = topos.y - 1
end
elseif pos.y == topos.y then
if pos.x < topos.x then
pos.x = topos.x + 1
else
pos.x = topos.x - 1
end
else
doPlayerSendTextMessage(cid,22,'Stand in front of the door.')
return 1
end

doTeleportThing(cid,pos)
doSendMagicEffect(topos,12)
else
doPlayerSendTextMessage(cid,22,'Somente Paladins entram aqui.')   -- Mensagem
end
return 1
else
return 0
end
end

e em action,xml coloque
<action uniqueid="8200" script="pdoor.lua" /> PS: quando for criar outra voc, mude o uniqueID aqui tbm, coloque o mesmo do pdoor.lua

 

feito isso é só colocar actionID 8200, nas portas de paladin.
 

Te ajudei?
Se você achar que eu mereço, me dê uma "rep+" e selecione meu post como "melhor resposta"

 

Skype: JoadsonAion

Link para o post
Compartilhar em outros sites

Aqui, tente esse...

vá em action/script e crie um script chamado pdoor.lua e coloque isso dentro

function onUse(cid, item, frompos, item2, topos)
reqvoc = getPlayerVocation(cid)
if item.uid == 8200 then  -- mude para 8201 se quando for usar o mesmo script para outra vocação e 8203....
if reqvoc == 3 or recvoc == 7 then -- Aqui é o id da vocação, 3 é paladin e 7 é royal
pos = getPlayerPosition(cid)

if pos.x == topos.x then
if pos.y < topos.y then
pos.y = topos.y + 1
else
pos.y = topos.y - 1
end
elseif pos.y == topos.y then
if pos.x < topos.x then
pos.x = topos.x + 1
else
pos.x = topos.x - 1
end
else
doPlayerSendTextMessage(cid,22,'Stand in front of the door.')
return 1
end

doTeleportThing(cid,pos)
doSendMagicEffect(topos,12)
else
doPlayerSendTextMessage(cid,22,'Somente Paladins entram aqui.')   -- Mensagem
end
return 1
else
return 0
end
end

e em action,xml coloque

<action uniqueid="8200" script="pdoor.lua" /> PS: quando for criar outra voc, mude o uniqueID aqui tbm, coloque o mesmo do pdoor.lua

 

feito isso é só colocar actionID 8200, nas portas de paladin.

 

 

Amigo este script O personagem não consegui abrir a porta apenas o GOD . e mesmo assim ele se teletransporta para frente da porta ao invés de passar por ela '-'  

 

Edit : Amigo o script ele teleporta o Jogador a frente da porta , pode ser assim ja que não consigo do jeito que quero o problema é que ao tentar colocar uma unica porta para Elder druid e Master Sorcerer o Script da erro . ! 

Editado por igorcbc (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Solução

Qual é o erro que dá?
é só você mudar os numero das vocações

Te ajudei?
Se você achar que eu mereço, me dê uma "rep+" e selecione meu post como "melhor resposta"

 

Skype: JoadsonAion

Link para o post
Compartilhar em outros sites

Qual é o erro que dá?

é só você mudar os numero das vocações

Ja consegui arrumar é que eu iria colocar Elder Druid e Master Sorcerer numa mesma porta . dai eu fucei olhei bem e é so trocar a parte que ta   if reqvoc == 3 or recvoc == 7 then 

 

Para if reqvoc == 5 or reqvoc == 6 then     Se não mudar o Segundo Recvoc para ---> Recqvoc Não ira funcionar .. Vlw por ter ajudado Rep +

Editado por igorcbc (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo