Ir para conteúdo
Entre para seguir isso  
Tio Gordo

Porta de Vocação

Recommended Posts

Tio Gordo    8
Tio Gordo

Olá,

estarei ensinando a como criar uma porta que apenas determinada vocação poderá passar.

 

Vamos ao código:

 

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

 

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

playerpos = getPlayerPosition(cid)

playervoc = getPlayerVocation(cid)

 

if item.uid == (id da porta) and doorpos.x == POSX and doorpos.y == POSY and doorpos.z == POSZ then

if playervoc == (voc necessaria) then

doTeleportThing(cid,doorpos)

elseif playervoc == VOCAÇÃO playervoc == VOCAÇÃO playervoc == VOCAÇÃO then <---vocs erradas

doPlayerSendTextMessage(cid,22,"Apenas VOCAÇÃO PERMITIDA podem passar.")

end

end

return 1

end[/b]

 

Agora vamos desenrolar esses códigos:

 

Onde está:

Vermelho: significa que o código irá pegar a posição do player.

Azul: significa que o código irá pegar a vocação do player.

id da porta: o nome já diz tudo, é o ID da porta que você usou.

POSX: é a posição X da porta no seu map editor.

POSY: é a posição Y da porta no seu map editor.

POSZ: é a posição Z da porta no seu map editor.

voc necessaria: é a vocação que o player terá de ter para passar na porta:

1 - Sorcerer

2 - Druid

3 - Paladin

4 - Knight

VOCAÇÃO: você deve colocar em todos os lugares em que está escrito VOCAÇÃO, as outras vocações que não serão autorizadas passar, por exemplo:

Somente Sorcerers poderão passar, então aonde está escrito VOCAÇÃO deverei escrever 2 , na outra 3 e no outro 4.

VOCAÇÃO PERMITIDA: é a vocação permitida que aparecerá na mensagem caso o player não seja desta determinada vocação.

Se apenas os sorcerers poderão passar,no lugar de VOCAÇÃO PERMITIDA escreva Sorcerer.

 

Esse arquivo deve ser salvo na pasta actions/scripts de seu OTServer.

 

Pronto, é isso ae!

Espero ter ajudado a vocês pensarem em novas quests smile.gif

Abraços!

Editado por Tio Gordo

Compartilhar este post


Link para o post
Compartilhar em outros sites
Magus    2
Magus

Aprovado.

 

Abraços,

Magus.

Compartilhar este post


Link para o post
Compartilhar em outros sites
danz    0
danz

Mtu interessante cara vou fazer uma quest balanceada pra cada vocação x]

brigadao!

arbçs

 

Mtu interessante cara vou fazer uma quest balanceada pra cada vocação x]

brigadao!

arbçs

 

Mtu interessante cara vou fazer uma quest balanceada pra cada vocação x]

brigadao!

arbçs

Compartilhar este post


Link para o post
Compartilhar em outros sites
Arch    0
Arch

hum

interessante

me explica soh uma coisa

nesse script

 

oq acontece?

 

eu aperto e soh abre se eu for akela voc?

 

 

eh q se for algo do tipo

teleport

e talz

nem vale apena saka...

Compartilhar este post


Link para o post
Compartilhar em outros sites
albuquerque    0
albuquerque

Mto bom ...

tipo nessa parte aki oh

elseif playervoc == VOCAÇÃO playervoc == VOCAÇÃO playervoc == VOCAÇÃO then <---vocs erradas

eu coloco "sorcerer, knight, paladin, druid" ou poe "1, 2. 3 e 4" ?

Compartilhar este post


Link para o post
Compartilhar em outros sites
giovanni-gl    0
giovanni-gl

Topico ta legal, mas me fala uma coisa onde eu guardo o arquivo com esses códigos?

 

Vlw ae

Compartilhar este post


Link para o post
Compartilhar em outros sites
_RIBEIRO_    0
_RIBEIRO_

Cara eu achei bonsinho até, da pra fazer umas quest bem ROX ! =]

~~Aprovado~~

Compartilhar este post


Link para o post
Compartilhar em outros sites
Loopback    0
Loopback

Ae agora n vo presisa mais coloca npc que so vende spells pra certo vocação só coloca uma porta antes XD

 

Vlw ai xD

 

@Topic

Traduzido, Exelente.. continue assim xD

 

 

Aprovado ;D </span>

 

 

 

 

<span style="color:#00FFFF">ed.

Compartilhar este post


Link para o post
Compartilhar em outros sites
myragofer    0
myragofer

Muito bom

Tutorial perfeito

 

Aprovado!

Compartilhar este post


Link para o post
Compartilhar em outros sites
Fadi    0
Fadi

Esse script é ABSULUTAMENTE INÚTIL.

Ele verifica um monte de coisa q não precisa, faz um monte de frescura, e no fim soh oq se percebe a respeito dele é q ele tah errado ¬¬

 

Vou começar a explicar oq eu quero dizer:

 

 elseif playervoc == VOCAÇÃO playervoc == VOCAÇÃO playervoc == VOCAÇÃO then <---vocs erradas

Pra q isso???? LOL era soh botar else q o efeito era o mesmo. Frescura pra parecer algo dificil.E ainda: mesmo sendo frescura, tá errado. Cadê o "and" dpois de cada igualdade?

 

 

 if item.uid == (id da porta)

Errado, não é o id da porta, é o UNIQUE ID, q é editado no map editor,diferente de ids q valem pra todos os items dakele tipo.

 

 

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

Ou seja, com isso vc diz q 0+0 = 0. ¬¬ Pra q vc renomeia o frompos? O efeito com ele renomeado e com ele normal é o mesmo. Outra enxeção de linguiça.

 

 

 if item.uid == (id da porta) and doorpos.x == POSX and doorpos.y == POSY and doorpos.z == POSZ then

Essa parte em si é contraditória: Se vc vai usar um uniqueid(uid), ele tem uma posição única, não tem porquê colocar esse "posx", "posy" e "posz". O item é identificado de qlqr forma.

 

 

end
return 1
end

Pra q o return 1??? Nem uma função isso num é, e provavelmente qm fez esse script num sabe pra q serve o return.

 

playerpos = getPlayerPosition(cid)

Tá, tudo bem isso. Mas só me diz uma coisa: ONDE vc usou isso no script??? ¬¬

 

--------------------------------------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------------------------------------

 

 

Agora, vou mostrar um script menor, que FUNCIONA(diferente desse), e q não tem nada de frescura no meio.

 

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

[color=black]playervoc = getPlayerVocation(cid)[/color]
[color=Red]vocation = 1
[/color]if playervoc == vocation or access <= 3 then
doTeleportThing(cid,frompos)
else
doPlayerSendTextMessage(cid,22,"[color=Blue]Apenas knights podem passar.[/color]")
end

vocation é a vocação, substitua 1(numero de knight) pelo numero de cada vocação.

Apenas knights podem passar. <-- Frase q aparece se o player não for da vocação necessária, nesse caso é knight, pode usar qlqr outra :P

 

Só isso já substitui, e ainda acrescenta q gm pode entrar em qlqr dessas portas sem ter a vocation necessária.

 

Apenas coloque no actions.xml com um uid, q vc edita no map editor:

<action uniqueid="[u]SEU UNIQUEID DE PORTA AQUI[/u]" script="[u]NOME DO SEU SCRIPT[/u].lua"/>

 

ps: não percebi q estava postando em um tópico antigo, vou reportar o kra q reviveu o tópico

Compartilhar este post


Link para o post
Compartilhar em outros sites
mblackheart    0
mblackheart

kra adorei, agora vo poder fazer um npc de promotion pra cada voc :D³¹²³¹²³¹²

vlw meu te amo, mais um trabalho bom = eu usando tua fan bar

Compartilhar este post


Link para o post
Compartilhar em outros sites
Tio Gordo    8
Tio Gordo

@Obrigado galera ;)

 

@Fadi

Bem... seu código também funciona, gosto de Scripts pois eles são codificados e facilmente modificados... cada SCRIPTER utiliza a forma que preferir :)

 

E quanto a vocação 1 ser a de knight, você errou no seu script, 1 -> Sorcerer / 2-> Druid / 3 -> Paladin / 4 -> Knight (multiplique por 2 cada um e verifique as promotions normais)...

 

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites
Gareon    0
Gareon

Cola isso onde ?...

Compartilhar este post


Link para o post
Compartilhar em outros sites
Asterzhart    0
Asterzhart

Vixiii cara mto loko esse tuto heim?

Gostei pakas, fze uma quest soh pra kina, mto loko!

Vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites
felpozo    0
felpozo

MTO BOM !!!

adorei entendi direitinho !!!

VLWWWWWWWWWW

 

FLWWWWWWW

Compartilhar este post


Link para o post
Compartilhar em outros sites
netoruna    0
netoruna

onde eu coloco isso ?

em moviments?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Skull'Drag    0
Skull'Drag

Boa Tio Gordo!!!

 

Parabens!!

 

Doe Ot$

Compartilhar este post


Link para o post
Compartilhar em outros sites
skyline3005    0
skyline3005

Não gostei muito, e você esqueceu de colocar onde salvar o mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Striker_Sky    0
Striker_Sky

Muito Bom cara !!

Compartilhar este post


Link para o post
Compartilhar em outros sites
joeppl    0
joeppl

E lembrando que cada vocação é um numero.

 

Voce deve ver o numero no "Vocations.xml"

 

Em geral vem assim :

 

0 = No vocation

1 = Sorcerer

2 = Druid

3 = Paladin

4 = Knight

5 = Master Sorcerer

6 = Elder Druid

7 = Royal Paladin

8 = Elite Knight

 

Mas isso é em geral, nao significa que o seu OT vai ser assim. :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×