Crossfire Server, Branch 1.12  R12190
Defines | Enumerations | Functions
c_wiz.c File Reference

Those functions are used by DMs. More...

#include <global.h>
#include <sproto.h>
#include <spells.h>
#include <treasure.h>
#include <skills.h>
Include dependency graph for c_wiz.c:

Go to the source code of this file.

Defines

#define STACK_SIZE   50
 Stack size, static.

Enumerations

enum  { STACK_FROM_NONE = 0, STACK_FROM_TOP = 1, STACK_FROM_STACK = 2, STACK_FROM_NUMBER = 3 }
 Values for 'from' field of get_dm_object() More...

Functions

static int checkdm (object *op, const char *pl_name, const char *pl_passwd, const char *pl_host)
 object *op is trying to become dm.
int command_abil (object *op, char *params)
 Changes an object's statistics.
int command_addexp (object *op, char *params)
 This adds exp to a player.
int command_arrest (object *op, char *params)
 Wizard jails player.
int command_banish (object *op, char *params)
 Add player's IP to ban_file and kick them off the server.
int command_create (object *op, char *params)
 Wizard wants to create an object.
int command_diff (object *op, char *params)
 Get a diff of specified items.
int command_dm (object *op, char *params)
 Actual command to perhaps become dm.
int command_dmhide (object *op, char *params)
 A players wants to become DM and hide.
int command_dump (object *op, char *params)
 Dumps the difference between an object and its archetype.
int command_follow (object *op, char *params)
 DM wants to follow a player, or stop following a player.
int command_forget_spell (object *op, char *params)
 Wizard wishes to forget a spell.
int command_free (object *op, char *params)
 Totally free an object.
int command_freeze (object *op, char *params)
 Freezes a player for a specified tick count, 100 by default.
int command_goto (object *op, char *params)
 Wizard teleports to a map.
int command_hide (object *op, char *params)
 Wizard 'hide' command.
int command_insert_into (object *op, char *params)
 Puts an object into another.
int command_inventory (object *op, char *params)
 Shows the inventory or some item.
int command_invisible (object *op, char *params)
 Wizard wants to become invisible.
int command_kick (object *op, const char *params)
 Kicks a player from the server.
int command_learn_special_prayer (object *op, char *params)
 Wizard wants to learn a god-given spell.
int command_learn_spell (object *op, char *params)
 Wizard wants to learn a regular spell.
static int command_learn_spell_or_prayer (object *op, char *params, int special_prayer)
 Wizards wants to learn a spell.
int command_listplugins (object *op, char *params)
 Lists all plugins currently loaded with their IDs and full names.
int command_loadplugin (object *op, char *params)
 Loads the given plugin.
int command_loadtest (object *op, char *params)
 This command will stress server.
int command_mon_aggr (object *op, char *params)
 When DM is possessing a monster, flip aggression on and off, to allow better motion.
int command_nowiz (object *op, char *params)
 Steps down from wizard mode.
int command_overlay_reset (object *op, char *params)
 Removes the overlay for op's current map.
int command_overlay_save (object *op, char *params)
 Saves the op's map as an overlay - objects are persisted.
int command_patch (object *op, char *params)
 Wizard wants to altar an object.
int command_possess (object *op, char *params)
 DM can possess a monster.
int command_remove (object *op, char *params)
 Remove an object from its position.
int command_reset (object *op, char *params)
 Resets a map.
int command_setgod (object *op, char *params)
 Sets the god for some objects.
int command_shutdown (object *op, char *params)
 Totally shutdowns the server.
int command_skills (object *op, char *params)
 Player is asking for her skills.
int command_speed (object *op, char *params)
 Changes the server speed.
int command_stack_clear (object *op, char *params)
 Empty DM item stack.
int command_stack_list (object *op, char *params)
 Displays stack contents.
int command_stack_pop (object *op, char *params)
 Pop the stack top.
int command_stack_push (object *op, char *params)
 Push specified item on stack.
int command_stats (object *op, char *params)
 Displays the statistics of a player.
int command_style_map_info (object *op, char *params)
 Displays information about styles loaded for random maps.
int command_summon (object *op, char *params)
 Summons player near DM.
int command_teleport (object *op, char *params)
 Teleport next to target player.
int command_toggle_shout (object *op, char *params)
 A simple toggle for the no_shout field.
int command_unloadplugin (object *op, char *params)
 Unloads the given plugin.
object * dm_stack_peek (player *pl)
 Get current stack top item for player.
void dm_stack_pop (player *pl)
 Remove an item from the wizard's item stack.
void dm_stack_push (player *pl, tag_t item)
 Push specified item on player stack.
int do_wizard_dm (object *op, char *params, int silent)
 Actually changes a player to wizard.
void do_wizard_hide (object *op, int silent_dm)
 Actually hides or unhides specified player (obviously a DM).
static object * find_object_both (char *params)
 This finds and returns the object which matches the name or object number (specified via num #whatever).
object * get_dm_object (player *pl, char **params, int *from)
 Checks 'params' for object code.
static playerget_other_player_from_name (object *op, const char *name)
 Enough of the DM functions seem to need this that I broke it out to a seperate function.
static object * get_spell_by_name (object *op, const char *spell_name)
 Returns spell object (from archetypes) by name.

Detailed Description

Those functions are used by DMs.

Todo:
explain item stack, item specifier for commands.

Definition in file c_wiz.c.


Define Documentation

#define STACK_SIZE   50

Stack size, static.

Definition at line 44 of file c_wiz.c.

Referenced by dm_stack_push().


Enumeration Type Documentation

anonymous enum

Values for 'from' field of get_dm_object()

Enumerator:
STACK_FROM_NONE 

Item was not found.

STACK_FROM_TOP 

Item is stack top.

STACK_FROM_STACK 

Item is somewhere in stack.

STACK_FROM_NUMBER 

Item is a number (may be top)

Definition at line 46 of file c_wiz.c.


Function Documentation

static int checkdm ( object *  op,
const char *  pl_name,
const char *  pl_passwd,
const char *  pl_host 
) [static]

object *op is trying to become dm.

pl_name is name supplied by player. Restrictive DM will make it harder for socket users to become DM - in that case, it will check for the players character name.

Parameters:
opplayer wishing to become DM.
pl_nameplayer's name.
pl_passwdentered password.
pl_hostplayer's host.
Return values:
0invalid credentials.
1op can become DM.
Todo:
can't name/host be found from op? What is RESTRICTIVE_DM?

Definition at line 1887 of file c_wiz.c.

References Settings::confdir, DMFILE, llevDebug, llevError, LOG(), MAX_BUF, settings, and snprintf().

Referenced by do_wizard_dm().

Here is the call graph for this function:

Here is the caller graph for this function:

int command_abil ( object *  op,
char *  params 
)

Changes an object's statistics.

Parameters:
opwizard.
paramsparameters, should be "player statistic new_value".
Returns:
1.
Todo:
use get_other_player_from_name(). Isn't this useless with the command_patch()?

Definition at line 1595 of file c_wiz.c.

References liv::Cha, liv::Con, liv::Dex, draw_ext_info(), draw_ext_info_format(), FALSE, first_player, fix_object(), FLAG_WAS_WIZ, liv::Int, MAX_STAT, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DM, MSG_TYPE_COMMAND_ERROR, NDI_UNIQUE, pl::next, pl::ob, pl::orig_stats, liv::Pow, Settings::real_wiz, SET_FLAG, settings, liv::Str, and liv::Wis.

Here is the call graph for this function:

int command_addexp ( object *  op,
char *  params 
)

This adds exp to a player.

We now allow adding to a specific skill.

Parameters:
opwizard.
paramsshould be "player quantity [skill]".
Returns:
1.

Definition at line 1433 of file c_wiz.c.

References calc_perm_exp(), check_exp_adjust(), draw_ext_info(), draw_ext_info_format(), FALSE, find_skill_by_name(), first_player, FLAG_WAS_WIZ, MAX_BUF, MAX_NAME, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_ERROR, NDI_UNIQUE, pl::next, pl::ob, player_lvl_adj(), Settings::real_wiz, SET_FLAG, and settings.

Here is the call graph for this function:

int command_arrest ( object *  op,
char *  params 
)

Wizard jails player.

Parameters:
opwizard.
paramsplayer to jail.
Returns:
1.

Definition at line 619 of file c_wiz.c.

References draw_ext_info(), draw_ext_info_format(), enter_exit(), free_object(), get_jail_exit(), get_other_player_from_name(), llevInfo, LOG(), MSG_TYPE_ADMIN, MSG_TYPE_ADMIN_DM, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DM, MSG_TYPE_COMMAND_ERROR, NDI_UNIQUE, and pl::ob.

Here is the call graph for this function:

int command_banish ( object *  op,
char *  params 
)

Add player's IP to ban_file and kick them off the server.

I know most people have dynamic IPs but this is more of a short term solution if they have to get a new IP to play maybe they'll calm down. This uses the banish_file in the local directory *not *the ban_file The action is logged with a ! for easy searching. -tm

Parameters:
opDM banishing.
paramsplayer to banish. Must be a complete name match.
Returns:
1.

Definition at line 293 of file c_wiz.c.

References BANISHFILE, command_kick(), draw_ext_info(), draw_ext_info_format(), get_other_player_from_name(), socket_struct::host, llevDebug, Settings::localdir, LOG(), MAX_BUF, MSG_TYPE_ADMIN, MSG_TYPE_ADMIN_DM, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DM, MSG_TYPE_COMMAND_ERROR, NDI_ALL, NDI_RED, NDI_UNIQUE, pl::ob, settings, snprintf(), and pl::socket.

Here is the call graph for this function:

int command_create ( object *  op,
char *  params 
)

Wizard wants to create an object.

This function is a real mess, because we're stucking getting the entire item description in one block of text, so we just can't simply parse it - we need to look for double quotes for example. This could actually get much simpler with just a little help from the client - if we could get line breaks, it makes parsing much easier, eg, something like:

  • arch dragon
  • name big nasty creature
  • hp 5
  • sp 30

which is much easier to parse than dragon name "big nasty creature" hp 5 sp 30 for example.

Parameters:
opwizard.
paramsobject description.
Returns:
1 unless op is NULL.
Todo:
enable line breaks in command.

Definition at line 783 of file c_wiz.c.

References arch_to_object(), CLEAR_FLAG, copy_object(), create_treasure(), dm_stack_pop(), dm_stack_push(), draw_ext_info(), draw_ext_info_format(), FALSE, find_archetype(), find_archetype_by_object_name(), find_artifactlist(), FLAG_ALIVE, FLAG_IDENTIFIED, FLAG_KNOWN_MAGICAL, FLAG_WAS_WIZ, free_object(), give_artifact_abilities(), GT_APPLY, HORN, insert_ob_in_map(), insert_ob_in_map_at(), insert_ob_in_ob(), artifactstruct::item, artifactliststruct::items, llevDebug, LOG(), MAX, MAX_BUF, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DM, MSG_TYPE_COMMAND_ERROR, NDI_UNIQUE, need_identify(), artifactstruct::next, object_create_arch(), out_of_map(), QUERY_FLAG, Settings::real_wiz, ROD, SCROLL, set_abs_magic(), SET_FLAG, set_magic(), set_variable(), settings, SPELL, SPELLBOOK, and WAND.

Here is the call graph for this function:

int command_diff ( object *  op,
char *  params 
)

Get a diff of specified items.

Second item is compared to first, and differences displayed.

Note:
get_ob_diff() works the opposite way (first compared to 2nd), but it's easier with stack functions to do it this way, so you can do:
  • stack_push <base>
  • stack_push <object to be compared>
  • diff
  • patch xxx <---- applies to object compared to base, easier :)

Ryo, august 2004

Parameters:
opwizard.
paramsobject specifier.
Returns:
0.

Definition at line 2664 of file c_wiz.c.

References dm_stack_pop(), draw_ext_info(), find_object(), get_dm_object(), get_ob_diff(), MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DM, MSG_TYPE_COMMAND_ERROR, NDI_UNIQUE, STACK_FROM_NUMBER, STACK_FROM_TOP, stringbuffer_finish(), and stringbuffer_new().

Here is the call graph for this function:

int command_dm ( object *  op,
char *  params 
)

Actual command to perhaps become dm.

Changed around a bit in version 0.92.2 to allow people on sockets to become dm, and allow better dm file

Parameters:
opplayer wishing to become wizard.
paramspassword.
Returns:
0 unless op isn't a player.

Definition at line 1983 of file c_wiz.c.

References do_wizard_dm().

Here is the call graph for this function:

int command_dmhide ( object *  op,
char *  params 
)

A players wants to become DM and hide.

Let's see if that's authorized. Make sure to not tell anything to anyone.

Parameters:
opwizard.
paramspassword.
Return values:
0failure.
1success.

Definition at line 2333 of file c_wiz.c.

References do_wizard_dm(), and do_wizard_hide().

Here is the call graph for this function:

int command_dump ( object *  op,
char *  params 
)

Dumps the difference between an object and its archetype.

Parameters:
opwiard.
paramsobject to dump.
Returns:
1.

Definition at line 1171 of file c_wiz.c.

References draw_ext_info(), dump_object(), FLAG_OBJ_ORIGINAL, get_dm_object(), MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DM, NDI_UNIQUE, QUERY_FLAG, stringbuffer_finish(), and stringbuffer_new().

Here is the call graph for this function:

int command_follow ( object *  op,
char *  params 
)

DM wants to follow a player, or stop following a player.

Parameters:
opwizard.
paramsplayer to follow. If NULL, stop following player.
Returns:
0.

Definition at line 2863 of file c_wiz.c.

References add_string(), draw_ext_info(), draw_ext_info_format(), find_player_partial_name(), FREE_AND_CLEAR_STR, MSG_TYPE_ADMIN, MSG_TYPE_ADMIN_DM, NDI_UNIQUE, and pl::ob.

Here is the call graph for this function:

int command_forget_spell ( object *  op,
char *  params 
)

Wizard wishes to forget a spell.

Parameters:
opwizard.
paramsspell name to forget.
Returns:
0 if no spell was forgotten, 1 else.

Definition at line 2210 of file c_wiz.c.

References do_forget_spell(), draw_ext_info(), draw_ext_info_format(), lookup_spell_by_name(), MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_ERROR, and NDI_UNIQUE.

Here is the call graph for this function:

int command_free ( object *  op,
char *  params 
)

Totally free an object.

Parameters:
opwizard.
paramsobject to free.
Returns:
1.

Definition at line 1394 of file c_wiz.c.

References dm_stack_pop(), draw_ext_info(), FLAG_REMOVED, free_object(), get_dm_object(), MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DM, MSG_TYPE_COMMAND_ERROR, NDI_UNIQUE, QUERY_FLAG, remove_ob(), and STACK_FROM_STACK.

Here is the call graph for this function:

int command_freeze ( object *  op,
char *  params 
)

Freezes a player for a specified tick count, 100 by default.

Parameters:
opwizard freezing the player.
paramsoptional tick count, followed by player name.
Returns:
1.

Definition at line 571 of file c_wiz.c.

References draw_ext_info(), draw_ext_info_format(), get_other_player_from_name(), MSG_TYPE_ADMIN, MSG_TYPE_ADMIN_DM, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DM, MSG_TYPE_COMMAND_ERROR, NDI_RED, NDI_UNIQUE, and pl::ob.

Here is the call graph for this function:

int command_goto ( object *  op,
char *  params 
)

Wizard teleports to a map.

Parameters:
opwizard teleporting.
paramsmap to teleport to. Can be absolute or relative path.
Returns:
1 unless op is NULL.

Definition at line 532 of file c_wiz.c.

References add_string(), draw_ext_info(), draw_ext_info_format(), enter_exit(), EXIT_PATH, free_object(), get_object(), MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DM, MSG_TYPE_COMMAND_ERROR, and NDI_UNIQUE.

Referenced by command_loadtest().

Here is the call graph for this function:

Here is the caller graph for this function:

int command_hide ( object *  op,
char *  params 
)

Wizard 'hide' command.

Parameters:
opDM wanting to hide.
paramsignored.
Returns:
1.

Definition at line 197 of file c_wiz.c.

References do_wizard_hide().

Here is the call graph for this function:

int command_insert_into ( object *  op,
char *  params 
)

Puts an object into another.

Parameters:
opwizard.
paramsobject specifier.
Returns:
0.

Definition at line 2733 of file c_wiz.c.

References dm_stack_pop(), draw_ext_info(), draw_ext_info_format(), esrv_update_item(), find_object(), FLAG_REMOVED, get_dm_object(), insert_ob_in_ob(), MAX_BUF, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DM, MSG_TYPE_COMMAND_ERROR, NDI_UNIQUE, PLAYER, QUERY_FLAG, query_name(), remove_ob(), STACK_FROM_NUMBER, STACK_FROM_TOP, UPD_NAME, UPD_NROF, and UPD_WEIGHT.

Here is the call graph for this function:

int command_inventory ( object *  op,
char *  params 
)

Shows the inventory or some item.

Parameters:
opplayer.
paramsobject count to get the inventory of. If NULL then defaults to op.
Returns:
1 unless params is NULL.

Definition at line 1123 of file c_wiz.c.

References draw_ext_info(), find_object(), inventory(), MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_ERROR, and NDI_UNIQUE.

Here is the call graph for this function:

int command_invisible ( object *  op,
char *  params 
)

Wizard wants to become invisible.

Parameters:
opwizard.
paramsignored.
Returns:
0.

Definition at line 1998 of file c_wiz.c.

References draw_ext_info(), MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DM, NDI_UNIQUE, and update_object().

Here is the call graph for this function:

int command_kick ( object *  op,
const char *  params 
)

Kicks a player from the server.

Parameters:
opDM kicking.
paramsplayer to kick. Must be a full name match.
Returns:
1.

Definition at line 352 of file c_wiz.c.

References check_score(), draw_ext_info_format(), EVENT_KICK, execute_global_event(), first_player, FLAG_FREED, FLAG_REMOVED, MAP_TIMEOUT, MSG_TYPE_ADMIN, MSG_TYPE_ADMIN_DM, NDI_ALL, NDI_RED, NDI_UNIQUE, pl::next, Ns_Dead, pl::ob, QUERY_FLAG, remove_ob(), save_player(), pl::socket, and socket_struct::status.

Referenced by command_banish(), and command_shutdown().

Here is the call graph for this function:

Here is the caller graph for this function:

int command_learn_special_prayer ( object *  op,
char *  params 
)

Wizard wants to learn a god-given spell.

Parameters:
opwizard.
paramsspell name.
Return values:
0failure.
1success.

Definition at line 2196 of file c_wiz.c.

References command_learn_spell_or_prayer().

Here is the call graph for this function:

int command_learn_spell ( object *  op,
char *  params 
)

Wizard wants to learn a regular spell.

Parameters:
opwizard.
paramsspell name.
Return values:
0failure.
1success.

Definition at line 2180 of file c_wiz.c.

References command_learn_spell_or_prayer().

Here is the call graph for this function:

static int command_learn_spell_or_prayer ( object *  op,
char *  params,
int  special_prayer 
) [static]

Wizards wants to learn a spell.

Parameters:
opwizard.
paramsspell name to learn.
special_prayerif set, special (god-given) prayer.
Return values:
0spell wasn't learned, or was already learnt.
1spell learned.

Definition at line 2141 of file c_wiz.c.

References check_spell_known(), do_learn_spell(), draw_ext_info(), draw_ext_info_format(), free_object(), get_spell_by_name(), MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_ERROR, and NDI_UNIQUE.

Referenced by command_learn_special_prayer(), and command_learn_spell().

Here is the call graph for this function:

Here is the caller graph for this function:

int command_listplugins ( object *  op,
char *  params 
)

Lists all plugins currently loaded with their IDs and full names.

Parameters:
opwizard.
paramsignored.
Returns:
1.

Definition at line 2242 of file c_wiz.c.

References plugins_display_list().

Here is the call graph for this function:

int command_loadplugin ( object *  op,
char *  params 
)

Loads the given plugin.

The DM specifies the name of the library to load (no pathname is needed). Do not ever attempt to load the same plugin more than once at a time, or bad things could happen.

Parameters:
opDM loading a plugin.
paramsshould be the plugin's name, eg cfpython.so
Returns:
1.

Definition at line 2259 of file c_wiz.c.

References draw_ext_info(), draw_ext_info_format(), LIBDIR, llevDebug, llevInfo, LOG(), MAX_BUF, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DM, MSG_TYPE_COMMAND_ERROR, NDI_UNIQUE, and plugins_init_plugin().

Here is the call graph for this function:

int command_loadtest ( object *  op,
char *  params 
)

This command will stress server.

It will basically load all world maps (so 900 maps).

Parameters:
opDM wanting to test the server.
paramsoption, must be "TRUE" for the test to happen.
Returns:
0.

Definition at line 108 of file c_wiz.c.

References command_goto(), draw_ext_info(), draw_ext_info_format(), MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DEBUG, NDI_UNIQUE, settings, snprintf(), Settings::worldmapstartx, Settings::worldmapstarty, Settings::worldmaptilesx, and Settings::worldmaptilesy.

Here is the call graph for this function:

int command_mon_aggr ( object *  op,
char *  params 
)

When DM is possessing a monster, flip aggression on and off, to allow better motion.

Parameters:
opwiard.
paramsignored.
Returns:
1.

Definition at line 1202 of file c_wiz.c.

References CLEAR_FLAG, draw_ext_info(), FLAG_FRIENDLY, FLAG_UNAGGRESSIVE, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DM, NDI_UNIQUE, QUERY_FLAG, and SET_FLAG.

Here is the call graph for this function:

int command_nowiz ( object *  op,
char *  params 
)

Steps down from wizard mode.

Parameters:
opwizard.
paramsignored.
Returns:
1.

Definition at line 1839 of file c_wiz.c.

References CLEAR_FLAG, draw_ext_info(), draw_ext_info_format(), FLAG_WAS_WIZ, FLAG_WIZ, FLAG_WIZCAST, FLAG_WIZPASS, FREE_AND_CLEAR_STR, MSG_TYPE_ADMIN, MSG_TYPE_ADMIN_DM, MSG_TYPE_ADMIN_PLAYER, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DM, NDI_ALL, NDI_DK_ORANGE, NDI_LT_GREEN, NDI_UNIQUE, Settings::real_wiz, settings, TRUE, and update_los().

Here is the call graph for this function:

int command_overlay_reset ( object *  op,
char *  params 
)

Removes the overlay for op's current map.

Parameters:
opDM acting.
paramsignored.
Returns:
1.

Definition at line 430 of file c_wiz.c.

References create_overlay_pathname(), draw_ext_info(), MAX_BUF, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DM, NDI_UNIQUE, and unlink.

Here is the call graph for this function:

int command_overlay_save ( object *  op,
char *  params 
)

Saves the op's map as an overlay - objects are persisted.

Parameters:
opDM wanting to save.
paramsignored.
Returns:
1 unless op is NULL.

Definition at line 406 of file c_wiz.c.

References draw_ext_info(), MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_SUCCESS, NDI_UNIQUE, save_map(), and SAVE_MODE_OVERLAY.

Here is the call graph for this function:

int command_patch ( object *  op,
char *  params 
)

Wizard wants to altar an object.

Parameters:
opwizard.
paramsobject and what to patch.
Returns:
1.

Definition at line 1296 of file c_wiz.c.

References draw_ext_info(), draw_ext_info_format(), FALSE, FLAG_WAS_WIZ, get_dm_object(), MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DM, MSG_TYPE_COMMAND_ERROR, NDI_UNIQUE, Settings::real_wiz, SET_FLAG, set_variable(), and settings.

Here is the call graph for this function:

int command_possess ( object *  op,
char *  params 
)

DM can possess a monster.

Basically, this tricks the client into thinking a given monster, is actually the player it controls. This allows a DM to inhabit a monster's body, and run around the game with it. This function is severely broken - it has tons of hardcoded values,

Parameters:
opwizard wanting to possess something.
paramsmonster to possess.
Returns:
1.
Todo:
fix and reactivate the function, or totally trash.

Definition at line 1232 of file c_wiz.c.

References do_some_living(), draw_ext_info(), esrv_new_player(), esrv_send_inventory(), find_object(), find_object_name(), fix_object(), FLAG_WIZ, MAX_BUF, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_ERROR, NDI_UNIQUE, pl::ob, PLAYER, and SET_FLAG.

Here is the call graph for this function:

int command_remove ( object *  op,
char *  params 
)

Remove an object from its position.

Parameters:
opwizard.
paramsobject to remove.
Returns:
1.

Definition at line 1342 of file c_wiz.c.

References dm_stack_pop(), draw_ext_info(), draw_ext_info_format(), FLAG_REMOVED, get_dm_object(), MAX_BUF, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_ERROR, NDI_UNIQUE, PLAYER, QUERY_FLAG, query_name(), remove_ob(), STACK_FROM_STACK, and update_ob_speed().

Here is the call graph for this function:

int command_reset ( object *  op,
char *  params 
)
int command_setgod ( object *  op,
char *  params 
)

Sets the god for some objects.

Parameters:
opDM wanting to change an object.
paramscommand options. Should contain two values, first the object to change, followed by the god to change it to.
Return values:
0syntax error.
1correct syntax.

Definition at line 232 of file c_wiz.c.

References become_follower(), draw_ext_info(), draw_ext_info_format(), find_god(), find_object_both(), MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_ERROR, NDI_UNIQUE, and PLAYER.

Here is the call graph for this function:

int command_shutdown ( object *  op,
char *  params 
)

Totally shutdowns the server.

Parameters:
opwizard shutting down the server.
paramsignored.
Returns:
1.

Definition at line 508 of file c_wiz.c.

References check_score(), cleanup(), command_kick(), play_again(), and save_player().

Here is the call graph for this function:

int command_skills ( object *  op,
char *  params 
)

Player is asking for her skills.

Just show player's their skills for now. Dm's can already see skills w/ inventory command - b.t.

Parameters:
opplayer.
paramsoptional skill restriction.
Returns:
0.
Todo:
move out of this file as it is used by all players.

Definition at line 1156 of file c_wiz.c.

References show_skills().

Here is the call graph for this function:

int command_speed ( object *  op,
char *  params 
)

Changes the server speed.

Parameters:
opwizard.
paramsnew speed, or NULL to see the speed.
Returns:
1.

Definition at line 1493 of file c_wiz.c.

References draw_ext_info_format(), max_time, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DM, NDI_UNIQUE, reset_sleep(), and set_max_time().

Here is the call graph for this function:

int command_stack_clear ( object *  op,
char *  params 
)

Empty DM item stack.

Parameters:
opwizard.
paramsignored.
Returns:
0.

Definition at line 2636 of file c_wiz.c.

References draw_ext_info(), MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DM, and NDI_UNIQUE.

Here is the call graph for this function:

int command_stack_list ( object *  op,
char *  params 
)

Displays stack contents.

Parameters:
opwizard.
paramsignored.
Returns:
0.

Definition at line 2600 of file c_wiz.c.

References draw_ext_info(), draw_ext_info_format(), find_object(), MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DM, NDI_UNIQUE, pl::stack_items, and pl::stack_position.

Here is the call graph for this function:

int command_stack_pop ( object *  op,
char *  params 
)

Pop the stack top.

Parameters:
opwizard.
paramsignored.
Returns:
0.

Definition at line 2563 of file c_wiz.c.

References dm_stack_pop().

Here is the call graph for this function:

int command_stack_push ( object *  op,
char *  params 
)

Push specified item on stack.

Parameters:
opwizard.
paramsobject specifier.
Returns:
0.

Definition at line 2578 of file c_wiz.c.

References dm_stack_push(), get_dm_object(), and STACK_FROM_NUMBER.

Here is the call graph for this function:

int command_stats ( object *  op,
char *  params 
)

Displays the statistics of a player.

Parameters:
opwizard.
paramsplayer's name.
Returns:
1.

Definition at line 1528 of file c_wiz.c.

References draw_ext_info(), draw_ext_info_format(), find_player_partial_name(), MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DM, MSG_TYPE_COMMAND_ERROR, NDI_UNIQUE, and pl::ob.

Here is the call graph for this function:

int command_style_map_info ( object *  op,
char *  params 
)

Displays information about styles loaded for random maps.

Parameters:
opwizard.
paramsignored.
Returns:
0.

Definition at line 2815 of file c_wiz.c.

References draw_ext_info(), draw_ext_info_format(), GET_MAP_OB, MAP_HEIGHT, MAP_WIDTH, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_MAPS, NDI_UNIQUE, mapdef::next, and styles.

Here is the call graph for this function:

int command_summon ( object *  op,
char *  params 
)

Summons player near DM.

Parameters:
opDM.
paramsplayer to summon.
Returns:
1 unless op is NULL.

Definition at line 661 of file c_wiz.c.

References add_string(), draw_ext_info(), draw_ext_info_format(), enter_exit(), EXIT_PATH, EXIT_X, EXIT_Y, find_free_spot(), free_object(), freearr_x, freearr_y, get_object(), get_other_player_from_name(), MSG_TYPE_ADMIN, MSG_TYPE_ADMIN_DM, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DM, MSG_TYPE_COMMAND_ERROR, NDI_UNIQUE, and pl::ob.

Here is the call graph for this function:

int command_teleport ( object *  op,
char *  params 
)

Teleport next to target player.

Parameters:
opDM teleporting.
paramsoptions sent by player.
Returns:
0 if couldn't teleport, 1 if teleport successful.

Definition at line 712 of file c_wiz.c.

References add_string(), draw_ext_info(), draw_ext_info_format(), enter_exit(), EXIT_PATH, EXIT_X, EXIT_Y, find_free_spot(), find_player_partial_name(), free_object(), freearr_x, freearr_y, get_object(), MSG_TYPE_ADMIN, MSG_TYPE_ADMIN_DM, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DM, MSG_TYPE_COMMAND_ERROR, NDI_UNIQUE, and pl::ob.

Here is the call graph for this function:

int command_toggle_shout ( object *  op,
char *  params 
)

A simple toggle for the no_shout field.

AKA the MUZZLE command.

Parameters:
opwizard toggling.
paramsplayer to mute/unmute.
Returns:
1.

Definition at line 459 of file c_wiz.c.

References draw_ext_info(), draw_ext_info_format(), EVENT_MUZZLE, execute_global_event(), get_other_player_from_name(), MSG_TYPE_ADMIN, MSG_TYPE_ADMIN_DM, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DM, MSG_TYPE_COMMAND_ERROR, NDI_ORANGE, NDI_RED, NDI_UNIQUE, and pl::ob.

Here is the call graph for this function:

int command_unloadplugin ( object *  op,
char *  params 
)

Unloads the given plugin.

The DM specified the ID of the library to unload. Note that some things may behave strangely if the correct plugins are not loaded.

Parameters:
opDM unloading a plugin.
paramsshould be the plugin's internal name, eg Python
Returns:
1.

Definition at line 2298 of file c_wiz.c.

References draw_ext_info(), draw_ext_info_format(), llevInfo, LOG(), MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DM, MSG_TYPE_COMMAND_ERROR, NDI_UNIQUE, and plugins_remove_plugin().

Here is the call graph for this function:

object* dm_stack_peek ( player pl)

Get current stack top item for player.

Returns NULL if no stacked item. If stacked item disappeared (freed), remove it.

Ryo, august 2004

Parameters:
plwizard.
Returns:
item on top of stack, or NULL if deleted/stack empty.

Definition at line 2373 of file c_wiz.c.

References dm_stack_pop(), draw_ext_info(), find_object(), MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DM, MSG_TYPE_COMMAND_ERROR, NDI_UNIQUE, pl::ob, pl::stack_items, and pl::stack_position.

Referenced by get_dm_object().

Here is the call graph for this function:

Here is the caller graph for this function:

void dm_stack_pop ( player pl)

Remove an item from the wizard's item stack.

Parameters:
plwizard.

Definition at line 2347 of file c_wiz.c.

References draw_ext_info(), draw_ext_info_format(), MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DM, MSG_TYPE_COMMAND_ERROR, NDI_UNIQUE, pl::ob, pl::stack_items, and pl::stack_position.

Referenced by command_create(), command_diff(), command_free(), command_insert_into(), command_remove(), command_stack_pop(), and dm_stack_peek().

Here is the call graph for this function:

Here is the caller graph for this function:

void dm_stack_push ( player pl,
tag_t  item 
)

Push specified item on player stack.

Inform player of position. Initializes variables if needed.

Parameters:
plwizard.
itemitem to put on stack.

Definition at line 2403 of file c_wiz.c.

References draw_ext_info(), draw_ext_info_format(), MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DM, MSG_TYPE_COMMAND_ERROR, NDI_UNIQUE, pl::ob, pl::stack_items, pl::stack_position, and STACK_SIZE.

Referenced by command_create(), command_dumpbelow(), command_stack_push(), and get_dm_object().

Here is the call graph for this function:

Here is the caller graph for this function:

int do_wizard_dm ( object *  op,
char *  params,
int  silent 
)

Actually changes a player to wizard.

Parameters:
opplayer.
paramspassword.
silentif zero, don't inform players of the mode change.
Return values:
0no mode change.
1op is now a wizard.

Definition at line 1932 of file c_wiz.c.

References checkdm(), clear_los(), draw_ext_info(), FLAG_WAS_WIZ, FLAG_WIZ, FLAG_WIZCAST, FLAG_WIZPASS, MSG_TYPE_ADMIN, MSG_TYPE_ADMIN_DM, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DM, MSG_TYPE_COMMAND_ERROR, NDI_ALL, NDI_LT_GREEN, NDI_UNIQUE, QUERY_FLAG, and SET_FLAG.

Referenced by command_dm(), and command_dmhide().

Here is the call graph for this function:

Here is the caller graph for this function:

void do_wizard_hide ( object *  op,
int  silent_dm 
)

Actually hides or unhides specified player (obviously a DM).

Parameters:
opDM hiding.
silent_dmif non zero, other players are informed of DM entering/leaving, else they just think someone left/entered.

Definition at line 147 of file c_wiz.c.

References draw_ext_info(), draw_ext_info_format(), MSG_TYPE_ADMIN, MSG_TYPE_ADMIN_DM, MSG_TYPE_ADMIN_PLAYER, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_SUCCESS, NDI_ALL, NDI_DK_ORANGE, NDI_LT_GREEN, and NDI_UNIQUE.

Referenced by command_dmhide(), and command_hide().

Here is the call graph for this function:

Here is the caller graph for this function:

static object* find_object_both ( char *  params) [static]

This finds and returns the object which matches the name or object number (specified via num #whatever).

Parameters:
paramsobject to find.
Returns:
suitable object, or NULL if none found.

Definition at line 211 of file c_wiz.c.

References find_object(), and find_object_name().

Referenced by command_setgod().

Here is the call graph for this function:

Here is the caller graph for this function:

object* get_dm_object ( player pl,
char **  params,
int *  from 
)

Checks 'params' for object code.

Can be:

  • empty => get current object stack top for player
  • number => get item with that tag, stack it for future use
  • $number => get specified stack item
  • "me" => player himself

At function exit, params points to first non-object char

'from', if not NULL, contains at exit:

Ryo, august 2004

Parameters:
plwizard.
paramsobject specified.
from
Returns:
pointed object, or NULL if nothing suitable was found.

Definition at line 2450 of file c_wiz.c.

References dm_stack_peek(), dm_stack_push(), draw_ext_info_format(), find_object(), MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DM, MSG_TYPE_COMMAND_ERROR, NDI_UNIQUE, pl::ob, STACK_FROM_NONE, STACK_FROM_NUMBER, STACK_FROM_STACK, STACK_FROM_TOP, pl::stack_items, and pl::stack_position.

Referenced by command_diff(), command_dump(), command_free(), command_insert_into(), command_patch(), command_remove(), and command_stack_push().

Here is the call graph for this function:

Here is the caller graph for this function:

static player* get_other_player_from_name ( object *  op,
const char *  name 
) [static]

Enough of the DM functions seem to need this that I broke it out to a seperate function.

name is the person being saught, op is who is looking for them. This prints diagnostics messages, and returns the other player, or NULL otherwise.

Parameters:
opplayer searching someone.
namename to search for.
Returns:
player, or NULL if player can't be found.

Definition at line 67 of file c_wiz.c.

References draw_ext_info(), first_player, MAX_NAME, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_ERROR, NDI_UNIQUE, pl::next, pl::ob, ST_PLAYING, and pl::state.

Referenced by command_arrest(), command_banish(), command_freeze(), command_summon(), and command_toggle_shout().

Here is the call graph for this function:

Here is the caller graph for this function:

static object* get_spell_by_name ( object *  op,
const char *  spell_name 
) [static]

Returns spell object (from archetypes) by name.

Used for wizard's learn spell/prayer.

Ignores archetypes "spelldirect_xxx" since these archetypes are not used anymore (but may still be present in some player's inventories and thus cannot be removed). We have to ignore them here since they have the same name than other "spell_xxx" archetypes and would always conflict.

Parameters:
opplayer issuing the command.
spell_namespell to find.
Returns:
NULL if 0 or more than one spell matches, spell object else.
Todo:
remove the spelldirect_xxx test?

Definition at line 2026 of file c_wiz.c.

References arch_to_object(), draw_ext_info_format(), first_archetype, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_ERROR, NDI_UNIQUE, and SPELL.

Referenced by command_learn_spell_or_prayer().

Here is the call graph for this function:

Here is the caller graph for this function: