The teamplay cvar seems to behave differently than regular Quake.
In the above screenshots, each client is in listen server mode. Rune Quake uses the teamplay cvar as text (?) and JoeQuake apparently takes the team play value above of "0 Rune Quake 1.1" and turns it into a value of 1.1
The consequence is that I can never turn team play off nor use any of the several team play settings in Rune Quake.
I don't know why the teamplay variable is used in this way, but I suspect it does affect a few other advanced multiplayer mods.
(I have had some troubles with FBCA 0.92 KT + JoeQuake, the Frogbot Clan Arena mod, but I was able to work around these in an admittedly messy way. This mod lets you play some excellent games in listen server mode againsts bots.)
So far I suspect that the maybe the teamplay cvar is not the only one with a different behavior. This may affect noexit, scratch1-4, temp1 and other variables that can be used at a mod author's discretion.
It may only affect a listen server, I don't know.
I don't know if this is helpful at all, but I have search results for the team play variable in the JoeQuake source, WinQuake source and ProQuake source: (This really isn't my department
)
JoeQuake Source matches wrote:
Searching for: teamplay
cvar.h(47): teamplay = cvar("teamplay");
host.c(69): cvar_t teamplay = {"teamplay", "0", false, true};
host.c(220): Cvar_RegisterVariable (&teamplay);
host_cmd.c(789): if (teamplay.value && teamonly && client->edict->v.team != save->edict->v.team)
menu.c(3629): M_Print (0, 72, " Teamplay");
menu.c(3634): switch ((int)teamplay.value)
menu.c(3650): switch ((int)teamplay.value)
menu.c(3762): Cvar_SetValue ("teamplay", teamplay.value + dir);
menu.c(3763): if (teamplay.value > count)
menu.c(3764): Cvar_Set ("teamplay", "0");
menu.c(3765): else if (teamplay.value < 0)
menu.c(3766): Cvar_SetValue ("teamplay", count);
pr_cmds.c(1283): if (tr.ent && tr.ent->v.takedamage == DAMAGE_AIM && (!teamplay.value || ent->v.team <= 0 || ent->v.team != tr.ent->v.team))
pr_cmds.c(1301): if (teamplay.value && ent->v.team > 0 && ent->v.team == check->v.team)
progdefs.h(35): float teamplay;
sbar.c(857): if (rogue && (cl.maxclients != 1) && (teamplay.value > 3) && (teamplay.value < 7))
server.h(175): extern cvar_t teamplay;
Found 17 occurrence(s) in 8 file(s)
ProQuake matches wrote:
Searching for: teamplay
cvar.h(46): teamplay = cvar("teamplay");
host.c(49): cvar_t teamplay = {"teamplay","0",false,true};
host.c(244): Cvar_RegisterVariable (&teamplay)
host_cmd.c(593): Cvar_SetValue ("teamplay", 0)
host_cmd.c(1005): if (teamplay.value && teamonly) // JPG - added () for mm
host_cmd.c(1032): if (teamplay.value && teamonly && client->edict->v.team != save->edict->v.team
menu.c(2218): M_Print (0, 72, " Teamplay")
menu.c(2222): switch((int)teamplay.value
menu.c(2237): switch((int)teamplay.value
menu.c(2336): Cvar_SetValue ("teamplay", teamplay.value + dir)
menu.c(2337): if (teamplay.value > count
menu.c(2338): Cvar_SetValue ("teamplay", 0)
menu.c(2339): else if (teamplay.value < 0
menu.c(2340): Cvar_SetValue ("teamplay", count)
pr_cmds.c(1369): && (!teamplay.value || ent->v.team <=0 || ent->v.team != tr.ent->v.team) )
pr_cmds.c(1388): if (teamplay.value && ent->v.team > 0 && ent->v.team == check->v.team)
progdefs.q1(15): float teamplay;
progdefs.q2(16): float teamplay;
sbar.c(822): (teamplay.value>3) &
sbar.c(823): (teamplay.value<7)
server.h(215): extern cvar_t teamplay;
WinQuake.ncb(1045): †
Found 22 occurrence(s) in 10 file(s)
WinQuake matches wrote:
Searching for: teamplay
cvar.h(46): teamplay = cvar("teamplay");
GLQUAKE.EXE(2924): I¾numverts = %i
GLQUAKE.EXE(3059):
host.c(48): cvar_t teamplay = {"teamplay","0",false,true};
host.c(181): Cvar_RegisterVariable (&teamplay)
host_cmd.c(539): Cvar_SetValue ("teamplay", 0)
host_cmd.c(931): if (teamplay.value && teamonly && client->edict->v.team != save->edict->v.team
menu.c(2183): M_Print (0, 72, " Teamplay")
menu.c(2187): switch((int)teamplay.value
menu.c(2202): switch((int)teamplay.value
menu.c(2301): Cvar_SetValue ("teamplay", teamplay.value + dir)
menu.c(2302): if (teamplay.value > count
menu.c(2303): Cvar_SetValue ("teamplay", 0)
menu.c(2304): else if (teamplay.value < 0
menu.c(2305): Cvar_SetValue ("teamplay", count)
pr_cmds.c(1353): && (!teamplay.value || ent->v.team <=0 || ent->v.team != tr.ent->v.team) )
pr_cmds.c(1372): if (teamplay.value && ent->v.team > 0 && ent->v.team == check->v.team)
progdefs.q1(15): float teamplay;
progdefs.q2(16): float teamplay;
sbar.c(724): (teamplay.value>3) &
sbar.c(725): (teamplay.value<7)
server.h(198): extern cvar_t teamplay;
WinQuake.ncb(1238):
Found 23 occurrence(s) in 11 file(s)
What would be nice is if somehow I am doing something wrong.
Mod: Standard RuneQuake 1.1a download (
ftp://ftp.runecentral.com/quake/runequa ... e-1.1a.zip ) and using no autoexec.cfg
The teamplay variable should be "0 Rune Quake 1.1" (team mode off) but is "1.1" (team mode on)
Nothing special for a command line:
c:\quake\joequake-gl.exe -width 320 -height 240 -dinput -mem 32 -game runequake -window -listen 8