Rômulo Souza 14 #1 Postado 5 Junho, 2014 (editado) Nome: Simple Spell LIB 1.0 Autor: Rômulo e Longhart Versão Testada: tfs 0.4 8.6 Objetivo: simplificar a criação de Spells, em especial, as magias combos (vários efeitos). Instalação Crie um arquivo: Data/Spells/system.lua e coloque dentro: --[[ v1.0 Por: Rômulo Souza | Longhart ]] function attackSpell(type,effect,combat_formula,formula,area,delay) local delay=delay or 0 local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, type) setCombatParam(combat, COMBAT_PARAM_EFFECT, effect) setAttackFormula(combat, combat_formula, formula[1], formula[2], formula[3], formula[4]) --5, 5, 4.5, 9 area = createCombatArea(area) setCombatArea(combat, area) return {combat=combat,delay=delay} end function doAllCombats(cid,var,combos,rept) local rept = rept or 1 local delay_repeat = 0 local soma_delay = 0 for i=1,rept do for _,v in pairs(combos) do addEvent(doCombat,(delay_repeat+soma_delay+v.delay),cid,v.combat,var) soma_delay=soma_delay+v.delay end delay_repeat=delay_repeat+1000 end return true end Funções attackSpell(type,effect,combat_formula,formula,area,delay) doAllCombats(cid,var,combos,repetir) Exemplo de Uso Spell Simples (1 combo) --SKILLS: local formula = {5, 5, 4.5, 9} local type_formula = COMBAT_FORMULA_LEVELMAGIC --AREA: local area = {{1,0,0,0,0,0,1}, {0,1,0,0,0,1,0}, {0,0,1,0,1,0,0}, {0,0,0,2,0,0,0}, {0,0,1,0,1,0,0}, {0,1,0,0,0,1,0}, {1,0,0,0,0,0,1}} local combos={ attackSpell(COMBAT_FIREDAMAGE,CONST_ME_FIREAREA,type_formula,formula,area,0), } function onCastSpell(cid, var) return doAllCombats(cid,var,combos,1) end Spell Simples repetida 10 vezes --SKILLS: local formula = {5, 5, 4.5, 9} local type_formula = COMBAT_FORMULA_LEVELMAGIC --AREA: local area = {{1,0,0,0,0,0,1}, {0,1,0,0,0,1,0}, {0,0,1,0,1,0,0}, {0,0,0,2,0,0,0}, {0,0,1,0,1,0,0}, {0,1,0,0,0,1,0}, {1,0,0,0,0,0,1}} local combos={ attackSpell(COMBAT_FIREDAMAGE,CONST_ME_FIREAREA,type_formula,formula,area,0), } function onCastSpell(cid, var) return doAllCombats(cid,var,combos,10) -- Vai repetir 10 vezes end Spell Avançada de vários Combos, Areas e Delays --SKILLS: local formula = {5, 5, 4.5, 9} local type_formula = COMBAT_FORMULA_LEVELMAGIC --AREA: local area1 = {{1,0,0,0,0,0,1}, {0,1,0,0,0,1,0}, {0,0,1,0,1,0,0}, {0,0,0,2,0,0,0}, {0,0,1,0,1,0,0}, {0,1,0,0,0,1,0}, {1,0,0,0,0,0,1}} local area2 = {{0,0,0,1,0,0,0}, {0,0,0,1,0,0,0}, {0,0,0,1,0,0,0}, {1,1,1,2,1,1,1}, {0,0,0,1,0,0,0}, {0,0,0,1,0,0,0}, {0,0,0,1,0,0,0}} local combos={ attackSpell(COMBAT_ENERGYDAMAGE,CONST_ME_ENERGYHIT,type_formula ,formula,area1,0), attackSpell(COMBAT_FIREDAMAGE,CONST_ME_FIREAREA,type_formula,formula,area2,0), attackSpell(COMBAT_ENERGYDAMAGE,CONST_ME_ENERGYHIT,type_formula,formula,area2,1000), -- 1000 milisegundos depois do de cima attackSpell(COMBAT_FIREDAMAGE,CONST_ME_FIREAREA,type_formula,formula,area1,0), -- 0 milisegundos depois do de cima } function onCastSpell(cid, var) return doAllCombats(cid,var,combos,10) -- Repetir 10 vezes end Vou com o tempo adicionando novos recursos e funções, mas sempre com total compatibilidade as versões passadas desse sistema. Obrigado! O que você achou? Qual sua opinião? Deixe seu comentário! Editado 6 Junho, 2014 por Rômulo Souza 2 Longhart e anderdarkgara reagiu a isto Compartilhar este post Link para o post
Longhart 16 #2 Postado 7 Junho, 2014 Boa, trouxe pro fórum. Agora, você poderia colocar um link e citar sobre seu outro tópico de tradução de NPCs. Nenhum moderador moveu isso pra area de downloads ainda :s 1 Rômulo Souza reagiu a isto Compartilhar este post Link para o post
Rômulo Souza 14 #3 Postado 7 Junho, 2014 (editado) É, complicado. . A equipe quer conteúdo, mas ignora o principal forum (avaliação de downloads), que dará conteúdo pra otbr. Eles devem avaliar pelo nome do tópico ou coisa assim e ignora. Editado 7 Junho, 2014 por Rômulo Souza Compartilhar este post Link para o post
Luck Oake 16 #4 Postado 15 Junho, 2014 Aprovado e movido. Desculpe pela demora. Estávamos sem moderadores para scripting ativos. 1 Rômulo Souza reagiu a isto Compartilhar este post Link para o post