Ir para conteúdo

Líderes

Conteúdo Popular

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

  1. 4 pontos
  2. Serei breve: com esta pequena modificação, o creatureevent onTarget poderá ser executado por monstros. Nas sources do seu servidor, abra o arquivo monster.cpp e procure por: if(it == targetList.end()) { //Target not found in our target list. #ifdef __DEBUG__ std::cout << "Target not found in targetList." << std::endl; #endif return false; } Abaixo deste bloco de código, coloque: CreatureEventList targetEvents = getCreatureEvents(CREATURE_EVENT_TARGET); for(CreatureEventList::iterator it = targetEvents.begin(); it != targetEvents.end(); ++it) { if(!(*it)->executeTarget(this, creature)) return false; } Depois, no código da função: void Monster::doAttacking(uint32_t interval) Abaixo de: if(!attackedCreature || (isSummon() && attackedCreature == this)) return; coloque: if(Creature* creature = attackedCreature->getCreature()) { CreatureEventList targetEvents = getCreatureEvents(CREATURE_EVENT_TARGET); for(CreatureEventList::iterator it = targetEvents.begin(); it != targetEvents.end(); ++it) { if(!(*it)->executeTarget(this, creature)) { setFollowCreature(NULL); setAttackedCreature(NULL); searchTarget(TARGETSEARCH_NEAREST); break; } } } Exemplo do que pode ser feito com esta alteração: Monstro não atacando jogador com X storagedata/creaturescripts/scripts: local storage = xxx function onTarget(cid, target) if isMonster(cid) and isPlayer(target) and getPlayerStorageValue(target, storage) > -1 then return false end return true end Tag: <event type="target" name="blockTarget" event="script" value="nome_do_arquivo.lua"/> No arquivo .XML do monstro, acima de: </monster> coloque: <script> <event name="blockTarget"/> </script>
    3 pontos
  3. Bom dia galera, se me permitem gastar uns minutinhos do seu tempo. Bom algumas pessoas aqui do Fórum já me conhecem, ou pelo menos já me viram por aí, já que mantenho o lado ativo há muitos anos por aqui. Hoje estou passando apenas para anunciar que estou com um Projeto em desenvolvimento para ser lançado muito em breve (já fiz testes betas e farei mais alguns), sendo ele focado em "Brincadeiras Infantis", ou seja, é um servidor completamente diferente de tudo que já viram. Não há matança de monstros (mas estou estudando a possibilidade de adicionar de modo bem bolado), nem matança de players, nem nada que pelo menos eu tenha já visto antes... [editado] O único jeito de morrer por aqui é de fome. haha' × Brincadeiras já funcionando: Pega-Pega Pega-Pega Coletivo Detetive & Ladrão × Brincadeiras sendo adicionadas: Esconde-Esconde → Em testes Pega-Pega Congela → Em desenvolvimento League of Legends Tibia → Em desenvolvimento e testes × Brincadeiras que estão nos planos: See You in My Nightmare (local de caça de monstros) Batata-Quente Bom, esta é a Logo que fiz correndo para que possamos dar início aos "Tests Beta". Abaixo, veja um pouco do Como Funciona cada brincadeira que já estão disponíveis: Obs: As descritas abaixo estão prontas porém ainda sendo ajustadas, por isso a necessidade dos Betas Tests. Pega-Pega, todos já sabem como funciona né? Todo mundo já brincou disso um dia, sendo assim, dos princípios básicos não preciso falar muito, abaixo segue algumas informações que considero importante: Pega-Pega Coletivo, é quase a mesma coisa do anterior, só que o número de bobos multiplica. Detetive & Ladrão. O que é o Templo Principal (Home Temple)? Como adquirimos Experiência, bens e itens? Aos poucos irei editando e adicionando as novidades no tópico. Breve irei gravar um vídeo básico mostrando o jogo em funcionamento para os que ainda não conhecem. Obrigado a todos.
    2 pontos
  4. Agradecemos seu feedback. Esperamos todos vocês no fórum!
    2 pontos
  5. Como o Xtibia mudou seu site, e o modo de edição de tópico colocarei resumido.. Global Compacto Versão 8.60 Links com DLL e Sem DLL http://www.mediafire.com/?651yyaal4lklfbb http://www.mediafire.com/?wkwwote6edvcv4o
    1 ponto
  6. Marco Oliveira

    Baiak MoazOT | V1.1

    encontrei esse mapa abandonado nas profundezas do mega, ele é um baiak 100% diferente pois todo o mapa foi modificado. ele não está 100% ainda falta algumas hunts VIP e configurar os itens. Espero que façam bom proveito do meu projeto de coração, pois trabalhei muito nele. E se alguém terminar e por online me avisem, quero dar uma jogada pra ver como ficou! Caso tenha algum problema com o servidor baixe as sources oficiais dele clicando AQUI. Principais Quest's Annihilator Pits OF Inferno Demon Helmet Monstros VIP'S Hydra VIP Demon VIP Infernalist VIP Grim Reaper VIP Medusa Vip FrostDragon VIP Warlock Vip Atualizações Versão 1.1 Bug das Houses corrigidos. Stages fixados. Fixado Outfit Account Manager Scripts corrigidos. Adicionado evento de DoubleXp Remoção de scripts não utilizados. Disto Imagens
    1 ponto
  7. Ola galera, Hoje eu vou compartilhar com vocês o meu andamento para tentar quebrar a criptografia e estrutura do cliente da pokexgames... Primeiramente eu fiz um reverse com assembler no cliente deles e descompactei os arquivos: Beleza, ate ai tudo certo. Percebi que havia uma pasta oldclient que me chamou muita atenção, e me deparo que o OTClient de alguma for le ela, olha oque encontrei dentro da pasta: Opa parece que agora esta andando, conseguimos o SPR & DAT deles e sua estrutura abre perfeitamente no Object Builder, agora vamos partir para os modules.. Agora vamos atacar alguma pasta e tentar ler os codigos?? Os codigos estão todos illegiveis, tenho uma possivel ideia doque fizeram, vou tentar aqui e posto resultados.. Imagens suspeitas??
    1 ponto
  8. Eles usam técnicas de obscurecimento para os scripts/data da estrutura do otclient... Isso não é difícil quebrar (vocês mesmo conseguiram)... Os scripts em si, são Lua, porem eles foram compilados usando o luac... Existem descompiladores para Lua, mas como descompiladores de outras linguagens, não deve trazer o código 100% perfeito, mas deve ser suficiente se o interesse aqui for apenas analise e estudo. Acredito que muito do funcionamento do cliente deles seja codado direto na source do otclient, em C++... Essa parte do código, por ser C++, eu acredito que seja impossível de fazer engenharia reversa em um nível aceitável... Então se o interesse aqui é trazer o código do cliente para por exemplo re-utilização em outras projetos, acredito que seja perda tempo...
    1 ponto
  9. JonatasLucasf

    Debian7 sem permissão

    Permissão total : chmod 777 nomedapasta teste ai
    1 ponto
  10. Mudrock

    [LEIA] Modelo para Divulgação

    Leia atentamente! Ola pessoal, como venho percebendo a maioria das pessoas que vão divulgar seu servidor esquecem de muitas informações oque deixa seu servidor com uma primeira vista um tanto quanto Ruim!. para isso estou criando esse tópico com um modelo que a partir de agora deverá ser seguido para divulgar seu servidor, o Membro que não seguir esse modelo tera apenas 24horas apartir da criação do tópico para deixar no modelo ou com as informações necessária! Informações Minimas/Obrigatórias que seu servidor DEVE conter na postagem! IP DE CONEXÃO VERSÃO SITE ( OPCIONAL ) NO MINIMO 1 IMAGEM DO SERVIDOR ou LOGO DESCRIÇÃO BÁSICA 1. Esta seção é apenas para posts de servidores já online 2. Postagens de servidores que não sejam do tipo de Servidor Open PVP, serão automaticamente fechadas. 3. É permitido reviver tópicos, mas sem flood, podendo fazer double post, UMA VEZ POR DIA. 4. É permitido postar 1 vez por semana um novo tópico de seu servidor (não sendo obrigatório).
    1 ponto
  11. Ok estarei mudando para você. Sobre as sources não tem como eu pegar as sorces ou tentar achar essa rsrs mais tem varias na internet. Siga mais detalhes no Imbox. Estarei mudando para você aqui sem problema. Topico resolvido obrigado por escolher o Xtibia
    1 ponto
  12. Mudrock

    Ranking diferente in-game

    ​ Comando para utilizar !highscores TUTORIAL /globalevents/globalevents.xml <globalevent type="startup" name="Highscore" script="highscores.lua"/> <globalevent interval="10800000" name="Highscores" script="highscores.lua"/> /globalevents/scripts/highscores.lua local QueryList = { ['Level'] = {'`name`, `level` AS `score` FROM `players`', 'ORDER BY `experience` DESC'}, ['Magic Level'] = {'`name`, `maglevel` AS `score` FROM `players`', 'ORDER BY `maglevel` DESC, `manaspent` DESC'}, --['Storage'] = {'`players`.`name` AS `name`, `value` AS `score` FROM `player_storage` LEFT JOIN `players` ON `player_storage`.`player_id` = `players`.`id`', 'AND `key` = 1550 ORDER BY `value` DESC'} } for i, skill in ipairs({'fist','club','sword','axe','dist','shielding','fishing'}) do local index = (skill == 'dist' and 'Distance' or skill:gsub('^%l',string.upper)) .. (i < 6 and ' Fighting' or '') QueryList[index] = {'`name`, `skill_' .. skill .. '` AS `score` FROM `players`','ORDER BY `skill_' .. skill .. '` DESC, `skill_' .. skill .. '_tries` DESC'} end function updateHighscores() for skill, query in pairs(QueryList) do local t, Query = {}, db.storeQuery('SELECT ' .. query[1] .. ' WHERE `deletion` = 0 AND `group_id` < 3 ' .. query[2] .. ' LIMIT 30;') if Query ~= false then repeat table.insert(t, {result.getDataString(Query, 'name'), result.getDataInt(Query, 'score')}) until not result.next(Query) result.free(Query) setGlobalStorageValue(skill, t) end end setGlobalStorageValue('highscores', os.time()) end function onStartup() updateHighscores() end function onThink(interval) updateHighscores() return true end/creaturescripts/creaturescripts.xml<event type="modalwindow" name="Highscores" script="highscores.lua"/>/creaturescripts/scripts/highscores.luaSkillWindow = { [1337] = 'Local highscores at ' .. getConfigInfo('serverName'), [1338] = 'Level', [1339] = 'Magic Level', [1340] = 'Shielding', [1341] = 'Distance Fighting', [1342] = 'Sword Fighting', [1343] = 'Club Fighting', [1344] = 'Axe Fighting', [1345] = 'Fist Fighting', [1346] = 'Fishing', --[1347] = 'Storage' } highscores = ModalWindow(1337, SkillWindow[1337], 'Choose a category:') for i, skill in ipairs({'Level','Magic','Shielding','Distance','Sword','Club','Axe','Fist','Fishing'}) do highscores:addChoice(i, skill) end --highscores:addChoice(10, 'Storage') highscores:addButton(1, 'Show') highscores:addButton(2, 'Close') highscores:addButton(3, 'Info') highscores:setDefaultEnterButton(1) highscores:setDefaultEscapeButton(2) highscores:setPriority(true) function string.diff(diff) --by Colandus and fixed by Cykotitan local format = { {'day', diff / 60 / 60 / 24}, {'hour', diff / 60 / 60 % 24}, {'minute', diff / 60 % 60}, {'second', diff % 60} } local out = {} for k, t in ipairs(format) do local v = math.floor(t[2]) if(v > 0) then table.insert(out, (k < #format and (#out > 0 and ', ' or '') or ' and ') .. v .. ' ' .. t[1] .. (v ~= 1 and 's' or '')) end end local ret = table.concat(out) if ret:len() < 16 and ret:find('second') then local a, b = ret:find(' and ') ret = ret:sub(b+1) end return ret end function string.abbr(first, final, limit) local str = first .. final if str:len() > limit then str = first:sub(1, limit-(final:len())) .. final end return str end function sendSkillWindow(cid, windowId) local highscore = ModalWindow(windowId, 'Ranking for ' .. SkillWindow[windowId], 'Scroll down for entire list') for rank, score in ipairs(getGlobalStorageValue(SkillWindow[windowId])) do highscore:addChoice(rank, string.abbr(rank .. '. ' .. score[1], '... ' .. score[2], 30)) end highscore:addButton(1, 'Back') highscore:addButton(2, 'Close') highscore:addButton(3, 'Info') highscore:setDefaultEscapeButton(2) highscore:setPriority(true) highscore:sendToPlayer(cid) end function onModalWindow(cid, modalWindowId, buttonId, choiceId) if not SkillWindow[modalWindowId] then return end if buttonId == 3 then doPlayerPopupFYI(cid, 'Local highscores were last updated ' .. string.diff(os.time()-getGlobalStorageValue('highscores')) .. ' ago.') elseif buttonId == 1 then if modalWindowId == 1337 then sendSkillWindow(cid, 1337+choiceId) else highscores:sendToPlayer(cid) end return end return unregisterCreatureEvent(cid, 'Highscores') end /talkactions/talkactions.xml <talkaction words="!highscores" script="highscores.lua" /> /talkactions/scripts/highscores.lua function onSay(cid, words, param) registerCreatureEvent(cid, 'Highscores') highscores:sendToPlayer(cid) return false end Créditos : cbrm
    1 ponto
  13. Bruno

    !vipdays

    @@kolosso, Vá em data/talkactions/talkactions.xml e adicione a seguinte tag: <talkaction words="!vipdays;/vipdays" event="script" value="vipdays.lua" />Agora vá em data/talkactions/scripts, crie o arquivo vipdays.lua com o seguinte conteúdo: function onSay(cid, words, param) if vip.hasVip(cid) then local dias = math.floor((vip.getVip(cid) - os.time()) / (24 * 3600)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce tem " .. dias .. " dias de VIP Account.") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce nao possui uma VIP Account.") end return true end
    1 ponto
  14. SkyLigh

    !vipdays

    function onSay(cid, words, param) if vip.hasVip(cid) == TRUE then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Your vip end in "..os.date("%d %B %Y %X ",vip.getVip(cid))) else if vip.getVip(cid) ~= 0 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You're not a vip player. Your vip has finished in "..os.date("%d %B %Y %X ", vip.getVip(cid)).." and now is "..os.date("%d %B %Y %X ", os.time())) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You're not a vip player. You naver has a vip.") end end return TRUE end é uma talkaction não manda a tag por que tô sem server no pc
    1 ponto
  15. suave , vou seguir seu conselho caso tenha update
    1 ponto
  16. MazzehaPhoenix

    10 Maneiras De Pegar A Sword Of Fury

    Você está cansado de ler histórias sobre como pegar a lendária Spike Sword de Rookgaard? Está de saco cheio de quebrar a cabeça para desvendar um dos maiores mistérios Tibianos? Não se preocupe, seus problemas acabaram. Confira 10 diferentes dicas que te ajudarão a pegar a espada da fúria, levando você a fama e a glória! Dica nº 1: Use uma catapulta Essa é uma dica eficaz onde você tem uma chance de 40% de cair na ilha da Sword of Fury, caso contrário, você tem 10% de chances de cair na água, 40% de conseguir uma viagem direto para Mainland e 10% da catapulta não funcionar. O único problema desse método, é que se você conseguir pegar a espada com êxito, não terá como sair da ilha. Dica nº 2: Use uma bola como boia Esse é um dos métodos talvez mais práticos de se obter a almejada espada da fúria. Basta você comprar uma bola de natação que pode ser encontrada na área premmy na NPC Lee’Delle, e então atravessar o mar até a ilha da Sword (verifique com cuidado se a bola não está furada). O único problema desse método é que você pode encontrar tubarões pelo caminho, então cuidado! Dica nº 3: Ressuscite o Dragon da Copper Shield Quest A dica numero três é uma das mais perigosas possíveis, entretanto sua eficiência é grande, resta você saber se vale apena correr o risco. Você irá precisar de um jogador que tenha sido rookado e que tenha experiência em magias (Sorcerer ou Druid). Assim que chegarem ao local, iniciem um ritual de ressuscitamento e convença o Dragon a levá-lo voando até a ilha da Spike Sword. Caso sua proposta não agrade a criatura, já sabe o que pode acontecer né? … Dica nº 4: Spameie Sunrise Essa dica não é muito recomendada, mas encher o saco da maior lenda de Rookgaard pedindo dicas de como completar a quest da Spike Sword pode lhe render algumas informações interessantes. Sempre que Sunrise logar em seu personagem, avise a todos os seus amigos e mandem mensagens para ele. Uma hora ele vai ficar de saco cheio e vai revelar como completar a missão. Dica nº 5: Ameace o guarda Dallheim Dallheim é o guarda que protege a cidade de Rookgaard contra criaturas que podem aparecer do norte. Antigamente ele se gabava por ter cortado cabeças de Cyclops com a sua espada da fúria. Ameaça-lo para te entregar a espada pode ser bem útil, mas você corre o risco de ter a sua cabeça cortada. Fica a você decidir se vale a pena ou não. Dica n° 6: Faça uma ponte com árvores Para você conseguir pegar a espada com êxito usando esse método, é preciso que você tenha um personagem forte para poder arrancar as árvores, caso contrário será um processo demorado e que pode não valer a pena o esforço. Método prático e eficaz, onde o único problema que você poderá ter são com os mappers da CipSoft. Dica n° 7: Atravesse o mar em um barril Nada como seguir a velha dica dos nossos ancestrais que tentaram por mais de uma vez descer as catarátas em um barril na tentativa de pegar o almejado Epaminondas Doll. Essa é uma dica muito simples. Atravessar o mar em um barril e usando uma pá como se fosse um remo, pode lhe ser bem útil para conseguir pegar a espada da fúria. Dica nº 8: Pesque a Spike Sword Muitas vezes nossos pais, avós e em alguns casos até tios, já nos levaram para pescar pelo Tibia. Porque não usar a habilidade que você adquiriu para ir em busca da espada? Esse é um método complicado porém prático, se você tiver a malandragem do verdadeiro pescador, conseguirá contar boas histórias para seus netos, e por que não contar que pescou a melhor espada de Rookgaard? Dica nº 9: Faça uma mochila ajato Esse é um ótimo método de se obter a espada, mas não é tão simples assim. Para usar essa dica, você precisa ser um jogador premium e ter o addon da backpack (que é o mais difícil de se conquistar na ilha). Tendo isso, você precisará comprar algumas toxas no NPC Al Dee e juntá-las usando uma corda. Feito isso, basta acender e torcer para que tudo de certo. É um método complicado mas a garantia de dar certo é grande. Dica nº 10: Sequestre um membro da CipSoft Caso você não tenha conseguido obter a Sword of Fury usando os nove métodos citados acima, sua última opção para conseguir obtê-la será sequestrar um membro da CipSoft e pedir a espada como recompensa. Caso você consiga sequestrar um CipSoft Member, suas chances de possuir a espada aumentam drasticamente, o único problema que você irá encontrar é se tornar o player mais procurado do Tibia e ter seu char deletado. Agora que você terminou de ler todas as 10 dicas e sabe que não precisa ser nenhum expert de Rookgaard, ler todos os livros da biblioteca ou criar milhões de teorias, corra e seja o primeiro a obter a espada da fúria e deixe seus amigos com inveja! Créditos: Alquimista Mike Gostou do tópico? Então Recomende-o e Rep+
    1 ponto
  17. olhonoporco

    Mega Curso De Sprites

    Não sei se aqui é a área certa, se não for desculpe. Primeiramente queria dizer que não fiz esse tutorial. Botei os créditos no final, só estou trazendo para o xtibia. Tirei os erros de português, salvei imagem por imagem e hospedei um por uma porque meu Imageshack está com problema. São 59 imagens e tive que salvar, hospedar (uma por uma, pois o imageshack está com problema) e depois localizar e adicionar a imagem, todas elas... Espero que gostem... __________________________ •Artigo 1: Características Principais de um Sprite 1 - Tamanho 2 - Luz 3 - Perspectiva 4 - Edição •Artigo 2: Começando um sprite 1 - Introdução ao PAINT 2 - Criação de um sprite 3 - Pintura 4 - Aprimoramento •Artigo 3: Efeitos gerais - Módulo: Fireworks 1 - Magic Wand Tool 2 - Blur Tool 3 - Sharpen Tool 4 - Dodge Tool 5 - Burn Tool 6 - Smudge Tool •Artigo 4: Efeitos gerais - Módulo: PAINT 1 - Como colorir um sprite 2 - Oficina de pintura 3 - Anti-Aliasing e suas aplicações 4 - Lista de cores •Artigo 5: Efeitos particulares 1 – Jóias de enfeite 2 – Cavidades 3 – Rachaduras 4 – Sprites Envelhecidos 5 – Sprites brilhantes sem “Sharpen” Artigo 1: Características Principais de um Sprite 1- Tamanho Bom, para a galera que está começando agora a fazer sprites e não sabe por onde começar, aqui começaremos com o básico do básico, a dimensão dos sprites: De fato é bem simples: •Sprite pequeno porte (carregável) Todo sprite carregável deve possuir os padrões de sua Backpack e para isso, é preciso que ele tenha as dimensões 32x32 Pixels.. Veremos mais a frente como dimensionar sua página de edição.[Art2:1] •Sprites de médio porte Geralmente outfits, monstros humanóides, e pequenas estátuas seguem padrões com dimensão 32x32 Pixels no eixo de base(Chão) também, porém é preciso que eles se mantenham na perspectiva do Tibia •Sprites de grande porte A grande maioria dos sprites de grande porte segue um padrão de 64x64 Pixels no eixo de base(chão), é o caso de Pedras, Estátuas, Mesas, e grande parte dos itens que compõe o cenário: 2 - Luz •Direção da Luz Uma das regras mais importantes e obrigatórias: caso seu intuito em fazer sprites seja criar itens para o Tibia: A LUZ VEM DO NOROESTE, mas mesmo assim, ainda existe luz vinda das demais fontes naturais e refletida pelas superfícies. Como no esquema a seguir: Sendo assim, seu sprite recebe luz de todas as direções, mas preferencialmente pelo Noroeste. 3 - Perspectiva •A perspectiva é teoricamente bem simples também, basta você seguir os padrões de formato estabelecidos pela Cipsoft [Art1:1] e desenhar seguindo uma orientação diagonal: Como no esquema: Artigo 2: Características Principais de um Sprite 1- Introdução ao PAINT Bom galera, é fato que muitos de nós já abominaram o PAINT muitas vezes, mas uma prova de que ele é a chave para o sucesso de muitos é que, todo sprite é feito no paint, logo todos os itens mais belos bem desenhados que vocês já viram vieram do mesmo lugar, e esse lugar é o Paint. •Onde está o Paint? O primeiro de tudo é localizar o programa PAINT em seu computador, geralmente ele se encontra no seguinte endereço: Menu Iniciar/Todos os Programas/Acessórios/Paint. •Configurando as dimensões da página Assim que abrir o PAINT, é preciso configurar a página para os padrões do Tibia. Para configurar a página siga o exemplo: IMAGEM/ATRIBUTOS E configure em: 32x32 Pixels para Itens de pequeno e médio porte(carregáveis e outfits/humanóides): 64x64 Pixels Para itens de grande porte: •Principais ferramentas que utilizaremos no paint para fazer Sprites: - Lápis :Usaremos para desenhar e colorir. - Linha : Usaremos para dimensionar sprites(Perspectiva) e algumas vezes na pintura criando linhas. - Conta-gotas : Usaremos na pintura para captura de cores para o lápis. - Recorte Quadrado e Aleatório : Usaremos quando para movimentar o Sprite ou Parte dele ao longo da página - Lupa : Usaremos para aumentar seu sprite em duas, seis, oito e Doze vezes •Criação de um Sprite Certo, finalmente deixar de teorias e vamos colocar a mão na massa. Começaremos desenhando um formato apropriado, como este Tutorial foi feito para um nível Básico e Intermediário de Sprite Art, vamos começar com um formato simples, utilizando a Lupa de aumento em 8x ou 12x. Para ficar mais fácil desenhar os pixels simetricamente, o melhor é Quadricular a página apertando CTRL + G. 8x + [ Ctrl + G ] 12x + [ Ctrl + G ] Para configurar o aumento de 12x é preciso clicar exatamente na linha que limita o quadro de aumentos: Bom, vamos começar com uma espada. Veremos que até o formato mais simples pode ficar muito bom se for bem trabalhado: Formato externo - Sempre Preto - Sempre dentro do espaço exigido pela Cipsoft Formato interno - Sempre usar cores escuras mas Nunca Preto - Dividir bem as partes a serem detalhadas Pintura - A pintura inicial deve ser simples para visualizar como o sprite deve ficar - Feito isso, segue-se para Aprimoramento e Oficina de Pintura ou para o Fireworks. - Aproveite para corrigir os pixels pretos que esqueceu dentro do Sprite ;D Aprimoramento - Se preferir desenhe alguns detalhes, como a divisória da lamina e jóias de enfeite - Feito isso: Sigamos para a Oficina de Pintura! Ou para o Fireworks... Artigo 3: Efeitos gerais - Módulo: Fireworks Bom galera, pra ser sincero com vocês, eu não começaria a editar os efeitos pelo Fireworks, mas não se pode negar o fato de que muitos sprites ficam "bacanas" quando feitos no fireworks, mas na minha opinião, ele deve ser um programa de edições finais...como "escurecer isso aqui e ali" "clarear aqui", "deixar com cores mais vivas lá". Porém muitas vezes as pessoas preferem utilizar o Fireworks ou o Photoshop pra edição de efeitos então vou dar essa opção a vocês. Efeitos Gerais - Magic Wand Tool: Usada para extrair o fundo do sprite, muito usado em fakes e outras edições como efeito de "Transparência": - Blur Tool: Usada pra homogeneizar as cores, deixando-as com tons parecidos. Dando um efeito de Embaçado - Sharpen Tool: Usada principalmente para dar mais vida ao sprite, deixá-lo mais brilhante e com detalhes aparentes. O ruim é que em grande escala pode gerar riscos pretos indesejáveis. - Dodge Tool: Talvez, juntamente com a Burn Tool está seja a ferramenta mais utilizada no Fireworks. Utilizamos Dodge Tool sempre que quisermos clarear um sprite, tornando as cores mais próximas do branco: - Burn Tool: Usada para escurecer seu sprite, muito usado na porção direita dos escudos e outros equipamentos evidenciando a vinda da luz ao noroeste. Por fim, juntando todo nosso trabalho no FireWorks é visível a diferença entre o molde e o sprite final. Basta lembrar que se a luz vem do Noroeste a parte Sudeste fica mais escura em relação a parte voltada para luz porem não fica PRETA já que os raios são refletidos para todas as direções Processo de edição pelo Fireworks: - Dodge Tool para clarear a ponta da lâmina e a lateral voltada para o noroeste. - Burn Tool para escurecer a porção que mais se aproxima do cabo com mais enfoque na lateral direita do sprite - Sharpen Tool para dar vida aos pixels mais iluminados para torná-los conseqüentemente os mais brilhantes. Controle a transmissão da luz pensando nos reflexos da luz e na perda da força da luz ao longo da lâmina, já que onde a luz bate, ela é refletida aos olhos do observador, passando somente uma parte ao resto do sprite. Assim se segue em todos os pontos de luz: •Artigo 4: Efeitos gerais - Módulo: PAINT 1 - Como colorir um sprite Certo galera, acho que finalmente chegamos no meu método pessoal e mais esperado do tutorial(por mim) Daqui para frente abordaremos todo o verdadeiro trabalho de um Spriter de acordo com o meu pensamento, é um método trabalhoso, realmente trabalhoso; mas um método que torna o sprite realmente Tibiano. E realmente bonito. Pintura PAINT x Fireworks Tudo na pintura se baseia na escolha das cores e dos tons, em matéria de sprites não basta somente escolher uma ou duas cores diferentes, colorir um sprite como fizemos na pintura básica [Artigo 2:3] e depois disso apenas usar Blur Tool(Clarear) e Burn Tool(Escurecer) do Fireworks no Sprite. Para nós o Fireworks será uma ferramenta básica de edição. A escolha das cores Bom, como dito anteriormente o mais importante na pintura de um sprite é sua cor e os tons dessa cor. Geralmente usamos tons diferenciados de uma mesma cor para gerar a idéia de sombreamento e luminosidade. A utilização destes tons varia de acordo com três pontos importantes: Material a ser pintado: Metal, Bronze, Tecidos, Marfim, Ouro, Pele. Propagação de luz no material: Alguns materiais como pedras não polidas, troncos e materiais envelhecidos não propagam a luz muito bem devido a manchas e ao não polimento de suas superfícies. Reflexo da luz no Material: Tecidos, Peles, Materiais envelhecidos e pedras não polidas não devem refletir a luz como objetos polidos e bem trabalhados, essa diferença precisa existir. •Oficina de Pintura Bom a Oficina de Pintura foi um projeto meu, seguindo dicas de ótimos spriters do Mundo Fake como o Marcotonio e outros tutoriais, que continuo usando até hoje e que se baseia na reunião de várias cores e seus diferentes tons em volta do sprite a ser pintado. Sendo a pintura do sprite realizada pela captura das cores pré-definidas em Orbs coloridos com o conta-gotas. Tudo na pintura se baseia na escolha das cores e dos tons então Desenhei orbs coloridos para facilitar a captura de cores: Veremos mais pra frente como isso se aplica. •Como fazer um Orb colorido: Na verdade é bem simples quando se tem o Fireworks, basta usar a Dodge Tool para clarear e a Burn Tool para escurecer. Mas basicamente o que se deve fazer é: - Escolher uma cor e fazer um círculo - Clarear a porção noroeste e um pouco da sudeste (para dar idéia de esfera) - Escurecer o meio para intensificar o efeito de esfera e refração da luz. - Pode-se fazer isso pelo paint selecionando uma cor e escolhendo diferentes tons desta cor para colorir o círculo em forma de esfera, mas utilizando as Ferramentas do Fireworks vai lhe poupar muito trabalho. •Seguindo as etapas: Créditos: Redstrike •Como organizar minha Oficina de Pintura: - O primeiro de tudo é você desenhar seu sprite - Quando passar por todas as etapas abordadas no Artigo 2, copie seu sprite e cole em um arquivo PGN ou BPM que você chamará de Oficina de Pintura. - Lá você deve colar também suas cores pré-definidas e deixá-las em torno do sprite. - Se tiver itens antigos com uma boa distribuição de cores e tons copie-os e cole todos na Oficina Em resumo: Créditos ao Leomage pelo axe •Iniciando as etapas da pintura: Aproveitando que estamos trabalhando com uma espada, que é um sprite simples, vamos aproveitar para um mini tutorial de espadas =D Bom, pra começar vamos às regras básicas: Regra número 1 - Toda espada possui uma linha média que definirá o corte da lâmina Regra número 2 - A porção esquerda da linha média recebe mais luz do que a porção da direita. Regra número 3 - A luz não é estática, ela se propaga ao longo de todo sprite porém alguns pontos são menos iluminados como regiões de cavidades na guarda, cabo e principalmente na porção da lâmina que está voltada contra a luz, tendo o corte como barreira. Certo, vamos clarear a mente de vocês •Regra número 1: Linha média que define o corte •Selecionei as cores que usaremos na pintura desses sprite. Certo, a Linha média não é nada mais do que uma reta diagonal formada por 4 ou 5 tons diferentes da mesma cor, logo consultaremos o mesmo Orb colorido no caso...o azul-acinzentado. Também se pode capturar cores de seus antigos sprites ou imagens para possuir uma maior gama de opções. [ virei e pintei de marrom o fundo pra vocês poderem entender melhor com a lamina voltada pra luz ] -Depois pintaremos as laterais médias, lembrando sempre que a luz é dividida no local que eu chamo de Secção Transversal, ou simplesmente "ST" representado pela cor mais escura perto da ponta da linha média. Seguindo o Tutorial do Strad, podemos perceber a diferença das lâminas e saber como nossa linha média deve se comportar. - As laterais médias, são as laterais da linha média e geralmente seguem três regras: •Regra número 1: A ponta da espada recebe mais luz, logo todos os pixels devem ter tons mais claros na ponta caminhando para tons mais escuros conforme se aproximem do cabo. •Regra número 2: A lateral esquerda possui uma propagação maior da luz do que a lateral esquerda, logo os pixels são mais claros em relação a esquerda. •Regra número 3: A Secção Transversal(ST) é de extrema importância para o direcionamento do corte e da luz. No exemplo: E ao final da pintura das laterais médias: Certo, nosso Sprite está começando a ficar bonitinho hehe, agora o próximo passo é pintar as linhas das extremidades. Geralmente essa é a parte que entra o Anti Aliasing, um efeito usado muitas vezes para deixar o Sprite mais redondo( falaremos dele mais pra frente ) mas usaremos ele neste caso para deixar nosso sprite mais ponte agudo! Isso é feito utilizando Cores Escuras com Tons próximas do contorno, que no caso dos itens de Tibia é Preto. Faremos isso deixando alguns pixels mais claros perto do cabo para dar a idéia de uma superfície "Afiada". Como na imagem: - E ao acabar a lâmina partimos para a guarda. Seguindo mais três regras: •Regra número 1: A porção esquerda da guarda recebe mais luz do que a direita. Porém há pouca diferença. •Regra número 2: Cavidades, Jóias, Rachaduras e Cabos com guardas longas recebem sombreamentos à parte da guarda. •Regra número 3: A guarda não segue padrões de Secção transversal. ( pelo menos a maioria delas. ) Então vamos pintar a Guarda! Escolham cores também próximas do preto para o AA mas que mantenham a idéia dourada, reforce isso com cores mais vivas ao longo da guarda, utilizem para isso o Orb Colorido dourado. Exemplo: E por fim temos nosso Sprite totalmente feito pelo PAINT. Parabéns a todos que leram até aqui! •Vejamos uma comparação rápida entre o nosso Sprite inicial e suas edições pelo Paint e pelo Fireworks: 1 - Formato Externo 2 - Formato Interno 3 - Pintura básica 4 - Aprimoramento 5 - Rota pelo Paint 6 - Rota pelo Fireworks Façam seus julgamentos! =D Eu pessoalmente diria que a espada 100% paint ficou muito melhor, talvez clareasse mais a lâmina com o Fireworks ou usando uma técnica que vamos ver no tópico: Sprites brilhantes sem “Sharpen” [Art5:5] *OBS: Com laminas mais curtas em largura é mais fácil fazer AA •Anti-Aliasing e suas aplicações O Anti-Aliasing é uma técnica muito utilizada para "arredondar" o sprite, e quando digo arredondar eu me refiro a Diminuição dos acidentes nas armações dos pixels Isto é: Algo pra disfarçar o fato de todos serem mini-quadradinhos haha. Isso se dá com o clareamento gradual da cor que mais se assemelha ao contorno e ao sprite, muitas vezes cinza, marrom ou até mesmo azul...todos em seus tons mais próximos do preto. •Efeitos de Arredondamento Ao desenhar um círculo branco percebemos que existem muitos pontos brancos perto dos pixels pretos do contorno, isso faz com que o Sprite fique "quadrado" literalmente! haha. A correção desse efeito é fazer um pequeno degradê. •E que parta do preto do contorno até a cor do fundo. Como no nosso caso estamos utilizando a cor branca... Nada melhor do que fazer um degradê do preto para o branco usando a cor CINZA. •Efeitos de Ponta-afiada Para fazer ponta não precisamos desenhá-la no formato mas caso preferirem assim; fiz essa imagem, bem ilustrativa ao meu ver da influencia do AA no Efeito de ponta dos Sprites •Efeitos do AA na Pintura O Anti Aliasing é muito usado (e bem usado) na Alemanha e na Suécia para dar mais vida aos Sprites, evidenciando e enfatizando as cores vibrantes do interior ao invés de deixá-las soltas a mercê somente do contorno. A algum tempo fiz uma espada a qual dei o nome de Arectaris Fiz uma segunda versão dessa Sword utilizando duas técnicas de AA: •A Primeira: no cabo, utilizando um marrom bem escuro para escurecer e um marrom-acinzentado mais claro para manter a cor escura. •A Segunda: na lâmina, utilizando cores bem escuras na ponta, contrastando com a claridade dos últimos pixels e gradualmente escurecendo os pixels para formar uma ponta. Observem atentamente a Ponta dos Sprites: •OBS: Façam espadas com a largura da Arectaris no começo porque é muito complicado fazer AA de lâmina em espadas maiores a melhor que consegui acho que foi essa, preciso treinar e estudar mais isso haha •LISTA DE CORES Vou postar aqui uma série de Orbs de Pintura que estou fazendo, caso algum de vocês não tenha acesso ao Fireworks. •Artigo 5: Efeitos particulares •Jóias de enfeite Fazer jóias são realmente algo bem fácil! Na teoria, tudo que precisamos fazer é desenhar um Orb! Ou seja, uma pedra à esfera, que tenha um ponto luminoso vindo do Noroeste e que possua um ponto de claridade mediana a Sudeste, indicando que a luz passou por Refração e todos os pontos ao redor destes dois pontos de Luz são mais escuros •Refração da Luz •No exemplo Créditos - Redstrike •Cavidades A idéia de cavidades é fácil de ser entendida, vou me aproveitar novamente da Arectaris: Como todos podem ver, desenhei um ruby dentro de uma cavidade na guarda da Arectaris, essa mistura de pixels só foi capaz de passar a idéia de cavidade porque, como dito antes, a luz se propaga ao longo de todo o sprite, vindo do Noroeste. Quando chega à cavidade, a luz não consegue penetrar no buraco e chega até a borda dele ( a sudeste ) que por sua vez reflete a luz de volta à pedra, porém em menos quantidade. Por isso usei cores escuras para simbolizar as bordas internas da cavidade, e as claras, as borda externas: •Resumindo: •1 - A Luz vem do noroeste, atingindo a borda externa com grande intensidade •2 - A luz passa pela cavidade atingindo a segunda borda externa mais com menos intensidade •3 - A luz que ilumina a segunda borda externa é refletida por ela chegando a menor parte ao ruby encontrado na cavidade. Sigam o esquema •Rachaduras Rachaduras podem ser uma coisa bem complicada no começo, mas com o tempo se pega a prática e a coisa fica mais simples. Na verdade em teoria é mesmo muito simples... Basta você: Regra um: Escolher de onde e como será a rachadura Regra dois: Desenhar um risco PRETO na região da rachadura Regra três: De acordo com o fundo, escolher um tom bem claro e iluminar a porção Sudeste da rachadura e um tom bem escuro para iluminar a porção Noroeste <--- mesmo efeito que vimos em Cavidades Passo a passo temos: Créditos: CrazyMapper,Galiant e brenomadlan. Espero que tenham gostado, se gostaram Deem REP + e comentem...
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...