@create #18181 named DK's Misc RPG Utils:DK's Misc RPG Utils "#54585.("usage") => E_PERM (Permission denied) ;;#54585.("notify_add") = 1 ;;#54585.("notify_remove") = 1 ;;#54585.("users") = {#78041, #91224, #97613, #92475, #102292, #59447, #88395, #80578, #87516, #94456, #98232, #98263, #103920, #85077, #93228, #94965, #90731, #96925, #87010, #91345, #104762, #89208, #101651, #91812, #57475, #92386, #81133, #105066, #58806, #56054, #103966, #106308, #101504, #90441, #104202, #106469, #106488, #63625, #100314, #105159, #58091, #38441, #103158, #100806, #90323, #108054, #71111, #103911, #85431, #60189, #108850, #103615, #107629, #103523, #99827, #106938, #109408, #108431, #108147, #109723, #109263, #108214, #110215, #86275, #105941, #107509, #110660, #63546, #107730, #71781, #97084, #89391, #108294, #69513, #99949, #2693, #77500, #84567, #112066, #110044, #110280, #66257, #88076, #62713, #110565, #91098, #112369, #112743, #107682, #112968, #38341, #112823, #110199, #72264, #113549, #113588, #98325, #59254, #113803, #113862, #106541, #113686, #113391, #109107, #81934, #113937, #87951, #113956, #113841, #89395, #88456, #106189, #106273, #103703, #114702, #113418, #114808, #114019, #112478, #103689, #110805, #105473, #115124, #114874, #98705, #114652, #91113, #114928, #115342, #115397, #112190, #107985, #97170, #114241, #115581, #107610, #109506, #107413, #100337, #110077, #107807, #87340, #64729, #115432, #80422, #106487, #114859, #116082, #116031, #116200, #112837, #116339, #116385, #37972, #64985, #87593, #116358, #57658, #116369, #107998, #91798, #115359, #107189, #110586, #116694, #116729, #116473, #113285, #114518, #89480, #115937, #115200, #115922, #114382, #117048, #117236, #117139, #117275, #117283, #112527, #109546, #117381, #112886, #117470, #116305, #117004, #112651, #117552, #116569, #117649, #109271, #43860, #98580, #116883, #117837, #114430, #100173, #97612, #63635, #106587, #118143, #117486, #50367, #114206, #92476, #118332, #110527, #90723, #115936, #106934, #116875, #101594, #118526, #118248, #108263, #114233, #35076, #117766, #118487, #118672, #118864, #118890, #107704, #118654, #117345, #118973, #112649, #102967, #118740, #118948, #117038, #114413, #59424, #96778, #119177, #118916, #86050, #116907, #103685, #118018, #119424, #118153, #119429, #115857, #109615, #119469, #116376, #112473, #86197, #119530, #115729, #96788, #110787, #115366, #116485, #112971, #118985, #115390, #87760, #119257, #119884, #19845, #111987, #119940, #86471, #107618, #119701, #119492, #114174, #118360, #115834, #112631, #119594, #120144, #120227, #102396, #118730, #118861, #120260, #120239, #97558, #119958, #120283, #119957, #119899, #117100, #120420, #118824, #120376, #119554, #120546, #109288, #105326, #120070, #120749, #119906, #105408, #57402, #120791, #111890, #114670, #121077, #120997, #121070, #121149, #114701, #121188, #121241, #102427, #121383, #121164, #121332, #114539, #121456, #113754, #121464, #116601, #121095, #120804, #121358, #121648, #121651, #87625, #118474, #121758, #121865, #109911, #121895, #106468, #121816, #121976, #121918, #121965, #121852, #115805, #118352, #122047, #121386, #114072, #121143, #120045, #122104, #122359, #119265, #122354, #122379, #106854, #122410, #110582, #122428, #122423, #122453, #122491, #100752, #121946, #122525, #122600, #122601, #50290, #122460, #110777, #122614, #122644} ;;#54585.("users_last_updated") = 1136238712 ;;#54585.("help_msg") = {" These are various verbs that I had on my character, but decided", "that perhaps someone else might find them interesting as well...", "", " {Last edit : 11/16/97}"} ;;#54585.("feature_verbs") = {"waif", "bup", "storms", "slip", "dm", "bal", "lda"} ;;#54585.("guest_ok") = 1 "#54585.("key") => E_PERM (Permission denied) ;;#54585.("aliases") = {"DK's Misc RPG Utils"} ;;#54585.("description") = {" Various RPG verbs that I find useful."} ;;#54585.("object_size") = {16772, 1141286755} @verb #54585:"slip" any none none rxd @program #54585:slip " SLIP - Displays the last update / next update time of your parchment."; "Also shows how many hours until your parchment expires."; this:update_usage(verb, player); player:tell("That information has been classified by the Bovine Illuminati."); return; if ((!dobjstr) || (!dobj)) if ($command_utils:object_match_failed(slip = $string_utils:match("slip", $object_utils:all_contents(player), "aliases"), "slip")) return player:tell("You don't seem to have a slip, please purchase one from Cog."); endif endif sec = time() - slip.last_update_time; expire = ((slip.decay_time - (time() - slip.init_time)) / 60) / 60; player:tell("Last parchment update : ", sec / 60, " minutes ago."); if (sec > slip.update_interval) player:tell("Reading your parchment will now update your stats."); else player:tell("Next parchment update : ", 180 - (sec / 60), " minutes."); endif player:tell(); if ((time() - slip.init_time) < slip.decay_time) player:tell("Parchment will expire in ", expire, " hours."); else player:tell("Your parchment has expired. Time to buy a new one..."); endif . @verb #54585:"bup" any none none rxd @program #54585:bup " BUP - Battle update. Fighting three monsters at a time and finding"; "yourself doing MS quite often? Well hey, let this handy verb"; " save you the hassle! Just type BUP and it will list your present"; "opponents and their health, along with your present health status."; this:update_usage(verb, player); agg_num = 0; if ((aggressors = #27326:combatants(player)) != {}) player:tell(); (rpg = $local.rpg):look_health(player); for si in (aggressors) agg_num = agg_num + 1; player:tell(); player:tell("Combatant #", agg_num, " : ", si.name); if ($object_utils:has_verb(si, "look_health")) si:look_health(); else rpg:look_health(si); endif endfor player:tell("-- bup fini --"); else player:tell("You have no opponents at the present time."); endif . @verb #54585:"storms" any any any rxd @program #54585:storms " STORMS - Lists all storms presently up system-wide. Displays the"; "casters name, location, and, numerically, the strength and maximum"; "number of strokes the storm is capable of."; this:update_usage(verb, player); player:tell(); player:tell("That information has been classified by the Bovine Illuminati."); return; if (this.mn[3].storms != {}) player:tell_lines($string_utils:columnize({"Name", "Location", "Quality", "Strikes"}, 4)); player:tell_lines($string_utils:columnize({"----", "--------", "-------", "-------"}, 4)); for si in (this.mn[3].storms) loc = si[2].location; player:tell_lines($string_utils:columnize({si[2].name, loc.name, si[4], si[3]}, 4)); endfor player:tell("- - -"); else player:tell("There are currently no storms active."); endif . "#54585:4 --- Permission denied"; @verb #54585:"dm" none none none rxd @program #54585:dm " DM - Dead monsters. Lists all monsters that are presently dead and"; "who killed them, if known. Also lists time in minutes until monster is"; "resurrected."; this:update_usage(verb, player); if (this.mn[4].contents != {}) rq = #1140.resurrection_queue; player:tell_lines($string_utils:columnize({"Monster", "Killed by", "Resurrect Time"}, 3)); player:tell_lines($string_utils:columnize({"-------", "---------", "--------------"}, 3)); for si in (this.mn[4].contents) if (valid($local.rpg:get_doll(si)) && (!$object_utils:isa(si, #517))) if ($object_utils:isa(si, #56354) || $object_utils:isa(si, #8666)) killer = "Unknown"; elseif ($object_utils:has_property(si, "last_attacker")) attacker = si.last_attacker; killer = attacker.name; else killer = "Unknown"; endif if ($list_utils:assoc(si, rq) == {}) sec = "---"; else rt = $list_utils:assoc(si, rq)[2]; sec = (si.gestate - (time() - rt)) / 60; endif player:tell_lines($string_utils:columnize({si.name, killer, sec}, 3)); $command_utils:suspend_if_needed(0); endif endfor else player:tell("No monsters are dead monsters..."); endif . "#54585:6 --- Permission denied"; @verb #54585:"waif" any none any rxd @program #54585:waif " WAIF - That battleaxe of yours just about to disintegrate"; "and you don't remember which monster you killed to get it? Have no"; "fear... Just type 'waif battleaxe' and you'll see. is any"; "rpg item in your inventory - that includes armor, weapons, and special"; "items. You can specify the name of the object or the object number."; this:update_usage(verb, player); item = dobj; if ($command_utils:object_match_failed(item, argstr)) return; endif item_parent = parent(item); item_tree = children(item_parent); player:tell(); player:tell("Report of monsters carrying similar items: "); player:tell(); player:tell_lines($string_utils:columnize({"Monster Name", "Monster Number", "Monster Location", "Location Number"}, 4)); player:tell_lines($string_utils:columnize({"------------", "--------------", "----------------", "---------------"}, 4)); for item_number in (item_tree) $command_utils:suspend_if_needed(5); if (((valid(item_number.location) && valid(item_number.location.location)) && #46:is_monster(item_number.location)) && (!$object_utils:isa(item_number, #8185))) item_holder = item_number.location; item_location = item_holder.location; player:tell_lines($string_utils:columnize({item_holder.name, item_holder, item_location.name, item_location}, 4)); endif endfor player:tell("--waif finished--"); . "#54585:8 --- Permission denied"; @verb #54585:"bup_old" any none none rxd @program #54585:bup_old " BUP - Battle update. Fighting three monsters at a time and finding"; "yourself doing MS quite often? Well hey, let this handy verb"; "save you the hassle! Just type BUP and it will list your present"; "opponents and their health, along with your present health status."; this:update_usage(verb, player); agg_num = 0; if (this.mn[2]:combatants(player) != {}) player:tell(); this.mn[1]:look_health(player); for si in (this.mn[2]:combatants(player)) agg_num = agg_num + 1; player:tell(); player:tell("Combatant #", agg_num, " : ", si.name); this.mn[1]:look_health(si); endfor player:tell("-- bup fini --"); else player:tell("You have no opponents at the present time."); endif . @verb #54585:"bal" none none none rxd @program #54585:bal " BAL - Lists current balance stored with Cog. Shows copper, silver and gold."; this:update_usage(verb, player); balance = #5104:get_balance(player); player:tell("Current balance stored in Cog, with currency conversion:"); player:tell(" ", "Copper:", balance, " Silver:", balance / 10, " Gold:", balance / 100); . "#54585:11 --- Permission denied"; @verb #54585:"lda" none none none rxd @program #54585:lda " LDA - Last Doll Activity. Crude and unscientific method to determine when"; "the last activity occured on your RPG doll. Helpful to know when you have"; "been away from the RPG and are concerned about your doll being reaped."; this:update_usage(verb, player); doll = this.mn[1]:get_doll(player); if (!valid(doll)) return player:tell("Sorry, you're beyond saving..."); endif minutes_elapsed = (time() - doll.last_action) / 60; hours_elapsed = minutes_elapsed / 60; days_elapsed = hours_elapsed / 24; reap_time = 90 - days_elapsed; player:tell(); player:tell("Time elapsed since last activity : ", days_elapsed, " days. ", "(", hours_elapsed, " hours / ", minutes_elapsed, " minutes)"); player:tell("Estimated days to reaping : ", reap_time); player:tell(); . @verb #54585:"@im" any none none rxd @program #54585:@im this:update_usage(verb, player); item = dobj; if ($command_utils:object_match_failed(item, argstr)) return; endif item_made = item.manufactured; item_age = (((time() - item_made) / 60) / 60) / 24; player:tell(); player:tell("Your ", item.name, " was made approximately ", item_age, " days ago."); player:tell(); . "***finished***