Atrinik Server  4.0
afk.c
Go to the documentation of this file.
1 /*************************************************************************
2  * Atrinik, a Multiplayer Online Role Playing Game *
3  * *
4  * Copyright (C) 2009-2014 Alex Tokar and Atrinik Development Team *
5  * *
6  * Fork from Crossfire (Multiplayer game for X-windows). *
7  * *
8  * This program is free software; you can redistribute it and/or modify *
9  * it under the terms of the GNU General Public License as published by *
10  * the Free Software Foundation; either version 2 of the License, or *
11  * (at your option) any later version. *
12  * *
13  * This program is distributed in the hope that it will be useful, *
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
16  * GNU General Public License for more details. *
17  * *
18  * You should have received a copy of the GNU General Public License *
19  * along with this program; if not, write to the Free Software *
20  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *
21  * *
22  * The author can be reached at admin@atrinik.org *
23  ************************************************************************/
24 
32 #include <global.h>
33 #include <player.h>
34 #include <object.h>
35 
37 void command_afk(object *op, const char *command, char *params)
38 {
39  params = player_sanitize_input(params);
40 
41  /* No auto-reply message given*/
42  if (!params) {
43  CONTR(op)->afk_auto_reply[0] = '\0';
44 
45  /* Currently afk */
46  if (CONTR(op)->afk) {
47  CONTR(op)->afk = 0;
48  draw_info(COLOR_WHITE, op, "You are no longer AFK.");
49  } else {
50  /* Currently not afk */
51  CONTR(op)->afk = 1;
52  CONTR(op)->stat_afk_used++;
53  draw_info(COLOR_WHITE, op, "You are now AFK.");
54  }
55  } else {
56  /* Auto-reply message given */
57 
58  CONTR(op)->afk = 1;
59  CONTR(op)->stat_afk_used++;
60  draw_info_format(COLOR_WHITE, op, "You are now AFK. Auto-reply: %s", params);
61 
62  LOG(CHAT, "[AFK] [%s] %s", op->name, params);
63  strncpy(CONTR(op)->afk_auto_reply, params, sizeof(CONTR(op)->afk_auto_reply) - 1);
64  CONTR(op)->afk_auto_reply[sizeof(CONTR(op)->afk_auto_reply) - 1] = '\0';
65  }
66 
67  CONTR(op)->cs->ext_title_flag = 1;
68 }
char * player_sanitize_input(char *str)
Definition: player.c:1311
const char * name
Definition: object.h:168
void command_afk(object *op, const char *command, char *params)
Definition: afk.c:37