Update of /cvsroot/netrek/server/Vanilla/tools
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21188/tools
Modified Files:
players.c xtkill.c
Log Message:
misc working updates
Index: xtkill.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/tools/xtkill.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- xtkill.c 2 Jan 2006 20:10:48 -0000 1.3
+++ xtkill.c 10 Apr 2006 04:24:51 -0000 1.4
@@ -110,10 +110,6 @@
players[player].p_hostile &= ~team;
players[player].p_swar &= ~team;
players[player].p_war &= ~team;
- sprintf(buf, "GOD->ALL Change: %2s is now a %s.",
- players[player].p_mapchars,
- names[team]);
- _pmessage(buf, 0, MALL);
sprintf(players[player].p_mapchars, "%c%c",
teamlet[players[player].p_team], shipnos[player]);
sprintf(players[player].p_longname, "%s (%s)",
@@ -200,10 +196,10 @@
players[player].p_swar = 0;
players[player].p_war = 0;
players[player].p_team = 0; /* indep */
- players[player].p_ship.s_type = STARBASE;
+ players[player].p_ship.s_type = SCOUT;
players[player].p_ship.s_mass = 200;
players[player].p_ship.s_repair = 30000;
- players[player].p_ship.s_maxspeed = 0;
+ break;
case 'S': /* super ship */
players[player].p_ship.s_maxshield = 750;
players[player].p_shield = 750;
@@ -217,9 +213,6 @@
players[player].p_stats.st_rank++;
--players[player].p_stats.st_rank;
- sprintf(buf, "GOD->ALL %2s was (temporarily) demoted for rank normalization purposes.",
- players[player].p_mapchars);
- _pmessage(buf, 0, MALL);
break;
case 'P': /* promote, but not beyond admiral */
if( players[player].p_stats.st_rank < (NUMRANKS - 1) )
@@ -241,7 +234,42 @@
players[player].p_shield = 0;
players[player].p_damage = players[player].p_ship.s_maxdamage/2;
break;
- case 'u':
+ case 'H': /* hack */
+ {
+ struct player *me = &players[player];
+ /* make independent and hostile to only prior team */
+ int team = players[player].p_team;
+ players[player].p_hostile = team;
+ players[player].p_swar = team;
+ players[player].p_war = team;
+ players[player].p_team = 0;
+ sprintf(players[player].p_mapchars, "%c%c",
+ teamlet[players[player].p_team], shipnos[player]);
+ sprintf(players[player].p_longname, "%s (%s)",
+ players[player].p_name, players[player].p_mapchars);
+ /* cripple */
+ players[player].p_shield = 0;
+ players[player].p_damage = players[player].p_ship.s_maxdamage/2;
+ /* raise shields */
+ players[player].p_flags |= PFSHIELD;
+ players[player].p_flags &= ~(PFBOMB | PFREPAIR | PFBEAMUP | PFBEAMDOWN);
+ /* break tractors and decloak */
+ me->p_flags &= ~(PFTRACT | PFPRESS);
+ me->p_flags &= ~PFCLOAK;
+ /* set speed 0 */
+ me->p_desspeed = 0;
+ if (me->p_flags & PFDOCK) {
+ players[me->p_docked].p_docked--;
+ players[me->p_docked].p_port[me->p_port[0]] = VACANT;
+ }
+ me->p_flags &= ~(PFREPAIR | PFBOMB | PFORBIT | PFDOCK | PFBEAMUP | PFBEAMDOWN);
+ /* make unable to act */
+ players[player].p_flags |= PFTWARP;
+ /* show as puck */
+ players[player].p_ship.s_type = SCOUT;
+ }
+ break;
+ case 'u': /* raise shields */
players[player].p_flags |= PFSHIELD;
players[player].p_flags &= ~(PFBOMB | PFREPAIR | PFBEAMUP | PFBEAMDOWN);
break;
@@ -305,6 +333,7 @@
(no mode == obliterate)\n\
s(hip class change)[abcdosA] (A = ATT)\n\
t(eleport to quadrant)[frkoc] (c = center of galaxy)\n\
+ p(uck) (harmless little thing)\n\
S(uper) (big shields/max damage/max etmp)\n\
T(eam change)[frko] (no team == independent)\n\
D(emote) (-1 to rank)\n\
Index: players.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/tools/players.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- players.c 22 Feb 2006 09:18:30 -0000 1.3
+++ players.c 10 Apr 2006 04:24:51 -0000 1.4
@@ -11,10 +11,10 @@
extern int openmem(int);
-int mode=0;
+int mode = 0;
static char *ships[] = {"SC", "DD", "CA", "BB", "AS", "SB"};
static char *statnames[] = {"F", "O", "A", "E", "D"};
-static int out = 1; /* stdout for non-socket connections */
+static int fd = 1; /* stdout for non-socket connections */
/* forward function declarations */
static void udp();
@@ -32,8 +32,9 @@
char *fixed_name;
if (argc>1) {
- mode= *(argv[1]);
- out = 0;
+ mode = *(argv[1]);
+ /* if stdin is not a tty, assume it is a socket */
+ if (!isatty(0)) fd = 0;
}
if (mode == 'u') { udp(); exit(0); }
@@ -313,17 +314,16 @@
static void output(const char *fmt, ...)
{
- va_list args;
- va_start(args, fmt);
+ va_list args;
+ va_start(args, fmt);
- if(out == 1){
- vfprintf(stdout, fmt, args);
- }
- else {
- char buf[512];
- vsprintf(buf, fmt, args);
- write(out, buf, strlen(buf));
- }
- va_end(args);
+ if (fd == 1) {
+ vfprintf(stdout, fmt, args);
+ } else {
+ char buf[512];
+ vsnprintf(buf, 511, fmt, args);
+ write(fd, buf, strlen(buf));
+ }
+ va_end(args);
}