;=================================================================
; Script Name: TrailMyx's UI Tutorial - Spellcasting
; Author: TrailMyx
; Version: 0.68
; Shard OSI / FS: OSI / FS OK
; Revision Date: 9/29/2007
;
; Purpose:
;
; Globals/System variables:
;
; Special Thanks:
;
; Revision History:
;
gosub showEUOMenu1
gosub Setup
set #MENUBUTTON N/A
set %current_circle 1
set %current_log_selection 0
set %last_target N/A
mainloop1:
;
; Update Window
;
gosub UpdateLogWindow
menu get CircleMenu
if #MENURES <> %current_circle
{
set %current_circle #MENURES
gosub UpdateSpellMenu %current_circle
}
menu get EUOListLogWindow
if #MENURES <> %current_log_selection
{
set %current_log_selection #MENURES
set %temp %journal . %current_log_selection
menu set EUOStatus %temp
}
;
; Handle Buttons/Checkmarks
;
if #MENUBUTTON = EUOButtonCast
{
set #MENUBUTTON N/A ; Always remember to reset #MENUBUTTON when you handle it!
menu delete EUOShape1
menu Shape EUOShape1 168 40 105 21 3 7 1 Black 7 Red
menu get CircleMenu
set %circle #MENURES
menu get SpellMenu
set %spell #MENURES
menu get EUOCheckWaitForTarget
set %waitfortarget #MENURES
if %circle = 9 ; Computer the event macro 15 spell number...
set %spell_num 100 + %spell
else
set %spell_num ( ( %circle - 1 ) * 8 ) + %spell - 1
event macro 15 %spell_num
if %waitfortarget = #TRUE
{
target 10s
if %last_target = N/A
{
repeat
until #TARGCURS = 0
set %last_target #LTARGETID
}
event macro 22 0
}
menu get EUOEditDelay
wait #MENURES
menu delete EUOShape1
menu Shape EUOShape1 168 40 105 21 3 7 1 Black 7 Lime
}
if #MENUBUTTON = EUOButtonResetTarget
{
set #MENUBUTTON N/A ; Always remember to reset #MENUBUTTON when you handle it!
set %last_target N/A
}
menu get EUOCheckLoop
if #MENURES = #TRUE
{
set #MENUBUTTON EUOButtonCast ; Force the Cast button to be pressed again!
}
goto mainloop1
;--------------------------------------------------------------
sub Setup
menu Combo Add CircleMenu First Circle
menu Combo Add CircleMenu Second Circle
menu Combo Add CircleMenu Third Circle
menu Combo Add CircleMenu Forth Circle
menu Combo Add CircleMenu Fifth Circle
menu Combo Add CircleMenu Sixth Circle
menu Combo Add CircleMenu Seventh Circle
menu Combo Add CircleMenu Eighth Circle
menu Combo Add CircleMenu Necromancy Circle
menu Combo Select CircleMenu 1 ; select 1st circle
gosub UpdateSpellMenu 1 ; redraw combo SpellMenu with 1st circle spells
menu Combo Select SpellMenu 1 ; always select the first combo select so it's visible
return
;--------------------------------------------------------------
sub UpdateSpellMenu
set %circle %1
menu Delete SpellMenu
menu Font BGColor White
menu Combo Create SpellMenu 12 64 145
menu get EUOCheckOSI
set %shard_kind #MENURES ; OSI and RunUO have different spells for 1st
if %circle = 1
{
if %shard_kind = #TRUE
{
menu Combo Add SpellMenu Clumsy
menu Combo Add SpellMenu Create Food
menu Combo Add SpellMenu Feeblemind
menu Combo Add SpellMenu Heal
menu Combo Add SpellMenu Magic Arrow
menu Combo Add SpellMenu Night Sight
menu Combo Add SpellMenu Reactive Armor
menu Combo Add SpellMenu Weaken
}
else
{
menu Combo Add SpellMenu Reactive Armor
menu Combo Add SpellMenu Clumsy
menu Combo Add SpellMenu Create Food
menu Combo Add SpellMenu Feeblemind
menu Combo Add SpellMenu Heal
menu Combo Add SpellMenu Magic Arrow
menu Combo Add SpellMenu Night Sight
menu Combo Add SpellMenu Weaken
}
return
}
if %circle = 2
{
menu Combo Add SpellMenu Agility
menu Combo Add SpellMenu Cunning
menu Combo Add SpellMenu Cure
menu Combo Add SpellMenu Harm
menu Combo Add SpellMenu Magic Trap
menu Combo Add SpellMenu Magic Untrap
menu Combo Add SpellMenu Protection
menu Combo Add SpellMenu Strength
}
if %circle = 3
{
menu Combo Add SpellMenu Bless
menu Combo Add SpellMenu Fireball
menu Combo Add SpellMenu Magic Lock
menu Combo Add SpellMenu Poison
menu Combo Add SpellMenu Telekinesis
menu Combo Add SpellMenu Teleport
menu Combo Add SpellMenu Unlock
menu Combo Add SpellMenu Wall of Stone
}
if %circle = 4
{
menu Combo Add SpellMenu Arch Cure
menu Combo Add SpellMenu Arch Protection
menu Combo Add SpellMenu Curse
menu Combo Add SpellMenu Fire Field
menu Combo Add SpellMenu Greater Heal
menu Combo Add SpellMenu Lightning
menu Combo Add SpellMenu Mana Drain
menu Combo Add SpellMenu Recall
}
if %circle = 5
{
menu Combo Add SpellMenu Blade Spirits
menu Combo Add SpellMenu Dispel Field
menu Combo Add SpellMenu Incognito
menu Combo Add SpellMenu Magic Reflection
menu Combo Add SpellMenu Mind Blast
menu Combo Add SpellMenu Paralyze
menu Combo Add SpellMenu Poison Field
menu Combo Add SpellMenu Summon Creature
}
if %circle = 6
{
menu Combo Add SpellMenu Dispel
menu Combo Add SpellMenu Energy Bolt
menu Combo Add SpellMenu Explosion
menu Combo Add SpellMenu Invisibility
menu Combo Add SpellMenu Mark
menu Combo Add SpellMenu Mass Curse
menu Combo Add SpellMenu Paralyze Field
menu Combo Add SpellMenu Reveal
}
if %circle = 7
{
menu Combo Add SpellMenu Chain Lightning
menu Combo Add SpellMenu Energy Field
menu Combo Add SpellMenu Flame Strike
menu Combo Add SpellMenu Gate Travel
menu Combo Add SpellMenu Mana Vampire
menu Combo Add SpellMenu Mass Dispel
menu Combo Add SpellMenu Meteor Swarm
menu Combo Add SpellMenu Polymorph
}
if %circle = 8
{
menu Combo Add SpellMenu Earthquake
menu Combo Add SpellMenu Energy Vortex
menu Combo Add SpellMenu Resurrection
menu Combo Add SpellMenu Air Elemental
menu Combo Add SpellMenu Summon Daemon
menu Combo Add SpellMenu Earth Elemental
menu Combo Add SpellMenu Fire Elemental
menu Combo Add SpellMenu Water Elemental
}
if %circle = 9
{
menu Combo Add SpellMenu Animate Dead
menu Combo Add SpellMenu Blood Oath
menu Combo Add SpellMenu Corpse Skin
menu Combo Add SpellMenu Curse Weapon
menu Combo Add SpellMenu Evil Omen
menu Combo Add SpellMenu Horrific Beast
menu Combo Add SpellMenu Lich Form
menu Combo Add SpellMenu Mind Rot
menu Combo Add SpellMenu Pain Spike
menu Combo Add SpellMenu Poison Strike
menu Combo Add SpellMenu Strangle
menu Combo Add SpellMenu Summon Familiar
menu Combo Add SpellMenu Vampiric Embrace
menu Combo Add SpellMenu Vengeful Spirit
menu Combo Add SpellMenu Wither
menu Combo Add SpellMenu Wraith Form
menu Combo Add SpellMenu Exorcism
}
return
;--------------------------------------------------------------
sub UpdateLogWindow
if %jindex = N/A
set %jindex #JINDEX
if %journal_pointer = N/A
set %journal_pointer 1
if %journal_pointer > 200
{
set %journal_pointer 1
menu delete EUOListLogWindow ; remember when you want to redraw a control, you MUST!! delete it first.
menu List Create EUOListLogWindow 12 136 257 225
}
while %jindex < #JINDEX
{
scanjournal %jindex
gosub AddSpace #JOURNAL
menu List add EUOListLogWindow #RESULT
set %journal . %journal_pointer #RESULT
set %journal_pointer %journal_pointer + 1
set %jindex %jindex + 1
}
return
;--------------------------------------------------------------
; %1 - string to mung
sub AddSpace
namespace push
namespace local AS
set !tempstring %1
AddSpace_loop1:
str pos !tempstring _
if #STRRES <> 0
{
set !val #STRRES - 1
str left !tempstring !val
set !left #STRRES
set !val !val + 1
str del !tempstring 1 !val
set !tempstring !left , #SPC , #STRRES
goto AddSpace_loop1
}
set #RESULT !tempstring
namespace pop
return #RESULT
;--------------------------------------------------------------
sub UpdateNecromancySpellMenu
menu Delete SpellMenu
menu Combo Create SpellMenu 12 20 145
menu Combo Add SpellMenu Animate Dead
menu Combo Add SpellMenu Blood Oath
menu Combo Add SpellMenu Corpse Skin
menu Combo Add SpellMenu Curse Weapon
menu Combo Add SpellMenu Evil Omen
menu Combo Add SpellMenu Horrific Beast
menu Combo Add SpellMenu Lich Form
menu Combo Add SpellMenu Mind Rot
menu Combo Add SpellMenu Pain Spike
menu Combo Add SpellMenu Poison Strike
menu Combo Add SpellMenu Strangle
menu Combo Add SpellMenu Summon Familiar
menu Combo Add SpellMenu Vampiric Embrace
menu Combo Add SpellMenu Vengeful Spirit
menu Combo Add SpellMenu Wither
menu Combo Add SpellMenu Wraith Form
menu Combo Add SpellMenu Exorcism
return
;--------- EasyUO Menu Designer Code Begin ---------
sub showEUOMenu1
menu Clear
menu Window Title TrailMyx's Spell Caster
menu Window Color BtnFace
menu Window Size 277 392
menu Font Transparent #true
menu Font Align Right
menu Font Name MS Sans Serif
menu Font Size 8
menu Font Style
menu Font Color WindowText
menu Font Transparent #false
menu Font Align Left
menu Text EUOLabel1 8 4 Spell circle/Necro:
menu Text EUOLabel2 8 48 Spell name:
menu Text EUOLabel3 8 120 Log Display:
menu Shape EUOShape1 168 40 105 21 3 7 1 Black 7 Lime
menu Text EUOLabel4 16 96 Delay
menu Font BGColor Window
menu Combo Create CircleMenu 12 20 145
menu Combo Create SpellMenu 12 64 145
menu List Create EUOListLogWindow 12 136 257 225
menu Font BGColor BtnFace
menu Button EUOButtonCast 184 12 75 25 Cast
menu Check EUOCheckOSI 172 64 73 17 #true OSI
menu Font BGColor Window
menu Edit EUOStatus 12 368 257 ...
menu Font BGColor BtnFace
menu Check EUOCheckLoop 172 80 93 17 #false Loop?
menu Check EUOCheckWaitForTarget 172 96 109 17 #false Wait for Target?
menu Font BGColor Window
menu Edit EUOEditDelay 48 92 81 20
menu Font BGColor BtnFace
menu Button EUOButtonResetTarget 184 116 75 21 Reset Target
menu Show 421 270
return
;--------- EasyUO Menu Designer Code End ---------