someone #31

Parent #33Owner #29Flags player, programmer, readSource hellcore/hellcore.db

Aliases: Someone

6 verbs · 174 properties · 0 children

Verbs

VerbSpecFlagsDefinerLines
evalthis none thisrxd#3114
movetothis none thisrxd#311
eval_dthis none thisrxd#3115
call_verbthis none thisrxd#315
bad_evalthis none thisrxd#3122
set_*this none thisrxd#315

Properties

PropertyDefinerFlagsOwnerValue
queued_task_limit#31r#3610
_mail_task#33rc#29<clear>
messages_going#33c#29{}
mail_lists#33rc#29<clear>
mail_notify#33r#361<clear>
mail_forward#33rc#29"Everyman ($no_one) can not receive mail."
mail_options#33rc#29{}
message_keep_date#33rc#29<clear>
messages_kept#33rc#29{}
current_message#33c#29<clear>
messages#33c#29{}
mail_hack#33rc#29<clear>
barcolor#33rc#29<clear>
autowield#33rc#29<clear>
bug#33rc#29<clear>
readied_weapon#33rc#29<clear>
unread_mail#33rc#29<clear>
features#6r#29{#91, #160, #4841, #5759, #10094, #27666, #417796, #369229}
previous_connection#6#361<clear>
email_address#6#361""
last_disconnect_time#6r#3612147483647
help#6rc#29<clear>
more_msg#6rc#29<clear>
linetask#6r#29<clear>
linesleft#6r#29<clear>
linebuffer#6#29<clear>
pagelen#6r#29<clear>
owned_objects#6r#361{}
linelen#6r#29<clear>
current_folder#6c#29<clear>
all_connect_places#6#361<clear>
last_connect_place#6#361<clear>
lines#6c#29<clear>
page_absent_msg#6rc#29<clear>
page_origin_msg#6rc#29<clear>
page_echo_msg#6rc#29"... no one out there to see it."
edit_options#6rc#29<clear>
last_connect_time#6r#3612147483647
ownership_quota#6#291073741823
password#6#361<clear>
paranoid#6rc#29<clear>
display_options#6rc#29<clear>
verb_subs#6rc#29<clear>
first_connect_time#6r#3612147483647
size_quota#6#29{0, 0, 1084435200, 0}
last_password_time#6#361<clear>
last_connect_attempt#6#361<clear>
prefs#6rc#29
list of 17{1, 0, 0, 0, 0, 0, 0, 0, {"showmap", 1}, 0, 0, 0, 0, 0, 0, 0, 0}
ansi#6rc#29<clear>
last_hit_meter#6rc#29"~1b[1m[~1b[31m***************~1b[0m~1b[1m]~1b[0m"
doing_msg#6rc#29<clear>
xp_total#6rc#29184
party#6rc#29#-1
rooms#6r#361<clear>
client#6rc#29<clear>
last_death_time#6rc#29<clear>
default_weapon#6rc#29<clear>
thirst#6rc#29<clear>
may_chat#6rc#29<clear>
idlemsg#6rc#29<clear>
eula#6rc#29<clear>
birthdate#6rc#29<clear>
bad_words#6rc#29<clear>
char_start_time#6rc#292147483647
rumors#6rc#29<clear>
last_broadcast#6rc#29<clear>
ansihack#6rc#29<clear>
last_death_callers#6rc#29<clear>
char_extra_epochs#6rc#29<clear>
code_name#6rc#29""
code_plural#6rc#29<clear>
changeable_properties#6rc#29<clear>
out_of_band_session#6r#29<clear>
private_aliases#6rc#29<clear>
quests_open#6rc#29<clear>
quests#6rc#29
list of 17{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
page_receive_msg#6rc#29<clear>
page_msg#6rc#29<clear>
focus_skills#6rc#29<clear>
skillpoints#100rc#29<clear>
xp#100rc#29151
mutations#100rc#29<clear>
mutation_slots#100rc#29<clear>
char_start_age#100rc#29<clear>
char_extra_age#100rc#29<clear>
hands#107rc#29<clear>
wielding#107rc#29{}
health#107rc#290
unarmed_weapon#107rc#29<clear>
size#107rc#29<clear>
posture#107rc#29<clear>
gender#107rc#29"anonymous"
respawn#107rc#29#2800
corpse#107rc#29<clear>
has_proper_name#107rc#291
die_msg#107rc#29<clear>
body_parts#107rc#29<clear>
wearing#107rc#29<clear>
armor#107rc#29<clear>
last_swing_message#107rc#29<clear>
health_max#107rc#29<clear>
fighting#107rc#29<clear>
last_dodge_time#107rc#29<clear>
following#107rc#29<clear>
icon#107rc#29<clear>
say_msg#107rc#29<clear>
say_to_msg#107rc#29<clear>
afterlife#107rc#29<clear>
get_msg#107rc#29<clear>
drop_msg#107rc#29<clear>
blood#107rc#29{{#8811, 683743872, 5}, {#17323, 889996584, 5}, {#28272, 1242895462, 2}, {#1324, 1249786318, 5}}
squeals#107rc#29<clear>
prc#107rc#29"Themself"
ppc#107rc#29"Their"
poc#107rc#29"Them"
psc#107rc#29"They"
pr#107rc#29"themself"
pp#107rc#29"their"
po#107rc#29"them"
ps#107rc#29"they"
pq#107rc#29"theirs"
pqc#107rc#29"Theirs"
brief#107rc#29<clear>
knockout#107rc#29<clear>
knockout_msg#107rc#29<clear>
body#107rc#29<clear>
wake_msg#107rc#29<clear>
owake_msg#107rc#29<clear>
oknockout_msg#107rc#29<clear>
friends#107rc#29<clear>
home#107rc#29#1438
respawn_msg#107rc#29<clear>
move_action#107rc#29<clear>
heart#107rc#290
last_heartbeat#107rc#291189897907
dead#107rc#290
_tohit_next#107rc#29<clear>
last_words_msg#107rc#29<clear>
attacked#107rc#29<clear>
opens_doors#107rc#29<clear>
movable_by_explosion#107rc#29<clear>
obscured#107rc#29<clear>
obscured_desc_msg#107rc#29<clear>
cooldowns#107rc#29<clear>
combat_rounds#107rc#29<clear>
encumbrance#107rc#29{0, 0}
respawn_handler#107rc#29<clear>
distant_form_msg#107rc#29<clear>
block_msg#107rc#29<clear>
attack_on_block#107rc#290
last_stunned#107rc#29<clear>
nude_descs#107rc#29<clear>
skills#107rc#29<clear>
explode_msg#107rc#29<clear>
death_listeners#107rc#29<clear>
queue#92r#361{}
preemptible#92r#3611
executing#92r#361{}
process_queue#92r#3610
help_msg#92rc#29<clear>
last_action#92r#361{#155, {#-1}, 1, "recline"}
article#92rc#29<clear>
last_last_action#92rc#29<clear>
action_count#92rc#29<clear>
aliases#1r#362{"Someone"}
description#1rc#29"The character used for \"safe\" evals."
object_size#1r#29{11578, 1298433815}
hidden_verbs#1rc#29<clear>
phelp_msg#1rc#29<clear>
weight#1rc#29<clear>
owner_verbs#1rc#29<clear>
plural_name#1rc#29<clear>
client_image#1rc#29<clear>
listening#1rc#29<clear>

Ancestry

Ancestors (nearest first): #33 generic normal player#6 generic player#100 generic RPG player#154 generic living creature#107 generic creature#92 generic actor#1 root

Children: none

Call graph

calls n31_0 #31:eval n31_4 #31:bad_eval n31_0->n31_4 n51_35 #51:inside_quotes n31_4->n51_35 n57_9 #57:valid n31_4->n57_9 n31_2 #31:eval_d n31_2->n31_4 n51_0 #51:eval_d n31_2->n51_0

Source

eval

Spec this none thisFlags rxdOwner #361Definer #31

Referenced by

Source

1"eval(code)";
2"Evaluate code with $no_one's permissions (so you won't damage anything).";
3"If code does not begin with a semicolon, set this = caller (in the code to be evaluated) and return the value of the first `line' of code.  This means that subsequent lines will not be evaluated at all.";
4"If code begins with a semicolon, set this = caller and let the code decide for itself when to return a value.  This is how to do multi-line evals.";
5exp = args[1];
6if (this:bad_eval(exp))
7return E_PERM;
8endif
9set_task_perms(this);
10if (exp[1] != ";")
11return eval(tostr("this=", caller, "; return ", exp, ";"));
12else
13return eval(tostr("this=", caller, ";", exp, ";"));
14endif

moveto

Spec this none thisFlags rxdOwner #29Definer #31

Referenced by

none

Source

1return 0;

eval_d

Spec this none thisFlags rxdOwner #361Definer #31

Referenced by

Source

1":eval_d(code)";
2"exactly like :eval except that the d flag is unset";
3"Evaluate code with $no_one's permissions (so you won't damage anything).";
4"If code does not begin with a semicolon, set this = caller (in the code to be evaluated) and return the value of the first `line' of code.  This means that subsequent lines will not be evaluated at all.";
5"If code begins with a semicolon, set this = caller and let the code decide for itself when to return a value.  This is how to do multi-line evals.";
6exp = args[1];
7if (this:bad_eval(exp))
8return E_PERM;
9endif
10set_task_perms(this);
11if (exp[1] != ";")
12return $code_utils:eval_d(tostr("this=", caller, "; return ", exp, ";"));
13else
14return $code_utils:eval_d(tostr("this=", caller, ";", exp, ";"));
15endif

call_verb

Spec this none thisFlags rxdOwner #361Definer #31

Referenced by

none

Source

1"call_verb(object, verb name, args)";
2"Call verb with $no_one's permissions (so you won't damage anything).";
3"One could do this with $no_one:eval, but ick.";
4set_task_perms(this);
5return args[1]:(args[2])(@args[3]);

bad_eval

Spec this none thisFlags rxdOwner #361Definer #31

Referenced by

Source

1":bad_eval(exp)";
2"  Returns 1 if the `exp' is inappropriate for use by $no_one.  In particular,  if `exp' contains calls to `eval', `fork', `suspend', or `call_function' it is  bad.  Similarly, if `player' is a nonvalid object (or a child of $garbage) the  expression is considered `bad' because it is likely an attempt to anonymously  spoof.";
3"  At present, the checks for bad builtins are overzealous.  It should check  for delimited uses of the above calls, in case someone has a variable called  `prevalent'.";
4{exp} = args;
5if (((index(exp, "eval") || index(exp, "fork")) || index(exp, "suspend")) || index(exp, "call_function"))
6"Well, they had one of the evil words in here.  See if it was in a quoted  string or not -- we want to permit player:tell(\"Gentlemen use forks.\")";
7for bad in ({"eval", "fork", "suspend", "call_function"})
8tempindex = 1;
9while (l = index(exp[tempindex..$], bad, 0))
10if ($code_utils:inside_quotes(exp[1..(tempindex + l) - 1]))
11tempindex = tempindex + l;
12else
13"it's there, bad unquoted string";
14return 1;
15endif
16endwhile
17endfor
18endif
19if ((!$recycler:valid(player)) && (player >= #0))
20return 1;
21endif
22return 0;

set_*

Spec this none thisFlags rxdOwner #29Definer #31

Referenced by

none

Source

1if (!caller_perms().wizard)
2return E_PERM;
3else
4return pass(@args);
5endif