Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 11/06/15 em todas áreas

  1. Bem massa mas de sempre vai ter nego criando várias accs e upando de bot e MC Vou adaptar pro meu tfs 0.4 e tentar fazer um esquema de checar IP. Fazer uma tabela na DB que guarda todos os IPs que uma acc loga (acho que não tem isso normalmente, nunca parei pra procurar), aí depois quando a Maria for usar o comando checa se o IP dela bate com algum dos que o João já logou, daí fica difícil de burlar até usando proxy pq basta logar uma vez com determinado IP q ele já fica guardado... Daí na hora de o João receber os premios no login tbm checa se algum IP dele bate com algum IP da Maria
    2 pontos
  2. Olá pessoal, vocês provavelmente já deve ter visto este mesmo tutorial feito por mim postado nos tutoriais de mapping, bem, de fato, estou reformulando ele, acrescentando informações e arrumando o necessário. Modificando Seu Map Editor •Sumário• Grounds Grounds (z-order) Grounds (telhados) Doodads Doodads (efeito 3 em 1 [1]) Doodads (efeito 3 em 1 [2]) IMPORTANTE Faça um BACKUP do seu map editor antes de começar as modificações! GROUNDS Primeiramente, vou ensiná-lo a adicionar grounds ao seu map editor, siga os passos: PASSO 1: Abra seu map editor! PASSO 2: Escolher o que iremos modificar, no caso, vamos fazer um ground novo com auto-border. Vamos trabalhar com o TILE de ID: 11077, é um mais recente, se o seu não estiver com esse id procure por outro PASSO 3: abra a pasta do RME/data/8.6 e abra o arquivo grounds.xml (não esqueça de fazer um backup) PASSO 4: Vá até o final do script e antes da linha onde tem </materials> Adicione: <brush name="X1" type="ground" server_lookid="x2" z-order="4000"> <item id="X3" chance="2500"/> <border align="outer" id="999"/> <border align="inner" to="none" id="1"/> </brush> X1: Nome do seu novo ground x2: ID do ground X3: ID do ground Oresto nao mexa! se for adicionar outra ground so vai mudar esta linha <border align="outer" id="999"/> de 999 para 998, não pode ter igual no script PASSO 5: Agora na pasta do seu rme também e data/8.6 procure pelo script tilesets.xml, abra-o, aperte CTRL + F e coloque 'terrain', ele vai te levar até a linha, lá coloque na primeira linha: <brush name="NOME DO SEU ITEM"/> Salve e fexe junto com o ground. Vá em nature, e lá vai estar o seu item, no auto-border! PASSO 6: agora vamos adicionar borda ao ground. vá na pasta do rme em data/8.6 e abra o script borders. outra vez vá até o final do script e antes de </materials> Adicione: <border id="999"> <borderitem edge="n" item="a"/> <borderitem edge="e" item="b"/> <borderitem edge="s" item="c"/> <borderitem edge="w" item="d"/> <borderitem edge="cnw" item="e"/> <borderitem edge="cne" item="f"/> <borderitem edge="csw" item="g"/> <borderitem edge="cse" item="h"/> <borderitem edge="dnw" item="i"/> <borderitem edge="dne" item="j"/> <borderitem edge="dsw" item="k"/> <borderitem edge="dse" item="l"/> </border> Perceba que ali no border id foi colocado 999, que está também no group, isso serve para eles ficarem interligados. Agora é a parte mais complicada, mas eu resumi para voces, cada letra a cima represeta uma direção, norte, sul, leste, oeste, centroeste, etc.. Se o seu id for diferente procure pela imagem A= 11016 B= 11017 C= 11018 D= 11019 E= 11020 F= 11021 G= 11022 H= 11023 I= 11024 J= 11025 K= 11026 L= 11027 No meu caso usando esses ids meu script vai ficar assim: <border id="999"> <borderitem edge="n" item="11016"/> <borderitem edge="e" item="11017"/> <borderitem edge="s" item="11018"/> <borderitem edge="w" item="11019"/> <borderitem edge="cnw" item="11020"/> <borderitem edge="cne" item="11021"/> <borderitem edge="csw" item="11022"/> <borderitem edge="cse" item="11023"/> <borderitem edge="dnw" item="11024"/> <borderitem edge="dne" item="11025"/> <borderitem edge="dsw" item="11026"/> <borderitem edge="dse" item="11027"/> </border> Exemplo: Z-ORDER Agora mostrarei a função do Z-order Observem: <brush name="grass" type="ground" server_lookid="4526" z-order="3500"> <item id="4526" chance="2500"/> <item id="4527" chance="10"/> <item id="4528" chance="25"/> <item id="4529" chance="25"/> <item id="4530" chance="25"/> <item id="4531" chance="25"/> <item id="4532" chance="25"/> <item id="4533" chance="25"/> <item id="4534" chance="15"/> <item id="4535" chance="25"/> <item id="4536" chance="25"/> <item id="4537" chance="25"/> <item id="4538" chance="20"/> <item id="4539" chance="20"/> <item id="4540" chance="20"/> <item id="4541" chance="20"/> <item id="470" chance="0"/> <border align="outer" id="2"/> <border align="inner" to="none" id="1"/> </brush> Nos outros tutoriais eu não expliquei essa parta justamente para deixar mais simples agora, perceba que este é o grass com a borda pequena, ou seja, após adicionado o grass no piso e em seguida outros grounds ele vai ficar assim: Mas se mudarmos a z-order dele para 9000 vai ficar diferente: Isso acontece quando o z-order dele passa a ficar maior que o dos outros, então, fica por cima dos mesmos. Se mudarmos o z-order do grass de 9000 para 0, todas as outras bordas vão ficar por cima, por exemplo: Isso acontece por que o z-order dos outros tiles ficou maior que o grass. •--• •--• •--• •--• •--• •--• •--• •--• •--• •--• •--• •--• •--• •--• A próxima função é a friend name: <brush name="grass (alternate border)" type="ground" server_lookid="9044" z-order="5100"> <item id="9043" chance="2500"/> <item id="9044" chance="10"/> <item id="9045" chance="25"/> <item id="9046" chance="25"/> <item id="9047" chance="25"/> <item id="9048" chance="25"/> <item id="9049" chance="25"/> <item id="9050" chance="25"/> <item id="9051" chance="15"/> <item id="9052" chance="25"/> <item id="9053" chance="25"/> <item id="9054" chance="25"/> <item id="9055" chance="20"/> <item id="9056" chance="20"/> <item id="9057" chance="20"/> <item id="9058" chance="20"/> <border align="outer" id="120"/> <border align="outer" to="none" id="120"/> <friend name="grass"/> </brush> <friend name="grass"/> É bem simples! Ao adicionar este ground no grass normal, não vai criar borda, pois os dois são 'verdes' (iguais) e não é preciso, veja o que acontece quando tem essa tag e quando não tem: Agora algo mais simples chance="1"/> Que tem em todos os grounds, você ja deve saber o que seria, no caso, se tivermos um ground com 5 pisos diferentes: chance="100"/> chance="90"/> chance="80"/> chance="70"/> chance="60"/> O Maior numero (chance) vai ser o tile que mais vai sair no mapa. Caso encontre as seguintes tags: <border super="true" align="inner" ground_equivalent="777"> <border super="true" align="inner" to="none" ground_equivalent="777"> Não se assuste! Estas duas tags classificam ele, para que não aja outra borda na hora de adicionar no mapa, e sim o própio ground, é como se a borda fosse para dentro, veja na imagem: TELHADOS Vou lhes ensinar a construir grounds em forma de telhado, grounds normais ao adicionados no mapa 'escuro' não criam borda, mas os 'roofs' sim, é bem simples Novamente grounds.xml antes de: </materials> Adicione: <brush name="Telhado" type="ground" server_lookid="10884" z-order="8000"> <item id="10884" chance="1"/> <border align="outer" to="none" id="998"/> </brush> No server_lookid só ponha o id do seu telhado, no item id, o id do telhado também, perceba que no border align eu coloquei 998, lembra no tutorial 1 que era 999? não pode repetir então preste atenção pra não fazer 'cagada'. Após ter adicionado isso no script abra o borders.xml Vá até o final e antes da linha: </materials> Adicione: <border id="998"> <borderitem edge="n" item="x"/> <borderitem edge="w" item="x"/> <borderitem edge="s" item="x"/> <borderitem edge="e" item="x"/> <borderitem edge="cnw" item="y"/> <borderitem edge="cne" item="y"/> <borderitem edge="csw" item="y"/> <borderitem edge="cse" item="y"/> <borderitem edge="dnw" item="z"/> <borderitem edge="dne" item="z"/> <borderitem edge="dsw" item="z"/> <borderitem edge="dse" item="z"/> </border> Esta parte é igual ao outro tutorial, você vai substituir o x pela seguinte ordem: X: Y: Z: Após ter feito isso (se a ordem de IDS do seu map estiver igual ao meu) vai ficar assim: <border id="998"> <borderitem edge="n" item="10889"/> <borderitem edge="w" item="10891"/> <borderitem edge="s" item="10886"/> <borderitem edge="e" item="10892"/> <borderitem edge="cnw" item="10890"/> <borderitem edge="cne" item="10888"/> <borderitem edge="csw" item="10887"/> <borderitem edge="cse" item="10885"/> <borderitem edge="dnw" item="10896"/> <borderitem edge="dne" item="10895"/> <borderitem edge="dsw" item="10894"/> <borderitem edge="dse" item="10893"/> </border> Após ter feito isso vá em data/8.6 e abra o tilesets.xml de ctrl + f e digite: Roofs Na primeira linha coloque: <brush name="Telhado"/> Abra o RME, vá em terrain/roofs. Resultado: DOODADS Vamos Trabalhar com o grass tuft (morto) Procure pelo id: 10737-10740 ou veja pela imagem: Abra a data/8.6 do seu map editor e vá em doodad.xml, antes da linha: </materials> Coloque: <brush name="Nature Morta" type="doodad" server_lookid="x" draggable="y" on_blocking="false" thickness="25/100"> <item id="z" chance="4"/> <item id="z" chance="10"/> <item id="z" chance="10"/> <item id="z" chance="10"/> </brush> X: ID Do item, a imagem que vai aparecer la no auto-border Y: Esta opção vai dizer se o grass poderá ser colocado no escuro sem nada em baixo ou somente em cima de um ground, veja a imagem. (exemplo) Z: ID dos grass tufts marrons, coloque o id dos 4, no meu caso vai ficar assim ! <brush name="Nature Morta" type="doodad" server_lookid="10740" draggable="true" on_blocking="false" thickness="25/100"> <item id="10740" chance="4"/> <item id="10739" chance="10"/> <item id="10738" chance="10"/> <item id="10737" chance="10"/> </brush> Agora abra o tilesets.xml, de CTRL + F e digite 'nature' e desca até doodad Pronto já pode utilizar sua nova auto-border! Também no doodad.xml antes da linha: </materials> Adicione: <brush name="Nature Morta2" type="doodad" server_lookid="x" draggable="true" on_blocking="false" thickness="10/100"> <item id="y" chance="70"/> <item id="y" chance="60"/> <item id="y" chance="50"/> <item id="y" chance="40"/> <item id="y" chance="30"/> <item id="y" chance="20"/> <item id="y" chance="10"/> </brush> E Utilizando esses itens: Vai ficar assim: <brush name="Nature Morta2" type="doodad" server_lookid="10735" draggable="true" on_blocking="false" thickness="10/100"> <item id="10741" chance="70"/> <item id="10743" chance="60"/> <item id="10742" chance="50"/> <item id="10764" chance="40"/> <item id="10736" chance="30"/> <item id="10763" chance="20"/> <item id="10735" chance="10"/> </brush> Agora vá em tilesets.xml de ctrl + f 'nature' vá em doodad e adicione <brush name="Nature Morta"/> Abra o mapa editor e divirta-se ! DOODAD 3 EM 1 Como você viu, essa imagem ao lado do título é um item formado por vários outros itens posicionados estrategicamente pelo map editor, existe uma função que faz você criar um item que adicione tudo de uma vez: vamos trabalhar o item id 11385~11392 vá em data/8.6 e abra o doodads.xml Vá até a ultima linha e antes da linha: </materials> Adicione: <brush name="estatuanova" type="doodad" server_lookid="11387" draggable="true" on_blocking="true" thickness="15/100"> <composite chance="10"> <tile x="0" y="0" z="0"> <item id="11389"/> </tile> <tile x="1" y="0" z="0"> <item id="11387"/> </tile> <tile x="2" y="0" z="0"> <item id="11390"/> </tile> <tile x="1" y="0" z="-1"> <item id="11385"/> </tile> <tile x="0" y="-1" z="-1"> <item id="11392"/> </tile> </composite> </brush> -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- •• <brush name="estatuanova" type="doodad" server_lookid="11387" draggable="true" on_blocking="true" thickness="15/100"> <composite chance="10"> Brush name: Nome do item que será adicionado no mapa editor! server_lookid: ID do item cuja a imagem aparecerá na palette. draggable: Avançado, será esplicado melhor em outro tutorial, não mexa. on_blocking: Será explicado em outro tutorial, não mexa. thickness: Será explicado em outro tutorial, não mexa. Composite chance: Não mexa. <tile x="0" y="0" z="0"> <item id="11389"/> </tile> <tile x="1" y="0" z="0"> <item id="11387"/> </tile> <tile x="2" y="0" z="0"> <item id="11390"/> </tile> <tile x="1" y="0" z="-1"> <item id="11385"/> </tile> <tile x="0" y="-1" z="-1"> <item id="11392"/> </tile> Perceba que o X=0 no momento isso significa que X=Y=Z quando X=0 Se X for Igual a 1 ele pularia um Piso a direita > / Se Y for igual a 1 ele pularia um piso a para baixo (sendo Y=\/ [1] e Y=/\ [-1] < / Se Z For igual a 0 ele permanece no mesmo andar (7), porém quando o Z for igual a -1 ele Subira um andar (6). OOOOO OOOOO OOOOO Se o item X for 0 ele permanecerá na posição: XOOOO OOOOO OOOOO Se o item X for 1 ele mudará para posição (>) OXOOO OOOOO OOOOO Se o item X for -1 ele mudará para a posição (<) X OOOOO OOOOO OOOOO Se o item Y for 0 ele permanecerá na mesma posição XOOOO OOOOO OOOOO OU OXOOO OOOOO OOOOO Se o item Y for 1 ele decerá um piso OOOOO XOOOO OOOOO Se o item Y for -1 ele subirá um piso X OOOOO OOOOO OOOOO Se o item Z for 0 ele permanecerá no floor autal (7) OOOOO OOOOO OOOOO Se o item Z for 1 ele decerá para o floor (8) -- Se o item Z for -1 ele subira para o floor (6) -- ItemID: Coloque o id do item conforme o X,Y,Z Vamos ver outro exemplo ! Sabemos que: X=0 - Permanece no Local X= -1 - Pula um piso a esquerda X=1 - Pula um piso a direita Então: X=0 - X=-1 < X=1 > Vamos pegar os IDS 11385-11392! O ID 11389 vai ser o primeiro o X dele seria X=0 - Y=nulo Z=nulo Ele é o primeiro mas não é o centro! O ID 11387 vai ser o segundo no X o X dele vai ser X=1 (lembrando que x pula uma casa a direita, veja a imagem) Y=nulo Z=nulo O ID 11390 vai ser o terceiro na ordem X o X dele deve ser X=2 (por que ele pulou dois pisos a direita) Y=nulo Z=nulo O ID 11385 vai ser o primeiro na Ordem X porém no floor (7) Sendo assim o X dele Sera X=2, pois ele esta depois do id 11389 Y=nulo Z=-1 (lembrando que o Z=-1 sobe um andar) O ID 11392 será o negativo na ordem Y porém positivo 1 Na ordem X Sendo que está para > (direita) X=1 Sendo que Y negativo sobe uma casa Y=-1 Sendo que ele está no mesmo floor que o id 11385 Z=-1 Por último abra o tilesets.xml, pressione Ctrl + f e digite TOWN, coloque a linha: <brush name="estatuanova"/> DOODAD 3 EM 1 [2] Dando continuidade ao Doodads vou lhes ensinar a fazer Doodads 'ALTERNATIVE', sabe alguns itens do mapa editor que você preciona a tecla 'Z' e o item muda de direção (lado)? É Praticamente isso. Vamos trabalhar com os seguintes itens : ID: 11868-11887 ID: 11868-11887 ID: 11915-11916 Vamos Começar com o mais simples ! Abra a pasta do Map editor e vá em data/8.6/doodads.xml Como sempre antes da linha: </materials> Adicione: <brush name="novo1" type="doodad" server_lookid="A" draggable="true" on_blocking="false" thickness="10/10"> <alternate> <item id="B" chance="10"/> </alternate> <alternate> <item id="C" chance="10"/> </alternate> </brush> A: id do item, o que vai ficar de imagem no palette B: id do item normal, quando for adicionado, vamos colocar o id da tocha apagada C: id do segundo item, ou seja, quando você apertar 'Z' vai aparecer este item. Vai ficar assim: <brush name="novo1" type="doodad" server_lookid="11915" draggable="true" on_blocking="false" thickness="10/10"> <alternate> <item id="11915" chance="10"/> </alternate> <alternate> <item id="11916" chance="10"/> </alternate> </brush> Vá em tilesets.xml de ctrl + f, digite town e coloque: <brush name="Nature Morta"/> Agora na hora de abrir coloque sua tocha no mapa, depois aperte Z, perceba que ela vai mudar ! Normal: Depois que apertou o Z: Agora vamos complicar um pouco: Abra o doodads.xml novamente e adicione o script: <brush name="novo2" type="doodad" server_lookid="XXXX" draggable="true" on_blocking="true" thickness="10/10"> <alternate> <composite chance="10"> <tile x="0" y="0" z="0"> <item id="XXXX"/> </tile> <tile x="1" y="0" z="0"> <item id="XXXX"/> </tile> <tile x="2" y="0" z="0"> <item id="XXXX"/> </tile> <tile x="0" y="1" z="0"> <item id="XXXX"/> </tile> <tile x="1" y="1" z="0"> <item id="XXXX"/> </tile> <tile x="2" y="1" z="0"> <item id="XXXX"/> </tile> <tile x="0" y="2" z="0"> <item id="XXXX"/> </tile> <tile x="1" y="2" z="0"> <item id="XXXX"/> </tile> <tile x="2" y="2" z="0"> <item id="XXXX"/> </tile> <tile x="0" y="3" z="0"> <item id="XXXX"/> </tile> <tile x="1" y="3" z="0"> <item id="XXXX"/> </tile> <tile x="2" y="3" z="0"> <item id="XXXX"/> </tile> </composite> </alternate> <alternate> <composite chance="10"> <tile x="0" y="0" z="0"> <item id="XXXX"/> </tile> </composite> </alternate> </brush> O server_lookid como sempre é a imagem do item, qualquer item eu vou colocar o id 11856. Vamos trabalhar: Temos X=Y=Z sendo X=0 significa que se X=Y=Z permanece no local atual, então vamos adicionar o primeiro item Vamos usar os numeros 1-12 para representar cada ID O Item id 1 já está pronto ! Sendo que o itemid 2 está a uma posição a direita ele fica como X=1 Y=0 Z=0 Sendo que o itemid 3 está dois pisos a direita ele aumenta um X sendo: X=2 Y=0 Z=0 Sendo que o itemid 4 permanece na posição do itemid 1 porém uma casa abaixo ele fica X=0 Y=1 Z=0 Sendo que o itemid 5 permanece na posição Y porém uma casa a direita ele aumenta um X ficando: X=1 Y=1 Z=0 Sendo que o itemid 6 permanece na posição X e pula dois pisos a direita ele fica: X=2 Y=1 z=0 Sendo que o itemid 7 desce duas casas o Y dele é modificado porém ele permanece no X do primeiro item ficando: X=0 Y=2 Z=0 Sendo que o itemid 8 fica na mesma posição Y do itemid 7 só pulando uma casa a direita ele fica: X=1 Y=2 Z=0 Sendo que o itemid 9 fica na mesma posição X do itemid 7 pulando duas casas ele fica: X=2 Y=2 Z=0 Sendo que o itemid 10 permanece no X pulando ters casas para baixo o Y dele é o ultimo positivo ficando: X=0 Y=3 Z=0 Sendo que o itemid 11 permanece com o ultimo Y positivo pulando uma casa a direita só modifica o X ficando: X=1 Y=3 Z=0 Sendo que o itemid 12 é o ultimo na posição Y só modifica o X, que pula duas casas, ficando ! X=2 Y=3 Z=0 Modo avançado: [1] - x/y/z = 0/0/0 [2] - x/y/z = 1/0/0 [3] - x/y/z = 2/0/0 [4] - x/y/z = 0/1/0 [5] - x/y/z = 1/1/0 [6] - x/y/z = 2/1/0 [7] - x/y/z = 0/2/0 [8] - x/y/z = 1/2/0 [9] - x/y/z = 2/2/0 [10] - x/y/z = 0/3/0 [11] - x/y/z = 1/3/0 [12] - x/y/z = 2/3/0 O resultado fica: <alternate> <composite chance="10"> <tile x="0" y="0" z="0"> <item id="11868"/> </tile> <tile x="1" y="0" z="0"> <item id="11864"/> </tile> <tile x="2" y="0" z="0"> <item id="11873"/> </tile> <tile x="0" y="1" z="0"> <item id="11869"/> </tile> <tile x="1" y="1" z="0"> <item id="11856"/> </tile> <tile x="2" y="1" z="0"> <item id="11874"/> </tile> <tile x="0" y="2" z="0"> <item id="11870"/> </tile> <tile x="1" y="2" z="0"> <item id="11856"/> </tile> <tile x="2" y="2" z="0"> <item id="11876"/> </tile> <tile x="0" y="3" z="0"> <item id="11871"/> </tile> <tile x="1" y="3" z="0"> <item id="11856"/> </tile> <tile x="2" y="3" z="0"> <item id="11877"/> </tile> </composite> </alternate> Agora como estamos estudando utilizar o 'Z' vamos acrescentar no script: <composite chance="10"> <tile x="0" y="0" z="0"> <item id="11878"/> </tile> <tile x="1" y="0" z="0"> <item id="11879"/> </tile> <tile x="2" y="0" z="0"> <item id="11881"/> </tile> <tile x="3" y="0" z="0"> <item id="11882"/> </tile> <tile x="0" y="1" z="0"> <item id="11865"/> </tile> <tile x="1" y="1" z="0"> <item id="11860"/> </tile> <tile x="2" y="1" z="0"> <item id="11860"/> </tile> <tile x="3" y="1" z="0"> <item id="11860"/> </tile> <tile x="0" y="2" z="0"> <item id="11883"/> </tile> <tile x="1" y="2" z="0"> <item id="11884"/> </tile> <tile x="2" y="2" z="0"> <item id="11886"/> </tile> <tile x="3" y="2" z="0"> <item id="11887"/> </tile> </composite> O Meu ja está feito, porém esse /\ é diferente do anterior não confunda ! Como eu ja fiz e expliquei em cima eu vou passar a formula do segundo ra vocês intenderem melhor: [1] - x/y/z = 0/0/0 [2] - x/y/z = 1/0/0 [3] - x/y/z = 2/0/0 [4] - x/y/z = 3/0/0 [5] - x/y/z = 0/1/0 [6] - x/y/z = 1/1/0 [7] - x/y/z = 2/1/0 [8] - x/y/z = 3/1/0 [9] - x/y/z = 0/2/0 [10] - x/y/z = 1/2/0 [11] - x/y/z = 2/2/0 [12] - x/y/z = 3/2/0 Juntando tudo e adicionando: <alternate> </alternate> O Script fica: <brush name="novo2" type="doodad" server_lookid="11856" draggable="true" on_blocking="true" thickness="10/10"> <alternate> <composite chance="10"> <tile x="0" y="0" z="0"> <item id="11868"/> </tile> <tile x="1" y="0" z="0"> <item id="11864"/> </tile> <tile x="2" y="0" z="0"> <item id="11873"/> </tile> <tile x="0" y="1" z="0"> <item id="11869"/> </tile> <tile x="1" y="1" z="0"> <item id="11856"/> </tile> <tile x="2" y="1" z="0"> <item id="11874"/> </tile> <tile x="0" y="2" z="0"> <item id="11870"/> </tile> <tile x="1" y="2" z="0"> <item id="11856"/> </tile> <tile x="2" y="2" z="0"> <item id="11876"/> </tile> <tile x="0" y="3" z="0"> <item id="11871"/> </tile> <tile x="1" y="3" z="0"> <item id="11856"/> </tile> <tile x="2" y="3" z="0"> <item id="11877"/> </tile> </composite> </alternate> <alternate> <composite chance="10"> <tile x="0" y="0" z="0"> <item id="11878"/> </tile> <tile x="1" y="0" z="0"> <item id="11879"/> </tile> <tile x="2" y="0" z="0"> <item id="11881"/> </tile> <tile x="3" y="0" z="0"> <item id="11882"/> </tile> <tile x="0" y="1" z="0"> <item id="11865"/> </tile> <tile x="1" y="1" z="0"> <item id="11860"/> </tile> <tile x="2" y="1" z="0"> <item id="11860"/> </tile> <tile x="3" y="1" z="0"> <item id="11860"/> </tile> <tile x="0" y="2" z="0"> <item id="11883"/> </tile> <tile x="1" y="2" z="0"> <item id="11884"/> </tile> <tile x="2" y="2" z="0"> <item id="11886"/> </tile> <tile x="3" y="2" z="0"> <item id="11887"/> </tile> </composite> </alternate> </brush> Agora abra o map editor, selecione o item e coloque no mapa, se você apertar a tecla Z vai mudar a ponte, pra cima ou pro lado
    1 ponto
  3. Bom tarde galera, venho por meio deste tópico, anuncar que, estou terminando de desenvolver um ATS derivado de Tibia.. Um pokémon server.. Bom, vou postar ShowOff, apenas dos sistemas no qual tem no servidor.. Irei resolvendo os Bugs, e então, quando achar que está bom, liberarei o Download do servidor, junto com as devidas sources. Eu tambem, colocarei uma lista do que foi feito no servidor.. Desde bugs, até novos sistemas. enfim.. Bom, como todos sabem, esse servidor contem os sistemas básicos.. Mas ainda não parei para mexer nos sistemas mais simples.. Changelog: Adicionado nas sources: - DoCreatureSetNick - AutoStacking - Modificado a função AddItem (estava bugando por causa do autostacking..) - Adicionado todas as races pokémons. - Modificado a cor da fala dos groups nos channels. - Adicionado Passive e Agressive, igual o PokeXGames. - Adicionado OnSpawn - Adicionado Pokémon Ghost System - Adicionado GetCreaturePathTo - Adicionado CastSpell Adicionado no servidor: - Novo NPC de mudança de Nick do pokémon; - Peguei função do PDA para alterar nomes dos pokémons shinys, e deixado normal. Ex: Antes: Shiny Tangela. Agora: Tangela. - Adptado/Adicionado sistema de vantagem e desvantagem do PDA. - Copiei as passives do PDA e adpatei para o servidor. - Copiei sistema de vantagem e desvantagem do PDA e adpatei para o servidor. - Adptado/Adicionado o Clan System do PDA. - Sistema de Icon (acabei de adicionar só adicionei 1 icon pra testar mesmo) ^^ - Retirados o S no final dos pokémons selvagens. - Ao morrer, aparece descrição no corpse, indicando o monstro que matou e o nome de quem morreu. - Sistemas basicos (surf, ride, blink etc.) por order Mudanças nas configurações do servidor: -Adicionar/fazer moves, basta fazer igual o PDA. Porem, se você baixar um servidor PDA e pegar a script de "pokémon moves" da LIB, e jogar nesse servidor, não irá funcionar ^^ -Adicionar pokémons, tambem é só adicionar como se fosse um PDA. -Adicionarfazer novas evoluções igual o PDA. -Adicionar/fazer novas passives igual o PDA. Otclient: Peguei OTClient na versão 0.6.5; - Fiz a barrinha de moves funcionar.. - Não vou adicionar pokebar - Transparency funcionando Obs: O Old cliente ainda está usavel, pois não extendi o cliente, nem pretendo extender.. Faltando/Em andamento: Arrumar alguns moves Refazer nurse joy Configurar todos os pokémons e balancear Configurar o Clan Sistema Configurar Spells Confgurar sistema de ovos Retirar uns duplicad Itens Arrumar os sistemas basicos(hoje ainda deixo 100%) OBSERVAÇÕES: Eu não irei postar ainda, pois o mesmo está em andamento, tem muitos bugs na qual estou resolvendo. ***Se alguem quiser me ajudar, basta deixar seu contato. ** Não me precionem plis. * Sou lindo - Irei atualizar todos os dias, e colocar prints e atualizações e modificar o nome do topico com a data de atualização. - NÃO irei mexer no mapa, se alguma alma quiser ajudar, pois bem, deixe seu contato e.e - NÃO tem level sistema. e NÃO é PDA. CREDITOS: Zipter OrochiElf Arkz Elwyn GabrielTxu Sobre os creditos, *Eu peguei um ou mais sistemas, alguns destes me tiraram duvidas e sou grato*. PRINTS: Estou desenvolvendo esse servidor exclusivamente para o XTIBIA, e tambem porque quero ver a galera sair da mermisse do PDA..Durante muito tempo, vi gente criando topicos, pra geral juntar e fazer os sistemas do PDA, ou fazer um servidor que chegue no rastro do PDA.. Então, se alguem quiser me ajudar.. Basta me comunicar.. OBS: Sempre verifiquem as atualizações abaixo, que é onde eu irei editar sempre e postar atualizações, abram os spoilers. ATUALIZAÇÕES: 11/10/2015 00:16 Parei para mexer no Design do Client. novo entergame: Atualização *11/10/2015* Atualização *12/10/2015* *Vou upar os Prints das atualizações e colocar no tópico*
    1 ponto
  4. LeoTK

    [Dúvida] Pessoal das antigas e os de hoje

    já faz um tempo venho percebendo vários usuários novos aqui no fórum em busca de ajuda achei isso muito bom já que o fórum voltou depois de anos dormindo hehe, bom porém venho percebendo que o pessoal está diferente quanto os de antigamente. Por exemplo eu quando era leigo fazia cada pedido aqui no fórum absurdo e muitas das vezes esquecia e ia mecher procurar uma maneira de entender e assim arrumar o problema sozinho porém a turma de hoje quer tudo de mão beijada mastigado e que a gente ainda ajude a engolir o pessoal não quer correr mas atraz de nada aprender com os erros e assim melhorar e pode vir a ser um novo colaborador ao fórum eles vem aqui pedem o que precisa e foda-se certo que tem muitas pessoas de boa fé que querem ajudar mas percebo que eles pedem coisas que basta prestar atenção ler direito que o próprio erro está falando onde o problema se localiza e em qual linha mas parece que eles tem preguiça de ler apenas posta o erro e espera alguém de boa fé vir ajudar e ainda quer ter um bom servidor com uma atitude dessa depois se pergunta porque tem tão poucos players no servidor isso é facil responder o cara só copia não aprende então por consequência ele não consegue inovar o servidor dele para atrair novos players. Bom acho que isso foi mais um desabafo que um assunto kkk mas é isso ai espero que compreendam o que eu acho sobre essas pessoas hehe
    1 ponto
  5. Caronte

    [Sketch] Twd Zombie

    Opinião é ouro.
    1 ponto
  6. FLC

    FLC - Attempt to mapping - ShowOff

    bostas em qual quesito? kkk Qualidade de Imagem ou Mapping? alguma dica pra melhorar? haha obrigado pelo comentário ^^ Att - ? Areá de mapping ta meio abandonada né? :~
    1 ponto
  7. freezedboladao

    [Duvida] Sobre Poketibia

    @Overllord Estamos agurdando tanto sua base, que por sinal parece estar ótimo, quanto o seu servidor que está muito bem editado e completo. <3
    1 ponto
  8. Kalleud, estou focado em meu projeto, como dito acima.. Mas bem, depois do lançamento voltarei a mexer no servidor, e então postarei! Dyego, obrigado, haha! A galera precisa sair do PDA urgentemente.. Porque falou em "pda", não tem inovação..
    1 ponto
  9. Deadpool

    [Duvida] Sobre Poketibia

    www.xtibia.com/forum/topic/237291-pokemon-open-source-showoff-atualizado/ em breve disponibilizo ^^
    1 ponto
  10. Skymagnum

    player->getStorage

    Use a função atoi. Exemplo: string a = "25"; int b = atoi(a.c_str());
    1 ponto
  11. Deadpool

    Novo Parceiro! OT Checker

    Funciona com pokémon? auehuaheu zueira e.e Parabens mano, merecido, vou até começar usar.. Ja que meu serve será inaurado hoje(talvez) haha!
    1 ponto
  12. Antharaz

    Desafio do mês. #02

    Ok, mas terei de fazer pelo celular pq no pc n abre este topico n sei pq. local config = { distX=3; distY=3; rY=15; rY=15 } local pos = {x=147,y=300,z=7} Assim ele rodará uma área de 15 em x e y saindo a partir da pos inicial variando de x em 3 e y em 3. As posiçoes verificadas serao: {x=147,y=300,z=7} {x=147,y=300,z=7} {x=147,y=300,z=7} Apertei o responder do celular sem qrer, estou terminando de ppstar as pos Falei errado e.e o rx e o ry eh o numero de repetiçoes em x e y para achar a pos, eu li o codigo errado antes hahahah e.e tnc Seguindo este exemplo acima as pos serao: {x =147, y = 300, z = 7} {x =150, y = 300, z = 7} {x =153, y = 300, z = 7} {x =156, y = 300, z = 7} {x =159, y = 300, z = 7} {x =162, y = 300, z = 7} {x =165, y = 300, z = 7} {x =168, y = 300, z = 7} {x =171, y = 300, z = 7} {x =174, y = 300, z = 7} {x =177, y = 300, z = 7} {x =180, y = 300, z = 7} {x =183, y = 300, z = 7} {x =186, y = 300, z = 7} {x =189, y = 300, z = 7} {x =192, y = 300, z = 7} {x =147, y = 303, z = 7} {x =150, y = 303, z = 7} {x =153, y = 303, z = 7} {x =156, y = 303, z = 7} {x =159, y = 303, z = 7} {x =162, y = 303, z = 7} {x =165, y = 303, z = 7} {x =168, y = 303, z = 7} {x =171, y = 303, z = 7} {x =174, y = 303, z = 7} {x =177, y = 303, z = 7} {x =180, y = 303, z = 7} {x =183, y = 303, z = 7} {x =186, y = 303, z = 7} {x =189, y = 303, z = 7} {x =192, y = 303, z = 7} {x =147, y = 306, z = 7} {x =150, y = 306, z = 7} {x =153, y = 306, z = 7} {x =156, y = 306, z = 7} {x =159, y = 306, z = 7} {x =162, y = 306, z = 7} {x =165, y = 306, z = 7} {x =168, y = 306, z = 7} {x =171, y = 306, z = 7} {x =174, y = 306, z = 7} {x =177, y = 306, z = 7} {x =180, y = 306, z = 7} {x =183, y = 306, z = 7} {x =186, y = 306, z = 7} {x =189, y = 306, z = 7} {x =192, y = 306, z = 7} {x =147, y = 309, z = 7} {x =150, y = 309, z = 7} {x =153, y = 309, z = 7} {x =156, y = 309, z = 7} {x =159, y = 309, z = 7} {x =162, y = 309, z = 7} {x =165, y = 309, z = 7} {x =168, y = 309, z = 7} {x =171, y = 309, z = 7} {x =174, y = 309, z = 7} {x =177, y = 309, z = 7} {x =180, y = 309, z = 7} {x =183, y = 309, z = 7} {x =186, y = 309, z = 7} {x =189, y = 309, z = 7} {x =192, y = 309, z = 7} {x =147, y = 312, z = 7} {x =150, y = 312, z = 7} {x =153, y = 312, z = 7} {x =156, y = 312, z = 7} {x =159, y = 312, z = 7} {x =162, y = 312, z = 7} {x =165, y = 312, z = 7} {x =168, y = 312, z = 7} {x =171, y = 312, z = 7} {x =174, y = 312, z = 7} {x =177, y = 312, z = 7} {x =180, y = 312, z = 7} {x =183, y = 312, z = 7} {x =186, y = 312, z = 7} {x =189, y = 312, z = 7} {x =192, y = 312, z = 7} {x =147, y = 315, z = 7} {x =150, y = 315, z = 7} {x =153, y = 315, z = 7} {x =156, y = 315, z = 7} {x =159, y = 315, z = 7} {x =162, y = 315, z = 7} {x =165, y = 315, z = 7} {x =168, y = 315, z = 7} {x =171, y = 315, z = 7} {x =174, y = 315, z = 7} {x =177, y = 315, z = 7} {x =180, y = 315, z = 7} {x =183, y = 315, z = 7} {x =186, y = 315, z = 7} {x =189, y = 315, z = 7} {x =192, y = 315, z = 7} {x =147, y = 318, z = 7} {x =150, y = 318, z = 7} {x =153, y = 318, z = 7} {x =156, y = 318, z = 7} {x =159, y = 318, z = 7} {x =162, y = 318, z = 7} {x =165, y = 318, z = 7} {x =168, y = 318, z = 7} {x =171, y = 318, z = 7} {x =174, y = 318, z = 7} {x =177, y = 318, z = 7} {x =180, y = 318, z = 7} {x =183, y = 318, z = 7} {x =186, y = 318, z = 7} {x =189, y = 318, z = 7} {x =192, y = 318, z = 7} {x =147, y = 321, z = 7} {x =150, y = 321, z = 7} {x =153, y = 321, z = 7} {x =156, y = 321, z = 7} {x =159, y = 321, z = 7} {x =162, y = 321, z = 7} {x =165, y = 321, z = 7} {x =168, y = 321, z = 7} {x =171, y = 321, z = 7} {x =174, y = 321, z = 7} {x =177, y = 321, z = 7} {x =180, y = 321, z = 7} {x =183, y = 321, z = 7} {x =186, y = 321, z = 7} {x =189, y = 321, z = 7} {x =192, y = 321, z = 7} {x =147, y = 324, z = 7} {x =150, y = 324, z = 7} {x =153, y = 324, z = 7} {x =156, y = 324, z = 7} {x =159, y = 324, z = 7} {x =162, y = 324, z = 7} {x =165, y = 324, z = 7} {x =168, y = 324, z = 7} {x =171, y = 324, z = 7} {x =174, y = 324, z = 7} {x =177, y = 324, z = 7} {x =180, y = 324, z = 7} {x =183, y = 324, z = 7} {x =186, y = 324, z = 7} {x =189, y = 324, z = 7} {x =192, y = 324, z = 7} {x =147, y = 327, z = 7} {x =150, y = 327, z = 7} {x =153, y = 327, z = 7} {x =156, y = 327, z = 7} {x =159, y = 327, z = 7} {x =162, y = 327, z = 7} {x =165, y = 327, z = 7} {x =168, y = 327, z = 7} {x =171, y = 327, z = 7} {x =174, y = 327, z = 7} {x =177, y = 327, z = 7} {x =180, y = 327, z = 7} {x =183, y = 327, z = 7} {x =186, y = 327, z = 7} {x =189, y = 327, z = 7} {x =192, y = 327, z = 7} {x =147, y = 330, z = 7} {x =150, y = 330, z = 7} {x =153, y = 330, z = 7} {x =156, y = 330, z = 7} {x =159, y = 330, z = 7} {x =162, y = 330, z = 7} {x =165, y = 330, z = 7} {x =168, y = 330, z = 7} {x =171, y = 330, z = 7} {x =174, y = 330, z = 7} {x =177, y = 330, z = 7} {x =180, y = 330, z = 7} {x =183, y = 330, z = 7} {x =186, y = 330, z = 7} {x =189, y = 330, z = 7} {x =192, y = 330, z = 7} {x =147, y = 333, z = 7} {x =150, y = 333, z = 7} {x =153, y = 333, z = 7} {x =156, y = 333, z = 7} {x =159, y = 333, z = 7} {x =162, y = 333, z = 7} {x =165, y = 333, z = 7} {x =168, y = 333, z = 7} {x =171, y = 333, z = 7} {x =174, y = 333, z = 7} {x =177, y = 333, z = 7} {x =180, y = 333, z = 7} {x =183, y = 333, z = 7} {x =186, y = 333, z = 7} {x =189, y = 333, z = 7} {x =192, y = 333, z = 7} {x =147, y = 336, z = 7} {x =150, y = 336, z = 7} {x =153, y = 336, z = 7} {x =156, y = 336, z = 7} {x =159, y = 336, z = 7} {x =162, y = 336, z = 7} {x =165, y = 336, z = 7} {x =168, y = 336, z = 7} {x =171, y = 336, z = 7} {x =174, y = 336, z = 7} {x =177, y = 336, z = 7} {x =180, y = 336, z = 7} {x =183, y = 336, z = 7} {x =186, y = 336, z = 7} {x =189, y = 336, z = 7} {x =192, y = 336, z = 7} {x =147, y = 339, z = 7} {x =150, y = 339, z = 7} {x =153, y = 339, z = 7} {x =156, y = 339, z = 7} {x =159, y = 339, z = 7} {x =162, y = 339, z = 7} {x =165, y = 339, z = 7} {x =168, y = 339, z = 7} {x =171, y = 339, z = 7} {x =174, y = 339, z = 7} {x =177, y = 339, z = 7} {x =180, y = 339, z = 7} {x =183, y = 339, z = 7} {x =186, y = 339, z = 7} {x =189, y = 339, z = 7} {x =192, y = 339, z = 7} {x =147, y = 342, z = 7} {x =150, y = 342, z = 7} {x =153, y = 342, z = 7} {x =156, y = 342, z = 7} {x =159, y = 342, z = 7} {x =162, y = 342, z = 7} {x =165, y = 342, z = 7} {x =168, y = 342, z = 7} {x =171, y = 342, z = 7} {x =174, y = 342, z = 7} {x =177, y = 342, z = 7} {x =180, y = 342, z = 7} {x =183, y = 342, z = 7} {x =186, y = 342, z = 7} {x =189, y = 342, z = 7} {x =192, y = 342, z = 7} Na proxima vez irei ler sem pressa kkk
    1 ponto
  13. Antharaz

    Desafio do mês. #02

    Oxi roda sim, soh q variando a pos em distX e distY ate achaf uma pos valida .-.
    1 ponto
  14. Antharaz

    Desafio do mês. #02

    Vamos la, pelo que vi ele roda toda uma area a partir da var pos variando distX em X e distY em y, dentro de um range rX para x e rY para y, a primeura dessas pos onde estiver disponivel para teleportar o player ele teleportará e criará os monstros após a contagem regressiva. Minha opinião é qie este é um script para sala de trainers. Estou no celular pq por algum motivo este tópico não abre no meu pc, se tiver algum erro de digitação releve. E ae, acertei?
    1 ponto
  15. Antharaz

    Desafio do mês. #02

    Tudo bem, nunca tinha participado deste desafio antes... vamos lá... antes de tudo, quero dizer que ao falar var config.rX eu me refiro ao índice rX da table config, usei var config.rX para evitar ficar muito grande, o mesmo vale para os variantes disto. Esta function countdown(pos) realiza uma contagem regressiva do que o scripter definir na variável tempo até 0 (na tela in game, enquanto no script ele aumenta a var j até chegar no valor tempo) e quando chega a 0 e, ao mesmo tempo, se a posição pos[lugares] estiver disponível, então ele cria o "monstro" (que deve ser colocado o nome no lugar de"Nome monstro") em todas posições da tabela indicada como parâmetro para a função. Lembrando que a contagem in game é feita na mesma pos onde o monstro será criado. function countdown(pos) -- apenas a ideia, pode ser que isso nao seja a prova de bugs e tenha que ser feito uma versao recursiva. for lugares = 1, #pos do for j = 0, tempo do addEvent(sendTextMessage, 1000 * j, tempo - j, pos[lugares]) if j == tempo and not check_disponivel(pos) then createMonster(pos[lugares], "Nome monstro") end end end end Essa function check_disponivel(pos) não entendi direito, creio que seja para checar se a posição está disponível para teleportar o player. function countdown(pos) -- apenas a ideia, pode ser que isso nao seja a prova de bugs e tenha que ser feito uma versao recursiva. for lugares = 1, #pos do for j = 0, tempo do addEvent(sendTextMessage, 1000 * j, tempo - j, pos[lugares]) if j == tempo and not check_disponivel(pos) then createMonster(pos[lugares], "Nome monstro") end end end end A function onStepIn(cid) apenas chama a function fazQualquerCoisa(cid) quando alguém sobe em cima do tile, mandando o uid do player como parâmetro. function onStepIn(cid) fazQualquerCoisa(cid) return true end Agora vamos a function fazQualquerCoisa(cid, i, j), esta função explicarei por partes... vamos lá... j = j or 0 p = i or 0 Se a var j existir, ela recebe o próprio valor ou, caso contrário, ela receberá o valor de 0. Já no caso da var p, se a var i existir, ela recebe o valor de i ou, caso contrário, ela receberá o valor de 0. if p > config.rX then p = 0 j = j < config.rY -1 and j + 1 or false end Se a var p for maior do que a var config.rX (acredito que seja o raio em x) então a var p vai receber 0. Depois se a var j for menor ou igual a var config.rY - 1 (acredito que seja o raio em y reduzido em 1), a var j recebe o próprio valor acrescentado de 1, caso contrário recebe o valor booleano false. if j then posi = {x = pos.x + ( p * config.distX), y = pos.y + (j * config.distY), z = pos.z} if check_disponivel(posi) then doTeleportThing(cid, posi) countdown({{x = posi.x + 1, y = posi.y - 1, z = posi.z}, {x = posi.x - 1 , y = posi.y - 1, z = posi.z}} ) else fazQualquerCoisa(p + 1, j) end end Se j existir e não for false (caso não tenha entendido como ele possa ter o valor false, ver explicação anterior), então a var posi vai receber a seguinte posição: coordenada x vai receber a variável pos.x somado da var p vezes a var config.distX (lembrando que irá multiplicar para depois somar). Com a coordenada y vai acontecer a mesma coisa, porém será a var j multiplicado pela config.distY ao invés da var p multiplicada pela var config.distX. A coordenada z vai receber a coordenada z da var pos. Se estiver disponível a pos da var posi (explicado anteriormente na function check_disponivel(posi)) então irá teleportar o player para a posi e executar o countdown (explicado anteriormente). Em countdown({{x = posi.x + 1, y = posi.y - 1, z = posi.z}, {x = posi.x - 1 , y = posi.y - 1, z = posi.z}} ) ele manda para a function countdown as posições superior direita e superior esquerda, respectivamente, de onde o player será teleportado., caso contrário, irá repetir a function fazQualquerCoisa. Nesta parte de repetir a function fazQualquerCoisa eu não entendi, pois ele manda a var p+1 aonde ele recebe o parâmetro cid e o j aonde recebe o parâmetro i, creio que o correto seria fazQualquerCoisa(cid, p + 1, j), mas enfim, o código destrinchado é este, agora vou falar para o que imagino que seja. Function fazQualquerCoisa(cid, i, j) completa abaixo: function fazQualquerCoisa(cid, i, j) -- recursao caudal j = j or 0 p = i or 0 if p > config.rX then p = 0 j = j < config.rY -1 and j + 1 or false end if j then posi = {x = pos.x + ( p * config.distX), y = pos.y + (j * config.distY), z = pos.z} if check_disponivel(posi) then doTeleportThing(cid, posi) countdown({{x = posi.x + 1, y = posi.y - 1, z = posi.z}, {x = posi.x - 1 , y = posi.y - 1, z = posi.z}} ) else fazQualquerCoisa(p + 1, j) end end end Para o que acho que foi feito este script irei postar em breve, tenho que almoçar primeiro asuhashuasuh.
    1 ponto
  16. Olha como ta uma versão mais acima desta ai: Projeto New. Vou liberar essa ai dps que arrumar algumas coisas.
    1 ponto
  17. abre o programa q vc usa pra abrir a sua database, se for sqlite só apertar f9 ou clicar no raiozinho ali em cima e digitar isso daí na telinha que vai abrir. Daí vc executa e ja era.
    1 ponto
  18. FlamesAdmin

    PokeGOD v0.1 - Open Source

    Adicionei algumas coisinhas nas sources. Adicionei - Shiny Gengar, Mega Gengar, Banette, Mega Banette, Misdreavus e Shiny Abra para atravessarem parede; Adicionei - para players atravessarem players, para que funcione, o servidor precisa estar em non-pvp; Adicionei - limite de personagens por conta em Account Manager/sqlite, tag adicionada no config.lua; - Adicione a tag em seu config.lua = accountSize = 15 -- Numero de personagens por conta Adicionei - GOD, CM, GM, Senior e Tutor com cores diferentes na fala nos channels; Foi adicionado, mais não funciona - Auto-Stacking: junta itens agrupáveis automaticamente ao ser puxado para backpack; Download: MediaFire Scan: VirusTotal
    1 ponto
  19. Poderia fazer um desse para 8.6?
    1 ponto
  20. Slicer

    [Encerrado] [Script] Npc Outfit

    vai em npc/scripts/clothes.lua e troque por isso... dai pra configurar... --[nome da outfit] = {storage da outfit, qnts diamonds para comprar}, ["assassin"] = {181654, 10}, ps: soh coloque o 2* numero ali na tabela caso a outfit peça diamond pra comprar... se for money, todas elas custao 200dl... a storage da outfit fica em XML/outfits.xml <outfit id="57" quest="181654"> <list gender="0" lookType="1469" name="Assassin"/> <list gender="1" lookType="1470" name="Assassin"/> </outfit> ali em quest="x"... para fazer missoes eh soh tu fazer a missao q tu quer e dai setar a storage da outfit.. por exemplo.. setPlayerStorageValue(cid, 181654, 1) isso da a outfit de assassin pro player...
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...