Ir para conteúdo

Líderes

Conteúdo Popular

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

  1. Oneshot

    Oneshot Spell Lib

    Oneshot Spell Lib Boa tarde, meus queridos. Como eu disse no último post do tópico do Spell Forge, sim, ele estava ficando funcional o bastante, mas uma coisa não me agradava, o nível de dificuldade de configuração do sistema estava aumentando, e uma hora, não teria como OT-admins usarem meu sistema, pois não saberiam configurar. Então resolvi parar o desenvolvimento dele por enquanto, mas segue minha biblioteca que estava usando para desenvolvimento do sistema. Uma biblioteca completa para desenvolvimento de magias, orientada a objetos, torna a coisa bem mais interessante. Para utilizar minha biblioteca, basta criar arquivo com qualquer nome na pasta data/lib do seu servidor e colar o seguinte conteúdo abaixo: -- This library is part of Oneshot Spell System -- Copyright (C) 2013 Oneshot -- -- This program is free software: you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation, either version 3 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program. If not, see <http://www.gnu.org/licenses/>. -- constant CONST_SPELL_AREA = 0 -- area spells, like exevo gran mas vis CONST_SPELL_DIRECTION = 1 -- wave spells, like exevo flam hur CONST_SPELL_TARGETORDIRECTION = 2 -- mix between area and wave spells WEAPON_SKILLS = { [WEAPON_SWORD] = SKILL_SWORD, [WEAPON_CLUB] = SKILL_CLUB, [WEAPON_AXE] = SKILL_AXE, } -- class for combats (spell instances) Combat = { type = 0, me = 0, ani = 0, formula = { type = 0, values = {}, }, condition = nil, delay = 0, id = 0, } function Combat:New(_type, me, ani, delay, id) local new_spellinstance = { type = _type or COMBAT_NONE, me = me or CONST_ME_NONE, ani = ani or CONST_ANI_NONE, formula = { type = COMBAT_FORMULA_UNDEFINED, values = {0, 0, 0, 0, 0, 0, 0, 0}, }, condition = nil, delay = delay or -1, id = id or 1, } return setmetatable(new_spellinstance, {__index = self}) end function Combat:SetType(_type) self.type = (tonumber(_type) and _type or COMBAT_NONE) end function Combat:SetEffect(me) self.me = (tonumber(me) and me or CONST_ME_NONE) end function Combat:SetDistanceEffect(ani) self.ani = (tonumber(ani) and ani or CONST_ANI_NONE) end function Combat:SetFormula(_type, ...) local args = select("#", ...) self.formula.type = (tonumber(_type and _type or COMBAT_FORMULA_UNDEFINED)) local minc, maxc if args > 8 then minc, maxc = select(9, ...) end local minm, maxm = getConfigValue("formulaMagic") or 1 maxm = minm local minl, maxl = getConfigValue("formulaLevel") or 5 maxl = minl if args > 6 then minm, maxm = select(7, ...) end if args > 4 then minl, maxl = select(5, ...) end local mina, minb, maxa, maxb = select(1, ...) self.formula.values = {mina, minb, maxa, maxb, minl, maxl, minm, maxm, minc, maxc} end function Combat:SetCondition(condition) -- condition needs to be a createConditionObject(), e.g -- local condition = createConditionObject(CONDITION_FIRE) -- setConditionParam(condition, CONDITION_PARAM_TICKS, 1 * 1000) self.condition = condition end function Combat:GetDelay() return self.delay end function Combat:SetDelay(delay) self.delay = (tonumber(delay) and delay or -1) end function Combat:GetId() return self.id end function Combat:SetId(id) self.id = (tonumber(id) and id or 1) end function Combat:getMinMaxValues(cid, ex) local min, max = 0, 0 local n = self.formula.values if not isCreature(cid) then return false end if not isPlayer(cid) then self.formula.type = COMBAT_FORMULA_DAMAGE end if self.formula.type == COMBAT_FORMULA_LEVELMAGIC then min = (getPlayerLevel(cid) / n[5] + getPlayerMagLevel(cid) * n[7]) * n[1] + n[2] max = (getPlayerLevel(cid) / n[6] + getPlayerMagLevel(cid) * n[8]) * n[3] + n[4] if n[9] then min = math.max(n[9], min) end if n[10] then max = math.max(n[10], max) end elseif self.formula.type == COMBAT_FORMULA_SKILL then local weapon = getPlayerWeapon(cid) if weapon.uid > 0 then max = getPlayerWeaponDamage(cid, weapon) * n[3] + n[4] else max = n[4] end if n[10] then max = math.max(n[10], max) end elseif self.formula.type == COMBAT_FORMULA_DAMAGE then min = n[2] max = n[4] end return min, max end function Combat:Callback(position, cid, ex) if not isCreature(cid) then return false end local min, max = self:getMinMaxValues(cid, ex) doCombatAreaHealth(cid, self.type, position, 0, min, max, self.me) if self.condition then doCombatAreaCondition(cid, position, 0, self.condition, CONST_ME_NONE) end return true end -- class for spells Spell = { type = 0, level = 0, maglevel = 0, mana = 0, needtarget = false, target_or_direction = false, range = 0, needweapon = false, selftarget = false, vocations = {}, combats = {}, } function Spell:New(_type, level, maglevel, mana, needtarget, range, needweapon, selftarget, ...) local new_spell = { type = _type or CONST_SPELL_AREA, level = level or 1, maglevel = maglevel or 0, mana = mana or 0, needtarget = needtarget or false, range = range or 1, needweapon = needweapon or false, selftarget = selftarget or false, vocations = {...}, combat = {}, area = {{3}}, } return setmetatable(new_spell, {__index = self}) end function Spell:SetType(_type) self.type = (tonumber(_type) and _type or CONST_SPELLarea) end function Spell:SetLevel(level) self.level = (tonumber(level) and level or 1) end function Spell:SetMagLevel(maglevel) self.maglevel = (tonumber(maglevel) and maglevel or 0) end function Spell:SetMana(mana) self.mana = (tonumber(mana) and mana or 0) end function Spell:SetNeedTarget(needtarget) self.needtarget = (type(needtarget) == "boolean" and needtarget or false) end function Spell:SetRange(range) self.range = (tonumber(range) and range or 1) end function Spell:SetNeedWeapon(needweapon) self.needweapon = (type(needweapon) == "boolean" and needweapon or false) end function Spell:SetSelfTarget(selftarget) self.selftarget = (type(selftarget) == "boolean" and selftarget or false) end function Spell:SetVocations(...) self.vocations = {...} end function Spell:Append(...) local t = {...} for i = 1, #t do self.combat[t[i]:GetId()] = t[i] end end function Spell:SetArea(area) self.area = area end function Spell:Cast(cid) if not isCreature(cid) then return false end if #self.combat == 0 then doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false end if isPlayer(cid) then if not getPlayerFlagValue(cid, PLAYERFLAG_IGNORESPELLCHECK) then if getPlayerLevel(cid) < self.level then doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTENOUGHLEVEL) return false end if getCreatureMana(cid) < self.mana then doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTENOUGHMANA) return false end if getPlayerMagLevel(cid) < self.maglevel then doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTENOUGHMAGICLEVEL) return false end if self.needweapon and (getPlayerWeapon(cid).uid == 0) then doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUNEEDAWEAPONTOUSETHISSPELL) return false end local vocation = getPlayerVocation(cid) if #self.vocations > 0 and not (table.find(self.vocations, vocation) or table.find(self.vocations, getVocationInfo(vocation).fromVocation)) then doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) doPlayerSendDefaultCancel(cid, RETURNVALUE_YOURVOCATIONCANNOTUSETHISSPELL) return false end end end local target = getCreatureTarget(cid) if self.needtarget == true then if self.type == CONST_SPELL_DIRECTION then self.type = CONST_SPELL_TARGETORDIRECTION elseif self.type == CONST_SPELL_AREA and not isCreature(target) then doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUCANONLYUSEITONCREATURES) return false end end if self.range and isCreature(target) then if getDistanceBetween(getCreaturePosition(cid), getCreaturePosition(target)) > self.range then doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) doPlayerSendDefaultCancel(cid, RETURNVALUE_TOOFARAWAY) return false end end local area = self.area if self.type == CONST_SPELL_DIRECTION or (self.type == CONST_SPELL_TARGETORDIRECTION and not isCreature(target)) then area = getAreaByDir(area, getCreatureLookDirection(cid)) end local centre = getCreaturePosition(cid) local target = getCreatureTarget(cid) if self.type == CONST_SPELL_DIRECTION then centre = getPosByDir(getCreaturePosition(cid), getCreatureLookDirection(cid), 1) elseif self.type == CONST_SPELL_TARGETORDIRECTION then centre = (isCreature(target) and getCreaturePosition(target) or getPosByDir(getCreaturePosition(cid), getCreatureLookDirection(cid), 1)) elseif self.type == CONST_SPELL_AREA then if self.needtarget and isCreature(target) then centre = getCreaturePosition(target) end end local positions = getAreaPositions(area, centre) for i = 1, #area do for j = 1, #area[i] do local tmp = area[i][j] if tmp == 3 then for k = 1, #self.combat do local combat = self.combat[k] if combat then addEvent(function() if self.selftarget then combat:Callback(positions[i][j], 0) else combat:Callback(positions[i][j], cid) end doSendDistanceShoot(getCreaturePosition(cid), centre, combat.ani) end, combat:GetDelay()) end end elseif type(tmp) == "number" and self.combat[tmp] then local combat = self.combat[tmp] if combat then addEvent(function() if self.selftarget then combat:Callback(positions[i][j], 0) else combat:Callback(positions[i][j], cid) end doSendDistanceShoot(getCreaturePosition(cid), centre, combat.ani) end, combat:GetDelay()) end elseif type(tmp) == "table" then for k = 1, #tmp do local tile = tmp[k] local combat = self.combat[tile] if combat then addEvent(function() if self.selftarget then combat:Callback(positions[i][j], 0) else combat:Callback(positions[i][j], cid) end doSendDistanceShoot(getCreaturePosition(cid), centre, combat.ani) end, combat:GetDelay()) end end end end end if self.mana > 0 then doCreatureAddMana(cid, -self.mana, 0) end return true end function rotate(area) local ret = {} for i = 1, #area do for j = 1, #area[i] do if not ret[#area[i]-j+1] then ret[#area[i]-j+1] = {} end ret[#area[i]-j+1][i] = area[i][j] end end return ret end function getAreaByDir(area, direction) local ret = area if direction > NORTH then local n = (4 - direction) repeat ret = rotate(ret) n = n - 1 until n == 0 end return ret end function getAreaCentre(area) local x, y = 0, 0 for i = 1, #area do for j = 1, #area[i] do if area[i][j] == 3 then x = j y = i break end end end return x, y end function getAreaPositions(area, centre) local ret = {} local x, y = getAreaCentre(area) for i = 1, #area do for j = 1, #area[i] do if not ret[i] then ret[i] = {} end ret[i][j] = {x = centre.x + (j - x), y = centre.y + (i - y), z = centre.z} end end return ret end function getPlayerMeleeDamage(cid, item) local skill, attack if item.uid > 0 then local info = getItemInfo(item.itemid) skill = getPlayerSkillLevel(cid, WEAPON_SKILLS[getItemWeaponType(item.uid)]) attack = ((getItemAttribute(item.uid, "attack") or info.attack) + (getItemAttribute(item.uid, "extraAttack") or info.extraAttack) - info.abilities.elementDamage) else skill = getPlayerSkillLevel(cid, SKILL_FIST) attack = 0 end local damage = math.ceil((2 * (attack * (skill + 5.8) / 25 + (getPlayerLevel(cid) - 1) / 10.)) / getPlayerAttackFactor(cid)) return -math.random(0, damage) end function getPlayerAttackFactor(cid) local switch = { 1.0, 1.2, 2.0, } return switch[(getPlayerModes(cid).fight + 1)] end dofile(getDataDir() .."/spells/lib/spells.lua") É uma biblioteca orientada a objetos que facilita o desenvolvimento de magias. Comparando a forma dos scripts de magias, com a minha biblioteca e sem, podemos ver a diferença. Sem a biblioteca: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY) setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 4.5, 9) local area = createCombatArea(AREA_SQUAREWAVE5, AREADIAGONAL_SQUAREWAVE5) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Com a biblioteca: local combat = Combat:New(COMBAT_ENERGYDAMAGE, CONST_ME_ENERGYAREA, CONST_ANI_ENERGY) combat:SetFormula(COMBAT_FORMULA_LEVELMAGIC, -1, 0, -1, 0, 5, 5, 4.5, 9) local spell = Spell:New(CONST_SPELL_DIRECTION) spell:Append(combat) spell:SetArea(AREA_WAVE4) function onCastSpell(cid, var) return spell:Cast(cid) end Mas o melhor mesmo é notado quando você quer desenvolver as magias com mais de uma variável combat. Aquelas magias de múltiplos hits e efeitos. Vou pegar uma magia de 3 efeitos e danos diferentes. local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY) setAttackFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 4.5, 9) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_ICEAREA) setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ICE) setAttackFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 1, 2) local combat3 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE) setCombatParam(combat3, COMBAT_PARAM_EFFECT, CONST_ME_SMALLPLANTS) setCombatParam(combat3, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH) setAttackFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 3.5, 7) local area = createCombatArea(AREA_SQUAREWAVE5, AREADIAGONAL_SQUAREWAVE5) setCombatArea(combat1, area) setCombatArea(combat2, area) setCombatArea(combat3, area) function onCastSpell1(cid, var) doCombat(cid, combat1, var) end function onCastSpell2(cid, var) doCombat(cid, combat2, var) end function onCastSpell3(cid, var) doCombat(cid, combat3, var) end function onCastSpell(cid, var) onCastSpell1(cid, var) addEvent(onCastSpell2, 300, cid, var) addEvent(onCastSpell3, 600, cid, var) return true end Com o uso da minha biblioteca, podemos notar a redução de linhas, e a limpeza do código: local combat1 = Combat:New(COMBAT_ENERGYDAMAGE, CONST_ME_ENERGYAREA, CONST_ANI_ENERGY) combat1:SetFormula(COMBAT_FORMULA_LEVELMAGIC, -1, 0, -1, 0, 5, 5, 4.5, 9) local combat2 = Combat:New(COMBAT_ICEDAMAGE, CONST_ME_ICEAREA, CONST_ANI_ICE) combat2:SetFormula(COMBAT_FORMULA_LEVELMAGIC, -1, 0, -1, 0, 5, 5, 1, 2) combat2:SetId(2) combat2:SetDelay(300) local combat3 = Combat:New(COMBAT_EARTHDAMAGE, CONST_ME_SMALLPLANTS, CONST_ANI_EARTH) combat3:SetFormula(COMBAT_FORMULA_LEVELMAGIC, -1, 0, -1, 0, 5, 5, 3.5, 7) combat3:SetId(4) combat3:SetDelay(600) local T = {1, 2, 4} local area = { {T, T, T}, {T, T, T}, {T, T, T}, {0, T, 0}, {0, 3, 0}, } local spell = Spell:New(CONST_SPELL_DIRECTION) spell:SetArea(area) spell:Append(combat1, combat2, combat3) function onCastSpell(cid, var) return spell:Cast(cid) end Qualquer dúvida quanto ao uso da biblioteca no desenvolvimento de magias, basta postar neste tópico que estarei esclarecendo. Grande Abraço, Oneshot.
    4 pontos
  2. E se as marcas fossem escritas do jeito que a gente fala? Fonte: Clube do Design
    3 pontos
  3. Mophus

    RME Live Mapping & TeamViewer

    ~ ATENÇÃO! ~ Sejam bem vindos! Por favor, não façam spam no tópico com comentários, os comentários são aceitáveis ​​para que as pessoas saibam a senha do rme live ou outras informações que impedem as pessoas de entrarem para mappear junto a você. Saudações mappers do XTibia, Eu estava mappeando hoje para meu projeto "Evendhor" e voltei com o pensamento de mappear junto a outras pessoas, fazendo uma interação com membros do XTibia ou com organizadores de outros servidores. Resumindo... Eu criei aqui, com base no tópico do Siramix, da OTLand, onde visa o interesse e ajuda de outros membros em seus mapas. Facilitando talvez, a criação de mapas mais bolados e com mais rpg. Quando a publicidade não se esqueça de seguir este pequeno modelo só para evitar vários modelos, e perguntas neste tópico, de como criar. Obs:. Todo post que não for relacionado a publicidade de sua transmissão, será punido como spam e sucessivamente, o usuário será alertado. Sugestões: Deixe claro a versão que está usando. Pode postar o teamviewer ou o ip do rme live. Obs: Aconselho postar se está utilizando o TV ou o RME Live. Para definir uma senha personalizada, vá em 'Ferramentas' e depois em 'Opções', seguido por 'Apresentação'. Você, assim, pode ver uma linha com o texto "Apresentação senha", depois só copiar ou trocar. Digite uma senha que você acha que é seguro o suficiente. Download do Rme Live, eu mesmo hospedei no 4Shared -> Rme Live - Atualizado Download do TeamViewer -> Site Oficial EM BREVE, O XTIBIA IRÁ DISPONIBILIZAR PARA TODOS, UM VPS, AGUARDEM. Façam um bom proveito e vamos, MAPPEAR! Mophus
    2 pontos
  4. Então galera eu vi o modern do Avu que é muito bom resolvi edita-lo para pokémon arrumar samples e tals aquelas coisas e também o template é claro então ta ae. Para quem quiser baixa-lo link no fim do tópico. Print: Download: http://www.4shared.com/rar/jxrqjEON/POKEMON.html? Scan, Creio que o 4Shared quando agente dar upload ele automaticamente scanea o Arquivo. CREDITOS Avuenja and Junior001
    2 pontos
  5. 2 pontos
  6. Venom2

    Venom's Gallery

    2 pontos
  7. lucasfgx

    Texto animado subindo no piso

    Sabe aqueles textos coloridos que ficam subindo no piso, em muitos OT's tem isso e vcs querem colocar no seu, então eu vou trazer para vcs as scripts e um pequeno tutorial : 1 - abra a pasta do seu OT e vá em data/globalevent/scripts copie e cole qualquer arquivo .lua e renomeie para "texto" sem aspas kkkkk dps abra e apague tudo q tem dentro e coloque isto: Oque está em vermelho e para vc mudar se quizer, mais as cordenadas vcs tem q mudar essas são as minhas, então mude. Muito importante se vc quizer adicionar uma outra linha não esqueça da virgula só a ultima linha q fica sem virgula. 2 - Volte para a pasta "globalevents" e abra o arquivo globalevents.xml e adicione isso: E pronto!! REP+
    2 pontos
  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. PokeB (Poketibia Base 9.60) Agora OpenSource!!! O que terá: Voar, Montar, Cortar, Teleportar, Quebrar rocha, Nadar, ... Captura de Pokémons - sistema de pokebolas. Nurse Joy - que cura todos os pokémons da mochila de uma só vez. Líderes de Ginásio Evoluções (Pedras evolutivas e Nível) Treinamento Pokémon (boost machine) 151 Pokémons - será a base. Sistema de Pokedex M1 à M12 - ataques dos pokémons. entre outras coisas... Como falado será a 'base' do poketibia! Download: Server: http://www.4shared.com/zip/9FZYhupj/Server_PokeB.html Source: http://www.4shared.com/zip/C3HMIt8_/Sources_PokeB.html Cliente: http://www.4shared.com/zip/Gmhv34hv/OtClient_PokeB.html [novo] Server PokeB 1.0: http://www.4shared.com/rar/PauHbetg/Server_PokeB_10.html? [novo] Cliente PokeB 1.0: http://www.4shared.com/rar/IokY3r3J/OtClient_PokeB_10.html? Conta GOD: Login: admin senha: 123456 SourceForge: SourceForge: https://sourceforge.net/projects/pokeb/ Server poketibia que pode ajudar: Poketibia Ricardo: Server: http://www.4shared.com/rar/ygFwSXUP/Server_Pokemon_Dash_by_Ricardo.html Source: http://www.4shared.com/rar/-OMFGhHg/Sources_Pokemon_Dash_by_Ricard.html PDA: http://www.4shared.com/rar/tSmomesU/Serv_PDA_pro_forum_v_10.html Erondino: http://tibiapoketibia-erondino.weebly.com/ Utilitários: RME: (Windows) http://remeresmapeditor.com/rmedl.php?file=RME-win-2.2.msi Ot Item Editor: http://www.4shared.com/rar/6Y72VWpG/ot_item_editor_960.html Sprite Editor/ Dat Editor: Spr Editor: http://www.xtibia.com/forum/topic/202369-spr-editor-854981-versao-13/ Storms Editor: http://www.xtibia.com/forum/topic/216960-986-storms-sprite-dat-editor/ Ultimate Tibia Editor: http://www.xtibia.com/forum/topic/206196-ultimate-tibia-editor/?fromsearch=1 Dev: http://www.4shared.com/zip/Ug4cmrtA/The_Forgotten_Dev-Cpp.html Outros: SprEx(extrator de sprites): http://knoxstudio.net/jo3bingham/SprEx/SprEx.rar O que foi feito: Imagens: Embreve!!!
    1 ponto
  10. 1 ponto
  11. Conteudo Retirado.
    1 ponto
  12. OLÁ QUERIDOS XTIBIANOS! Resolvi fazer um simples tutorial para que possa facilitar as dúvidas de sempre "como conectar um dedicado" "pra que serve um dedicado" etc. Primeiramente, O que é um Dedicado? O servidor dedicado nada mais é que um equipamento ligado 24 horas por dia em um link de internet de alta velocidade em uma empresa ou em um data center. É a escolha de administradores de sites que possuem alto consumo de tráfego e recursos da máquina. Geralmente é escolhido quando um site ou um conjunto de sites consome demasiadamente dos recursos do sistema e não se oferece mais condições de permanecer em sistema compartilhado de hospedagem. Um de seus benefícios é que permite que seu administrador configure seus sistemas e aplicações da maneira que necessitar, sem restrição, pois este serviço oferece acesso total à máquina O Que é um VPS? VPS é a sigla do inglês Virtual Private Server que significa servidor privado virtual. É um servidor em ambiente compartilhado que possui acesso root (administrador) e processos independentes para cada conta VPS criada, funciona assim como todo computador, cada conta VPS no servidor possui seu sistema independente, ou seja você pode configurá-lo de acordo com a sua real necessidade (instalar novos programas, etc...). A ideologia de um VPS é simples, temos por exemplo, um servidor extremamente robusto, dividido por várias máquinas virtuais através de técnica de virtualização (Ex. vmware, xen). Cada uma dessas máquinas virtuais roda como uma máquina real, permitindo tratá-la como um servidor dedicado. Atualmente é muito interessante pensar nessa idéia que tem tendencia a se expandir bastante. Imagine: Se você não pode ter 10 MB de Velocidade no seu computador, porque não administrar e fazer tudo de outro? O VPS é uma solução muito mais barata para pessoas ou empresas com necessidades específicas que não podem ser atendidas por uma hospedagem comum. Por exemplo executar alguma tarefa no servidor que utilize excessivamente os recursos dele, como memória ou processador, prejudicando outros clientes. Com um VPS o cliente tem uma parcela da memória, processador e demais recursos dedicados apenas para si podendo fazer uso destes recurso da forma que achar melhor, respeitando a ética e disciplina do contratado (muitas pessoas usam este recurso de forma irregular causando transtorno a outras pessoas, como uso deliberado de spam). Como conectar em um VPS ou Dedicado Windows? Primeiramente, clique no seu inciar e procure por: Conexão de área de trabalho Remota ou Remote Desktop Connection Após este passo irá abrir o mesmo como na imagem abaixo: Após isto em frente Computador: coloque o IP do seu VPS (que será enviado pela empresa que você contratou o host) Após isto clique em Conectar. Após clicar irá aparecer uma imagem semelhante a esta: Em Usuário basta você digitar o usuário que foi enviado junto com a empresa do host, a maioria é: Administrador, Administrator ou Admin Basta você também digitar sua senha de acesso. (Definida por você ou pela empresa do host estará tudo nos dados que a empresa lhe mandar) Após isto você haverá conexão total com sua máquina dedicada e poderá instalar tudo para rodar seu servidor, guardar dados e etc!, o acesso é limitado! Segue abaixo uma imagem simples de uma área remota de dedicado aberta: Para sair, clique para fechar (como se fosse sair de um navegador e de OK (a imagem acima está sinalizando o lugar para fechar, tudo estará salvo) MKBRABSOLUTE, precisar deixar meu pc conectado com o dedicado para que o servidor fique online? JAMAIS!, a máquina é ligada 24 Horas independente da conexão de seu computador, esqueça seu computador, seus servidor estará hospedado em outra localidade em uma máquina só sua onde nada interfere com sua conexão ou seu pc. Dúvida Básica, Como passar meu servidor para o dedicado? recomendo que faça UPLOAD em algum site grátis, por exemplo: sendspace.com, 2shared.com, 4shared.com entre outros, depois basta abrir o navegador em seu dedicado colocar o link que você irá copiar do upload de seu pc e realizar o download! É isso ai XTIBIANOS, Agora quem não sabia, sabe o básico de acesso a uma máquina virtual!!!, Lembrando que este Tutorial foi 100% desenvolvido por mim MKBRABSOLUTE e está aberto a críticas e sugestões, TUTORIAL EXCLUSIVO AO WWW.XTIBIA.COM Tenha um Ótimo Dia! Espero ter ajudado!
    1 ponto
  13. Primeiramente, me chamo Gabriel. Estou procurando um servidor para fazer parte da equipe (como tutor, senior tutor, gm ou outro cargo). Desejo fazer parte de uma equipe séria. Pode ser tibia, narutibia ou poketibia. Abaixo falarei um pouco sobre minhas experiências. Já fui membro de equipe de um servidor chamado mutacaosv (sucessor do elfen war) cujo nome foi mudado depois para renegadesv. Nesse servidor comecei como player e fui, com o tempo e com muito suor, subindo de cargo, até chegar ao mais alto que eu podia, o cargo de Community Manager. Até chegar ao cargo de CM demorou aproximadamente 2 anos e meio (passei por todos os grupos, até senior tutor). Ajudei o servidor a crescer, ajudava os players retirando dúvidas, fazia eventos e muito mais. Certamente quem já jogou deve se lembrar de mim (CM Elf, CM Gabriel, etc.) Também participei de um servidor de naruto, o ntoultimate, porém, foi por pouco tempo.Já fui tutor em muitos servidores de tibia, tanto globais como mapas próprios.Gosto de dar sugestões que melhorem o servidor.Sou sincero, sei quando respeitar os superiores, sei quando ouvir e quando falar.Gosto de ajudar, conviver com os players, criando uma harmonia no servidor.Possuo vasta experiência sobre narutibia, poketibia e tibia (onde upar, monstros, drops, etc.)Bom... é isso. Caso queira saber mais sobre mim ou tiver alguma pergunta, sinta-se livre em me mandar uma mensagem privada ou então, faça aqui mesmo neste tópico.
    1 ponto
  14. lazarocp

    [Encerrado]Pokémon Evolution

    Bem galera estou aqui recrutando preciso de ajudantes no meu poketibia não precisa de muitos conhecimentos e apenas para ajudar em coisas simples o server e 9.60 base foi pokeb 1.0 mas vo deixar uma lista do que ja foi feito! Catch/Goback 100% Ride 100% Fly 95% surf 99% Blink 100% rock Smash 100% e etc... Clã system 100% m1 a m12 100% portrait sistem 100% nurce joy 100% mapa esta sendo feito do 0 ja foi feito 6 cidades e vários respows Temos pokes 1 geração 100% 2 geração 100% 3 geração 100% 4 geração 100% 5 geração adiconando 6 geração 10% criando as sprites Mega evolutions 3 % criando sprites Evolução por stones 100% race e combat 100% Pokedex 95% Pokedex agora com descrição do pokemon e onde encontrá-lo mas só tem a função onde encontrá-lo em alguns pokes. sistema de poke incial 100% Novas balls items incluindo a mega stone que usada para transformar os pokes em mega pokes. breve prints
    1 ponto
  15. Jobbysantos1999

    RookWAR Edited JM

    -RookWAR [8.6]- Informações: *Quests: Anihi, Boots of Haste (BOH) e Quest100k. *Itens e vocações balanceadas para um FastAttack já configurado. *Mapa totalmente livre de bug's. *Distro 100% Limpa (Removido todos os erros do MaximusWar). *Servidor Compilado para TFS 0.3.6 (ThiagoBji) *Trainers 100% (ThiagoBji) *Depot *Npc's 100% (Sem bugs). *Prints* *Distro* *Download* RookWar Server *Scan* Clique Aqui! *Créditos* -RookWar Team -Techlook -MaximusWar -ThiagoBji -JobbyMagalhães
    1 ponto
  16. Kuro o Shiniga

    C/C++ Parte 2

    Ola galerinha do xtibia, vim dar continuidade aos tutoriais de C/C++ esse tutorial ficou um pouco grande não teve como eu resumir muito, desculpem então preste bem atenção! Vamos começar :D Características e Definições. Nomes e identificadores da linguagem. Palavras reservadas. A lista abaixo relaciona as palavras reservadas. É importante notar que a linguagem C++ diferencia letras maiúsculas e minúsculas, ou seja, char é uma palavra reservada de C++ mas CHAR ou ChAr não é (entretanto, normalmente desaconselha-se o uso dessa diferenciação por atrapalhar a legibilidade do código). Reforçando o que já foi mencionado, as palavras reservadas só irão executar os comandos que lhes foram designados. Tipos de dados. Variáveis reais servem para armazenar números que possuem partes fracionárias. Existem duas maneiras de representar números fracionários em C++. A primeira, a mais simples, é utilizar o ponto para separar as partes inteiras e fracionárias. Por exemplo: 0.00098 1.2145 3.1461 8.0 (Mesmo no caso de um número com parte fracionária igual a zero, a utilização do ponto assegura que este número seja considerado um número de ponto flutuante por C++). A segunda maneira é utilizar a notação científica E. Por exemplo : 3.45E7 significa “3.45 multiplicado por 10 elevado à sétima potência (10.000.000)”. Essa notação é bastante útil para representar números realmente grandes ou realmente pequenos. A notação E assegura que o número seja armazenado em formato de ponto flutuante. exemplos: 2.52E8 = 2.52 x 100.000.000 = 252.000.000 -3.2E3 = -3.2 x 1000 = -3200 23E-4 = 23 x 0.0001 = 0.0023 Assim como os inteiros, os números reais em C++ podem ser representados por 3 tipos de variáveis com diferentes intervalos. São elas: float, double e long double. Float é o tipo de variável real natural, aquela com a qual o sistema trabalha com maior naturalidade. Double e long double são úteis quando queremos trabalhar com intervalos de números reais realmente grandes. Utilizamos números reais geralmente para expressar precisão através do número de casas decimais, então podemos dizer que uma variável float é menos precisa que uma variável double, assim como uma variável double é menos precisa que long double. Então e isso galera, o tutorial ficou grande não deu pra resumir muito, o próximo tutorial sera a continuação desse, espero que gostem e estudem ! abraço
    1 ponto
  17. RodriigoRobson

    Pokemon - Blue [Beta]

    •Servidor de Testes• •Servidor Beta• •Faze de TESTES •Apos o Termino do Projeto Pokemon o Servidor vai ser Resetado! *Informaçoes* •Sem Vagas •Servidor Base : TFS 0.3.6 •30 Teleportes de Pokemon •Mapa proprio com 30 houses Atualizado 31/10 •7 Balls [Normal,Great,Super,ultra,Saffari,Fresh,Master] •Catch Cast System = Mostra o Catch de Todos os Players no Broadcast •151 Pokemons •151 Shinys •Invasoes de Pokemon Shiny •PVP Look: You see yourself.[PVP/SCORE: 2] •PVP System •Old,great,ultra,small Rods •Berry System •Egg System •Food System [influencia no Dano do Poke deixando Feliz] •Box 1,2,3,4 •Torneio System Todo os dias as 15:00 hrs •Arena System •Rare Candy •!Car System •Rank Computer Level e PVP/SCORE •Limite de Level no Pokemon [300] = Cada ves que vc upa seu Pokemon Ele fica mais Forte •Poke Age System = Sistema de Idade de Pokemon Cada Idade que upa vai ganhando +300 HP Idade Maxima = 30 Anos quando Chegar com o Poke aos 30 Anos ganharar 100 MASTER BALLS •Sistemas Basicos •Pokemon With Gender •Pokemon With Stats •Catch System •Go/Back System •Nick Name •Ride System •Surf System •Fly System •Evolution System [stone/Icone] •Level On Pokemon's ball System •Pokedex System [61/151] •Pokemons Balanced •Blink System •Fishing System •M1-12 System •Npc Nurse Joy System •Portrait System •Order System •Cut System •Dig System •Rock Smash System •Teleport System •Flash System •Limit 6 Pokemons System •Poke-Look System •Pokemon Have Level •Pokemon Have Feelings •Bike System •Imagens : •Templo: •TPS: •PVP-ARENA 1: •PVP-ARENA 2: •Download Client: http://www.4shared.com/rar/dIeKRivp/Pblue_Client.html? •IP: bluepokemon.zapto.org
    1 ponto
  18. Benny

    Site meio "Gesior".

    Bom como o avuenja é feio (gostoso) Calma, isso foge demais com o principal intuito do tópico.. Voltando aqui, vou postar para vocês um sitezinho meio básicão :3 Criticas construtivas = aceitas .. ( Aqueles bang de : Status : font padrão Players : Font padrão Uptime : Font padrão Flinkton Global : LOGO ) Os botões do lado de cá > Vão ter um efeito, primeiro esse, depois quando passam por cima dele, ele brilha, e depois quando pressiona ele meio que fica " Hover " "Pressionado " não sei como dizer :3 )
    1 ponto
  19. Alexclusive

    [PARTICIPE] Assinatura da Semana #91

    Comendo a perna do leão rs
    1 ponto
  20. Secular

    [PARTICIPE] Assinatura da Semana #91

    Meu treino de aplicação de texturas, quem ver o que a zebra tah fazendo tem uma boa percepção rsrs! Boa sorte a todos!
    1 ponto
  21. Alexclusive

    RME Live Mapping & TeamViewer

    O Vps será entregue essa semana!
    1 ponto
  22. Veja se é isso mesmo que você quer: (não testei, e vale ressaltar que sou noob em scripting, portanto talvez não funcione.) function onStepIn(cid, item, position, fromPosition) local storage = xxx --- Storage do baú if not isPlayer(cid) then return false end doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) setPlayerStorageValue(cid, storage, -1) return true end
    1 ponto
  23. Oneshot

    Erro no /war accept

    E no caso recompilou seu servidor, deletando o obj ou usando a opção Rebuild All?
    1 ponto
  24. Oneshot

    Erro no /war accept

    Você precisa compilar um servidor com o parâmetro -D__WAR_SYSTEM__ Abraços.
    1 ponto
  25. paulgrande

    PaulPaulpoul showoff

    Eai galera tipo sou um péssimo mapper, e resolvi aprender a mappear pelo menos o básico, comecei hoje dia 14, um mapa de uma cidade moderna vou colocar a foto da parte que eu terminei de base eu gostaria de ajuda com dicas sobre o mapa, e tmb me ajudar a ver se minha logica de construção esta certa. então vamos la primeiro vou explicar por onde comecei e porque. comecei fazendo as ruas deixando canteiros para depois construir os prédios e lojas como é um mapa de uma cidade moderna eu resolvi que começaria pelo centro, onde vai ter lojas e prédios e ir expandindo pra fora seguindo pelo subúrbio e depois um zona industrial, portuaria e etc.. prints: Edit: dia 15
    1 ponto
  26. Roksas

    [Exercícios - Aula 9] Respostas

    Iae amados alunos, vocês estão aprendendo rápido e bem neste período, alguns tiveram dificuldades. A Escolinha em si, está praticamente no fim e restaram apenas 3 alunos rsrs. Neste tópico estarei postando as respostas da penúltima aula Allan Harlen: Matheus Ribeiro: Zilde Neto: Parabéns anjos, estudem
    1 ponto
  27. Seção errada amigo. Reportado para que movam.
    1 ponto
  28. Oneshot

    Show Off - Spell Forge

    Spell Forge Boa tarde, pessoal. Seguindo a orientação da equipe do xtibia.com, estou postando um vídeo demonstrativo (teaser) aqui nessa área, do sistema Spell Forge que estou desenvolvendo. O que é o Spell Forge? Algo que pretende inovar o cenário abandonado de criação de magias para Open Tibia. Um sistema diferente. No sistema, as palavras tem um verdadeiro significado, sendo a união delas, responsável por criar uma magia nova e diferente. Ou seja, chega de programar milhões de magias e atribuir palavras fixas a elas, programe a função das palavras e deixe o jogador "forjar" suas próprias magias.
    1 ponto
  29. JonatasLucasf

    Texto animado subindo no piso

    acho que já tem tutoriais aqui como esse mais parabéns pela iniciativa REP+
    1 ponto
  30. StyloMaldoso

    [Encerrado] (Duvida) Tele

    retira isso if string.lower(param) ~= "house" and citySto ~= -1 and getPlayerStorageValue(cid, citySto) <= -1 then --alterado v1.7 doPlayerSendCancel(cid, "You have to talk with nurse in this place, before you can teleport for there!") return true end
    1 ponto
  31. olha eu esqueci manow mais o do slicer ja ta no limite.
    1 ponto
  32. Artigo

    [PARTICIPE] Assinatura da Semana #91

    Fiz uma rapidamente .
    1 ponto
  33. Lumus

    Monstro Estatua

    O fórum bugou a fala... Tipo ele não aparece no rme mas vai aparecer ingame normalmente Reportado para que movam.
    1 ponto
  34. viniciusdrika

    [Encerrado]Fairy Tail Online - FTO

    sprites boa, to vendo um futuro no projeto mais projetos de anime ja está ficando cliche minha opniao, derivados agora nenhum é um medieval diferente e sim poketibia narutibia fairytibia dragontibia harrytibia, poderiam pensar mais e criar um medieval bem mais diferenciado e levado para o lado do pvp e com bosses coisas assim daria um @up no mundo otserv . Mas boa sorte com projeto, jogarei se eu puder concerteza.
    1 ponto
  35. Amanhã é o grande dia! PokeB 2.0 Nova atualização
    1 ponto
  36. Tonynh

    Resultado ADS #90

    Salve, salve galerinha ékstibiana =) Trazendo em primeira mão o resultado de mais uma edição da Assinatura da Semana! Confiram abaixo o resultado final da ADS #90 Tivemos um grande número de participantes durante a votação! Espero que esses sejam convertidos a participar da próxima edição! =) 1° Lugar - Tonynh 2° Lugar - Alexclusive 3° Lugar- Bennyyw Premiação: 1° Colocado - 3 Reps + sign + medalha 2° Colocado - 2 Reps + sign 3° Colocado - 1 Rep + sign MUITO OBRIGADO, E CONTO COM VOCÊS NA PRÓXIMA EDIÇÃO! =) + Dúvidas/Comentários + Sugira um tema!
    1 ponto
  37. Fiz um pacote...rs Avatar: Assinatura1: Assinatura2: Abraços
    1 ponto
  38. Nolis

    [Encerrado]OTAvatar Voltou !

    Todas as vagas foram preenchidas, manterei o tópico caso abram novamente.
    1 ponto
  39. Nolis

    uMapinha

    =p
    1 ponto
  40. Aberos

    PDA PWO v1

    AE GALERA CONSEGUI TIRAR O LVL DOS POKES !!! @gristony entra no skype!!!
    1 ponto
  41. Venom2

    Venom's Gallery

    1 ponto
  42. Sherman I

    F.a.q. - Design Geral

    !Início Olá, seja bem-vindo ao Xtibia Design, a seção mais importante deste fórum. Apreciamos sua visita e o seu interesse pela seção, nós, designers daqui, vamos te ajudar a começar com uma lista básica de Tutoriais, Recursos, tudo que você necessita para começar com design gráfico. Antes de tudo, não se sinta tímido em postar seus trabalhos aqui, ele será muito bem avaliado e você receberá muitas dicas como melhorar e evoluir, não espere xingamentos/owneds, pois nada disso acontece aqui. !Sites deviantArt Site para criar seu portfólio online. Faça amigos, publique suas LP's, Fotografias, Signs, Desenhos, tudo o que quiser! Photobucket Site aonde você cria seu álbum de imagens, hostador de imagens. Planet Renders Melhor site para achar renders, é necessário se cadastrar para abrir renders no seu tamanho original. !Tutoriais Os melhores tutoriais para você, iniciante, começar com design. Lembrando que estes tutoriais foram selecionados da nossa propria seção de Tutoriais Iluminação por Sherman I http://www.xtibia.com/forum/topic/160383-tutorial-iluminacao-por-sherman/ Tipogradia 3d por Sherman I http://www.xtibia.com/forum/topic/148301-videotutorial-tipografia-3d/ Criando sign modelada por Cmgabriel http://www.xtibia.com/forum/topic/160004-criando-sign-com-borda-modelada/ Criando um troféu de SOTW por Itoouch http://www.xtibia.com/forum/topic/159002-psd-pip-tutorial/ Criar letra do Harry Potter por Itoouch http://www.xtibia.com/forum/topic/156619-fazendo-a-letra-harry-potter/ Criando assinatura por MateusGuedes http://www.xtibia.com/forum/topic/154381-iniciante-sign-sonic/ Criando assinatura explosiva por MateusGuedes http://www.xtibia.com/forum/topic/154426-iniciante-explosion-sign/ Criando assinatura por MateusGuedes http://www.xtibia.com/forum/topic/154384-iniciante-solider-smudge-sign/ Efeito de Velocidade por MateusGuedes http://www.xtibia.com/forum/topic/154383-iniciante-efeito-de-velocidade/ !Girias do Design Tipografia (Tipo):tudo que está escrito no trabalho, é como se fosse o título do trabalho. Background (BG): Plano de Fundo da imagem. PS: Photoshop. FW:Fireworks. Signature (Sign):Assinatura, trabalho de dimensões pequenas e médias com ou sem temas propostos. Render:Imagem recortada. Stock:Imagem original, ainda com seu respectivo BG. Large Piece (LP):é um trabalho com dimensões maiores do que uma sign por exemplo. Vetor:Técnica usada para que imagens pareçam desenhos. C4D:uma render 3D com formatos abstratos. Blend (Blendar):é o tratamento dado a uma respectiva parte da signature, na maioria das vezes ou é a render ou a parte principal da stock. A blendagem serve para que você torne aquela parte mais natural na sign, ou mais bonita. Clean:trabalho com um estilo mais limpo, sem muita poluição. Flow: Quer dizer a harmonia da sign, como ela se desenrola e o quão ela é "boa aos olhos". Quantos mais flow, mais sua sign faz sentido e mais ela é bonita. !Baixando e Instalando Fontes A Tipografía é aquele texto que vai no seu trabalho. Claro, que cada tema exige uma fonte que mais se adéque ao resto do trabalho. CLICANDO AQUI você será redirecionado ao site dafont.net lá é so escolher a font e clicar em DONWLOAD Muito bem. Feito isso, agora precisaremos instalar a nova fonte no seu computador para que o Photoshop/Fireworks á reconheça dentro do programa. Para isso vamos seguir os seguintes passos: Passo 1 - Descompacte o arquivo baixado no seu Desktop. Quando você fizer isso, vão aparecer um arquivo com um ícone de 'TT' e um outro arquivo de texto. Nós vamos usar somente o icone da fonte, portanto pode deletar o arquivo texto. Passo 2 - Abra o Meu Computador . Passo 3 - Vá até o Painel de Controle. Passo 4 - Selecione o ícone Aparencia e Temas. Passo 5 - Clique no ícone Fontes. Passo 6 - Agora, arraste o arquivo que você baixou pra dentro dessa pasta. Tradução dos Blending Modes do Photoshop - Por Maldorca Saeli (Tibiabr) Code: Inglês Português Normal Normal Dissolve Dissolver Darken Escurecer Multiply Multiplicação Color Burn Superexposição de Cores Linear Burn Superexposição Linear Lighten Clarear Screen Divisão Color Dodge Subexposição de Cores Linear Dodge Subexposição Linear Overlay Sobrepor Soft Light Luz Indireta Hard Light Luz Direta Vivid Light Luz Brilhante Linear Light Luz Linear Pin Light Luz do Pino Hard Mix Mistura Sólida Difference Diferença Exclusion Exclusão Hue Matiz Saturation Saturação Color Cor Luminosity Luminosidade F.A.Q elaborado por Sladz e Sherman I
    1 ponto
  43. Deelarii

    Subwat Kamikaze V13 Atualizado

    REP + ,, cara mto boom =] NOTA 10 Baixeei , APROVADO .
    1 ponto
  44. cara a sua liga pra sua PROVEDORA da sua internet e pergunta se as porta 8090 sao bloqueadas ou a porta 80 se for infelizmente vai ter q trokar de internet Te ajudei. Entao +REP+ Meus Trabalhos:
    1 ponto
  45. TA DE PARABÉNS SUBWAT , TODOS OS COMANDOS QUE EU PRECISEI E VOCÊ ME CITOU DERAM CERTOS. CONTINUE ASSIM .
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...