// Remedy's Meditation System
// Full Passive Mana working
// Armor types slow down passive meditation (plate,ringmail,non leather)
// Some armor pieces do not let you meditate (plate,ringmail,non leather)
[EVENTS e_meditation]
ON=@SkillStart
IF (<FIXACTION> == SKILL_MEDITATION)
//-- If Wearing certain armor dont meditate
IF (<SRC.FINDLAYER(6).TYPE>==t_armor) // head
IF (<SRC.FINDLAYER(6).BASEID>==I_platemail_helm) //exclude plate only
SRC.SYSMESSAGE You cannot meditate at this time!
RETURN 1
ENDIF
ELIF (<SRC.FINDLAYER(13).TYPE>==t_armor) //chest
SRC.SYSMESSAGE You cannot meditate at this time!
RETURN 1
ELIF (<SRC.FINDLAYER(24).TYPE>==t_armor) // legs
SRC.SYSMESSAGE You cannot meditate at this time!
RETURN 1
ENDIF
// Anti Gain Cheat
IF (<FINDID.i_mem_meditation>)
RETURN 1
ELSE
SRC.NEWITEM=i_mem_meditation
SRC.ACT.EQUIP
ENDIF
//--Skill gain
IF (<SRC.MANA> < 05)
VAR.GAIN = 1
ELIF (<SRC.MANA> < 10)
VAR.GAIN = 4
ELIF (<SRC.MANA> < 20)
VAR.GAIN = 8
ELIF (<SRC.MANA> < 30)
VAR.GAIN = 10
ELIF (<SRC.MANA> < 40)
VAR.GAIN = 15
ELIF (<SRC.MANA> < 50)
VAR.GAIN = 20
ELIF (<SRC.MANA> < 60)
VAR.GAIN = 25
ELIF (<SRC.MANA> < 70)
VAR.GAIN = 30
ELIF (<SRC.MANA> < 80)
VAR.GAIN = 35
ELIF (<SRC.MANA> < 90)
VAR.GAIN = 40
ELIF (<SRC.MANA> < 100)
VAR.GAIN = 50
ENDIF
IF (<SRC.MEDITATION> < 10.0)
VAR.GAIN2 = 1
ELIF (<SRC.MEDITATION> < 20.0)
VAR.GAIN2 = 2
ELIF (<SRC.MEDITATION> < 30.0)
VAR.GAIN2 = 3
ELIF (<SRC.MEDITATION> < 40.0)
VAR.GAIN2 = 5
ELIF (<SRC.MEDITATION> < 50.0)
VAR.GAIN2 = 7
ELIF (<SRC.MEDITATION> < 60.0)
VAR.GAIN2 = 10
ELIF (<SRC.MEDITATION> < 70.0)
VAR.GAIN2 = 12
ELIF (<SRC.MEDITATION> < 80.0)
VAR.GAIN2 = 15
ELIF (<SRC.MEDITATION> < 90.0)
VAR.GAIN2 = 18
ELIF (<SRC.MEDITATION> < 100.0)
VAR.GAIN2 = 20
ELIF (<SRC.MEDITATION>>100.0)
MEDITATION = 1000
ENDIF
IF (<VAR.GAIN>)&&(<VAR.GAIN2>)
VAR.GAIN3 = (<VAR.GAIN> + <VAR.GAIN2>)
VAR.X=<eval (rand(<VAR.GAIN3>))>
IF <var.x>==01
MEDITATION <MEDITATION> + 0.1
ENDIF
ENDIF
//---
FINDID.i_passive_regen.REMOVE
SRC.MESSAGE *meditating*
src.newitem=i_passive_regen
src.act.EQUIP
ENDIF
[itemdef i_mem_meditation]
NAME=Anti Meditation Gain Bug
ID=i_worldgem_bit
TYPE=T_EQ_SCRIPT
WEIGHT=0
LAYER=layer_special
on=@create
COLOR=021
ATTR=04042
ON=@EQUIP
TIMER=15
on=@TIMER
UNEQUIP
ON=@UNEQUIP
REMOVE
[itemdef i_passive_regen]
NAME=Mana Regeneration Timer
ID=i_worldgem_bit
TYPE=T_EQ_SCRIPT
WEIGHT=0
LAYER=layer_special
on=@create
COLOR=021
ATTR=attr_invis|attr_decay
ON=@EQUIP
LINK=<SRC.UID>
TIMER=1
RETURN 0
on=@TIMER
IF (<LINK.FIXACTION> == SKILL_MEDITATION)
IF (<LINK.FINDLAYER(6).TYPE>==t_armor) // Check to see if meditating
IF (<LINK.FINDLAYER(6).BASEID>==I_chainmail_coif) //exclude coif
RETURN 0
ELSE
LINK.SYSMESSAGE You cannot meditate at this time!
LINK.ACTION = -1
RETURN 1
ENDIF
ELIF (<LINK.FINDLAYER(13).TYPE>==t_armor) //chest
LINK.SYSMESSAGE You cannot meditate at this time!
LINK.ACTION = -1
RETURN 1
ELIF (<LINK.FINDLAYER(24).TYPE>==t_armor) // legs
LINK.SYSMESSAGE You cannot meditate at this time!
LINK.ACTION = -1
RETURN 1
ENDIF
TIMER=1
RETURN 1
endif
IF (<LINK.MANA><<LINK.INT>) //has mana lost?
/////////////////////////////////////////
// Check armor parts to increase timer
/////////////////////////////////////////
var.AddedARTimer = 1
IF (<LINK.FINDLAYER(6).TYPE>==t_armor) // head
var.addedARtimer = <var.addedARtimer> + 1
else
endif
IF (<LINK.FINDLAYER(13).TYPE>==t_armor) //chest
var.addedARtimer = <var.addedARtimer> + 1
else
endif
IF (<LINK.FINDLAYER(19).TYPE>==t_armor) // arms
var.addedARtimer = <var.addedARtimer> + 1
else
endif
IF (<LINK.FINDLAYER(24).TYPE>==t_armor) // legs
var.addedARtimer = <var.addedARtimer> + 1
else
endif
/////////////////////////////////////////
IF ( 0 )
ELSEIF (<LINK.MEDITATION> < 10.0)
var.Addedtimer = 15
ELSEIF (<LINK.MEDITATION> < 20.0)
var.Addedtimer = 13
ELSEIF (<LINK.MEDITATION> < 30.0)
var.Addedtimer = 11
ELSEIF (<LINK.MEDITATION> < 40.0)
var.Addedtimer = 10
ELSEIF (<LINK.MEDITATION> < 50.0)
var.Addedtimer = 9
ELSEIF (<LINK.MEDITATION> < 60.0)
var.Addedtimer = 8
ELSEIF (<LINK.MEDITATION> < 70.0)
var.Addedtimer = 7
ELSEIF (<LINK.MEDITATION> < 80.0)
var.Addedtimer = 5
ELSEIF (<LINK.MEDITATION> < 90.0)
var.Addedtimer = 3
ELSEIF (<LINK.MEDITATION>==100.0)
var.Addedtimer = 1
ENDIF
////////////////////////
VAR.AddedTimer=<var.addedtimer> + <var.addedARtimer>
LINK.MANA=<LINK.MANA>+1
Timer = <var.addedtimer>
//LINK.SAY Timer = <var.addedtimer> //debug message
//RETURN 1
//////////////////////
else //mana regen'd?
TIMER=0
ENDIF
RETURN 1
on=@unequip //end passive meditation
LINK=04FFFFFFF
timer=0
RETURN 0