Ir para conteúdo

Mohaus

Campones
  • Total de itens

    11
  • Registro em

  • Última visita

Histórico de Reputação

  1. Upvote
    Mohaus deu reputação a tomanenem em Tutorial Avançado De Sprites   
    Recomento que antes leiam o Tutorial postado pelo tomanenem:
    Mega Curso De Sprites
     
    [ÍNDICE]

    Artigo 1: Realidade do Sprite
     
    1 - Proporção
    2 - Coerência
    3 - Pintura avançada
    4 - Sombreamento

     

    Artigo 2: Efeitos de Aparência
     
    - Cromagem
    - Petrificação
    - Elemental do Fogo
    - Elemental do Gelo
    - Brilho externo
    - Corrente ( Chain armors...etc )

     

    Artigo 3: Tópicos especiais de Pixel Art
     
    Swords
    - Swords
    - Broadswords
    - Laminas retorcidas
     
    Clubs
    - Em 90 graus
    - Em 45 graus
     
    Axes
    - Laminas
    - Cabos
     
    Armors
    - Ombreiras
    - Peitoral
     
    Legs
    - Desenho
    - Sombreamento simples

     
     

    Artigo 4: Perspectiva
     
    - Paredes
    - Mesas
    - Humanoides
    - Quadrúpedes
    - Grama
    - Plantas de Decoração
    - Árvores
    - Pedras

     
     

    Artigo 1: Realidade do Sprite
     
    Proporção
     
    Bom, começando esse nosso novo tutorial de sprites gostaria de chamar a atenção dos spriters que ja possuem certa experiência a ficarem atentos às proporções de seus sprites.
     
    Exemplo 1
     
    Como exemplo fiz essa Armor sem muitos detalhes ou efeitos de sombreamento, o objetivo é mostrar a vocês como uma proporção errada pode estragar um sprite:
     

     
    Aparentemente, não nos parece um sprite ruim, na verdade ele tem potencial...talvez sombreando ali na esquerda...o ombro principalmente, clareando o lado direito nos pontos de brilho pra dar aquele contraste e tal...é ficaria bacana! Mas olhem só para a entrada do pescoço:
     

    Quem tem um pescoço maior do que o próprio peitoral? Seguindo proporções normais provavelmente a armadura ficaria presa nas clavículas do guerreiro, quando o mais correto seria estar no trapézio. Conclusões: Noções anatômicas são sempre bem vindas.
     
    Exemplos


     
     
    Exemplo 2
     

     
    Geralmente Axes bizarros e non-sense fazem muito sucesso entre a galera, mas em um contexto do jogo todo e exagero bizarro e retardadisse TEM QUE FAZER SENTIDO. Se algum zé linguiça me vem e fala que isso é um axe de ELFO. Podemos parar a conversa por ai haha. Cabo pequeno, lamina bizarra de grande. Ele poderia ser um machado de anões...sim, ferreiros, pequenininhos e fortões...sim, mas ele provavelmente teria que segurar com as duas mãos mas esse machado tem lamina dos dois lados, logo o anão iria provavelmente se machucar, outra coisa é o cabo, quando que um cabo TRANÇADO de madeira iria suportar 450 oz de lamina de titanio? hahaha É preciso pensar nisso. Deveriamos ou aumentar o cabo ou diminuir a lamina, como temos só 32x32 de dimensão o certo é diminuir a lamina.
     
    Exemplo 3
     

     
    Muitas pessoas gostam de usar esses prolongamentos do outline ( formato em preto ) pra dar uma aparencia de uma superfície mais afiada...bom eu digo que isso não é necessário. A aparencia de superfície afiada aparece quando vc faz um bom uso do contraste ( geralmente usando branco na parte mais externa da lamina do axe e depois usando uma linha escura ( que eu chamo de linha de separação, vamos ver mais pra frente ) para separar o corte (branco) do resto da lamina.
     
    Não sei se vcs ja tiveram a oportunidade de ver ferro derretido, mas o ferro derrete e quando se quebra para molde enquanto ele ainda está aquecido ele forma esses fiapos. Portanto a aparencia que a superfície tem passa longe de ser afiana, sendo mais aparente o fato de que ela foi mal manuseada durante o processo de confecção.
     
     
    Coerência
     
     
    Detalhes no Sprite
     
    Exemplo 1
    Mais uma característica importante para fazer um sprite realista é a Coerência, ou seja, tudo no sprite deve fazer sentido. Tudo deve ter um porque de existir ali. Vejmos então a nossa Armadura:
     

     
    Bom, logo de cara, percebemos que ela possui uma capa, bacana! Mas onde a capa esta presa? Exato. Não se pode dizer "Po, acho que está atrás da armor...tem que estar, não?". A pessoa que ve seu sprite não pode ter dúvidas do que esta vendo. Então vamos concertar isso:
     

     
    Agora sabemos onde a capa esta presa =]
     
    Exemplo 2
     
    Em escudos isso costuma acontecer bastante, vou postar um exemplo meu para vocês entenderem.
     
    A algum tempo fiz esse escudo:

     
    Certo, agora pensem comigo. Imaginem esse escudo com essas divisões na madeira em uma batalha...Agora imaginem nosso herói sendo atingido por um war hammer bem no meio do escudo ( E consequentemente no meio da madeira, mas na divisão que eu pus)...sim iria quebrar em mil pedaços, no mínimo. E a proteção seria 0.
     
    Agora, se tivessemos um escudo de madeira corrida mesmo, sem divisões ( que são rachaduras de certo modo ) o impacto seria distribuido pela madeira e ela iria resistir mais a ele. Logo:
     

     
    Acho que assim seria mais coerente de se desenhar um escudo de madeira.
     
    Detalhes no nome
     
    Bom a algum tempo eu fiz essa armadura, que na verdade e um Robe. Existe uma enorme diferença entre eles apesar de um robe ser usado como armor.
    E aqui está a diferença:
     
    Robe é igual a uma bata, uma roupa cerimonial ou uma vestimenta encantada, mas de pano. Isso significa usar cores menos saturadas e com pouco brilho.
    King's Robe

     
    Uma armadura é algo mais armorizado mesmo, com peças de metal, muito mais brilhante e com mais cores saturadas
    King's Armor

    [cred: Alex - Redshrike]
     
    Logo o nome que vc escolhe também é importante na coerência.

     
    Pintura Avançada - Método do Modelo de Gradientes
     
    [Desculpem pelo atraso no Tutorial mas com a facul e td mais não tive tempo de postar mais cedo]
     
    Bom, agora que encaramos o sprite como uma diversão que requer certa seriedade para ser bem feita vamos desenvolver nossa técnica de pintura.
    Para quem acompanhou o Tutorial Básico de Sprites não deve ser difícil relembrar dos Orbs da Oficina de Pintura, na verdade esse método é mais fácil para quem esta começando porque em um globo sombreado é mais fácil visualizar quais tons se usará no sombreamento de um sprite. Como este tutorial é direcionado aos que já possuem uma certa experiência, eu aconselho o Modelo de Gradientes que se baseia no seguinte conceito:
     
    Todos com certeza conhecem muito bem essa palheta:
     
    Cor/Definir Cores Personalizadas:

     
    Como podem ver todas as cores possuem tons que de certa forma misturam elas com outras cores, isso é nada mais nada menos do quê?... Isso mesmo, ANTI-ALIASING. Mas vamos abordar isso mais pra frente, o importante aqui é saber escolher os tons certos para começar a pintar, tendo em vista que vc precisará de sombra e luz...e ainda precisará de tons medianos para caracterizar as regiões que não recebem nem muita luz nem possuem muita sombra, e ainda por cima, precisa achar tons entre todas elas pra poder fazer AA. Ufa, coragem meus amiguinhos haha Preparei um sprite para tentar ilustrar a situação:
     

    Bom, o sprite possui fins ilustrativos então também não precisamos de muitos efeitos, reparemos no sombreamento.
     
    Antes de começarmos um sprite devemos saber que cor usaremos, quando escolhermos precisamos escolher os tons claros e escuros para formar nosso modelo de gradiente que usaremos para pintura do sprite. E aqui vão duas novidades pra vocês:
     
    Bom, continuando com nosso amigo Guarda chuva, percebemos que separei vários gradientes de cinza, levemente azulado. Muitas pessoas tem dúvidas em que tom usar para sombra então eu fiz uns testes. E VOU DAR DE BANDEJA PRA VOCÊS
     
    A Cor vc escolhe mas os Tons de Luminosidade que definem sombra e luz são:
     
     
    A cor vcs escolhem mas se eu fosse traçar um sombreamento básico seria com esse padrão ( demorei pra fazer um haha ). Percebam que sendo um padrão, é dever e obrigação fugir dele algumas vezes! Ele está sendo postado aqui porque é um tutorial pra quem tem dificuldade em sombreamento no que diz respeito a escolha de tons. Mas cada um deve personalizar seu sombreamento.
     
    Aqui um exemplo de Ombreira de Armor composta de tons nesse padrão. Observem como o sprite fica limpo:
     

    [Cred: Tim e Galiant ]
     
    COR
     
    Agora, pensando um pouco na cor, o que temos que considerar?
     
    Certo, já somos spriters experientes e já temos em mente que o jogo de luz não é como no jardim de infância onde dizemos que o Ouro, assim como o Sol, é Amarelo. O ouro é um material que possui reflexos intensos de luz amarelo claro e sombras também intensas de marrom escuro, são geralmente cores bem saturadas e que chamam atenção.
    No exemplo:
    Emerald Myth

     
    Mas existe também o ouro envelhecido, aqueles não polidos e com cores menos saturadas com brilho mais fraco. Se vc quer que seu sprite seja de ouro envelhecido, não faz sentido usar cores ofuscantes com alta luminosidade e contraste.
     
    Madeira
     
    Uma coisa importante sobre madeira, muitos não sabem disso mas pensando não só na estética ( Beleza ) do sprite mas sim no sentido que ele precisa ter, eu considero errado o uso de determinados tons para classificar a madeira de determinadas armas ou estruturas de casas ou mobílias.
     
    Em geral, madeiras de cor clara são utilizadas para confecção de lális, réguas, martelos de obra, etc. Não é uma coisa que se pense sempre por isso estou aqui pra abrir a mente de vocês: Madeiras claras, em geral são utilizadas apenas para confeccionar ( criar ) produtos que suportem uma carga baixa ( pouco peso ) porque são pouco resistentes.
     
    Madeiras mais escuras já são utilizadas pra construção de casas, pousadas, pilastras, e móveis principalmente...porque são madeiras mais compactas e rígidas.
     
    Acontece que móveis da sala de estar, portas de armário, mesinhas, de certa forma suportam pouco peso, uma mesa de jantar costuma ser de madeira escura. Sem contar o verniz, que muitas vezes influencia na cor da madeira além de dar brilho ( que não é uma propriedade comum de madeira )
     
     
    Pedras
     
    Pedras são formadas pela união de vários sais cristalizados. Com isso temos 3 tipos de Pedra: Rochas(Stones) Sedimentares, Magmáticas e um tipo especial que é a gema( Gem ).
     
    Obviamente eu não sou geólogo e não estou dando conceitos 100% certos mas achei mais didático dividirmos assim.
     
    Pedras Magmáticas: Pedras escuras, vindas do magma que esfriou.
    Tonalidades: Baixa luminosidade, Baixa Saturação geralmente de cor negra com um leve sombreamento em cinza.
     
    Pedras Sedimentares: Pedras de diversas cores mas em geral de cor clara.
    Tonalidades: Variam do cinza-azulado ao branco-amarelado, possuem níveis de saturação medianos e geralmente não possuem muito brilho, logo para fazer os pontos iluminados geralmente usasse um cinza claro mas sem muito contraste com o resto da pedra.
     
    Gemas
    Essas sim possuem diversas cores, são bem brilhantes e simbolizam realeza e poder, muitas vezes.
    Tonalidades: Contrastes fortes com uma porção(menor) muito clara e uma porção de tonalidades medianas(de tamanho médio) separadas de uma porção bem escura para dar o contraste. Costumam ser usadas para enfeitar cabos de armamentos ou coroas, e algumas armaduras.
     
     
     
    Sombreamento
     
    Neste quarto tópico do nosso primeiro artigo, vamos tratar do sombreamento dos sprites. A técnica do sombreamento é na verdade mais simples em muitos casos do que realmente imaginamos. Lógicamente todo sprite tem um sombreamento diferente de acordo com a proposta dele ( Laminas diferentes de espadas, sombra de uma ombreira multipla em armaduras, acessórios em escudos, etc ). Neste tópico vamos tentar generalizar o sombreamento e entender algumas coisinhas importantes, para isso utilizaremos essa armadura que fiz!
     
    Heavy Armor

     
    Em Resumo:
    ...Galiant
     
    Racapitulando: Na pintura é possível utilizar 7 tons diferentes da mesma cor de acordo com a luminosidade para gerar gradientes de luminosidade ( sombreamento ). Vamos aprender agora como utilizar estes tons:
     
    1 - Linhas de Separação - Luminosidade 50 / Luminosidade 80
    Um dos piores erros dos spriters experientes é que eles dominam bem o AA. Isso é ótimo e um bom sinal para a maioria, mas é preciso ter atenção para não deixar o sprite com um aspecto borrado. As Linhas de Separação existem para identificar todas as partes que compõe o sprite e geralmente usamos tons de baixa luminosidade para criá-la como tons de Luminosidade 50 e/ou 80.
     

    Exemplos de linhas de separação formadas pelos tons de menor luminosidade do sprite.
     
     
    2 - Sombreamento em Cavidades - Luminosidade 50
    A representação de cavidades só é possível quando se utiliza um forte contraste em relação ao sprite como um todo. Percebam que o sprite como um todo possui mais brilho (graus de luminosidade maiores) do que o tom usado para colorir as cavidades(o que é óbvio já que ali não se recebe luz). Percebam também que a linha de separação da ombreira possui mais luz que a cavidade:
     

    Tons de menor luminosidade usados para caracterizar Cavidades(pontos que menos recebem luz em um sprite). Como fundo de ombreiras e interior de armaduras, onde entra a cabeça.
     
    Por isso sempre utilizamos tons de Luminosidade 50, a menor luminosidade que podemos usar já que em Luminosidade 0 temos a cor Preta que utilizamos no contorno.
     
     
    Sombreamento Global (Global shading) - Maiores Luminosidades à esquerda. Menores Luminosidades à direita.
     
    Observem que estamos usando os mesmos tons de luminosidade sempre, só que no lado mais sombreado utilizamos tons de baixas luminosidades mais vezes e ocupando uma área maior. Também não utilizamos no lado esquerdo tons de luminosidade acima de 173. No lado direito, utilizamos tons mais claros em maior área e geralmente usamos tons com luminosidade 200 ou 220 e jamais usamos tons de luminosidade abaixo de 110 nas áreas mais iluminadas. Estes tons de baixa luminosidade servem para fazer Efeito de sombra e também Antialiasing com os tons de Luminosidade 50 que utilizamos nas cavidades
     

    Sombreamento Global
     
     
    Efeito de Sombra
     
    Efeito se sombra é o efeito no qual certas partes do sprite refletem a luz que chegaria ao resto do sprite, fazendo com que tais partes que não recebam luz tenham tons de luminosidade menores do que a maior parte do sprite, caracterizando a sombra.( oh! )
     
    Imaginando uma câmara escura, e considerando o sistema de iluminação do Tibia é isso que eu imagino:
     

     
    Temos:
    1 - Luz intensa vinda do Noroeste chegando a porção da esquerda do sprite logo essa porção iluminada precisa receber tons de luminosidade altos ( 150, 173, 200 e 220 )
    2 - Como a armadura é cilindrica, o lado direito recebe menos luz. Contudo, não fica no breu total, porque a luz vinda do noroeste reflete em outras superfícies e esse reflexo faz com que parte da luz volte para a armadura, só que com uma intensidade de luminosidade menor ( logo, utilizamos tons de luminosidade menor no sprite - Luminosidade 80, 110; 150 e 173 nos locais mais iluminados )
     
    Lugares que precisam ter sombra:
     

     
    1- Embaixo de ombreiras - Tanto nas cavidades quando no peitoral já que a ombreira reflete grande parte da luz. No lado esquerdo não é preciso fazer mais de duas camadas de sombra. Já no direito o mínimo a fazer são duas camadas.
    2- Entrada para pesçoco - Recomendo usar todos os tons de luminosidade nessa cavidade fazendo o efeito que eu chamdo de Dithering que não é nada mais nada menos do que misturar os tons em duas camadas pra dar um auxílio ao AA.
     
    Exemplo de Dithering:

     
    3- Lado direito em Sombreamento Global - Utilização de Tons de baixa luminosidad eno lado direito.
     
    4- Partes mais extremas de armaduras: - Geralmente armaduras tem um aspecto cilíndrico, então as porções laterais precisas ser mais escuras do que as porções do meio( peitoral, abdomen e pescoço ). Sendo que a extreminado do lado direito é mais escura do que a extreminado do lado esquerdo.
     

    Sentido da luz no sombreamento cilíndrico acromático.
     
     

    Artigo 4: Perspectiva
     
    - Paredes

     
    Bom, galera, fazer paredes realmente não tem muito segredo:
     

     
    - Coluna suporte:
     
    Apenas pegue um quadrado 8x8 desenhe uma diagonal no meio dele, copie e cole ligando as extreminades nas proporções da parede
     
    Tijolos
     
    Bom, para fazer tijolos temos uma técnica bem simples:

    Geralmente não se usa cores muito saturadas, eu usei nos modelos só pra indicar de onde vez a luz =]
    Ahh sim...a diagonal surge do meio do tijolo...meu exemplo não ficou dos melhores mas quebra um galho rs
     

    Humanóides

     
    Certo galera, finalmente vamos ter uma perspectiva que é do interesse de todos, suponho eu hahaha e uma das coisas que tenho me especializado nesses ultimos meses. Bom...
     
    Pra perspectiva humanóide não há nada mais do que seguir uma coisinha básica que aprendemos na escola que antigamente não servia pra muita coisa mas AGORA ela nos começa a ser útil...estou falando da famosa GEOMETRIA.
     
    Sim, a começar pela perspectiva em si.
     
     

    Perspectiva

    . Caso perguntem, a perspectiva do Tibia é um estilo de Pixel art no padrão "Top down isométrico em 45 graus", vcs ja devem saber disso e é sempre bom passar aos que não sabem caso pensem em procurar mais sobre o assunto ( pixel art ) que eu recomendo ^^.
     
    Bom o macete é bem simples:
     
    Primeiro: A cabeça deve ser OVAL em 45 graus, e não Redonda como a maioria pensa.
     
    Segundo: Traçando uma linha diagonal atrás do olho esquerdo DO PERSONAGEM ( o que está a sua direita )...temos que observar que essa linha termina no ultimo dedo do pé esquerdo do personagem ( o pé mais a sua direita ) Isso garante uma perspectiva diagonal perfeita.
     
    Terceiro: Todos os componentes esqueléticos e musculares devem estar paralelos. Isso inclui ombros, braços e mãos, que são os mais frequentes erros.

     
     
     
     
     
     

    Créditos: Galiant e Eu Por Ajuda Em Hospedar e Outras Coisas




  2. Upvote
    Mohaus deu reputação a RafaSouza3 em Pic Editor   
    Novo PIC Editor

    Um novo PIC editor muito mais funcional do que os que se encontra aqui no Fórum!


    Você pode escolher qual imagem quer exportar ou importar evitando assim o bug das letras.
     



     
    Scan: http://www.virustotal.com/pt/analisis/49c8a348545101240eae5a2692bd587134dde474b6a81c69cca2797bc9881e6e-1275572860
    Download: http://www.4shared.com/file/-wJMq9Lp/Pic_Editor.html
     
    OBS: PIC Editor retirado de um fórum gringo traduzido por mim e postado por mim tbm! Fico livre de postar os devidos créditos pq n me lembro mais de onde peguei XD.
  3. Upvote
    Mohaus deu reputação a brun123 em Sistema Npc Gym Para Pokemon   
    • nome: Sistema de Ginásio / GYM para pokemon.
    • autor: brun123 (mastercraft)
    • versão testada: TFS 0.36 pl 1 (8.54)
     
     
     
     
    Detalhes: Como cada servidor de pokemon é bem diferente, acredito que muitos erros vão aparecer devido a diferença de IDs das pokebolas por exemplo, mas vou ajudar no que posso.
     
     
    Primeiro passo: crie um arquivo com o nome gymlib.lua na pasta data/lib/, e coloque isso dentro do arquivo:
     
     
     
    Segundo passo: crie um arquivo chamado gym.lua na pasta data/creaturescripts/scripts/ e coloque isso dentro:
     
     
     
    Terceiro passo: abra o arquivo creaturescripts.xml (localizado em data/creaturescripts) e adicione essas 4 tags:
     
    <event type="cast" name="Gym1" event="script" value="gym.lua"/> <event type="attack" name="Gym2" event="script" value="gym.lua"/> <event type="direction" name="Gym3" event="script" value="gym.lua"/> <event type="death" name="Gym4" event="script" value="gym.lua"/> Quarto passo: crie um arquivo chamado brock.xml em data/npc e crie um chamado brock.lua em data/npc/scripts e coloque isso dentro:
     
     
    Quinto passo: se você usar o pokemon dash, vá no arquivo playerattack.lua (data/creatureevents/scripts) e adicione esses códigos embaixo da linha "function onAttack(cid, target)":
     

    if getPlayerStorageValue(target, 201) ~= -1 then for a, b in pairs(ginasios) do if getPlayerStorageValue(target, ginasios[getPlayerStorageValue(target, 201)].storage) == 1 then if getPlayerStorageValue(cid, ginasios[getPlayerStorageValue(target, 201)].storage) ~= 1 then doPlayerSendCancel(cid, "You can't attack this pokemon.") return false end end end end end
    Se você não usa o pokemon dash, crie um arquivo chamado playerattack.lua na pasta data/creatureevents/scripts e coloque isso dentro:
     

    function onAttack(cid, target) if getPlayerStorageValue(target, 201) ~= -1 then for a, b in pairs(ginasios) do if getPlayerStorageValue(target, ginasios[getPlayerStorageValue(target, 201)].storage) == 1 then if getPlayerStorageValue(cid, ginasios[getPlayerStorageValue(target, 201)].storage) ~= 1 then doPlayerSendCancel(cid, "You can't attack this pokemon.") return false end end end end return true end
    e adicione essa tag no creaturescripts.xml (data/creaturescripts):
     

    <event type="attack" name="PlayerAttack" event="script" value="playerattack.lua"/>
    e ainda, abra o arquivo login.lua e embaixo dessa linha: "function onLogin(cid)" adicione esse código:
     

    registerCreatureEvent(cid, "PlayerAttack")  
    Último passo: vá em data/creaturescripts/scripts e abra o arquivo goback.lua (aqui por exemplo, pode ser que haja uma particulariedade de servidor para servidor), e procure pela linha:
    function onDeath(cid, deathList)
    e abaixo dela, adicione esse código:
     
    local owner = getCreatureMaster(cid) for x, y in pairs(ginasios) do if getPlayerStorageValue(owner, y.storage) == 1 then if getPlayerStorageValue(owner, 991) == 5 or not hasPokemon(owner) then setPlayerStorageValue(owner, 991, -1) else local number = tonumber(getPlayerStorageValue(owner, 991)) setPlayerStorageValue(owner, 991, number + 1) end end end Configuração dos NPCs:
    Abrindo o arquivo brock.lua na pasta data/npc/scripts, procure por esta linha:
    "doGymBattle("Brock", "Brock Geodude", cid, 1)"
    o "Brock" precisa ser o nome do NPC e o "Brock Geodude" precisa ser o nome do primeiro pokemon a ser usado.
     
    Agora nessa parte, no script do seu NPC, você também deve editar o nome do NPC no lugar de "brock".
    Se quiser que o player possa lutar com o NPC mesmo depois de tê-lo vencido, é só remover a mesma parte:
     

    if getPlayerStorageValue(cid, ginasios["Brock"].storage) >= 1 then return true end
     
    Ao abrir o arquivo gymlib.lua, você encontra essas duas linhas (são as primeiras):
     

    funcpokemon = {2220, 2222} -- ID das pokebolas (o pokemon tem que estar vivo nessas IDs) bpslot = CONST_SLOT_BACKPACK --em outros servers, pode ser que seja CONST_SLOT_AMMO o lugar onde fica a backpack no inventory Onde está funcpokemon, você coloca o ID de todas as pokebolas do seu server, mas esse ID tem que ser o ID da pokebola com algum pokemon vivo dentro, e esses IDs devem ser separados por vírgula.
    Onde está bpslot, você escreve onde fica a BACKPACK do seu server de pokemon. Se ficar no lugar normal de BPs, deixe como está, mas se sua BP fica no slot da munição (ammunition), você deve estar para CONST_SLOT_AMMO. Isso é tudo, agora vocês podem configurar os IDs e localização da BP facilmente, sem precisar conhecimentos mais avançados sobre scripting, e evitar erros no sistema.
     
    Abrindo o arquivo gymlib.lua, localizado em data/lib/ você encontra essa tabela:
     

    ginasios = { ["Brock"] = { storage = 900, msgdefeat = "You lost! You aren't strong enough yet, don't come back until you get stronger!", msgafk = "Go away if you don't have any pokemons!", msgwin = "Congratulations, you were strong enough to win this battle fairly! Take this Earth Badge as reward.", [1] = { msggo = "Lets fight then! I choose you, Geodude!", msgba = "That's enough, Geodude!", pokem = "Brock Geodude", nextp = "Brock Graveler"}, [2] = { msggo = "It's your turn, Graveler!", msgba = "Come back, Graveler!", pokem = "Brock Graveler", nextp = "Brock Golem"}, [3] = { msggo = "Crush'em, Golem!", msgba = "You did well, Golem!", pokem = "Brock Golem", nextp = "finish"} } } • storage significa a única storage que deve variar de NPC para NPC, tenha certeza de que essa storage não está sendo usada, é você não deve usar a storage 901 aqui, pois a mesma já está em uso pelo próprio sistema.
    • msgdefeat significa o que o NPC irá dizer quando o player perder o duelo.
    • msgafk significa o que o NPC irá dizer caso o player comece o duelo, mas não faça nada depois.
    • msgwin significa o que o NPC irá dizer quando o player vencer o duelo.
    • msggo / msgba significam os textos que o NPC irá dizer ao sumonar o pokemon dele, ou quando o mesmo morrer, respectivamente.• pokem / nextp significam o nome do pokemon que será utilizado, e o próximo pokemon a ser sumonado pelo NPC, respectivamente. Caso o nextp seja especificado como "finish", não haverá um próximo pokemon.
    • o número entre [] significa a ordem utilizada pelo líder para usar o tal pokemon, sendo 1 o primeiro pokemon, 2 o segundo e assim vai...
    Uma tabela detalhada sobre a configuração:
     
     
    Importante: caso for testar o sistema como foi postado aqui, é necessário criar antes os monstros Brock Geodude, Brock Graveler e Brock Golem, assim como adicioná-los no monsters.xml.
    Recomendações: é bom você impedir que o pokemon consiga retornar para a pokebola durante duelos (assim como foi feito no SvkE), para isso, basta adicionar esse código no arquivo goback.lua (data/actions) na parte inicial de retornar o pokemon:
     

    for a, b in pairs(ginasios) do if getPlayerStorageValue(cid, b.storage) == 1 then -- GYM doPlayerSendCancel(cid, "You can't return your pokemon during gym battles.") return true end end Aconselho fazer o mesmo caso seu server tenha script de revive.
     
    Deve-se também checar pelos storages usado em players, somente o 990 e o 991.
     
    No servidor testado, é utilizado apenas pokeballs e ultraballs, com IDs 2220 e 2222 (outra particularidade).
     
    Após ter instalado os arquivos, entre no jogo e use o comando /n Brock para testar o NPC.
     
    Último aviso: o prêmio ainda não foi adicionado (que seria a badge), pois esse sim é bem variado de servidor pra servidor.
    Já que nenhum servidor base já vem com os IDs das badges, cada um adicionou elas de modo diferente, por isso não pude fazer, mas existe uma parte sobre um prêmio no arquivo gym.lua (data/creaturescripts/scripts), procure por isso:
     

    --local item = getPlayerItemById(killer, true, 2307) --doTransformItem(item.uid, 2294) Você pode modificar para adicionar dinheiro ou outra coisa, e pode também desenvolver um sistema de badges.
    Eu não vou fazer badge aqui, mas se vocês tentarem, posso ajudar com problemas.
     
    Quaisquer erros, tentarei responder o mais rápido possível.
  4. Upvote
    Mohaus deu reputação a erro em Deixe Seu Ot E Seu Site Online Com Xampp   
    Ai galera esse post eu retirei aki do Xtibia msm apenas copiei!!
    ai vai um tutorial ensinando colocar seu ot e seu site online
    Todos os Créditos para Mesenga
     
    Está dividido em:

    1º Passo: Preparando o XAMPP
    2º Passo: Criando a Database
    3º Passo: Criando o banco de dados
    4º Passo: Criando uma conta GOD

     
    EXTRA
     

    5º Passo: Criando o site para os players entrarem
    F.A.Q. - Perguntas e respostas

     
     
     
    -Baixando o Xampp-
     
    Xampp download: http://www.baixaki.com.br/download/xampp.htm
    Tamanho: 44,20MB
     
    Depois de baixar instale o XAMPP
     

     
    1º Passo: Preparando o XAMPP ( Créditos ao Lord Joel por lembrar do security)
     
    Abra o XAMPP, depois disso verifique se está tudo corretamente ligado clicando no XAMPP_Panel
     

     
     
    Mini F.A.Q.
     
    Mas meu apache não esta ligando!
     
    Vá até
     
    C:\xampp\apache\conf\httpd.conf:

    Procure por “Listen 80″, mude para “Listen 8090″ Procure por “ServerName localhost:80″, mude para “ServerName localhost:8090″
     
    C:\xampp\apache\conf\extra\httpd-ssl.conf

    Procure por “Listen 443″, mude para “Listen 4499″ Procure por “<VirtualHost _default_:443>”, mude para “<VirtualHost _default_:4499>” Procure por “ServerName localhost:443″, mude para “ServerName localhost:4499″
     
    Explicação: O IIS (Internet Information Service) do windows é padrão para rodar em port 80, então você não conseguira abrir o apache pois vai dar conflito com esta porta que já esta sendo usada, então trocamos!
     
    Mesenga, ainda não funcionou =/
     
    Então recomendo você baixar a versão 1.6.5 por conter a antiga base que pega em todos os windows
    Download aqui: AQUI
     
     
    Continuando...
     
    Agora acesse a página: http://localhost/security/xamppsecurity.php
     
    caso tiver trocado o port acesse: http://localhost:8090/security/xamppsecurity.php
     

     
     
    Vá na pasta do seu OT, abra o config.lua
    Você irá encontrar linhas parecidadas com essas:
     

    -- Database sqlType = "sqlite" >> mude para mysql, pois agora usaremos um servidor mysql sqlHost = "localhost" >> não mexa sqlPort = 3306 >> não mexa sqlUser = "root" >> esse é o usuário usado para acessar o servidor XAMPP, NÃO MUDE sqlPass = "" >> password (senha) que você usou no passo 1 sqlDatabase = "" >> vamos definir um nome para nossa database, ex: theforgottenserver sqlFile = "Styller.s3db" >> isso não irá servir mais pois usaremos um servidor MySql sqlKeepAlive = 0 >> não mexa mysqlReadTimeout = 10 >> não mexa mysqlWriteTimeout = 10 >> não mexa passwordType = "plain" >> não mexa
     
    No meu caso ficou assim:
     

    -- Database sqlType = "mysql" sqlHost = "localhost" sqlPort = 3306 sqlUser = "root" sqlPass = "123" sqlDatabase = "styller" sqlFile = "Styller.s3db" sqlKeepAlive = 0 mysqlReadTimeout = 10 mysqlWriteTimeout = 10 passwordType = "plain"
     
     
    2º Passo: Criando a Database
     
    abra internet e digite http://localhost
     
    caso tiver mudado o port: http://localhost:8090
     

     

    escolha Português BR
    depois disso procure PhpMyAdmin e clique
    tenha certeza que estará nessa página: http://localhost/phpmyadmin/
    caso estiver com port trocado: http://localhost:8090/phpmyadmin/

     
    3º Passo: Criando o banco de dados
     
    Na tela a seguir, você vera onde tem a parte Criar novo banco de dados, digite o mesmo nome que você colocou no config.lua em sqlDatabase=
     

     
    Agora clique criar
     
    Na tela seguinte clique em "importar" e escolha o arquivo "schema.mysql", em alguns ots o nome é "algumacoisa.sql", ex: forgotten.sql (no caso do The Forgotten Server)
     

     
    vai isso,dependendo do server que estiver usando, o numero de importações varia:
     

     
    4º Passo: Criando uma conta GOD
     
    Entre no server e crie uma conta com o Account manager pra ficar mais facil, e também crie 1 player.
    Após criado a account e o player, volte a janela do XAMPP na database e clica em accounts, depois vá em visualizar depois clique no pincel
     

     
    Irá aparecer uma tela com os dados da conta, altere apenas o necessário...
    mude o type de 1 para 5 e group id de 1 (se quiser conta normal com GOD) e 5 (se quiser conta GOD com GOD)
     

     
    depois clique em "executar"
     
    o char ainda não é God apenas a conta, então vá em players na coluna da esquerda...
    clique no lápis de novamente....
    Troque Group de 1 para 6, agora sim, seu char eh god. se quiser GM troque para 4 ou 5 (Sênior GM)
     

    Group id 1 = Player Group id 2 = Tutor Group id 3 = Sênior Tutor Group id 4 = GM Group id 5 = Sênior GM Group id 6 = GOD
     
     
    *IDs acima baseados no Styller OT 8.52
     

     
     
    Seu server está pronto para rodar!
     
     
    EXTRA
     
    5º Passo: Criando o site para os players entrarem
     
     
    -Download do site-
     
    Baixe um dos Websites "SQL" na seção de downloads do Xtibia >> http://www.xtibia.com/forum/Websites-OTserv-f312.html
     
    Recomendados:
     
    Gesior acc maker:
    http://www.xtibia.com/forum/Gesior-034-t116556.html
     
    Nicaw Acc Maker website
    http://www.xtibia.com/forum/Nicaw-Aacmaker...sql-t81939.html
     
     
    Todos os sites já vem com configurador, então entre em:
     
    http://localhost
     
    caso tiver trocado o port já sabe: http://localhost:8090
     
    e Configure-o!
     
    -Vamos configurar o Gesior Acc Maker!-
     
    Baixe o Gesior Acc Maker
    http://www.xtibia.com/forum/Gesior-034-t116556.html
     
    Ligue o XAMPP e o OT
    Vá em C:\Xampp\htdocs
     
    e delete tudo o que tem dentro da pasta
     
    Agora extraia seu site pra lá, feito isso entre em http://localhost ou http://localhost:8090
     
    você verá uma tela assim:
     

     
    clique em Set server path
     
    Agora no campo em que aparece digite o diretório no qual se encontra o ot, ex: C:\OTx
     

     
     
    Agora é só ir clicando um por um e configurar a seu gosto
     

     
    1º Quadrado preto:
     

    1. Set server path --> escolhe o diretório do OT 2. Check DataBase connection --> você só pode proseguir se não tiver nehum erro nessa parte 3. Add tables and columns to DB --> isso carrega uma parte do site 4. Add samples to DB --> isso carrega uma parte do site (vocações) 5. Set Admin Account --> escolhe o account do admin do site
     
    Quadrado Vermelho:

    6. Load Monsters from OTS --> vai dar load automatico nos monstros do OT, verifique se não há nehum erro 7. Load Spells from OTS --> ele vai carregar todas as spells do OT, verifique se não há nehum erro antes de proceguir
     
     
    Pronto, o site está configurado e pronto para criar contas.
     
    Para outras opções clique em ADMIN PAINEL
     
     
    F.A.Q. - Perguntas e respostas
     
     
    @Todos
     
    Duvidas:
     
    -Como faço minha account de GM/GOD?
     
    Siga o passo 4
     
    eu nao encontro schema.mysql od está isso??
     
    Em alguns servidores o nome é theforgottenserver.sql
     
    Qual vai ser meu site pros outros poder entra fazer acc?
     
    seu site vai ser http://seuip:8090
     
    ou se quiser por http://seuip:xxxx sendo "xxxx" um número de port variando entre 80 e 9000, faça o seguinte:
     
    vá em "C:\xampp\apache\conf" e abra o arquivo httpd.conf
     
    procure por:
     
    #Listen 12.34.56.78:80
    Listen 80
     
    Nas duas linhas ponha Um número variando de 80 à 9000 no lugar do 80
     
    exemplo:
     
    #Listen 12.34.56.78:8090
    Listen 8090
     
    Agora procure a linha:
     
    ServerName localhost:80
     
    e troque pelo mesmo número que você colocou
     
    exemplo:
    ServerName localhost:8090
     
     
    -No seu está dando o seguinte problema:
     

    [28/06/2008 03:15:49] Failed to connect to database. MYSQL ERROR: Access denied for user 'root'@'localhost' (using password: YES) [28/06/2008 03:15:49] > ERROR: Couldn't estabilish connection to SQL database!
     
    Antes de colocar oSERVER ONLINE, certifique-se de que o XAMPP está aberto
     
    Até a proxima!
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...