Postado Janeiro 14, 2015 10 anos Boa noite galera do TK... gostaria de desenvolver um sistema .. onde certas magias teriam "level".. e que seja dificil de evoluir.. indo ate o maximo [skill Level 5] e quanto mais alto o skill level .. mais alto o dano das magias.. e as magias de heal dos druidas, healassem mais.. conforme o SL. OBS.: Versão 8.54 Exemplo do sistema: Editado Janeiro 14, 2015 10 anos por azzouks (veja o histórico de edições)
Postado Janeiro 14, 2015 10 anos magias baseadas no level são bem tranquilas de fazer, olha só um exemplo: Mostrar conteúdo oculto local combat_lv1 = createCombatObject() setCombatParam(combat_lv1, COMBAT_PARAM_EFFECT, 50) setCombatParam(combat_lv1, COMBAT_PARAM_CREATEITEM, 1499) local combat_lv2 = createCombatObject() setCombatParam(combat_lv2, COMBAT_PARAM_EFFECT, 50) setCombatParam(combat_lv2, COMBAT_PARAM_CREATEITEM, 1499) local combat_lv3 = createCombatObject() setCombatParam(combat_lv3, COMBAT_PARAM_EFFECT, 50) setCombatParam(combat_lv3, COMBAT_PARAM_CREATEITEM, 1499) local area_lv1 = createCombatArea({ {0, 1, 0}, {0, 0, 0}, {0, 2, 0} }) local area_lv2 = createCombatArea({ {1, 1, 0}, {0, 0, 0}, {0, 2, 0} }) local area_lv3 = createCombatArea({ {1, 1, 1}, {0, 0, 0}, {0, 2, 0} }) setCombatArea(combat_lv1, area_lv1) setCombatArea(combat_lv2, area_lv2) setCombatArea(combat_lv3, area_lv3) local function onCastSpell1(parameters) doCombat(parameters.cid, combat_lv1, parameters.var) end local function onCastSpell2(parameters) doCombat(parameters.cid, combat_lv2, parameters.var) end local function onCastSpell3(parameters) doCombat(parameters.cid, combat_lv3, parameters.var) end function onCastSpell(cid, var) local position = getCreaturePosition(cid) local t = { [0] = {x = position.x, y = position.y - 3, z = position.z}, [1] = {x = position.x + 3, y = position.y, z = position.z}, [2] = {x = position.x, y = position.y + 3, z = position.z}, [3] = {x = position.x - 3, y = position.y, z = position.z} } doSendDistanceShoot(position, t[getCreatureLookDirection(cid)], 38) local parameters = { cid = cid, var = var} local spell_storage = 48502 if getPlayerStorageValue(cid, spell_storage) < 15 then addEvent(onCastSpell1, 0, parameters) setPlayerStorageValue(cid, spell_storage, getPlayerStorageValue(cid, spell_storage)+1) elseif getPlayerStorageValue(cid, spell_storage) == 15 then addEvent(onCastSpell2, 0, parameters) setPlayerStorageValue(cid, spell_storage, getPlayerStorageValue(cid, spell_storage)+1) doPlayerSendTextMessage(cid, 22, "Its barrier kindling progressed to level 2") doSendMagicEffect(getCreaturePosition(cid),28) doSendAnimatedText(getCreaturePosition(cid), 'Spell UP', 210) elseif getPlayerStorageValue(cid, spell_storage) > 15 and getPlayerStorageValue(cid, spell_storage) < 35 then addEvent(onCastSpell2, 0, parameters) setPlayerStorageValue(cid, spell_storage, getPlayerStorageValue(cid, spell_storage)+1) elseif getPlayerStorageValue(cid, spell_storage) == 35 then addEvent(onCastSpell3, 0, parameters) setPlayerStorageValue(cid, spell_storage, getPlayerStorageValue(cid, spell_storage)+1) doPlayerSendTextMessage(cid, 22, "Its barrier kindling progressed to level 3") doSendMagicEffect(getCreaturePosition(cid),28) doSendAnimatedText(getCreaturePosition(cid), 'Spell UP', 210) elseif getPlayerStorageValue(cid, spell_storage) > 35 then addEvent(onCastSpell3, 0, parameters) setPlayerStorageValue(cid, spell_storage, getPlayerStorageValue(cid, spell_storage)+1) end return true end não passa de uma magia repleta de checagens num valor de storage que é responsável por dizer qual dos combats será enviado, dando a sensação de que a magia melhora conforme você vai usando-a;
Postado Janeiro 14, 2015 10 anos Autor como eu dificulto o Spell Up ? onde configuro o dano da magia ? quero focar mais em magias de Dano, e de "cura" tipo "exura sio" "exura regen "nick " me dá um exemplo nessa magia aqui.. pra eu tê-la como base: Mostrar conteúdo oculto local combat = createCombatObject() local meteor = createCombatObject() setCombatParam(meteor, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(meteor, COMBAT_PARAM_EFFECT, 36) setCombatParam(meteor, COMBAT_PARAM_HITCOLOR, COLOR_ORANGE) setCombatFormula(meteor, COMBAT_FORMULA_SKILL, 0.8, -220, 1.2, -200) local meteor2 = createCombatObject() setCombatParam(meteor2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) local stun = createConditionObject(CONDITION_PHYSICAL) setConditionParam(stun, CONDITION_PARAM_DELAYED, 25) addDamageCondition(stun, 500, 5, -2000) setCombatCondition(meteor, stun) combat_arr= { {1, 1, 1}, {1, 2, 1}, {1, 1, 1} } local combat_area = createCombatArea(combat_arr) setCombatArea(combat, combat_area) local function meteorCast(p) doCombat(p.cid, p.combat, positionToVariant(p.pos)) end local function stunEffect(cid) doSendMagicEffect(getThingPos(cid), CONST_ME_STUN) end function onTargetTile(cid, pos) if (math.random(0, 0) == 0) then local ground = getThingfromPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}) if (isInArray(water, ground.itemid) == TRUE) then local newpos = {x = pos.x - 7, y = pos.y - 6, z = pos.z} doSendDistanceShoot(newpos, pos, CONST_ANI_FIRE) addEvent(meteorCast, 200, {cid = cid, pos = pos, combat = meteor_water}) else local newpos = {x = pos.x - 7, y = pos.y - 6, z = pos.z} doSendDistanceShoot(newpos, pos, CONST_ANI_FIRE) addEvent(meteorCast, 100, {cid = cid,pos = pos, combat = meteor}) end end end setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile") local cooldown = 5 function onCastSpell(cid, var) function exoribleed(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "CD: Exori Bleed.") end if getPlayerStorageValue(cid, 10569) == 1 then doSendAnimatedText((getCreaturePosition(cid)), "Socorro!", 255) doSendMagicEffect(getCreaturePosition(cid), 19) doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED) return false end if exhaustion.check(cid, 23006) == false then exhaustion.set(cid, 23006, cooldown) addEvent(exoribleed, cooldown*1000, cid) return doCombat(cid, combat, var) else doSendMagicEffect(getCreaturePosition(cid), 2) doPlayerSendCancel(cid, "Golpe em cooldown por " ..exhaustion.get(cid, 23006).." segundos") return false end return doCombat(cid, combat, var) end Editado Janeiro 14, 2015 10 anos por azzouks (veja o histórico de edições)
Postado Janeiro 14, 2015 10 anos essa spell é a original ou vc tentou editar e tá postando oque fez? porque ao meu ver isso daí tá cheio de coisas desnecesárias...
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.