Kimoszin 32 Postado Março 20, 2011 Share Postado Março 20, 2011 Introdução Ao Motivo de fechar a minha "fabrica de spells" resolvi criar esse tutorial. Para os iniciantes aprederem sozinhos. Organizei em Spoiler os Tipos de Magia. Spell De Attack: #O Corpo da Spell: #Simples: 1 Efeito local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE,COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT,CONST_ME_HITAREA) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.0, -500, 1.6, -600) arr = { {0, 1, 0}, {1, 3, 1}, {0, 1, 0} } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end #Simples: 2 Efeitos local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 21) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -6.0, -100, -3.0, -250) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 20) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -1.0, -500, -1.3, -680) arr1 = { {0, 1, 0}, {1, 3, 1}, {0, 1, 0} } arr2 = { {1, 0, 1}, {0, 3, 0}, {1, 0, 1} } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) setCombatArea(combat1, area1) setCombatArea(combat2, area2) local function onCastSpell1(parameters) doCombat(parameters.cid, combat1, parameters.var) end local function onCastSpell2(parameters) doCombat(parameters.cid, combat2, parameters.var) end function onCastSpell(cid, var) local parameters = { cid = cid, var = var} addEvent(onCastSpell1, 100, parameters) addEvent(onCastSpell2, 100, parameters) return TRUE end #Contruindo a Spell #Fazendo Sua Magia: Simples 1 Efeito local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE,COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT,CONST_ME_HITAREA) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.0, -500, 1.6, -600) setCombatParam(combat, COMBAT_PARAM_TYPE,COMBAT_PHYSICALDAMAGE) -> Tipo De Dano setCombatParam(combat, COMBAT_PARAM_EFFECT,CONST_ME_HITAREA) -> Efeito da magia setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.0, -500, 1.0, -600) -> Formula do HIT da Spell arr = { {0, 1, 0}, {1, 2, 1}, {0, 1, 0} } Local em que a Spell vai sair ou seja, aonde esta o 2 sera o player. Obs: Botando 2 o efeito da magia nao sai no player, botando 3 o efeito sai encima do player tb local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Nao mecheremos aqui, pois é uma spell simples. #Fazendo Sua Magia: 2 Efeitos local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 21) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -6.0, -100, -3.0, -250) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 20) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -1.0, -500, -1.3, -680) setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE) -> Tipo de Dano do primeiro efeito setCombatParam(combat1, COMBAT_PARAM_EFFECT, 21) -> Primeiro Efeito setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -6.0, -100, -3.0, -250) -> Formula do HIT do primeiro efeito setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE) -> Tipo de dano do segundo efeito setCombatParam(combat2, COMBAT_PARAM_EFFECT, 20) -> Segundo Efeito setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -1.0, -500, -1.3, -680) -> Formula do Hit do segundo efeito arr1 = { {0, 1, 0}, {1, 3, 1}, {0, 1, 0} } arr2 = { {1, 0, 1}, {0, 3, 0}, {1, 0, 1} } arr1 = Onde a spell vai se 'criar' o primeiro efeito arr2 = onde a spell vai se 'criar' o segundo efeito addEvent(onCastSpell1, 100, parameters) addEvent(onCastSpell2, 100, parameters) addEvent(onCastSpell1, 100, parameters) -> Quantos segundos apos a fala da magia ira criar o primeiro efeito addEvent(onCastSpell2, 100, parameters) -> Quantos segundos apos a fala da magia ira criar o segundo efeito Obs: 100= 1 segundo, 300= 3 segundos, 1000= 10 segundos Spell De Cura: #Corpo da Spell: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, 36) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 11, 15) function onCastSpell(cid, var) return doCombat(cid, combat, var) end #Criando Sua Spell: #Fazendo Sua Magia: setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) Esse Sera o a spell ira fazer setCombatParam(combat, COMBAT_PARAM_EFFECT, 36) Esse sera o efeito dela setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) Aqui e que essa spell nao é agressiva, entao pode ser usada em protect zone setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) Essa magia vai curar paralyze setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 11, 15) Formula da magia, o quanto ela vai healar. function onCastSpell(cid, var) return doCombat(cid, combat, var) end Nao precisamos mecher. Spell de Suport: #Corpo da Spell: #Correr: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local condition = createConditionObject(CONDITION_HASTE) setConditionParam(condition, CONDITION_PARAM_TICKS, 33000) setConditionFormula(condition, 0.3, -24, 0.3, -24) setCombatCondition(combat, condition) function onCastSpell(cid, var) return doCombat(cid, combat, var) end #Luz local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local condition = createConditionObject(CONDITION_LIGHT) setConditionParam(condition, CONDITION_PARAM_LIGHT_LEVEL, 6) setConditionParam(condition, CONDITION_PARAM_LIGHT_COLOR, 215) setConditionParam(condition, CONDITION_PARAM_TICKS, (6 * 60 + 10) * 1000) setCombatCondition(combat, condition) function onCastSpell(cid, var) return doCombat(cid, combat, var) end #Uma magia qualquer de trap local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, 2) setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1497) local arr = { {0, 0, 0, 1, 0, 0 ,0}, {0, 0, 1, 1, 1, 0 ,0}, {0, 1, 0, 0, 0, 1 ,0}, {1, 0, 0, 2, 0, 0 ,1}, {0, 1, 0, 0, 0, 1 ,0}, {0, 0, 1, 1, 1, 0 ,0}, {0, 0, 0, 1, 0, 0 ,0} } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end #Contruindo a Spell #Correr 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 Portect Zone local condition = createConditionObject(CONDITION_HASTE) Condição de Correr setConditionParam(condition, CONDITION_PARAM_TICKS, 33000) Tempo que vai durar, nesse caso 33 segundos setConditionFormula(condition, 0.3, -24, 0.3, -24) Formula da velocidade setCombatCondition(combat, condition) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Nao Mechemos aqui #Luz: setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) Efeito da Magia setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) Magia nao agressiva, para ser usada em protect zone local condition = createConditionObject(CONDITION_LIGHT) Condição de criar Luz setConditionParam(condition, CONDITION_PARAM_LIGHT_LEVEL, 6) Tamanho da Luz setConditionParam(condition, CONDITION_PARAM_LIGHT_COLOR, 215) Cor da Luz setConditionParam(condition, CONDITION_PARAM_TICKS, (6 * 60 + 10) * 1000) Tempo que vai durar setCombatCondition(combat, condition) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Nao Mechemos aqui #Uma Magia qualquer de Trap: setCombatParam(combat, COMBAT_PARAM_EFFECT, 2) Efeito que soltara, nesse caso "poff" local arr = { {0, 0, 0, 1, 0, 0 ,0}, {0, 0, 1, 1, 1, 0 ,0}, {0, 1, 0, 0, 0, 1 ,0}, {1, 0, 0, 2, 0, 0 ,1}, {0, 1, 0, 0, 0, 1 ,0}, {0, 0, 1, 1, 1, 0 ,0}, {0, 0, 0, 1, 0, 0 ,0} } Local em que as magic wall serao criadas local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Aqui nao mecheremos. Bom é isso Pessoal. Espero que tenham Gostado! Obs: Quando eu tiver tempo, mostrarei todos os effects Abraços Link para o comentário Compartilhar em outros sites More sharing options...
Demonbholder 420 Postado Março 20, 2011 Share Postado Março 20, 2011 Legal cara, vai ajudar bastante o pessoal. Bem explicado, tópico formatado, se coubesse a mim a decisão, o tópico seria aprovado. Até mais. Link para o comentário Compartilhar em outros sites More sharing options...
Kimoszin 32 Postado Abril 1, 2011 Autor Share Postado Abril 1, 2011 Vlw Cara (: So quero ver se vai ser aprovado. Abraços Link para o comentário Compartilhar em outros sites More sharing options...
fsg 230 Postado Abril 2, 2011 Share Postado Abril 2, 2011 Tutorial aprovado e movido! Link para o comentário Compartilhar em outros sites More sharing options...
Kimoszin 32 Postado Abril 2, 2011 Autor Share Postado Abril 2, 2011 Vlw FezZinN! Fico feliz por ter ajudado. Abraços Link para o comentário Compartilhar em outros sites More sharing options...
champzika 2 Postado Abril 10, 2011 Share Postado Abril 10, 2011 (editado) Tenho , uma duvida é quando o effects seria tipo esses : setCombatParam(combat1, COMBAT_PARAM_EFFECT, 44) setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, 11) tipo é 2combat ai , seria como ? poderia da um exemplo ? Editado Abril 10, 2011 por w3xRPG Link para o comentário Compartilhar em outros sites More sharing options...
niverton14 0 Postado Abril 15, 2011 Share Postado Abril 15, 2011 ae desculpa so novato no xtibia se poderia me dizer onde eu posso fazer minhas perguntas MINHAS DUVIDAS Link para o comentário Compartilhar em outros sites More sharing options...
Kimoszin 32 Postado Abril 20, 2011 Autor Share Postado Abril 20, 2011 Tenho , uma duvida é quando o effects seria tipo esses : setCombatParam(combat1, COMBAT_PARAM_EFFECT, 44) setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, 11) tipo é 2combat ai , seria como ? poderia da um exemplo ? Como assim cara? Nao entendi sua duvida ae desculpa so novato no xtibia se poderia me dizer onde eu posso fazer minhas perguntas MINHAS DUVIDAS Depende Cara, vc pode pedir duvida nesses topicos: Dúvidas sobre Scripts Dúvidas sobre Mapping Dúvidas sobre OT Servidores Dúvidas sobre Websites Dúvidas de programação So escolher a area que vc tenha duvida, faça um topico com a duvida e espere um membro responder. Abraços Link para o comentário Compartilhar em outros sites More sharing options...
Folspa 26 Postado Abril 24, 2011 Share Postado Abril 24, 2011 Tenho algumas dúvidas sobre a magia de luz: Eu quero fazer um efeito grande, que se espalhe em cascata, em várias direções, o que eu altero no script? Link para o comentário Compartilhar em outros sites More sharing options...
champzika 2 Postado Abril 27, 2011 Share Postado Abril 27, 2011 Ex : Tpw , eu coloquei esses effects , em uma magia ai ela nao funcionava =/ queria , que você desse um exemplo de uma magia com 2 effects diferente . Link para o comentário Compartilhar em outros sites More sharing options...
XJhoow 27 Postado Maio 6, 2011 Share Postado Maio 6, 2011 Brother, desculpa ai, seu tutorial está ótimo, quando digo ótimo é ótimo mesmo! Mas , não achas que já tem 1 milhão de tutoriais sobre isso? Não é querer ser chato, mas pá.. Valeu, obrigado a dedicação a fazer esse tuto.. Só minha opnião.. Abraços! Link para o comentário Compartilhar em outros sites More sharing options...
Lucamarins 1 Postado Maio 8, 2011 Share Postado Maio 8, 2011 Cara,comecei a mexer hoje nesse negócio de server, otserver. então eu não entendi NADA o_O'. mas pelos comentários,deve ser uma coisa bem simples que eu , retardado,não entendi. Abraços :XTibia_smile: Link para o comentário Compartilhar em outros sites More sharing options...
DiogoTemporario 91 Postado Maio 8, 2011 Share Postado Maio 8, 2011 deu até vontade de baixar um ot pra brincar de fazer spell, npc e monster denovo pior é que to acostumado com o xml do 7.6, vou dar umas lidas nuns tutoriais aí Link para o comentário Compartilhar em outros sites More sharing options...
diiiiiiii 1 Postado Maio 15, 2011 Share Postado Maio 15, 2011 Não consegui ;x Tipo, depois de tudo que é feito aí, não tem que levar algo pro spells.xml , e fazer algo tipo : <instant name="Death Strike" words="exori mort" lvl="16" mana="20" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="attack/death strike.lua"> <vocation id="1"/> <vocation id="2"/> <vocation id="5"/> <vocation id="6"/> </instant> onde você escolhe as palavas a serem ditas pra fazer a magia, e o nome da magia? Ou é só fazer o que você mostrou , salvar e pronto? Se for isso, não consegui mesmo. Link para o comentário Compartilhar em outros sites More sharing options...
Luansousa 0 Postado Setembro 28, 2011 Share Postado Setembro 28, 2011 bom trabalho Rep++ Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados