All pastes #115721 Raw Edit

brianMan

public text v1 · immutable
·published 2006-08-04 19:48 UTC
rendered paste body
#Event SkillUp  "You have become better at #1#! (#2#)"
Sub Main
    /declare i              int     local   0
    /declare c              int     local   0
    /declare MaxSkill       int     local   0

    /declare SpellSkill[5]  string  local
    /varset SpellSkill[1] Abjuration
    /varset SpellSkill[2] Alteration
    /varset SpellSkill[3] Conjuration
    /varset SpellSkill[4] Divination
    /varset SpellSkill[5] Evocation

    /varcalc MaxSkill ${Me.Level}*5+5
    /if (${MaxSkill} > 235) /varset MaxSkill 235

    /for i 1 to ${SpellSkill.Size}
        /for c 1 to 8
            /if (${Me.Gem[${c}].Skill.Equal[${SpellSkill[${i}]}]}) /goto :Check
        /next c
        /echo [${Time.Time24}] No ${SpellSkill[${i}]} spells memorized, continuing...
        /next i

        :Check
        /if (${Me.Skill[${SpellSkill[${i}]}]} >= ${MaxSkill}) {
            /echo [${Time.Time24}] Your ${SpellSkill[${i}]} skill is already at it's current maximum: ${Me.Skill[${SpellSkill[${i}]}]}...
        } else {
            /echo [${Time.Time24}] Casting ${Me.Gem[${c}].Name} to skill up ${SpellSkill[${i}]}.
            /echo [${Time.Time24}] Current skill in ${SpellSkill[${i}]}: ${Me.Skill[${SpellSkill[${i}]}]}.
            :Cast
                /doevents
                /if ((${Me.Gem[${c}].TargetType.Equal[Single]} || ${Me.Gem[${c}].TargetType.Equal[Targeted AE]}) && !${Target.ID}) /target myself
                /if (${Me.AFK}) /afk
                /if (${Me.CurrentMana} <= ${Me.Gem[${c}].Mana}) {
                    /call MedBreak
                }
                /if (${Me.PctHPs} < 20) {
                    /call HealBreak
                }
                /if (${Me.SpellReady[${c}]}) {
                    /if (!${Me.Standing}) /stand
                    /cast ${c}
                    /delay ${Math.Calc[${Me.Gem[${c}].MyCastTime}*10+10].Int} (!${Me.Casting.ID})
                    /if (${Me.Standing}) /sit
                }
                :Cursor
                /if (${Cursor.ID}) {
                    /autoinventory
                    /goto :Cursor
                }
            /if (${Me.Skill[${SpellSkill[${i}]}]} < ${MaxSkill}) /goto :Cast
        }
    /next i
    /echo [${Time.Time24}] Done..
    /call MedBreak
    /endmacro
/return

Sub MedBreak
    /if (!${Me.AFK}) /afk
    :Loop
        /if (${Me.Standing}) /sit
        /delay 6s
    /if (${Me.CurrentMana} < ${Me.MaxMana}) /goto :Loop
/return

Sub HealBreak
    /if (!${Me.AFK}) /afk
    :Loop
        /if (${Me.Standing}) /sit
        /delay 6s
    /if (${Me.CurrentHPs} < ${Me.MaxHPs}) /goto :Loop
/return

Sub Event_SkillUp(str Line, string TheSkill, int Amount)
    /echo [${Time.Time24}] ${TheSkill} increased - ${Amount}...
/return