GameCheck FO #317

Parent #68Owner #361Flags readSource hellcore/hellcore.db

Aliases: GameCheck FO, gcfo

67 verbs · 70 properties · 0 children

Verbs

VerbSpecFlagsDefinerLines
@countweaponsnone none nonerxd#31755
allitemsthis none thisrxd#31743
typeofthis none thisrxd#31710
totalvaluethis none thisrxd#31716
calc_topvaluethis none thisrxd#31738
@topvaluenone none nonerxd#31737
extypeofthis none thisrxd#31713
@whohas @whohas+any none nonerxd#317175
@allitems @allitems+any none nonerxd#317116
@countarmor @countclothingnone none nonerxd#31759
_ofindthis none thisrxd#31762
networththis none thisrxd#3178
@monstersany none nonerxd#31786
@sizeupany with/using anyrxd#31723
@positionsnone none nonerxd#31725
allstockthis none thisrxd#31710
@monsters-xpany none nonerxd#31746
@monsters-newany none nonerxd#31757
@checklootnone none nonerxd#31718
@spyany none nonerxd#31758
quickbarthis none thisrxd#31742
@aspyany none nonerxd#31754
@rspyany none nonerxd#31758
@uspynone none nonerxd#31748
@fuckupany any anyrxd#3172
@pathtoany none nonerxd#31755
ascendnone none nonerxd#3178
@networthany none nonerxd#31715
update_fertilethis none thisrxd#31719
faster_matchthis none thisrxd#3170
match_for_spawnthis none thisrxd#31737
monster_for_spawnthis none thisrxd#31737
update_monstersthis none thisrxd#3175
match_for_ofindthis none thisrxd#31730
@ofindany any anyrxd#31718
@ofind+ @ofind-all @ofind-all+any out of/from inside/from anyrxd#31732
match_for_ofindthis none thisrxd#3170
_add_sourcethis none thisrxd#3176
update_sourcesthis none thisrxd#317151
@globstatusnone none nonerxd#31710
u2this none thisrxd#31712
@actor-checknone none nonerxd#31718
child_countsthis none thisrxd#31745
_bigtreethis none thisrxd#31733
@bigtreeany none nonerxd#31720
@myany none nonerxd#31732
@checkspeciesquestsnone none nonerxd#31719
@findunsecureobjectsnone none nonerxd#31716
@what-is-auto-cleaningnone none nonerxd#3176
do_scopethis none thisrxd#317106
tell_for_exthis none thisrxd#317120
tostr_for_exthis none thisrxd#31741
@addexany any anyrxd#31798
dongsnone none nonerxd#3171
@scope @scope+any any anyrxd#31721
_wwwthis none thisrxd#31722
@compareany any anyrxd#317185
@shopgrepany none nonerxd#31717
@dropgrepany none nonerxd#31717
@topitemsnone none nonerxd#31716
game_ownerthis none thisrxd#31733
calc_topitemsthis none thisrxd#31727
calc_topitemsthis none thisrxd#3170
@topvaluesnone none nonerxd#31717
@itemreportany none nonerxd#31733
@ff @fff @f3 @ffffany any anyrxd#31734
@nugrepany any anyrxd#31717

Properties

PropertyDefinerFlagsOwnerValue
types#317rc#361
list of 80{{#8, "oldcntnr"}, {#74, "FO"}, {#107, "weapon"}, {#306, "clothing"}, {#331, "device"}, {#659, "treasure"}, {#729, "lock"}, {#836, "wpnmod"}, {#868, "smokable"}, {#877, "drugs"}, {#880, "dispenser"}, {#931, "container"}, {#1447, "note"}, {#974, "fluid"}, {#1834, "cyberdeck"}, {#1831, "implant"}, {#1829, "interface"}, {#1573, "grenade"}, {#1404, "schematic"}, {#1570, "food"}, {#2150, "skin"}, {#3216, "bigweapon"}, {#2961, "radio"}, {#3558, "vend"}, {#2853, "handtool"}, {#3776, "statue"}, {#5053, "disc"}, {#2044, "recipe"}, {#5144, "workbench"}, {#5344, "language"}, {#1655, "powerplant"}, {#2521, "powered"}, {#5749, "switch"}, {#9402, "homecam"}, {#3092, "security"}, {#8988, "camera"}, {#8511, "networked"}, {#1965, "disk"}, {#10895, "exitblock"}, {#3973, "matrix"}, {#5232, "doormod"}, {#13434, "sextoy"}, {#1747, "sextoken"}, {#13394, "rug"}, {#35829, "ghosttrap"}, {#35897, "illuminatr"}, {#31031, "transcvr"}, {#3, "room"}, {#7, "oldexit"}, {#1, "other"}, {#543, "exit"}, {#288, "ammo"}, {#153, "key"}, {#835, "medical"}, {#804, "injector"}, {#5714, "chemicals"}, {#672, "documents"}, {#8243, "scrap"}, {#665, "parts"}, {#664, "kitsch"}, {#24952, "quest"}, {#109, "creature"}, {#103734, "flyermod"}, {#720, "wristpad"}, {#194090, "rumor"}, {#41553, "biz"}, {#974, "fluid"}, {#836, "weaponmod"}, {#17808, "rifle"}, {#533, "messageset"}, {#103, "action"}, {#74, "FO"}, {#267, "damagetype"}, {#804, "injector"}, {#6184, "sodacan"}, {#6, "player"}, {#138, "NPC"}, {#706, "monster"}, {#3477, "decal"}, {#2173, "shop"}}
last_topvalue_time#317rc#3611311676524
topvalue#317rc#361
list of 10{{#633570, 6759523}, {#617497, 5013956}, {#618343, 4785458}, {#663888, 4371709}, {#674454, 3474236}, {#661222, 3099974}, {#631356, 3068770}, {#674407, 2841140}, {#519030, 2399425}, {#674594, 2200932}}
gnp#317rc#36184329665
gnp_per#317rc#361330704
zeros#317rc#361{#631478, #675019}
allvalues#317rc#361
list of 255{106890, 85649, 66865, 67834, 106121, 114956, 51205, 428104, 26768, 914, 197037, 114407, 4665, 6260, 46834, 136779, 137051, 23483, 1080, 26830, 2829, 391075, 20602, 17964, 314, 2422, 82, 62377, 1219, 83973, 106226, 3175, 28256, 2399425, 1668701, 214784, 788304, 60367, 630, 698, 28414, 56885, 15183, 697336, 91428, 2465, 228238, 236, 5013956, 886871, 3033, 4785458, 5536, 11082, 3247, 5246, 19918, 54912, 835845, 878241, 54276, 33124, 1009, 2119940, 1023214, 16350, 271182, 10884, 8372, 33491, 748013, 61371, 13735, 188710, 705741, 96923, 1704828, 3068770, 400, 0, 82492, 1638585, 440540, 6, 444360, 24932, 771838, 16574, 6759523, 40391, 3099974, 1692581, 147303, 1587577, 339862, 282189, 45345, 15010, 83576, 3272, 4428, 124477, 4351, 747567, 69514, 18054, 59717, 4371709, 5114, 352719, 3150, 94, 393870, 1083, 16718, 106497, 2841140, 3474236, 459, 1523959, 107674, 107778, 1088823, 143172, 780480, 232030, 2200932, 163629, 122665, 2415, 25900, 38388, 26783, 3610, 97023, 8653, 765, 46108, 697394, 570, 50549, 34374, 1146, 4412, 110661, 26684, 793060, 8472, 9373, 3672, 397, 3792, 600250, 109, 23566, 44987, 51962, 639, 1446697, 1955947, 100586, 212278, 5, 22656, 34688, 7100, 76499, 34162, 6100, 112716, 1384, 81, 230, 28110, 31021, 845288, 34090, 18433, 5252, 37080, 84351, 69529, 1865274, 33895, 25912, 41033, 76733, 9151, 106054, 34549, 1212028, 23369, 92234, 8249, 120204, 66178, 10473, 83544, 25596, 50443, 73614, 0, 725927, 11759, 29960, 4210, 139317, 3115, 1178, 50179, 199732, 18060, 6847, 22809, 5296, 801041, 124828, 48401, 639316, 550, 37324, 105229, 46798, 22551, 23598, 42158, 86371, 2306, 14154, 18275, 17000, 31944, 4357, 33602, 23735, 48780, 28384, 5528, 33917, 11228, 1782, 426404, 1632, 38937, 4583, 5054, 276965, 78, 41, 33665, 12488, 222874, 7665, 15938, 4278}
anyport#317rc#361#41261
health_red#317rc#3610.1
health_yellow#317rc#3610.33
regions#317rc#361{#140391, #20358, #16788, #136537, #144869, #149962}
depositbox#317rc#361#116093
special_exemptions#317rc#361{#143513}
all_fertile#317rc#361
list of 141{#1, #2, #3, #5, #6, #8, #9, #24, #25, #30, #33, #37, #43, #50, #54, #55, #62, #67, #68, #72, #83, #84, #89, #92, #93, #95, #96, #101, #102, #103, #104, #106, #107, #110, #111, #114, #115, #118, #119, #121, #123, #124, #125, #126, #127, #128, #129, #130, #132, #133, #134, #135, #136, #137, #138, #140, #141, #142, #143, #144, #145, #146, #147, #148, #150, #151, #152, #153, #154, #155, #156, #158, #160, #162, #165, #166, #167, #172, #173, #174, #176, #179, #181, #187, #188, #189, #195, #196, #198, #200, #201, #202, #203, #204, #209, #210, #213, #215, #216, #218, #223, #225, #226, #231, #238, #239, #240, #241, #245, #248, #255, #256, #257, #258, #259, #265, #267, #269, #273, #293, #305, #306, #307, #308, #321, #327, #329, #331, #332, #333, #334, #335, #338, #340, #341, #342, #347, #349, #352, #353, #358}
all_monsters#317rc#361
list of 201{#706, #251044, #294658, #1135, #1444, #1979, #1941, #37540, #19925, #15397, #269326, #3900, #4298, #3012, #5102, #3375, #3290, #2028, #39564, #4470, #4510, #10950, #26624, #5101, #10712, #16222, #284493, #5738, #6067, #40585, #40561, #113086, #5773, #6591, #8059, #31042, #6714, #9830, #6745, #9780, #10827, #37382, #8700, #2008, #41295, #89974, #9798, #5832, #43874, #9903, #29467, #5600, #39308, #10102, #1916, #9890, #36950, #12805, #19375, #3046, #19150, #35821, #40737, #22682, #37414, #39834, #44692, #15178, #31657, #16409, #25607, #94869, #37553, #19886, #43375, #10989, #750, #10450, #33615, #33618, #37723, #29479, #16443, #23087, #913, #2277, #2333, #27125, #42947, #10809, #12532, #41987, #9343, #27558, #19019, #67964, #61078, #21896, #28589, #93093, #94311, #65262, #119930, #127287, #138534, #54125, #77692, #77182, #37084, #13270, #923, #3758, #29716, #13093, #19849, #40890, #39792, #15454, #13440, #9634, #23275, #35268, #35349, #38950, #38039, #16992, #38395, #39603, #123923, #17667, #25532, #11212, #15699, #42568, #27535, #31501, #40825, #43707, #27105, #10748, #68994, #53038, #59290, #49991, #96039, #58389, #104673, #75817, #8286, #74065, #81949, #110033, #172522, #98111, #128013, #245983, #130677, #26991, #134816, #88518, #25441, #59297, #17585, #72634, #136003, #98870, #48357, #149827, #104640, #80593, #62045, #44236, #61822, #97549, #9147, #117476, #118391, #46429, #73078, #98957, #296115, #61276, #105494, #107509, #93915, #93563, #83535, #196788, #198193, #55372, #98073, #98311, #237784, #159865, #255980, #119158, #218131, #224871, #189800, #96766, #90096}
item_sources#317rc#361
list of 322{{#6571, {#4041, #4041, #4298, #36550, #296691, #297389, #296681, #293934, #294110, #4041, #4298, #51529, #6724, #297326, #289985, #130917, #229399}}, {#251869, {#8010, #8010, #8010}}, {#131, {#37297, #37297, #37297}}, {#277168, {#39414, #39414, #39414}}, {#16811, {#36695, #36695, #10017, #36695, #10017}}, {#20123, {#47180, #47180, #47180}}, {#36105, {#68005, #68005, #68005}}, {#62480, {#153824, #153824, #153824}}, {{#207080, #50151, #55183, #149353, #149353}, {#57316, #57316, #11114, #57356, #57502, #57545, #60867, #17532, #57316, #11114, #17532, #57356, #57502, #57545, #60867}}, {#79829, {#152902, #152902, #263968, #202473, #152902, #263968, #202473}}, {#114377, {#152902, #152902, #152902}}, {#263758, {#106323, #106323, #158670, #23340, #106323, #158670, #23340}}, {#1718, {#106323, #106323, #158670, #106323, #158670}}, {#6712, {#106323, #106323, #106323}}, {#4280, {#158670, #158670}}, {#1277, {#158670, #158670}}, {#179010, {#291425, #248612, #154613, #211381, #291425, #154613, #211381, #248612}}, {#2265, {#291425, #248612, #154613, #211381, #3099, #291425, #154613, #211381, #248612, #3099}}, {#5909, {#291425, #248612, #154613, #211381, #5183, #6082, #8302, #39984, #30765, #291425, #154613, #211381, #248612}}, {#862, {#9890, #292847, #294535, #285398, #25869, #296702, #6344, #248451, #87546, #289564, #36950, #40494, #268159, #297167, #297197, #15038, #9890, #36950, #40494, #268159, #159575, #296876, #208316, #13134, #83472, #9775, #118773, #109174, #16859, #177561, #158540, #99942, #294022, #292245}}, {#12396, {#12151, #12151}}, {#1839, {#3046, #3942, #7383, #3046, #3942}}, {#12797, {#3046, #1773, #7781, #10773, #13144, #11593, #29832, #3046, #1773, #7781, #10773, #11593, #13144, #29832}}, {#12100, {#11792, #11792}}, {#24619, {#31015, #31015}}, {#5742, {#13440, #86968, #13440, #139556, #254935}}, {#44856, {#38353, #38353}}, {#35837, {#36009, #36009}}, {#5806, {#25747, #23087, #201801, #294798, #292333, #194057, #293085, #79331, #201161, #97585, #168560, #87222, #25747, #23087, #282889, #295517, #230209}}, {#6143, {#25747, #25747, #23087, #23087, #201801, #201801, #294798, #294798, #292333, #292333, #194057, #194057, #293085, #293085, #79331, #79331, #201161, #201161, #97585, #97585, #168560, #168560, #87222, #87222, #25747, #25747, #23087, #23087, #282889, #282889, #295517, #295517, #230209, #230209}}, {#59003, {#75817, #66452, #39386, #89078, #235918, #75817, #39386, #66452, #89078, #235918}}, {#31445, {#103176, #22626, #103176}}, {#140922, {#21874, #21874}}, {#819, {#6157, #35792, #6157, #35792}}, {#253392, {#65075, #65075}}, {#4967, {#4785, #6107, #4793, #7383, #4785, #4793, #6107}}, {#1676, {#4785, #6107, #4793, #4785, #4793, #6107}}, {#4780, {#4785, #6107, #4793, #4785, #4793, #6107}}, {#4711, {#4785, #119930, #74065, #110033, #172522, #644, #6107, #4793, #127287, #138534, #70589, #114826, #173785, #119553, #99837, #260298, #210579, #113136, #15999, #99105, #268869, #47679, #271579, #102130, #249832, #91879, #181816, #188183, #243074, #189192, #282290, #22871, #269656, #173217, #261410, #240211, #16472, #4785, #74065, #110033, #172522, #119930, #644, #4793, #6107, #70589, #114826, #173785, #127287, #138534, #99837, #119553, #15999, #16472, #22871, #47679, #91879, #99105, #102130, #113136, #173217, #181816, #188183, #189192, #210579, #240211, #243074, #249832, #260298, #261410, #268869, #269656, #271579, #282290}}, {#1689, {#4785, #119930, #6107, #4793, #127287, #138534, #260298, #210579, #113136, #15999, #99105, #268869, #47679, #271579, #102130, #249832, #91879, #181816, #188183, #243074, #189192, #282290, #22871, #269656, #173217, #261410, #240211, #16472, #4785, #119930, #4793, #6107, #127287, #138534, #15999, #16472, #22871, #47679, #91879, #99105, #102130, #113136, #173217, #181816, #188183, #189192, #210579, #240211, #243074, #249832, #260298, #261410, #268869, #269656, #271579, #282290}}, {#1621, {#4785, #6107, #4793, #10723, #34041, #4785, #4793, #6107}}, {#2012, {#21986, #21986}}, {#1878, {#21986, #21986, #21986, #12839, #21986, #21986, #21986}}, {#6973, {#39594, #39594}}, {#8237, {#39594, #39594}}, {#7832, {#39594, #39594}}, {#2958, {#39594, #39594}}, {#8256, {#39594, #172522, #173785, #39594, #172522, #173785}}, {#8778, {#39594, #39594}}, {#770, {#36168, #187805, #76132, #16443, #111954, #253683, #256714, #236117, #244201, #36168, #76132, #187805, #16443, #111954, #236117, #244201, #253683, #256714}}, {#2027, {#239333, #239333}}, {#2269, {#239333, #239333, #5183, #6082, #8302, #39984, #30765, #239333, #239333}}, {#90772, {#239333, #239333}}, {#238692, {#239333, #187805, #239333, #187805}}, {#21594, {#3263, #3263}}, {#30031, {#3263, #3263}}, {#18146, {#1773, #1773}}, {#13535, {#7781, #7781}}, {#20248, {#10773, #10773}}, {#42211, {#13144, #13144}}, {#23916, {#11593, #11593}}, {#38057, {#29832, #110033, #172522, #114826, #173785, #29832, #110033, #172522, #114826, #173785}}, {#28677, {#15178, #21062, #21065, #21063, #15178, #21062, #21063, #21065}}, {#5578, {#6316, #6316}}, {#6414, {#6316, #6316}}, {#2730, {#6316, #14991, #29734, #6316, #14991, #29734}}, {#35843, {#6316, #6316}}, {#59461, {#94869, #165463, #265584, #250682, #278379, #297323, #94869, #290234, #290137, #292230, #132581, #293688}}, {#21224, {#37460, #37460}}, {#7732, {#37460, #37460}}, {#1628, {#37460, #37460}}, {#1604, {#37460, #37460}}, {#1904, {#37460, #2472, #68364, #90421, #37460, #2472, #68364, #90421}}, {#6363, {#119930, #127287, #138534, #260298, #210579, #113136, #15999, #99105, #268869, #47679, #271579, #102130, #249832, #91879, #181816, #188183, #243074, #189192, #282290, #22871, #269656, #173217, #261410, #240211, #16472, #119930, #127287, #138534, #15999, #16472, #22871, #47679, #91879, #99105, #102130, #113136, #173217, #181816, #188183, #189192, #210579, #240211, #243074, #249832, #260298, #261410, #268869, #269656, #271579, #282290}}, {#1633, {#119930, #127287, #138534, #260298, #210579, #113136, #15999, #99105, #268869, #47679, #271579, #102130, #249832, #91879, #181816, #188183, #243074, #189192, #282290, #22871, #269656, #173217, #261410, #240211, #16472, #119930, #127287, #138534, #15999, #16472, #22871, #47679, #91879, #99105, #102130, #113136, #173217, #181816, #188183, #189192, #210579, #240211, #243074, #249832, #260298, #261410, #268869, #269656, #271579, #282290}}, {#1615, {#119930, #127287, #138534, #260298, #210579, #113136, #15999, #99105, #268869, #47679, #271579, #102130, #249832, #91879, #181816, #188183, #243074, #189192, #282290, #22871, #269656, #173217, #261410, #240211, #16472, #119930, #127287, #138534, #15999, #16472, #22871, #47679, #91879, #99105, #102130, #113136, #173217, #181816, #188183, #189192, #210579, #240211, #243074, #249832, #260298, #261410, #268869, #269656, #271579, #282290}}, {#1684, {#119930, #74065, #127287, #138534, #70589, #260298, #210579, #113136, #15999, #99105, #268869, #47679, #271579, #102130, #249832, #91879, #181816, #188183, #243074, #189192, #282290, #22871, #269656, #173217, #261410, #240211, #16472, #74065, #119930, #70589, #127287, #138534, #15999, #16472, #22871, #47679, #91879, #99105, #102130, #113136, #173217, #181816, #188183, #189192, #210579, #240211, #243074, #249832, #260298, #261410, #268869, #269656, #271579, #282290}}, {#52589, {#119930, #127287, #138534, #260298, #210579, #113136, #15999, #99105, #268869, #47679, #271579, #102130, #249832, #91879, #181816, #188183, #243074, #189192, #282290, #22871, #269656, #173217, #261410, #240211, #16472, #119930, #127287, #138534, #15999, #16472, #22871, #47679, #91879, #99105, #102130, #113136, #173217, #181816, #188183, #189192, #210579, #240211, #243074, #249832, #260298, #261410, #268869, #269656, #271579, #282290}}, {#15495, {#119930, #74065, #74065, #74065, #74065, #110033, #172522, #127287, #138534, #70589, #70589, #70589, #70589, #114826, #173785, #119553, #99837, #260298, #210579, #113136, #15999, #99105, #268869, #47679, #271579, #102130, #249832, #91879, #181816, #188183, #243074, #189192, #282290, #22871, #269656, #173217, #261410, #240211, #16472, #5183, #6082, #8302, #39984, #30765, #74065, #74065, #74065, #74065, #110033, #172522, #119930, #70589, #70589, #70589, #70589, #114826, #173785, #127287, #138534, #99837, #119553, #15999, #16472, #22871, #47679, #91879, #99105, #102130, #113136, #173217, #181816, #188183, #189192, #210579, #240211, #243074, #249832, #260298, #261410, #268869, #269656, #271579, #282290}}, {#876, {#119930, #110033, #110033, #127287, #138534, #114826, #114826, #119553, #119553, #99837, #99837, #24890, #24890, #24890, #260298, #210579, #113136, #15999, #99105, #268869, #47679, #271579, #102130, #249832, #91879, #181816, #188183, #243074, #189192, #282290, #22871, #269656, #173217, #261410, #240211, #16472, #110033, #110033, #119930, #114826, #114826, #127287, #138534, #24890, #24890, #24890, #99837, #99837, #119553, #119553, #15999, #16472, #22871, #47679, #91879, #99105, #102130, #113136, #173217, #181816, #188183, #189192, #210579, #240211, #243074, #249832, #260298, #261410, #268869, #269656, #271579, #282290}}, {#10090, {#119930, #29479, #127287, #138534, #296532, #292739, #130719, #83334, #16443, #119553, #99837, #24890, #260298, #210579, #113136, #15999, #99105, #268869, #47679, #271579, #102130, #249832, #91879, #181816, #188183, #243074, #189192, #282290, #22871, #269656, #173217, #261410, #240211, #16472, #111954, #253683, #256714, #236117, #244201, #119930, #29479, #127287, #138534, #16443, #140032, #293083, #280554, #7652, #24890, #99837, #119553, #15999, #16472, #22871, #47679, #91879, #99105, #102130, #113136, #173217, #181816, #188183, #189192, #210579, #240211, #243074, #249832, #260298, #261410, #268869, #269656, #271579, #282290, #111954, #236117, #244201, #253683, #256714}}, {#119224, {#54125, #77404, #193425, #39523, #157833, #32583, #160671, #202373, #273241, #54125, #32583, #39523, #77404, #157833, #160671, #193425, #202373, #273241}}, {#138803, {#54125, #77404, #193425, #39523, #157833, #32583, #160671, #202373, #273241, #54125, #32583, #39523, #77404, #157833, #160671, #193425, #202373, #273241}}, {#107487, {#54125, #77404, #193425, #39523, #157833, #32583, #160671, #202373, #273241, #54125, #32583, #39523, #77404, #157833, #160671, #193425, #202373, #273241}}, {#209593, {#77182, #214105, #215381, #77182, #214105, #215381}}, {#188671, {#77182, #214105, #215381, #77182, #214105, #215381}}, {#26859, {#40825, #40825, #40825, #40825, #40825, #40825, #40825, #40825, #40825, #40825, #40825, #40825, #40825, #40825, #40825, #65021, #65021, #65021, #65021, #65021, #65021, #65021, #65021, #65021, #65021, #65021, #65021, #65021, #65021, #65021, #40825, #40825, #40825, #40825, #40825, #40825, #40825, #40825, #40825, #40825, #40825, #40825, #40825, #40825, #40825, #297426, #297426, #297426, #297426, #297426, #297426, #297426, #297426, #297426, #297426, #297426, #297426, #297426, #297426, #297426}}, {#720, {#74065, #81949, #110033, #172522, #70589, #104355, #114826, #173785, #74065, #81949, #110033, #172522, #70589, #104355, #114826, #173785}}, {#820, {#74065, #70589, #74065, #70589}}, {#2257, {#74065, #74065, #74065, #70589, #70589, #70589, #74065, #74065, #74065, #70589, #70589, #70589}}, {#20759, {#74065, #70589, #74065, #70589}}, {#1627, {#74065, #70589, #74065, #70589}}, {#1599, {#74065, #70589, #74065, #70589}}, {#19186, {#74065, #110033, #70589, #114826, #74065, #110033, #70589, #114826}}, {#1634, {#74065, #110033, #172522, #70589, #114826, #173785, #74065, #110033, #172522, #70589, #114826, #173785}}, {#1602, {#74065, #20119, #70589, #74065, #20119, #70589}}, {#1626, {#74065, #172522, #70589, #173785, #74065, #172522, #70589, #173785}}, {#1690, {#74065, #70589, #74065, #70589}}, {#1607, {#74065, #172522, #70589, #173785, #74065, #172522, #70589, #173785}}, {#1086, {#74065, #70589, #74065, #70589}}, {#870, {#74065, #74065, #110033, #110033, #70589, #70589, #114826, #114826, #33618, #278076, #295401, #291765, #297376, #20061, #10723, #34041, #74065, #74065, #110033, #110033, #70589, #70589, #114826, #114826, #33618, #20061, #16410, #279914, #15436, #295793}}, {#50586, {#74065, #74065, #70589, #70589, #74065, #74065, #70589, #70589}}, {#1863, {#74065, #70589, #74065, #70589}}, {#1157, {#74065, #74065, #74065, #70589, #70589, #70589, #7632, #5183, #6082, #8302, #39984, #30765, #74065, #74065, #74065, #70589, #70589, #70589}}, {#88863, {#74065, #70589, #74065, #70589}}, {#8276, {#74065, #70589, #12839, #74065, #70589}}, {#74509, {#74065, #74065, #74065, #74065, #74065, #70589, #70589, #70589, #70589, #70589, #74065, #74065, #74065, #74065, #74065, #70589, #70589, #70589, #70589, #70589}}, {#826, {#74065, #70589, #4503, #5110, #2429, #5039, #74065, #70589}}, {#38002, {#74065, #110033, #70589, #114826, #119553, #99837, #74065, #110033, #70589, #114826, #99837, #119553}}, {#1670, {#74065, #70589, #74065, #70589}}, {#79716, {#74065, #70589, #74065, #70589}}, {#4194, {#74065, #70589, #74065, #70589}}, {#27172, {#110033, #114826, #110033, #114826}}, {#129251, {#110033, #114826, #110033, #114826}}, {#9372, {#110033, #114826, #119553, #99837, #110033, #114826, #99837, #119553}}, {#307, {#110033, #110033, #114826, #114826, #110033, #110033, #114826, #114826}}, {#5352, {#110033, #114826, #110033, #114826}}, {#36989, {#110033, #114826, #110033, #114826}}, {#1423, {#110033, #114826, #110033, #114826}}, {#38871, {#110033, #110033, #114826, #114826, #110033, #110033, #114826, #114826}}, {#19073, {#110033, #110033, #114826, #114826, #2847, #4549, #4559, #4548, #4162, #4817, #10723, #2207, #33081, #2230, #15444, #22626, #22626, #34041, #5183, #6082, #8302, #39984, #30765, #110033, #110033, #114826, #114826}}, {#4367, {#110033, #110033, #114826, #114826, #110033, #110033, #114826, #114826}}, {#4852, {#110033, #114826, #5183, #5183, #5183, #6082, #6082, #6082, #8302, #8302, #8302, #39984, #39984, #39984, #30765, #30765, #30765, #110033, #114826}}, {#3196, {#110033, #114826, #110033, #114826}}, {#1610, {#110033, #114826, #110033, #114826}}, {#1756, {#110033, #114826, #110033, #114826}}, {#40968, {#110033, #114826, #110033, #114826}}, {#13581, {#110033, #114826, #110033, #114826}}, {#5450, {#110033, #114826, #5183, #5183, #6082, #6082, #8302, #8302, #8887, #39984, #39984, #30765, #30765, #110033, #114826}}, {#44559, {#110033, #114826, #110033, #114826}}, {#61614, {#110033, #114826, #110033, #114826}}, {#4919, {#110033, #114826, #33618, #278076, #295401, #291765, #297376, #20061, #110033, #114826, #33618, #20061, #16410, #279914, #15436, #295793}}, {#6563, {#110033, #114826, #110033, #114826}}, {#856, {#110033, #110033, #110033, #110033, #110033, #110033, #110033, #114826, #114826, #114826, #114826, #114826, #114826, #114826, #110033, #110033, #110033, #110033, #110033, #110033, #110033, #114826, #114826, #114826, #114826, #114826, #114826, #114826}}, {#22372, {#172522, #172522, #172522, #173785, #173785, #173785, #172522, #172522, #172522, #173785, #173785, #173785}}, {#2350, {#172522, #173785, #172522, #173785}}, {#1685, {#172522, #173785, #172522, #173785}}, {#1161, {#172522, #173785, #172522, #173785}}, {#43865, {#172522, #173785, #172522, #173785}}, {#13073, {#172522, #173785, #172522, #173785}}, {#96724, {#172522, #173785, #172522, #173785}}, {#7711, {#644, #29734, #644, #29734}}, {#237571, {#644, #644}}, {#163382, {#644, #644}}, {#2660, {#644, #644}}, {#61116, {#644, #644}}, {#99554, {#644, #644}}, {#1694, {#644, #644}}, {#1942, {#3639, #3639}}, {#705, {#810, #810}}, {#1845, {#1361, #1361}}, {#2278, {#5797, #5797}}, {#1613, {#29734, #29734}}, {#53044, {#19160, #19160}}, {#6341, {#80418, #80418}}, {#3209, {#80418, #80418}}, {#7436, {#80418, #80418}}, {#151885, {#59681, #59681}}, {#67959, {#59681, #59681}}, {#148627, {#237812, #237812}}, {#12287, {#15440, #15440}}, {#900, {#20119, #20119}}, {#3272, {#20119, #20119}}, {#3596, {#49235, #49235}}, {#3595, {#49235, #49235, #49235, #49235, #49235, #49235, #49235, #49235, #49235, #49235}}, {#13932, {#29479, #296532, #292739, #130719, #83334, #16443, #111954, #253683, #256714, #236117, #244201, #29479, #16443, #140032, #293083, #280554, #7652, #111954, #236117, #244201, #253683, #256714}}, {#9880, {#29479, #296532, #292739, #130719, #83334, #29479, #140032, #293083, #280554, #7652}}, {#55183, {#29479, #296532, #292739, #130719, #83334, #29479, #140032, #293083, #280554, #7652}}, {#66180, {#77404, #39523, #157833, #160671, #202373, #273241, #39523, #77404, #157833, #160671, #202373, #273241}}, {#135183, {#193425, #32583, #32583, #193425}}, {#23968, {#12270, #12270}}, {#131301, {#119553, #99837, #24890, #24890, #99837, #119553}}, {#43392, {#119553, #99837, #99837, #119553}}, {#37310, {#119553, #99837, #99837, #119553}}, {#63501, {#119553, #119553, #24890, #24890, #24890, #24890, #24890, #24890, #119553, #119553}}, {#129477, {#119553, #24890, #24890, #119553}}, {#21741, {#119553, #24890, #24890, #119553}}, {#108637, {#99837, #99837, #99837, #99837}}, {#1931, {#24890, #24890}}, {#7380, {#24890, #24890}}, {#809, {#1838, #1838, #1838, #1838}}, {#12555, {#490, #6594, #6945, #7031, #6870, #10723, #34041, #5183, #5183, #5183, #6082, #6082, #6082, #8302, #8302, #8302, #39984, #39984, #39984, #30765, #30765, #30765}}, {#2954, {#490, #6594, #6945, #7031, #6870, #10723, #34041, #5183, #5183, #6082, #6082, #8302, #8302, #39984, #39984, #30765, #30765}}, {#1735, {#490, #10723, #7632, #78909, #34041, #5183, #5183, #5183, #6082, #6082, #6082, #8302, #8302, #8302, #8887, #9894, #39984, #39984, #39984, #30765, #30765, #30765}}, {#6066, {#490, #10723, #7632, #34041, #5183, #5183, #5183, #6082, #6082, #6082, #8302, #8302, #8302, #8887, #39984, #39984, #39984, #30765, #30765, #30765}}, {#771, {#490}}, {#3649, {#490}}, {#32605, {#490, #2847, #4549, #4559, #4548, #4162, #4817, #2207, #33081, #2230, #15444, #5183, #6082, #8302, #39984, #30765}}, {#5706, {#490}}, {#11678, {#490}}, {#129143, {#4761}}, {#122109, {#4505}}, {#5763, {#2847, #4549, #4559, #4548, #4162, #4817, #7632, #2207, #33081, #2230, #15444, #5183, #5183, #5183, #6082, #6082, #6082, #8302, #8302, #8302, #39984, #39984, #39984, #30765, #30765, #30765}}, {#5287, {#2847, #4549, #4559, #4548, #4162, #4817, #2207, #33081, #2230, #15444}}, {#94887, {#497}}, {#5053, {#3812, #3812, #3866, #2403, #4504, #4330, #4945, #4266, #3283, #3222}}, {#4373, {#6594, #6945, #7031, #6870}}, {#79648, {#6594, #6945, #7031, #6870, #2384}}, {#61607, {#7581}}, {#1810, {#7383, #10723, #34041}}, {#905, {#7383, #4097}}, {#130, {#7383}}, {#112286, {#8833}}, {#6523, {#10723, #34041, #5183, #5183, #5183, #6082, #6082, #6082, #8302, #8302, #8302, #39984, #39984, #39984, #30765, #30765, #30765}}, {#5449, {#10723, #34041, #5183, #5183, #5183, #6082, #6082, #6082, #8302, #8302, #8302, #8887, #39984, #39984, #39984, #30765, #30765, #30765}}, {#4123, {#10723, #7632, #34041, #5183, #6082, #8302, #8887, #39984, #30765}}, {#4916, {#10723, #34041, #8887}}, {#27317, {#10723, #34041}}, {#12721, {#10723, #34041}}, {#65792, {#10723, #34041}}, {#887, {#10723, #34041}}, {#37596, {#10723, #34041, #5183, #6082, #8302, #39984, #30765}}, {#4476, {#7632, #5183, #5183, #6082, #6082, #8302, #8302, #8887, #39984, #39984, #30765, #30765}}, {#6422, {#7632}}, {#60428, {#36698, #19245}}, {#48199, {#41511}}, {#153018, {#28675}}, {#33991, {#32350, #32350}}, {#24838, {#32350}}, {#57312, {#22827}}, {#37827, {#22626, #22626}}, {#10725, {#22626}}, {#33811, {#22626}}, {#42809, {#22626}}, {#50534, {#22626}}, {#55556, {#37365}}, {#107266, {#32613}}, {#113390, {#32613}}, {#119315, {#32613}}, {#106751, {#15306}}, {#136332, {#75007}}, {#66954, {#131596}}, {#33199, {#78909, #2384, #5183, #5183, #6082, #6082, #8302, #8302, #39984, #39984, #30765, #30765}}, {#18940, {#78909, #6140, #54129, #62187, #60879, #12147, #5183, #6082, #8302, #39984, #30765, #12839}}, {#1559, {#78909, #6140, #54129, #62187, #60879, #12147}}, {#5384, {#78909}}, {#3530, {#78909}}, {#684, {#78909, #5183, #6082, #8302, #39984, #30765}}, {#5166, {#78909, #5183, #6082, #8302, #39984, #30765, #22543}}, {#5431, {#78909}}, {#685, {#78909}}, {#14929, {#78909}}, {#686, {#78909}}, {#101765, {#108196}}, {#15104, {#10165, #10165, #10165, #10165}}, {#130817, {#97556}}, {#112580, {#6140, #54129, #62187, #60879, #12147}}, {#92862, {#6140, #54129, #62187, #60879, #12147}}, {#679, {#6140, #54129, #62187, #60879, #12147}}, {#25832, {#6140, #54129, #62187, #60879, #12147}}, {#125956, {#68718}}, {#51304, {#18920}}, {#271314, {#18920}}, {#32071, {#18920, #2384}}, {#159741, {#18920}}, {#270216, {#18920}}, {#251856, {#263983}}, {#105152, {#319}}, {#13940, {#319}}, {#45424, {#319}}, {#250868, {#2384}}, {#4331, {#2384}}, {#76205, {#2384}}, {#90198, {#2384}}, {#46452, {#2384}}, {#59020, {#2384}}, {#140873, {#2638}}, {#1830, {#4097}}, {#269977, {#6439, #6439, #6439}}, {#13282, {#6439, #6439, #6439, #6439, #5183, #5183, #6082, #6082, #8302, #8302, #39984, #39984, #30765, #30765}}, {#66605, {#2736}}, {#675, {#5183, #5183, #5183, #6082, #6082, #6082, #8302, #8302, #8302, #39984, #39984, #39984, #30765, #30765, #30765}}, {#13851, {#5183, #5183, #5183, #6082, #6082, #6082, #8302, #8302, #8302, #39984, #39984, #39984, #30765, #30765, #30765}}, {#3645, {#5183, #5183, #5183, #6082, #6082, #6082, #8302, #8302, #8302, #39984, #39984, #39984, #30765, #30765, #30765}}, {#4135, {#5183, #5183, #5183, #6082, #6082, #6082, #8302, #8302, #8302, #39984, #39984, #39984, #30765, #30765, #30765}}, {#1334, {#5183, #5183, #5183, #6082, #6082, #6082, #8302, #8302, #8302, #39984, #39984, #39984, #30765, #30765, #30765}}, {#2911, {#5183, #5183, #5183, #5183, #6082, #6082, #6082, #6082, #8302, #8302, #8302, #8302, #39984, #39984, #39984, #39984, #30765, #30765, #30765, #30765}}, {#2514, {#5183, #5183, #5183, #6082, #6082, #6082, #8302, #8302, #8302, #39984, #39984, #39984, #30765, #30765, #30765}}, {#25560, {#5183, #5183, #5183, #6082, #6082, #6082, #8302, #8302, #8302, #39984, #39984, #39984, #30765, #30765, #30765}}, {#3607, {#5183, #5183, #6082, #6082, #8302, #8302, #39984, #39984, #30765, #30765}}, {#1162, {#5183, #5183, #6082, #6082, #8302, #8302, #39984, #39984, #30765, #30765}}, {#2208, {#5183, #5183, #6082, #6082, #8302, #8302, #39984, #39984, #30765, #30765}}, {#669, {#5183, #5183, #6082, #6082, #8302, #8302, #39984, #39984, #30765, #30765}}, {#5190, {#5183, #5183, #6082, #6082, #8302, #8302, #39984, #39984, #30765, #30765, #22543}}, {#5181, {#5183, #5183, #6082, #6082, #8302, #8302, #39984, #39984, #30765, #30765}}, {#5364, {#5183, #5183, #6082, #6082, #8302, #8302, #39984, #39984, #30765, #30765}}, {#5260, {#5183, #5183, #6082, #6082, #8302, #8302, #8887, #39984, #39984, #30765, #30765}}, {#5398, {#5183, #5183, #6082, #6082, #8302, #8302, #8887, #39984, #39984, #30765, #30765}}, {#5564, {#5183, #5183, #6082, #6082, #8302, #8302, #8887, #39984, #39984, #30765, #30765}}, {#15195, {#5183, #6082, #8302, #39984, #30765}}, {#677, {#5183, #6082, #8302, #8887, #39984, #30765}}, {#13207, {#5183, #5183, #6082, #6082, #8302, #8302, #39984, #39984, #30765, #30765}}, {#4004, {#5183, #6082, #8302, #39984, #30765}}, {#1260, {#5183, #6082, #8302, #39984, #30765}}, {#13344, {#5183, #6082, #8302, #39984, #30765}}, {#12400, {#5183, #6082, #8302, #39984, #30765}}, {#9521, {#5183, #6082, #8302, #39984, #30765}}, {#39843, {#5183, #5183, #6082, #6082, #8302, #8302, #39984, #39984, #30765, #30765, #22543}}, {#3635, {#5183, #6082, #8302, #39984, #30765}}, {#5400, {#5183, #6082, #8302, #39984, #30765}}, {#120906, {#6647}}, {#136614, {#6494}}, {#21969, {#8302}}, {#6474, {#8302, #39984}}, {#4946, {#764}}, {#3830, {#8887}}, {#4483, {#8887}}, {#5482, {#9894}}, {#8891, {#9894}}, {#3055, {#11266}}, {#55406, {#44642}}, {#79177, {#9229}}, {#134929, {#7641}}, {#110560, {#27368}}, {#139346, {#27368}}, {#33616, {#289}}, {#18125, {#12839}}, {#11303, {#12839}}, {#687, {#12839}}, {#2014, {#12839}}, {#43163, {#12839}}, {#194926, {#36432}}}
spawn_things#317rc#361
list of 58{#5, #8, #54, #68, #84, #95, #101, #111, #115, #118, #123, #124, #127, #128, #129, #130, #133, #134, #135, #136, #137, #138, #144, #145, #146, #147, #150, #151, #152, #153, #167, #173, #174, #176, #187, #188, #198, #200, #201, #203, #209, #223, #240, #255, #259, #265, #267, #307, #327, #331, #332, #333, #335, #338, #347, #352, #353, #358}
bigtree_pct_over#317rc#3610.05
bigtree_color#317rc#361"~1b[35m~1b[1m"
bigtree_bold_color#317rc#361"~1b[35m"
bigtree_num_color#317rc#361""
bigtree_colors#317rc#361{"~1b[36m", "~1b[33m", "~1b[37m~1b[1m", "~1b[37m~1b[1m"}
bigtree_pct_hide#317rc#3610.01
all_valuable#317r#361{}
secure_fertile_locations#317rc#361
list of 17{#290, #326, #54197, #104, #501, #259329, #90716, #1228, #4708, #2774, #112618, #214215, #2743, #156189, #3971, #4262, #39206}
ignore_props_for_ex#317rc#361
list of 10{"description", "object_size", "aliases", "hidden_verbs", "owner_verbs", "plural_name", "client_image", "setup_list", "article", "junk_ok"}
global_prop_descs#317rc#361#450687
addex_help_off#317rc#361{}
addex_help_msg#317rc#361
list of 7{" formats are used to change complex props into human-readable strings. \"%1\" is replaced by the value of the property - but in alists, %2, %3 etc can be used for each element of the alist. for hashes, %1 is the key and %2 the value.", "", " name-only: just type text (no : or $ allowed), to be used as the prop name.", " name + simple format: use 'name: format'", " name + special case formats: use 'name: value1 = string1 $ value2 = string2' etc.", "", "pro tips: use \"*ignore*\" as one of the strings for a special case format to not show the prop in that case. also, you can have a null name."}
compare_handler_obj#317rc#361#432415
quiet_compare_obj#317rc#361#519389
typehash#317rc#361
list of 129{77, {#2853, "handtool"}, 0, {#659, "treasure"}, 0, {#8988, "camera", #288, "ammo"}, 0, 0, 0, 0, 0, 0, 0, {#8243, "scrap"}, {#74, "FO"}, 0, {#109, "creature"}, {#1570, "food"}, {#3973, "matrix", #2173, "shop"}, {#931, "container"}, {#1834, "cyberdeck", #720, "wristpad"}, 0, 0, {#6, "player", #1031, "body"}, 0, 0, {#2961, "radio", #5749, "switch", #6184, "sodacan"}, {#3776, "statue"}, {#5344, "language"}, 0, {#868, "smokable"}, 0, 0, {#5144, "workbench"}, {#103734, "flyermod"}, {#1747, "sextoken"}, 0, 0, 0, 0, 0, {#974, "fluid"}, {#664, "kitsch"}, {#2521, "powered"}, 0, 0, 0, 0, 0, {#1404, "schematic", #13434, "sextoy"}, {#1829, "interface", #5053, "disc", #1965, "disk"}, {#5714, "chemicals"}, 0, 0, 0, 0, {#1, "other"}, {#880, "dispenser"}, 0, {#665, "parts"}, 0, {#306, "clothing", #877, "drugs"}, 0, 0, 0, 0, 0, {#2150, "skin"}, 0, {#533, "messageset", #138, "NPC"}, 0, 0, 0, 0, {#35829, "ghosttrap"}, 0, {#153, "key"}, {#7, "oldexit"}, 0, 0, {#267, "damagetype"}, 0, {#24952, "quest"}, {#107, "weapon", #836, "weaponmod"}, 0, {#3092, "security"}, {#835, "medical"}, {#13394, "rug"}, 0, {#9402, "homecam"}, 0, 0, 0, 0, 0, {#331, "device", #543, "exit"}, {#1655, "powerplant", #5232, "doormod"}, {#103, "action"}, 0, 0, 0, {#706, "monster"}, {#41553, "biz"}, {#35897, "illuminatr"}, 0, {#1447, "note", #10895, "exitblock"}, 0, {#8511, "networked", #804, "injector"}, 0, {#3216, "bigweapon", #194090, "rumor", #17808, "rifle"}, {#1831, "implant"}, 0, 0, 0, 0, {#8, "oldcntnr", #3558, "vend", #31031, "transcvr"}, {#672, "documents"}, 0, 0, {#1573, "grenade", #2044, "recipe"}, 0, 0, 0, {#3, "room"}, {#3477, "decal"}, {#729, "lock"}, 0, 0, 0}
corelist#317rc#361
list of 1025{448, 0, 0, 0, 0, {#113852, "wardrobes"}, 0, 0, {#17510, "license"}, {#10497, "living", #507195, "crimes"}, 0, 0, 0, {#44424, "blueprint"}, 0, 0, 0, {#82, "server_options"}, 0, 0, {#720, "wristpad", #114421, "poison"}, 0, 0, 0, 0, 0, {#60, "help"}, {#262154, "affliction"}, {#33, "seq_utils"}, 0, {#868, "smokable"}, 0, 0, {#42, "perm_utils"}, 0, 0, {#34040, "fng"}, {#24919, "fetish", #45618, "tvshow"}, 0, {#298207, "kharn"}, 0, {#402785, "top"}, {#47236, "job"}, {#351884, "objmanip"}, 0, {#120, "eu"}, {#398722, "slug"}, 0, 0, 0, {#142049, "explosion"}, 0, 0, {#4737, "tv", #2488, "dream", #210687, "wardrobe"}, 0, {#41732, "soda_contract", #158358, "dock"}, 0, 0, 0, 0, {#44513, "gamecheck"}, 0, {#31213, "hardware"}, 0, 0, 0, 0, 0, {#31, "guest", #32, "spell", #2658, "clone"}, 0, 0, 0, 0, 0, 0, {#5778, "addiction"}, 0, 0, 0, 0, 0, 0, {#11595, "porn"}, 0, 0, 0, 0, 0, {-2147483648, "minint"}, 0, {#935, "bartender"}, {#4609, "hive"}, 0, {#50567, "elevator"}, {#94, "convert_utils"}, {#543, "exit", #331, "device"}, {#46977, "areas", #84050, "admin_star"}, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {#39, "player_db", #83691, "human_corpse", #290201, "lag"}, 0, 0, {#43, "tu"}, {#27065, "apowerplant"}, 0, {5, "max_seconds", #5, "thing"}, 0, {#317, "anyport"}, 0, 0, 0, {#2044, "recipe"}, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {#361, "building"}, 0, 0, {#8988, "camera"}, 0, 0, 0, {#96231, "drug_vectors"}, 0, 0, 0, 0, 0, 0, {#109, "creature"}, {#19, "core_help", #249181, "drug_vector"}, {#271474, "bpnet", #4041, "agnes"}, {#931, "container", #119, "wiznet", #220738, "vehicle"}, 0, 0, 0, {#6, "player", #-1, "local"}, 0, {#30, "generic_help", #59, "code_utils"}, 0, 0, 0, {#272929, "light"}, 0, {#50, "generic_editor"}, 0, {#81562, "faggot"}, {#103734, "flyer_module"}, 0, 0, 0, 0, 0, 0, 0, 0, {#21211, "skyexit"}, 0, {#298, "cover", #101952, "aid"}, 0, 0, 0, 0, {#52, "ou"}, 0, 0, 0, {#75, "gopher"}, 0, 0, {#21, "bu", #76992, "sexslave"}, 0, 0, 0, 0, 0, 0, 0, 0, {#414924, "jobs"}, {#315620, "boat"}, 0, {30000, "max_ticks", #20763, "data", #53205, "meter_utils"}, 0, {#118848, "changelog"}, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {#24952, "quest"}, 0, 0, 0, {#387057, "style"}, {#98590, "scorechip", #221210, "fnn"}, {#85, "mail_help"}, 0, 0, 0, {#80, "paranoid_db"}, {3.14159265358979, "pi"}, {#782, "plan"}, 0, {#1655, "powerplant"}, 0, 0, {#47, "mail_editor"}, 0, 0, 0, 0, {#65, "mail_options"}, 0, 0, 0, {#407, "global_origin"}, {#280181, "noise"}, 0, {#5657, "henchman", #239364, "xyz"}, {#68192, "chillmin"}, {#30072, "web"}, {#27, "set_utils"}, 0, {#88, "gendered_object", #17076, "bling"}, {#55, "lu"}, 0, 0, 0, 0, {#69, "error", #77732, "womb"}, 0, {#44, "editor_help"}, {#197419, "stairs"}, {#23379, "mutator"}, 0, 0, 0, 0, 0, 0, {#214869, "cord"}, 0, 0, {#922, "rope"}, 0, 0, 0, 0, 0, {#199170, "grind_db"}, 0, {#83, "feature_warehouse"}, {#116789, "tyrant"}, {#298277, "dick"}, 0, {#1834, "cyberdeck"}, {#50862, "sim_contract"}, 0, 0, 0, 0, 0, {#36, "hacker", #17668, "wmd"}, {#5344, "language", #73634, "landmark"}, {#284317, "noisemaker"}, 0, 0, 0, {#67, "display_options", #48000, "record"}, 0, 0, 0, 0, 0, 0, {#173581, "areatemplate"}, {#245543, "stats_utils"}, {#241405, "marvin"}, 0, 0, 0, {#5945, "heart"}, 0, 0, 0, 0, 0, 0, 0, {#49, "verb_editor", #260717, "alock"}, 0, 0, 0, 0, 0, 0, 0, {#22880, "nets"}, {#76106, "cocoon"}, 0, 0, {#217820, "whofo"}, {#327490, "backup_recycler"}, 0, {#138, "npc"}, 0, 0, {#341, "sysnet"}, {#23025, "cockpit"}, 0, 0, {#153, "key", #404806, "daily"}, 0, 0, 0, {#267, "damage"}, {#8125, "pill"}, 0, {#426611, "scheduler"}, 0, 0, 0, {#22468, "ad"}, {#32797, "nullocean"}, {#61, "news", #29886, "tactic"}, {#75109, "aweather", #370036, "forge"}, {#137, "furniture"}, {#428597, "weekly"}, 0, {#29, "new_prog_log"}, 0, 0, 0, 0, 0, 0, {#706, "monster"}, 0, {#16, "registration_db"}, 0, 0, {#139086, "critter"}, 0, 0, 0, 0, 0, 0, 0, 0, 0, {#36493, "phobia"}, 0, 0, {#5440, "spawner"}, 0, {#322253, "mcp"}, 0, {#3, "room"}, {#6591, "stripper"}, 0, 0, 0, 0, 0, {#230066, "flywheel"}, {#12029, "party", #24752, "ambience", "I don't understand that.", "huh_text"}, 0, 0, 0, 0, 0, 0, 0, {#17, "new_player_log"}, 0, 0, {#74, "feature"}, 0, 0, 0, 0, 0, {#389, "stat"}, 0, 0, {#1031, "body"}, 0, {#535310, "httpd"}, {#239036, "screen"}, 0, 0, 0, {#118219, "telephone"}, 0, 0, {#122753, "interface", #89, "immortal", #80731, "invasion"}, 0, 0, 0, 0, 0, 0, {#27084, "ufo"}, 0, {#84723, "subareas"}, 0, {#150115, "clothes", #46986, "subarea"}, 0, {#290402, "lostnfound", #14565, "atc"}, {#209404, "new_password_log"}, 0, {#242536, "orphan_start", #217717, "bf"}, 0, 0, 0, {#269269, "ballot"}, 0, {#84, "builder_help"}, 0, 0, {#40573, "weather"}, {#276, "drug"}, 0, 0, {E_NONE, "shutdown_task", 0, "stop_everything", #0, "sysobj"}, 0, 0, 0, 0, 0, {#262743, "state"}, 0, 0, 0, {#20663, "sapi"}, {#38, "someone", #18805, "menu_term"}, 0, {#135440, "apick"}, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {#70, "site_log", #9965, "dbs"}, {#3555, "faction"}, 0, 0, {#409193, "extension"}, 0, {#72037, "sim_kit"}, 0, 0, 0, {#175645, "hike"}, 0, 0, 0, {#838, "pistol", #43383, "prng_util"}, {#26173, "mutation"}, {#91, "pasting_feature"}, 0, 0, 0, {#17315, "gemstone"}, {#246837, "adoor"}, {#191968, "garbage_vault"}, {#272, "rpg"}, 0, 0, 0, {#400024, "tamable"}, 0, {#85015, "fountain"}, 0, 0, 0, 0, {#274249, "tomb"}, {#399744, "island"}, {#3477, "decal"}, 0, 0, {#59951, "smashable"}, 0, 0, 0, {#412384, "sst"}, 0, {#288, "ammo", #1596, "robot"}, 0, 0, 0, 0, 0, 0, {#39999, "cookbook"}, {#16291, "fish"}, 0, {#108135, "sign"}, {#138589, "decals", #239104, "xu"}, {#76515, "coating"}, 0, 0, 0, 0, 0, {#254060, "mood"}, 0, 0, 0, {#215872, "api"}, {#112211, "event"}, {#79017, "skyroom"}, 0, {#189021, "globe"}, 0, 0, {#5836, "tvstation"}, 0, {#3573, "shotgun"}, {#192877, "player_start"}, 0, {#489, "indoor_room"}, 0, 0, 0, 0, 0, {#128194, "stat_collector", #240579, "mysql"}, 0, 0, 0, 0, {#6286, "plant"}, {#41, "gender_utils"}, {#356921, "moneybucket"}, {#142954, "world"}, 0, 0, 0, {#285, "gun", #13908, "document"}, {#-3, "failed_match", #18191, "software"}, 0, 0, 0, {#18207, "cliff"}, {#3213, "noises"}, {#132, "rpg_player"}, {#132062, "damages"}, 0, 0, {#170, "door_old"}, {#533, "messages", #100267, "jesus"}, 0, 0, 0, {#454969, "mcp_registry"}, 0, 0, 0, 0, {#295129, "issue_list"}, 0, 0, 0, 0, {#836, "weapon_mod"}, 0, {#1036, "races"}, {#13, "biglist", #180385, "banker", #67982, "scoreboard"}, 0, 0, 0, {#41474, "jew"}, 0, 0, 0, 0, 0, 0, 0, 0, {#3632, "lockbox", #5995, "gm"}, 0, {1299371496, "shutdown_time"}, 0, 0, 0, {#51, "mu", #73509, "netcmd"}, 0, 0, {#15, "limbo"}, {#118, "net"}, {#1831, "implant", #35821, "ghost"}, 0, 0, {#867, "disease"}, 0, 0, {#101640, "phone"}, 0, {#75428, "bizzes"}, {#1573, "grenade"}, {#71943, "hu"}, {#1032, "real_area"}, 0, {7200, "dump_interval"}, 0, 0, 0, 0, 0, {#218812, "bigmap"}, {#73, "generic_biglist_home"}, {#290, "generics", #13673, "playlist"}, {#46096, "archetype"}, {#50001, "crime"}, {#327, "freedomcity"}, 0, {#570018, "hints"}, {#259398, "syndrome"}, 0, 0, 0, 0, 0, 0, 0, {#1570, "food"}, {#259329, "drugrepo"}, 0, 0, {#228164, "fatality"}, 0, {#13417, "std"}, 0, {#325, "pathfinder"}, 0, 0, 0, {#189213, "ru"}, 0, 0, 0, {#255, "behaviors"}, {#71, "housekeeper"}, {#295900, "mutations"}, 0, {#32136, "client", #56912, "town"}, 0, {#92, "vu", #27686, "mutation_list"}, 0, {#505, "outdoor_room"}, 0, 0, {#121276, "cache"}, 0, 0, 0, 0, {#1404, "schematic"}, 0, 0, 0, 0, 0, {#357946, "potw"}, 0, 0, {#82907, "achievement"}, 0, 0, 0, {#630, "ansi"}, 0, 0, 0, {#162665, "reactor"}, 0, {#64, "garbage"}, {#26, "au", #4533, "need"}, 0, {#28, "builtin_function_help", #76, "prog_options", #59272, "gamedaily", #380332, "quest_data"}, {#56, "cu", #335118, "candy"}, 0, 0, {#162, "social"}, 0, 0, 0, 0, {#97856, "ashield"}, {#5442, "langdict"}, 0, 0, {#20, "su", 5227954, "force_input_count", #440363, "conjob"}, 0, 0, 0, 0, {#33120, "flyer"}, {#69024, "afterlife"}, 0, 0, {#297, "machine"}, 0, 0, 0, 0, 0, {#324, "time", #750, "citizen"}, 0, {#59304, "warrant"}, 0, 0, 0, 0, 0, 0, 0, 0, 0, {#81683, "mxp"}, 0, {#70193, "stashed", #271772, "trap"}, 0, 0, 0, {#218616, "sim"}, {#-2, "ambiguous_match"}, 0, 0, 0, 0, {"Spunky (#97): We'll be right back", "shutdown_message"}, 0, {#729, "lock_old"}, 0, 0, 0, 0, 0, 0, 0, 0, {2147483647, "maxint"}, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {#53582, "avatar"}, 0, {#301937, "rng"}, {#293744, "fossil"}, 0, 0, {#57516, "gas"}, 0, {#4, "builder"}, 0, 0, {#9967, "genius"}, {#46, "mail_agent"}, 0, 0, 0, {#5144, "workbench"}, 0, {#33945, "skateboard"}, {#87, "password_verifier"}, 0, 0, {#56740, "fetishes"}, {#100565, "dbobj"}, 0, 0, {#313784, "styles"}, 0, {#6506, "langnote", #35827, "haunting"}, 0, 0, 0, 0, 0, 0, 0, {#39206, "drugs", #239079, "buoy"}, 0, 0, 0, {#53, "lock_utils"}, {#3290, "gatekeeper", #9235, "beacon"}, 0, {#278218, "insanity"}, 0, 0, 0, 0, {#128822, "biz", #184452, "iu"}, 0, 0, 0, {#39780, "severedbodypart"}, 0, 0, 0, 0, {#90776, "quests"}, {#13692, "shield"}, 0, {#23, "wiz_help"}, 0, 0, 0, 0, {#207164, "memory"}, {#107, "weapon", #7356, "contract"}, {#24, "wiz_utils", #66, "edit_options"}, 0, {#14, "big_mail_recipient", #123423, "someone_else"}, 0, 0, 0, 0, 0, 0, 0, {#93, "frand_help"}, 0, 0, 0, {#10989, "consumer"}, 0, 0, 0, 0, 0, 0, {#1447, "note"}, {#111, "skill"}, 0, 0, 0, 0, {#22, "prog_help"}, 0, {#200772, "shimmer"}, 0, 0, 0, 0, 0, {#40, "mail_recipient_class"}, {#81, "object_quota_utils"}, 0, {#5378, "corpse"}, 0, 0, {#57, "wiz", #90, "stage_talk"}, 0, 0, 0, {1303310129, "last_restart_time"}, 0, {#659, "treasure"}, {#34, "quota_log", #135412, "liquid", #97392, "npcs"}, 0, 0, 0, 0, 0, 0, {#104, "actions"}, 0, 0, 0, 0, {#18, "verb_help"}, {#86, "ftp"}, {#255845, "propulsion"}, 0, 0, {#215219, "glob"}, 0, 0, {#78, "utils_package", #716, "actor"}, 0, {#37, "dbtree", #5749, "switch"}, {#63, "recycler"}, 0, 0, 0, 0, 0, 0, 0, 0, {#530, "phelp", #20358, "moon"}, 0, {#476586, "commerce"}, 0, 0, 0, {#42077, "hunter", #486408, "gu"}, {#2521, "powered", #185004, "insurance", #31092, "biznet"}, {#26541, "cloud"}, 0, 0, {#77, "build_options", #429645, "corkboard"}, 0, 0, 0, {#90716, "bodyparts"}, {#369229, "tagsystem", #391947, "sub"}, 0, {#1837, "matrix", #613811, "fcse"}, {#96, "html"}, {#1, "root_class"}, {#880, "dispenser"}, 0, 0, 0, {#306, "clothing", #5897, "stockboy"}, 0, 0, 0, 0, {#82484, "window"}, {#249334, "radio"}, {#211925, "exit_utils"}, 0, 0, {#76956, "mjolnir"}, 0, {#308435, "implementing_interface"}, 0, {#45, "mail_recipient", #401881, "map_utils"}, {#142689, "ocean", #98402, "tactics"}, {#326, "area"}, {#167960, "impl"}, {#216254, "globtainer"}, {#68, "generic_options"}, 0, 0, {#112, "skills"}, 0, {#58, "prog"}, 0, 0, {#72, "network"}, 0, 0, 0, {#79, "byte_quota_utils"}, {#2089, "host"}, 0, 0, 0, {#103, "action", #58596, "clue"}, 0, 0, {#180870, "file"}, 0, {#48, "note_editor"}, {#140391, "earth"}, {#7242, "mv"}, 0, 0, 0, {#150956, "tor"}, {#10, "login", #194090, "rumor"}, 0, {#352955, "gases"}, {#87335, "orphan", #389601, "forum"}, 0, 0, 0, {#848, "lighter"}, 0, 0, 0, 0, 0, 0, 0, 0, {#8059, "bouncer", #142545, "ju"}, 0, {#299, "bodypart"}, 0}
topitems#317rc#361
list of 50{{#2158, 7064}, {#584789, 4557}, {#61721, 4507}, {#4176, 3998}, {#15495, 3153}, {#7638, 2257}, {#146688, 2162}, {#17509, 1969}, {#600240, 1896}, {#1086, 1657}, {#1161, 1550}, {#870, 1480}, {#2246, 1475}, {#37217, 1472}, {#113008, 1418}, {#19073, 1353}, {#1870, 1321}, {#83647, 1280}, {#1611, 1124}, {#4805, 1081}, {#391062, 1075}, {#294520, 1046}, {#424482, 1014}, {#259, 1006}, {#259575, 986}, {#4977, 979}, {#1670, 977}, {#1157, 972}, {#3607, 972}, {#219705, 971}, {#296759, 958}, {#321658, 897}, {#9696, 894}, {#1423, 868}, {#876, 866}, {#9701, 860}, {#34899, 844}, {#13015, 790}, {#400691, 775}, {#218916, 770}, {#135955, 769}, {#241017, 764}, {#307, 763}, {#42157, 763}, {#181560, 751}, {#266494, 744}, {#34281, 741}, {#384, 740}, {#27490, 740}, {#890, 736}}
last_topitems#317rc#3611301466349
topitemvalues#317rc#361
list of 50{{#102661, 11700000}, {#19186, 6500000}, {#352712, 4620000}, {#821, 4305000}, {#1931, 4110000}, {#165258, 3996000}, {#300749, 3525000}, {#195562, 3420000}, {#52589, 2648000}, {#2012, 2456000}, {#16621, 2422000}, {#37310, 2144000}, {#78875, 2072000}, {#8324, 2016000}, {#42211, 1848000}, {#27172, 1748500}, {#306580, 1738400}, {#138730, 1725000}, {#111810, 1710000}, {#126720, 1687500}, {#131, 1683000}, {#28017, 1650000}, {#410459, 1645000}, {#13444, 1401600}, {#35717, 1396500}, {#6363, 1302000}, {#2265, 1292000}, {#147849, 1260000}, {#134176, 1200000}, {#29238, 1194000}, {#63898, 1175000}, {#87294, 1133560}, {#34281, 1111500}, {#35837, 1089000}, {#273324, 1080000}, {#545866, 1079892}, {#36264, 1066500}, {#141769, 1035000}, {#23483, 1014000}, {#30031, 1008000}, {#188744, 1000000}, {#746, 1000000}, {#505732, 950000}, {#20090, 936000}, {#37090, 909000}, {#26026, 900000}, {#220900, 894240}, {#1626, 851375}, {#150576, 850000}, {#216236, 836000}}
warehouse#68r#29<clear>
help_msg#68rc#361<clear>
feature_verbs#68r#29{}
feature_ok#68r#29<clear>
handed#5rc#361<clear>
wield_msg#5rc#361<clear>
unwield_msg#5rc#361<clear>
size#5rc#361<clear>
look_place_msg#5rc#361<clear>
value#5rc#361<clear>
get_msg#5rc#361<clear>
drop_msg#5rc#361<clear>
get_fail_msg#5rc#361<clear>
junk_ok#5rc#361<clear>
floats#5rc#361<clear>
long_name_msg#5rc#361<clear>
article#5rc#361<clear>
setup_list#5rc#361<clear>
health#5rc#361<clear>
health_max#5rc#361<clear>
min_skill#5rc#361<clear>
skill#5rc#361<clear>
recipe_for#5rc#361<clear>
carried_msg#5rc#361<clear>
aliases#1rc#361{"GameCheck FO", "gcfo"}
description#1rc#361<clear>
object_size#1r#29{284776, 1298434038}
hidden_verbs#1rc#361<clear>
phelp_msg#1rc#361<clear>
weight#1rc#361<clear>
owner_verbs#1rc#361<clear>
plural_name#1rc#361<clear>
client_image#1rc#361<clear>
listening#1rc#361<clear>

Ancestry

Ancestors (nearest first): #68 Generic Feature Object#5 generic thing#1 root

Children: none

Call graph

calls n317_0 #317:@countweapons n45_22 #45:descendants n317_0->n45_22 n48_8 #48:suspend_if_needed n317_0->n48_8 n47_23 #47:sort_alist n317_0->n47_23 n47_11 #47:reverse n317_0->n47_11 n47_16 #47:slice n317_0->n47_16 n20_1 #20:left n317_0->n20_1 n107_43 #107:tell n317_0->n107_43 n317_1 #317:allitems n317_1->n48_8 n45_25 #45:descendants_suspended n317_1->n45_25 n317_3 #317:totalvalue n317_3->n48_8 n317_4 #317:calc_topvalue n317_4->n48_8 n317_4->n47_23 n317_4->n47_11 n317_11 #317:networth n317_4->n317_11 n317_11->n317_1 n317_11->n317_3 n317_15 #317:allstock n317_11->n317_15 n317_5 #317:@topvalue n317_5->n48_8 n317_5->n107_43 n317_5->n317_4 n20_26 #20:group_number n317_5->n20_26 n20_2 #20:right n317_5->n20_2 n317_7 #317:@whohas n317_7->n48_8 n317_7->n20_1 n317_7->n107_43 n317_7->n20_2 n317_33 #317:match_for_ofind n317_7->n317_33 n20_59 #20:name_and_number n317_7->n20_59 n48_4 #48:yes_or_no n317_7->n48_4 n317_60 #317:game_owner n317_7->n317_60 n317_6 #317:extypeof n317_7->n317_6 n20_101 #20:smart_abbrev n317_7->n20_101 n47_24 #47:sort_alist_suspended n317_7->n47_24 n20_6 #20:english_list n317_7->n20_6 n47_14 #47:sort n317_7->n47_14 n317_33->n107_43 n317_8 #317:@allitems n317_8->n48_8 n317_8->n20_1 n317_8->n107_43 n317_8->n317_1 n317_8->n45_25 n317_8->n20_59 n317_8->n48_4 n317_8->n20_6 n44_0 #44:match n317_8->n44_0 n45_23 #45:leaves n317_8->n45_23 n45_0 #45:has_property n317_8->n45_0 n317_2 #317:typeof n317_8->n317_2 n47_0 #47:make n317_8->n47_0 n47_15 #47:sort_suspended n317_8->n47_15 n47_30 #47:reverse_suspended n317_8->n47_30 n317_9 #317:@countarmor n317_9->n45_22 n317_9->n48_8 n317_9->n20_1 n317_9->n107_43 n317_9->n48_4 n317_9->n47_24 n317_9->n47_30 n317_10 #317:_ofind n317_10->n48_8 n317_10->n107_43 n317_10->n20_59 n317_10->n317_2 n317_12 #317:@monsters n317_12->n48_8 n317_12->n20_1 n317_12->n107_43 n317_12->n20_2 n317_12->n317_33 n317_12->n20_59 n317_12->n47_14 n45_24 #45:branches n317_12->n45_24 n122_8 #122:strip n317_12->n122_8 n317_13 #317:@sizeup n317_13->n107_43 n317_13->n44_0 n317_14 #317:@positions n317_14->n48_8 n317_14->n47_11 n317_14->n20_1 n317_14->n107_43 n317_14->n20_2 n317_14->n47_14 n317_16 #317:@monsters-xp n317_16->n48_8 n317_16->n20_1 n317_16->n107_43 n317_16->n20_2 n317_16->n20_59 n317_16->n47_14 n317_16->n45_24 n317_16->n122_8 n317_17 #317:@monsters-new n317_17->n48_8 n317_17->n20_1 n317_17->n107_43 n317_17->n20_2 n317_17->n20_59 n317_17->n47_14 n317_17->n45_24 n317_17->n122_8 n45_26 #45:leaves_suspended n317_17->n45_26 n317_18 #317:@checkloot n317_18->n48_8 n317_18->n107_43 n317_18->n20_59 n317_18->n45_23 n317_19 #317:@spy n317_19->n48_8 n317_19->n107_43 n317_19->n20_59 n20_20 #20:match_player n317_19->n20_20

Showing 48 of 123 verbs; 75 not shown.

Source

@countweapons

Spec none none noneFlags rxdOwner #361Definer #317

Referenced by

none

Source

1"Count all nonfertile descendants of $weapon.";
2set = {};
3for x in ($ou:descendants($weapon))
4if (x.f)
5set = {@set, x};
6endif
7endfor
8sa = {};
9for x in (set)
10allkids = children(x);
11rightkids = {};
12for k in (allkids)
13if (!k.f)
14rightkids = {@rightkids, k};
15endif
16endfor
17count = length(rightkids);
18sa = {@sa, {x, count}};
19$cu:sin(0);
20endfor
21sa = $lu:sort_alist(sa, 2);
22sa = $lu:reverse(sa);
23set = $lu:slice(sa, 1);
24columns = {{"", "", "Weapon", "Value", "Spd", "Acc", "+Brn", "+Skl", "Damage", "Crit"}};
25widths = {7, 4, 16, 6, 4, 4, 5, 5, 11, 4};
26colors = {$ansi.blue, $ansi.bold_on, $ansi.bold_on, $ansi.green, "", "", "", "", $ansi.yellow, $ansi.red};
27for pair in (sa)
28if (pair[2] != 0)
29x = pair[1];
30count = pair[2];
31donex = 0;
32for d in (x.damage)
33if (donex)
34c = {"", "", "", "", "", "", "", ""};
35else
36c = {x, count, x.name, x.value, x.base_speed, x.accuracy, x.damage_from_brawn, x.damage_from_skill};
37donex = 1;
38endif
39c = {@c, (((d[1].abbrev + " ") + tostr(d[2])) + "-") + tostr(d[3])};
40c = {@c, tostr(d[4]) + "%"};
41columns = {@columns, c};
42endfor
43endif
44$cu:sin(0);
45endfor
46first = 1;
47for x in (columns)
48line = "";
49for y in [1..length(x)]
50line = ((line + (first ? "" | colors[y])) + $su:left(tostr(x[y]), -widths[y])) + (first ? "" | $ansi.reset);
51endfor
52player:tell(first ? (($ansi.bg_blue + $ansi.bold_on) + $ansi.underline_on) + $ansi.white | "", line, $ansi.reset);
53first = 0;
54$cu:sin(0);
55endfor

allitems

Spec this none thisFlags rxdOwner #361Definer #317

Referenced by

Source

1"allitems(OBJ player) => all items that could conceivably be construed as in that player's possession.";
2if ((length(args) < 1) && (length(args) > 2))
3return E_ARGS;
4elseif ((typeof(args[1]) != OBJ) || (!is_player(args[1])))
5return E_INVARG;
6endif
7who = args[1];
8force_prog_check = (length(args) == 2) ? args[2] | 0;
9search = {who};
10stuff = {};
11if ((!who.programmer) || force_prog_check)
12"search rooms.";
13for x in (who.owned_objects)
14if (is_a(x, $room))
15search = {@search, x};
16endif
17$cu:sin();
18endfor
19endif
20for box in ($ou:descendants_suspended(this.depositbox))
21if (box.player == who)
22search = {@search, box};
23endif
24$cu:sin(0);
25endfor
26"search contents of 'search' until there is nothing to search.";
27while (search != {})
28newsearch = {};
29for place in (search)
30for item in (place.contents)
31if ((!is_player(item)) && (item.contents != {}))
32newsearch = {@newsearch, item};
33endif
34if (((!is_player(item)) && (!is_a(item, $room))) && (!is_a(item, $exit)))
35stuff = {@stuff, item};
36endif
37$cu:sin();
38endfor
39$cu:sin();
40endfor
41search = newsearch;
42endwhile
43return stuff;

typeof

Spec this none thisFlags rxdOwner #361Definer #317

Referenced by

Source

1"typeof(OBJ x) => STR typename";
2{x} = args;
3while (valid(x))
4if (type = `this.corelist[x] ! E_RANGE => ""')
5return type;
6endif
7x = parent(x);
8yield;
9endwhile
10return "???";

totalvalue

Spec this none thisFlags rxdOwner #361Definer #317

Referenced by

Source

1"totalvalue(LIST objects) => INT value of objects";
2if (length(args) != 1)
3return E_ARGS;
4elseif (typeof(args[1]) != LIST)
5return E_INVARG;
6endif
7t = 0;
8for o in (args[1])
9if (is_a(o, $glob))
10t = t + `toint(o.item.value * o.amount) ! ANY => 0';
11else
12t = t + `toint(o.value) ! ANY => 0';
13endif
14$cu:sin(0);
15endfor
16return t;

calc_topvalue

Spec this none thisFlags rxdOwner #361Definer #317

Referenced by

Source

1"calc_topvalue(INT force) => recalculate the top players by possessions value";
2if ((!((length(args) == 1) && args[1])) && (time() < (this.last_topvalue_time + ((60 * 60) * 24))))
3"It's been done within the last day.";
4return {};
5endif
6this.last_topvalue_time = time();
7topten = {};
8gnp = 0;
9n = 0;
10this.allvalues = {};
11now = time();
12this.zeros = {};
13for p in (players())
14if (#186440:is_scorable(p))
15totalval = this:networth(p);
16gnp = gnp + totalval;
17n = n + 1;
18this.allvalues = {@this.allvalues, totalval};
19if (totalval == 0)
20this.zeros = {@this.zeros, p};
21endif
22$cu:sin(0, "Calculating...");
23if (length(topten) < 10)
24topten = {@topten, {p, totalval}};
25topten = $list_utils:sort_alist(topten, 2);
26topten = $list_utils:reverse(topten);
27elseif (topten[10][2] < totalval)
28topten[10] = {p, totalval};
29topten = $list_utils:sort_alist(topten, 2);
30topten = $list_utils:reverse(topten);
31endif
32endif
33$cu:sin(0, "Calculating...");
34endfor
35this.gnp = gnp;
36this.gnp_per = gnp / n;
37this.topvalue = topten;
38return {@topten, gnp, n};

@topvalue

Spec none none noneFlags rxdOwner #361Definer #317

Referenced by

none

Source

1if (time() > (this.last_topvalue_time + ((24 * 60) * 60)))
2if (caller = this.anyport)
3player:tell("The writing is hard to make out. You stare at it for a while. [processing...]");
4endif
5this:calc_topvalue();
6endif
7widths = {18, 20};
8colors = {$ansi.bold_on + $ansi.yellow, $ansi.yellow};
9columns = {};
10if (is_player(caller) && caller.programmer)
11columns = {"Top Ten Players By Value Of Possessions", ""};
12for d in (this.topvalue)
13columns = {@columns, {d[1].name, "$" + $su:group_number(d[2])}};
14$cu:sin(0);
15endfor
16columns = {@columns, (($ansi.red + "            Total MOO GNP:  ") + $su:right("$" + $su:group_number(this.gnp), 10)) + $ansi.reset};
17columns = {@columns, (($ansi.red + "            GNP per player: ") + $su:right("$" + $su:group_number(this.gnp_per), 10)) + $ansi.reset};
18else
19rank = 1;
20for d in (this.topvalue)
21columns = {@columns, {tostr("#", rank), d[1].name}};
22rank = rank + 1;
23$cu:sin(0);
24endfor
25endif
26for x in (columns)
27if (typeof(x) == LIST)
28line = "";
29for y in [1..length(x)]
30line = (line + colors[y]) + $su:right(tostr(x[y]), widths[y]);
31endfor
32player:tell(line + $ansi.reset);
33else
34player:tell(x);
35endif
36$cu:sin(0);
37endfor

extypeof

Spec this none thisFlags rxdOwner #361Definer #317

Referenced by

Source

1":extypeof(OBJ what) => STR extended type name of 'what', or '???'. Uses this.typehash.";
2{x} = args;
3if (!valid(x))
4return "invalid";
5endif
6while (valid(x))
7type = `this.typehash[x] ! E_RANGE => ""';
8if (type)
9return type;
10endif
11x = parent(x);
12endwhile
13return "???";

@whohas @whohas+

Spec any none noneFlags rxdOwner #361Definer #317

Referenced by

none

Source

1"List the owners/locations of children of an object.";
2if (!argstr)
3player:tell("Usage: @whohas[+] <what>");
4return;
5endif
6show_objnums = verb == "@whohas+";
7if (!valid(dobj))
8player:tell(tostr("Searching for '", dobjstr, "'..."));
9what = #317:match_for_ofind(dobjstr);
10if ((typeof(what) == OBJ) && (!valid(what)))
11player:tell("No matches for '", dobjstr, "'.");
12return;
13endif
14if (typeof(what) == LIST)
15player:tell($ansi.bold_on, "Ambiguous search returned multiple results.  Please be more specific.", $ansi.reset);
16player:tell($ansi.bold_on, "[  Matches for '", dobjstr, "':  ]", $ansi.reset);
17for o in (what)
18player:tell("  ", $ansi.blue, $ansi.bold_on, $su:left(tostr(o), 9), $ansi.yellow, o.name, $ansi.reset);
19endfor
20return;
21endif
22dobj = what;
23endif
24if (!valid(dobj))
25player:tell("@whohas what?");
26return;
27endif
28if (dobj.f)
29player:tell(("Listing children of " + $su:nn(dobj)) + ":");
30allkids = children(dobj);
31else
32allkids = {dobj};
33endif
34set = {};
35for k in (allkids)
36if (!k.f)
37set = {@set, k};
38endif
39yield;
40endfor
41for g in (children($glob))
42if (is_a(g, $glob) && (g.item == dobj))
43set = {@set, g};
44endif
45yield;
46endfor
47warn_limit = show_objnums ? 40 | 400;
48if ((length(set) > warn_limit) && (!$cu:yes_or_no(("This will return " + tostr(length(set))) + " items. Is that okay?")))
49player:tell("Aborting.");
50return;
51endif
52widths = {25, 8, 46};
53colors = {"", $ansi.blue, $ansi.red};
54data = {};
55for x in (set)
56$cu:sin();
57if (!gamevalid(x))
58continue;
59endif
60datum = {x};
61whose = #-3;
62whosestr = "-- not found ---";
63extrastr = "";
64whose = this:game_owner(x);
65real_room = x:room();
66if (valid(whose))
67if (`whose.programmer ! ANY')
68continue;
69endif
70if (is_a(whose, $biz))
71whosestr = $ansi.brightyellow + whose.symbol;
72elseif (is_a(whose, $player))
73whosestr = $ansi.brightwhite + $su:nn(whose);
74else
75whosestr = tostr($ansi.green, this:extypeof(whose), " ", whose);
76endif
77endif
78datum = {@datum, whosestr};
79if ((!valid(real_room)) || (!valid(area(real_room))))
80continue;
81endif
82if (((!(is_in(real_room, $earth) || is_in(real_room, #10760))) || is_a(area(real_room), #37911)) || area(real_room).admin_ok)
83continue;
84endif
85datum = {@datum, ($su:nn(real_room) + ", ") + $su:smart_abbrev(area(real_room).name, 20, 20)};
86if (x.name != dobj.name)
87datum = {@datum, x.name};
88else
89datum = {@datum, ""};
90endif
91datum = {@datum, #-1};
92datum = {@datum, {datum[1]}};
93$cu:sin();
94"Check for matches.";
95index = 1;
96added = 0;
97listlen = length(data);
98while ((!added) && (index <= listlen))
99if (data[index][2..5] == datum[2..5])
100data[index][6] = {@data[index][6], datum[1]};
101added = 1;
102endif
103index = index + 1;
104$cu:sin();
105endwhile
106if (!added)
107data = {@data, datum};
108endif
109endfor
110if (!data)
111player:tell("There are no matching objects in the game world.");
112return;
113endif
114data = $lu:sort_alist_suspended(1, data, 2);
115"Add to columns.";
116columns = {};
117totalcount = 0;
118counts = {};
119last_whosestr = "";
120for d in (data)
121if (show_objnums && (d[2] == last_whosestr))
122d[2] = "";
123else
124last_whosestr = d[2];
125endif
126count = 0;
127for item in (d[6])
128count = count + ((parent(item) == $glob) ? item.amount | 1);
129yield;
130endfor
131if ((!show_objnums) || (count > 1))
132d[1] = ($ansi.cyan + "x") + tostr(count);
133columns = {@columns, {d[2], d[1], d[3]}};
134if (show_objnums)
135itemslist = d[6];
136while (length(itemslist) > 8)
137thisline = (((("   " + $ansi.blue) + "(") + $string_utils:english_list(itemslist[1..8], "", " ")) + ")") + $ansi.reset;
138columns = {@columns, thisline};
139itemslist = itemslist[9..$];
140endwhile
141thisline = (((("   " + $ansi.blue) + "(") + $string_utils:english_list(itemslist[1..$], "", " ")) + ")") + $ansi.reset;
142columns = {@columns, thisline};
143else
144totalcount = totalcount + count;
145counts = {@counts, count};
146endif
147else
148columns = {@columns, {d[2], d[1], d[3]}};
149endif
150if (d[4] != "")
151columns = {@columns, (((("                         " + $ansi.bold_on) + tostr(d[1])) + ".name = ") + d[4]) + $ansi.reset};
152endif
153endfor
154if (!show_objnums)
155columns = $lu:sort(columns, counts);
156endif
157firstcolumns = {"Whose", "", "Location"};
158firstline = (($ansi.bg_blue + $ansi.bold_on) + $ansi.underline_on) + $ansi.white;
159for y in [1..length(firstcolumns)]
160firstline = ((firstline + colors[y]) + $su:left(tostr(firstcolumns[y]), -widths[y])) + $ansi.reset;
161endfor
162player:tell(firstline, $ansi.reset);
163for x in (columns)
164if (typeof(x) == LIST)
165line = "";
166for y in [1..length(x)]
167line = ((line + colors[y]) + $su:left(tostr(x[y]), -widths[y])) + $ansi.reset;
168endfor
169player:tell(line, $ansi.reset);
170else
171player:tell(x);
172endif
173$cu:sin();
174endfor
175player:tell($su:right("Total: ", widths[1]), $ansi.cyan, $ansi.bold_on, totalcount, $ansi.reset);

@allitems @allitems+

Spec any none noneFlags rxdOwner #361Definer #317

Referenced by

none

Source

1player:tell("working on it");
2"All items a player might (probably) own.";
3if (length(args) != 1)
4player:tell("Usage: @allitems <player>");
5return;
6endif
7if (!valid(dobj))
8dobj = $match_utils:match(dobjstr, $object_utils:descendants_suspended(#40));
9endif
10if (!is_player(dobj))
11player:tell("Usage: @allitems <player>");
12return;
13elseif (dobj.programmer)
14if (verb != "@allitems+")
15player:tell(dobj.name + " is a programmer, only listing their inventory:");
16else
17player:tell(("Listing complete possessions for " + dobj.name) + ":");
18endif
19else
20player:tell(("Listing possessions of " + $su:nn(dobj)) + ":");
21endif
22items = this:allitems(dobj, verb == "@allitems+");
23if ((length(items) > 40) && (!$cu:yes_or_no(("This will return " + tostr(length(items))) + " items. Is that okay?")))
24player:tell("Aborting.");
25return;
26endif
27columns = {{"", "Name", "Value", "Type"}};
28widths = {8, 47, 10, 15};
29colors = {$ansi.blue, $ansi.bold_on, $ansi.yellow, $ansi.red};
30data = {};
31totalvalue = 0;
32"Add current on-hand cash, just for fun.";
33data = {{"", "liquid assets", dobj.credit, "cash", {""}}};
34"Also add stock.";
35for biz in ($ou:leaves($biz))
36$cu:sin(1);
37if (dobj in biz.ranks["holders"])
38bizvalue = biz.credit / length(biz.ranks["holders"]);
39data = {@data, {"", tostr("stock in ", biz.symbol), bizvalue, "stock", {""}}};
40totalvalue = totalvalue + bizvalue;
41endif
42endfor
43for x in (items)
44val = 0;
45$cu:sin(1);
46if (is_a(x, $glob))
47item = x.item;
48if (!valid(item))
49continue;
50endif
51val = toint($ou:has_property(item, "value") ? item.value | 0);
52datum = {item, item.name, val, this:typeof(item), $lu:make(x.amount, item)};
53else
54val = toint($ou:has_property(x, "value") ? x.value | 0);
55datum = {x, x.name, val, this:typeof(x), {x}};
56endif
57totalvalue = totalvalue + val;
58$cu:sin(1);
59"Check for matches.";
60index = 1;
61added = 0;
62listlen = length(data);
63while ((!added) && (index <= listlen))
64if (data[index][2..4] == datum[2..4])
65data[index][5] = {@data[index][5], @datum[5]};
66added = 1;
67endif
68index = index + 1;
69$cu:sin(1);
70endwhile
71if (!added)
72data = {@data, datum};
73endif
74endfor
75"Sort, because I like to eat up ticks.";
76totals = {};
77for bit in (data)
78totals = {@totals, toint(bit[3]) * length(bit[5])};
79endfor
80data = $list_utils:sort_suspended(0, data, totals);
81data = $list_utils:reverse_suspended(data);
82"Add to columns.";
83for d in (data)
84if (length(d[5]) > 1)
85d[1] = "";
86d[2] = (((d[2] + " ") + $ansi.cyan) + "x") + tostr(length(d[5]));
87d[3] = ((tostr(d[3]) + $ansi.cyan) + "x") + tostr(length(d[5]));
88columns = {@columns, {d[1], d[2], d[3], d[4]}};
89itemslist = d[5];
90while (length(itemslist) > 7)
91thisline = (((("          " + $ansi.blue) + "(") + $string_utils:english_list(itemslist[1..7], "", " ")) + ")") + $ansi.reset;
92columns = {@columns, thisline};
93itemslist = itemslist[8..$];
94endwhile
95thisline = (((("          " + $ansi.blue) + "(") + $string_utils:english_list(itemslist[1..$], "", " ")) + ")") + $ansi.reset;
96columns = {@columns, thisline};
97else
98columns = {@columns, {d[1], d[2], d[3], d[4]}};
99endif
100$cu:sin(1);
101endfor
102first = 1;
103for x in (columns)
104if (typeof(x) == LIST)
105line = "";
106for y in [1..length(x)]
107line = ((line + (first ? "" | colors[y])) + $su:left(tostr(x[y]), -widths[y])) + (first ? "" | $ansi.reset);
108endfor
109player:tell(first ? (($ansi.bg_blue + $ansi.bold_on) + $ansi.underline_on) + $ansi.white | "", line, $ansi.reset);
110first = 0;
111else
112player:tell(x);
113endif
114$cu:sin(1);
115endfor
116player:tell(((($ansi.yellow + $ansi.bold_on) + $su:left("  Total Value of all items:       ", -54)) + tostr(totalvalue + dobj.credit)) + $ansi.reset);

@countarmor @countclothing

Spec none none noneFlags rxdOwner #361Definer #317

Referenced by

none

Source

1"Count all nonfertile descendants of $clothing.";
2if (verb == "@countarmor")
3armorcheck = 1;
4else
5armorcheck = 0;
6endif
7set = {};
8for x in ($ou:descendants($clothing))
9$cu:sin(0);
10if (x.f && (armorcheck ? x.armor | 1))
11set = {@set, x};
12endif
13endfor
14if ((length(set) > 40) && (!$cu:yes_or_no(("There are " + tostr(length(set))) + " items in the list, and all their children must be counted. This will take a bit of work and might be spammy. Is this okay?")))
15player:tell("Aborting.");
16return;
17endif
18sa = {};
19for x in (set)
20allkids = children(x);
21rightkids = {};
22for k in (allkids)
23if (!k.f)
24rightkids = {@rightkids, k};
25endif
26endfor
27$cu:sin(0);
28sa = {@sa, {x, length(rightkids)}};
29endfor
30sa = $lu:sort_alist_suspended(0, sa, 2);
31sa = $lu:reverse_suspended(sa);
32columns = {{"", "", "Armor", "Value", "Beat", "Slsh", "Stab", "Bull", "Burn", "Elec", "Acid", "EMP "}};
33widths = {7, 4, 16, 6, 6, 6, 6, 6, 6, 6, 6, 6};
34colors = {$ansi.blue, $ansi.bold_on, $ansi.bold_on, $ansi.green, "", "", "", "", "", "", "", ""};
35for pair in (sa)
36x = pair[1];
37count = pair[2];
38if (count != 0)
39c = {tostr(x), count, $su:left(strsub(strsub(x.name, "pair of ", ""), "_", " "), -19), tostr(x.value), "*", "*", "*", "*", "*", "*", "*", "*"};
40for y in (x.armor)
41type = y[1] in {#268, #277, #278, #279, #280, #281, #282, #308};
42if (y[3] && type)
43c[type + 3] = (tostr(y[2]) + "-") + tostr(y[3]);
44endif
45endfor
46columns = {@columns, c};
47endif
48$cu:sin(0);
49endfor
50first = 1;
51for x in (columns)
52line = "";
53for y in [1..length(x)]
54line = ((line + (first ? "" | colors[y])) + $su:left(tostr(x[y]), -widths[y])) + (first ? "" | $ansi.reset);
55endfor
56player:tell(first ? (($ansi.bg_blue + $ansi.bold_on) + $ansi.underline_on) + $ansi.white | "", line, $ansi.reset);
57first = 0;
58$cu:sin(0);
59endfor

_ofind

Spec this none thisFlags rxdOwner #361Definer #317

Referenced by

Source

1"_ofind(STR searchstring, OBJ startfrom, INT everything 0|1) => 1.";
2"Tells player about the first object to match searchstring doing a breadth-first search of the object tree starting from startfrom. Only searches fertile objects unless everything == 1.";
3everything = 0;
4all = 0;
5{searchstring, startfrom, everything, all} = args;
6if ((searchstring == "") || (!valid(startfrom)))
7return E_INVARG;
8endif
9if ((!player.programmer) && (!player.wizard))
10return E_PERM;
11endif
12togo = {startfrom};
13results = {};
14nsearched = 0;
15while (togo)
16found = #-1;
17nextobj = togo[1];
18if (everything)
19$cu:sin(0, "[@ofind+ working...]");
20else
21$cu:sin(0);
22endif
23togo = listdelete(togo, 1);
24nsearched = nsearched + 1;
25if (((nextobj.name == searchstring) || (searchstring in nextobj.aliases)) || (index(nextobj.name, searchstring, 0) > 0))
26if (!all)
27togo = {};
28endif
29found = nextobj;
30else
31"try alias substrings";
32for alias in (nextobj.aliases)
33if (index(alias, searchstring, 0) > 0)
34if (!all)
35togo = {};
36endif
37found = nextobj;
38break;
39endif
40endfor
41if (!valid(found))
42fertilekids = {};
43if (!everything)
44for k in (children(nextobj))
45if (k.f)
46fertilekids = {@fertilekids, k};
47endif
48$cu:sin();
49endfor
50else
51fertilekids = children(nextobj);
52endif
53togo = {@togo, @fertilekids};
54endif
55endif
56if (valid(found))
57player:tell($ansi.bold_on, "Found: ", $ansi.reset, $su:nn(found), $ansi.red, " [", this:typeof(found), "]", $ansi.reset);
58results = {@results, found};
59endif
60$cu:sin(2);
61endwhile
62player:tell("@ofind complete. Searched ", nsearched, " objects.");

networth

Spec this none thisFlags rxdOwner #361Definer #317

Referenced by

Source

1"networth(OBJ player) => INT the sum total of the value of the player's possessions. Unreliable for programmers, etc, for obvious reasons.";
2p = args[1];
3if (!valid(p))
4return E_INVARG;
5endif
6items = this:allitems(p);
7stock = this:allstock(p);
8return `(this:totalvalue(items) + stock) + p.credit ! ANY => 0';

@monsters

Spec any none noneFlags rxdOwner #361Definer #317

Referenced by

none

Source

1"Copied from Freedom (#53609):@monsters3 by sage (#657) Sat Oct 18 01:02:16 2008 CDT";
2"Copied from GameCheck FO (#317):@monsters by Satan (#2) Fri Oct 17 20:35:55 2008 CDT";
3if (length(args) > 0)
4if (!valid(dobj))
5player:tell(tostr("Searching for '", dobjstr, "'..."));
6target = #317:match_for_ofind(dobjstr);
7if ((typeof(target) == OBJ) && (!valid(target)))
8player:tell("No matches for '", dobjstr, "'.");
9return;
10endif
11if (typeof(target) == LIST)
12for o in (target)
13if (!is_a(o, $monster))
14target = setremove(target, o);
15endif
16endfor
17if (length(target) == 0)
18player:tell("No matches for '", dobjstr, "'.");
19return;
20endif
21if (length(target) == 1)
22target = target[1];
23else
24player:tell($ansi.bold_on, "Ambiguous search returned multiple results.  Please be more specific.", $ansi.reset);
25player:tell($ansi.bold_on, "[  Matches for '", dobjstr, "':  ]", $ansi.reset);
26for o in (target)
27player:tell("  ", $ansi.blue, $ansi.bold_on, $su:left(tostr(o), 9), $ansi.yellow, o.name, $ansi.reset);
28endfor
29return;
30endif
31endif
32if (!is_a(target, $monster))
33player:tell("That's not a monster.");
34return;
35endif
36else
37if (is_a(dobj, $monster) && dobj.f)
38target = dobj;
39else
40return player:tell($su:nn(dobj), " isn't a monster or is infertile!");
41endif
42endif
43else
44target = $monster;
45endif
46final = {};
47index = {};
48monsters = $ou:branches(target);
49if (monsters == {})
50monsters = {target};
51endif
52for m in (monsters)
53$cu:sin();
54name = $su:nn(m);
55name = $ansi:strip(name);
56rating = m:threat_rating();
57if (length(name) > 29)
58name = name[1..29];
59endif
60if (m.xp_value == 0)
61ratio = 0;
62else
63ratio = tofloat(m.xp_value) / tofloat(rating);
64ratio = tostr(tofloat(toint(ratio * 100.0)) / 100.0);
65if (length(ratio) == 3)
66ratio = ratio + "0";
67endif
68endif
69dropoff = m.xp_value * $rpg.creature_xp_curve;
70final = {@final, (((" " + (($su:left(name, 30) + $su:right(tostr(rating), 4)) + $su:right(tostr(m.xp_value), 4))) + $su:right(tostr(ratio), 7)) + $su:right(tostr(dropoff), 8)) + $su:right(tostr(dropoff + (m.xp_value * $rpg.creature_xp_curve)), 8)};
71index = {@index, dropoff};
72rating = 0;
73endfor
74final = {@final, (($ansi.bold_on + $ansi.yellow) + "Newbie Monsters:") + $ansi.reset};
75final = {@final, (($ansi.bold_on + $ansi.yellow) + "Toughies:") + $ansi.reset};
76final = {@final, (($ansi.bold_on + $ansi.yellow) + "Bad News:") + $ansi.reset};
77final = {@final, (($ansi.bold_on + $ansi.yellow) + "Heavy Hitters:") + $ansi.reset};
78index = {@index, 0};
79index = {@index, 16000};
80index = {@index, 37000};
81index = {@index, 53000};
82player:tell(((((((((($ansi.bg_blue + $ansi.white) + $ansi.bold_on) + " ") + $su:left("Monster", 30)) + $su:right("Tht", 4)) + $su:right("XP", 4)) + $su:right("Ratio", 7)) + $su:right("Dropoff", 8)) + $su:right("Zeroed", 8)) + $ansi.reset);
83for t in ($lu:sort(final, index))
84$cu:sin();
85player:tell(t);
86endfor

@sizeup

Spec any with/using anyFlags rxdOwner #361Definer #317

Referenced by

none

Source

1"Copied from Jed (#2918):sizeup2 Fri Nov 17 00:12:52 2006 PST";
2target1 = $match_utils:match(dobjstr, player.location:occupants($living));
3target2 = $match_utils:match(iobjstr, player.location:occupants($living));
4if ((!valid(target1)) || (!valid(target2)))
5player:tell("@sizeup what?");
6return;
7endif
8his = target1:weapon():edps(target1, target2);
9mine = target2:weapon():edps(target2, target1);
10player:tell(target1:dnamec(), " delivers ", his, " damage per second to ", target2:dnamec(), ".");
11player:tell(target2:dnamec(), " delivers ", mine, " damage per second to ", target1.po, ".");
12if (his > 0.0)
13histime = toint(tofloat(target2.health_max) * (1.0 / his));
14else
15histime = 9999;
16endif
17if (mine > 0.0)
18mytime = toint(tofloat(target1.health_max) * (1.0 / mine));
19else
20mytime = 9999;
21endif
22player:tell("It'd take ", target2:dnamec(), " ", mytime, " seconds to kill ", target1:dnamec(), ".");
23player:tell("It'd take ", target1:dnamec(), " ", histime, " seconds to kill ", target2:dnamec(), ".");

@positions

Spec none none noneFlags rxdOwner #361Definer #317

Referenced by

none

Source

1"Show stats on where each player is, by area.";
2areas = {};
3players = players();
4counts = {};
5for p in (players)
6a = `p:area() ! ANY => #-1';
7if (i = a in areas)
8counts[i] = counts[i] + 1;
9else
10areas = {@areas, a};
11counts = {@counts, 1};
12endif
13$cu:sin(0);
14endfor
15areas = $lu:reverse($lu:sort(areas, counts));
16player:tell((($ansi.bg_blue + $ansi.white) + "    Location Breakdown  ") + $ansi.reset);
17i = 1;
18while (i <= length(areas))
19a = areas[i];
20c = counts[i];
21player:tell(((($ansi.yellow + "    ") + $su:left(valid(a) ? a.name | "Nowhere (#-1)", 40)) + "     ") + $su:right(c, 5));
22i = i + 1;
23$cu:sin(0);
24endwhile
25player:tell((($ansi.bg_blue + $ansi.white) + "                        ") + $ansi.reset);

allstock

Spec this none thisFlags rxdOwner #361Definer #317

Referenced by

Source

1"allstock(OBJ player) => INT all stock held by this player in businesses.";
2p = args[1];
3if (!valid(p))
4return E_INVARG;
5endif
6if (valid(`p.employer ! ANY => #-1'))
7if (p in p.employer.ranks["holders"])
8return p.employer.credit / length(p.employer.ranks["holders"]);
9endif
10endif

@monsters-xp

Spec any none noneFlags rxdOwner #361Definer #317

Referenced by

none

Source

1if (length(args) > 0)
2target = toobj(args[1]);
3else
4target = $monster;
5endif
6final = {};
7index = {};
8monsters = $ou:branches(target);
9if (monsters == {})
10monsters = {target};
11endif
12for m in (monsters)
13$cu:sin();
14name = $su:nn(m);
15name = $ansi:strip(name);
16rating = m:threat_rating();
17if (length(name) > 29)
18name = name[1..29];
19endif
20if (m.xp_value == 0)
21ratio = 0;
22else
23ratio = tofloat(m.xp_value) / tofloat(rating);
24ratio = tostr(tofloat(toint(ratio * 100.0)) / 100.0);
25if (length(ratio) == 3)
26ratio = ratio + "0";
27endif
28endif
29dropoff = m.xp_value * $rpg.creature_xp_curve;
30final = {@final, (((" " + (($su:left(name, 30) + $su:right(tostr(rating), 4)) + $su:right(tostr(m.xp_value), 4))) + $su:right(tostr(ratio), 7)) + $su:right(tostr(dropoff), 8)) + $su:right(tostr(dropoff + (m.xp_value * $rpg.creature_xp_curve)), 8)};
31index = {@index, m.xp_value};
32rating = 0;
33endfor
34final = {@final, (($ansi.bold_on + $ansi.yellow) + "Newbie Monsters:") + $ansi.reset};
35final = {@final, (($ansi.bold_on + $ansi.yellow) + "Toughies:") + $ansi.reset};
36final = {@final, (($ansi.bold_on + $ansi.yellow) + "Bad News:") + $ansi.reset};
37final = {@final, (($ansi.bold_on + $ansi.yellow) + "Heavy Hitters:") + $ansi.reset};
38index = {@index, 0};
39index = {@index, 20};
40index = {@index, 40};
41index = {@index, 60};
42player:tell(((((((((($ansi.bg_blue + $ansi.white) + $ansi.bold_on) + " ") + $su:left("Monster", 30)) + $su:right("Tht", 4)) + $su:right("XP", 4)) + $su:right("Ratio", 7)) + $su:right("Dropoff", 8)) + $su:right("Zeroed", 8)) + $ansi.reset);
43for t in ($lu:sort(final, index))
44$cu:sin();
45player:tell(t);
46endfor

@monsters-new

Spec any none noneFlags rxdOwner #361Definer #317

Referenced by

none

Source

1if (length(args) > 0)
2target = toobj(args[1]);
3monsters = $ou:leaves_suspended(target);
4else
5target = $monster;
6monsters = $ou:branches(target);
7endif
8final = {};
9index = {};
10if (monsters == {})
11monsters = {target};
12endif
13for m in (monsters)
14$cu:sin();
15name = $su:nn(m);
16name = $ansi:strip(name);
17rating = m:threat_rating();
18ntr = m:_new_threat_rating();
19if (length(name) > 29)
20name = name[1..29];
21endif
22dropoff = m.xp_value * $rpg.creature_xp_curve;
23zeroed = dropoff + (m.xp_value * $rpg.creature_xp_curve);
24if ((((dropoff + zeroed) / 2) == 0) || (ntr == 0))
25ratio = 0;
26else
27ratio = tofloat((dropoff + zeroed) / 2) / tofloat(ntr);
28ratio = tostr(tofloat(toint(ratio * 100.0)) / 100.0);
29if (length(ratio) == 3)
30ratio = ratio + "0";
31endif
32endif
33final = {@final, (((((" " + ((($su:left(name, 30) + $su:right(tostr(rating), 4)) + $su:right(tostr(ntr / 200), 5)) + $su:right(tostr(m.xp_value), 4))) + $su:right(tostr(toint(((ntr / 200) > 80) ? tofloat(ntr / 200) * 0.3 | (tofloat(ntr / 200) * 0.5))), 4)) + $su:right(tostr(ratio), 7)) + $su:right(tostr(dropoff), 8)) + $su:right(tostr(zeroed), 8)) + $su:right(tostr(ntr), 8)};
34index = {@index, ntr / 100};
35rating = 0;
36endfor
37header = ((((((((((($ansi.bg_blue + $ansi.white) + $ansi.bold_on) + " ") + $su:left("Monster", 30)) + $su:right("Tht", 5)) + $su:right("New", 4)) + $su:right("XP", 4)) + $su:right("New", 4)) + $su:right("Ratio", 7)) + $su:right("Dropoff", 8)) + $su:right("Zeroed", 8)) + $ansi.reset;
38final = {@final, header};
39final = {@final, (($ansi.bold_on + $ansi.yellow) + "Newbie Monsters:") + $ansi.reset};
40final = {@final, header};
41final = {@final, (($ansi.bold_on + $ansi.yellow) + "Toughies:") + $ansi.reset};
42final = {@final, header};
43final = {@final, (($ansi.bold_on + $ansi.yellow) + "Bad News:") + $ansi.reset};
44final = {@final, header};
45final = {@final, (($ansi.bold_on + $ansi.yellow) + "Heavy Hitters:") + $ansi.reset};
46index = {@index, 0};
47index = {@index, 0};
48index = {@index, 20};
49index = {@index, 20};
50index = {@index, 40};
51index = {@index, 40};
52index = {@index, 60};
53index = {@index, 60};
54for t in ($lu:sort(final, index))
55$cu:sin();
56player:tell(t);
57endfor

@checkloot

Spec none none noneFlags rxdOwner #361Definer #317

Referenced by

none

Source

1chests = $ou:leaves(#398);
2chests = {@chests, @$ou:leaves(#9045)};
3for chest in (chests)
4loot = chest:occupants($glob);
5if (loot)
6msg = "";
7for treasure in (loot)
8if (treasure.amount > 1)
9msg = ((((msg + "  ") + treasure:list_name()) + " (") + tostr(treasure)) + ")";
10endif
11$cu:sin(0);
12endfor
13if (msg)
14msg = ($su:nn(chest) + ":") + msg;
15player:tell(msg);
16endif
17endif
18endfor

@spy

Spec any none noneFlags rxdOwner #361Definer #317

Referenced by

none

Source

1target = valid(dobj) ? dobj | $su:match_player(dobjstr);
2if (!valid(target))
3return player:tell("Usage: @spy <player|object|room>");
4endif
5where = #-1;
6orig_target = target;
7while (!valid(where))
8if (is_a(target, $region))
9return player:tell("Use @rspy for regions.");
10elseif (is_a(target, $area))
11return player:tell("Use @aspy for areas.");
12elseif (!is_a(target, $room))
13if (!valid(target.location))
14return player:tell($su:nn(orig_target) + " isn't in a room.");
15endif
16target = target.location;
17else
18where = target;
19endif
20endwhile
21if (where == #742)
22return player:tell(tostr($su:nn(orig_target), " is in limbo."));
23elseif (where == #485)
24return player:tell($su:nn(orig_target), " is in the wall of cubes.");
25endif
26player:tell(tostr(where:title(), " ", where));
27{players, monsters, loot, bodies} = where:spy_report();
28$cu:sin(0);
29if (players)
30player:tell("Players:");
31for p in (players)
32player:tell("   " + this:quickbar(p));
33$cu:sin(0);
34endfor
35endif
36if (monsters)
37player:tell("NPCs:");
38for m in (monsters)
39player:tell("   " + this:quickbar(m));
40$cu:sin(0);
41endfor
42endif
43if (bodies)
44player:tell("Bodies:");
45for p in (bodies)
46player:tell("   " + this:quickbar(p));
47$cu:sin(0);
48endfor
49endif
50if (loot)
51lootvalue = 0;
52for l in (loot)
53lootvalue = lootvalue + l:value();
54$cu:sin(0);
55endfor
56player:tell(tostr("Loot: ", length(loot), " items (", $ansi.green, "$", lootvalue, $ansi.reset, ")"));
57endif
58player:tell();

quickbar

Spec this none thisFlags rxdOwner #361Definer #317

Referenced by

Source

1o = args[1];
2wpn = #-1;
3if (o.wielding)
4for w in (o.wielding)
5if (is_a(w, $weapon))
6wpn = w;
7break w;
8endif
9endfor
10endif
11if (!valid(wpn))
12wpn = o.unarmed_weapon;
13endif
14if (typeof(wpn) == LIST)
15wpn = $su:from_list($lu:map_verb(wpn, "name"), "/");
16elseif (valid(wpn))
17wpn = wpn:name();
18else
19wpn = "-";
20endif
21name = $su:nn(o);
22color = "";
23health = tostr(o.health, "/", o.health_max);
24ratio = tofloat(o.health) / tofloat(o.health_max);
25if (ratio <= this.health_red)
26health = ($ansi.red + health) + $ansi.reset;
27elseif (ratio <= this.health_yellow)
28health = ($ansi.yellow + health) + $ansi.reset;
29endif
30xp = "";
31if (is_a(o, $player))
32if (o.wizard)
33color = $ansi.cyan;
34elseif (o.programmer)
35color = $ansi.purple;
36endif
37xp = tostr(o.xp, "XP");
38elseif (has_property(o, "xp_value"))
39xp = tostr(o.xp_value, "XP");
40endif
41quickbar = tostr(color, $su:nn(o), $ansi.reset, " [", health, ", ", xp, ", ", wpn, "]");
42return quickbar;

@aspy

Spec any none noneFlags rxdOwner #361Definer #317

Referenced by

none

Source

1area = valid(dobj) ? dobj | (dobjstr ? $mu:match(dobjstr, $ou:leaves_suspended($area)) | area(player));
2if ((!valid(area)) || (!is_a(area, $area)))
3player:tell("Usage: @aspy <area>.");
4return;
5endif
6player:tell(((($ansi.bold_on + $ansi.yellow) + "          Area: ") + $su:nn(area)) + $ansi.reset);
7region = area:region();
8if (valid(region))
9player:tell(tostr($ansi.cyan, "          Region: ", $su:nn(area:region()), $ansi.reset));
10endif
11miscloot = 0;
12miscnpc = 0;
13{pctotal, npctotal, dedtotal, lootvalue} = {0, 0, 0, 0};
14player:tell(tostr(" ", $ansi.bg_blue, $ansi.white, $ansi.bold_on, $su:space(8), " ", $su:left("Room", 35), " Plrs NPCs Dead      Loot", $ansi.reset));
15for r in (area:contents())
16if ((!is_a(r, $room)) || is_a(r, this.depositbox))
17continue;
18endif
19{players, monsters, loot, bodies} = r:spy_report();
20$cu:sin(0);
21pctotal = pctotal + length(players);
22npctotal = npctotal + length(monsters);
23dedtotal = dedtotal + length(bodies);
24rvalue = 0;
25for l in (loot)
26$cu:sin(0);
27v = l:value();
28rvalue = rvalue + v;
29lootvalue = lootvalue + v;
30endfor
31if (((players || (length(monsters) > 5)) || bodies) || (rvalue > 100000))
32line = tostr(" ", $su:left(tostr(r), 8), " ", $su:left(r:name(), -35));
33line = tostr(line, " ", $su:left(length(players), 4));
34line = tostr(line, " ", $su:left(length(monsters), 4));
35line = tostr(line, " ", $su:left(length(bodies), 4));
36line = tostr(line, " ", $su:right("$" + tostr(rvalue), 9));
37player:tell(line);
38else
39miscnpc = miscnpc + length(monsters);
40miscloot = miscloot + rvalue;
41endif
42endfor
43line = tostr(" ", $su:space(8), " ", $su:left("other locations", 35));
44line = tostr(line, " ", $su:left("0", 4));
45line = tostr(line, " ", $su:left(miscnpc, 4));
46line = tostr(line, " ", $su:left("0", 4));
47line = tostr(line, " ", $su:right("$" + tostr(miscloot), 9));
48player:tell(line);
49line = tostr(" ", $ansi.bg_blue, $ansi.white, $ansi.bold_on, $su:space(8), " ", $su:left("-- totals --", 35));
50line = tostr(line, " ", $su:left(pctotal, 4));
51line = tostr(line, " ", $su:left(npctotal, 4));
52line = tostr(line, " ", $su:left(dedtotal, 4));
53line = tostr(line, " ", $su:right("$" + tostr(lootvalue), 9));
54player:tell(line + $ansi.reset);

@rspy

Spec any none noneFlags rxdOwner #361Definer #317

Referenced by

none

Source

1region = #-1;
2if (dobjstr && (!valid(dobj)))
3region = $mu:match(dobjstr, this.regions);
4elseif (valid(dobj))
5region = dobj;
6endif
7if (!valid(region))
8player:tell("Usage: @rspy <region>");
9return;
10endif
11player:tell(((($ansi.bold_on + $ansi.cyan) + "          Region: ") + $su:nn(region)) + $ansi.reset);
12miscloot = 0;
13miscnpc = 0;
14{pctotal, npctotal, dedtotal, lootvalue} = {0, 0, 0, 0};
15player:tell(tostr(" ", $ansi.bg_blue, $ansi.white, $ansi.bold_on, $su:space(8), " ", $su:left("Area", 30), " Plrs NPCs Dead           Loot", $ansi.reset));
16for r in (region:contents())
17if (!is_a(r, $area))
18continue;
19endif
20{players, monsters, loot, bodies} = r:spy_report();
21$cu:sin();
22pctotal = pctotal + length(players);
23npctotal = npctotal + length(monsters);
24dedtotal = dedtotal + length(bodies);
25rvalue = 0;
26for l in (loot)
27$cu:sin();
28v = l:value();
29rvalue = rvalue + v;
30lootvalue = lootvalue + v;
31endfor
32if (((length(players) > 1) || (length(monsters) >= 20)) || (rvalue > 300000))
33line = tostr(" ", $su:left(tostr(r), 8), " ", $ansi.yellow, $su:left(r:name(), -30), $ansi.reset);
34line = tostr(line, " ", $su:left(length(players), 4));
35line = tostr(line, " ", $su:left(length(monsters), 4));
36line = tostr(line, " ", $su:left(length(bodies), 4));
37rvalue = $su:group_number(rvalue);
38line = tostr(line, " ", $su:right("$" + rvalue, 14));
39player:tell(line);
40else
41miscnpc = miscnpc + length(monsters);
42miscloot = miscloot + rvalue;
43endif
44endfor
45if (miscnpc || miscloot)
46line = tostr(" ", $su:space(8), " ", $su:left("other areas", -35));
47line = tostr(line, " ", $su:left("0", 4));
48line = tostr(line, " ", $su:left(miscnpc, 4));
49line = tostr(line, " ", $su:left("0", 4));
50line = tostr(line, " ", $su:right("$" + tostr(miscloot), 9));
51player:tell(line);
52endif
53line = tostr(" ", $ansi.bg_blue, $ansi.white, $ansi.bold_on, $su:space(8), " ", $su:left("-- totals --", 35));
54line = tostr(line, " ", $su:left(pctotal, 4));
55line = tostr(line, " ", $su:left(npctotal, 4));
56line = tostr(line, " ", $su:left(dedtotal, 4));
57line = tostr(line, " ", $su:right("$" + tostr(lootvalue), 9));
58player:tell(line + $ansi.reset);

@uspy

Spec none none noneFlags rxdOwner #361Definer #317

Referenced by

none

Source

1player:tell((($ansi.bold_on + $ansi.purple) + "          Universe: Hell ") + $ansi.reset);
2$cu:sin(0);
3miscloot = 0;
4miscnpc = 0;
5{pctotal, npctotal, dedtotal, lootvalue} = {0, 0, 0, 0};
6player:tell(tostr(" ", $ansi.bg_blue, $ansi.white, $ansi.bold_on, $su:space(8), " ", $su:left("Region", 35), " Plrs NPCs Dead      Loot", $ansi.reset));
7for r in (this.regions)
8if (!is_a(r, $region))
9continue;
10endif
11{players, monsters, loot, bodies} = r:spy_report();
12$cu:sin(0);
13pctotal = pctotal + length(players);
14npctotal = npctotal + length(monsters);
15dedtotal = dedtotal + length(bodies);
16rvalue = 0;
17for l in (loot)
18$cu:sin(0);
19v = l:value();
20rvalue = rvalue + v;
21lootvalue = lootvalue + v;
22endfor
23if (((players || bodies) || monsters) || rvalue)
24line = tostr(" ", $su:left(tostr(r), 8), " ", $su:left(($ansi.cyan + r:name()) + $ansi.reset, 35));
25line = tostr(line, " ", $su:left(length(players), 4));
26line = tostr(line, " ", $su:left(length(monsters), 4));
27line = tostr(line, " ", $su:left(length(bodies), 4));
28line = tostr(line, " ", $su:right("$" + tostr(rvalue), 9));
29player:tell(line);
30else
31miscnpc = miscnpc + length(monsters);
32miscloot = miscloot + rvalue;
33endif
34endfor
35if (miscnpc || miscloot)
36line = tostr(" ", $su:space(8), " ", $su:left("other regions", -35));
37line = tostr(line, " ", $su:left("0", 4));
38line = tostr(line, " ", $su:left(miscnpc, 4));
39line = tostr(line, " ", $su:left("0", 4));
40line = tostr(line, " ", $su:right("$" + tostr(miscloot), 9));
41player:tell(line);
42endif
43line = tostr(" ", $ansi.bg_blue, $ansi.white, $ansi.bold_on, $su:space(8), " ", $su:left("-- totals --", 35));
44line = tostr(line, " ", $su:left(pctotal, 4));
45line = tostr(line, " ", $su:left(npctotal, 4));
46line = tostr(line, " ", $su:left(dedtotal, 4));
47line = tostr(line, " ", $su:right("$" + tostr(lootvalue), 9));
48player:tell(line + $ansi.reset);

@fuckup

Spec any any anyFlags rxdOwner #361Definer #317

Referenced by

none

Source

1"test";
2lol;

@pathto

Spec any none noneFlags rxdOwner #361Definer #317

Referenced by

none

Source

1where = dobj;
2if (!is_a(where, $room))
3player:tell("Path to where?  That's not a room.");
4return;
5endif
6path = {};
7done = 0;
8step = player.location;
9player:tell("Pathing from ", step.name, " (in ", step:area().name, ") to ", where.name, " (in ", where:area().name, ")...");
10while (!done)
11if (step in path)
12player:tell("ERROR!  We're looping.");
13return;
14elseif (length(path) > 200)
15player:tell("ERROR!  It's been 200 steps -- giving up.");
16return;
17endif
18path = {@path, step};
19if (step == where)
20done = 1;
21else
22exit = step:next_hop_to(where);
23if (valid(exit))
24if (valid(exit.otherside))
25step = exit.otherside.location;
26player:tell("...", exit.name, " to ", $su:nn(step));
27else
28player:tell("ERROR!  ", $su:nn(exit), " has no valid .otherside.");
29return;
30endif
31else
32player:tell("ERROR!  :next_hop_to() returned null.");
33destarea = where:area();
34thisarea = step:area();
35if (destarea == thisarea)
36player:tell("Dest area is in this area (", $su:nn(destarea), "), but there is no valid hop.");
37else
38hoparea = thisarea:next_area_to(destarea);
39player:tell("Next area to ", $su:nn(destarea), " is ", $su:nn(hoparea), "...");
40if (i = hoparea in thisarea.adjacent_areas)
41hoproom = thisarea.adjacent_area_rooms[i];
42player:tell("Adjacent area room is ", $su:nn(hoproom), "...");
43if (!valid(step:next_hop_to(hoproom)))
44player:tell("No valid hop to that room!");
45else
46player:tell("Hm, strange.  There IS a valid hop to that room.");
47endif
48endif
49endif
50return;
51endif
52endif
53$cu:sin(0);
54endwhile
55player:tell("Finished!  ", tostr(length(path)), " steps.");

ascend

Spec none none noneFlags rxdOwner #361Definer #317

Referenced by

none

Source

1maproom = player:area().maproom;
2if (!valid(maproom))
3player:tell($su:nn(player:area()), " has no valid .maproom.");
4return;
5endif
6player:aat(player:dnamec(), " ascends into the clouds.");
7maproom:announce_all(player:dnamec(), " ascends into ", maproom.name, ".");
8player:moveto(maproom);

@networth

Spec any none noneFlags rxdOwner #361Definer #317

Referenced by

none

Source

1"Total net worth of a player.";
2if (length(args) != 1)
3player:tell("Usage: @networth <player>");
4return;
5endif
6if (!valid(dobj))
7dobj = $su:match_player(dobjstr);
8endif
9if ((!valid(dobj)) || (!is_player(dobj)))
10player:tell("@networth who?");
11return;
12endif
13value = this:networth(dobj);
14value = $su:group_number(value);
15player:tell(dobj.name, ": $", value);

update_fertile

Spec this none thisFlags rxdOwner #361Definer #317

Referenced by

Source

1l = {};
2things = {};
3valued = {};
4for o in [#1..max_object()]
5if (valid(o) && o.f)
6l = {@l, o};
7if (is_a(o, $thing))
8things = {@things, o};
9if ((o.weight > 0) && (o.value > 15000))
10valued = {@valued, o};
11endif
12endif
13endif
14$cu:sin();
15endfor
16this.all_fertile = l;
17this.spawn_things = things;
18this.all_valuable = valued;
19return 1;

faster_match

Spec this none thisFlags rxdOwner #361Definer #317

Referenced by

none

Source

No program (verb defined but unprogrammed).

match_for_spawn

Spec this none thisFlags rxdOwner #361Definer #317

Referenced by

Source

1{searchstring} = args;
2if (searchstring == "")
3raise(E_INVARG);
4endif
5if (length(searchstring) < 3)
6player:tell("Use a longer search string.");
7return #-1;
8endif
9maybe = {};
10for candidate in (this.spawn_things)
11if (candidate.name == searchstring)
12return candidate;
13elseif (((searchstring in `candidate.aliases ! ANY => {}') || (index(candidate.name, searchstring, 0) != 0)) || ($su:literal_object(searchstring) == candidate))
14maybe = {@maybe, candidate};
15else
16"try alias substrings";
17for alias in (`candidate.aliases ! ANY => {}')
18if (index(alias, searchstring, 0) > 0)
19maybe = {@maybe, candidate};
20endif
21endfor
22endif
23$cu:sin(2);
24endfor
25if (length(maybe) == 1)
26return maybe[1];
27elseif (maybe)
28if (length(maybe) <= 10)
29player:tell("Your search of '", searchstring, "' matched:");
30for m in (maybe)
31player:tell("     ", $su:nn(m));
32endfor
33else
34player:tell("Your search of '", searchstring, "' matched ", tostr(length(maybe)), " items.");
35endif
36endif
37return #-1;

monster_for_spawn

Spec this none thisFlags rxdOwner #361Definer #317

Referenced by

Source

1{searchstring} = args;
2if (searchstring == "")
3raise(E_INVARG);
4endif
5if (length(searchstring) < 3)
6player:tell("Use a longer search string.");
7return #-1;
8endif
9maybe = {};
10for candidate in (this.all_monsters)
11if (candidate.name == searchstring)
12return candidate;
13elseif ((searchstring in `canadidate.aliases ! ANY => {}') || (index(candidate.name, searchstring, 0) != 0))
14maybe = {@maybe, candidate};
15else
16"try alias substrings";
17for alias in (`candidate.aliases ! ANY => {}')
18if (index(alias, searchstring, 0) > 0)
19maybe = {@maybe, candidate};
20endif
21endfor
22endif
23$cu:sin(2);
24endfor
25if (length(maybe) == 1)
26return maybe[1];
27elseif (maybe)
28if (length(maybe) <= 10)
29player:tell("Your search of '", searchstring, "' matched:");
30for m in (maybe)
31player:tell("     ", $su:nn(m));
32endfor
33else
34player:tell("Your search of '", searchstring, "' matched ", tostr(length(maybe)), " items.");
35endif
36endif
37return #-1;

update_monsters

Spec this none thisFlags rxdOwner #361Definer #317

Referenced by

Source

1this.all_monsters = $ou:branches_suspended($monster, 2);
2fork (86400)
3this:update_monsters();
4endfork
5return 1;

match_for_ofind

Spec this none thisFlags rxdOwner #361Definer #317

Referenced by

Source

1{searchstring} = args;
2if (searchstring == "")
3raise(E_INVARG, "empty searchstring");
4endif
5if (length(searchstring) < 3)
6player:tell("Use a longer search string.");
7return #-1;
8endif
9maybe = {};
10for candidate in (this.all_fertile)
11if (candidate.name == searchstring)
12maybe = {@maybe, candidate};
13elseif ((searchstring in `candidate.aliases ! ANY => {}') || (index(candidate.name, searchstring, 0) != 0))
14maybe = {@maybe, candidate};
15else
16"try alias substrings";
17for alias in (`candidate.aliases ! ANY => {}')
18if (index(alias, searchstring, 0) > 0)
19maybe = {@maybe, candidate};
20endif
21endfor
22endif
23yield 1;
24endfor
25if (length(maybe) == 1)
26return maybe[1];
27elseif (maybe)
28return maybe;
29endif
30return #-1;

@ofind

Spec any any anyFlags rxdOwner #361Definer #317

Referenced by

none

Source

1if (!argstr)
2player:tell("Try ", verb, " <searchstring>.");
3return;
4endif
5what = #317:match_for_ofind(argstr);
6if ((typeof(what) == OBJ) && (!valid(what)))
7player:tell("No matches for '", argstr, "'.");
8return;
9endif
10if (typeof(what) == OBJ)
11what = {what};
12endif
13player:tell($ansi.bold_on, "[  Matches for '", argstr, "':  ]", $ansi.reset);
14for o in (what)
15player:tell("  ", $ansi.blue, $ansi.bold_on, $su:left(tostr(o), 9), $ansi.yellow, $su:left(o.name, 30), $ansi.reset, `o:tree_tag() ! ANY => ""');
16yield;
17endfor
18player:tell(" -- ofind complete --");

@ofind+ @ofind-all @ofind-all+

Spec any out of/from inside/from anyFlags rxdOwner #361Definer #317

Referenced by

none

Source

1"@ofind[-all] <string> [from <obj>] - Find an object somewhere in the database, optionally starting from <obj>.";
2"";
3"This runs as quickly as possible, to avoid lag, and will only return the very first thing that matches <string>. It may not be what you're looking for. By default, this only searches fertile objects. To search absolutely everything, use @ofind+, and be prepared to wait a long long time.";
4"If you'd like to find all matches, use @ofind-all or @ofind-all+.";
5everything = 0;
6all = 0;
7if ((verb == "@ofind+") || (verb == "@ofind-all+"))
8everything = 1;
9endif
10if ((verb == "@ofind-all") || (verb == "@ofind-all+"))
11all = 1;
12endif
13if ((dobjstr == "") || (prepstr && (prepstr != "from")))
14player:tell("Usage: @ofind <string> [from <obj>]. Finds an object, takes a while.");
15return;
16endif
17if (iobjstr && (!iobj))
18iobj = $su:literal_object(iobjstr);
19if (!valid(iobj))
20player:tell("I don't know what you mean by '", iobjstr, "'.");
21return;
22endif
23else
24if ((!everything) || $cu:yes_or_no("Really search the entire database? This will take a very, very, very long time with @ofind+."))
25iobj = #1;
26else
27player:tell("Aborting.");
28return;
29endif
30endif
31player:tell("[ Searching for '", dobjstr, "' ", valid(iobj) ? "from " + $su:nn(iobj) | "", "... ]");
32return this:_ofind(dobjstr, valid(iobj) ? iobj | #1, everything, all);

match_for_ofind

Spec this none thisFlags rxdOwner #362Definer #317

Referenced by

none

Source

No program (verb defined but unprogrammed).

_add_source

Spec this none thisFlags rxdOwner #361Definer #317

Referenced by

Source

1{item, where} = args;
2if (idx = $lu:iassoc_suspended(item, this.item_sources, 1, 1))
3this.item_sources[idx][2] = {@this.item_sources[idx][2], where};
4else
5this.item_sources = {@this.item_sources, {item, {where}}};
6endif

update_sources

Spec this none thisFlags rxdOwner #361Definer #317

Referenced by

none

Source

1spawns = {};
2itemcount = 0;
3locs = 0;
4for info in ($ou:tree_properties($npc, "spawns_with"))
5{where, items} = info;
6locs = locs + 1;
7for item in (items)
8itemcount = itemcount + 1;
9this:_add_source(item, where);
10$cu:sin();
11endfor
12$cu:sin();
13endfor
14player:tell("Finished $npc.spawns_with, ", tostr(itemcount), " items in ", tostr(locs), " locations.");
15itemcount = 0;
16locs = 0;
17for info in ($ou:tree_properties($room, "search_items"))
18{where, search} = info;
19locs = locs + 1;
20for iteminfo in (search)
21if ((typeof(iteminfo) != LIST) || (length(iteminfo) != 2))
22player:tell("Malformed .search_items at ", $su:nn(where));
23continue;
24endif
25{item, difficulty} = iteminfo;
26itemcount = itemcount + 1;
27this:_add_source(item, where);
28$cu:sin();
29endfor
30$cu:sin();
31endfor
32player:tell("Finished $room.search_items, ", tostr(itemcount), " items in ", tostr(locs), " locations.");
33itemcount = 0;
34locs = 0;
35for info in ($ou:tree_properties($plant, "spawn"))
36{where, item} = info;
37locs = locs + 1;
38if (!valid(item))
39continue;
40endif
41itemcount = itemcount + 1;
42this:_add_source(item, where);
43$cu:sin();
44endfor
45player:tell("Finished $plant.spawn, ", tostr(itemcount), " items in ", tostr(locs), " locations.");
46itemcount = 0;
47locs = 0;
48for info in ($ou:tree_properties($plant, "altspawn"))
49{where, iteminfo} = info;
50locs = locs + 1;
51if (iteminfo)
52if ((typeof(iteminfo) != LIST) || (length(iteminfo) != 2))
53player:tell("Malformed .altspawn at ", $su:nn(where));
54continue;
55endif
56{item, chance} = iteminfo;
57if (valid(item))
58itemcount = itemcount + 1;
59this:_add_source(item, where);
60endif
61endif
62$cu:sin();
63endfor
64player:tell("Finished $plant.altspawn, ", tostr(itemcount), " items in ", tostr(locs), " locations.");
65itemcount = 0;
66locs = 0;
67for info in ($ou:tree_properties($monster, "treasure"))
68{where, treasure} = info;
69locs = locs + 1;
70for trspec in (treasure)
71if ((typeof(trspec) != LIST) || (length(trspec) != 4))
72player:tell("Malformed .treasure at ", $su:nn(where));
73continue;
74endif
75{chance, item, minval, maxval} = trspec;
76itemcount = itemcount + 1;
77this:_add_source(item, where);
78$cu:sin();
79endfor
80$cu:sin();
81endfor
82player:tell("Finished $monster.treasure, ", tostr(itemcount), " items in ", tostr(locs), " locations.");
83itemcount = 0;
84locs = 0;
85for info in ($ou:tree_properties($quest, "item_award"))
86{where, item} = info;
87locs = locs + 1;
88if (!valid(item))
89continue;
90endif
91itemcount = itemcount + 1;
92this:_add_source(item, where);
93$cu:sin();
94endfor
95player:tell("Finished $quest.item_award, ", tostr(itemcount), " items in ", tostr(locs), " locations.");
96itemcount = 0;
97locs = 0;
98for info in ($ou:tree_properties($corpse, "meats"))
99{where, items} = info;
100locs = locs + 1;
101for item in (items)
102if (!valid(item))
103continue;
104endif
105itemcount = itemcount + 1;
106this:_add_source(item, where);
107$cu:sin();
108endfor
109$cu:sin();
110endfor
111player:tell("Finished $corpse.meats, ", tostr(itemcount), " items in ", tostr(locs), " locations.");
112itemcount = 0;
113locs = 0;
114for info in ($ou:tree_properties($recipe, "makes"))
115{where, item} = info;
116locs = locs + 1;
117if (!valid(item))
118continue;
119endif
120itemcount = itemcount + 1;
121this:_add_source(item, where);
122$cu:sin();
123endfor
124player:tell("Finished $recipe.makes, ", tostr(itemcount), " items in ", tostr(locs), " locations.");
125itemcount = 0;
126locs = 0;
127for info in ($ou:tree_properties(#398, "treasure_type"))
128{where, treasure} = info;
129locs = locs + 1;
130trlist = {};
131if (treasure && (typeof(treasure) == LIST))
132if (typeof(treasure[1]) == LIST)
133trlist = treasure;
134else
135trlist = {treasure};
136endif
137endif
138for trspec in (trlist)
139if ((typeof(trspec) != LIST) || (length(trspec) != 4))
140player:tell("Malformed .treasure_type at ", $su:nn(where));
141continue;
142endif
143{chance, item, minval, maxval} = trspec;
144itemcount = itemcount + 1;
145this:_add_source(item, where);
146$cu:sin();
147endfor
148$cu:sin();
149endfor
150player:tell("Finished #398.treasure_type, ", tostr(itemcount), " items in ", tostr(locs), " locations.");
151return 1;

@globstatus

Spec none none noneFlags rxdOwner #361Definer #317

Referenced by

none

Source

1globs = $ou:leaves_suspended($glob);
2total = 0;
3for glob in (globs)
4if (is_a(glob, $glob))
5total = total + glob.amount;
6endif
7yield;
8endfor
9total = total - length(globs);
10player:tell(tostr(length(globs), " globs.  ", total, " objects saved."));

u2

Spec this none thisFlags rxdOwner #361Definer #317

Referenced by

none

Source

1hbl = {};
2for i in [1..toint(max_object())]
3if (`toobj(i).f ! ANY')
4hbl = listappend(hbl, toobj(i));
5endif
6$cu:sin();
7endfor
8this.hugelybiglist = hbl;
9fork (86400)
10this:update_biglist();
11endfork
12return 1;

@actor-check

Spec none none noneFlags rxdOwner #361Definer #317

Referenced by

none

Source

1for x in (queued_tasks())
2secs = x[2] - time();
3if (secs > 86400)
4continue;
5endif
6if (is_a(x[$], $actor))
7bt = `task_stack(x[1], 1) ! ANY => {}';
8if (!bt)
9continue;
10endif
11player:tell("Task ", x[1], " (", secs, "s) -- ", $su:nn(x[$]), " .executing = ", toliteral(x[$].executing));
12formatted = $rpg:render_error("", bt);
13player:tell_lines(formatted[2]);
14player:tell();
15endif
16$cu:sin();
17endfor
18player:tell("Done.");

child_counts

Spec this none thisFlags rxdOwner #361Definer #317

Referenced by

Source

1{o, ?fertile_only = 0} = args;
2total = 0;
3counts = {};
4for c in (children(o))
5if (fertile_only && (!c.f))
6continue;
7endif
8cc = this:child_counts(c, fertile_only);
9if (typeof(cc) == LIST)
10n = 1 + cc[1];
11counts = {@counts, {c, n, cc}};
12total = total + n;
13elseif (cc)
14n = 1 + cc;
15counts = {@counts, {c, n, {}}};
16total = total + n;
17else
18total = total + 1;
19endif
20$cu:sin();
21endfor
22if (!counts)
23return total;
24endif
25short = {};
26total = tofloat(total);
27in_short = 0;
28for t in (counts)
29if ((tofloat(t[2]) / total) >= this.bigtree_pct_over)
30short = {@short, t};
31in_short = in_short + t[2];
32endif
33endfor
34if (length(short) == (length(counts) - 1))
35"special case: 'other' is all the same thing";
36short = $lu:sort_alist_suspended(1, counts, 2);
37short = $lu:reverse_suspended(short);
38return {tonum(total), short, 0};
39else
40short = $lu:sort_alist_suspended(1, short, 2);
41short = $lu:reverse_suspended(short);
42total = tonum(total);
43other = total - in_short;
44return {total, short, other};
45endif

_bigtree

Spec this none thisFlags rxdOwner #361Definer #317

Referenced by

Source

1{c, p, total, majorkids, other, ?indent = "", ?kidindent = "  ", ?pct = 100.0, ?overall = tofloat(total), ?display_thr = 100.0 * this.bigtree_pct_hide, ?limbpct = 100.0} = args;
2name = p.name;
3namecol = index(name, "generic") ? c[2] + $ansi.bold_on | c[2];
4name = $su:re_sub(name, {{"%bgeneric%b", "g"}});
5player:tell(c[1], $su:right(total, 6), " ", $ansi.reset, c[3], $su:right(floatstr(pct, 1) + "%", 6), " ", $ansi.reset, $su:right(tostr(p), 7), " ", indent, $ansi.reset, namecol, "+-", floatstr(limbpct, 1), "% ", name, $ansi.reset);
6is_other = other && (other != total);
7done = 0;
8shown_one = 0;
9for l in (majorkids)
10$cu:sin();
11{k, branchtotal, branch} = l;
12done = done + branchtotal;
13kidkidindent = kidindent + ((done == total) ? "  " | (c[2] + "| "));
14branchpct = (100.0 * tofloat(branchtotal)) / overall;
15limbpct = (100.0 * tofloat(branchtotal)) / tofloat(total);
16if (branchpct < display_thr)
17other = other + branchtotal;
18elseif (!branch)
19this:_bigtree(c, @l, 0, kidindent, kidkidindent, branchpct, overall, display_thr, limbpct);
20shown_one = 1;
21else
22this:_bigtree(c, k, @branch, kidindent, kidkidindent, branchpct, overall, display_thr, limbpct);
23shown_one = 1;
24endif
25endfor
26if ((other && (other != total)) && shown_one)
27othername = "other " + $su:smart_abbrev(name);
28done = done + branchtotal;
29otherpct = (100.0 * tofloat(other)) / overall;
30limbpct = (100.0 * tofloat(other)) / tofloat(total);
31player:tell(c[1], $su:right(other, 6), " ", $ansi.reset, c[3], $su:right(floatstr(otherpct, 1) + "%", 6), $ansi.reset, " ", "        ", kidindent, $ansi.reset, c[4], "+-", floatstr(limbpct, 1), "% ", othername, $ansi.reset);
32endif
33return 0;

@bigtree

Spec any none noneFlags rxdOwner #361Definer #317

Referenced by

none

Source

1if ((dobjstr && (length(dobjstr) > 3)) && (dobjstr[1..3] == "+f "))
2dobjstr = dobjstr[4..$];
3fertile_only = 1;
4else
5fertile_only = 0;
6endif
7if (!valid(dobj))
8dobj = $su:literal_object(dobjstr);
9endif
10if (!valid(dobj))
11player:tell("@bigtree what?");
12return;
13endif
14player:tell($ansi.cyan, "[ generating @bigtree for ", $su:nn(dobj), " ... ]", $ansi.reset);
15tree = this:child_counts(dobj, fertile_only);
16if (typeof(tree) == LIST)
17this:_bigtree(this.bigtree_colors, dobj, @tree);
18else
19this:_bigtree(this.bigtree_colors, dobj, tree, {}, 0);
20endif

@my

Spec any none noneFlags rxdOwner #361Definer #317

Referenced by

none

Source

1if (!dobjstr)
2player:tell("Try @my <searchstring>");
3return;
4endif
5if (length(dobjstr) < 3)
6player:tell("Try a longer search string.");
7return;
8endif
9maybe = {};
10for o in (player.owned_objects)
11if (o.name == dobjstr)
12maybe = {o};
13break;
14elseif ((dobjstr in `o.aliases ! ANY => {}') || (index(o.name, dobjstr, 0) != 0))
15maybe = {@maybe, o};
16else
17for alias in (`o.aliases ! ANY => {}')
18if (index(alias, dobjstr, 0) != 0)
19maybe = {@maybe, o};
20endif
21endfor
22endif
23$cu:sin();
24endfor
25if (maybe)
26player:tell($ansi.bold_on, "  [ Matches for '", dobjstr, "' for ", $su:nn(player), ":  ]", $ansi.reset);
27for o in (maybe)
28player:tell("  ", $ansi.blue, $ansi.bold_on, $su:left(tostr(o), 9), $ansi.yellow, $su:left(o.name, 30), $ansi.reset, `o:tree_tag() ! ANY => ""');
29endfor
30else
31player:tell("No matches found for '", dobjstr, "'.");
32endif

@checkspeciesquests

Spec none none noneFlags rxdOwner #361Definer #317

Referenced by

none

Source

1for quest in ($ou:leaves_suspended(#197494))
2if (!is_a(quest.species, $monster))
3player:tell(($su:nn(quest) + " .species is not a monster: ") + $su:nn(quest.species));
4elseif (!quest.species.species_quest)
5player:tell((($su:nn(quest) + ": ") + $su:nn(quest.species)) + " does not point to the quest.");
6elseif (typeof(quest.species.species_quest) != LIST)
7player:tell((($su:nn(quest) + ": ") + $su:nn(quest.species)) + ".species_quest is not a list!");
8elseif (length(quest.species.species_quest) != 2)
9player:tell((($su:nn(quest) + ": ") + $su:nn(quest.species)) + ".species_quest does not have two elements!");
10elseif ((typeof(quest.species.species_quest[1]) != OBJ) || (typeof(quest.species.species_quest[2]) != INT))
11player:tell((($su:nn(quest) + ": ") + $su:nn(quest.species)) + ".species_quest has invalid data!");
12elseif (!is_a(quest.species.species_quest[1], #197494))
13player:tell((((($su:nn(quest) + ": ") + $su:nn(quest.species)) + ".species_quest[1] is ") + $su:nn(quest.species.species_quest[1])) + ", which is not a species quest!");
14elseif (quest != quest.species.species_quest[1])
15player:tell((((($su:nn(quest) + ": ") + $su:nn(quest.species)) + ".species_quest[1] points to ") + $su:nn(quest.species.species_quest[1])) + "!");
16endif
17$cu:sin();
18endfor
19player:tell("Done.");

@findunsecureobjects

Spec none none noneFlags rxdOwner #361Definer #317

Referenced by

none

Source

1if (!player.wizard)
2return;
3endif
4count = 0;
5for fertile in (this.all_fertile)
6if (!(fertile.location in this.secure_fertile_locations))
7if (((!is_a(fertile.location, $immortal)) && (area(fertile) != fertile)) && (!is_a(area(fertile), $blueprint)))
8player:tell(($su:nn(fertile) + " is in ") + $su:nn(fertile.location));
9count = count + 1;
10if (count >= 25)
11return;
12endif
13endif
14endif
15$cu:sin();
16endfor

@what-is-auto-cleaning

Spec none none noneFlags rxdOwner #361Definer #317

Referenced by

none

Source

1for area in ($earth.contents)
2if (is_a(area, $area) && area.auto_clean)
3player:tell($su:nn(area));
4endif
5yield;
6endfor

do_scope

Spec this none thisFlags rxdOwner #361Definer #317

Referenced by

Source

1{what, force_full} = args;
2if (flags = tostr(what.r ? "r" | "", what.f ? "f" | "", what.w ? "w" | ""))
3flags = " +" + flags;
4endif
5player:tell();
6if (0)
7class = what:class();
8if (class == what)
9this:tell_for_ex(player, "parent", parent(what), "", c1, c2, 9);
10else
11this:tell_for_ex(player, "class", class, "", c1, c2, 9);
12endif
13else
14parents = $lu:reverse($ou:ancestors(what));
15prefix = "+-";
16for p in (parents)
17player:tell($su:left(tostr(p), 8), $ansi.bold_on, $ansi.yellow, $su:left(tostr(prefix, p.name), -45), $ansi.reset);
18prefix = "  " + prefix;
19endfor
20endif
21player:tell($ansi.magenta, $su:left(tostr(what), 8), $ansi.bold_on, prefix, what.name, $ansi.reset);
22c1 = $ansi.yellow + $ansi.bold_on;
23c2 = $ansi.yellow;
24this:tell_for_ex(player, "owner", what.owner, "", c1, c2, 9);
25this:tell_for_ex(player, "location", what.location, "", c1, c2, 9);
26prop_infos = {};
27all_descs = [];
28o = what;
29while (valid(o))
30propdescprop = tostr("_", o);
31descs = `this.global_prop_descs.(propdescprop) ! E_PROPNF => []';
32"order is important: override descs with things in all_descs";
33if (typeof(descs) != HASH)
34raise(E_TYPE, "not a hash", all_descs);
35endif
36if (typeof(all_descs) != HASH)
37raise(E_TYPE, "not a hash", all_descs);
38endif
39all_descs = $hu:merge(descs, all_descs);
40o = parent(o);
41endwhile
42"now we have descs, look at props";
43o = what;
44player:tell();
45blankline = 1;
46depth = 0;
47show_full = force_full || $prog_options:get(player.prog_options, "fullex");
48while (valid(o))
49for p in (properties(o))
50if ((length(p) > 4) && (p[$ - 3..$] == "_msg"))
51continue;
52elseif ((length(p) > 5) && (p[$ - 4..$] == "_msgs"))
53continue;
54elseif (p in {"owner", @this.ignore_props_for_ex})
55continue;
56elseif ((p == "listening") && (!o.listening))
57"special case!";
58continue;
59elseif (!index(property_info(what, p)[2], "r"))
60continue;
61elseif (p == "skills")
62continue;
63elseif (((!show_full) && (depth >= 2)) && is_clear_property(what, p))
64continue;
65endif
66blankline = 0;
67nicename = p;
68format = "";
69namecolor = $ansi.cyan + $ansi.bold_on;
70valcolor = $ansi.cyan;
71if (all_descs)
72desc = `all_descs[p] ! E_RANGE => {}';
73if (desc)
74if (typeof(desc) == LIST)
75if (length(desc) != 2)
76player:tell("warning: prop desc for .", p, " is invalid length.");
77else
78{nicename, format} = desc;
79endif
80elseif (typeof(desc) == STR)
81if (index(desc, "%"))
82format = desc;
83else
84nicename = desc;
85endif
86elseif ((typeof(desc) == INT) && (desc == 0))
87"skip it";
88yield;
89continue;
90else
91player:tell("warning: prop desc for .", p, " is of invalid type.");
92#7195:tell("@ex: ", what, ": ", o, ".", p, " desc has invalid type");
93endif
94endif
95endif
96this:tell_for_ex(player, nicename, what.(p), format, namecolor, valcolor, 0, is_clear_property(what, p) ? o | #-1);
97yield;
98endfor
99o = parent(o);
100depth = depth + 1;
101if ((!blankline) && depth)
102player:tell();
103blankline = 1;
104endif
105yield;
106endwhile

tell_for_ex

Spec this none thisFlags rxdOwner #361Definer #317

Referenced by

Source

1":tell_for_ex(OBJ who, STR name, ANY value [, STR format][, STR namecolor][, STR valcolor][, INT namewidth])";
2{who, name, value, ?format = "", ?namecolor = "", ?valcolor = "", ?namewidth = 0, ?source = #-1} = args;
3if (format == "yes/no")
4value = value ? "yes" | "no";
5format = "";
6endif
7if (name)
8if (namecolor)
9name = (namecolor + name) + $ansi.reset;
10endif
11name = name + ":";
12if (namewidth)
13name = $su:left(name, namewidth);
14endif
15name = " " + name;
16endif
17sourcestr = "";
18if (valid(source))
19sname = source.name;
20sname = strsub(sname, "generic", "g");
210 && (sourcestr = tostr(" ", $ansi.dark_gray, "(default: ", $su:smart_abbrev(source.name, 20), ")", $ansi.reset));
22valcolor = $ansi.dark_gray;
23endif
24if ((typeof(value) != LIST) && (typeof(value) != HASH))
25if (format)
26if ((((typeof(format) == LIST) && (typeof(value) == INT)) && (value >= 1)) && (value <= length(format)))
27value = format[value];
28elseif (typeof(format) == HASH)
29value = `format[value] ! E_RANGE => this:tostr_for_ex(value)';
30if (value == "*ignore*")
31return;
32endif
33elseif (typeof(format) == STR)
34value = strsub(format, "%1", this:tostr_for_ex(value));
35else
36value = this:tostr_for_ex(value);
37player:tell("warning: bad format for ", name);
38#7195:tell("@ex: bad format for ", name);
39endif
40else
41value = this:tostr_for_ex(value);
42endif
43if (valcolor)
44value = (valcolor + value) + $ansi.reset;
45endif
46who:tell(name, " ", value, sourcestr);
47return;
48endif
49"it's a list or hash";
50show = {};
51if (format)
52rest = format;
53bad = 0;
54while (m = match(rest, "%%[0-9]"))
55hit = toint(rest[m[2]]);
56rest = rest[m[2] + 1..$];
57if (hit < 1)
58bad = 1;
59break;
60endif
61show = {@show, hit};
62endwhile
63if ((!show) || bad)
64player:tell("warning: malformed format string for ", name);
65#7195:tell("@ex: malformed format string for ", name);
66format = "";
67endif
68endif
69is_hash = typeof(value) == HASH;
70if (!value)
71"null";
72player:tell(name, " ", valcolor, is_hash ? "[]" | "{}", $ansi.reset, sourcestr);
73return;
74endif
75who:tell(name, sourcestr);
76nvalues = 0;
77if ((!is_hash) && (typeof(value[1]) != LIST))
78value = {value};
79endif
80for subv in (value)
81s = "";
82if (format)
83if (typeof(subv) == LIST)
84s = format;
85for i in (show)
86subsubv = (i <= length(subv)) ? this:tostr_for_ex(subv[i]) | "-null-";
87s = strsub(s, tostr("%", i), subsubv);
88endfor
89else
90s = strsub(format, "%1", this:tostr_for_ex(subv));
91endif
92else
93if (is_hash)
94s = tostr(this:tostr_for_ex(subv[1]), " -> ", this:tostr_for_ex(subv[2]));
95elseif (typeof(subv) == LIST)
96i = 1;
97s = "{ ";
98while ((i <= length(subv)) && (length(s) < 54))
99s = s + tostr((i > 1) ? ", " | "", this:tostr_for_ex(subv[i]));
100i = i + 1;
101endwhile
102if (length(s) > 58)
103s = s[1..58];
104endif
105s = s + " }";
106else
107s = this:tostr_for_ex(subv);
108endif
109endif
110if (valcolor)
111s = (valcolor + s) + $ansi.reset;
112endif
113who:tell("  ", s);
114nvalues = nvalues + 1;
115if ((nvalues == 7) && (length(value) > 8))
116player:tell("  ... and ", length(value) - 7, " more");
117break;
118endif
119yield;
120endfor

tostr_for_ex

Spec this none thisFlags rxdOwner #361Definer #317

Referenced by

Source

1{v} = args;
2type = typeof(v);
3if (type == OBJ)
4return $su:nn(v);
5elseif (type == LIST)
6if (!v)
7return "{}";
8elseif (length(v) <= 3)
9vals = $lu:map_arg(this, verb, v);
10return tostr("{", $su:from_value(vals, 0, 0), "}");
11else
12vals = $lu:map_arg(this, verb, v[1..3]);
13return tostr("{", $su:from_value(vals, 0, 0), ", ...}");
14endif
15elseif (type == HASH)
16if (!v)
17return "[]";
18else
19k1 = keys(v)[1];
20v1 = this:tostr_for_ex(v[k1]);
21if (length(v) > 1)
22return tostr("[", tostr(k1), " -> ", v1, ", ...]");
23else
24return tostr("[", tostr(k1), " -> ", v1, "]");
25endif
26endif
27elseif (type == STR)
28if (length(v) > 50)
29return tostr(v[1..37], "...");
30else
31return v;
32endif
33elseif (type == FLOAT)
34return floatstr(v, 3);
35elseif (type == ERR)
36return toliteral(v);
37elseif (type == INT)
38return tostr(v);
39else
40raise(E_TYPE, "Unknown type");
41endif

@addex

Spec any any anyFlags rxdOwner #361Definer #317

Referenced by

none

Source

1if ((length(args) != 1) || (!(spec = $code_utils:parse_propref(args[1]))))
2if (args == {"help", "off"})
3player:tell("@addex help off.");
4this.addex_help_off = setadd(this.addex_help_off, player);
5return;
6elseif (args == {"help", "on"})
7player:tell("@addex help on.");
8this.addex_help_off = setremove(this.addex_help_off, player);
9return;
10endif
11player:notify(tostr("Usage:  ", verb, " <object>.<property>"));
12return;
13endif
14o = player:my_match_object(spec[1]);
15p = spec[2];
16if (!valid(o))
17$command_utils:object_match_failed(o, spec[1]);
18return;
19endif
20if (!property_info(o, p))
21player:tell($su:nn(o), " has no property named '", p, "'.");
22return;
23endif
24descstr = tostr(o, ".", p);
25player:tell($ansi.cyan, "Adding an @examine translation for ", descstr, ":");
26format = "";
27if (!(player in this.addex_help_off))
28for l in (this.addex_help_msg)
29player:tell($ansi.cyan, l, $ansi.reset);
30endfor
31player:tell($ansi.cyan, "(To turn this autohelp off, type '@addex help off'.)", $ansi.reset);
32endif
33input = $cu:read();
34if (!input)
35player:tell("Aborted.");
36endif
37if (input == "*ignore*")
38player:tell($ansi.cyan, "Setting ", descstr, " to always be ignored.");
39name = 0;
40elseif (colon = index(input, ":"))
41name = input[1..colon - 1];
42format = input[colon + 1..$];
43name = $su:trim(name);
44format = $su:trim(format);
45if (index(input, "$"))
46player:tell("[parsing complex format]");
47newformat = [];
48pairs = $su:explode(format, "$");
49for pair in (pairs)
50eq = index(pair, "=");
51if (!eq)
52player:tell("Invalid complex format: should be name:value = string%value = string%etc");
53return;
54endif
55left = pair[1..eq - 1];
56left = $su:trim(left);
57right = pair[eq + 1..$];
58right = $su:trim(right);
59newleft = $su:to_value(left);
60if (newleft[1])
61left = newleft[2];
62else
63player:tell("Couldn't understand '", left, "': ", newleft[2]);
64player:tell("Remember: left-side values for complex formats should be real moo values. Use quotes for strings.");
65return;
66endif
67newformat[left] = right;
68endfor
69format = newformat;
70player:tell($ansi.cyan, descstr, $ansi.reset);
71player:tell($ansi.cyan, " Descriptive name: ", $ansi.bold_on, name, $ansi.reset);
72for kv in (format)
73player:tell($ansi.cyan, "  ", toliteral(kv[1]), " -> ", kv[2]);
74endfor
75else
76player:tell("[parsing simple format]");
77player:tell($ansi.cyan, descstr, $ansi.reset);
78player:tell($ansi.cyan, " Descriptive name: ", $ansi.bold_on, name, $ansi.reset);
79player:tell($ansi.cyan, "           Format: ", $ansi.bold_on, format, $ansi.reset);
80endif
81else
82player:tell("[non-format]");
83name = input;
84player:tell($ansi.cyan, "Setting ", descstr, " to be named '", name, "' with no special format.");
85endif
86if (!$cu:yes_or_no("Is this correct?"))
87player:tell("Aborted.");
88return;
89endif
90gpdobj = this.global_prop_descs;
91gpdprop = tostr("_", o);
92gpdvalue = format ? {name, format} | name;
93try
94gpdobj.(gpdprop)[p] = gpdvalue;
95except e (E_PROPNF)
96add_property(gpdobj, gpdprop, [p -> gpdvalue], {#7195, "rc"});
97endtry
98player:tell($ansi.cyan, "Added.", $ansi.reset);

dongs

Spec none none noneFlags rxdOwner #361Definer #317

Referenced by

none

Source

1player:tell("dongs are in the air");

@scope @scope+

Spec any any anyFlags rxdOwner #361Definer #317

Referenced by

none

Source

1if (!argstr)
2player:tell("Try ", verb, " <searchstring>.");
3return;
4endif
5if (tostr(o = toobj(argstr)) == argstr)
6dobj = o;
7else
8what = $mu:match(argstr, {@player.contents, @player.location.contents});
9if (!valid(what))
10what = #317:match_for_ofind(argstr);
11if ((typeof(what) == OBJ) && (!valid(what)))
12player:tell("No matches for '", argstr, "'.");
13return;
14endif
15endif
16if (typeof(what) == OBJ)
17what = {what};
18endif
19dobj = what[1];
20endif
21this:do_scope(dobj, (verb == "@scope+") ? 1 | 0);

_www

Spec this none thisFlags rxdOwner #361Definer #317

Referenced by

none

Source

1{thisobj, propname} = args;
2text = {"<html><body>"};
3if (has_property(this, propname))
4p = this.(propname);
5if (typeof(p) == LIST)
6text = {@text, "<pre>", "{"};
7len = length(p);
8i = 1;
9for el in (p)
10text = {@text, $su:from_value(el, 10, 1) + ((i < len) ? "," | "")};
11i = i + 1;
12yield;
13endfor
14text = {@text, "}", "</pre>"};
15else
16text = {@text, $su:from_value(p, 10, 1)};
17endif
18else
19text = {@text, "404'd!"};
20endif
21text = {@text, "</body></html>"};
22return text;

@compare

Spec any any anyFlags rxdOwner #361Definer #317

Referenced by

none

Source

1"@compare 2-4 anythings. syntax: @compare <obj> <obj>...";
2"to suppress most message props, use: @compare -q <obj> <obj>...";
3set_task_perms($prog);
4objs = {};
5ocount = 1;
6typenames = {"INT", "OBJ", "STR", "ERR", "LIST", 0, 0, 0, 0, "FLOAT", "HASH"};
7if (args && (args[1] == "-q"))
8handlers = this.quiet_compare_obj;
9args = args[2..$];
10else
11handlers = this.compare_handler_obj;
12endif
13if ((length(args) < 2) || (length(args) > 4))
14player:tell("You can only compare between 2 and 4 objects.");
15return;
16endif
17player:tell("@comparing: ");
18for ostr in (args)
19$cu:sin(1);
20o = $su:literal_object(ostr);
21numstr = $su:right(tostr(ocount), 2) + ". ";
22if (valid(o))
23player:tell(numstr, $su:nn(o));
24ocount = ocount + 1;
25objs = {@objs, o};
26continue;
27endif
28o = #317:monster_for_spawn(ostr);
29if (valid(o))
30player:tell(numstr, $su:rev_nn(o));
31ocount = ocount + 1;
32objs = {@objs, o};
33continue;
34endif
35player:tell(numstr, "< no match >");
36return;
37endfor
38suspend(0);
39player:tell("");
40props = {};
41for o in (objs)
42if (!props)
43props = $ou:all_properties(o);
44else
45props = $set_utils:intersection(props, $ou:all_properties(o));
46endif
47endfor
48suspend(1);
49types_with_length = {LIST, HASH, STR};
50diff_props = {};
51for p in (props)
52values = {};
53do_compare = 0;
54do_length = 0;
55do_lists = 0;
56for o in (objs)
57try
58val = o.(p);
59except e (E_PERM)
60continue p;
61endtry
62if (typeof(val) in types_with_length)
63if (length(val) >= 30)
64do_length = 1;
65values = {};
66break o;
67endif
68endif
69handled = 0;
70if (has_callable_verb(handlers, p))
71try
72val = handlers:(p)(val);
73handled = 1;
74except e (E_NONE)
75"handler has declined to handle";
76except e (ANY)
77player:tell("Error ", e[1], " in handler for ", p);
78endtry
79endif
80if (typeof(val) == LIST)
81do_lists = 1;
82elseif (!handled)
83if (typeof(val) == OBJ)
84val = $su:rev_nn(val);
85elseif (typeof(val) == STR)
86"nothin";
87else
88val = $su:from_value(val, 1, 1);
89endif
90endif
91if (!do_compare)
92for previous_val in (values)
93if (val != previous_val)
94do_compare = 1;
95break previous_val;
96endif
97endfor
98endif
99values = {@values, val};
100endfor
101yield;
102if (do_length)
103values = {};
104for o in (objs)
105val = o.(p);
106val_s = typenames[typeof(val) + 1];
107if (typeof(val) in types_with_length)
108val_s = val_s + tostr(" ", length(val));
109endif
110val = val_s;
111if (!do_compare)
112for previous_val in (values)
113if (val == (!previous_val))
114do_compare = 1;
115endif
116endfor
117endif
118values = {@values, val};
119endfor
120elseif (do_lists && do_compare)
121nonlists = {};
122lists = {};
123for i in [1..length(values)]
124if (typeof(values[i]) != LIST)
125nonlists = {@nonlists, values[i]};
126lists = {@lists, {}};
127else
128nonlists = {@nonlists, ""};
129lists = {@lists, values[i]};
130endif
131endfor
132common = $set_utils:intersection(@lists);
133new_vals = {};
134max_len = 0;
135for val in (lists)
136adds = $set_utils:difference(val, common);
137new_vals = {@new_vals, adds};
138max_len = max(max_len, length(adds));
139endfor
140diffs = nonlists;
141next_lines = ($ansi.yellow + "  |--") + $ansi.white;
142for i in [1..max_len]
143row = {next_lines};
144for val in (new_vals)
145if (i <= length(val))
146v = val[i];
147if (typeof(v) == OBJ)
148s = " " + $su:rev_nn(v);
149elseif (typeof(v) == STR)
150s = " " + v;
151else
152s = " " + $su:from_value(v, 1, 2);
153endif
154row = {@row, s};
155else
156row = {@row, ""};
157endif
158endfor
159diffs = {@diffs, @row};
160yield;
161endfor
162diff_props = {@diff_props, {($ansi.yellow + p) + $ansi.white, @diffs}};
163continue p;
164endif
165yield;
166if (do_compare)
167if (p == "skills")
168p = "skills: ";
169endif
170p = ($ansi.yellow + p) + $ansi.white;
171diff_props = {@diff_props, {p, @values}};
172endif
173endfor
174props = {};
175diff_props = $lu:sort_alist(diff_props);
176header_line = {""};
177for o in (objs)
178header_line = {@header_line, ($ansi.header + tostr(o)) + $ansi.reset};
179endfor
180everything = header_line;
181for dp in (diff_props)
182everything = {@everything, @dp};
183endfor
184suspend(0);
185player:tell_lines($su:columnize_horizontal(everything, length(objs) + 1, 79, 0, 1));

@shopgrep

Spec any none noneFlags rxdOwner #361Definer #317

Referenced by

none

Source

1parent = $su:literal_object(argstr);
2if (!valid(parent))
3player:tell("I don't know what '", argstr, "' is.");
4return;
5endif
6player:tell("@shopgrep: Looking for ", $ansi.white, $ansi.bold_on, $su:nn(parent), $ansi.reset, " in shops...");
7objs = $gu:find_in_shops(parent);
8if (!objs)
9player:tell("Nothing found.");
10return;
11endif
12player:tell("");
13for o in (objs)
14player:tell("  ", $ansi.blue, $ansi.bold_on, $su:left(tostr(o), 9), $ansi.yellow, $su:left(o.name, 30), $ansi.reset, `o:tree_tag() ! ANY => ""');
15yield;
16endfor
17player:tell("-- @shopgrep done --");

@dropgrep

Spec any none noneFlags rxdOwner #361Definer #317

Referenced by

none

Source

1parent = $su:literal_object(argstr);
2if (!valid(parent))
3player:tell("I don't know what '", argstr, "' is.");
4return;
5endif
6player:tell("@dropgrep: Looking for ", $ansi.white, $ansi.bold_on, $su:nn(parent), $ansi.reset, " in spawns_with...");
7objs = $gu:find_in_spawns(parent);
8if (!objs)
9player:tell("Nothing found.");
10return;
11endif
12player:tell("");
13for o in (objs)
14player:tell("  ", $ansi.blue, $ansi.bold_on, $su:left(tostr(o), 9), $ansi.yellow, $su:left(o.name, 30), $ansi.reset, `o:tree_tag() ! ANY => ""');
15yield;
16endfor
17player:tell("-- @dropgrep done --");

@topitems

Spec none none noneFlags rxdOwner #361Definer #317

Referenced by

none

Source

1if ((time() - this.last_topitems) > 86400)
2player:systell("Calculating topitems, this will take a while...");
3this:calc_topitems();
4endif
5top = this.topitems;
6headcolors = {$ansi.white + $ansi.bold_on, $ansi.yellow + $ansi.bold_on, $ansi.green + $ansi.bold_on};
7headers = {"Item", "Count", "Total Value"};
8rowcolors = {$ansi.blue + $ansi.bold_on, $ansi.yellow, $ansi.green};
9widths = {40, 6, 12};
10for i in [1..length(top)]
11{o, count} = top[i];
12val = tostr("$", $su:group_number(o.value * count));
13top[i] = {$su:nn(o), count, val};
14yield;
15endfor
16player:tell_lines($su:make_table(headcolors, headers, rowcolors, top, widths));

game_owner

Spec this none thisFlags rxdOwner #361Definer #317

Referenced by

Source

1{o} = args;
2if (o.f)
3return #-1;
4endif
5r = o.location;
6while (valid(r))
7if (is_a(r, #116093))
8"Deposit box";
9return r.player;
10elseif (is_a(r, $room))
11owner = r.owner;
12"if (valid(owner.employer) && (r.location in owner.employer.controlled_areas))";
13"  return owner.employer;";
14"endif";
15return r.owner;
16elseif (is_a(r, $creature))
17return r;
18elseif (is_a(r, #207540))
19"Corp store";
20return r.biz;
21elseif (is_a(r, #2801))
22"Shop";
23return r.location;
24elseif (is_a(r, #116093))
25"Deposit box";
26return r.player;
27elseif (is_a(r, #6190))
28"Leaseable machine";
29return r.lease;
30endif
31r = r.location;
32endwhile
33return #-1;

calc_topitems

Spec this none thisFlags rxdOwner #361Definer #317

Referenced by

Source

1allcounts = [];
2for f in (this.all_fertile)
3if (is_a(f, $thing) && f.value)
4count = 0;
5for c in (children(f))
6owner = this:game_owner(c);
7if (is_a(owner, $player) && (!owner.programmer))
8count = count + 1;
9endif
10yield 1;
11endfor
12allcounts[f] = count;
13endif
14yield 1;
15endfor
16top = $hu:topn(allcounts, 50, 2);
17top = $lu:reverse($lu:sort_alist(top, 2));
18this.topitems = top;
19this.last_topitems = time();
20allvalues = [];
21for o in (keys(allcounts))
22allvalues[o] = allcounts[o] * o.value;
23yield 1;
24endfor
25top = $hu:topn(allvalues, 50, 2);
26top = $lu:reverse($lu:sort_alist(top, 2));
27this.topitemvalues = top;

calc_topitems

Spec this none thisFlags rxdOwner #362Definer #317

Referenced by

none

Source

No program (verb defined but unprogrammed).

@topvalues

Spec none none noneFlags rxdOwner #361Definer #317

Referenced by

none

Source

1if ((time() - this.last_topitems) > 86400)
2player:systell("Calculating topitems, this will take a while...");
3this:calc_topitems();
4endif
5top = this.topitemvalues;
6headcolors = {$ansi.white + $ansi.bold_on, $ansi.yellow + $ansi.bold_on, $ansi.green + $ansi.bold_on};
7headers = {"Item", "Count", "Total Value"};
8rowcolors = {$ansi.blue + $ansi.bold_on, $ansi.yellow, $ansi.green};
9widths = {40, 6, 12};
10for i in [1..length(top)]
11{o, value} = top[i];
12count = value / o.value;
13val = tostr("$", $su:group_number(value));
14top[i] = {$su:nn(o), count, val};
15yield;
16endfor
17player:tell_lines($su:make_table(headcolors, headers, rowcolors, top, widths));

@itemreport

Spec any none noneFlags rxdOwner #361Definer #317

Referenced by

none

Source

1if (!valid(dobj))
2player:systell("Searching for '", dobjstr, "'...");
3dobj = $mu:match(dobjstr, this.all_fertile);
4if (!valid(dobj))
5$mu:object_match_failed(dobj, dobjstr, this.all_fertile);
6return;
7endif
8endif
9player:systell("Gathering data...");
10who_owns = [];
11count = 0;
12npcount = 0;
13for c in (children(dobj))
14owner = this:game_owner(c);
15if (is_a(owner, $player) && (!owner.programmer))
16count = count + 1;
17who_owns[owner] = `who_owns[owner] ! E_RANGE => 0' + 1;
18else
19npcount = npcount + 1;
20endif
21yield 1;
22endfor
23owners = length(who_owns);
24if (owners)
25average = tofloat(count) / tofloat(owners);
26else
27average = 0.0;
28endif
29player:tell(" ", $ansi.green, $ansi.bold_on, dobj.name, $ansi.reset);
30player:tell("   Type: ", this:typeof(dobj));
31player:tell("   Value: $", $su:group_number(dobj.value));
32player:tell("   Owned by ", owners, " players: ", $su:group_number(count), " (", floatstr(average, 2), " each)");
33player:tell("   Available in game world: ", $su:group_number(npcount));

@ff @fff @f3 @ffff

Spec any any anyFlags rxdOwner #361Definer #317

Referenced by

none

Source

1if ((length(args) < 2) && (verb != "@ffff"))
2player:tell("Usage: @ff[f] <parent> <searchstring>   (e.g. @ff $food bread). The extra f is for fertile things only.");
3return;
4endif
5fertile_only = verb != "@ff";
6if (verb == "@ffff")
7parent = $food;
8searchstr = argstr;
9else
10spc = index(argstr, " ");
11parentstr = argstr[1..spc - 1];
12searchstr = argstr[spc + 1..$];
13parent = $su:literal_object(parentstr);
14endif
15if (!valid(parent))
16parentstr = "$" + parentstr;
17parent = $su:literal_object(parentstr);
18endif
19if (!valid(parent))
20player:tell("What's a '", parentstr, "'?");
21return;
22endif
23if ((parent in {$thing, #1, #3}) && (!fertile_only))
24if (!$cu:yes_or_no(("Really search for non-fertile children of " + parent.name) + "?"))
25player:tell("Aborted.");
26return;
27endif
28endif
29o = $ou:fastfind(parent, searchstr, fertile_only);
30if (!valid(o))
31player:tell("Nothing found for '", searchstr, "' from ", $su:nn(parent), ".");
32else
33player:tell("  ", $ansi.blue, $ansi.bold_on, $su:left(tostr(o), 9), $ansi.yellow, $su:left(o.name, 30), $ansi.reset, `o:tree_tag() ! ANY => ""');
34endif

@nugrep

Spec any any anyFlags rxdOwner #361Definer #317

Referenced by

none

Source

1for o in [#0..max_object()]
2yield;
3if ((tonum(o) % 100000) == 0)
4player:tell(o, "...");
5endif
6if (!valid(o))
7continue;
8endif
9for v in (verbs(o))
10yield;
11lines = tostr(@verb_code(o, v));
12if (index(lines, argstr))
13player:tell(o, ":", v);
14endif
15endfor
16endfor
17player:tell(verb, " done.");