Hello! |getNameByUser(xtibia.com)| =P
Venho trazer a vcs minha nova criação =D
que se chama: CHARGE!
Explicação:
ex:
Vc fala:
-Charge
carrega 1x
-Charge
2x
-Charge
4x
-Charge
8x
etc...
-Engine
a "magia" no geral envolve somente talkaction e spell =D
Adicionando:
Crie um arquivo com o nome charge.lua na pasta talkaction do seu ot...
e cole isto dentro:
function onSay(cid, words, param) doCreatureSay(cid, "Charge", TALKTYPE_ORANGE_1) local cont = getPlayerStorageValue(cid,78451) local playerpos = getPlayerPosition(cid) pp = getPlayerPosition(cid) parametro = {cid=cid} pausa = 300 addEvent(charge, pausa, parametro) rd = 12 xeff1 = {x=pp.x-2,y=pp.y-2,z=pp.z} xeff2 = {x=pp.x-1,y=pp.y-2,z=pp.z} xeff3 = {x=pp.x,y=pp.y-2,z=pp.z} xeff4 = {x=pp.x+1,y=pp.y-2,z=pp.z} xeff5 = {x=pp.x+2,y=pp.y-2,z=pp.z} xeff6 = {x=pp.x-2,y=pp.y-1,z=pp.z} xeff7 = {x=pp.x-2,y=pp.y,z=pp.z} xeff8 = {x=pp.x-2,y=pp.y+1,z=pp.z} xeff9 = {x=pp.x+2,y=pp.y-1,z=pp.z} xeff10 = {x=pp.x+2,y=pp.y,z=pp.z} xeff11 = {x=pp.x+2,y=pp.y+1,z=pp.z} xeff12 = {x=pp.x-2,y=pp.y+2,z=pp.z} xeff13 = {x=pp.x-1,y=pp.y+2,z=pp.z} xeff14 = {x=pp.x,y=pp.y+2,z=pp.z} xeff15 = {x=pp.x+1,y=pp.y+2,z=pp.z} xeff16 = {x=pp.x+2,y=pp.y+2,z=pp.z} doSendMagicEffect(xeff1,rd) doSendMagicEffect(xeff2,rd) doSendMagicEffect(xeff3,rd) doSendMagicEffect(xeff4,rd) doSendMagicEffect(xeff5,rd) doSendMagicEffect(xeff6,rd) doSendMagicEffect(xeff7,rd) doSendMagicEffect(xeff8,rd) doSendMagicEffect(xeff9,rd) doSendMagicEffect(xeff10,rd) doSendMagicEffect(xeff11,rd) doSendMagicEffect(xeff12,rd) doSendMagicEffect(xeff13,rd) doSendMagicEffect(xeff14,rd) doSendMagicEffect(xeff15,rd) doSendMagicEffect(xeff16,rd) if cont == -1 then setPlayerStorageValue(cid,78451,0) return TRUE end return TRUE end function charge(parametro) local cid = parametro.cid parametro = {cid=cid} pausa = 300 addEvent(store, pausa, parametro) local cont = getPlayerStorageValue(cid,78451) local playerpos = getPlayerPosition(cid) pp = getPlayerPosition(cid) eff1 = {x=pp.x-1,y=pp.y-1,z=pp.z} eff2 = {x=pp.x,y=pp.y-1,z=pp.z} eff3 = {x=pp.x+1,y=pp.y-1,z=pp.z} eff4 = {x=pp.x-1,y=pp.y,z=pp.z} eff5 = {x=pp.x+1,y=pp.y,z=pp.z} eff6 = {x=pp.x-1,y=pp.y+1,z=pp.z} eff7 = {x=pp.x,y=pp.y+1,z=pp.z} eff8 = {x=pp.x+1,y=pp.y+1,z=pp.z} doSendMagicEffect(eff1,rd) doSendMagicEffect(eff2,rd) doSendMagicEffect(eff3,rd) doSendMagicEffect(eff4,rd) doSendMagicEffect(eff5,rd) doSendMagicEffect(eff6,rd) doSendMagicEffect(eff7,rd) doSendMagicEffect(eff8,rd) return TRUE end function store(parametro) local cid = parametro.cid local cont = getPlayerStorageValue(cid,78451) local playerpos = getPlayerPosition(cid) pp = getPlayerPosition(cid) if cont == 0 then vezes = 1 elseif cont == 1 then vezes = 2 elseif cont == 2 then vezes = 4 elseif cont == 3 then vezes = 6 elseif cont == 4 then vezes = 16 elseif cont == 5 then vezes = 32 elseif cont == 6 then vezes = 64 elseif cont == 7 then vezes = 128 elseif cont == 8 then vezes = 256 elseif cont == 9 then vezes = 512 elseif cont == 10 then vezes = 1024 end local life = (500*cont) if cont >= 11 then setPlayerStorageValue(cid,78451,0) doSendAnimatedText(playerpos, "Error",TEXTCOLOR_RED) else doSendAnimatedText(playerpos, "" .. vezes .. "x",TEXTCOLOR_RED) setPlayerStorageValue(cid,78451,cont+1) doCreatureAddHealth(cid,-life) mepos = {x=pp.x,y=pp.y,z=pp.z} doSendMagicEffect(mepos,65) end return TRUE end
e adicione essa tag em talkactions.xml
<talkaction words="Charge" script="charge.lua"/> <talkaction words="charge" script="charge.lua"/>
Agora vem a parte "magia" da história:
em spells/scripts crie um arquivo chamado: discharge.lua e cole dentro:
local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 17) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC , -3.0, -10, -2.5, -10) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 17) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC , -2.7, -20, -1.3, -10) local combat3 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat3, COMBAT_PARAM_EFFECT, 17) setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC , -2.4, -30, -2.1, -10) local combat4 = createCombatObject() setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat4, COMBAT_PARAM_EFFECT, 17) setCombatFormula(combat4, COMBAT_FORMULA_LEVELMAGIC , -2.1, -40, -1.9, -10) local combat5 = createCombatObject() setCombatParam(combat5, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat5, COMBAT_PARAM_EFFECT, 17) setCombatFormula(combat5, COMBAT_FORMULA_LEVELMAGIC , -1.6, -50, -1.7, -10) local combat6 = createCombatObject() setCombatParam(combat6, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat6, COMBAT_PARAM_EFFECT, 17) setCombatFormula(combat6, COMBAT_FORMULA_LEVELMAGIC , -1.6, -60, -1.5, -10) local combat7 = createCombatObject() setCombatParam(combat7, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat7, COMBAT_PARAM_EFFECT, 17) setCombatFormula(combat7, COMBAT_FORMULA_LEVELMAGIC , -1.6, -70, -1.3, -10) local combat8 = createCombatObject() setCombatParam(combat8, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat8, COMBAT_PARAM_EFFECT, 17) setCombatFormula(combat8, COMBAT_FORMULA_LEVELMAGIC , -1.6, -80, -1.3, -10) local combat9 = createCombatObject() setCombatParam(combat9, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat9, COMBAT_PARAM_EFFECT, 17) setCombatFormula(combat9, COMBAT_FORMULA_LEVELMAGIC , -1.7, -100, -1.5, -10) arr1 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } arr2 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 3, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } arr3 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 1, 1, 1, 3, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } arr4 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 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, 3, 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, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } arr5 = { {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 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}, {1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1}, {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, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, } arr6 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } arr7 = { {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, } arr8 = { {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0}, } arr9 = { {0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0}, } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) local area3 = createCombatArea(arr3) local area4 = createCombatArea(arr4) local area5 = createCombatArea(arr5) local area6 = createCombatArea(arr6) local area7 = createCombatArea(arr7) local area8 = createCombatArea(arr8) local area9 = createCombatArea(arr9) setCombatArea(combat1, area1) setCombatArea(combat2, area2) setCombatArea(combat3, area3) setCombatArea(combat4, area4) setCombatArea(combat5, area5) setCombatArea(combat6, area6) setCombatArea(combat7, area7) setCombatArea(combat8, area8) setCombatArea(combat9, area9) local function onCastSpell1(parameters) doCombat(parameters.cid, parameters.combat1, parameters.var) end local function onCastSpell2(parameters) doCombat(parameters.cid, parameters.combat2, parameters.var) end local function onCastSpell3(parameters) doCombat(parameters.cid, parameters.combat3, parameters.var) end local function onCastSpell4(parameters) doCombat(parameters.cid, parameters.combat4, parameters.var) end local function onCastSpell5(parameters) doCombat(parameters.cid, parameters.combat5, parameters.var) end local function onCastSpell6(parameters) doCombat(parameters.cid, parameters.combat6, parameters.var) end local function onCastSpell7(parameters) doCombat(parameters.cid, parameters.combat7, parameters.var) end local function onCastSpell8(parameters) doCombat(parameters.cid, parameters.combat8, parameters.var) end local function onCastSpell9(parameters) doCombat(parameters.cid, parameters.combat9, parameters.var) end function onCastSpell(cid, var) local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3, combat4 = combat4, combat5 = combat5, combat6 = combat6, combat7 = combat7 , combat8 = combat8, combat9 = combat9 } local vezes = getPlayerStorageValue(cid,78451) setPlayerStorageValue(cid,78451,0) if vezes == 0 then doPlayerSendCancel(cid,"Você nao tem possui elementar acumulada.") doSendMagicEffect(getPlayerPosition(cid), 2) end if vezes >= 1 then doCreatureSay(cid, "Discharge", TALKTYPE_ORANGE_1) addEvent(onCastSpell1, 100, parameters) end if vezes >= 2 then addEvent(onCastSpell2, 200, parameters) end if vezes >= 3 then addEvent(onCastSpell3, 300, parameters) end if vezes >= 4 then addEvent(onCastSpell4, 400, parameters) end if vezes >= 5 then addEvent(onCastSpell5, 500, parameters) end if vezes >= 6 then addEvent(onCastSpell6, 600, parameters) end if vezes >= 7 then addEvent(onCastSpell7, 700, parameters) end if vezes >= 8 then addEvent(onCastSpell8, 800, parameters) end if vezes >= 9 then addEvent(onCastSpell9, 900, parameters) end end
e adicione essa tag em spells.xml :
<instant name="Eternal Winter" words="Discharge" lvl="10" mana="0" prem="1" selftarget="1" exhaustion="500" needlearn="0" script="charge.lua"> <vocation name="knight"/> <vocation name="Elite Knight"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> <vocation name="Paladin"/> <vocation name="Royal Paladin"/> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> </instant>
ai é só testar =D
Vídeo para demonstração:
OBS1-
Eu não achei muito importante as "vocações".. pois voce usa de acordo com sua life...
kina tem bastante... mas n tem ml pra soltar forte...
mage tem puco mas um ml forte pra dar alto dano =D
OBS2-
Testado com otserv Alissow Ots 3.4 (8.5) sem nenhum erro...
se quiserem conferir - Kaeot.servegame.com =D
OBS3-
Não sei se postei na seção errada =/
se quiserem mover =D
Créditos:
Skyblade(Feito desde script até magia)
Churrus-Video(Gustavo)
lucasjockey-Xtibia (por ter me tirado uma duvida com addevents)
Att: Skyblade