Tio Gordo 8 #1 Postado 8 Agosto, 2007 (editado) 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 Abraços! Editado 15 Dezembro, 2008 por Tio Gordo Compartilhar este post Link para o post Compartilhar em outros sites
Magus 2 #2 Postado 9 Agosto, 2007 Aprovado. Abraços, Magus. Compartilhar este post Link para o post Compartilhar em outros sites
danz 0 #3 Postado 11 Agosto, 2007 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 #4 Postado 18 Agosto, 2007 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 #5 Postado 18 Agosto, 2007 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 #6 Postado 19 Agosto, 2007 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 #7 Postado 19 Agosto, 2007 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 #8 Postado 26 Agosto, 2007 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 #9 Postado 11 Abril, 2008 Muito bom Tutorial perfeito Aprovado! Compartilhar este post Link para o post Compartilhar em outros sites
Fadi 0 #10 Postado 11 Abril, 2008 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 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 #11 Postado 11 Abril, 2008 kra adorei, agora vo poder fazer um npc de promotion pra cada voc ³¹²³¹²³¹² 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 #12 Postado 17 Abril, 2008 @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 #13 Postado 18 Abril, 2008 Cola isso onde ?... Compartilhar este post Link para o post Compartilhar em outros sites
Asterzhart 0 #14 Postado 19 Abril, 2008 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 #15 Postado 19 Abril, 2008 MTO BOM !!! adorei entendi direitinho !!! VLWWWWWWWWWW FLWWWWWWW Compartilhar este post Link para o post Compartilhar em outros sites
netoruna 0 #16 Postado 22 Abril, 2008 onde eu coloco isso ? em moviments? Compartilhar este post Link para o post Compartilhar em outros sites
Skull'Drag 0 #17 Postado 22 Abril, 2008 Boa Tio Gordo!!! Parabens!! Doe Ot$ Compartilhar este post Link para o post Compartilhar em outros sites
skyline3005 0 #18 Postado 22 Abril, 2008 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 #19 Postado 1 Maio, 2008 Muito Bom cara !! Compartilhar este post Link para o post Compartilhar em outros sites
joeppl 0 #20 Postado 2 Maio, 2008 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. Compartilhar este post Link para o post Compartilhar em outros sites