Newtonnotwen 80 Postado Agosto 21, 2012 Share Postado Agosto 21, 2012 (editado) Esse script é um tile que quando pisa ele faz vários efeitos e varias mensagens animadas, os efeitos e as mensagens, como também suas cores (da mensagem), são escolhidas de acordo com seu gosto. Imagem: Vídeo: Em movements.xml adicione: <movevent type="StepIn" actionid="13615" event="script" value="supertile.lua"/> Em data/movements/scripts crie um arquivo.lua nomeie para supertile e adicione: function onStepIn(cid, item, pos) ppos = getCreaturePosition(cid) pos1 = {x=ppos.x-2, y=ppos.y, z=ppos.z} pos2 = {x=ppos.x-2, y=ppos.y-2, z=ppos.z} pos3 = {x=ppos.x-2, y=ppos.y+2, z=ppos.z} pos4 = {x=ppos.x+2, y=ppos.y-2, z=ppos.z} pos5 = {x=ppos.x+2, y=ppos.y+2, z=ppos.z} pos5 = {x=ppos.x, y=ppos.y+2, z=ppos.z} pos6 = {x=ppos.x, y=ppos.y-2, z=ppos.z} pos7 = {x=ppos.x+2, y=ppos.y, z=ppos.z} pos8 = {x=ppos.x+2, y=ppos.y+2, z=ppos.z} if isPlayer(cid) then if item.actionid == 13615 then oi = getPlayerStorageValue(cid,13615) if oi == -1 then doSendMagicEffect(getThingPos(cid), 27) doSendMagicEffect(getThingPos(cid), 28) doSendMagicEffect(getThingPos(cid), 29) doSendMagicEffect(getThingPos(cid), 30) doSendMagicEffect(pos1, 61) doSendMagicEffect(pos2, 61) doSendMagicEffect(pos3, 61) doSendMagicEffect(pos4, 61) doSendMagicEffect(pos5, 61) doSendMagicEffect(pos6, 61) doSendMagicEffect(pos7, 61) doSendMagicEffect(pos8, 61) doSendAnimatedText(pos1,"XTIBIA!", math.random(30,30)) doSendAnimatedText(pos2,"HAIL", math.random(75,75)) doSendAnimatedText(pos8,"oO", math.random(95,95)) doSendAnimatedText(pos4,"RUSH", math.random(05,05)) doSendAnimatedText(pos5,"Lord", math.random(113,113)) doSendAnimatedText(pos6,"hAiL", math.random(90,90)) doSendAnimatedText(pos7,"fire", math.random(145,145)) doSendAnimatedText(pos3,"Lordfire", math.random(150,150)) else end end end end Editando: -Laranja: Efeitos que vão aparecer onde o player pisar (no tile com o action id) -Verde: Efeitos que aparecerão nas posições declaradas -Vermelho: Mensagem que irá aparecer nas posições declaradas -Marrom: Cor das mensagens (/y) Para ver as cores digite com o GOD /y Pode varias de 1 até 256. Ex: /y 1 /y 2 E por ai vai. -Roxo: Creio que seja a parte mais complicada Aqui vai um tutorial: Todas as funções expressas na cor roxa possuem uma base assim: pos5 = {x=ppos.x, y=ppos.y, z=ppos.z} Essa base deve permanecer inalterada, porem primeiro vamos compreende-la: Considere que tile preto localizado no centro da imagem seja o tile com o action id do script. Para que um efeito e uma fala aconteça nesse tile você deve declarar a posição assim: Efeito: doSendMagicEffect(getThingPos(cid), 30) Mensagem: doSendAnimatedText(ppos,"Lordfire", math.random(150,150)) Para todo efeito e mensagem que for declarado para esse tile se usa a parte em roxo, que é a posição que o player pisou, logo depois editando o efeito (em azul), a mensagem (em vermelho) e a cor (em verde). Efeito e mensagem fora da posição do tile, segue aquela base apresentada: pos5 = {x=ppos.x, y=ppos.y, z=ppos.z} Entendendo ela, observe a imagem: Como pôde observar o eixo das ordenadas (y), faz uma contrariedade com o eixo cartesiano matemático, é assim mesmo, o Tibia é especial :-). Não sabe sobre o sistema cartesiano (caso saiba salte esse passo, se não entender volte a ele)? O sistema cartesiano é um sistema matemático feito para determinar posições, esse conteúdo é propriamente restrito ao Tibia, não use ele em provas de matemática, pois se trata de uma contradição com o eixo y). Como ele funciona (do tibia)? Como pôde ter observado na imagem existem 2 linhas imaginarias que se interceptam em um ponto, esse ponto é onde o tile do action id está, considere os valores dessa imagem considerando o seguinte: x = Linha na horizontal (esquerda para direita) y = Linha na vertical (cima para baixo) Assim se quiser uma posição no gráfico, basta pegar os valores de x e y que geram esse grafico. Editando: pos5 = {x=ppos.x, y=ppos.y, z=ppos.z}, caso queira adicionar um efeito no local -3 a esquerda, no eixo das abcissas (x) declare o seguinte: pos5 = {x=ppos.x-3, y=ppos.y, z=ppos.z} -Vermelho: Veja que foi adicionado o valor -3 (a posição de exemplo) -Azul: Observe que foi declarado em x, não em y) -Verde: Note que y não foi alterado Outro exemplo: pos5 = {x=ppos.x, y=ppos.y+5, z=ppos.z} -Vermelho: Veja que foi adicionado o valor -3 (a posição de exemplo) -Azul: Observe que foi declarado em x, não em y) -Verde: Note que y não foi alterado Qual seria a posição do efeito nesse caso? (x+0 e y+5) Adicionando posições em que x e y não se equivalem a zero: Segue a mesma logica que o anterior, observe a imagem: O quadrado expresso em verde se localiza em que posição? Obviamente x = +2 e y = -1, agora basta apenas declarar: pos5 = {x=ppos.x+2, y=ppos.y-1, z=ppos.z} Entendeu? Caso tenha alguma duvida é só perguntar. E o Z? O Z não altere, ele é o "andar". Como adicionar novas posições, efeitos e mensagens? Script original: function onStepIn(cid, item, pos) ppos = getCreaturePosition(cid) pos1 = {x=ppos.x-2, y=ppos.y, z=ppos.z} pos2 = {x=ppos.x-2, y=ppos.y-2, z=ppos.z} pos3 = {x=ppos.x-2, y=ppos.y+2, z=ppos.z} pos4 = {x=ppos.x+2, y=ppos.y-2, z=ppos.z} pos5 = {x=ppos.x+2, y=ppos.y+2, z=ppos.z} pos5 = {x=ppos.x, y=ppos.y+2, z=ppos.z} pos6 = {x=ppos.x, y=ppos.y-2, z=ppos.z} pos7 = {x=ppos.x+2, y=ppos.y, z=ppos.z} pos8 = {x=ppos.x+2, y=ppos.y+2, z=ppos.z} if isPlayer(cid) then if item.actionid == 13615 then oi = getPlayerStorageValue(cid,13615) if oi == -1 then doSendMagicEffect(getThingPos(cid), 27) doSendMagicEffect(getThingPos(cid), 28) doSendMagicEffect(getThingPos(cid), 29) doSendMagicEffect(getThingPos(cid), 30) doSendMagicEffect(pos1, 61) doSendMagicEffect(pos2, 61) doSendMagicEffect(pos3, 61) doSendMagicEffect(pos4, 61) doSendMagicEffect(pos5, 61) doSendMagicEffect(pos6, 61) doSendMagicEffect(pos7, 61) doSendMagicEffect(pos8, 61) doSendAnimatedText(pos1,"XTIBIA!", math.random(30,30)) doSendAnimatedText(pos2,"HAIL", math.random(75,75)) doSendAnimatedText(pos8,"oO", math.random(95,95)) doSendAnimatedText(pos4,"RUSH", math.random(05,05)) doSendAnimatedText(pos5,"Lord", math.random(113,113)) doSendAnimatedText(pos6,"hAiL", math.random(90,90)) doSendAnimatedText(pos7,"fire", math.random(145,145)) doSendAnimatedText(pos3,"Lordfire", math.random(150,150)) else end end end end Copie as partes em verde e adicione logo embaixo, exemplo: function onStepIn(cid, item, pos) ppos = getCreaturePosition(cid) pos1 = {x=ppos.x-2, y=ppos.y, z=ppos.z} pos1 = {x=ppos.x-2, y=ppos.y, z=ppos.z} pos2 = {x=ppos.x-2, y=ppos.y-2, z=ppos.z} pos3 = {x=ppos.x-2, y=ppos.y+2, z=ppos.z} pos4 = {x=ppos.x+2, y=ppos.y-2, z=ppos.z} pos5 = {x=ppos.x+2, y=ppos.y+2, z=ppos.z} pos5 = {x=ppos.x, y=ppos.y+2, z=ppos.z} pos6 = {x=ppos.x, y=ppos.y-2, z=ppos.z} pos7 = {x=ppos.x+2, y=ppos.y, z=ppos.z} pos8 = {x=ppos.x+2, y=ppos.y+2, z=ppos.z} if isPlayer(cid) then if item.actionid == 13615 then oi = getPlayerStorageValue(cid,13615) if oi == -1 then doSendMagicEffect(getThingPos(cid), 27) doSendMagicEffect(getThingPos(cid), 28) doSendMagicEffect(getThingPos(cid), 29) doSendMagicEffect(getThingPos(cid), 30) doSendMagicEffect(pos1, 61) doSendMagicEffect(pos1, 61) doSendMagicEffect(pos2, 61) doSendMagicEffect(pos3, 61) doSendMagicEffect(pos4, 61) doSendMagicEffect(pos5, 61) doSendMagicEffect(pos6, 61) doSendMagicEffect(pos7, 61) doSendMagicEffect(pos8, 61) doSendAnimatedText(pos1,"XTIBIA!", math.random(30,30)) doSendAnimatedText(pos1,"XTIBIA!", math.random(30,30)) doSendAnimatedText(pos2,"HAIL", math.random(75,75)) doSendAnimatedText(pos8,"oO", math.random(95,95)) doSendAnimatedText(pos4,"RUSH", math.random(05,05)) doSendAnimatedText(pos5,"Lord", math.random(113,113)) doSendAnimatedText(pos6,"hAiL", math.random(90,90)) doSendAnimatedText(pos7,"fire", math.random(145,145)) doSendAnimatedText(pos3,"Lordfire", math.random(150,150)) else end end end end -Vermelho: Parte duplicada Agora edite as posições para uma que não exista ainda: function onStepIn(cid, item, pos) ppos = getCreaturePosition(cid) pos1 = {x=ppos.x-2, y=ppos.y, z=ppos.z} pos9 = {x=ppos.x-2, y=ppos.y, z=ppos.z} pos2 = {x=ppos.x-2, y=ppos.y-2, z=ppos.z} pos3 = {x=ppos.x-2, y=ppos.y+2, z=ppos.z} pos4 = {x=ppos.x+2, y=ppos.y-2, z=ppos.z} pos5 = {x=ppos.x+2, y=ppos.y+2, z=ppos.z} pos5 = {x=ppos.x, y=ppos.y+2, z=ppos.z} pos6 = {x=ppos.x, y=ppos.y-2, z=ppos.z} pos7 = {x=ppos.x+2, y=ppos.y, z=ppos.z} pos8 = {x=ppos.x+2, y=ppos.y+2, z=ppos.z} if isPlayer(cid) then if item.actionid == 13615 then oi = getPlayerStorageValue(cid,13615) if oi == -1 then doSendMagicEffect(getThingPos(cid), 27) doSendMagicEffect(getThingPos(cid), 28) doSendMagicEffect(getThingPos(cid), 29) doSendMagicEffect(getThingPos(cid), 30) doSendMagicEffect(pos1, 61) doSendMagicEffect(pos9, 61) doSendMagicEffect(pos2, 61) doSendMagicEffect(pos3, 61) doSendMagicEffect(pos4, 61) doSendMagicEffect(pos5, 61) doSendMagicEffect(pos6, 61) doSendMagicEffect(pos7, 61) doSendMagicEffect(pos8, 61) doSendAnimatedText(pos1,"XTIBIA!", math.random(30,30)) doSendAnimatedText(pos9,"XTIBIA!", math.random(30,30)) doSendAnimatedText(pos2,"HAIL", math.random(75,75)) doSendAnimatedText(pos8,"oO", math.random(95,95)) doSendAnimatedText(pos4,"RUSH", math.random(05,05)) doSendAnimatedText(pos5,"Lord", math.random(113,113)) doSendAnimatedText(pos6,"hAiL", math.random(90,90)) doSendAnimatedText(pos7,"fire", math.random(145,145)) doSendAnimatedText(pos3,"Lordfire", math.random(150,150)) else end end end end -Laranja: Posição editada Obs: Os números variam até infinito, porem por uma questão de organização siga o exemplo das posições, pos1, pos2, pos3, pos4...Na sequencia. Removendo posições: Segue o mesmo pensamento, porem de ordem contraria a adição, qualquer duvida poste. Duvidas que poder vir a surgir: Oque é esse math.random(30,30))? Esse math.random é para as cores variarem, como o nome diz Random, ou seja aleatório, varia as cores, se quiser por exemplo que venha aleatoriamente todas as cores entre os números 14 e 200 ponha math.random(14,200)) Como faço para colocar que só venha uma cor? math.random(30,30)), repita os números, no caso só vai vir palavras de cores /y 30. Créditos: Newtonnotwen, pelo script, tutorial e ideia. Por favor comente, e lembrando qualquer duvida poste! Editado Agosto 22, 2012 por Newtonnotwen Link para o comentário https://xtibia.com/forum/topic/192423-tile-m%C3%BAltiplos-efeitos-e-falas/ Compartilhar em outros sites More sharing options...
rhamer 5 Postado Agosto 21, 2012 Share Postado Agosto 21, 2012 Lol mt massa cara achei mt loco Link para o comentário https://xtibia.com/forum/topic/192423-tile-m%C3%BAltiplos-efeitos-e-falas/#findComment-1321348 Compartilhar em outros sites More sharing options...
Newtonnotwen 80 Postado Agosto 21, 2012 Autor Share Postado Agosto 21, 2012 Imagem adicionada. Link para o comentário https://xtibia.com/forum/topic/192423-tile-m%C3%BAltiplos-efeitos-e-falas/#findComment-1321437 Compartilhar em outros sites More sharing options...
Skymagnum 234 Postado Agosto 22, 2012 Share Postado Agosto 22, 2012 (editado) Bem legal porêm você devia começar estudar tabelas ia ficar melhor exemplo que eu fiz function onStepIn(cid, item, pos) local pos = getPlayerPosition(cid) local table_pos = { {"Xtibia" , x = pos.x + 2, y = pos.y, z = pos.z}, {"Hail" , x = pos.x - 2, y = pos.y, z = pos.z}, {"0o" , x = pos.x, y = pos.y + 2, z = pos.z}, {"Rush" , x = pos.x, y = pos.y - 2, z = pos.z}, {"Lord Fire" , x = pos.x + 2, y = pos.y + 2, z = pos.z}, {"Rushando" , x = pos.x - 2, y = pos.y - 2, z = pos.z}, {"Xtibia Foda" , x = pos.x + 2, y = pos.y - 2, z = pos.z}, {"Dig Din" , x = pos.x - 2, y = pos.y + 2, z = pos.z} } for i = 1, #table_pos do doSendMagicEffect(table_pos[i][2], 61) doSendMagicEffect(pos, math.random(28, 30)) doSendAnimatedText(table_pos[i][2], table_pos[i][1], math.random(1, 255)) end if isPlayer(cid) and getPlayerStorageValue(cid, 5121) < 1 then doPlayerSendTextMessage(cid, 27, "Você acionou o Super Tile") setPlayerStorageValue(cid, 5121, 1) else doPlayerSendTextMessage(cid, 28, getPlayerStorageValue(cid, 5121) < 1 and "Você só pode acionar uma vez o super tile.") end return true end Editado Agosto 22, 2012 por Skymagnum Link para o comentário https://xtibia.com/forum/topic/192423-tile-m%C3%BAltiplos-efeitos-e-falas/#findComment-1321756 Compartilhar em outros sites More sharing options...
Newtonnotwen 80 Postado Agosto 22, 2012 Autor Share Postado Agosto 22, 2012 (editado) Vídeo adicionado. Editado Agosto 22, 2012 por Newtonnotwen Link para o comentário https://xtibia.com/forum/topic/192423-tile-m%C3%BAltiplos-efeitos-e-falas/#findComment-1322086 Compartilhar em outros sites More sharing options...
Bloxx 15 Postado Agosto 25, 2012 Share Postado Agosto 25, 2012 ta mto show manow, a idéia e bem bacana!gostei mto ai moh lokura! vo botar pra assubir texto mais foda tipo "NOOIZ" vai fikar show Abraços Link para o comentário https://xtibia.com/forum/topic/192423-tile-m%C3%BAltiplos-efeitos-e-falas/#findComment-1323819 Compartilhar em outros sites More sharing options...
victormatos 0 Postado Agosto 25, 2012 Share Postado Agosto 25, 2012 muito bom script meus parabéns rep+ Link para o comentário https://xtibia.com/forum/topic/192423-tile-m%C3%BAltiplos-efeitos-e-falas/#findComment-1324195 Compartilhar em outros sites More sharing options...
Newtonnotwen 80 Postado Agosto 27, 2012 Autor Share Postado Agosto 27, 2012 Bem legal porêm você devia começar estudar tabelas ia ficar melhor exemplo que eu fiz function onStepIn(cid, item, pos) local pos = getPlayerPosition(cid) local table_pos = { {"Xtibia" , x = pos.x + 2, y = pos.y, z = pos.z}, {"Hail" , x = pos.x - 2, y = pos.y, z = pos.z}, {"0o" , x = pos.x, y = pos.y + 2, z = pos.z}, {"Rush" , x = pos.x, y = pos.y - 2, z = pos.z}, {"Lord Fire" , x = pos.x + 2, y = pos.y + 2, z = pos.z}, {"Rushando" , x = pos.x - 2, y = pos.y - 2, z = pos.z}, {"Xtibia Foda" , x = pos.x + 2, y = pos.y - 2, z = pos.z}, {"Dig Din" , x = pos.x - 2, y = pos.y + 2, z = pos.z} } for i = 1, #table_pos do doSendMagicEffect(table_pos[i][2], 61) doSendMagicEffect(pos, math.random(28, 30)) doSendAnimatedText(table_pos[i][2], table_pos[i][1], math.random(1, 255)) end if isPlayer(cid) and getPlayerStorageValue(cid, 5121) < 1 then doPlayerSendTextMessage(cid, 27, "Você acionou o Super Tile") setPlayerStorageValue(cid, 5121, 1) else doPlayerSendTextMessage(cid, 28, getPlayerStorageValue(cid, 5121) < 1 and "Você só pode acionar uma vez o super tile.") end return true end Não entendo muito, mas vou procurar aprender, vlws. Link para o comentário https://xtibia.com/forum/topic/192423-tile-m%C3%BAltiplos-efeitos-e-falas/#findComment-1325635 Compartilhar em outros sites More sharing options...
VishBeisso 0 Postado Setembro 8, 2012 Share Postado Setembro 8, 2012 Po cara fica ruim tu fazer por cor =/ Sou daltônico mano Mas irei pedir ajuda pra alguem Agradeço o script estava precisando =D Link para o comentário https://xtibia.com/forum/topic/192423-tile-m%C3%BAltiplos-efeitos-e-falas/#findComment-1334653 Compartilhar em outros sites More sharing options...
groku 13 Postado Setembro 15, 2012 Share Postado Setembro 15, 2012 Apesar de ser rox meu pc não guenta issu da lag no meu ot KDOSAKPODKASODKASOPKP fodeo '-' Link para o comentário https://xtibia.com/forum/topic/192423-tile-m%C3%BAltiplos-efeitos-e-falas/#findComment-1339826 Compartilhar em outros sites More sharing options...
Posts Recomendados