[CF-Devel] Patch: server stuff, and message color
crossfire-devel at archives.real-time.com
crossfire-devel at archives.real-time.com
Sat Mar 6 12:08:39 CST 2004
Hello.
I tweaked some stuff related to DM & message colors :)
Attached patch does the following:
* player enter & leave messages use the 'NDI_DK_ORANGE' color
* DM enter & leave use the 'NDI_LT_GREEN' color
* DMs now see hidden DMs in 'who' command
* 'hide' command now also displays DM join & leave messages (because a DM
wanting to leave would first need to 'unbecome' DM, and vice versa)
* DMs now become visible again immediately when using 'hide' command to unhide
(regardless of invisibility spell, probably...)
* when a DM teleports to a player, this player won't see the 'you see a portal
open' message if the DM is hidden
Nicolas
-------------- next part --------------
Index: server/apply.c
===================================================================
RCS file: /cvsroot/crossfire/crossfire/server/apply.c,v
retrieving revision 1.99
diff -u -r1.99 apply.c
--- server/apply.c 27 Feb 2004 23:00:27 -0000 1.99
+++ server/apply.c 6 Mar 2004 18:00:47 -0000
@@ -2006,7 +2006,7 @@
}
remove_ob(pl);
pl->direction=0;
- new_draw_info_format(NDI_UNIQUE | NDI_ALL, 5, pl,
+ new_draw_info_format(NDI_UNIQUE | NDI_ALL | NDI_DK_ORANGE, 5, pl,
"%s leaves the game.",pl->name);
/* update respawn position */
Index: server/c_misc.c
===================================================================
RCS file: /cvsroot/crossfire/crossfire/server/c_misc.c,v
retrieving revision 1.37
diff -u -r1.37 c_misc.c
--- server/c_misc.c 20 Jan 2004 05:45:32 -0000 1.37
+++ server/c_misc.c 6 Mar 2004 18:00:50 -0000
@@ -245,18 +245,19 @@
for(pl=first_player;pl!=NULL;pl=pl->next) {
if(pl->ob->map == NULL)
continue;
- if (pl->hidden) continue;
+ if (pl->hidden && !QUERY_FLAG(op, FLAG_WIZ)) continue;
if (pl->state==ST_PLAYING || pl->state==ST_GET_PARTY_PASSWORD) {
if(op == NULL || QUERY_FLAG(op, FLAG_WIZ))
- (void) sprintf(buf,"%s the level %d %s (@%s) [%s]%s%s (%d)",
+ (void) sprintf(buf,"%s the level %d %s (@%s) [%s]%s%s%s (%d)",
pl->ob->name,
pl->ob->level,
(pl->own_title[0]=='\0'?pl->title:pl->own_title),
pl->socket.host,
pl->ob->map->path,
QUERY_FLAG(pl->ob,FLAG_WIZ)?" [WIZ]":"",
+ pl->hidden?"[HID]":"",
pl->peaceful?"Peaceful":"Hostile",pl->ob->count);
else
(void) sprintf(buf,"%s the %s [%s]%s%s",pl->ob->name,
Index: server/c_wiz.c
===================================================================
RCS file: /cvsroot/crossfire/crossfire/server/c_wiz.c,v
retrieving revision 1.38
diff -u -r1.38 c_wiz.c
--- server/c_wiz.c 17 Feb 2004 00:22:24 -0000 1.38
+++ server/c_wiz.c 6 Mar 2004 18:00:53 -0000
@@ -102,17 +102,21 @@
{
if (op->contr->hidden) {
op->contr->hidden=0;
+ op->invisible=1;
new_draw_info(NDI_UNIQUE, 0,op, "You are no longer hidden from other players");
- op->map->players++;
- new_draw_info_format(NDI_UNIQUE | NDI_ALL, 5, NULL,
- "%s has entered the game.",op->name);
- }
+ op->map->players++;
+ new_draw_info_format(NDI_UNIQUE | NDI_ALL | NDI_DK_ORANGE, 5, NULL,
+ "%s has entered the game.",op->name);
+ new_draw_info(NDI_UNIQUE | NDI_ALL | NDI_LT_GREEN, 1, NULL,
+ "The Dungeon Master has arrived!"); }
else {
op->contr->hidden=1;
new_draw_info(NDI_UNIQUE, 0,op, "Other players will no longer see you.");
- op->map->players--;
- new_draw_info_format(NDI_UNIQUE | NDI_ALL, 5, NULL,
- "%s left the game.",op->name);
+ op->map->players--;
+ new_draw_info(NDI_UNIQUE | NDI_ALL | NDI_LT_GREEN, 1, NULL,
+ "The Dungeon Master is gone..");
+ new_draw_info_format(NDI_UNIQUE | NDI_ALL | NDI_DK_ORANGE, 5, NULL,
+ "%s left the game.",op->name);
}
return 1;
}
@@ -446,7 +450,8 @@
EXIT_Y(dummy) = pl->ob->y + freearr_y[i];
enter_exit(op, dummy);
free_object(dummy);
- new_draw_info(NDI_UNIQUE, 0, pl->ob, "You see a portal open.");
+ if (!op->contr->hidden)
+ new_draw_info(NDI_UNIQUE, 0, pl->ob, "You see a portal open.");
new_draw_info(NDI_UNIQUE, 0, op, "OK.");
return 1;
}
@@ -1159,7 +1164,7 @@
if (settings.real_wiz == TRUE)
CLEAR_FLAG(op, FLAG_WAS_WIZ);
op->contr->hidden=0;
- new_draw_info(NDI_UNIQUE | NDI_ALL, 1, NULL,
+ new_draw_info(NDI_UNIQUE | NDI_ALL | NDI_LT_GREEN, 1, NULL,
"The Dungeon Master is gone..");
return 1;
}
@@ -1215,7 +1220,7 @@
SET_FLAG(op, FLAG_WAS_WIZ);
SET_FLAG(op, FLAG_WIZPASS);
new_draw_info(NDI_UNIQUE, 0,op, "Ok, you are the Dungeon Master!");
- new_draw_info(NDI_UNIQUE | NDI_ALL, 1, NULL,
+ new_draw_info(NDI_UNIQUE | NDI_ALL | NDI_LT_GREEN, 1, NULL,
"The Dungeon Master has arrived!");
SET_FLAG(op, FLAG_FLYING);
clear_los(op);
Index: server/login.c
===================================================================
RCS file: /cvsroot/crossfire/crossfire/server/login.c,v
retrieving revision 1.45
diff -u -r1.45 login.c
--- server/login.c 21 Dec 2003 02:13:46 -0000 1.45
+++ server/login.c 6 Mar 2004 18:00:55 -0000
@@ -673,7 +673,7 @@
}
new_draw_info(NDI_UNIQUE, 0,op,"Welcome Back!");
- new_draw_info_format(NDI_UNIQUE | NDI_ALL, 5, NULL,
+ new_draw_info_format(NDI_UNIQUE | NDI_ALL | NDI_DK_ORANGE, 5, NULL,
"%s has entered the game.",pl->ob->name);
/* GROS : Here we handle the LOGIN global event */
evtid = EVENT_LOGIN;
Index: server/main.c
===================================================================
RCS file: /cvsroot/crossfire/crossfire/server/main.c,v
retrieving revision 1.76
diff -u -r1.76 main.c
--- server/main.c 13 Sep 2003 05:02:11 -0000 1.76
+++ server/main.c 6 Mar 2004 18:00:58 -0000
@@ -140,7 +140,7 @@
new_draw_info(NDI_UNIQUE, 0,op,buf);
new_draw_info(NDI_UNIQUE, 0,op,"Press `?' for help");
new_draw_info(NDI_UNIQUE, 0,op," ");
- new_draw_info_format(NDI_UNIQUE | NDI_ALL, 5, op,
+ new_draw_info_format(NDI_UNIQUE | NDI_ALL | NDI_DK_ORANGE, 5, op,
"%s entered the game.",op->name);
if(!op->contr->name_changed) {
new_draw_info(NDI_UNIQUE, 0,op,"Note that you must set your name with the name");
@@ -1061,7 +1061,7 @@
}
pl->ob->type = DEAD_OBJECT; /* To avoid problems with inventory window */
}
- if (pl!=NULL && draw_exit) new_draw_info(NDI_UNIQUE | NDI_ALL, 5, NULL, buf);
+ if (pl!=NULL && draw_exit) new_draw_info(NDI_UNIQUE | NDI_ALL | NDI_DK_ORANGE, 5, NULL, buf);
}
int forbid_play()
-------------- next part --------------
_______________________________________________
crossfire-devel mailing list
crossfire-devel at lists.real-time.com
https://mailman.real-time.com/mailman/listinfo/crossfire-devel
More information about the crossfire
mailing list