Anasayfa
UO Sunucular
Forumlar
Profilim
// 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

UO-Dev SPONSOR

UO-Dev SPONSOR

Henüz yorum yapılmamış. Yorum yazabilmek için giriş yapmanız gerekir.

Üyelerin oylama ortalaması (10 dışında) :

Henüz Oylanmamış

Oylar: 0