no message

git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@1335 e016b1c5-ed68-44aa-a2f7-31cac88cffde
This commit is contained in:
driAn
2007-10-02 20:44:15 +00:00
parent c8301223cd
commit d00e69b26b
5 changed files with 32 additions and 1 deletions
+7
View File
@@ -748,6 +748,13 @@ void clearvote() { DELETEP(curvote); DELETEP(calledvote); }
COMMAND(callvote, ARG_3STR);
COMMAND(vote, ARG_1INT);
void whois(int cn)
{
addmsg(SV_WHOIS, "ri", cn);
}
COMMAND(whois, ARG_1INT);
void setmaster(int claim)
{
addmsg(SV_SETMASTER, "ri", claim != 0 ? 1 : 0);
+9
View File
@@ -597,6 +597,15 @@ void parsemessages(int cn, playerent *d, ucharbuf &p)
voteresult(getint(p));
break;
case SV_WHOISINFO:
{
int cn = getint(p);
playerent *pl = cn == getclientnum() ? player1 : getclient(cn);
int ip = getint(p);
conoutf("WHOIS for client %d:\n\f5name\t%s\n\f5IP\t%d.%d.%d.%d", cn, pl ? colorname(pl) : "", ip&0xFF, ip<<8&0xFF, ip<<16&0xFF, ip<<24&0xFF);
break;
}
default:
neterr("type");
return;
+1
View File
@@ -118,6 +118,7 @@ char msgsizesl[] = // size inclusive message token, 0 for variable
SV_SETMASTER, 2, SV_SETADMIN, 0, SV_SERVOPINFO, 3,
SV_CALLVOTE, 0, SV_CALLVOTESUC, 1, SV_CALLVOTEERR, 2, SV_VOTE, 2, SV_VOTERESULT, 2,
SV_FORCETEAM, 2, SV_AUTOTEAM, 2,
SV_WHOIS, 2, SV_WHOISINFO, 3,
SV_CONNECT, 0,
SV_CLIENT, 0,
-1
+1
View File
@@ -23,6 +23,7 @@ enum
SV_SETMASTER, SV_SETADMIN, SV_SERVOPINFO,
SV_CALLVOTE, SV_CALLVOTESUC, SV_CALLVOTEERR, SV_VOTE, SV_VOTERESULT,
SV_FORCETEAM, SV_AUTOTEAM,
SV_WHOIS, SV_WHOISINFO,
SV_CONNECT,
SV_CLIENT
};
+14 -1
View File
@@ -1294,6 +1294,13 @@ bool callvote(voteinfo *v) // true if a regular vote was called
}
}
void sendwhois(int sender, int cn)
{
if(!valid_client(sender) || !valid_client(cn)) return;
if(clients[cn]->type == ST_TCPIP && clients[cn]->peer)
sendf(sender, 1, "ri3", SV_WHOISINFO, cn, clients[cn]->peer->address.host);
}
// sending of maps between clients
string copyname;
@@ -1420,7 +1427,7 @@ int checktype(int type, client *cl)
static int edittypes[] = { SV_EDITENT, SV_EDITH, SV_EDITT, SV_EDITS, SV_EDITD, SV_EDITE };
if(cl && smode!=1) loopi(sizeof(edittypes)/sizeof(int)) if(type == edittypes[i]) return -1;
// server only messages
static int servtypes[] = { SV_INITS2C, SV_MAPRELOAD, SV_SERVMSG, SV_GIBDAMAGE, SV_DAMAGE, SV_HITPUSH, SV_SHOTFX, SV_DIED, SV_SPAWNSTATE, SV_FORCEDEATH, SV_ITEMACC, SV_ITEMSPAWN, SV_TIMEUP, SV_CDIS, SV_PONG, SV_RESUME, SV_FLAGINFO, SV_ARENAWIN, SV_CLIENT, SV_VOTERESULT };
static int servtypes[] = { SV_INITS2C, SV_MAPRELOAD, SV_SERVMSG, SV_GIBDAMAGE, SV_DAMAGE, SV_HITPUSH, SV_SHOTFX, SV_DIED, SV_SPAWNSTATE, SV_FORCEDEATH, SV_ITEMACC, SV_ITEMSPAWN, SV_TIMEUP, SV_CDIS, SV_PONG, SV_RESUME, SV_FLAGINFO, SV_ARENAWIN, SV_CLIENT, SV_CALLVOTESUC, SV_CALLVOTEERR, SV_VOTERESULT, SV_WHOISINFO };
if(cl) loopi(sizeof(servtypes)/sizeof(int)) if(type == servtypes[i]) return -1;
return type;
}
@@ -1769,6 +1776,12 @@ void process(ENetPacket *packet, int sender, int chan) // sender may be -1
break;
}
case SV_WHOIS:
{
sendwhois(sender, getint(p));
break;
}
default:
{
int size = msgsizelookup(type);