Bien, esta es una mana rune con la cual pueden usar formula de level sola o ml sola, o las 2 juntas, o con un limite (entre numero y numero)
Fue hecha por un request de god rakzoo
Vamos a usar las runes con itemIDs:
2263 = Para sorcerer
2267 = Para Druid
2270 = Para pally
2272 = Para knight
data/actions/actions.xml
Código:
<action itemid="2263;2267;2270;2272" event="script" value="manar.lua"/>
data/actions/scripts/manar.lua
Código:
local exhausted = createConditionObject(CONDITION_EXHAUST)
setConditionParam(exhausted, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))
local t = {
[2263] = {vocation = 1, level = 50, magic_level = 60, min = 500, max = 1000, voc = 5},
[2267] = {vocation = 2, level = 50, magic_level = 60, min = 500, max = 1000, voc = 6},
[2270] = {vocation = 3, level = 50, magic_level = 15, min = 250, max = 500, voc = 7},
[2272] = {vocation = 4, level = 40, magic_level = 5, min = 300, max = 600, voc = 8}
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
ppos = getPlayerPosition(cid)
local v = t[item.itemid]
if v then
if getPlayerLevel(cid) >= v.level then
if getPlayerMagLevel(cid) >= v.magic_level then
if isInArray({v.vocation,v.voc},getPlayerVocation(cid)) then
doPlayerAddMana(cid,math.random(v.min, v.max))
doSendMagicEffect(ppos,CONST_ME_MAGIC_BLUE)
doAddCondition(cid, exhausted)
doSendAnimatedText(ppos, "Mana rune!", math.random(1,100))
else
doPlayerSendCancel(cid,"Esta runa no es de tu vocation")
end
else
doPlayerSendCancel(cid,"No tienes el magic level requerido")
end
else
doPlayerSendCancel(cid,"No tienes el level requerido")
end
if hasCondition(cid, CONDITION_EXHAUST_HEAL) then
return doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
end
if not isPlayer(itemEx.uid) then
return doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
end
return true
end
end
Son 4 manarunes en un file.
Con este file, las mrs tendran todas un limite entre minimo y maximo de cada una
Con este otro, seran las mismas runas, pero con formulas de level y/o magic level
Código:
local exhausted = createConditionObject(CONDITION_EXHAUST)
setConditionParam(exhausted, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))
local t = {
[2263] = {vocation = 1, level = 50, magic_level = 60, voc = 5},
[2267] = {vocation = 2, level = 50, magic_level = 60, voc = 6},
[2270] = {vocation = 3, level = 50, magic_level = 15, voc = 7},
[2272] = {vocation = 4, level = 40, magic_level = 5, voc = 8}
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
mlmin = getPlayerMagLevel(cid)*2
mlmax = getPlayerMagLevel(cid)*3
lvlmin = getPlayerLevel(cid)*2
lvlmax = getPlayerLevel(cid)*3
ppos = getPlayerPosition(cid)
local v = t[item.itemid]
if v then
if getPlayerLevel(cid) >= v.level then
if getPlayerMagLevel(cid) >= v.magic_level then
if isInArray({v.vocation, v.voc},getPlayerVocation(cid)) then
doPlayerAddMana(cid,math.random(mlmin, mlmax) + math.random(lvlmin, lvlmax))
doSendMagicEffect(ppos,CONST_ME_MAGIC_BLUE)
doAddCondition(cid, exhausted)
doSendAnimatedText(ppos, "Mana rune!", math.random(1,100))
else
doPlayerSendCancel(cid,"Esta runa no es de tu vocation")
end
else
doPlayerSendCancel(cid,"No tienes el magic level requerido")
end
else
doPlayerSendCancel(cid,"No tienes el level requerido")
end
if hasCondition(cid, CONDITION_EXHAUST_HEAL) then
return doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
end
if not isPlayer(itemEx.uid) then
return doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
end
return true
end
end
Como edito?
Código:
[2263] = {vocation = 1, level = 50, magic_level = 60, min = 500, max = 1000, voc = 5},
vocation 1 = Sorc, que level? que magic level? Minimo que va a curar, maximo que va a curar?
Si tienes el otro file es lo mismo pero sin min y max
Ahora como edito las formulas?
mlmin = getPlayerMagLevel(cid)*2
mlmax = getPlayerMagLevel(cid)*3
lvlmin = getPlayerLevel(cid)*2
lvlmax = getPlayerLevel(cid)*3
mlmin = El minimo de mana que se puede ganar, la formula sera el maglevel del player*2
(Pueden hacer como quieran, (*algo, /algo, +algo)
mlmax = Lo mismo pero el maximo
lvlmin = El minimo de mana que se puede ganar por formula de level,
lvlmax = Lo mismo
(Las formulas pueden ir separadas o juntas, andara de todos modos!)
Disfruten
[b]Quieren hacerla una UH en vez de una MR?
Nada mas cambien en el script, esta linea:
Código:
doPlayerAddMana(cid,math.random(mlmin, mlmax) + math.random(lvlmin, lvlmax))
Por esta:
Código:
doCreatureAddHealth(cid,math.random(mlmin, mlmax) + math.random(lvlmin, lvlmax))
Y esta:
Código:
doSendAnimatedText(ppos, "Mana rune!", math.random(1,100))
Por esta:
Código:
doSendAnimatedText(ppos, "UH!", math.random(1,100))
creditos: 100% bt