Postado Julho 20, 2011 13 anos Este é um post popular. Ola gaaaaaaalera, é com muito prazer que venho trazer esse primeiro tutorial meu como Aprendiz do TibiaKing, Spells: Bom, spells sao as magias do nosso servidor, elas servem tanto para healar, atacar, dar suporte e etc ... Criar magias é algo muito simples, vc mesmo poderam criar quantas magias quiserem para o seu servidor seguindo esse tutorial, Muito bem, vamos começar ... Spells de Curar (Healing) Analizando a Spell local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 1.5, 2) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Fazendo a sua Spell local combat = createCombatObject() Nao precisamos mecher aqui setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) Aqui sera, oque vai acontecer setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) Aqui é o effect que saira quando o player usar a spell setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) A spell nao vai agressivar, assim podendo ser usada em areas PZ setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) Aqui sera um Extra, a spell ira curar paralyze setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 1.5, 2) Formula do magic level, quanto maior mais vai healar function onCastSpell(cid, var) return doCombat(cid, combat, var) end Nao precisamos mecher aqui tambem Legenda: × Mais efeito pode ser encontrados no final do Tutorial × Oque ira acontecer, poder ser encontrado no final do Tutorial × Condições, pode ser encontradas mais no final do Tutorial Obrigado a Todos, Estou terminando de fazer o SpellMaker para facilitar a vida de vc, Abraços Spells de Atacar (Attack) Analizando a Spell local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_BIGCLOUDS) setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 5, 12) local area = createCombatArea(AREA_CROSS6X6) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Fazendo a sua Spell local combat = createCombatObject() Nao mechremos aqui setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) Aqui sera o tipo de dano que a spell causara setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_BIGCLOUDS) Aqui é o effect que saira quando o player usar a spell setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 5, 12) Formula do magic level, quanto maior mais vai healar local area = createCombatArea(AREA_CROSS6X6) Area que a spell vai atingir, setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Nao mecheremos aqui tambem Legenda: × Areas, podem ser encontradas no final do Tutorial × Efeitos, podem ser encontrados no final do Tutorial × Danos, podem ser encontrados no final do Tutorial Spells de Suporte (Support) Analizando a Spell local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local condition = createConditionObject(CONDITION_MANASHIELD) setConditionParam(condition, CONDITION_PARAM_TICKS, 200000) setCombatCondition(combat, condition) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Fazendo a sua Spell local combat = createCombatObject() Nao mechemos aqui setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) Efeito da magia setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) Magia nao agressiva, pode ser usada em areas PZ local condition = createConditionObject(CONDITION_MANASHIELD) Condição de escudo de mana setConditionParam(condition, CONDITION_PARAM_TICKS, 200000) O tempo que demora para essa spell acabar, 1 segundo = 1000 setCombatCondition(combat, condition) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Nao mechemos aqui Legenda: × Efeito, pode ser encontrados mais no final do Tutorial × Condições, pode ser encontradas mais no final do Tutorial Oque a Spell vai fazer COMBAT_NONE COMBAT_PHYSICALDAMAGE COMBAT_ENERGYDAMAGE COMBAT_POISONDAMAGE COMBAT_FIREDAMAGE COMBAT_UNDEFINEDDAMAGE COMBAT_LIFEDRAIN COMBAT_MANADRAIN COMBAT_HEALING COMBAT_DROWNDAMAGE Efeitos CONST_ME_DRAWBLOOD CONST_ME_LOSEENERGY CONST_ME_POFF CONST_ME_BLOCKHIT CONST_ME_EXPLOSIONAREA CONST_ME_EXPLOSIONHIT CONST_ME_FIREAREA CONST_ME_YELLOW_RINGS CONST_ME_GREEN_RINGS CONST_ME_HITAREA CONST_ME_ENERGYAREA CONST_ME_ENERGYHIT CONST_ME_MAGIC_BLUE CONST_ME_MAGIC_RED CONST_ME_MAGIC_GREEN CONST_ME_HITBYFIRE CONST_ME_HITBYPOISON CONST_ME_MORTAREA CONST_ME_SOUND_BLUE CONST_ME_SOUND_RED CONST_ME_POISONAREA CONST_ME_SOUND_YELLOW CONST_ME_SOUND_PURPLE CONST_ME_SOUND_BLUE CONST_ME_SOUND_WHITE CONST_ME_BUBBLES CONST_ME_CRAPS CONST_ME_GIFT_WRAPS CONST_ME_FIREWORK_YELLOW CONST_ME_FIREWORK_RED CONST_ME_FIREWORK_BLUE CONST_ME_STUN CONST_ME_SLEEP CONST_ME_WATERCREATURE CONST_ME_GROUNDSHAKER CONST_ME_NONE CONST_ANI_SPEAR CONST_ANI_BOLT CONST_ANI_ARROW CONST_ANI_FIRE CONST_ANI_ENERGY CONST_ANI_POISONARROW CONST_ANI_BURSTARROW CONST_ANI_THROWINGSTAR CONST_ANI_THROWINGKNIFE CONST_ANI_SMALLSTONE CONST_ANI_SUDDENDEATH CONST_ANI_LARGEROCK CONST_ANI_SNOWBALL CONST_ANI_POWERBOLT CONST_ANI_POISON CONST_ANI_INFERNALBOLT CONST_ANI_HUNTINGSPEAR CONST_ANI_ENCHANTEDSPEAR CONST_ANI_ASSASSINSTAR CONST_ANI_GREENSTAR CONST_ANI_ROYALSPEAR CONST_ANI_SNIPERARROW CONST_ANI_ONYXARROW CONST_ANI_PIERCINGBOLT CONST_ANI_WHIRLWINDSWORD CONST_ANI_WHIRLWINDAXE CONST_ANI_WHIRLWINDCLUB CONST_ANI_ENCHANTEDSPEAR CONST_ANI_WEAPONTYPE CONST_ANI_NONE Areas AREA_WAVE4 = { {1, 1, 1, 1, 1}, {0, 1, 1, 1, 0}, {0, 1, 1, 1, 0}, {0, 0, 3, 0, 0} } AREA_SQUAREWAVE5 = { {1, 1, 1}, {1, 1, 1}, {1, 1, 1}, {0, 1, 0}, {0, 3, 0} } AREA_WAVE5 = { {0, 1, 1, 1, 0}, {1, 1, 1, 1, 1}, {0, 1, 1, 1, 0}, {0, 0, 1, 0, 0}, {0, 0, 3, 0, 0} } --Diagonal waves AREADIAGONAL_WAVE4 = { {0, 0, 0, 0, 1, 0}, {0, 0, 0, 1, 1, 0}, {0, 0, 1, 1, 1, 0}, {0, 1, 1, 1, 1, 0}, {1, 1, 1, 1, 1, 0}, {0, 0, 0, 0, 0, 3} } AREADIAGONAL_SQUAREWAVE5 = { {1, 1, 1, 0, 0}, {1, 1, 1, 0, 0}, {1, 1, 1, 0, 0}, {0, 0, 0, 1, 0}, {0, 0, 0, 0, 3} } AREADIAGONAL_WAVE5 = { {0, 0, 0, 0, 1, 0}, {0, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 0, 0}, {1, 0, 0, 0, 1, 0}, {0, 0, 0, 0, 0, 3} } --Beams AREA_BEAM1 = { {3} } AREA_BEAM5 = { {1}, {1}, {1}, {1}, {1}, {3} } AREA_BEAM7 = { {1}, {1}, {1}, {1}, {1}, {1}, {1}, {3} } --Diagonal Beams AREADIAGONAL_BEAM5 = { {1, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0}, {0, 0, 0, 0, 1, 0}, {0, 0, 0, 0, 0, 3} } AREADIAGONAL_BEAM7 = { {1, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 0}, {0, 0, 0, 0, 0, 0, 0, 3} } --Circles AREA_CIRCLE2X2 = { {0, 1, 1, 1, 0}, {1, 1, 1, 1, 1}, {1, 1, 3, 1, 1}, {1, 1, 1, 1, 1}, {0, 1, 1, 1, 0} } AREA_CIRCLE3X3 = { {0, 0, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 1, 0}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 3, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {0, 1, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 0, 0} } -- Crosses AREA_CROSS1X1 = { {0, 1, 0}, {1, 3, 1}, {0, 1, 0} } AREA_CROSS5X5 = { {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0} } AREA_CROSS6X6 = { {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0} } --Squares AREA_SQUARE1X1 = { {1, 1, 1}, {1, 3, 1}, {1, 1, 1} } -- Walls AREA_WALLFIELD = { {1, 1, 3, 1, 1} } AREADIAGONAL_WALLFIELD = { {0, 0, 0, 0, 1}, {0, 0, 0, 1, 1}, {0, 1, 3, 1, 0}, {1, 1, 0, 0, 0}, {1, 0, 0, 0, 0}, Condições CONDITION_NONE CONDITION_POISON CONDITION_FIRE CONDITION_ENERGY CONDITION_LIFEDRAIN CONDITION_HASTE CONDITION_PARALYZE CONDITION_OUTFIT CONDITION_INVISIBLE CONDITION_LIGHT CONDITION_MANASHIELD CONDITION_INFIGHT CONDITION_DRUNK CONDITION_EXHAUSTED CONDITION_FOOD CONDITION_REGENERATION CONDITION_SOUL CONDITION_DROWN CONDITION_MUTED
Postado Julho 20, 2011 13 anos Cara, você poderia explicar como funciona as formulas? Qual número multiplica qual... Como calcular os danos... Dai sim ficaria como criar spells pro servidor, Mas a intenção foi boa parabêns ae Pois pelo que eu saiba tem numeros ai que multiplica ou divide o dano calculo. Editado Julho 20, 2011 13 anos por KibeMatheus (veja o histórico de edições)
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.