Aardwolf MUD Home Page Link

Location: Home / Lua Coding / More complex area

This area is the Onslaught of Chaos are on Aardwolf MUD. The area progs have been converted to Lua progs and commented to serve as an example for builders learning the Lua system. It is not intended as a demonstration of the capabilities of the Lua Mud Prog system - converting exiting quests means we're only going to touch on things already available in the game.

For testers that don't already have it, the brief version of the AQ solution is at the end. Of course, for the FULL details, read the progs :)

Old Onslaught-1: Mobprog


if ispc $n
if rand 30
if uses $n weapon
mob echoat $n $I looks at you, glancing suspiciously at your weapon.
mob echoaround $n $I looks at $n.
else
mob echoat $n $I looks at you.
mob echoaround $n $I looks at $n.
endif
endif
endif

New Onslaught-1 : Lua Mud Prog

Randomly echo a message to the player on entry 30% of the time. Message changes if the player is wielding a weapon.

--- Only echo if ch is a player, 30% chance.
if isplayer(ch) and math.random(100) < 30 then 
   --- Message different if they're using a weapon.
   if wearsobj(ch,"weapon") then
      echoat(ch,"$n looks at you, glancing suspiciously at your weapon.")
      
      --- $n is self, replaces $i. $N is target, replaces $n.
      --- could have used echo(self.name .. " looks at " .. ch.name)
      --- note second argument is char not to send to 
      --- replaces 'echoaround'
      echo("$n looks at $N suspiciously.",ch);
   else
      echoat(ch,"$n looks at you.")      
      echo("$n looks at $N.",ch);
   end
end

Old Onslaught-2 : Mobprog

mob echo The woman's teeth chatter with cold, but she remains motionless.

New Onslaught-2 : Lua Mud Prog

--- A simple echo.
echo("The woman's teeth chatter with cold, but she remains motionless.")

Old Onslaught-3 : Mobprog

Triggered by a player saying "help" in the Melnibonean home with the old lady by a fireplace.


if ispc $n
mob echo The woman glances upwards, gesturing languidly with one hand.
mob echoat $n A shimmering blue light envelops you!
mob echoaround $n $n disappears in a shimmering blue light.
mob transfer $n 1730
endif

New Onslaught-3 : Lua Mud Prog

if isplayer(ch) then
   echo("The woman glances upwards, gesturing languidly with one hand.")
   send(ch,"@CA shimmering blue light envelops you!@w")

   --- Second echo is to all except ch.
   echo("@C$N disappears in a shimmering blue light.@w",ch)
   
   --- Transfer ch, no keyword targeting issues.
   transfer(ch,"onslaught-5",LP_SEEALL)
end

Old Onslaught-4 : Mobprog

Old lady closes and locks the door behind you on entry.

mob echo As you enter, the door closes and locks behind you.
close south
lock south

New Onslaught-4 : Lua Mud Prog

Although this prog is quite simple, it also has a number of flaws:

  • If another character is in the room, they will also see 'the door closes and locks behind you'.
  • You see the '... the door locks behind you' then see the old lady perform the close/lock actions. Does this mean it closes and locks twice?
  • If you manage to walk into the room without opening the door (an imm, for example, can walk through nopass), it will says the door closes/locks.

Using some of the new features in the Lua / Mud system we can improve this prog:

--- Do nothing if the door is already locked.
if room.south.open == 1 then
   --- Only echo a message to the char entering.
   echoat(ch,"As you enter, the old lady stands up.")
   mdo("close south")
   mdo("lock south")
end

Old Onslaught-5 : Mobprog

Woman unlocks the door to the North when you give her a cloak, then purges self.

mob echo She pauses as she dons the cloak, her lips moving soundlessly.
stand
unlock north
open north
emote leaves north.
mob purge $i

New Onslaught-5 : Lua Mud Prog

--- Message makes no sense to anyone but char triggering the prog.
echoat(ch,"@WShe pauses as she dons the cloak, her lips moving 
           > soundlessly.@w")
mdo("stand")
mdo("unlock north")
mdo("open north")
emote("leaves North")
--- Should be no further actions after a purge self.
purgemob(self)

Old Onslaught-7 : Mobprog

Called during combat on Pyaray. If the character fighting us is a player, find a random player in the room, echo a message to them and to room, then do some damage with a second message to the char selected.

if ispc $n
mob echoat $r Suddenly, one of Pyaray's massive tentacles wraps around you!
mob echoaround $r $I grasps and crushes $r in one of his massive tentacles!
mob echoat $r You scream in agony as $I crushes you and flings you aside.
mob damage $r 1200 1400
endif

New Onslaught-7 : Lua Mud Prog

if isplayer(ch) then
   --- Get a random player in the room
   local rchar = randchar(LP_PLRONLY+LP_SEEALL) 
   
   if rchar == nil then return end -- Just in case we got no char.
   
   echoat(rchar,"Suddenly, one of Pyaray's massive tentacles wraps around you!");
   --- echoaround in mobprogs is standard echo with 'about' char in Lua.
   --- note how $I becomes $n (self) and $r becomes $N (the char passed to echo);
   echo("$n grasps and crushes $N is one of $S massive tentacles!",rchar);
   echoat(rchar,"You scream in agony as $n crushes you and flings you aside.");
   
   damage(rchar, 1200, 1400)
end

Old Onslaught-8 : Mobprog

On an exit, blocks that character from going west into chaos.

mob echoat $n You cannot find your way through the ever-shifting chaos.
mob echoaround $n $n wanders in circles through the chaos.

New Onslaught-8 : Lua Mud Prog

echoat(ch,"You cannot find your way through the ever-shifting chaos.")

-- Send to everyone except ch - equiv of old echoaround.
echo("$N wanders in circles through the chaos.",ch);

Old Onslaught-9 : Mobprog

Simple mob prog - mob whines as you enter the room.

emote slowly turns to face you, looking deep into your eyes.
say Please, leave me be; I wish only to stay here and die in peace.
sigh
say Give me the chance to escape my fate.

New Onslaught-9 : Lua Mud Prog

emote("slowly turns to face you, looking deep into your eyes.")
say("Please, leave me be; I wish only to stay here and die in peace.")
social("sigh")
say("Give me the chance to escape my fate.")

Old Onslaught-12 : Mobprog

Called while fighting multiple names mobs in Onslaught once their hp reaches a certain level. The call to 1783 (onslaught-58) causes the mob to heal itself multiple times. Very spammy. If the users is wearing a balance of light item, the heal does not take place. This test is flawed, any item with keywords set to balancelight would also block the heal.

if ispc $n
  mob echo The Light of Chaos sends rippling colors across $I's form.
  if wears $n balancelight
    mob echo The Light of the Balance pierces the chaos!
  else
    mob call 1783
    mob call 1783
    mob call 1783
    mob echo $I's body quickly turns fluid and reforms, undamaged.
  endif
endif

--- the prog 1783 simply spams 'mob cast heal'

New Onslaught-12 : Lua Mud Prog

if isplayer(ch) then
   --- $I's becomes $o - $o is the possessive form of $n
   echo("The Light of Chaos sends rippling colors across $o form.")
  
   --- We use the obj key for the item - solves keyword issues.
   if wears(ch,"onslaught-3") then
      echo("@GThe Light of the Balance pierces the chaos!@w")
   else
      --- Just call it once : don't really need a call at all now
      --- leaving in place to serve as an example.
      call("onslaught-58")
      
      echo("@G$o body quickly turns fluid and reforms, undamaged.@w")
  end
end

--- onslaught-35 doesn't need to spam 30 heals to do a full
--- heal now, it is 'self.hp = self.maxhp'

Old Onslaught-13 : Mobprog

Called while fighting multiple names mobs in Onslaught once their hp reaches a certain level. Very similar to onslaught-12 but with different echos.

if ispc $n
mob echo The Light of Law sends a white glow across $I's form.
if wears $n balancelight
mob echo The Light of the Balance pierces the order!
else
mob call 1783
mob call 1783
mob call 1783
mob echo $I's damaged body snaps back to its original perfection.
endif
endif

New Onslaught-13 : Lua Mud Prog

if isplayer(ch) then
   --- $I's becomes $o - $o is the possessive form of $n
   echo("The Light of Law sends a white glow across $o form.")
  
   --- We use the obj key for the item - solves keyword issues.
   if wears(ch,"onslaught-3") then
      echo("@YThe Light of the Balance pierces the order!@w")
   else
      --- Just call it once : don't really need a call at all now
      --- leaving in place to serve as an example.
      call("onslaught-58")
      
      echo("@Y$o damaged body snaps back to its original perfection.@w")
  end
end

--- onslaught-35 doesn't need to spam 30 heals to do a full
--- heal now, it is 'self.hp = self.maxhp'

Old Onslaught-14 : Mobprog

Attached to an exit in the Ruins of Karlaak - prevents characters over level 200 from entering.

if ispc $n
if level $n >= 200
mob echo A booming voice echoes around you!
mob echo '$n, your destiny is complete- leave this battle'
mob echo 'for those who have yet to prove their heroism.'
else
mob echoat $n You stride forth to meet your destiny!
mob transfer $n 1770
endif
endif

New Onslaught-14 : Lua Mud Prog

if isplayer(ch) then
   if ch.level >= 200 then
      echo("A booming voice echoes around you!")
      echo("@B " .. ch.name .. ", your destiny is complete - leave this battle@w")
      echo("@Bfor those who have yet to prove their heroism.@w")
   else
      echoat(ch,"You stride forth to meet your destiny!")  
      transfer(ch,"onslaught-45")
   end
end

Old Onslaught-15 : Mobprog

Attached to energy storm - if player is over 191 attack them. If they are 191 or lower, delay for 20 seconds at which point onslaught-16 will be called and a random player (this one if only one in room) is attacked. In the meantime, if the player says 'balance', prog onslaught-26 fires which transfers them to the eye of the storm.

if ispc $n
if level $n > 191
  mob echo A booming voice echoes around you!
  mob echo 'This is not your battle- you are stronger than'
  mob echo 'the one fated to stop the Onslaught of Chaos.'
  mob echo
  mob echo 'Leave this place to those more suited.'
  mob echo
  emote begins to tear your body apart!
  mob kill $n
else
  mob echo A booming voice echoes around you!
  mob echo 'For which side will you claim your victory, should you'
  mob echo 'defeat Jagreen Lern and thereby choose the outcome of'
  mob echo 'the Concordance?'
  mob delay 20
endif
endif

New Onslaught-15 : Lua Mud Prog

if isplayer(ch) then
   if ch.level > 191 then 
      echo("A booming voice echoes around you!")
      echo("@B This is not your battle- you are stronger than@w")
      echo("@B the one fated to stop the Onslaught of Chaos.nr@w")
      echo("@B Leave this place to those more suited.@wnr")
      mdo("emote begins to tear your body apart!")
      kill(ch,LP_SEEALL)
   else
     echo("A booming voice echoes around you!")
     echo("@B For which side will you claim your victory, should you@w")
     echo("@B defeat Jagreen Lern and thereby choose the outcome of@w")
     echo("@B the Concordance?@w")
     adddelay(20)
   end
end

Old Onslaught-16 : Mobprog

Called in delay from energy storm (see onslaught-15). Attacks random char in the room. Room is private, so should always be the actor.

emote begins to tear your body apart!
mob kill $r

New Onslaught-16 : Lua Mud Prog

local randchar = randchar(LP_PLRONLY)
--- What if we got no char at all?
if randchar == nil then return end
kill(randchar,LP_SEEALL)

Old Onslaught-17 : Mobprog

Energy storm will randomly damage then transfer someone out during combat.

if ispc $n
mob echo A gust of energy flings you out into the void beyond the storm!
mob echo You fly helplessly across the planes, countless
mob echo worlds and lives spinning past your eyes.
mob echo
mob damage $n 800 800
mob echo Eventually falling back to your native plane, you land painfully.
mob transfer $n 1747
mob call 1783
endif

New Onslaught-17 : Lua Mud Prog

if isplayer(ch) then
   echo("@YA gust of energy flings you out into the void beyond the storm!@w")
   echo("@WYou fly helplessly across the planes, countless@w")
   echo("@Wworlds and lives spinning past your eyes.nr@w")
   damage(ch,800,800,LP_SEEALL)
   echo("Eventually falling back to your native plane, you land painfully.")
   transfer(ch,"onslaught-22",LP_SEEALL)
   --- onslaught-58 is full heal.
   call("onslaught-58")
end

Old Onslaught-18 : Mobprog

Triggered while fighting the Elder Tree. Loads a floating leaf to help it. Loads another if there's more than one player in the room.

mob echo A single leaf breaks free from the tree and floats towards you.
mob mload 1749
if players > 1
mob echo Leaves continue to break free and float towards your group!
mob mload 1749
endif

New Onslaught-18 : Lua Mud Prog

echo("A single leaf breaks free from the tree and floats towards you.")
mload("onslaught-24")

if room.playercount > 1 then
   echo("Leaves continue to break free and float towards your group!")
   mload("onslaught-24")
end

Old Onslaught-19 : Mobprog

Bribe prog on trigger - if the amount is over 3,000 he loads some clues then sacs his gold - in theory leaving gold at zero to be able to test gold amount next time it is triggered. Probably pointless actions as he then purges himself anyway.

if ispc $n
  if money $i >= 3000
    emote smiles broadly.
    say You may well be the one fated to restore the Balance on this
    say plane by thwarting chaos. I hope you are- I have waited here
    say longer than I care to remember.
    mob echo
    say I know of an ancient item, the Chaos Shield, made
    say to protect the wearer against the ravages of raw chaos.
    say It was built by the giant Mordaga, who was himself once a
    say Lord of Chaos, but banished to mortal life after rebelling
    say against his peers.
    mob oload 1740
    give ashaneloonmap $n
    say This map will lead a ship to the island of Ashaneloon, where
    say Mordaga resides. Go quickly, and may Fate be with you!
    mob at 1783 drop 3000 coins
    mob at 1783 sac all
  else
    thank $n
    say You certainly carry the spark of generosity, but true
    say compassion means giving a sum that constitutes a real
    say sacrifice for the giver.
  endif
  mob mload 1742
  mob purge self
endif

New Onslaught-19 : Lua Mud Prog

if isplayer(ch) then
  if self.gold > 3000 then
    emote("smiles broadly.")
    say("You may well be the one fated to restore the Balance on thisnr")
    say("plane by thwarting chaos. I hope you are- I have waited herenr")
    say("longer than I care to remember.nr")
    say("I know of an ancient item, the Chaos Shield, made")
    say("to protect the wearer against the ravages of raw chaos.")
    say("It was built by the giant Mordaga, who was himself once a")
    say("Lord of Chaos, but banished to mortal life after rebelling")
    say("against his peers.")
    
    local newobj = oload("onslaught-15")
    give(newobj,ch)
    say("This map will lead a ship to the island of Ashaneloon, where")
    say("Mordaga resides. Go quickly, and may Fate be with you!")
    --- No point dropping/saccing gold. We could just do self.wealth=0 if
    --- we wanted the gold removed, but with a purge self that is
    --- pointless too.
  else
    emote("thank",ch)
    say("You certainly carry the spark of generosity, but true")
    say("compassion means giving a sum that constitutes a real")
    say("sacrifice for the giver.")
  end
  mload("onslaught-17")
  purgemob(self)
end

Old Onslaught-20 : Mobprog

Simple blocking trigger on the force of energy - prevents walking up/down.

if ispc $n
mob echoat $n And how exactly do you plan to do that?
endif

New Onslaught-20 : Lua Mud Prog

if isplayer(ch) then
  echoat(ch,"And how exactly do you plan to do that?")
end

Old Onslaught-21 : Mobprog

Triggered on giving the Actorios stone to the beggar - congratulates you, purges the ring + any other items on him then sets a delay. After the 4 seconds are up, program onslaught-22 will transfer the player.


if ispc $n
  say You have done it! By slaying Pyaray, you have stopped the
  say Chaos Fleet, and Melnibone is safe for now. But the man who
  say raised the Chaos Fleet still lives, and he has taken the army
  say of Chaos to the eastern continent. As long as Jagreen Lern,
  say the Theocrat of Pan Tang still lives, the world is in danger;
  say as Chaos covers more of the world, his power grows and he
  say plans to summon the Lords of Chaos to this plane.
  ponder
  say You have only one chance to defeat Jagreen Lern's army and
  say stop him from summoning his masters. You must recover the
  say Horn of Fate, for the first blow upon that horn will awaken
  say the sleeping dragons of Melnibone; the dragons will help
  say you defeat the army of chaos. I know not what will happen
  say after that, but if you wait here a moment I will send
  say you to the plane where the Horn of Fate now lies.
  emote closes his eyes and begins meditating.
  mob remember $n
  mob delay 4
  mob junk all
endif

New Onslaught-21 : Lua Mud Prog

if isplayer(ch) then
   if (self.target == nil) then
      say("You have done it! By slaying Pyaray, you have stopped the")
      say("Chaos Fleet, and Melnibone is safe for now. But the man who")
      say("raised the Chaos Fleet still lives, and he has taken the army")
      say("of Chaos to the eastern continent. As long as Jagreen Lern,")
      say("the Theocrat of Pan Tang still lives, the world is in danger;")
      say("as Chaos covers more of the world, his power grows and he")
      say("plans to summon the Lords of Chaos to this plane.")
      social("ponder")
      say("You have only one chance to defeat Jagreen Lern's army and")
      say("stop him from summoning his masters. You must recover the")
      say("Horn of Fate, for the first blow upon that horn will awaken")
      say("the sleeping dragons of Melnibone; the dragons will help")
      say("you defeat the army of chaos. I know not what will happen")
      say("after that, but if you wait here a moment I will send")
      say("you to the plane where the Horn of Fate now lies.")
      emote("closes his eyes and begins meditating.")
      remember(ch)
      adddelay(4)
      purgeobj("all",LP_WORNONLY)
      purgeobj("all",LP_CARRIEDONLY)
  else
      say("I'm a little busy now " .. ch.name .. ".");
      give(obj,ch)
   end
end

Old Onslaught-22 : Mobprog

Called after onslaught-21 sets the delay. Beggar wakes up and transfers the char he formerly remembered.

emote opens his eyes, and raises his hand towards you...
mob echoat $q The world flickers and shifts around you!
mob transfer $q 1766
mob forget

New Onslaught-22 : Lua Mud Prog

mdo("emote opens his eyes, and raises his hand towards you...")

--- Get target, then it's just a normal CH variable, no need for $Q stuff.
local tchar = self.target
if tchar ~= nil then 
   echoat(tchar,"@RThe world flickers and shifts around you!@w")
   transfer(tchar,"onslaught-41")
end
--- Forget target.
forget()

Old Onslaught-23 : Mobprog

Simple trigger on entry. Captains asks the player a question. If player says 'yes', onslaught-24 is called.

if ispc $n
  emote looks at his ship.
  say We ought tah be leavin' soon.
  say Do ya want tah come along for the ride back?
  eye $n
endif

New Onslaught-23 : Lua Mud Prog

if isplayer(ch) then
  emote("looks at his ship.")
  say("We ought tah be leavin' soon.")
  say("Do ya want tah come along for the ride back?")
  social("eye",ch )
end

Old Onslaught-24 : Mobprog

Player responded "yes" to captain, move back to start.

if ispc $n
mob echo You board the Hope Dempsey, and the ship sets sail.
mob echo
mob transfer $n 1728
mob echo You arrive back at port after an uneventful journey.
endif

New Onslaught-24 : Lua Mud Prog

if isplayer(ch) then
   echoat(ch,"You board the @YHope Dempsey@w, and the ship sets sail.")
   transfer(ch,"onslaught-3")
   echoat(ch,"@WYou arrive back at port after an uneventful journey.@w")
end

Old Onslaught-25 : Mobprog

Triggers on the captain when he is given the correct map.

if ispc $n
emote looks over the map, frowning thoughtfully.
say Yah, I think I can get yah thearh. It's not too fahr out of
say thah way on tha route back, and we'ah about tah head out.
mob echo You board the Hope Dempsey, and the ship drops you off on the
mob echo rocky shore of Ashaneloon.
mob transfer $n 1786
mob echo After dropping you off, the ship sails away.
mob junk all
endif

New Onslaught-25 : Lua Mud Prog

if isplayer(ch) then
   emote("looks over the map, frowning thoughtfully.")
   say("Yah, I think I can get yah thearh. It's not too fahr out of")
   say("thah way on tha route back, and we'ah about tah head out.")
   echoat(ch,"You board the @yHope Dempsey@w, and the ship drops you off on the")
   echoat(ch,"rocky shore of Ashaneloon.")
   transfer(ch,"onslaught-61")
   echoat(ch,"@WAfter dropping you off, the ship sails away.@w")
   purgeobj("all",LP_CARRIEDONLY)
   purgeobj("all",LP_WORNONLY)
end

Old Onslaught-26 : Mobprog

Triggers when someone says 'balance' in the energy storm room.

if ispc $n
mob echo Suddenly, you feel a gentle, unseen force wrap around you!
mob echo The Hand of the Balance casts you down through the storm!
mob transfer $n 1799
mob at 1799 mob force $n sgulp
endif

New Onslaught-26 : Lua Mud Prog

if isplayer(ch) then
   echoat(ch,"Suddenly, you feel a gentle, unseen force wrap around you!")
   echoat(ch,"The Hand of the Balance casts you down through the storm!")
   transfer(ch,"onslaught-74",LP_SEEALL)
   --- we don't have to do 'at', ch will be forced anyway.
   force(ch,"*gulp",LP_SEEALL)
end

Old Onslaught-27 : Mobprog

When you 'gasp' at the Knight in Black and Gold. He will give you a message about the lord of chaos. If you have the horn of fate, you will get a slightly different clue. If you also have the stone ring and a chaos shield, he will load the blank standard. If you already have the blank standard, you are told to get busy! The prog looks more complex than it is - really just a set of if checks based on items carried.

if ispc $n
  say It may be too late.
  say Jagreen Lern has summoned the Lords of Chaos, and the
  say barriers between the planes are too weak to hold them
  say out any longer.  Chaos' strength here grows with every
  say passing minute, and soon this world will be theirs to
  say remake.
  mob echoat $n $I looks at you.
  if carries $n 1757
    if carries $n 1742
    and carries $n 1744
      say Blowing the Horn of Fate again will call the Lords
      say of Law to battle the Chaos Lords.  With the sources
      say of Jagreen Lern's power so occupied, you will have the
      say chance to strike a decisive blow by killing him.
      if carries $n 1748
        say The horn has been blown, and you have the Blank Standard.
        say So stop standing around, your destiny awaits!
        mob remove $n 1757
      else
        mob oload 1748 189
        give banner $n
        say This will protect you from being destroyed by the
        say presence of the Gods as they fight.  Now, blow the
        say Horn of Fate!
        mob echoat $n You put the Horn of Fate to your lips and blow.
        mob echo You feel the substance of the world shake and shift around you.
        mob remove $n 1757
        mob echoat $n The Horn of Fate crumbles into dust.
      endif
    else
      say Blowing the Horn of Fate again will call the Lords
      say of Law to battle the Chaos Lords on this plane.
      say However, you will need defenses against Jagreen Lern's
      say magic you would take advantage of the opportunity
      say that would provide.  You will need both some sort
      say of protection against attacks based on raw chaos, and
      say something to prevent him from banishing you back
      say to this plane.
    endif
  else
    say There is only one chance left.
    say Blowing the Horn of Fate again would summon the Lords
    say of Law, and their battle with the Chaos Lords would
    say give you the chance to tip the scales back by defeating
    say Jagreen Lern.  However, before you do so, you will need
    say something to allow you to walk safely past the battlefield
    say of the Gods.  I can help you, so you must bring the
    say Horn of Fate here to me.  Also, try to look for items that
    say might protect you from Jagreen Lern's magic.
    say Go quickly, and may Fate be with you!
  Endif
endif

New Onslaught-27 : Lua Mud Prog

if isplayer(ch) then
  say("It may be too late.")
  say("Jagreen Lern has summoned the Lords of Chaos, and the")
  say("barriers between the planes are too weak to hold them")
  say("out any longer.  Chaos' strength here grows with every")
  say("passing minute, and soon this world will be theirs to")
  say("remake.")
  echoat(ch,"$n looks at you.")
  if carries(ch,"onslaught-32") then
    if carries(ch,"onslaught-17") and carries(ch,"onslaught-19") then
      say("Blowing the Horn of Fate again will call the Lords")
      say("of Law to battle the Chaos Lords.  With the sources")
      say("of Jagreen Lern's power so occupied, you will have the")
      say("chance to strike a decisive blow by killing him.")
      if carries(ch,"onslaught-23") then
        say("The horn has been blown, and you have the Blank Standard.")
        say("So stop standing around, your destiny awaits!")
        destroy(ch,"onslaught-32")
      else
        local newobj = oload("onslaught-23",189)
        give(newobj,ch)
        say("This will protect you from being destroyed by the")
        say("presence of the Gods as they fight.  Now, blow the")
        say("Horn of Fate!")
        echoat(ch,"You put the Horn of Fate to your lips and blow.")
        echo("You feel the substance of the world shake and shift around you.")
        destroy(ch,"onslaught-32")
        echoat(ch,"The Horn of Fate crumbles into dust.")
      end
    else
      say("Blowing the Horn of Fate again will call the Lords")
      say("of Law to battle the Chaos Lords on this plane.")
      say("However, you will need defenses against Jagreen Lern's")
      say("magic you would take advantage of the opportunity")
      say("that would provide.  You will need both some sort")
      say("of protection against attacks based on raw chaos, and")
      say("something to prevent him from banishing you back")
      say("to this plane.")
    end
  else
    say("There is only one chance left.")
    say("Blowing the Horn of Fate again would summon the Lords")
    say("of Law, and their battle with the Chaos Lords would")
    say("give you the chance to tip the scales back by defeating")
    say("Jagreen Lern.  However, before you do so, you will need")
    say("something to allow you to walk safely past the battlefield")
    say("of the Gods.  I can help you, so you must bring the")
    say("Horn of Fate here to me.  Also, try to look for items that")
    say("might protect you from Jagreen Lern's magic.")
    say("Go quickly, and may Fate be with you!")
  end
end

Old Onslaught-28 : Mobprog

Many of the named mobs in the area will do huge damage unless you're carrying the blank standard from the knight (see above).

if ispc $n
mob echoat $n The presence of the Gods sends out unimaginable quantities of energy!
if wears $n commitment
mob echoat $n The energy passes harmlessly around you.
else
mob echoat $n The energy overwhelms you, ripping you apart!
mob damage $n 30000 40000 lethal
endif
endif

New Onslaught-28 : Lua Mud Prog

if isplayer(ch) then
   echoat(ch,"@CThe presence of the Gods sends out unimaginable quantities of energy!@w")
   if wears(ch,"onslaught-23") then
      echoat(ch,"@WThe energy passes harmlessly around you.@w")
   else 
      echoat(ch,"@WThe energy overwhelms you, ripping you apart!@w")
      damage(ch,30000,40000,LP_SEEALL)
   end
end

Old Onslaught-29 : Mobprog

Many of the named mobs in the area will call this prog when attacked. Mob will transfer itself away if being fought by a group.

if grpsize $n > 0
  mob echo You find it impossible for such a large group of people to get close
  mob echo enough to $I's flickering form for the attack!
  if room $i == 1781
    mob transfer self 1780
  else
    mob transfer self 1781
  endif
else
  emote turns a tiny fraction of $l attention to you.
endif

New Onslaught-29 : Lua Mud Prog

if ch.groupsize > 0 then
  echo("You find it impossible for such a large group of people to get close")
  echo("enough to $o flickering form for the attack!")
  if room.key == "onslaught-55" then
     rgoto("onslaught-56")
  else
     rgoto("onslaught-55")
  end
else
  echoat(ch,"$n turns a tiny fraction of $s attention to you.")
end

Old Onslaught-30 : Mobprog

Runs in eye of the storm - triggered after the storm itself transfers you and forces you to gulp. If you're wearing the Actorios ring, the tumultuous battle mob is loaded. If you're not, the mob does a little damage then dumps you out.

if ispc $n
emote looks at you very strangely.
mob echo You feel a frission of powerful magic engulf your body!
if wears $n actorios
mob echo Your Actorios ring pulses as it binds you to this plane!
mob mload 1783
mob transfer tumultuous 1785
else
emote concentrates and banishes your soul!
mob echo Jagreen Lern's magic Banishes you from this half-world,
mob echo launching you out into the void between the planes!
mob echo You fly helplessly across the planes, countless
mob echo worlds and lives spinning past your eyes.
mob echo
mob damage $n 900 900
mob echo Eventually falling back to your native plane, you land painfully.
mob transfer $n 1747
mob call 1783
endif
endif

New Onslaught-30 : Lua Mud Prog

if isplayer(ch) then
   emote("looks at you very strangely.")
   echoat(ch,"@WYou feel a frission of powerful magic engulf your body!@w")
   if wears(ch,"onslaught-17") then
      echoat(ch,"Your @RA@rc@Rt@ro@Rr@ri@Ro@rs@w ring pulses as it binds you to this plane!")
      mload("onslaught-58")
      transfer("tumultuous","onslaught-60")
   else
      emote("concentrates and banishes your soul!")
      echoat(ch,"@YJagreen Lern's magic Banishes you from this half-world,@w")
      echoat(ch,"@Ylaunching you out into the void between the planes!@w")
      echoat(ch,"@WYou fly helplessly across the planes, countless@w")
      echoat(ch,"@Wworlds and lives spinning past your eyes.nr@w")
      damage(ch,900,900,LP_SEEALL)
      echoat(ch,"Eventually falling back to your native plane, you land painfully.")
      transfer(ch,"onslaught-22")
      call("onslaught-58")
   end
end

Old Onslaught-31 : Mobprog

Called when Jagreen Lern dies. If player is wearing the chaos shield, transfer both to onslaught-73, the Knight. Note how Jagreen transfers himself before dying - the corpse will also be in the new room.

if ispc $n
  emote screams in agony as you deliver him a mortal wound!
  mob echo He focuses the last of his strength into one vicious cleave!
  if wears $n chaosshield
    mob echo You bring up the Chaos Shield in time to block the blow!
    mob echo Jagreen Lern's searing red battleaxe breaks your shield in half!
    mob remove $n 1744
    mob echo He collapses to the ground among the shards of your shield, dead.
    mob echo The air ripples and shifts around you!
    mob echo You hear the sound of a distant, loud bell tolling.
    mob echo Screams of unearthly rage reach your ears from far above you...
    mob transfer $n 1798
    mob transfer $i 1798
    mob at 1798 mob echo ...then all is still.
  else
    mob echo Your instincts bring up your arm to block, but you wear no shield!
    mob echo Your last sight is Jagreen Lern's battleaxe descending
    mob echo towards your face...
    mob damage $n 99999 99999 lethal
  end
end

New Onslaught-31 : Lua Mud Prog

if isplayer(ch) then
  emote("screams in agony as you deliver him a mortal wound!")
  echoat(ch,"@WHe focuses the last of his strength into one vicious cleave!@w")
  if wears(ch,"onslaught-19") then
    echoat(ch,"You bring up the Chaos Shield in time to block the blow!")
    echoat(ch,"Jagreen Lern's @Rsearing red battleaxe@w breaks your shield in half!")
    destroy(ch,"onslaught-19")
    echoat(ch,"He collapses to the ground among the shards of your shield, dead.@w")
    echoat(ch,"@CThe air ripples and shifts around you!@w")
    echoat(ch,"@GYou hear the sound of a distant, loud bell tolling.@w")
    echoat(ch,"@YScreams of unearthly rage reach your ears from far above you...@w")
    transfer(ch,"onslaught-73")    
    transfer(self,"onslaught-73")
    
    --- Echo will be in the new room.
    echo("nr... then all is still")
    
  else
    echoat(ch,"Your instincts bring up your arm to block, but you wear no shield!")
    echoat(ch,"@WYour last sight is Jagreen Lern's @Rbattleaxe @Wdescending@w")
    echoat(ch,"@Wtowards your face...@w")
    damage(ch,99999,99999,LP_SEEALL)
  end
end

Old Onslaught-32 : Mobprog

Damage spam when fighting the huge green scaled dragon

if ispc $n
mob echoat $n The dragon spits flaming venom down around you!
mob echoaround $n The dragon spits flaming venom all over $n!
mob damage $n 750 1000
endif

New Onslaught-32 : Lua Mud Prog

if isplayer(ch) then
   echoat(ch,"The dragon spits @Gfl@Ram@Ging venom@w down around you!")
   echo("$n The dragon spits @Gfl@Ram@Ging venom@w all over $N!",ch)
   damage(ch,750,1000,LP_SEEALL)
end

Old Onslaught-33 : Mobprog

Triggered when the victory helm is given to the old adventurer, if the character has the right items, the light of balance is given to them, otherwise they just get the helm back.

if ispc $n
  if wears $n chaosshield
  and wears $n lawful
  and wears $n commitment
  and wears $n olifant
    smile
    say Ahh, you caught the hint; I am glad. You have
    say indeed achieved victory and understood the meaning
    say of Balance, as well as the importance of Fate.
    mob echo
    say As I promised, this reward can indeed be yours as well.
    mob oload 1728
    give balancelight $n
    say Use it wisely :)
    emote raises his glass in a silent toast to your accomplishments.
  else
    say Well, you have certainly achieved victory.
    say But what of the Balance? And Destiny?
    eyeb $n
    give victoryhelm $n
  endif
endif

New Onslaught-33 : Lua Mud Prog

if isplayer(ch) then
   if wears(ch,"onslaught-19") and wears(ch,"onslaught-35") and wears(ch,"onslaught-23") and
       wears(ch,"onslaught-32") then
      social("smile")
      say("Ahh, you caught the hint; I am glad. You have")
      say("indeed achieved victory and understood the meaning")
      say("of Balance, as well as the importance of Fate.nr")
      say("As I promised, this reward can indeed be yours as well.")
      local newobj = oload("onslaught-3")
      give(newobj,ch)
      say("Use it wisely :)")
      emote("raises his glass in a silent toast to your accomplishments.")
   else
      say("Well, you have certainly achieved victory.")
      say("But what of the Balance? And Destiny?")
      social("eyeb",ch)
      --- Return obj (item that triggered us) back to player.
      give(obj,ch)
   end
end


Old Onslaught-34 : Mobprog

Cleans up the tumultuous battle mobs if all players are gone from the room. Old purge does one at a time, new version will purge all.

if players == 0
if mobingame onslaught-58
    mob at 'tumultuous battle' mob purge 'tumultuous battle'
    mob call 1783
  endif
endif

New Onslaught-34 : Lua Mud Prog

if room.playercount == 0 then
   if mobexists("onslaught-58") then
      purgemob("onslaught-58",LP_SEEALL+LP_WORLD+LP_ALLMOBS)
   end
   self.hp = self.maxhp
end


Old Onslaught-35 : Mobprog

Speech trigger on Vivian, gives the player a key needed as part of the area quest.

if ispc $n
say I know the item of which you speak.
say Here, take this key, it will open the door to the tomb.
remove vivian
give vivian $n
say If you are indeed a demon, you will not be able to
say touch Olifant, and your presence may well wake my love
say Roland, and he will slay you. If you are not a demon,
say then nothing is lost; no angel or mortal could fight
say in the face of his purity.
emote utters a few words in an unfamiliar language.
emote fades out of existence.
mob purge $i
endif

New Onslaught-35 : Lua Mud Prog

if isplayer(ch) then
   say("I know the item of which you speak.")
   say("Here, take this key, it will open the door to the tomb.")
   mdo("remove vivian")
   mdo("give vivian " .. ch.name)
   say("If you are indeed a demon, you will not be able to")
   say("touch Olifant, and your presence may well wake my love")
   say("Roland, and he will slay you. If you are not a demon,")
   say("then nothing is lost; no angel or mortal could fight")
   say("in the face of his purity.")
   emote("utters a few words in an unfamiliar language.")
   emote("fades out of existence.")
   purgemob(self)
end

Old Onslaught-36 : Mobprog

Upon greeting the knight, he continues the story and asks for the standard back.

say Congratulations.
say It is done.
say Your victory tipped the Cosmic Balance back away
say from Chaos and into equilibrium once again.
emote gestures broadly at the landscape before you.
say The world is empty, ready to be created anew.
say Because of Chaos' excesses in this past cycle, the
say new world will have less magic, so the influence of
say Law will be stronger. Perhaps this setup will be
say the one to finally achieve a stable balance, but
say probably not- that is why we are here. My fellows
say and I will keep trying until we get it right.
say Such is the purpose of the Multiverse, we believe.
emote sighs wistfully, and looks up at the sky.
say May I please have the Blank Standard back?

New Onslaught-36 : Lua Mud Prog

say("Congratulations.")
say("It is done.")
say("Your victory tipped the Cosmic Balance back away")
say("from Chaos and into equilibrium once again.")
emote("gestures broadly at the landscape before you.")
say("The world is empty, ready to be created anew.")
say("Because of Chaos' excesses in this past cycle, the")
say("new world will have less magic, so the influence of")
say("Law will be stronger. Perhaps this setup will be")
say("the one to finally achieve a stable balance, but")
say("probably not- that is why we are here. My fellows")
say("and I will keep trying until we get it right.")
say("Such is the purpose of the Multiverse, we believe.")
emote("sighs wistfully, and looks up at the sky.")
say("May I please have the Blank Standard back?")

Old Onslaught-37 : Mobprog

Knight transfers you out and back to Aylor after returning the standard.

if ispc $n
wear commitment
say I thank you, $n, for all you have done.
say Know that I speak for the Balance itself and all
say its Princes and Champions when I do so.
smile $n
say You have done more for the Multiverse than you
say could possibly imagine. Or remember.
mob echo A feeling of complete peace and happiness fills your soul...
mob force $n sleep
mob transfer $n 66094
remove commitment
mob junk all
endif

New Onslaught-37 : Lua Mud Prog

if isplayer(ch) then
   mdo("wear commitment")
   say("I thank you, " .. ch.name .. ", for all you have done.")
   say("Know that I speak for the Balance itself and all")
   say("its Princes and Champions when I do so.")
   social("smile",ch)
   say("You have done more for the Multiverse than you")
   say("could possibly imagine. Or remember.")
   echoat(ch,"@WA feeling of complete peace and happiness fills your soul...@w")
   force(ch,"sleep")
   transfer(ch,"aylor-94")
   mdo("remove commitment")
   purgeobj("all",LP_WORNONLY)
   purgeobj("all",LP_CARRIEDONLY)
end

Old Onslaught-38 : Mobprog

Blocker prog on several rooms - won't let you leave until the mobs have been killed. Once in the room, the gasp causes the Knight to trigger his prog.

if ispc $n
if mobs < 1
mob echoaround $n $n leaves west.
mob transfer $n 1778
mob at 1778 mob force $n gasp
else
mob echoat $n The battle still rages around you, blocking your route to safety.
endif
endif

New Onslaught-38 : Lua Mud Prog

if isplayer(ch) then
   --- Mobcount DOES include current mob, so we make this 2.
   if room.mobcount < 2 then
      echo("$N leaves west.",ch)
      transfer(ch,"onslaught-53",LP_SEEALL)
      force(ch,"*gasp")
   else
      echoat(ch,"@RThe battle still rages around you, blocking your route to safety.@w")
   end
end

Old Onslaught-41 : Mobprog

Death trigger on a number of mobs in the area gives an echo when they die and purges their equipment.

mob echo $I screams as you banish $k from this plane!
remove all
mob junk all

New Onslaught-41 : Lua Mud Prog

echoat(ch,"@R$n screams as you banish $m from this plane!@w")
--- No need to remove all, purge with these options gets both.
purgeobj("all",LP_WORNONLY+LP_SEEALL)
purgeobj("all",LP_CARRIEDONLY+LP_SEEALL)

Old Onslaught-42 : Mobprog

Fight prog/damage on the guard captain.

if ispc $n
mob echoat $n The captain's immense skill easily overwhelms your defenses!
mob echoaround $n The captain sneaks in an extra attack under $n's defenses!
mob echoat $n Pain washes over you as one of his falchions rips into you!
mob damage $n 1000 1250
endif

New Onslaught-42 : Lua Mud Prog

if isplayer(ch) then
   echoat(ch,"The captain's immense skill easily overwhelms your defenses!")
   echo("The captain sneaks in an extra attack under $O defenses!",ch);
   echoat(ch,"@RPain washes over you as one of his falchions rips into you!@w")
   damage(ch,1000,1250,LP_SEEALL)
end

Old Onslaught-43 : Mobprog

If there's a player in the room, load a tree helper. Probably needs a limit on max mobs.

if players > 0
mob call 1743

New Onslaught-43 : Lua Mud Prog

if room.playercount > 0 and room.mobcount < 10 then
   call("onslaught-18")
end

Old Onslaught-45 : Mobprog

Fight prog on a rat - small chance to run away (purge itself)

if rand 10
mob echo The rat scurries back down into its hole and escapes!
mob purge $i
endif

New Onslaught-45 : Lua Mud Prog

if math.random(100) < 10 then 
   echo("The rat scurries back down into its hole and escapes!")
   purgemob(self)
end

Old Onslaught-46 : Mobprog

Killing the captain attempts to stop the fight - this doesn't work


if ispc $n
say What tha hell d'yah think yah're doin'?
mob echoat $n This man has given free passage on his ship.  You decide
mob echoat $n to be nice to him.
mob mload 1776
mob purge $i
endif

New Onslaught-46 : Lua Mud Prog

if isplayer(ch) then
  say("What tha hell d'yah think yah're doin'?")
  echoat(ch,"This man has given free passage on his ship.  You decide")
  echoat(ch,"to be nice to him.")
  --- Use peace to stop the fight, then heal self.
  peace()
  self.hp = self.maxhp
end

Old Onslaught-47 : Mobprog

When the Melnibonean woman is killed, she removes/purges her enchantment (held item)

remove enchantment
mob junk enchantment

New Onslaught-47 : Lua Mud Prog

mdo("remove enchantment")
purgeobj("onslaught-2",LP_CARRIEDONLY)

Old Onslaught-48 : Mobprog

Called when the ex-slave is given the drug power. Rewards player with statuette.

if ispc $n
mob echo The ex-slave's eyes light up as he takes your gift.
say Ohh, th-th-thank you, I, I, um, ah, w-w-ell...
mob echoat $n He presses his stolen prize into your hand, then turns
mob echoat $n around and huddles in the corner for some meagre privacy.
remove statuette
give statuette $n
snort
endif

New Onslaught-48 : Lua Mud Prog

if isplayer(ch) then
   echoat(ch,"The ex-slave's eyes light up as he takes your gift.")
   say("Ohh, th-th-thank you, I, I, um, ah, w-w-ell...")
   echoat(ch,"He presses his stolen prize into your hand, then turns")
   echoat(ch,"around and huddles in the corner for some meagre privacy.")
   mdo("remove statuette")
   mdo("give statuette " .. ch.name)
   social("snort")
end


Old Onslaught-49 : Mobprog

Same as onslaught-48, but triggered by ampoule.

if ispc $n
shake
say Th-thanks, but I w-w-w-wa need s-some of th-th-the powder s-stuff.
give ampoule $n
endif

New Onslaught-49 : Lua Mud Prog

if isplayer(ch) then
   social("shake")
   say("Th-thanks, but I w-w-w-wa need s-some of th-th-the powder s-stuff.")
   give(obj,ch)
endif


Old Onslaught-50 : Mobprog

The old woman likes pie, apparently.

if ispc $n
say Shpadoinkle!
thank $n
eat pie
peck $n
endif

New Onslaught-50 : Lua Mud Prog

if isplayer(ch) then
   say("Shpadoinkle!")
   social("thank",ch)
   mdo("eat pie")
   social("peck",ch)
end

Old Onslaught-51 : Mobprog

Couple of mobs in the area will do additional damage if you're not wearing the chaos shield.

if ispc $n
if wears $n chaosshield
mob echoat $n $I hits you with a bolt of raw chaos, but the Shield protects you.
mob echoaround $n $I blasts $n with a bolt of chaos, but $J seems unfazed.
else
mob echoat $n $I blasts you with a bolt of raw chaos!
mob echoaround $n $I blasts $n with a beam of raw chaos!
mob damage $n 3300 4400 lethal
endif
endif

New Onslaught-51 : Lua Mud Prog

if isplayer(ch) then
   if wears(ch,"onslaught-19") then
      echoat(ch,"$n hits you with a bolt of raw chaos, but the shield protects you.")
      echo("$n blasts $N with a bolt of chaos, but $e seems unfazed.",ch);
   else
      echoat(ch,"$n blasts you with a bolt of raw @gc@Rh@Ma@Go@Ys@w!")
      echo("$n blasts $N with a beam of raw @gc@Rh@Ma@Go@Ys@w!",ch)
      damage(ch,3300,4400,LP_SEEALL)
   end
end

Old Onslaught-52 : Mobprog

Same as onslaught-51, except a random player is chosen.

if wears $r chaosshield
mob echoat $r Chaos surrounds you, but the Chaos Shield protects you.
mob echoaround $r $r is enveloped in chaos, but $J seems unaffected.
else
mob echoat $r $I envelops you in a dense cloud of chaos!
mob echoaround $r $I envelops $r in dense, molten chaos!
mob echoat $r You feel your body dissolve and tear apart!
mob damage $r 3000 4000 lethal
endif

New Onslaught-52 : Lua Mud Prog

local rchar = randchar(LP_PLRONLY)
if rchar == nil then return end

if wears(rchar,"onslaught-19") then
   echoat(rchar,"Chaos surrounds you, but the Chaos Shield protects you.")
   echo("$N is enveloped in chaos, but $E seems unaffected.",rchar)
else
   echoat(rchar,"$n envelops you in a dense cloud of @gc@Rh@Ma@Go@Ys@w!!")
   echo("$n envelops $N in dense, molten @gc@Rh@Ma@Go@Ys@w!!",rchar)
   echoat(rchar,"@MYou feel your body dissolve and tear apart!@w")
   damage(rchar,3000,4000,LP_SEEALL)
end

Old Onslaught-53 : Mobprog

As the twisted creature moves around, it will transfer itself from certain rooms.

if room $i == 1751
or room $i == 1752
or room $i == 1753
or room $i == 1765
if rand 33
mob transfer $i 1755
else
if rand 50
mob transfer $i 1758
else
mob transfer $i 1761
endif
endif
endif

New Onslaught-53 : Lua Mud Prog

--- Use a variable so we don't keep accessing room.key
local roomkey = room.key
if roomkey == "onslaught-26" or roomkey == "onslaught-17" or roomkey == "onslaught-18" or
   roomkey == "onslaught-40" then
   if math.random(100) < 33 then
      transfer(self,"onslaught-30")
   else 
      if math.random(100) < 50 then
         transfer(self,"onslaught-33")
      else
         transfer(self,"onslaught-36")
      end
  end
end

Old Onslaught-54 : Mobprog

Torturer attacks on entry

if ispc $n
emote looks up at you as you enter.
say Ah, my next subject.
close up
lock up
emote readies a scalpel and approaches you...
mob kill $n
endif

New Onslaught-53 : Lua Mud Prog

if isplayer(ch) then
   emote("looks up at you as you enter.")
   say("Ah, my next subject.")
   mdo("close up")
   mdo("lock up")
   emote("readies a scalpel and approaches you...")
   kill(ch)
end

Old Onslaught-55 : Mobprog

Triggered when giving the dragonscale to Dragon Master, drops the dragon rider's flask.

if ispc $n
boggle $n
say Where did you get this??
sigh
emote shakes his head sadly.
say I don't want to know.
drop dragon
endif

New Onslaught-55 : Lua Mud Prog

if isplayer(ch) then
   social("boggle",ch)
   say("Where did you get this??")
   social("sigh")
   emote("shakes his head sadly.")
   say("I don't want to know.")
   mdo("drop dragon")
end

Old Onslaught-56 : Mobprog

Statuette cannot be gotten from the slave by killing/looting it - this prog purges it on death.

remove stolen
mob echo The statuette falls from the ex-slave's dying grasp and shatters on
mob echo the floor.
mob junk stolen

New Onslaught-56 : Lua Mud Prog

echo("The statuette falls from the ex-slave's dying grasp and shatters on")
echo("the floor.")
purgeobj("onslaught-49",LP_SEEALL+LP_WORNONLY)

Old Onslaught-57 : Mobprog

Just a little atmosphere in the tavern - do a social if there's a player here.

if players > 0
freebeer $r
endif

New Onslaught-57 : Lua Mud Prog

if room.playercount > 0 then
   rchar = randchar(LP_SEEALL+LP_PLRONLY)
   social("freebeer",rchar)
end


Old Onslaught-74 : Mobprog

Cleanup prog - purges the tumultuous battle in room with energy storm.

if mobhere tumult
mob purge tumult
endif

New Onslaught-74 : Lua Mud Prog

--- purge mob, behind the scenes, already does a mobexists. Removing
--- redundant check, just a purge is all we need.
purgemob("onslaught-58",LP_ROOMONLY+LP_SEEALL+LP_ALLMOBS)

Steps to complete area quest

1. Head to the beggar and give him 10,000 gold for the map.
2. Give the map to the captain and head up to mordaga.
3. Kill mordaga for the chaos shield.
4. Head back and go to the torturer
5. Get the powder from the table.
6. Head to the ex-slave and give the powder to the right slave for the sculpture.
7. Find the cold woman then head to the shop to buy a cloak. 4nws from captain for shop
8. Give the cloak to the woman to get another hard to find room and a potion. say help to get out
9. Kill guard all north from the captain for the law and head to pyaray and kill him for a ring.
10. Repeat until you have 3 rings all together.
11. Head to the beggar and give him the ring.
12. Wait a few ticks for him to transport you.
13. Head north and say 'horn' to vivian. She will give you the key to roland's tomb.
14. Head inside and kill roland for the horn.
15. Move fast to get out of that section, make sure you are
wearing the shield, and rings and are vis and enter horn.
16. Remove the horn and keep it in inventory then go south, retreat south again and intim all mobs out of room and go west
17. The knight should give you the blank standard. wear it
18. Head up and look around the gods for the way down. Find the way down and head into it.
19. The storm will block your way. Say 'balance' to get by the storm.
20. Kill Jagreen , he will transport you to another room.
21. Say 'hello' to the knight and give him the standard.
22. Head back into the area and give a ring to the beggar
and get another horn from roland by following the steps mentioned above.Then get a blank standard from inside the horn as noted above and recall. Go and grab another horn and head to Adventurer.
23. Wear The ring, The horn, The Law, The Blank Standard and The Shield and go to begining where the adventurer is.
24. Give the helmet you got from Jagreen to the adventurer and you will recieve the end piece of eq, a light.