Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 01/10/14 em todas áreas

  1. abmauromacedo

    [Mini Pack] Texturas

    Olá Xtibiano, venho hoje aqui postar algumas texturas que uso, Espero que gostem. Preview No Virus Download Senha para descompactar: xtibia456
    3 pontos
  2. Insaend

    Desculpas

    Bom dia Usuários do Fórum... Eu Insaend ADM Gráfico do projeto hoje tomei a decisão de fechar relação com o projeto Digimon World Online e com isso fechei todos os tópico. Motivo: Usuários utiliza de erros de alguns membros para falar mau do mesmo projeto que participo. E moderadores* utilizando disso para fechar tópico sem uma Chamada para quem realmente cuida da parte do tópico do fórum... Vejo que temos vários projetos iniciando no fórum e espero deixar espaço para pessoas dedicadas. Abraço ate mais! ------------------------------------ Para quem quiser saber se o projeto continua perguntem para o Administrador que a partir de hoje se torna ADM Geral e dono de tudo que foi feito ate hoje para o projeto etc... e bolinhas pulando... em fim. Eu não tenho mais relação com o projeto! E também não passei nada do que fiz se quiserem algo peça para o único dono do projeto (acho eu ne)!
    3 pontos
  3. Benny

    [ Pokémon ] Lunus OT Completo

    Haha, grande servidor lunus ot, consegui achar aqui pelo computador, e estou postando aqui para vocês Vantagem e desvantagem dependendo do tipo dos pokémons (agora com múltiplos tipos). • Order funcional com as habilidades dos pokemons (fly, ride, dig, cut, light, rock smash, blink, move). • Comandos m1 até m12, desta vez configurado para todos os 151 pokémons. • Pokémons passivos e agressivos, desta vez feito em c++ (sources) melhorando o desempenho. • Catch com 4 pokébolas, com limite de 6 pokémons e o 7º indo para o CP. • Nurse heala todos os pokémons de uma só vez, inclusive retira os status de sleep, burn etc. • Portrait, go back e todos os outros sistemas mais básicos. • Pokedex automática, ao usar em um pokémon, o texto é escrito automaticamente (não é necessário ficar editando arquivo por arquivo). • Pokémons tem seu próprio level e evoluem ao atingir o level necessário sozinhos, alguns usam stones ainda. • Cada pokémon tem seus status (offense, defense, special attack, agility). • Comando !cd parar checar os cooldowns do pokémon. • Sistema TV/Cam e PC. • Sistemas de felicidade, influenciando no ataque e evolução. • Sistema de fome. • Box que da pokémons. • NPC que troca nick. • Potions que healam a vida dos pokemons. • SPR e DAT do tibia original mantidos, e adicionado maioria dos sprites de pokémon. • Pokemon Statistics (veja quantas vezes tentaram capturar um pokemon/já capturaram ele). • Fly com apenas 1 chão embaixo do player, e não vários em volta. • Pokémons de players podem se atacar desde que os donos estejam em uma party E Tambem ajustes do servidor LunusOT Todos os pokemons desde Shinys a Johto com forças,vida e ataques ajustados Pokemons upam até o nível 300 Pokemons selvagens podem ser encontrados até no nível 255 Mapa contando com respaw de pokemons Johtos e quests Alguns pokemons lendarios no final das quests Magias novas Cooldown Bar Old,Great,Super e Ultra fishing rod Box ajustada e mais alguns ajustes. Download : Download Client Créditos Equipe Lunus Flinkton ~Exclusivo XTibia.Com =)
    2 pontos
  4. Olá garotos e garotas, depois de um LONGO tempo sem jogar global voltei a brincar com o vital em Calmera... Vou atualizar o LT diariamente até que eu pare de jogar... Caso alguém queria jogar junto só avisar (: Nome: Maarkiin Voltandoajogar Mundo: Calmera Level Atual: 47 Vocação: Royal Paladin Achievement Points: 11 ML(Skill): 10 Distancia(Skill) atual: 80 Escudo(Skill) atual: 65 Balance: 640k gold Status: Premium Account Rank: Ranger 3x Mammoths 3x Tarantulas 3x Crocodiles 3x Carniphilas 2x Badgers 2x Stone Golems 1x Gargoyle Ultima atualização: 26/01/2014 02:07
    2 pontos
  5. TTQuest Server v0.1 Informações: Versão 8.60; Itens 8.60; Stages e vocations balanceados; Vários bugs em scripts corrigidos; Servidor estavél; Mapa Baiak Yurots 8.60 sem as VIP 1, VIP 2, etc; Todas as houses desbugadas; Não sei se as quests estão 100% pois não testei elas; Sistema VIP; Trainers desbugados. Imagens: Distro limpa sem bugs: Templo: Trainers: Teleportes: VIP City: Orc Land: Depósito: Dragons: Links: Download: Clique aqui. Source da distro: Clique aqui. Scan: Clique aqui. Obs.: A taxa de detecção de vírus do virustotal.com foi de 21 / 45 devido as DLL's. Créditos: SofDarkness; Equipe Forgottenserver.
    2 pontos
  6. Joaosbd

    [Show Off] Joaosb

    Bem, faço mapas já a algum tempo, mas sempre básicos, não exigindo muito trabalho. Mas agora que tenho um mês antes das aulas e nada para jogar, quero me aperfeiçoar -Ilha onde pretendo colocar o npc de tasks do OT- 1- 2- Em breve mais! E se puderem me ensinar a colocar spoilers para organizar melhor e um meio melhor de upar as fotos agradeceria Sou novo no fórum e a qualidade upada da foto ficou pior de quando salvei no paint kk.
    2 pontos
  7. Olá, meu nome é Cristofer Martins, sou programador e gameDesigner e atualmente faço parte da equipe Digimon Adventure Online. Estou aqui para apresentar o meu Spr Editor, que desenvolvi para a equipe por que outros editores não eram funcionais/simples o suficiente. Alem disso, vi que não há sprite editores para as novas versões do Tibia, dificultando a inserção/remoção/edição/exportação de Sprites dos novos arquivos SPRs.Alem disso, um outro motivo foi que tive uma pessima experiencia com o Demonic Editor, tentei exportar as Sprites do nosso SPR para uma pasta umas 20 vezes e sempre dava algum erro no meio do caminho. Por isso desenvolvi um Editor eu mesmo. Preview: Funções( no menu ): -Add: Adiciona n sprites ao editor. Basta clicar no add que irá aparecer a janela para você seleciona todas as sprites que você quiser( multi seleção ). Essas sprites serão adicionadas no final da lista de sprites. OBS: As imagens devem ser PNG e o fundo das sprites deve ser transparente, e não rosa, como é de costume. -Replace: Substitui n sprites no editor. Selecione com Ctrl ou até com o Shift as sprites no editor que você quer substituir, depois clique no menu em Replace. Irá aparecer uma janela aonde você seleciona as imagens PNG para serem substituidas. As sprites serão substituidas na sequencia, a primeira Sprite selecionada no editor vai ser substituida com a primeira imagem selecionada na pasta. O progresso do replace pode ser visto na barra de progresso. -Delete: "Deleta" n sprites da lista.Selecione com Ctrl ou até com o Shift as sprites no editor que você quer deletar, depois clique no menu em Delete. Essas IDs das sprites que são deletadas vão aparecer "" e o ID delas, elas são sprites vazias, sem conteudo que você substiuir com novas imagens e assim aproveitar essas IDS que não estão servindo para nada. Export: Exporta n Sprites. Basta selecionar com Ctrl ou com Shift ou clicando na sprite que o editor irá exportar essa sprite com fundo transparente. Você pode facilmente exportar todas as sprites para uma pasta ou apenas aquelas que lhe interessam. O progresso da exportação pode ser visto na barra de progresso. Clear: Limpa a lista de sprites e remove as imagens da memoria. Util para criar um arquivo SPR do zero, por exemplo. Exemplo multi select( para deletar, substituir ou exportar ): Abas Extract/Compile Extract: Nessa aba você clica em SPR file para abrir o arquivo SPR, escolhe a versão dessa SPR ali no "menu" do lado daonde tá escrito "version" e clica em Extract. O programa vai começar a extrair as sprites e adiciona-las a lista( as vezes a lista fica estatica basta clicar nela que ela atualiza com as sprites novas ) e o progresso da extração pode ver na barra de progresso. Compile: Nessa aba você compila as Sprites da lista para um arquivo SPR. Para isso basta clicar em "save" e escolher o arquivo SPR que vai ser salvo, escolher a versão desse arquivo SPR como feito em Extract e clicar em "Compile!". O progresso da compilação pode ser visto na barra de progresso. Outros Search by ID: Pesquisa uma sprite pelo ID. Caso essa id exista na lista, a lista se move até a a sprite. Download: SPREditor Scan: Virus Total Caso você encontre algum bug, reporte nesse topico por favor. Aceito sugestões. Caso exista alguma versão que não seja aceita no editor e você tem a signiture(assinatura) do arquivo spr, poste aqui que eu atualizo o version.ini.
    1 ponto
  8. Olá comunidade, O meu nome é Lucas Melo, conhecido como LuquitossML, eu recebo muitas mensagens aqui no fórum de membros que gostariam de auxilio para a criação/edição de uma sprite e outros com interesse de aprender a spritear, como eu não tenho tempo para ajudar todo mundo, decidi fazer um tutorial, neste tutorial eu vou compilar tudo aquilo que você precisa saber para começar a arte da perspectiva 45°. Aqui nós vamos aprender passo a passo para a criação de uma sprite. Tutorial Básico sobre quase tudo aquilo que você precisa saber. Introdução: Definição Geral.No Tibia, assim como todos os jogos, os elementos gráficos são chamados de Sprites. Para criar estes sprites, utilizamos uma técnica de design gráfico conhecida pelo nome de Pixel Art. Pouca gente conhece essa arte, que surgiu com os primeiros videogames. Pixel art significa fazer Arte através da utilização de Pixels. Pixel são os pequenos quadrados que compõe as imagens gráficas de qualquer sistema televisual. A organização correta de pixels pode gerar formas que podem ser reconhecidas como animais, objetivos, fotografias, plantas, animações variadas, etc. Técnicas de pixel artPixel art conta com algumas técnicas diferentes de qualquer outro tipo de arte, por ser uma arte de baixa resolução. Dithering: É o uso de padrões de pixels para se criar a ilusão de que existem mais cores do que realmente se estão sendo usadas. Também é usado para se fazer texturas. Anti-Alias (ou AA): Técnica para se suavisar linhas, usando tons médios para reduzir o contraste entre a cor da linha e a cor que envolve a linha. Sombreamento: O sombreamento em pixel art deve ser feito como em objetos reais, com base em uma fonte de luz. Sombrear a figura das bordas para o centro é um erro bastante comum, chamado de Pillow Shading (ou sombreamento 'travesseiro') Salvando deu Trabalho:Para se salvar um trabalho seu no computador, deve-se usar o formato correto. JPG é um formato que usa um tipo de compressão bom apenas para imagens suaves e contínuas. Se usado no pixel art, causa uma enorme perda de qualidade BMP é um formato que apesar de manter a qualidade, acaba resultando em um arquivo muito pesado GIF e PNG são os formatos mais apropriados. GIF, com uma paleta limitada a 256 cores, é o formato ideal, já que é o menor e dificilmente o pixel art terá tantas cores. Se você usa o programa Paint para fazer pixel art, salve como PNG, pois quando o Paint salva como GIF, ele usa uma paleta de cores padrão, e causará alterações de cores no seu pixel art. Categorias:Pixel art é normalmente dividido em duas categorias. Isométrico é o pixel art que imita uma visão em 3 dimensões, mas que não possui perspectiva. Não-isométrico é qualquer outro tipo de visão como Front View (frente) ou Top View (de cima) Como começar a fazer Pixel Art? Existem vários programas para se fazer Pixel art. O mais simples deles é o conhecido Microsoft Paint, ou como dizem: MS Paint. A interface do Paint, é muito muito simples, e com o tempo você entenderá cada uma das funções que ele é capaz de realizar. Ferramentas Básicas:LUPA - Amplia ou reduz o CANVAS (Área onde se desenha ou Área selecionada). LÁPIS - Ferramente capaz de pintar um pixel por vez. BORRACHA - Apaga o que foi desenhado. LATA DE TINTA - Preenche formas com cores. Controles Básicos. CTRL + A = Seleciona todo o Canvas. CTRL + C = Copiar Canvas. CTRL + E = Abre a Janela de Atributos do Canvas. CTRL + F = Fullscreen CTRL + G = Cria uma grade de pixels nos aumentos de 6x e 8x da LUPA CTRL + R = Abre Janela de Inverter ou Girar o Canvas. CTRL + T = Ocultar Barra de Ferramentas. CTRL + V = Colar Canvas. CTRL + Z = Desfazer ação. Desenvolvimento: Agora que já temos uma abordagem geral sobre o tema, vamos aprofundar nossos estudos. Luz e Sombra na perspectiva 45°.Para quem está começando é essencial ter noção de como a luz se comporta na perspectiva que focamos. De modo simples, a luz tem sua fonte a 45 graus acima do objeto, ou seja, a parte "noroeste" do sprite precisa sempre estar mais iluminado do que a parte "sudeste". Vejamos: Obs: Virar a sprite horizontalmente permite verificar se a luz está se comportando da maneira correta (Vindo de uma fonte que está a esquerda e acima do sprite - ou seja, a noroeste ) Lembrem-se de sempre considerar que a parte sudeste não é totalmente escura. Pois a parte da luz que vem do noroeste e chega até sudeste cruzando o sprite, pode refletir/refracionar e iluminar a parte sudeste, mas lógicamente, essa luminosidade será menor. Uma das regras mais importantes e obrigatórias caso seu intuito seja seguir o padrão Tibia: A luz vem do noroeste, mas mesmo assim, ainda existe luz vinda das demais fontes naturais e refletidas pelas superfícies. Sendo assim, seu sprite recebe luz de todas as direções, mas preferencialmente pelo Noroeste. Anti-Aliasing (AA). Quando trabalhamos com pixels percebemos que as bordas dos desenhos costumam aparentar muito o fato de que os pixels são de fato quadrados. O problema de muitos desenvolvedores gráficos no começo do pixel art, foi justamente no momento em que precisavam desenhar elementos que não seguissem o padrão quadrado dos pixels, como por exemplo Círculos, Esferas, e bordas redondas. Para muitos, a solução desse problema surgiu com a criação da ténica de Anti-Aliasing ou simplesmente AA. O AA foi um grande avanço no desenho de formas esféricas ou outras que precisassem passar a idéia de uma superfícia lisa, sem irregularidades. Mas como isto é possível se todo sistema televisual utiliza PIXELS para formar gráficos? A resposta é simples: O AA utiliza pixels que misturam as linhas com o plano de fundo em que elas estão. Quando isto é feito, nossos olhos não conseguem distinguir as irregularidades dos pixels. Em primeiro lugar devido ao tamanho dos pixels e segundo lugar devido a uma boa suavização de bordas. Vejam no exemplo: http://img507.imageshack.us/img507/8484/aaexampleok2zl9.png Obs: Créditos da imagem: Galiant Na esquerda da 2° imagem, vemos o circulo formado de vários pixels pretos. Suas bordas estão "cruas" e sem AA. Assim, mesmo no aumento menor é possível perceber as falhas de suas bordas redondas. Na direita da imagem vemos o mesmo circulo após a aplicação da técnica de Anti-Aliasing. E agora, no aumento menor, não se pode mais ver as falhas das bordas. Como fazer Anti-Aliasing? O Anti aliasing é simples apesar de não parecer. Tudo se baseia em 3 passos: 1 - Observar primeiro o desenho que se quer suavizar. 2 - Observar o fundo no qual este desenho está inserido. 3 - Adicionar cores que simbolizam a mistura das cores do desenho, com o seu fundo. No exemplo acima (dos circulos) tinhamos um circulo PRETO, num fundo BRANCO, então apenas adicionamos tons de CINZA (PRETO + BRANCO) para suavizar a borda. No caso de uma sprite, o AA é feito internamente, ou seja, é feito dentro do outline/lineart da sprite, isso é feito utilizando no caso tons mais escuros nas partes cerrilhadas da sprite. Vejamos: Como podem ver na direita, a disposição dos pixels escuros nas partes mais cerrilhadas é o chamado AA, não é necessário que seja utilizado apenas preto para se fazer o Anti-Aliasing. Exemplo: "Ahh luquitos, eu quero fazer algo roxo, como eu faço AA nele?" Simples, apenas faça os passos iniciais para se fazer uma sprite: Faça um outline (contorno do sprite) Comece a pintar. comece a fazer o AA. (no caso do meu amigo da sprite roxa, utilize tons roxos escuros nas partes cerrilhadas da sprite) Logo depois do AA pronto faça a Iluminação, no caso, Luz e Sombra. Depois de todos esses passos, veja se não há mais nada para arrumar e "Voilá" Sua sprite está pronta. Conclusão: O Investimento do Tempo e Esforço. Trabalho em pixel art é demorado e muitas vezes de difícil processo. Quanto mais tempo você gasta trabalhando, e, em seguida, um pedaço de refino, Melhor será sua aparência. Isso muitas vezes pode levar horas, mas as recompensas valem a pena. Se você não está preparado para investir o tempo em seu trabalho, Ele não ira fluir, independentemente do número de tutoriais que você lê. Nada da certo na primeira vez? As primeiras interações com o seu outline/lineart ou imagem (sprite) sombreada pode muitas vezes ser frustrantes. Não desanime, mesmo os erros aparentemente mais hediondos podem ser editados em algo decente. Uma vez que a última versão de sua sprite é completa, sentar e dar uma boa olhada nela é essencial. Este reajuste geralmente divide-se em um simples ciclo de 3 etapas: 1 - O que aparentemente há de errado? 2 - Como posso corrigir? 3 - A fixação dele. O uso de referências. Muitas vezes, você pode compensar a falta de conhecimento sobre algum objeto através de imagens. Estes podem ser encontrados a partir de uma variedade de fontes, a mais imediata a ser através de um motor de busca na internet.Você também pode encontrar cores novas e interessantes a partir de fotografias e arte dos outros pixel. Lembre-se que o plágio direto, incluindo a edição do trabalho de outras pessoas, é distintamente ilegal. Espero que o tutorial tenha sido útil para alguém, caso o tutorial tenha uma grande repercussão e o pessoal mais duvidas, eu irei continuar atualizando ele com um conteúdo mais aprofundado sobre o tema. Obrigado a equipe do Xtibia pelo espaço. Atenciosamente, LuquitossML.
    1 ponto
  9. BananaFight

    OtClient - Tutorial Básico #1

    OtClient - Tutorial Básico #1 Aula 1 : Editando mod/Modules Bom galera, hoje eu vou ensinar vocês a como editar mod/Modules, e também como posiciona-los na janela. OBS: Quando eu falar Janela, estou me referindo aos objetos: MainWindow, Botton etc Passo 1 entendendo os arquivos Dentro da maioria das pasta no OtClient existirão 3 arquivos com as seguintes extensões: .lua.otmod.otui Cada uma dessas extensões executam um papel EXTREMAMENTE importante dentro do mod/module que você pretende criar, Mais será explicado mais para a frente, Nessa aula vamos mexer apenas no arquivo ".otui". Passo 2 Indentação Uma das coisas mais importante dentro dos arquivos ".otui" é a indentação, pois se você errar um espaçamento qualquer você pode estar 'bugando' todo o funcionamento da sua mod/module. Vou ensinar a vocês o modo certo de indentar seus códigos para que não tenham erros. MainWindowid: tutorialWindowsize: 80 80&save: true Dentro dos arquivos '.otui' só é permitido a indentação com a tecla "Espaço", Caso você tente usar "Tab" para indentar seu código ele vai dar erro e não irá funcionar. A indentação deve ser feita com apenas 2 espaços, e sempre seguindo a ordem do item que você ta criando. Exemplo: MainWindowid: tutorialWindowsize: 80 80&save: trueButtonid: Button1anchors.top: parent.topanchors.right: parent.rightmargin-left: 5 Como o Botão 'Button1' vai ficar dentro da janela ' tutorialWindow', ele tem que ficar a uma distancia de 2 espaços da janela 'MainWindow', Caso eu quebre esse espaçamento provavelmente poderei ter bugs na hora de abrir esse mod/module dentro do client. Outra coisa para tomar cuidado é quando for dar linha para adicionar outra janela, nessa linha em que separa uma janela não pode conter nem um espaço e nenhum comando. Exemplo: Certo MainWindowid: tutorialWindowsize: 80 80&save: trueButtonid: Button1anchors.top: parent.topanchors.right: parent.rightmargin-left: 5 Errado MainWindowid: tutorialWindowsize: 80 80&save: trueButtonid: Button1anchors.top: parent.topanchors.right: parent.rightmargin-left: 5 Vocês não conseguem ver a diferença, mais tente selecionar os dois códigos que vão entender melhor, o que eu falei. Agora a organização e edição de cada janela dentro do arquivo '.otui' deve seguir o mesmo principio de 2 espaços de distancia. Exemplo: Certo MainWindowid: tutorialWindowsize: 80 80&save: trueButtonid: Button1anchors.top: parent.topanchors.right: parent.rightmargin-left: 5 Errado MainWindowid: tutorialWindowsize: 80 80&save: trueButtonid: Button1anchors.top: parent.topanchors.right: parent.rightmargin-left: 5 E também esta Errado desta forma MainWindowid: tutorialWindowsize: 80 80&save: trueButtonid: Button1anchors.top: parent.topanchors.right: parent.rightmargin-left: 5 Como o botão vai aparecer dentro da janela 'MainWindow' ele tem que ficar a 2 espaçamento dela pois se eu deixar os 2 na mesma posição é como se eu estivesse dizendo ao script que são duas janelas separadas e o botton vai aparecer por conta própria quando eu executar o mod/module. Passo 3 conhecendo as janelas Existem diversos modos de se criar uma janela onde vai aparecer vários botoes textos e etc, Mais sempre vai ter uma janela que será a matriz de todos, onde todos deverão aparecer, que no nosso exemplo é : MainWindowid: tutorialWindowsize: 80 80&save: true Esse código é nossa janela principal, É nela que vai aparecer tudo que queremos mostrar com no script, Agora vou mostrar o que cada função que tem dentro de MainWindow faz. MainWindowid: esse é o ID do MainWindow, Supondo que tenham 2 MainWindow, é com esse id que vamos diferencia-lassize: aqui é onde configuramos a largura e altura da janela, nessesariamente nessa ordem&save: isso fica para as próximas aulas Não precisamos usar necessariamente size para mostrar o tamanho ou largura da janela, podemos utilizar por exemplo : width: 80height: 80 Esses 2 códigos podem ser utilizados no lugar de size e farão exatamente a mesma coisa. Caso você tenha editado ou criado algum mod/modules para testar esses códigos que mostrei acima, percebeu que na janela não aparece nome e nem nada do gênero e é isso que irei mostrar agora. !text: tr('Texto') - Essa função adiciona o texto na janela em que você adicionar esta linhaicon: img.png - Esta função pega a sua imagem e usa ela de icone para a janela ( neste caso a imagem tem que estar na mesma pasta que o arquivo '.otui', e isso só irá funcionar dependendo do tipo da janela matriz, veremos em outros tutoriais.) Com esses dois Código você consegue personalizar a janela onde irão aparecer os botoes, textos etc que você pretende fazer. Exemplo: MainWindowid: tutorialWindow!text: tr('Tutorial Window')size: 80 80&save: true Agora vamos começar a criar botoes, escrever textos e etc. Vamos começar adicionando uma Label que vai mostrar o texto 'Olá Xtibia'. MainWindowid: tutorialWindow!text: tr('Tutorial Window')size: 80 80&save: trueLabelid: Label1!text: tr('Olá Xtibia')anchors.top: parent.topanchors.left: parent.leftmargin-top: 5margin-left: 5 Como vocês podem ver apareceram algumas funções novas, que são elas : anchors.top: parent.topanchors.left: parent.leftanchors.right: parent.rightanchors.bottom: parent.bottomanchors.top: prev.topanchors.left: prev.leftanchors.right: prev.rightanchors.bottom: prev.bottommargin-top: 5margin-left: 5margin-right: 5margin-bottom: 5 Com essas funões nós determinamos onde cada item da nossa janela vai ficar. Entendendo as novas funções anchors.top: parent.top Com a linha 'anchors.top:' estamos dizendo que a posição do meu item vai ser definida para cima, agora adicionando 'parent.top' estamos dizendo que a posição do meu item deve se Colada com começo da Janela, e isso segue para left, right, bottom também. agora se no lugar de 'parent.top' eu usar 'prev.top' eu estou dizendo que meu item vai ficar colado com a parte de cima do item que tem encima, Confuso eu sei mais vou dar um exemplo: MainWindowid: tutorialWindow!text: tr('Tutorial Window')size: 80 80&save: trueLabelid: Label1!text: tr('Olá Xtibia')anchors.top: parent.topanchors.left: parent.leftLabelid: Label2!text: tr('Xtibia o melhor')anchors.top: prev.topanchors.left: parent.left Ali no script acima eu estou mandando a Label1 ficar colada com a borda de cima da janela principal, e a esquerda, Já na Label2, eu estou mando ela ficar colada com a Label1 ( pois a label1 que esta encima ) e também ficar colada com a borda da janela principal. Isso se aplica a todos os lados, se eu usar prev.left, eu vou estar dizendo que a label2 tem que ficar exatamente do lado esquerdo da label1. As funções 'margin-top: 5' vão fazer com que meu item fique com a distancia de 5 pixel ( Não tenho certeza se são pixels ) do item que esta acima MainWindowid: tutorialWindow!text: tr('Tutorial Window')size: 80 80&save: trueLabelid: Label1!text: tr('Olá Xtibia')anchors.top: parent.topanchors.left: parent.leftLabelid: Label2!text: tr('Xtibia o melhor')anchors.top: prev.topanchors.left: parent.leftmargin-top: 5 Nesse Exemplo eu fiz a label2 ficar a 5 pixel abaixo da Label1, e isso é a mesma coisa se eu ultilizar left, right, bottom eu vou pegar uma distancia do que estiver do lado do meu item ou embaixo etc. Mais agora nós não precisamos nos prender a ficar somente com parent, e prev na hora de criar um item. podemos utilizar o id de um item como referencia de onde deve ficar meu item, como no exemplo : MainWindowid: tutorialWindow!text: tr('Tutorial Window')size: 80 80&save: trueLabelid: Label1!text: tr('Olá Xtibia')anchors.top: parent.topanchors.left: parent.leftLabelid: Label2!text: tr('Xtibia o melhor')anchors.top: prev.topanchors.left: parent.leftmargin-top: 5Labelid: Label3!text: tr('Xtibia OtClient')anchors.top: parent.topanchors.left: Label1.left Nesse Exemplo eu fiz com que a Label3 ficasse a esquerda da Label1, e grudada a margem da janela principal, mais eu também poderia fazer ela ficar embaixo da Label1, e grudada ao lado direito da margem da janela principal. MainWindowid: tutorialWindow!text: tr('Tutorial Window')size: 80 80&save: trueLabelid: Label1!text: tr('Olá Xtibia')anchors.top: parent.topanchors.left: parent.leftLabelid: Label2!text: tr('Xtibia o melhor')anchors.top: prev.topanchors.left: parent.leftmargin-top: 5Labelid: Label3!text: tr('Xtibia OtClient')anchors.top: Label1.topanchors.right: parent.right Mais caso você for testar isso vai perceber que o Label2 vai ficar encima do Label1 e ao invés do Label3 ficar embaixo do Label1 ele vai ficar do lado, Para corrigir esses pequenos erros você pode juntar códigos como no exemplo : MainWindowid: tutorialWindow!text: tr('Tutorial Window')size: 80 80&save: trueLabelid: Label1!text: tr('Olá Xtibia')anchors.top: parent.topanchors.left: parent.leftLabelid: Label2!text: tr('Xtibia o melhor')anchors.top: prev.bottomanchors.left: parent.leftmargin-top: 5Labelid: Label3!text: tr('Xtibia OtClient')anchors.top: Label1.bottomanchors.right: parent.right Pelo Simples fato de eu ter trocado top por bottom agora o script sabe que a Label2 tem que ficar no fim da Label1 e o mesmo para a Label3, e por isso usamos margin, para deixa uma distancia entre cada item, e para ficar mais organizado. Bom acho que é isso, Caso eu lembre de algo relevante estarei editando e adicionando mais coisas, Espero que gostem e quais quer DUVIDAS relacionadas AO TÓPICO é só fazer um comentário aqui embaixo que estarei respondendo. @Edit, Infelizmente o Xtibia Quebrou a indentação, mais lembre-se é sempre 2 espaços.
    1 ponto
  10. Conteudo Retirado.
    1 ponto
  11. Benny

    [ Pokémon ] Pokémon WOLF V1.0

    Olá pessoal . Bom estava editando um pokémon para meu primo .. ele ligou o servidor, e talz, mas foi só para uma brincadeira mesmo Em seus meros minutos de vida, o servidor alcansou 30 players online Bom mas vamos lá • Informações [ Centurion V4 ] • -Adicionado novo continente e novas cidades; -Novas Addons; -Novas Addons para os pokemons; -Mapa editado; -Novos Pokemons; -M1 - M12; -Novos Itens; -Sistema de duelos com npcs; -Dive System; -Servidor 100% estável; -E muito mais! • Edições • -Adicionado Teleports para quests e pokémons -Adicionei algumas hunts -Adicionado Comando Correr -Servidor totalmente português -Adicionado pokémon bar e move bar ( não está 100 % !! ) • Imagens / Prints • • Download / Scan • Client Servidor Scan Client Scan Servidor • Créditos • Alexandre Owner Cacaiu Equipe Centurion Smooker Flinkton Abraços, Flinkton :3
    1 ponto
  12. crio clientes para quem estiver precisando só dar as devidas informações! IP: Nome do Cliente: Versão:
    1 ponto
  13. Omega

    Inscrições - Turma #2

    Estão abertas as inscrições para a escolinha de scripting - Turma #2. O objetivo é o mesmo: ensinar a quem não tem conhecimento da linguagem lua, mas tem a motivação para aprender a arte do scripting. Apresento também algumas modificações nessa edição: ao final das aulas, os alunos terão que criar um código totalmente próprio e publicá-lo aqui para a comunidade. Os alunos que o fizerem serão considerados formados e ganharão uma medalha. A turma será composta por 5 alunos que serão selecionados a partir das inscrições dessa página. Para se inscrever, certifique-se de que possui a motivação para aprender (muitas vezes a programação é frustrante, então se for desistir, nem comece), disponibilidade de horário (além dos tutoriais selecionados e criados para a turma, pretendo fazer uma reunião semanal para dúvidas e exercícios) e linguagem coerente e inteligível (dá pra entender o que você escreve?). Prazo de inscrição: até 12/01/14 23:59 Formulário de inscrição: - Dados Pessoais - Nome: Idade: Skype: - Disponibilidade - Dias de semana: Fim de semana: - Motivação - Motivação para aprender scripting: Alguma ideia de um código que queira criar e ainda não consiga: - Conhecimento prévio - Nível de conhecimento de inglês: ( ) Iniciante / ( ) Intermediário / ( ) Avançado O que sabe de scripting: Contato com outras linguagens de programação:
    1 ponto
  14. Bem todos sabem que eu defendo a LGV Host a muito tempo,pois eu era usuário da mesma a 3 anos e a qualidade dos serviços só vem caindo, e alguns meses para cá eles vem fazendo cobranças de serviços que eu nunca adquiri, como vps que eu nunca usei, dns que eu nunca contratei, fora o fato de eles estarem cobrando mais de uma vez pelo mesmo serviço sem nem eu ter revalidado o pedido , ou seja, eles estão cobrando por serviços já suspensos sem eu ter refeito o contrato do produto(renovado). Por esse motivo venho aqui avisar a todos usuários que não usem os serviços dessa empresa que está agindo de má fé, após reclamar dos problemas citados acima de cobranças indevidas e recebi como resposta o delete do meu cadastro ainda contendo créditos na conta, ou seja, empresa de má fé! Agradeço a atenção de todos! Att: Piabeta!
    1 ponto
  15. Stigal

    [Tutorial] Adicionando Novas Vocation

    Pasta Servidor > Data > XML > vocations.xml <vocation id="1" name="Nome Voc" description="a nome voc" needpremium="0" gaincap="20" gainhp="500" gainmana="350" gainhpticks="1" gainhpamount="150" gainmanaticks="1" gainmanaamount="250" manamultiplier="1.2" attackspeed="1200" soulmax="300" gainsoulticks="60" fromvoc="1"> <formula meleeDamage="2.0" distDamage="2.0" wandDamage="2.0" magDamage="2.0" magHealingDamage="2.0" defense="2.0" magDefense="2.0" armor="2.0"/> <skill fist="2.0" club="2.0" sword="4.0" axe="2.0" distance="2.0" shielding="2.0" fishing="2.0" experience="2.0"/> </vocation> - Explicação: id = não deve haver nenhuma igual, tente seguir a sequencia para não se perder. name = nome da nova vocação. description = quando der look aparecera esse nome, e caso acc manager também. needpremium = se precisa de premmium para ter essa vocação (0 = não 1 = sim) gaincap = o tanto de cap que vai ganhar quando upar gainhp = o tanto de vida que vai ganhar quando upar gainmana = o tanto de mana que vai ganhar quando upar gainhpticks = o tanto de segundos que demora pra subir a vida gainhpamount = o tanto de vida que vai ganhar a cada ( no nosso exemplo 6 ) segundos gainmanaticks = o tanto de segundos que demora pra subir a mana gainmanaamount = o tanto de mana que vai ganhar a cada ( no nosso exemplo 3 ) segundos manamultiplier = quanto ml vai demorar pra subir, quanto menor mais rápido attackspeed = velocidade do ataque de wands e weapons (quanto menor mais rápido) soulmax = o maximo de soul gainsoulticks = o tanto de segundos que vai demorar pra subir o soul fromvoc = como ele será reconhecido nos scripts ( bote igual o id ) - - Formulas: meleeDamage = quanto hita com weapons distDamage = quanto hita com ataques a distancia wandDamage = quando hita com wand magDamage = quando hita com magias magHealingDamage = quanto heala com magias de cura defense = quanto defende com escudos armor = quanto defende com armaduras - - - Atenciosamente, Stigal.
    1 ponto
  16. comedinhasss

    Player Check System

    Versão: 4.0 Distro: 1.0+ Descrição: Existem muitos scripts que ajudam o administrador do servidor a cuidar dele, um deles é saber coisas sobre quem está jogando e se está sendo honesta. Eu peguei alguns scripts e estou juntando em um para diminuir o tamanho e ter uma fácil verificação. TAG: <talkaction log="yes" words="/p" separator=" " script="playercheck.lua" /> Script: Talkactions/scripts/playercheck.lua function getItemsInContainer(cont, sep) local text = "" local tsep = "" local count = "" for i=1, sep do tsep = tsep.."-" end tsep = tsep..">" for i=0, getContainerSize(cont.uid)-1 do local item = getContainerItem(cont.uid, i) if isContainer(item.uid) == FALSE then if item.type > 1 then count = " ("..item.type.."x)" end text = text.."\n"..tsep..getItemName(item.itemid)..""..count.." ("..item.itemid..")" else if getContainerSize(item.uid) > 0 then text = text.."\n"..tsep..getItemName(item.itemid).." ("..item.itemid..")" text = text..getItemsInContainer(item, sep+2).."" else text = text.."\n"..tsep..getItemName(item.itemid).." ("..item.itemid..")" end end end return text end function onSay(cid, words, param) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return false end local slotName = {"Cabeça", "Amuleto", "Backpack", "Armor", "Mao Direita", "Mao Esquerda", "Legs", "Pés", "Ring", "Ammo Slot"} local t = param:split(', ') if(t[1] == 'check') then if getPlayerGroupId(cid) >= 2 then local p = Player(t[2]) if p then local text = p:getName().."'s Equipment: " for i=1, 10 do text = text.."\n\n" local item = getPlayerSlotItem(p:getName(), i) if item.itemid > 0 then count = '' if item.type > 1 then count = " ("..item.type.."x)" end if isContainer(item.uid) == TRUE then text = text..slotName[i]..": "..getItemName(item.itemid)..""..count.." ("..item.itemid..") "..getItemsInContainer(item, 1) else text = text..slotName[i]..": "..getItemName(item.itemid)..""..count.." ("..item.itemid..")" end else text = text..slotName[i]..": Empty" end end doShowTextDialog(cid, 6579, text) else doPlayerSendCancel(cid, "This player is not online or not exist.") end end elseif(t[1] == 'delete') then if getPlayerGroupId(cid) == 3 then local p = Player(t[2]) if p then count = t[4] if(not t[4]) then count = 1 end if getPlayerItemCount(p:getName(), t[3]) > 0 then if doPlayerRemoveItem(p:getId(), t[3], count) then doPlayerSendCancel(cid, "Deleted Item.") else doPlayerSendCancel(cid, "This player does not have this amount of item.") end else doPlayerSendCancel(cid, "This player does not have the item.") end else doPlayerSendCancel(cid, "This player is not online or not exist.") end end else if getPlayerGroupId(cid) == 3 then id = getItemIdByName(t[1]) if not id then doPlayerSendCancel(cid, "The "..t[1].." not exist. ") return false end local result = db.getResult("SELECT name FROM players WHERE id IN (SELECT player_id FROM player_items WHERE itemtype = ".. id ..");") local msg = "Search results by item ".. getItemName(id) .." in your database:\n\n" if result:getID() ~= -1 then while true do local name = result:getDataString("name") msg = msg .. name .."\n" if not result:next() then break end end else msg = msg .. "The item was not found in any player." end doShowTextDialog(cid, id, msg) end end return true end Explicação: Quando o god digita: /p check, (PNAME) - Ele verifica os items que o player tem. /p del, (ID), (PNAME), (COUNT) - Ele deleta o item de determinado player (Se não colocar o count ele irá remover somente 1). /p (ID) - Ele verifica quantos players tem tal item. Créditos: Oneshot CaioODemais Comedinha (Bruno Carvalho)
    1 ponto
  17. Desnecessario

    [Concurso] A melhor Sprite #1

    Eae galera mais uma vez estou aqui sugerindo um tópico para brincarmos aqui no xtibia e para evoluirmos ainda mais. Como funciona a brincadeira ? Será dado um tema diferente toda semana, nesse tema nós spriters teríamos que fazer algo coerente e dentro das regras e então seria posto para votação em um outro tópico onde qualquer membro do xtibia com mais de 20 posts poderia votar. O vencedor ganharia a medalha de AMS [ A Melhor Sprite ] , ( Ainda não está certo se teria isso ) Como participar ? Para participar mande uma mensagem para o Lucasmml com a sua sprite. Porém tome cuidado porque após certo prazo ou se estiver fora das regras ele não aceitará! Sprite da Semana #1 Tema: Swords/Espadas ( Qualquer tipo, espadas magicas, ninjas, de ouro, ferro ) Dimensão/Tamanho : 32x32 Pixels Premiação 1° Colocado - 3 Reps + sign + medalha ( sem certeza ainda ) 2° Colocado - 2 Reps 3° Colocado - 1 Rep Datas: Concurso: 09/01/2014 até 16/01/2014 (23:59) Votação: 17/01/2014 até 22/01/2014 (23:59) Resultado: 23/01/2014. Tópico já autorizado, boa Sorte a Todos. *Lembrando que todos podem participar então vamos ajudar! Esse tópico também estará liberado para debatermos regras e dúvidas !
    1 ponto
  18. Tony

    [PARTICIPE] A Melhor Assinatura #96

    Olá sou o Jacques novo responsável pelo "AMA", espero ter bons momentos aqui e ajudar a seção a crescer. Conto com a participação de todos!! Tema da AMA #96: Heróis Para sugerir um tema (Clique Aqui) Premiação 1° Colocado - 3 Reps + Medalha + Sing 2° Colocado - 2 Reps 3° Colocado - 1 Rep Datas: Concurso: 06/01/2014 até 12/01/2014 (23:59) Votação: 13/01/2014 até 18/01/2014 (23:59) Resultado: 19/01/2014. Dúvidas: Clique aqui AS IMAGENS DEVEM SER POSTADAS NESTE TÓPICO ATÉ A DATA MARCADA. Quero ver todo mundo participando!
    1 ponto
  19. Benny

    [Encerrado] Só eu logo

    aqui também tava assim,tava usando o ipv4 também,coloquei o do no-ip, funcionou certinho
    1 ponto
  20. WH47

    [mini pack] hero render

    Montei um mini pack de renders com o tema da nossa AMA #96: Heróis Isso pra facilitar aos usuários e também dar uma agitada no concurso. PREVIEW Download That's it
    1 ponto
  21. Rikutachimoto

    Galeria De LuquitossML

    Não gostou, mais eu amei
    1 ponto
  22. Lucasmml

    Galeria De LuquitossML

    #Nyco, Sim, apenas trabalho utilizando o paint, no caso o do win7. E aqui vai a segunda edição, não gostei do resultado final.. mas não iria desperdiçar o tempo de gravação.
    1 ponto
  23. eu fiz isso, não tem a pasta 10.3, mais creio qui vc tenha falado da pasta 10.31, eu coloquei pra abrir por la carrego tudo certinho ai na hora de carregar o mapa 10.30 ele fala qui não é suportado já tentou importar o mapa?
    1 ponto
  24. xXMythuszXx

    Remere's 10.30 precisava

    Remeres: http://www.4shared.com/file/mV3dwJH1ce/Remere_Map_Editor_10.htm Tibia 10.30: http://www.4shared.com/file/fIrjLULQ/tibia1030.html
    1 ponto
  25. Gabrieltxu

    [Pokemon] Servidor Skyfall - Completo

    ??? ta Normal amigo , testei aqui e está entrando sim na parte de Download
    1 ponto
  26. VictorWEBMaster

    [GESIOR] VictorWEBMaster 2019v

    Sim é possivel, eu estou estudando a possibilidade, pois quando implantei esta forma deu muitos erros. Proxima versão terá este recurso, não se preocupe.
    1 ponto
  27. da proxima ver use um connect para entergame, funciona bem
    1 ponto
  28. Basta fazer tudo corretamente, que irá funcionar. Troque aquele seu código da alavanca da Outland Main por esse: Depois, crie um arquivo .lua em data/actions/scripts, com o seguinte conteúdo: A cada novo action id adicionado no código, não se esqueça de também colocá-lo na tag e na tabela aids. Explicação: local monsters = Definirá os monstros que irão nascer na wave, e a posição. Modelo: {"Nome do monstro", posição} local posi = Coordenadas da posição superior esquerda da área. local posis = Coordenadas da posição inferior direita da área. local pos = Onde a alavanca será criada, após eliminar cada wave. Criando novas waves: Primeiramente, tenha em mente que cada actionid representa uma nova wave. Se são 4 actionids, então serão 5 waves (4 actionids + a wave programada pela alavanca da Outland Main). Quando você adicionar um novo actionid, não se esqueça de colocá-lo na tag e na tabela aids. Cada elseif item.actionid == aids[número] then representa uma wave, sendo número = wave. LEMBRE-SE: esse número também representa a index na tabela aids. Portanto, se você colocar, por exemplo, esse número = 20, e não tiver 20 actionids na tabela, não funcionará. Modelo: elseif item.actionid == aids[wave/número/index do actionid na tabela aids] then local monsters = {{"Nome do monstro", posição}, {"Nome do monstro", posição}, {"Nome do monstro", posição}, {"Nome do monstro", posição}} doRemoveItem(item.uid, 1) addEvent(function() for i = 1, #monsters do doCreateMonster(monsters[i][1], monsters[i][2]) end checkMonsters(posi, posis, pos, new_aid) --Lembre-se: esse new_aid sempre será o actionid da alavanca+1. end, 5*1000) Todas as waves estão configuradas para ocorrer em 5 segundos. Para alterar isso, basta mudar os 5*1000 para segundos*1000. Exemplo: 10 segundos-10*1000. Configurei 5 waves, sendo os actionids: 19381, 19382, 19383, 19384. OBS: A primeira wave não possui actionid, pois foi iniciada pelo código de entrada da Outland Main! Segue como deixei as waves: -[wave/actionid] - Pokémons: pokémons que vêm na wave. [1ª wave/sem actionid] - Pokémons: Pikachu e Magikarp. [2ª wave/19381] - Pokémons: Pikachu, Magikarp e Caterpie. [3ª wave/19382] - Pokémons: Pikachu, Magikarp, Caterpie e Metapod. [4ª wave/19383] - Pokémons: Pikachu, Magikarp, Caterpie, Metapod e Butterfree. [5ª wave/19384] - Pokémons: Pikachu, Magikarp, Caterpie, Metapod, Butterfree e Mewtwo. Acrescentando: quando for configurar a última wave, configure normalmente como as outras. Quando todos os pokémons forem derrotados, será criada uma alavanca com actionid x. Então, em outro arquivo, você configura o quê quiser: se a alavanca criada levará para uma posição e dará os prêmios, ou se apenas teleportará, ou se, sei lá, matará os jogadores. Então, na tag, você coloca o actionid que foi setado nesta última alavanca (em outras palavras, o actionid da alavanca da última wave + 1). Espero que tenha entendido.
    1 ponto
  29. Área incorreta, tópico movido. Mais cuidado da próxima vez. Sobre seu pedido, local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 32) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -100.2, 1, -100.2, 1) function onCastSpell(cid, var) local position1 = {x=getThingPosition(getCreatureTarget(cid)).x+1, y=getThingPosition(getCreatureTarget(cid)).y, z=getThingPosition(getCreatureTarget(cid)).z} doSendMagicEffect(position1, 199) return doCombat(cid, combat, var) end
    1 ponto
  30. Killua

    Tile com effect

    Em globalevents/scripts crie um arquivo.lua e coloca: function onThink(interval, lastExecution, thinkInterval) doSendMagicEffect(pos, type) return true end No globalevents.xml coloca essa tag <globalevent name="efeito" interval="1" script="ARQUIVO.lua" /> No lugar de pos vc coloca a posição do tile e no lugar de type o efeito que quer.
    1 ponto
  31. function getGuildNameById(id) local Info = db.getResult("SELECT `name` FROM `guilds` WHERE `id` = " .. id .. ";") if Info:getID() ~= LUA_ERROR then local Name= Info:getDataString("name") Info:free() return Name end return LUA_ERROR end
    1 ponto
  32. Bom dia Jackgoku, olha cara por recomendações de abrir um mapa global, primeiramente o sistema operacional deverá ser 64 bits, tanto Linux como Windows. HD: 300GB Processador: Intel Power Xeon (MAIS USADOS EM DEDICADOS) Memoria RAM: Depende a quantidade de serviços que voce irá usar, pra não travar o servidor (RECOMENDO DE 3GB PRA CIMA) Esses são os fundamentos básicos pra abrir um servidor, não é necessario placa de video. Se respondi sua pergunta REP+
    1 ponto
  33. Killua

    Resolvido

    Usando a função que o Omega passou, pode usar assim local outfits = {128, 136, 137, 129} function onUse(cid, item, fromPosition, itemEx, toPosition) for i = 1, (#outfits) do if canPlayerWearOutfit(cid, outfits[i], 3) then print("Tem todos") else print("Nao tem todos.") end return true end
    1 ponto
  34. Nolis

    Cidade dos Elfs

    Proporções do mapa? Prazo para término? Versão obrigatória? Tipo de itens? Estilo do mapa? Característica da cidade e sua história? Entre em contacto: danielcamiloglobalwar ou pelo facebook https://www.facebook.com/daniel.camilo.3950
    1 ponto
  35. 1 ponto
  36. Desnecessario

    Recortar Parede

    Pronto, Recortadas. As sequencias são a cada 4 sprites é 1 parede são 4 paredes são 16 sprites.
    1 ponto
  37. local function getRecorderPlayer(pos, cid) local ret = 0 if cid and isPosEqual(getThingPos(cid), pos) then return cid end local s = {} s.x = pos.x s.y = pos.y s.z = pos.z for a = 0, 255 do s.stackpos = a local b = getTileThingByPos(s).uid if b > 1 and isPlayer(b) and getCreatureOutfit(b).lookType ~= 814 then ret = b end end return ret end ------------[[ Configurações. ]]------------ local cfg = { {1, {x = 1056, y = 1056, z = 7}, {x = 1056, y = 1057, z = 7}}, --{valor da storage do clan, posição que o jogador deve ficar, posição para qual o mesmo será teleportado}, {2, {x = 1057, y = 1056, z = 7}, {x = 1056, y = 1058, z = 7}}, {3, {x = 1058, y = 1056, z = 7}, {x = 1056, y = 1059, z = 7}}, {4, {x = 1059, y = 1056, z = 7}, {x = 1056, y = 1060, z = 7}}, {5, {x = 1060, y = 1056, z = 7}, {x = 1056, y = 1061, z = 7}}, {6, {x = 1061, y = 1056, z = 7}, {x = 1056, y = 1062, z = 7}}, {7, {x = 1062, y = 1056, z = 7}, {x = 1056, y = 1063, z = 7}}, {8, {x = 1063, y = 1056, z = 7}, {x = 1056, y = 1064, z = 7}}, {9, {x = 1064, y = 1056, z = 7}, {x = 1056, y = 1065, z = 7}}, } local rank = { need = true, --Precisará estar em x rank? [true/sim] [false/não] what_rank = 5, --Se colocar true acima, configure aqui o rank necessário. } -----------[[ Fim das configurações. ]]--------- function onUse(cid, item, frompos, item2, topos) for a, b in pairs(cfg) do local pos = getRecorderPlayer(b[2]) if not isPlayer(pos) then return doPlayerSendCancel(cid, "One or more players aren't in the correct clan's place.") elseif rank.need == true then if getPlayerStorageValue(pos, 862281) <= (rank.what_rank - 1) then return doPlayerSendCancel(cid, "One or more players aren't at rank "..rank.what_rank..".") end end end for c, d in pairs(cfg) do local pos = getRecorderPlayer(d[2]) doTeleportThing(pos, d[3]) doPlayerSendTextMessage(pos, 27, "Good luck!") doSendMagicEffect(getThingPos(pos), 14) end return true end Tabela com valor das storages, e seus respectivos clans: [1] = Volcanic [2] = Seavell [3] = Orebound [4] = Wingeon [5] = Malefic [6] = Gardestrike [7] = Psycraft [8] = Naturia [9] = Raibolt
    1 ponto
  38. Lumus

    [GESIOR] VictorWEBMaster 2019v

    Sistemas são integrados já. Sistema de vip na hora de adicionar, verifique se é vip_time ou premdays,, dai na hr de add o item no shop, tem as informações que voce precisa =) Obrigado pela preferencia. Certo,obrigado pela resposta! Ultima coisa para ficar perfeito onde eu edito essa pagina, Após criar conta eu sou mandado para essa pagina,preciso trocar os links de download,qual arquivo .PHP se encontra?Nos download.php não esta. Olha lá em cima no link, exemplo: createaccount.php
    1 ponto
  39. ScythePhantom

    [Show Off] ScythePhantom

    É... depois de um bom tempo sem tempo, volto a mapear. As fotos a seguir são de um projeto meu e do ilustre EdMignari, o projeto está meio cru ainda, por isso não poderei dar mais detalhes do mesmo. Espero que gostem.
    1 ponto
  40. Omega

    Resolvido

    Acho que a função canPlayerWearOutfit(cid, lookType, addons) deve funcionar pra isso, heim. Nunca usei, só lembrei que existia.
    1 ponto
  41. Avilack

    Tanfell - Rise of an Empire

    Então... Eu não sei se é porque sou fã e ja joguei muito TES que achei o projeto bem semelhante, talvez pelos seus sistemas apresentados de uma forma "igual" por exemplo: "Liberdade: Sim, os players serão livres para treinarem, uparem, criarem sua classe exclusiva. Seja um Battlemage, detentor de uma armadura pesada e usuário de magias, até um Arqueiro com poderes necromânticos. Você escolhe o rumo do seu personagem • Acho que a forma de escrever pesou um pouco na coincidência, porque se não me engano o TES tambem tem esse mesmo sistema de classes, o que não chega a ser um ponto negativo para o seu servidor é claro. • Sobre as raças, eu tambem notei uma grande semelhança na sua escolha "Lizards, orcs, elves". Mas independente da minha opnião de se parecer ou não, quero que continue com as suas idéias, e continue a evoluir entende? Eu seria a ultima pessoa deste forum a "trollar" um projeto. • Sobre as "skills": Este foi o ponto chave que eu vi que o seu projeto não foi só inspirado no TES como essa parte foi praticamente copiada do mesmo. Entendo que ainda não há esse tipo de coisa no Tibia, e que o TES é um jogo de um padrão diferente, mas, creio que essa parte das skill's "dê muito na cara". Talvez se você reformulasse e melhorasse as descrições das skills não ficariam tão parecidas. Continuo reafirmando que a sua idéia inicial é boa, e continuo insistindo que para toda criação e inovação deve-se ter inspiração, evitando "copiar" algo que ja exista ou que se assemelhe muito. Enfim, este é o meu ponto de vista. Obrigado pela resposta a minha postagem, e continue com o seu projeto. Abraços, Avilack.
    1 ponto
  42. Tony

    |Style| Medieval No-Name01

    Fala galera, estou trazendo um estilo para o Photoshop, espero que muitos gostem ,já dizendo que se resultar em alguma coisa continuarei postando estilos. Download +Contem PSD+ O Scan não estou conseguindo fazer.
    1 ponto
  43. Nyco

    Comprar dinheiro no Tibia, TRAPAÇA?

    vc pode comprar dinheiro nessas empresas mas depois não pode reclamar que tem muito bot no jogo e que a cipsoft não faz nada pra tirar os bots ai vc escolhe
    1 ponto
  44. Avilack

    Desativado

    Mais de 60 páginas de histórias concluidas, incluindo sistemas de jogabilidade. Absolutamente tudo ja esta escrito e planejado, a equipe esta bem encaminhada com foco e disciplina. Infelizmente a parte escrita do servidor ficará disponivel apenas em seu pré-lançamento para evitar plágios, ja que as mesmas ainda não possuem direitos autorais (que ja estou providenciando). Mas garanto-lhes, não haverá decepções dos futuros jogadores em relação ao Elënor. Breve atualizaremos o tópico com pequenos trechos das suas respectivais histórias, todas devidamente protegidas.
    1 ponto
  45. Yamaken

    Ultimate Sprite Editor

    Olá, hoje venho apresentar o Ultimate Sprite Editor. Não é atoa que ele se chama Ultimate, ele é o melhor sprite Editor que já existiu na comunidade. Imagens: Ele auto detecta a versão da spr baseada na signature do arquivo, e isso pode ser configurado em um arquivo .ini. Caso o auto detect não funcionar, você pode escolher a versão do spr manualmente. As funções do Ultimate Spr Editor são: New: Cria um novo spr do zero sem nenhuma sprite. Open: Abre um arquivo spr com determina versão. Save: Salva um arquivo spr em determinada versão. Add: Adiciona um numero x de sprites no formato png( fundo transparente ) ou no formato bmp( fundo rosa ). Replace: substitui as sprites selecionadas, quer dizer, os IDs continuam os mesmos só muda a imagem dessas sprites. Export: exporta as sprites selecionadas no formato png. Clone: "Clona" as sprites selecionadas, quer dizer, cria sprites iguais no final do arquivo spr. Clear: "Limpa" as sprites selecionadas, isso quer dizer que o ID não vai ser deletado mas que o conteúdo da sprite( a imagem ) vai ser deletado. Download: MediaFire Scan Yamaken~
    1 ponto
  46. Wiliner

    Desativado

    Tópico atualizado:
    1 ponto
  47. Nyco

    Alguem poderia me dar uma conta?

    Bom ou você cria uma conta no Tibia.com ou você compra uma conta no http://gamerchants.com/ pq dar ta difícil...
    1 ponto
  48. ----------------- Introdução ​----------------- Bem pessoal, aqui eu vou fazer um novo tutorial sobre como fazer espadas pelo paint. Muitos acham isso uma bicho de 7 cabeças, mas não é nada disso. Na verdade, aprendendo técnicas básicas conseguimos resultados incríveis! Sem mais delongas, vamos ao que interessa! ​--------------------- Passo 1 ​--------------------- * Criação das pontas principais * Para começar uma espada eu aconselho você começar pelas pontas. Sendo assim você primeiro deverá pensar "Como será a ponta da lâmina da minha espada?" e "Como será o copo da espada?" (para quem não sabe, o copo da espada é a "bolinha" que geralmente existe logo abaixo do cabo). Após fazermos esta pergunta deveremos iniciar o sprite. Você pode fazer sua espada na posição que desejar, porém eu prefiro ela na diagonal vidara para a esquerda. Depois de fazer a ponta e o copo da espada/cabo teremos algo parecido com isso: --------------------- Passo 2 ​--------------------- * Formato da lâmina e guarda * Agora definiremos o formato da espada. Primeiro veremos se a lâmina terá alguma curvatura no meio, alguma deformação ou coisa do tipo. Uma espada mais simples, clássica, pede um formato mais reto, o que da a melhor impressão de algo afiado. Você pode escolher o formato que quiser, mas cuidado! O formato que você escolher interferirá MUITO no nível de dificuldade da pintura que será aplicada depois! Na questão da guarda temos alguns pontos a destacar: #1 - A lâmina está encaixada/dentro da guarda. #2 - A guarda tem de ser de um tamanho proporcional a espada, para suportá-la e para não machucar a mão do usuário. #3 - A guarda está, de certa forma, fundida ao cabo. #4 - Se desejar colocar uma pedra preciosa na guarda, precisaremos de espaço para isto. Bem, resumindo é isso. Após decidir como será, poderá ficar algo parecido com isso: --------------------- Passo 3 ​--------------------- * Aplicação do AA na lâmina * Bem, neste passo iremos basicamente aplicar o famoso AA. Muitas pessoas não sabem o que é, definitivamente, o AA. O AA é uma técnica utilizado por pixel artistas, spriters e até mesmo designers (Se você pretende entrar no ramo de imagens, isso é essencial!). Esta técnica consiste em aplicar pixels com cor intermediária entre o preto e o branco em pontos estratégicos para dar a aparência de algo redondo. Este efeito é utilizado em toda e qualquer imagem gráfica, fazendo-as parecer redondas, só que não são. Então você me diz: "Poxa, legal isso ai blue... Mas como vamos aplicar isso?". Pois é, agora que teremos que estudar os pontinhos chamados Pixeis! Geralmente, o AA é mais utilizado em curvas, como por exemplo: Nesta imagem podemos perceber que a curva sem AA (a da esquerda), quando em contato com um fundo escuro, fica com uma aparência serrilhada, já a com AA (a da direita), quando em contato com um fundo escuro fica com uma aparência mais redonda. Agora como aplicamos isto? Bem, nas imagens mais ampliadas eu coloquei duas cores, o vermelho e o azul. Observando os círculos e as cores podemos perceber que onde temos uma curva mais brusca, colocamos uma cor mais escura, já quando temos um local mais reto, colocamos uma cor mais clara. Assim representado na direita de como ficaria. Aplicando isto na espada, ficaríamos com algo parecido com isto: No início isso será um pouco difícil de ser percebido e aplicado, mas após um certo tempo de treino, isso fica casual. --------------------- Passo 4 ​--------------------- * Pintura da lâmina * Agora iremos pintar a lâmina. Como a luz de qualquer sprite feito com a plataforma Tibia é vinda do Noroeste, precisamos aplicá-la deste modo. percebemos que a lâmina de uma espada é um tanto grossa no meio, e fina nas pontas, o que projeta uma certa luz/sombra na espada. Para aprender como colocar esta Luz e sombra só com o tempo que você saberá colocá-lo melhor. Sendo assim, deverá ficar algo parecido com isso: ------------------- Passo 5/6 ​------------------- * Guarda * Agora iremos aplicar o mesmo procedimento aplicado à lâmina na guarda, o AA, e depois a pintura. --------------------- Passo 7 ​--------------------- * finalização * Agora, depois de terminar a pintura da lâmina e guarda, coloque seu sprite num fundo escuro, para arrumar AA, e detalhes finais. E... Ualá! Ai está sua espada! Agora é só continuar fazendo outras, sempre treinando e melhorando cada vez mais nas técnicas! Aqui está o resultado final da minha, postem o resultado das suas! ~~~~ FIM ~~~~
    1 ponto
  49. -----------------------------------Edit---------------------------------------------------------------- Reported Para Dar close
    1 ponto
  50. DiogoTemporario

    Minhas fotografias [iPhone]

    Finalmente um tópico sobre fotografia não iniciado por mim ou por aquele outro cara. Favor não usar instagram, estragou a cor de suas fotos. Por exemplo na do carro, abaixo, o vignetting e a redução de contraste aplicados deixaram o carro pouco visível. Estas são as únicas que salvam, de um ponto de vista técnico: Na à direita é interessante ver ambas as perspectivas opostas no mesmo frame (a espelhada, que marquei de vermelho, e a da rua em frente ao carro). No mais são fotos que para você podem ser boas recordações, mas de um posto de vista técnico não apresentam nada demais. Você mora onde? Obs.: Exceção é esta, em que as cores ficaram muito boas com o filtro: Nem sei se foi você quem tirou as fotos e tenho quase certeza que você não dá uma foda para essas merdas que eu falei, mas resolvi comentar de qualquer jeito.
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...