GameCheck FO #317
Aliases: GameCheck FO, gcfo
67 verbs · 70 properties · 0 children
Verbs
| Verb | Spec | Flags | Definer | Lines |
|---|---|---|---|---|
@countweapons | none none none | rxd | #317 | 55 |
allitems | this none this | rxd | #317 | 43 |
typeof | this none this | rxd | #317 | 10 |
totalvalue | this none this | rxd | #317 | 16 |
calc_topvalue | this none this | rxd | #317 | 38 |
@topvalue | none none none | rxd | #317 | 37 |
extypeof | this none this | rxd | #317 | 13 |
@whohas @whohas+ | any none none | rxd | #317 | 175 |
@allitems @allitems+ | any none none | rxd | #317 | 116 |
@countarmor @countclothing | none none none | rxd | #317 | 59 |
_ofind | this none this | rxd | #317 | 62 |
networth | this none this | rxd | #317 | 8 |
@monsters | any none none | rxd | #317 | 86 |
@sizeup | any with/using any | rxd | #317 | 23 |
@positions | none none none | rxd | #317 | 25 |
allstock | this none this | rxd | #317 | 10 |
@monsters-xp | any none none | rxd | #317 | 46 |
@monsters-new | any none none | rxd | #317 | 57 |
@checkloot | none none none | rxd | #317 | 18 |
@spy | any none none | rxd | #317 | 58 |
quickbar | this none this | rxd | #317 | 42 |
@aspy | any none none | rxd | #317 | 54 |
@rspy | any none none | rxd | #317 | 58 |
@uspy | none none none | rxd | #317 | 48 |
@fuckup | any any any | rxd | #317 | 2 |
@pathto | any none none | rxd | #317 | 55 |
ascend | none none none | rxd | #317 | 8 |
@networth | any none none | rxd | #317 | 15 |
update_fertile | this none this | rxd | #317 | 19 |
faster_match | this none this | rxd | #317 | 0 |
match_for_spawn | this none this | rxd | #317 | 37 |
monster_for_spawn | this none this | rxd | #317 | 37 |
update_monsters | this none this | rxd | #317 | 5 |
match_for_ofind | this none this | rxd | #317 | 30 |
@ofind | any any any | rxd | #317 | 18 |
@ofind+ @ofind-all @ofind-all+ | any out of/from inside/from any | rxd | #317 | 32 |
match_for_ofind | this none this | rxd | #317 | 0 |
_add_source | this none this | rxd | #317 | 6 |
update_sources | this none this | rxd | #317 | 151 |
@globstatus | none none none | rxd | #317 | 10 |
u2 | this none this | rxd | #317 | 12 |
@actor-check | none none none | rxd | #317 | 18 |
child_counts | this none this | rxd | #317 | 45 |
_bigtree | this none this | rxd | #317 | 33 |
@bigtree | any none none | rxd | #317 | 20 |
@my | any none none | rxd | #317 | 32 |
@checkspeciesquests | none none none | rxd | #317 | 19 |
@findunsecureobjects | none none none | rxd | #317 | 16 |
@what-is-auto-cleaning | none none none | rxd | #317 | 6 |
do_scope | this none this | rxd | #317 | 106 |
tell_for_ex | this none this | rxd | #317 | 120 |
tostr_for_ex | this none this | rxd | #317 | 41 |
@addex | any any any | rxd | #317 | 98 |
dongs | none none none | rxd | #317 | 1 |
@scope @scope+ | any any any | rxd | #317 | 21 |
_www | this none this | rxd | #317 | 22 |
@compare | any any any | rxd | #317 | 185 |
@shopgrep | any none none | rxd | #317 | 17 |
@dropgrep | any none none | rxd | #317 | 17 |
@topitems | none none none | rxd | #317 | 16 |
game_owner | this none this | rxd | #317 | 33 |
calc_topitems | this none this | rxd | #317 | 27 |
calc_topitems | this none this | rxd | #317 | 0 |
@topvalues | none none none | rxd | #317 | 17 |
@itemreport | any none none | rxd | #317 | 33 |
@ff @fff @f3 @ffff | any any any | rxd | #317 | 34 |
@nugrep | any any any | rxd | #317 | 17 |
Properties
| Property | Definer | Flags | Owner | Value |
|---|---|---|---|---|
types | #317 | rc | #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 | #317 | rc | #361 | 1311676524 |
topvalue | #317 | rc | #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 | #317 | rc | #361 | 84329665 |
gnp_per | #317 | rc | #361 | 330704 |
zeros | #317 | rc | #361 | {#631478, #675019} |
allvalues | #317 | rc | #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 | #317 | rc | #361 | #41261 |
health_red | #317 | rc | #361 | 0.1 |
health_yellow | #317 | rc | #361 | 0.33 |
regions | #317 | rc | #361 | {#140391, #20358, #16788, #136537, #144869, #149962} |
depositbox | #317 | rc | #361 | #116093 |
special_exemptions | #317 | rc | #361 | {#143513} |
all_fertile | #317 | rc | #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 | #317 | rc | #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 | #317 | rc | #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 | #317 | rc | #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 | #317 | rc | #361 | 0.05 |
bigtree_color | #317 | rc | #361 | "~1b[35m~1b[1m" |
bigtree_bold_color | #317 | rc | #361 | "~1b[35m" |
bigtree_num_color | #317 | rc | #361 | "" |
bigtree_colors | #317 | rc | #361 | {"~1b[36m", "~1b[33m", "~1b[37m~1b[1m", "~1b[37m~1b[1m"} |
bigtree_pct_hide | #317 | rc | #361 | 0.01 |
all_valuable | #317 | r | #361 | {} |
secure_fertile_locations | #317 | rc | #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 | #317 | rc | #361 | list of 10{"description", "object_size", "aliases", "hidden_verbs", "owner_verbs", "plural_name", "client_image", "setup_list", "article", "junk_ok"} |
global_prop_descs | #317 | rc | #361 | #450687 |
addex_help_off | #317 | rc | #361 | {} |
addex_help_msg | #317 | rc | #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 | #317 | rc | #361 | #432415 |
quiet_compare_obj | #317 | rc | #361 | #519389 |
typehash | #317 | rc | #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 | #317 | rc | #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 | #317 | rc | #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 | #317 | rc | #361 | 1301466349 |
topitemvalues | #317 | rc | #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 | #68 | r | #29 | <clear> |
help_msg | #68 | rc | #361 | <clear> |
feature_verbs | #68 | r | #29 | {} |
feature_ok | #68 | r | #29 | <clear> |
handed | #5 | rc | #361 | <clear> |
wield_msg | #5 | rc | #361 | <clear> |
unwield_msg | #5 | rc | #361 | <clear> |
size | #5 | rc | #361 | <clear> |
look_place_msg | #5 | rc | #361 | <clear> |
value | #5 | rc | #361 | <clear> |
get_msg | #5 | rc | #361 | <clear> |
drop_msg | #5 | rc | #361 | <clear> |
get_fail_msg | #5 | rc | #361 | <clear> |
junk_ok | #5 | rc | #361 | <clear> |
floats | #5 | rc | #361 | <clear> |
long_name_msg | #5 | rc | #361 | <clear> |
article | #5 | rc | #361 | <clear> |
setup_list | #5 | rc | #361 | <clear> |
health | #5 | rc | #361 | <clear> |
health_max | #5 | rc | #361 | <clear> |
min_skill | #5 | rc | #361 | <clear> |
skill | #5 | rc | #361 | <clear> |
recipe_for | #5 | rc | #361 | <clear> |
carried_msg | #5 | rc | #361 | <clear> |
aliases | #1 | rc | #361 | {"GameCheck FO", "gcfo"} |
description | #1 | rc | #361 | <clear> |
object_size | #1 | r | #29 | {284776, 1298434038} |
hidden_verbs | #1 | rc | #361 | <clear> |
phelp_msg | #1 | rc | #361 | <clear> |
weight | #1 | rc | #361 | <clear> |
owner_verbs | #1 | rc | #361 | <clear> |
plural_name | #1 | rc | #361 | <clear> |
client_image | #1 | rc | #361 | <clear> |
listening | #1 | rc | #361 | <clear> |
Ancestry
Ancestors (nearest first): #68 Generic Feature Object → #5 generic thing → #1 root
Children: none
Call graph
Showing 48 of 123 verbs; 75 not shown.
Source
@countweapons
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
Referenced by
- #317:@allitems line 22:
this:allitems - #317:networth line 6:
this:allitems
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
Referenced by
- #150:@analyze-beat line 16:
$gamecheck:typeof - #150:@analyze-beat line 28:
$gamecheck:typeof - #317:@allitems line 52:
this:typeof - #317:@allitems line 55:
this:typeof - #317:_ofind line 57:
this:typeof - #317:@itemreport line 30:
this:typeof - #356:announce_change line 10:
$gamecheck:typeof - #357:announce_change line 10:
$gamecheck:typeof - #357:announce_remove line 10:
$gamecheck:typeof - #357:announce_add line 10:
$gamecheck:typeof
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
Referenced by
- #317:networth line 8:
this:totalvalue
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
Referenced by
- #317:@topvalue line 5:
this:calc_topvalue
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
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
Referenced by
- #2:tell_tree line 41:
#317:extypeof - #150:@analyze-beat line 14:
$gamecheck:extypeof - #150:@analyze-beat line 26:
$gamecheck:extypeof - #317:@whohas line 75:
this:extypeof
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+
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+
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
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
Referenced by
- #317:@ofind+ line 32:
this:_ofind
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
Referenced by
- #317:calc_topvalue line 15:
this:networth - #317:@networth line 13:
this:networth
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
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
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
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
Referenced by
- #317:networth line 7:
this:allstock
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
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
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
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
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
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
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
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
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
Referenced by
none
Source
1"test"; 2lol;
@pathto
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
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
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
Referenced by
- #297:update_ofind line 1:
$gamecheck:update_fertile
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
Referenced by
none
Source
No program (verb defined but unprogrammed).
match_for_spawn
Referenced by
- #2:@spawn line 13:
$gamecheck:match_for_spawn
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
Referenced by
- #2:@spawn line 11:
$gamecheck:monster_for_spawn - #317:@compare line 28:
#317:monster_for_spawn
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
Referenced by
- #317:update_monsters line 3:
this:update_monsters
Source
1this.all_monsters = $ou:branches_suspended($monster, 2); 2fork (86400) 3this:update_monsters(); 4endfork 5return 1;
match_for_ofind
Referenced by
- #317:@whohas line 9:
#317:match_for_ofind - #317:@monsters line 6:
#317:match_for_ofind - #317:@ofind line 5:
#317:match_for_ofind - #317:@scope line 10:
#317:match_for_ofind
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
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+
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
Referenced by
none
Source
No program (verb defined but unprogrammed).
_add_source
Referenced by
- #317:update_sources line 9:
this:_add_source - #317:update_sources line 27:
this:_add_source - #317:update_sources line 42:
this:_add_source - #317:update_sources line 59:
this:_add_source - #317:update_sources line 77:
this:_add_source - #317:update_sources line 92:
this:_add_source - #317:update_sources line 106:
this:_add_source - #317:update_sources line 121:
this:_add_source - #317:update_sources line 145:
this:_add_source
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
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
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
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
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
Referenced by
- #317:child_counts line 8:
this:child_counts - #317:@bigtree line 15:
this:child_counts
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
Referenced by
- #317:_bigtree line 19:
this:_bigtree - #317:_bigtree line 22:
this:_bigtree - #317:@bigtree line 17:
this:_bigtree - #317:@bigtree line 19:
this:_bigtree
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
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
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
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
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
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
Referenced by
- #317:@scope line 21:
this:do_scope
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
Referenced by
- #317:do_scope line 9:
this:tell_for_ex - #317:do_scope line 11:
this:tell_for_ex - #317:do_scope line 24:
this:tell_for_ex - #317:do_scope line 25:
this:tell_for_ex - #317:do_scope line 96:
this:tell_for_ex
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
Referenced by
- #317:tell_for_ex line 29:
this:tostr_for_ex - #317:tell_for_ex line 34:
this:tostr_for_ex - #317:tell_for_ex line 36:
this:tostr_for_ex - #317:tell_for_ex line 41:
this:tostr_for_ex - #317:tell_for_ex line 86:
this:tostr_for_ex - #317:tell_for_ex line 90:
this:tostr_for_ex - #317:tell_for_ex line 94:
this:tostr_for_ex - #317:tell_for_ex line 94:
this:tostr_for_ex - #317:tell_for_ex line 99:
this:tostr_for_ex - #317:tell_for_ex line 107:
this:tostr_for_ex - #317:tostr_for_ex line 20:
this:tostr_for_ex
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
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
Referenced by
none
Source
1player:tell("dongs are in the air");
@scope @scope+
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
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
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
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
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
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
Referenced by
- #2:tell_tree line 31:
$gamecheck:game_owner - #317:@whohas line 64:
this:game_owner - #317:calc_topitems line 6:
this:game_owner - #317:@itemreport line 14:
this:game_owner
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
Referenced by
- #317:@topitems line 3:
this:calc_topitems - #317:@topvalues line 3:
this:calc_topitems
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
Referenced by
none
Source
No program (verb defined but unprogrammed).
@topvalues
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
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
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
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.");