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.
|