PDA

View Full Version : Sorceror Illusions Script



Eoghain
11-20-2006, 10:49 PM
So I have this illusions script that someone gave me, and I can't figure out what the commands are for Demon illusions. Can anyone figure it out?

.reps
#ILLUSIONS - Sorcerer Guild
Start:
If_5 goto %1
If_4 goto ShadowTasks
If_1 goto %1
If_0 goto IllusionHelp

IllusionHelp:
ECHO
ECHO Usage: .Illusion
ECHO
exit
Aud:
Audi:
Audience:
put Illusion %2
MATCH WaitAud ...wait
MATCH FailAud you notice a flaw begin to form
MATCH FailAud it wavers on your fingertips,
MATCH FailAud but suddenly the mana seeps away.
MATCH FailAud your concentration slips
MATCH FailAud towards this point. However,
MATCH FailAud ripping sound echoes out from your palm
MATCH MoreReps remaining.]
MATCH Done training task.]
MATCH DropAud you need a free hand
matchwait
WaitAud:
pause
goto Audience
FailAud:
goto Audience
MoreReps:
pause 30
goto Audience
DropAud:
put glance
MATCH RoseAudCheck essence rose in your
MATCH VortAudCheck colorless vortex in your
MATCH TempAudCheck blue tempest in your
MATCH VoidAudCheck black void in your
MATCH EmptyAud empty hands.
matchwait
RoseAudCheck:
VortAudCheck:
VoidAudCheck:
put eat my %2
put eat my %2
goto Audience
TempAudCheck:
put eat my tempest
put eat my tempest
goto Audience
EmptyAud:
goto Audience
Done:
exit
*****
Learn:
LearnStart:
ECHO
MATCH Lesson subtleties of creating the illusion
MATCH Lesson explains to you the nuances of creating the illusion
MATCH Lesson making sure you are watching
MATCH Lesson as you watch
matchwait
Lesson:
put illusion %2
MATCH LearnDone task.]
MATCH LessonWait ...wait
MATCH Lesson Roundtime: 18
MATCH Lesson Roundtime: 17
MATCH Lesson Roundtime: 16
MATCH Lesson Roundtime: 15
MATCH Lesson Roundtime: 14
MATCH Lesson Roundtime: 13
MATCH Lesson Roundtime: 12
MATCH LessonNeedTeach you need to have someone
MATCH LearnRepTempest storm balanced at your
MATCH LearnFail you notice a flaw begin
MATCH LearnFail it wavers on your fingertips
MATCH LearnFail ripping sound echoes out from your palm
MATCH LearnFail towards this point. However,
MATCH LearnEmpty you need a free hand
matchwait
LessonWait:
pause
goto Lesson
LessonNeedTeach:
MATCH Lesson subtleties of creating the illusion
MATCH Lesson as you watch
MATCH Lesson making sure you are watching
matchwait
LEatRose:
LEatVort:
LEatVoid:
ECHO
MATCH Lesson subtleties of creating the illusion
MATCH Lesson making sure you are watching
MATCH Lesson as you watch
matchwait
LearnRepTempest:
put eat my tempest
MATCH LEatTemp its form and dissipates
MATCH Lesson subtleties of creating the illusion
MATCH Lesson as you watch
MATCH LEatTempWait ...wait
matchwait
LEatWait:
pause
put eat my %2
goto Lesson
LEatTemp:
goto Lesson
LEatTempWait:
pause
put eat my tempest
goto Lesson
LearnFail:
goto Lesson
LearnEmpty:
put glance
MATCH LDropRose essence rose in
MATCH LDropVort colorless vortex in
MATCH LDropTemp blue tempest in
MATCH LDropVoid black void in your
MATCH LEmpty empty hands
matchwait
LDropRose:
LDropVort:
LDropVoid:
put eat my %2
MATCH LEatRoseCheck you carefully place the black
MATCH LEatVortCheck its form and dissipates
MATCH LEatVoidCheck your black void collapses
MATCH Lesson subtleties of creating the illusion
MATCH Lesson making sure you are watching
MATCH Lesson as you watch
matchwait
LEatRoseCheck:
LEatVortCheck:
LEatTempCheck:
LEatVoidCheck:
goto Lesson
LDropTemp:
put glance my tempest
MATCH Lesson subtleties of creating the illusion
MATCH Lesson As you watch
MATCH LDropTempWait ...wait
matchwait
LDropTempWait:
pause
goto LDropTemp
LEmpty:
goto Lesson
LearnDone:
exit

*******
*****
Teach:
TeachStart:
HelpTeach:
put Illusion teach %3 %2
MATCH TeachDone task.]
MATCH TeachAgain repetitions remaining.]
MATCH TeachLast repetition remaining.]
MATCH AlreadyTeach you are already teaching
MATCH TeachWait ...wait
MATCH HelpTeach and appears to be concentrating.
MATCH HTeachCheckShad begins to split into two pieces, one returning
MATCH HTeachCheck essence rose lies across
MATCH HTeachCheck dust takes the form of a swirling
MATCH HTeachCheck as it hovers balanced above
MATCH HTeachCheck echoes out from his palm
MATCH HTeachCheck echoes out from her palm
MATCH HTeachAlready you are already teaching
matchwait
TeachAgain:
goto HelpTeach
TeachLast:
ECHO Teach Last (1)
put Illusion teach %3 %2
waitfor you slowly begin to
exit
AlreadyTeach:
TeachWait:
pause 2
goto HelpTeach
TeachDone:
exit
TeachWait:
pause .25
goto HelpTeach
HTeachCheck:
put look at %3
MATCH RoseTeach black essence rose in
MATCH VortTeach colorless vortex in
MATCH TempTeach blue tempest in
MATCH VoidTeach black void in
MATCH TeachEmpty is wearing
matchwait
RoseTeach:
VortTeach:
TempTeach:
VoidTeach:
goto HelpTeach
HTeachCheckShad:
goto HelpTeach
TeachEmpty:
pause 2
goto HelpTeach
HTeachAlready:
pause 3
goto HelpTeach
*****
Spe:
Spee:
Speed:
SpeedStart:
put Illusion %2
MATCH Donespeed completed your training
MATCH FailSpeed you notice a flaw begin to form
MATCH FailSpeed but suddenly the mana seeps away.
MATCH FailSpeed and the illusion fails
MATCH FailSpeed it wavers on your fingertips,
MATCH FailSpeed your concentration slips
MATCH FailSpeed ripping sound echoes out from your palm
MATCH FailSpeed towards this point. However,
MATCH WaitSpeed ...wait
MATCH WaitSpeed you may only type
MATCH DoneRep remaining.]
MATCH MoreSpeed seconds.]
MATCH DropSpeed YOu need a free hand
matchwait
MoreSpeed:
DropSpeed:
DoneRep:
put glance
MATCH RoseSpCheck essence rose in
MATCH VortSpCheck colorless vortex in
MATCH TempSpCheck blue tempest in
MATCH VoidSPCheck black void in your
MATCH EmptySpeed empty hands.
matchwait
RoseSpCheck:
VortSpCheck:
VoidSpCheck:
put eat my %2
goto SpeedStart
TempSpCheck:
put eat my tempest
goto SpeedStart
EmptySpeed:
goto Speedstart
DoneSpeed:
exit
FailSpeed:
goto SpeedStart
WaitSpeed:
pause
goto SpeedStart
*********************
*********************
*** Shadow Scripts***
*********************
*********************
ShadowTasks:
ECHO
ECHO Press 1 for Audience Reps
ECHO Press 2 for Speed Reps
ECHO Press 3 for Learn Reps
ECHO
MATCH AudShadow 1
MATCH SpeedShadowStart 2
MATCH LearnShadowDrop 3
matchwait
AudShadow:
put drop my %4
AudShadowStart:
put Illusion %2 %4
MATCH AudShadWait ...wait
MATCH AudShadDone training task.]
MATCH AudShadFail your sight as the errant shadow falls into place. Just before
MATCH AudShadFail Just before the errant shadow settles, it begins to quickly dissolve
Match AudShadFail but instead begins to waver and fades from view.
MATCH MoreAudShad something goes wrong and your magic dissipates.
MATCH MoreAudShad remaining.]
matchwait
AudShadWait:
pause .35
goto AudShadowStart
AudShadFail:
goto AudShadowStart
MoreAudShad:
pause 30
put illusion shadow shadow
MATCH DisShadWait ...wait
MATCH DisShad your hand, the errant shadow
MATCH MissShad which sizzles for a few
matchwait
DisShadWait:
pause .5
goto MoreAudShad
DisShad:
goto AudShadowStart
MissShad:
pause .5
put illusion shadow second shadow
MATCH MissWait ...wait
MATCH DisShad2 your hand, the errant shadow
MATCH MisShad2 which sizzles for a few
matchwait
MissWait:
pause .5
goto MissShad
DisShad2:
goto AudShadowStart
MisShad2:
pause .5
put illusion shadow third shadow
MATCH MissWait2 ...wait
MATCH DisShad3 your hand, the errant shadow
MATCH MisShad3 which sizzles for a few
matchwait
MissWait2:
pause .5
goto MisShad2
DisShad3:
goto AudShadowStart
MisShad3:
put illusion shadow shadow
goto AudShadowStart
AudShadDone:
put get %4
put illusion shadow shadow
MATCH FinishWait ...wait
MATCH DisAudFinal your hand, the errant shadow
matchwait
FinishWait:
pause .35
goto AudShadDone
DisAudFinal:
exit
********
SpeedShadowStart:
put drop my %4
goto SpeedShadow
SpeedShadow:
put Illusion %2 %4
MATCH DoneShadSpeed completed your training
MATCH SpeedShadFail your sight as the errant shadow falls into place. Just before
MATCH SpeedShadFail Just before the errant shadow settles, it begins to quickly dissolve
MATCH SpeedShadFail but instead begins to waver and fades from view.
MATCH MoreShadSpeed something goes wrong and your magic dissipates.
MATCH WaitShadSpeed ...wait
MATCH WaitShadSpeed you may only type
MATCH DoneShadRep remaining.]
MATCH MoreShadSpeed seconds.]
matchwait
DoneShadSpeed:
put get %4
put illusion shadow shadow
exit
SpeedShadFail:
goto SpeedShadow
WaitShadSpeed:
pause .5
goto SpeedShadow
MoreShadSpeed:
DoneShadRep:
put illusion shadow shadow
MATCH DisShadSpWait ...wait
MATCH DisShadSp your hand, the errant shadow
MATCH MissShadSp which sizzles for a few
matchwait
DisShadSpWait:
pause .5
goto DoneShadRep
DisShadSp:
goto SpeedShadow
MissShadSp:
pause .5
put illusion shadow second shadow
MATCH MissWaitSp ...wait
MATCH DisShad2Sp your hand, the errant shadow
MATCH MisShad2Sp which sizzles for a few
matchwait
MissWaitSp:
pause .5
goto MissShadSp
DisShad2Sp:
goto SpeedShadow
MisShad2Sp:
pause .5
put illusion shadow third shadow
MATCH MissWait2Sp ...wait
MATCH DisShad3Sp your hand, the errant shadow
MATCH MisShad3Sp which sizzles for a few
matchwait
MissWait2Sp:
pause .5
goto MisShad2Sp
DisShad3Sp:
goto SpeedShadow
MisShad3Sp:
put illusion shadow shadow
goto SpeedShadow

*******
LearnShadowDrop:
put drop my %4
MATCH LearnShadowStart lecture you on the fine art of shadow
MATCH Lesson subtleties of creating
MATCH Lesson making sure you are watching
matchwait
LearnShadowStart:
put Illusion %2 %4
MATCH LearnShadDone task.]
MATCH LearnShadWait ...wait
MATCH LearnShadNeedTeach you need to have someone
MATCH LearnShadNext Roundtime: 18
MATCH LearnShadNext Roundtime: 17
MATCH LearnShadNext Roundtime: 16
MATCH LearnShadNext Roundtime: 15
MATCH LearnShadNext Roundtime: 14
MATCH LearnShadNext Roundtime: 13
MATCH LearnShadNext Roundtime: 12
MATCH LearnShadFail is once again visible
MATCH LearnShadFail Just before the errant shadow settles, it begins to quickly dissolve
MATCH LearnShadFail but instead begins to waver and fades from view.
MATCH LearnShadNext something goes wrong and your magic dissipates.
matchwait
LearnShadDone:
put illusion shadow shadow
put get %4
exit
LearnShadWait:
pause .35
goto LearnShadowStart
LearnShadNeedTeach:
waitfor lecture you on the fine art of shadow
goto LearnShadowStart
LearnShadFail:
goto LearnShadowStart
LearnShadNext:
put Illusion shadow shadow
MATCH LDisShadWait ...wait
MATCH LDisShadYes your hand, the errant shadow
MATCH LDisShadNo which sizzles for a few
MATCH LDisNotThere I could not find
matchwait
LDisShadWait:
pause .35
goto LearnShadNext
LDisShadYes:
goto LearnShadowStart
LDisShadNo:
goto LDisShad2
LDisNotThere:
goto LearnShadowStart
LDisShad2:
put Illusion shadow second shadow
MATCH LDisShad2Wait ...wait
MATCH LDisShad2Yes your hand, the errant shadow
MATCH LDisShad2No which sizzles for a few
MATCH LDisShad2NotThere I could not find
matchwait
LDisShad2Wait:
pause .35
goto LDisShad2
LDisShad2Yes:
goto LearnShadowStart
LDisShad2No:
goto LDisShad3
LDisShad2NotThere:
goto LearnShadNext
LDisShad3:
put Illusion shadow third shadow
MATCH LDisShad3Wait ...wait
MATCH LDisShad3Yes your hand, the errant shadow
MATCH LDisShad3No which sizzles for a few
MATCH LDisShad3NotThere I could not find
matchwait
LDisShad3Wait:
pause .35
goto LDisShad3
LDisShad3Yes:
goto LearnShadowStart
LDisShad3No:
goto LearnShadNext
LDisShad3NotThere:
goto LearnShadNext

**************
**************
*** Demons ***
**************
**************
###Demon Audience Reps###

DAud:
DemonAud:
put Illusion demon %5
MATCH DAudDone task.]
MATCH DAudMore remaining.]
MATCH DAudWait ...wait
matchwait
DAudDone:
put Illusion Demon %6 dispel
MATCH DAudFinalDispel your hand, the illusion
MATCH DAudFinalWait ...wait
matchwait
DAudFinalDispel:
exit
DAudFinalWait:
pause .35
goto DAudDone
DAudMore:
pause 30
put Illusion Demon %6 dispel
MATCH DAudDispel your hand, the illusion around a
MATCH DAudDispelWait ...wait
matchwait
DAudDispel:
goto DAud
DAudDispelWait:
pause .35
put Illusion Demon %6
goto DAud
DAudWait:
pause .35
goto DAud

###Demon Speed Reps###
DSpeed:
put Illusion Demon %5
MATCH DSpeedWait ...wait
MATCH DSpeedMore remaining.]
MATCH DSpeedMore seconds.]
MATCH DSpeedDone task.]
MATCH DSpeedNotThere I could not find
matchwait
DSpeedWait:
pause .35
goto DSpeed
DSpeedMore:
put Illusion Demon %6 dispel
MATCH DSpeedDispelYes your hand, the illusion around a
MATCH DSpeedDispelNo I could not find
MATCH DSpeedDispelWait ...wait
matchwait
DSpeedDispelYes:
goto DSpeed
DSpeedDispelNo:
goto DSpeed
DSpeedDispelWait:
pause .25
goto DSpeedMOre
DSpeedDone:
put Illusion Demon %6 dispel
MATCH DSpeedFinalDispel your hand, the illusion
MATCH DSpeedFinalWait ...wait
matchwait
DSpeedFinalDispel:
exit
DSpeedFinalWait:
pause .25
goto DSpeedDone
DSpeedNotThere:
goto DSpeedMore

###Demon Learn Reps###
DLearn:
DLearnNeedTeach:
ECHO
MATCH DLearnStart lecture you on the various intricacies of cloaking
MATCH DLearnStart Roundtime: 18
MATCH DLearnStart Roundtime: 17
MATCH DLearnStart Roundtime: 16
MATCH DLearnStart Roundtime: 15
MATCH DLearnStart Roundtime: 14
MATCH DLearnStart Roundtime: 13
MATCH DLearnStart Roundtime: 12
matchwait
DLearnStart:
put Illusion Demon %5
MATCH DLearnWait ...wait
MATCH DLearnDispel Roundtime: 18
MATCH DLearnDispel Roundtime: 17
MATCH DLearnDispel Roundtime: 16
MATCH DLearnDispel Roundtime: 15
MATCH DLearnDispel Roundtime: 14
MATCH DLearnDispel Roundtime: 13
MATCH DLearnDispel Roundtime: 12
MATCH DLearnDone training task.]
MATCH DlearnNeedTeach you need to have someone teaching you
MATCH DlearnDispel2 I could not find
matchwait
DLearnDispel:
put Illusion Demon %6 dispel
MATCH DLearnDispelWait ...wait
MATCH DLearnDispelYes your hand, the illusion around a
MATCH DLearnDispelNo I could not find
matchwait
DLearnDispelYes:
goto DLearnStart
DLearnDispelNo:
goto DLearnStart
DLearnDispelWait:
pause .35
goto DLearnDispel
DLearnDispel2:
put Illusion Demon %6 dispel
MATCH DDispel2Wait ...wait
MATCH DDispel2OtherD Illusioning a demon that is not your own
MATCH DDispel2Good your hand, the illusion around a
matchwait
DDispel2Wait:
pause .25
goto DLearnDispel2
DDispel2OtherD:
put Illusion demon other %6 dispel
MATCH DisOther2Wait ...wait
MATCH DisOther2Good your hand, the illusion around a
matchwait
DisOther2Wait:
pause .35
goto DDispel2OtherD
DDisOTher2Good:
goto DLearnStart
DDispel2Good:
goto DLearnStart

DLearnWait:
pause .35
goto DLearnStart
DLearnDone:
put Illusion Demon %6 dispel
MATCH DLearnFinalDispel your hand, the illusion
MATCH DLearnFinalWait ...wait
matchwait
DLearnFinalDispel:
exit
DLearnFinalWait:
pause .35
goto DLearnDone

Eoghain
02-14-2007, 05:22 PM
heyheyhey! So some more research has gone into things, and I've figured out how to use it for demon reps too. For some reason, there are variables in there which are superfluous, probably to differentiate it from the standard .reps learn vortex (2 commands) and .reps teach vortex querthose (3 commands)

So, for demons, it is:

Audience
.reps dAud x x x (demon type) (illusion type)
for example, when using a nyle for practice, it would be: .reps daud x x x nyle vulture

Speed
.reps dspeed x x x nyle vulture

Learn
.reps dlearn x x x nyle vulture

Teach (this is simpler)
.reps teach demon querthose

I hae the vague feeling that one of those commands only needed 2 x's in the middle, rather than three, but i can't remember which. Feel free to talk to me IG about anything.

-Seamus
Player of Eoghain

PS Much gratitude to Jamus for figuring most of it out.

Uryens
04-24-2008, 03:08 PM
Sorry for bumping this thread but I have just started to guild my sorc and I cant seem to figure this script out period. Trying to do the speed illusion rose. any help?

Shimeria
04-25-2008, 03:56 PM
This is the one I use:

#illusion rose

Top:
put ill rose
pause 1
put eat my rose
goto top

Shimeria
04-25-2008, 03:59 PM
Here is the one to use for teaching:

#teach

put ill teach %1 %2


main:

match good Piece by piece, the creature's
match good raining tiny hailstones down
match good rose lies across
match good It continues until the wind and dust takes the form
match good The miniature fissure begins to feed on the air around you.
match good begins to split into two pieces, one returning to its position
matchwait


good:

pause 1
put ill teach %1 %user9
goto main

Arkans
04-25-2008, 04:14 PM
Also in my signature, I always found that the Fix GS script worked great for guild reps.

Start:
put say FUCK YOU GAYMASTERS.
waitfor You say
put report FUCK YOU GAYMASTERS.
goto Start

- Arkans

Blud
04-25-2008, 06:06 PM
Just looking at the original script that was posted here, I would say try the following:

.reps dspeed x rose

The reason I say that is because of the "%2" argument in the speed part of the script. This will look for the second item you type after the name of the script (.reps dspeed). It will ignore the "x", but you have to put it in there so that the script will see the word "rose" as the second entry.

I could be completely wrong about this, but it's worth a shot.

Eoghain
09-30-2008, 04:54 AM
Sorry for bumping this thread but I have just started to guild my sorc and I cant seem to figure this script out period. Trying to do the speed illusion rose. any help?

I use .illusions speed rose

It works fine.

.illusions teach rose Eoghain
.illusions learn rose
.illusions aud rose (might be audience, I forget)

The demon part is the wacky one, but that works too. Ask me in game if you see me on.

AestheticDeath
09-30-2008, 05:13 AM
Well, your not late or anything...

Fatsix
07-08-2010, 08:25 PM
anyone have an updated guild script? I copied the first post. When i use .illusions aud rose it will try twice then just not do anything...

Murkshev
07-09-2010, 01:18 PM
I have the same script and use it just fine. You have audience reps to do and its not working? Cause if you use it for audience, it has a build in pause for 30 seconds if you get a successful rep. Just trying to understand what the problem is. I have used this script for a long time and never had a problem with it.

Fatsix
07-10-2010, 04:01 PM
that must be the problem then. Now if it would just do everything itself

Fatsix
07-10-2010, 07:18 PM
[Script]>Illusion rose
You concentrate on forming an essence rose in the palm of your hand but nothing comes of it.
Roundtime: 4 sec.
[Script]>


this line stops it everytime

Fatsix
07-10-2010, 09:40 PM
needed to add
MATCH Failspeed You concentrate on forming an essence rose in the palm of your hand but nothing comes of it.


and that fixed it.

Deathravin
07-11-2010, 12:23 AM
Fine fine fine. It's not perfect, but here it is...


# Illusions script

$illBudd = "Buddy"
#$illCont = "harness"
#$illItem = "ruby"

def pmultimove(direction)
# Multimove is too freaking sloooooowwwww. So I did this to speed things along a bit.
if direction.shift == "y" then # A Govenor. Will hopefully solve some of those issues we've been having with crashing. So it will go type-ahead from places that need it (starting, before & after a portal) but not places that don't (between center and final destiation).
if direction[0] != nil then put direction.shift end
if direction[0] != nil then put direction.shift end
if direction[0] != nil then put direction.shift end
if direction[0] != nil then put direction.shift end
end
direction.each do |currdirection|
put currdirection
waitfor "obvious"
end
end

def getDemon()
status_tags("on")
fput "tell mdemon to follow"
result = matchtimeout 10, "is already following you", "to follow you around", "Tell what?", "You have no minor demon at this time."
if result =~ /^Your <pushBold\/><a exist="([0-9]+)" noun="([A-Z,a-z]+)">([A-Z,a-z, ,-]+)<\/a><popBold\/> is already following you\.$/ or result =~ /^You command your <pushBold\/><a exist="([0-9]+)" noun="([A-Z,a-z]+)">([A-Z,a-z, ,-]+)<\/a><popBold\/> to follow you around\. It accepts with reluctance\.$/
$illDemon = $1
elsif result =~ /^You have no minor demon at this time\.$/
echo "You need a demon to practice demon reps dummy!"
exit
else
echo "I have no idea what happened..."
exit
end
status_tags("off")
end
def getShadowed()
# itemLoc = GameObj.inv.find { |obj| obj.noun == $illCont }
# item = itemLoc.contents.find { |obj| obj.noun == $illItem }
# if item != nil then return item.id
# else
# fput "get #{$illItem} from my #{$illCont}"
# pause("2s")
while !(righthand? =~ /rose/) and !(lefthand? =~ /rose/)
fput "illusion Rose"
pause("1s")
wait_while { checkrt > 0 }
end
if righthand? =~ /rose/
return GameObj.right_hand.id
elsif lefthand? =~ /rose/
return GameObj.left_hand.id
end
# end
echo "Couldn't find your item"
exit
end

def doreps()
illRemVerb = "nothing"
illShadowId = 0
illShadowed = 0
stoppy = false
if $illVari == "Shadow"
illShadowed = getShadowed()
while RoomObj.loot.find { |looz| looz.id == illShadowed } == nil
#put "get ##{illShadowed}"
put "drop ##{illShadowed}"
pause("1s")
end
status_tags("on")
elsif $illVari == "Demon"
if $illDemon == nil then getDemon() end
end
loop {
wait_while { checkrt > 0 }
if righthand? == "rose" or lefthand? == "rose" then illRemVerb = "eat my rose"
elsif righthand? == "vortex" or lefthand? == "vortex" then illRemVerb = "peer my vortex"
elsif righthand? == "tempest" or lefthand? == "tempest" then illRemVerb = "peer my tempest"
elsif righthand? == "void" or lefthand? == "void" then illRemVerb = "poke my void"
end
pause("1s")
wait_while { checkrt > 0 }
if illRemVerb != "nothing"
while (RoomObj.loot.find { |looz| looz.id == illShadowId } != nil and $illVari == "Shadow") or righthand? != nil or lefthand? != nil
put "#{illRemVerb}"
pause("1s")
end
if $illVari == "Demon"
fput "#{illRemVerb}"
pause("1s")
end
if $illTask =~ /audience/ and $illReps > 0
pause("30s")
wait_while { checkpcs.length < 2 }
end
if $illVari == "Shadow" and $illReps == 0
while RoomObj.loot.find { |looz| looz.id == illShadowed }
put "get ##{illShadowed}"
pause("1s")
end
#fput "put ##{illShadowed} in my #{$illCont}"
fput "eat my rose"
end
end
if stoppy then break end
illRemVerb = "nothing"
fput "incant 402" if Spell[402].timeleft < 0.1 and checkmana(2) and $illTask.downcase != "teach" and $illVari != "Demon"
if !checkmana(10) then wait_while { !checkmana(100) } end
if $illVari == "Shadow" then fput "illusion #{$illVari} ##{illShadowed}"
elsif $illVari == "Demon" then fput "illusion #{$illVari} ##{$illDemon}"
else ; fput "illusion #{$illVari}" ; end
loop {
line = get
if line =~ /You feel a sense of something being pulled from you for only a minute as the \<a exist="([0-9]+)" noun="shadow"\>shadow\<\/a\> settles, the \<a exist="([0-9]+)" noun=".+"\>.+\<\/a\> no longer visible\.$/
illShadowId = $1
illRemVerb = "illusion #{$illVari} ##{illShadowId}"
elsif line =~ /^You glide your hand over .+, leaving rippling motes of color in the wake of your hand as you attempt to strengthen the flows of essence around .+\. You sense a pulse as the motes disappear within .+, revitalizing .+ into an impeccable illusion\.$/
illRemVerb = "illusion #{$illVari} ##{$illDemon} Dispel"
break
elsif line =~ /^\[You have completed your training task\.\]$/
stoppy = true
$illReps = 0
elsif line =~ /^\[You have ([0-9]+) (repetitions|repetition) remaining\.\]$/
if $illVari == "Demon" then illRemVerb = "illusion #{$illVari} ##{$illDemon} Dispel" end
$illReps = $1.to_i
if $illReps <= 2 and ($illTask == "learn" or $illTask == "teach") then send_lichnet_string("to #{$illBudd} I have #{$illReps} remaining in #{$illTask}") end
elsif line =~ /^\[.+must succeed.+more.+within.+\.\]$/
if $illVari == "Demon" then illRemVerb = "illusion #{$illVari} ##{$illDemon} Dispel" end
elsif line =~ /I could not find what you were referring to\./
if $illVari == "Shadow"
illShadowed = getShadowed()
while RoomObj.loot.find { |looz| looz.id == illShadowed } == nil
#put "get ##{illShadowed}"
put "drop ##{illShadowed}"
pause("1s")
end
fput "illusion #{$illVari} ##{illShadowed}" if $illVari == "Shadow"
else
$illDemon = nil
exit
end
elsif line =~ /^Roundtime: ([0-9]+) sec\.$/ then break end
}
}
if $illVari == "Shadow" then status_tags("off") end
end

def doteach(illVari, helpName)
loop {
wait_while { checkrt > 0 }
fput "illusion teach #{helpName} #{illVari}"
result = matchtimeout 30, "repetition remaining.", "repetitions remaining.", "You have completed your training task."
if result =~ /^\[Your teaching of ([A-Z,a-z]+) was successful\. You have completed your training task\.\]$/ then break
elsif result =~ /^\[Your teaching of ([A-Z,a-z]+) was successful\. You have ([0-9]+) (repetitions|repetition) remaining\.\]$/
$illReps = $2.to_i
if $illReps <= 2 and ($illTask == "learn" or $illTask == "teach")
send_lichnet_string("to #{$illBudd} I have #{$illReps} remaining in #{$illTask}")
end
end
}
end

def gldCheck()
#array: Skill, Ranks, Points, Task, Reps
gld_Skill_Array = []
put "gld"
loop {
line = get
if line =~ /^You have ([0-9]+) (ranks|rank) in the ([A-Z,a-z, ]+) skill\.$/
gld_Skill_Array.push [$3.to_s, $1.to_i]
elsif line =~ /^You are a Master of ([A-Z,a-z, ]+)\.$/
gld_Skill_Array.push [$1.to_s, 63]
elsif line =~ /^You have earned enough training points for your next rank\.$/
gld_Skill_Array[-1].push 0
gld_Skill_Array[-1].push "promote"
elsif line =~ /^You are not currently training in this skill\.$/
gld_Skill_Array[-1].push 0
gld_Skill_Array[-1].push "ask"
elsif line =~ /^You need ([0-9]+) training (points|point) to earn your next rank\.$/
gld_Skill_Array[-1].push $1.to_i
elsif line =~ /^You have not yet obtained your first task for this skill rank\.$/
gld_Skill_Array[-1].push "none"
elsif line =~ /^You have ([0-9]+) repetitions remaining to complete this task\.$/
gld_Skill_Array[-1].push $1.to_i
elsif line =~ /^You have no repetitions remaining for this task\.$/
gld_Skill_Array[-1].push 0
elsif line =~ /^The Training Administrator told you to find a fellow guild member to teach you illusions\.$/
gld_Skill_Array[-1].push "learn"
elsif line =~ /^The Training Administrator told you to find a fellow guild member to teach Illusions to\.$/
gld_Skill_Array[-1].push "teach"
elsif line =~ /^The Training Administrator told you to practice your latest Illusion in front of an audience\.$/
gld_Skill_Array[-1].push "audience"
elsif line =~ /^The Training Administrator told you to see how many times you can create an Illusion within one minute\.$/
gld_Skill_Array[-1].push "speed"
elsif line =~ /^masteryadayad$/
gld_Skill_Array[-1].push "master"
elsif line =~ /^Click GLD MENU for additional commands\.$/
gld_Skill_Array.each do |gld_Skill_Array_Skill|
gld_Skill_Array_Skill.flatten
end
break
end
}

illVariList = [[6, "Rose"], [14, "Vortex"], [24, "Maelstrom"], [34, "Void"], [47, "Shadow"], [63, "Demon"]]
gld_Skill_Array.each do |gldy|
if gldy[0] == "Illusions"
$illRanks = gldy[1]
$illPoints = gldy[2]
$illTask = gldy[3]
$illReps = gldy[4]
illVariList.each do |vary|
if vary[0] >= $illRanks
$illVari = vary[1]
break
end
end
end
end
end

def trainCheck()
wait_while { GameObj.npcs.find{ |nizzle| nizzle.name =~ /Training/ } == nil }
askTA = GameObj.npcs.find{ |nizzle| nizzle.name =~ /Training/ }.noun
fput "ask #{askTA} about train Ill"
loop {
line = get
if line =~ /^([A-Z,a-z]+) says, \"All done with that task\? Great!" ([A-Z,a-z]+) checks (her|his) clipboard, \"This gives you ([0-9]+) Training Points\. Congratulations, you've earned a rank\. Go find a Guild Master and get yourself promoted!\"$/
move "go arch"
wait_while { GameObj.npcs.find{ |nizzle| nizzle.name =~ /Guild Master/ } == nil }
fput "ask #{GameObj.npcs.find{ |nizzle| nizzle.name =~ /Guild Master/ }.noun} about next Ill"
move "go arch"
pause("1s")
fput "ask #{askTA} about train Ill"
elsif line =~ /^([A-Z,a-z]+) says, \"All done with that task\? Great!\" ([A-Z,a-z]+) checks (her|his) clipboard, \"This gives you ([0-9]+) Training Points, leaving you ([0-9]+) (point|points) shy of earning your next rank\.\"$/
pause("1s")
fput "ask #{askTA} about train Ill"
elsif line =~ /^([A-Z,a-z]+) assays you with a critical eye and says, \"Let's find you something to do to earn a rank in ([A-Z,a-z, ]+)\.\" ([A-Z,a-z]+) rubs (her|his) chin thoughtfully, then continues, \"Go find one of your fellow sorcerers to teach you about this skill. He may have some valuable insight into illusions\.\" ([A-Z,a-z]+) also adds, \"Repeat this ([0-9]+) times\.\"$/
return "learn"
elsif line =~ /^([A-Z,a-z]+) assays you with a critical eye and says, \"Let's find you something to do to earn a rank in ([A-Z,a-z, ]+)\.\" ([A-Z,a-z]+) rubs (her|his) chin thoughtfully, then continues, \"Sometimes, teaching someone else your carefully aquired knowledge helps you elucidate your own understanding of a particular topic\. Go find a fellow guild member who is learning Illusions and teach him a bit about the Art of Illusions\.\" ([A-Z,a-z]+) also adds, \"Repeat this ([0-9]+) times\.\"$/
return "teach"
elsif line =~ /^([A-Z,a-z]+) assays you with a critical eye and says, \"Let's find you something to do to earn a rank in ([A-Z,a-z, ]+)\.\" ([A-Z,a-z]+) rubs (her|his) chin thoughtfully, then continues, \"Often a sorcerer will find himself in need of his arsenal of Illusions under less than ideal conditions\. Such situations will require the utmost concentration and skill\. To hone your skills, see how many times you can successfully create your current illusion within a minute\.\" ([A-Z,a-z]+) also adds, \"Repeat this ([0-9]+) times\.\"$/
return "speed"
elsif line =~ /^([A-Z,a-z]+) assays you with a critical eye and says, \"Let's find you something to do to earn a rank in ([A-Z,a-z, ]+)\.\" ([A-Z,a-z]+) rubs (her|his) chin thoughtfully, then continues, \"Creating an illusion in and of itself is a pretty simple task\. The difficulty comes in being able to maintain it in front of an audience\. Go find an audience to practice your first illusion in front of\.\" ([A-Z,a-z]+) also adds, \"Repeat this ([0-9]+) times\.\"$/
return "audience"
elsif line =~ /^([A-Z,a-z]+) assays you with a critical eye and says, \"Let's find you something to do to earn a rank in ([A-Z,a-z, ]+)\.\" ([A-Z,a-z]+) rubs (her|his) chin thoughtfully, then continues, \"Go find yourself one of our Arcane Masters on the training ground\. If you don't annoy him too much he'll teach you something new in the Art of Illusions\.\" ([A-Z,a-z]+) also adds, \"Repeat this ([0-9]+) times\.\"$/
return "master"
elsif line =~ /^ASK \{entity\} ABOUT\/FOR\/TO \{subject\}$/
fput "ask #{askTA} about train Ill"
end
}
end

loopy = true
if variable[4] != nil
echo "too many variables, you suck"
exit
elsif variable[1] != nil and variable[2] != nil and variable[3] != nil
$illTask = variable[1]
$illBudd = variable[2]
$illVari = variable[3]
$illReps = 2
loopy = false
elsif variable[1] != nil and variable[2] != nil and variable[3] == nil
$illTask = variable[1]
$illVari = variable[2]
$illReps = 2
loopy = false
elsif variable[1] != nil and variable[2] == nil and variable[3] == nil
echo "1 variable... wtf am I going to do with 1 variable?"
echo "Usage: ;sgill (speed|audience|learn) illusiontype"
echo "Usage (teach): ;sgill teach person illusiontype"
exit
else ; gldCheck() ; end

loop {
if $illReps == 0
elsif $illTask =~ /speed/ then doreps()
elsif $illTask =~ /audience/ then doreps()
elsif $illTask =~ /teach/ then doteach($illVari, $illBudd)
elsif $illTask =~ /learn/ then doreps()
elsif $illTask =~ /gldcheck/ then gldCheck()
elsif $illTask =~ /ask/
else ; break ; end
if loopy
if $illTask =~ /ask/
else
#send_lichnet_string("to #{$illBudd} DONE!")
letsgo = ["y", "go steps", s, s, nw, nw, nw, "go road", w, w, nw, w, w, w, nw, nw, w, w, sw, w, w, w, sw, w, "go path", w, w, w, w, w, w, w, w, w, w, w, w, w, w, "go path", "go portcullis", "go gates"]
pmultimove(letsgo)
end
trainCheck()
gldCheck()
if $illTask =~ /ask/
else
send_lichnet_string("to #{$illBudd} Working on #{$illTask}, #{$illReps} reps - #{$illPoints} pts til rank #{$illRanks+1}")
letsgo = ["y", "go gates", "go portcullis", "go path", e, e, e, e, e, e, e, e, e, e, e, e, e, e, "go path", e, ne, e, e, e, ne, e, e, se, se, e, e, e, se, e, e, "go road", se, se, se, n, n, "go step"]
pmultimove(letsgo)
end
if $illVari =~ /Demon/ then matchtimeout 15, "arrives." end
else ; break ; end
}

Mastered in plat using this. I can't remember all the issues with it, but I'm sure it had them. You all have fun now.
Somebody with some time can easily fix it I'm sure.

Fatsix
07-11-2010, 01:39 AM
Thanks! any tips for speed reps other than using haste?

subzero
08-10-2010, 12:26 AM
Wow. I forgot I gave that hacked up thing to people :)

caelric
12-15-2020, 02:00 PM
Gah. Is there a working, or updated version of this, or preferably a Lich version? The repo is currently down, so...

Maerit
12-15-2020, 03:04 PM
Are you any good with scripts? I hacked together something for my personal use. No guaranties this will work well for you, but it did the trick for me. It does not do teach or learn reps, only audience, speed and master reps. I used vouchers to turn in teach/learn reps since who has time to find another sorcerer working on illusions! Only Kaldonis has that kind of dedication. You need to customize the variables based on your town, but I used this in Teras:



=begin
Simple illusion script.
Change the hardcoded values for your particluar town.

audience_room = room number for your audience reps.
practice_room = room number where you will do speed reps (higher success in a workshop I believe)
master_room = where the training master is located.
administrator_room = where you get your tasks.
guildmaster_room = where the guild master is for promotions.
illusion = which illusion you're working on (rose, vortex, maelstrom, void, shadow, demon)
shadow_object = a *disposable* object that you intend to use for your shadow reps.

This script only does training master tasks, speed reps, and audience reps. It does not teach/learn.

=end

audience_room = '1932'
practice_room = '19016'
master_room = '19015'
administrator_room = '19006'
guildmaster_room = '19014'
illusion = 'demon'
shadow_object = 'cupcake'

def audience_rep(illusion)
vars = illusion + ' audience'
start_script('illusion',[vars])

while line = get

if line =~ /You have completed your training task/
Script.kill("illusion")
if illusion == 'shadow'
fput "illusion shadow shadow"
fput "get #{shadow_object}"
fput "stow #{shadow_object}"
end
if GameObj.right_hand.noun =~ /void|tempest|rose/
waitrt?
fput "eat my #{GameObj.right_hand.noun}"
end
if GameObj.left_hand.noun =~ /void|tempest|rose/
waitrt?
fput "eat my #{GameObj.left_hand.noun}"
end
break
end
end
end

def master_rep(illusion)
vars = illusion + ' master'
start_script('illusion',[vars])

while line = get

if line =~ /You have completed your training task/
Script.kill("illusion")
if GameObj.right_hand.noun =~ /void|tempest|rose/
waitrt?
fput "eat my #{GameObj.right_hand.noun}"
end
if GameObj.left_hand.noun =~ /void|tempest|rose/
waitrt?
fput "eat my #{GameObj.left_hand.noun}"
end
break
end
end
move out
fput "go door"
end

def illusion_rep(illusion)

start_script('illusion',[illusion])

while line = get

if line =~ /You have completed your training task/
Script.kill("illusion")
if GameObj.right_hand.noun =~ /void|tempest|rose/
waitrt?
fput "eat my #{GameObj.right_hand.noun}"
end
if GameObj.left_hand.noun =~ /void|tempest|rose/
waitrt?
fput "eat my #{GameObj.left_hand.noun}"
end
break
end
end
end

loop do

line = dothis "gld", /no repetitions|Administrator told you/
if line.include?('no repetitions')
GameObj.npcs.each { |npc|
if npc.name =~ /Administrator/
fput "ask #{npc.noun} about train in illusions"
break
end
}
illusion_rep(illusion)
fput "illusion shadow shadow"
fput "get #{shadow_object}"
fput "stow #shadow_object}"
elsif line.include?('how many times')
echo illusion
start_script('go2',[practice_room])
wait_while { running?('go2') }
illusion_rep(illusion)
elsif line.include?('Arcane Master')
start_script('go2',[master_room])
wait_while { running?('go2') }
GameObj.npcs.each { |npc|
if npc.name.include?('Arcane Master')
fput "ask #{npc.noun} about training"
waitfor "ILLUSION"
break
end
}
master_rep(illusion)
elsif line.include?('audience')
start_script('go2',[audience_room])
wait_while { running?('go2') }
audience_rep(illusion)
fput "illusion shadow shadow"
fput "get #{shadow_object}"
fput "stow #{shadow_object}"
else
GameObj.npcs.each { |npc|
if npc.name =~ /Administrator/
fput "ask #{npc.noun} about trade"
break
end
}
end

if illusion == 'shadow'
waitrt?
fput "illusion shadow shadow"
fput "get #{shadow_object}"
fput "stow #{shadow_object}"
end
start_script('go2',[administrator_room])
wait_while { running?('go2') }
GameObj.npcs.each { |npc|
if npc.name =~ /Administrator|Adminstrator/
line = dothis "ask #{npc.noun} about train in illusions", /promoted|Repeat this|Training Points/
echo line
if line.include?('promoted!')
start_script('go2',[guildmaster_room])
wait_while { running?('go2') }
GameObj.npcs.each { |npc|
if npc.name =~ /Guild Master/
fput "ask #{npc.noun} about next"
break
end
}
start_script('go2',[administrator_room])
wait_while { running?('go2') }
fput "ask #{npc.noun} about train in illusions"
else
fput "ask #{npc.noun} about train in illusions"
end
break
end
}

end


You need this companion script as well (must be named illusion.lic) and change the hardcoded shadow_object to whatever you plan to use for that illusion.



demon_id = 0
shadow_object = 'cupcake'

if script.vars[1] == 'shadow'
fput "get my #{shadow_object}"
fput "drop my #{shadow_object}"
end

if script.vars[1] == 'demon'
sleep 10
GameObj.npcs.each { |npc|
if npc.noun =~ /haze|rouk|brume|haar|murk|nyle|mist|smoke|vapor|fo g|hawk|vulture|condor|buzzard|osprey/
echo npc.name
demon_id = npc.id
break
end
}
end

loop do
if script.vars[1] == 'shadow'
fput "illusion shadow #{shadow_object}"
elsif script.vars[2] == 'master' && script.vars[1] == 'shadow'
fput "illusion shadow wand"
else
fput "illusion #{script.vars[1]}"
end

if script.vars[2] == 'audience' && script.vars[1] == 'shadow'
GameObj.loot.each { |item|
if item.noun =~ /shadow/
echo item.name
sleep 35
end
}
elsif script.vars[1] == 'demon' && script.vars[2] == 'audience'
fput "illusion demon ##{demon_id} dispel"
fput "illusion demon ##{demon_id}"
waitrt?
sleep 30
elsif script.vars[1] == 'demon'
fput "illusion demon ##{demon_id} dispel"
fput "illusion demon ##{demon_id}"
waitrt?
sleep 1
end

waitrt?

if GameObj.right_hand.noun =~ /void|tempest|rose/
fput "eat my #{GameObj.right_hand.noun}"
end
if GameObj.left_hand.noun =~ /void|tempest|rose/
fput "eat my #{GameObj.left_hand.noun}"
end
if script.vars[1] == 'shadow'
fput "illusion shadow shadow"
end
end


When you get to the demon reps, it only works with the Igaesha (easiest) type demons, which are good enough to get to master, so no reason to bother with any other kind for reps.
Good luck.