As promised, a magery trainer. It doesn't train anything else, maybe Eval Int a little bit.
Does exactly as it says on the tin. FCR to a minimum of 4 is advisable. FC is not necessary, but is coded into the script.
I have given 2 user editted variables. The first one solves an issue where it tries to cast one spell while out of mana, small amounts of lag cause this issue. Set to 0 and try it.
The second variable is your faster casting speed as I do not wish to write an FC/FCR checker into the script.
;==================================
; Script Name: Reaper's Magery Trainer
; Author: The Reaper
; Version: 1.1
: Change Noes: Added a minimum skill check
; Client Tested with: 7.0.10.3
; EUO version tested with: 1.5.186
; Purpose: Train magery for freeshards.
; Should work on OSI servers also.
;==================================
;==================================
; Set this value to 5 if you are eperiencing
; "Insufficient mana for this spell" Issues
set %setwait 5
; Set this value to your faster casting reduction
; 1FC = 2 2FC = 5 (2FC is magery cap)
set %fc 5
; DO NOT alter below this line
;==================================
initevents
set %skilltraining mage
chooseskill %skilltraining
set %startingskill #skill
set %currentskill #skill
if #skill < 300
{
display You need to train with an NPC to 30.0 before running this script
halt
}
gosub showmenu
Loop:
gosub Choosespell
gosub Cast
gosub Checkskill
gosub Checkmana
goto Loop
sub showmenu
menu clear
menu window title Magery Trainer
menu window size 180 95
menu window color black
menu font name arial
menu font size 12
menu font color Red
menu font bgcolor black
menu text title 5 5 MAGERY TRAINER.
menu font size 8
menu font color lime
menu text mageryskill 5 25 Current skill:
menu text gains 5 40 Total gains:
menu text casting 5 55 Casting:
menu font color yellow
str len %currentskill
str ins %currentskill #dot #strRes
menu delete currentskill
menu text currentskill 68 25 #strRes
set %totalgains %currentskill - %startingskill
str len %totalgains
str ins %totalgains #dot #strRes
menu delete totalgains
menu text totalgains 68 40 #strRes
menu font align right
menu text credit 176 80 by The Reaper
menu font align left
menu show
return
sub Choosespell
if #skill = #skillcap
{
display You have reached your Magery Skill cap of #skill
halt
}
if #skill < 450
{
set %spell 16
set %manatocast 9
set %castdelay 10
set %masochistic 1
menu delete currentspell
menu text currentspell 68 55 Bless
return
}
if #skill < 550
{
set %spell 28
set %manatocast 11
set %castdelay 13
set %masochistic 1
menu delete currentspell
menu text currentspell 68 55 Greater Heal
return
}
if #skill < 650
{
set %spell 35
set %manatocast 14
set %castdelay 15
set %masochistic 0
menu delete currentspell
menu text currentspell 68 55 Magic Reflection
return
}
if #skill < 750
{
set %spell 43
set %manatocast 20
set %castdelay 18
set %masochistic 1
menu delete currentspell
menu text currentspell 68 55 Invisibility
return
}
if #skill < 900
{
set %spell 53
set %manatocast 40
set %castdelay 20
set %masochistic 1
menu delete currentspell
menu text currentspell 68 55 Mass Dispel
return
}
if #skill < 1200
{
set %spell 56
set %manatocast 50
set %castdelay 23
set %masochistic 0
menu delete currentspell
menu text currentspell 68 55 Earthquake
return
}
return
sub Cast
event macro 15 %spell
if %masochistic = 1
{
target 2s
wait 5
event macro 23 0
return
}
wait %castdelay - %FCR
wait 5
return
return
sub Checkskill
chooseskill %skilltraining
if #skill > %currentskill
{
set %currentskill #skill
sound
str len %currentskill
str ins %currentskill #dot #strRes
menu delete currentskill
menu text currentskill 68 25 #strRes
set %totalgains %currentskill - %startingskill
str len %totalgains
str ins %totalgains #dot #strRes
menu delete totalgains
menu text totalgains 68 40 #strRes
}
return
sub Checkmana
wait %setwait
if #mana < %manatocast
{
event macro 13 46
loop2:
if #mana < #maxmana
{
goto loop2
}
}
return