|
Kvetch
|
 |
« Reply #15 on: August 19, 2011, 07:10:59 pm » |
|
I thought I'd go have a bit of fun when checking out the scripts I had my sweaty little building paws on and came across this little tidbit. Not exactly sure who created it, but I am pretty sure I took it off TBAmud. Name: 'water balloon sploosh!', VNum: [57196], RNum: [ 4101] Trigger Intended Assignment: Objects Trigger Type: Drop , Numeric Arg: 100, Arg list: None Commands: set room_var %actor.room% wait 1 s * Send a message when the bomb goes off. %echo% The water balloon breaks open and water sprays everywhere! * Target the first char. set target_char %room_var.people% * Now loop through everyone in the room and hurt them. while %target_char% * Set the next target before this one perhaps dies. set tmp_target %target_char.next_in_room% * This is where the 'magic' happens %echoaround% %target_char% gets hit with water! %send% %target_char% You get hit with water! * Set the next target. set target_char %tmp_target% * Loop back. done * After we go through everyone get rid of the water balloon. %purge% %self%
|
|
|
|
|
Logged
|
|
|
|
|
Kvetch
|
 |
« Reply #16 on: October 18, 2011, 05:24:13 pm » |
|
This is Mord's OLC style journal Name: 'Journal - OLC style', VNum: [ 4499], RNum: [ 437] Trigger Intended Assignment: Objects Trigger Type: Command, Numeric Arg: 1, Arg list: * Commands: if %actor.fighting% return 0 unset edit halt end set sa %send% %actor% set ea %echoaround% %actor% set pageheight 30 set pagewidth 80 if !%top_line% set top_line 0 global top_line end if !%state% switch %cmd% case edit if %arg.car%==journal %sa% You start editing the journal. %ea% %actor.name% starts editing %actor.hisher% journal. set state edit global state else return 0 end break case l case look if %arg.contains(journal)% %sa% To add or edit a journal entry type: %sa% edit journal %sa% To read the journal type: %sa% read journal %sa% WHILE IN THE EDITOR: %sa% To save a journal entry, and exit the editor type: %sa% :s %sa% -- %sa% To clear all lines on this page of the journal type: %sa% :c %sa% -- %sa% To delete a single existing line on this page of the journal type: %sa% :d <line number> %sa% -- %sa% To edit a single existing line on this page of the journal type: %sa% :e <line number> <new line text> %sa% -- %sa% To view the current lines on this page of the journal type: %sa% :l %sa% -- %sa% NOTE: The maximum lines per page is %pageheight% else return 0 end break case read case examine if %arg.contains(journal)% if %top_line%==0 %sa% Sorry, but there is nothing yet to read. halt end %sa% You read the page of the journal. %sa% --------------------------------------------- set li 0 while %li% < %top_line% eval show %%line[%li%]%% %sa% %show% eval li %li%+1 done %sa% --------------------------------------------- %sa% Total lines: %top_line% else return 0 end break default return 0 break done elseif %state% == edit if %cmd% == : set command %arg.car% set arg %arg.cdr% switch %command% case s case save set state unset state %sa% You save the journal entry and exit the editor. %ea% %actor.name% saves %actor.hisher% journal entry, and stops editing. break case c set li 0 while %li% < %top_line% unset line[%li%] eval li %li%+1 done unset top_line %sa% All lines from page %page% cleared. break case l if %top_line%==0 %sa% No lines to see. halt end set li 0 while %li% < %top_line% eval show %%line[%li%]%% %sa% %li%] %show% eval li %li%+1 done break case d if %top_line% == 0 %sa% There are no lines to delete! halt end eval del %arg%/1 %sa% Line %del% deleted. set li %del% while %li% < %top_line% eval nxt %li%+1 set nxt_lne %%line[%nxt%]%% eval line[%li%] %nxt_lne% eval li %li%+1 done eval top_line %top_line%-1 break case e if %top_line% == 0 %sa% There are no lines to edit/update! halt end eval ed %arg.car%/1 if %ed% > %top_line% || %ed% < 0 %sa% Sorry but '%ed%' isn't a valid line. %sa% You can only edit lines 0 through to %top_line% halt end %sa% Line %ed% changed. eval line[%ed%] %arg.cdr% break case f *Format needs more while loops than the mud allows to complete if %top_line% == 0 %sa% There are no lines to format! halt end set li 0 while %li% < %top_line% eval text %text% %%line[%li%]%% *clear the variable set line[%li%] *remove the global unset line[%li%] eval li %li%+1 done eval top_line 0 while %text.cdr% eval cur_line %%line[%top_line%]%% eval len %cur_line.strlen% eval next_len %len% + %text.car.len% if %next_len% > %pagewidth% eval top_line %top_line%+1 end *if a single word is longer than the limit, just save as is if %text.car.len% > %pagewidth% set line[%top_line%] %text.car% eval top_line %top_line%+1 else set line[%top_line%] %text.car% end global line done global top_line break default %sa% That (%cmd%%arg.car%) is not a valid in-editor command :s :e :d :l break done else if %top_line% >= %pageheight% %sa% Sorry, you can't add any more lines, you already have the maximum of %pageheight%. %sa% To write any more, save what you have and start a new page. halt end set line %cmd% %arg% if %line.strlen% > %pagewidth% %sa% Sorry, but you can't have lines longer than %pagewidth% characters. %sa% %line% (%line.strlen%) halt end set line[%top_line%] %line% global line[%top_line%] %sa% %top_line%] %line% eval top_line %top_line%+1 global top_line end else return 0 end
|
|
|
|
« Last Edit: October 18, 2011, 06:39:40 pm by Kvetch »
|
Logged
|
|
|
|
|
Kvetch
|
 |
« Reply #17 on: October 18, 2011, 06:44:08 pm » |
|
You have to hold the journal to be able to do anything with it (took me a while to figure that out - it's been years), but after you hold it, when you look at it you get this: To add or edit a journal entry type: Edit journal To read the journal type: Read journal WHILE IN THE EDITOR: To save a journal entry, and exit the editor type: :s -- To clear all lines on this page of the journal type: :c -- To delete a single existing line on this page of the journal type: :d <line number> -- To edit a single existing line on this page of the journal type: :e <line number> <new line text> -- To view the current lines on this page of the journal type: :l -- NOTE: The maximum lines per page is 30
I tested this out and ended up with this as a test for the journal:
You read the page of the journal. --------------------------------------------- This is to test the journal. This is the first line. I am continuing to test the journal. This is the second line. This is the final line in the journal test. --------------------------------------------- Total lines: 3
|
|
|
|
|
Logged
|
|
|
|
|
Molly
|
 |
« Reply #18 on: October 19, 2011, 02:07:37 am » |
|
I don't think that you guys have fully understood the problems with setting up a quest journal.
To give a hint, I'll post a list of the questflags I get when I check a couple of our older players, who happen to be on line right now, Tamyrlin and Tor. Each of them have 5-6 pagelengths of different questflags, and the lists keep changing, because the last quest is always on top.
Also notice the varying numbers after some of the flags. It means that there are several different flags that needs to be checked for that quest, for instance we've got several 10 step quests.
Do you feel like setting up a script for all those flags, plus possibly about 50 more, since even oldbies like Tamyrlin haven't done every single quest in the game?
I don't.
I honestly think that even trying would be a waste of time. For a quest journal to work, you probably should have had a totally different - and consistent - system for the quests right from the start, code-run instead of script-run. As it is, every builder has their own system for how the flags are set, and it even changes over the years for the same builder, after they figured out a better way of doing it.
This is another case of 4D being too old and too big to be turned around with a reasonable amount of work.
The lists are too long for the buffer here too, so I'll put them in a separate post.
|
|
|
|
|
Logged
|
|
|
|
|
Molly
|
 |
« Reply #19 on: October 19, 2011, 02:09:49 am » |
|
Here is the examples of questflag lists for Tamyrlin, I'll have to move Tor to a separate post:
Global Variables for Tamyrlin: levitate: 1 eleusis: 3 i11: 1 kito_house_access: 1 countup: 0 fd: 0 fo: 3 fm: 3 gar_anger: 1 stealthmod: 1 special_bonus: 1 damagemod: 1 speedmod: 10 shadowdagger: 1 reformers: 3 grail: 1 amunpriest: 2 hween2009billiardsdone: 1 freepirateslave: 1 portal_exit: 1701 wreaths: 1 freepiratevikingdone: 1 pillage: 10 rapunzel: 1 virgin: 1 spacecadet: 1 mirkheim_heartquest_ask: marielf: 1 unknownpoet: 1 slate: 4 lapith: 2 syme: 1 damiskos: 1 iphinone: 1 disabled: 1 wabeeto: 2 overseer: 1
[ Return to continue, (q)uit, (r)efresh, (b)ack, or page number (1/6) ]
anaphe: 2 anaphehealer: 1 eunuch: 4 anchusa: 1 haremwomen: 8 slunch: 6 lovenbroy: 2 heart1: 1 tombnum: 12 tombcounter: 121 thasoswife: 1 spiros: 3 ka: 1 josua: 5 priest: 1 boba: 1 adia1: 1 i10: 1 i8: 1 done_slunch: 1 i5: 1 i1: 1 heracles: 10 poonbomb: 1 yudore1: 1 esmeralda: 2 changedring: 1 pirateparrotdone: 1 nafula_rescue: 1 darkpit: 1 nimue1: 1 player1: 1 i4: 1 duq8_completed: 1 duq6_completed: 1 angelicblessings: 1 robindagdone: 1 robinhood:
[ Return to continue, (q)uit, (r)efresh, (b)ack, or page number (2/6) ]
1 marion: 2431 isis_complete: 1 teldomash: 1 donegan: 1 666: 1 bullcatcher: 4 greencoat: 1 dragonscale: 1 dopey1: 1 paulonote: 1 ricardo: 1 elena: 1 ricardo1: 1 cristianna: 1 77: 5 66: 1 55: 6 gameshow: 1 gift6: 1 zeddletter: 1 boneplate: 1 doneboxes: 1 kahlan: 1 jack: 1 greenhorne: 1 riddlebook: 1 frenchknight: 1 claire: 1 marquis: 1 bashful1: 1 zera: 1 pris1: 1 quest_academy: 1 mollyremote: 1 viagros: 1 unicorn: 1 bettygolf: 1
[ Return to continue, (q)uit, (r)efresh, (b)ack, or page number (3/6) ]
orsini5: 1 baronkey: 9 azizi_rescue: 1 bamboo_bracelet: 1 bellehelp: 1 midlands_greenglow: 1 kahlan_zedd: 1 kahlan_adie: 1 toff_2: 1 nexits: 0 sexits: 0 eexits: 3 wexits: 9 imunbug1: 1 done_birds_tasks: 1 wear_paint: 1 mulmoki: 1 summerville2: 1 tobias1: 1 percyshelley1_done: 1 jekyll_antidote_done: 1 jekyll_hyde: 1 burkeandhare_corpses: 0 millicent1: 1 amelia_done1: 1 ripper_done: 1 reflection1: 1 reflection: 1 curly: 1 circus_quest: 1 gold001: 1 lowell1: 1 lowell1_rocking: 0 duq9_help: 1 q7_boyscene: 1 q13sketch: 1 duq2_completed: 1 slotcredit:
[ Return to continue, (q)uit, (r)efresh, (b)ack, or page number (4/6) ]
0 elysean: 3 odysseus1: 1 ajax2: 1 personal: 1 hades6: 1 q11killserp: 1 q7nugget: 1 deadred: 1 q11skingiven: 1 duq11_completed: 1 aswan: 4 cache: 1 angelaletter: 1 augias: 4 gicave3: 1 cardinal_absolve: 2 enter_quay: 1 kermapolitics: 1 dundee: 1 meatballa: 1 smithnailpolish: 1 imhotep2: 1 elftoys: 1 i6: 1 botta: 1 harem: 1 lysander: 1 vikingjacktar: 1 frogstatue: 1 midlandsfairyring: 1 liqueur: 1 athosabbot: 1 centaurea: 1 anitabobby: 1 failed_apple_bite: 2 bit_apples: 10 appleexp: 180000
[ Return to continue, (q)uit, (r)efresh, (b)ack, or page number (5/6) ]
apple_count: 49 hween2009soul: hween09: 1 hweendoll2009: 1 hween2009kidsrescued: 1 oriondeath: 1 gojiradeath: 1 golem_num: 1 gtierr: 4 gevolve: 1930 gtier: 4 moria: 1 asking: 1 baby_steal: 3 calydnosspinner: 1 cat_follow: 1 avalon: 7 done_reformers: 1 bridget_spoon: 1
|
|
|
|
|
Logged
|
|
|
|
|
Molly
|
 |
« Reply #20 on: October 19, 2011, 02:10:27 am » |
|
And here are Tor's flags:
------------------------------------------------------------------------------- Global Variables for Tor: warelephant: 1 aswan: 1 kermapolitics: 1 hunterba: 4 skincount: 2 arthur: 6 reformers: 6 hween09: 1 apple_count: 46 hween2009soul: hween2009billiards3: 1 lowell1: 1 millicent1_done: 1 mother1: 1 89: 4 killedabbess: 1 clock1: 1 pirateparrotdone: 1 orsini_yes: 1 orsini1: 1 wreaths: 2 lycon: 3 islands: MollyAndMordecaiRule hades: 5 poked_hook: 1 gorget144: 1 golem_num: 1 sabatons144: 1 rapunzel: 1 orsini2: 1 donegan: 1 curly: 1 shave: 1 josua: 4 streaking: 1 fisherbaby: 1 centaurea: 1
[ Return to continue, (q)uit, (r)efresh, (b)ack, or page number (1/5) ]
piratemap3: 1 bunny_killer: 1 marielf: 1 paulonote: 1 rrbluebells: 1 sheriff_legend2: 1 sheriff_legend1: 1 golfkey: 1 ali_money: 8 pris1: 1 brskn: 1 claire: 1 gar_anger: 1 marquis: 1 greenhorne: 1 jack: 1 arch_apprentice: 1 robbies: 1 hannadone: 1 wolfies: 1 wolf_ear_count: 4 robber_ear_count: 1 joje1: 1 sheriff_drygulch1: 1 quest_academy: 1 hintnum: 69 gordy: 2 traveller2: 1 traveller1: 1 smithnailpolish: 1 zera: 1 gerardquest1: gerardquest2: royal_wolfhunter: 1 55: 1 66: 1 77: 1 earnum:
[ Return to continue, (q)uit, (r)efresh, (b)ack, or page number (2/5) ]
2 player1: 1 mudschooltp: 1 appointment: 1 koboldkills: 23 koboldrep: 961 goblinrep: 967 goblinkills: 13 frenchknight: 1 petstats: goldie 92 79 0 0 7 9 0 1 1 fritztask1: 1 marion: 21034 dragonscale: 1 greencoat: 1 robinhood: 1 robindagdone: 1 40: 1 41: 0 42: 0 43: 1 44: 0 45: 0 adia2: 1 mountain1: 1 bullcatcher: 1 summerville2: 1 summerville1: 1 saberskill1: 1 yodataught: 1 saberskill2: 1 urnc: 1 riddlebook: 1 slotcredit: 0 count: 1 augias: 1 moria: 1 viagros: 1 wabeeto: 1
[ Return to continue, (q)uit, (r)efresh, (b)ack, or page number (3/5) ]
overseer: 1 spiros: 1 calydnosspinner: 1 calydnosweaver: 1 samothrace: 1 damiskos: 1 eunuch: 4 anaphe: 1 chiossultan: 1 syme: 1 frogstatue: 1 liqueur: 1 athosabbot: 1 nimue1: 1 bandana: lowell1_rocking: 0 prisonerbroth: 1 bravo: 9 odysseus1: 1 ajax2: 1 99: 5 gauntlet144: 1 azizi_rescue: 1 asking: 1 book1: 1 baronchest: 2 anne_yes: 1 child_shoes_done: burkeandhare_corpses: 4 lion_house_access: 1 easter_egg: 1 hween2009four: 1 hween2009five: 1 hween2009two: 1 hween2009cue: 1 hween2009one: 1 hween2009billiards2: 1 failed_apple_bite: 14
[ Return to continue, (q)uit, (r)efresh, (b)ack, or page number (4/5) ]
bit_apples: 43 appleexp: 1296000 generalteeth: 1 enter_quay: 1 amunplot: 2
|
|
|
|
|
Logged
|
|
|
|
|
Kvetch
|
 |
« Reply #21 on: October 19, 2011, 09:26:39 pm » |
|
I completely understand the problem with all the questflags, as I stated, I've got lists of my own that look a lot like those. But, if we gave people a journal so they could write down what they know, we wouldn't have to deal with the questflags. At least that's my thought and at least it's some way for them to keep track of things on the game instead of papers that they're constantly losing. Or maybe that's only me.
|
|
|
|
|
Logged
|
|
|
|
|
Molly
|
 |
« Reply #22 on: October 20, 2011, 01:15:24 am » |
|
OK, to be a bit more constructive, here's an idea for how a scripted journal could actually work - at least for the Quests that have a questcard.
Since each Quest would need a unique identity, it would be simplest to just use the number of the Questcard for that. It would take a bit of an effort on the player's side, to find the number of the quest they got stuck on from a long list, but from the player's point of view that would still be relatively easy.
It would however also take a lot of research to ferret out all the correct flags from the various script files and a lot of scripting to set up the scripts, but at least it is doable.
Step 1 We'd make an object called Quest Journal, which the player can get in the Questor's Office. The journal itself would be similar for all players, but it has a number of scripts placed on it to check for the correct questflag of whoever is using it, and provide some guidance based on that.
The command 'look journal' would provide the following info:
This journal contains a list of all the Questcards. First you need to find the number of the quest you are looking for. Since there are over 100 Questcards, the journal has 7 pages, and there are 15 quests on each page. Type 'look Index' to view the Quest numbers on each page. Type 'look #' (for instance 'look 4') to view the Quests on each page. * To find out your status on a certain Quest, you need to first HOLD the Journal. Then you have to SAY the number of the Quest. (for instance type 'SAY 5' to check your status on The Enchanted Frogs).
The command 'look index' would give the following list: INDEX Page 1. Card 1-15 Page 2. Card 16-30 Page 3. Card 31-45 Page 4. Card 46-60 Page 5. Card 61-75 Page 6. Card 76-90 Page 7. Card 91-105
Then 'look 1' would produce the following result: 1. Wanted Poster I 2. Wanted Poster II 3. Cyrene's lover 4. Robber Baron's prisoners 5. The enchanted frogs 6. Thetis' lover 7. The Viking Quarrel 8. The Lady in the Lake 9. Nimue's quest 10. The Tower of Rapunzel 11. The bereaved woman 12. Chief Arapahoola's Snake Elixir 13. The Secret Sword 14. Llano Estacado 15. Exoliath's armor
They would still have to look at the actual questcards to get the detailed info on each Quest.
Step 2.
Now we need to make a script - or several scripts - for the journal, based on the questflags that the quests set on the players.
Many of the easier quests just provide some limited stats item, and don't set any questflag. They are fully repeatable, meaning that you can do them over and over again, without any restrictions at all. And this is also the info you'd get from saying the number of these quests.
However, if they also provide tokens and/or exp, they have a flag check to give a smaller reward after the first time. The script would check for that flag, and dependant on the result you'd get the following info: 'You haven't completed this Quest yet.' or 'You've already done this quest, but you can repeat it for a smaller reward.'
Yet others have a check on the item you get, to stop people who haven't done the quest from using the item. But otherwise they are similar to the former category. You can repeat them to get the item, but any exp and or tokens will be a lot less after the first time, so the message should be similar to the above category.
This gives us the beginning of the script: * if %arg%|= 1 if !%actor.varexists(curly)% %send% %actor% You haven't completed this Quest yet. else %send% %actor% You have already done this Quest, but you can repeat it for a smaller reward. endif elseif %arg%|= 2 if !%actor.varexists(donegan)% %send% %actor% You haven't completed this Quest yet. else %send% %actor% You have already done this Quest, but you can repeat it for a smaller reward. endif elseif (%arg%|= 3) || (%arg%|= 5) || (%arg%|= 6) || (%arg%|= 7)|| (%arg%|= 8 ) %send% %actor% You can do this Quest as many times as you like. etc. etc.
* Then we get to the first problem: Some of the Questcards have more than one Quest on them. That is the case with for instance 5. The enchanted frogs and 14. Llano Estacado. (Llano even has 6 different quests, but 3 of them, 'The legend of the deamon' and the two 'Wanted Posters' have their own questcards).
Anyhow, this problem could be handled by adding subheadings for each Quest on the Questbook, (and possibly also on the actual Questcard, which means additional build work). So the entry for Card 14 in the Questbook would then look like this:
14. Llano Estacado - 14A The dying man - 14B The lost medicine pouch - 14C Jeff and Joe
In this case you'd need to say 14A to get info on that first quest.
Also the script on the journal will obviously be very long, which means that we have to work either with function scripts, or make several different journals, possibly both.
But then we come to the real problem; The multi-step quests. Usually, but not always, these use the same flags throughout the quest.
Let's take Quest 103 'Rebellion against Arthur' as an example. It is a multi step quest that you initiate by talking to the Captain of the Guards. This sets the flag rebellion, which then will increase or decrease dependant on which mobs you talk to. Dependent on the number on the flag, the mobs will also give different responses.
When the rebellion number reaches 10 it is replaced by the flag reformers, which in turn increases one step for each task you perform.
When the reformers flag reaches 8, you are presented a choice to help either the Rebels or the Captain, by giving an item to either of them. Choosing the Captain sets the flag reformers 9, while choosing the Rebels sets reformers 10, and in each case you get one last task to perform.
When the last task is done, reformers flag is replaced by the flag done_reformers, which allows you to redo the quest for a smaller reward.
So here is what the script for this single quest would have to look like:
if %arg%|=103 if %actor.varexists(done_reformers)% %send% %actor% You have already completed this quest, but you can repeat it for a smaller reward. endif if %actor.varexists(rebellion)% %send% %actor% You need to talk to more more people to collect more info about the rebellion. endif if %actor.varexists(reformers)% if %actor.reformers% == 1 %send% %actor% You should go and talk to the Silk Merchant about an assignment. elseif %actor.reformers% == 2 %send% %actor% The Silk Merchant is expecting you to deliver an item to incriminate Morgan le Fay. elseif %actor.reformers% == 3 %send% %actor% The Silk Merchant is expecting you to bring Nicolo Orsini to him. %send% %actor% If you've lost the letter, talk to the merchant who'll give you a new one. * and so on, until we get to reformers 10 endif endif endif
And this is just one of a large number of multi-step quests...
One more thing:
Quite often the questflags of a complex Quest get messed up beyond all help. This is sometimes caused by buggy scripts, but more often by players trying to take shortcuts. Another common reason is forgetting where they were in the quest, and starting it from scratch again, which then results in double flags, that make the questmobs refuse to interact with them.
Usually the only feasible way to fix this is to just remove all the flags for that particular quest from the player file. It means they have to start all over from the beginning again, but that's usually not a big problem.
However, rather than having to ask an imm to assist with this - (which is also frustrating for the imm, who has to sift through several pages of flags to find the right one) - we could make the script do it. The command would be 'reset #', (for instance 'reset 103'), which would make the script check for all but the end flag and then remove them. Using the Rebellion against Arthur example, the script would be like this:
if (%speech.contains(reset)% && %speech.contains(103)% if %actor.varexists(rebellion)% rdelete rebellion %actor.id% endif if %actor.varexists(reformers)% rdelete reformers %actor.id% endif endif
|
|
|
|
|
Logged
|
|
|
|
|
Kvetch
|
 |
« Reply #23 on: December 28, 2011, 12:57:41 pm » |
|
A new trigger!! Let's shake that magical eightball. Yeah, I stole it from The Builder's Academy, but Rumble makes such neat triggers. This one is very well documented on what it does and how, I just thought it had to be here.
Name: 'Obj Command Magic Eight Ball - O47', VNum: [ 6], RNum: [ 6] Trigger Intended Assignment: Objects Trigger Type: Command , Numeric Arg: 2, Arg list: shake Commands: * By Rumble of The Builder Academy tbamud.com 9091 * Numeric Arg: 2 means in character's carried inventory. * Command trigs do not work for level 33 and above. * There are 20 possible answers that the Magic Eight Ball can give. * Of these, nine are full positive, two are full negative, one is * mostly positive, three are mostly negative, and five are abstentions. * * Check arguments if they match. /= checks abbreviations. if ball /= %arg% || eightball /= %arg% * Echo text to everyone else in the room and the actor. %echoaround% %actor% %actor.name% shakes %self.shortdesc% vigorously. %send% %actor% You shake %self.shortdesc% vigorously. * Use a switch to choose a random response (1-20). switch %random.20% * Send the answer! %self% is the 8ball, or whatever the trig is attached to. * Only the actor sees the answer. * Case is what we are trying to match. Does %random.20% == 1? case 1 %send% %actor% %self.shortdesc% reveals the answer: Outlook Good * We are done with this case so check the next one. break case 2 %send% %actor% %self.shortdesc% reveals the answer: Outlook Not So Good break case 3 %send% %actor% %self.shortdesc% reveals the answer: My Reply Is No break case 4 %send% %actor% %self.shortdesc% reveals the answer: Don't Count On It break case 5 %send% %actor% %self.shortdesc% reveals the answer: You May Rely On It break case 6 %send% %actor% %self.shortdesc% reveals the answer: Ask Again Later break case 7 %send% %actor% %self.shortdesc% reveals the answer: Most Likely break case 8 %send% %actor% %self.shortdesc% reveals the answer: Cannot Predict Now break case 9 %send% %actor% %self.shortdesc% reveals the answer: Yes break case 10 %send% %actor% %self.shortdesc% reveals the answer: Yes, definitely break case 11 %send% %actor% %self.shortdesc% reveals the answer: Better Not Tell You Now break case 12 %send% %actor% %self.shortdesc% reveals the answer: It Is Certain break case 13 %send% %actor% %self.shortdesc% reveals the answer: Very Doubtful break case 14 %send% %actor% %self.shortdesc% reveals the answer: It Is Decidedly So break case 15 %send% %actor% %self.shortdesc% reveals the answer: Concentrate And Ask Again break case 16 %send% %actor% %self.shortdesc% reveals the answer: Signs Point To Yes break case 17 %send% %actor% %self.shortdesc% reveals the answer: My Sources Say No break case 18 %send% %actor% %self.shortdesc% reveals the answer: Without A Doubt break case 19 %send% %actor% %self.shortdesc% reveals the answer: Reply Hazy, Try Again break case 20 %send% %actor% %self.shortdesc% reveals the answer: As I See It, Yes break * Every switch should have a default. A catch-all if the cases do not match. default %send% %actor% %self.shortdesc% explodes since your question is unanswerable. break * Every switch must have a done! Just like every if needs an end! done * The actor didn't use the command shake with arg ball or eightball. else * Return 0 allows the command to continue through to the MUD. The player will * get the Huh!?! response or the shake social if you have one. return 0 end
|
|
|
|
|
Logged
|
|
|
|
|