Jump to content

Home

Q3 Engine Game Bugs / JA bugs


Recommended Posts

1. (g_cmds.c) cmd_where_f should use

vtos( ent->r.currentOrigin ) in the print too show current location.

2. bot_minplayers removerandom bot bug where it kicks spectators watching them instead of the bot:

 

change the following in g_bot.c:

 

trap_SendConsoleCommand( EXEC_INSERT, va("kick \"%s\"\n", netname) );

 

to

 

trap_SendConsoleCommand( EXEC_INSERT, va("clientkick \"%d\"\n", cl->ps.clientNum));

 

3. Something i found in ET mod-source so credit them and me...

 

in g_client.c below the check for invaild pw put:

 

// Gordon: porting q3f flag bug fix

// If a player reconnects quickly after a disconnect, the client disconnect may never be called, thus flag can get lost in the ether

if( ent->inuse ) {

G_LogPrintf( "Forcing disconnect on active client: %i\n", ent-g_entities );

// so lets just fix up anything that should happen on a disconnect

ClientDisconnect( ent-g_entities );

}

 

4. bug in password checking if statement also in g_client.c:

 

SVF_BOT isnt set till below so change it to !isBot

 

5. remapShader in cg_servercmds.c is bugged, just comment out old and replace with the following if u plan on having a client also:

 

if ( Q_strncmp (cmd, "remapShader", 11) == 0 ) {

if (trap_Argc() == 4) {

char shader1[MAX_QPATH];

char shader2[MAX_QPATH];

Q_strncpyz(shader1, CG_Argv(1), sizeof(shader1));

Q_strncpyz(shader2, CG_Argv(2), sizeof(shader2));

trap_R_RemapShader(shader1, shader2, CG_Argv(3));

return;

}

}

 

6. for now from my other post Tinny showed me how too fix player sliding:

in bg_pmove.c u will find:

 

// If on a client then there is no friction

else if ( pm->ps->groundEntityNum < MAX_CLIENTS )

{

drop = 0;

}

 

comment that out and compile cgame and game i think for this too work.

 

Finally, if you would like me too share my /dropflag cmd drop me a pm. it should be pretty much exploit proof. i have trace in it so that if u toss it next to a wall it does not go out of level.

 

i also did fix the connection screen bug but i feel that i didnt need to show this now :)

 

also i may suggest disabling the debug cmds in g_cmds.c or u could fix em up and disable use of -1 for setsabermove :) and make a cvar too allow/disallow them.

 

(debugThrow, debugDropSaber, debugSetSaberMove, debugKnockMeDown, debugSetBodyAnim, debugDismemberment, and debugSaberSwitch)

Link to post
Share on other sites
  • Replies 229
  • Created
  • Last Reply

Top Posters In This Topic

Anybody know how to fix the warning that comes up from this line of code in cg_players.c:

 

const unsigned char savRGBA[3] = {legs.shaderRGBA[0],legs.shaderRGBA[1],legs.shaderRGBA[2]};

 

The warning is: warning C4204: nonstandard extension used : non-constant aggregate initializer

 

um ppl feel free too post your bugfixes here :). can we get this to be an announcement or sticky ?

Link to post
Share on other sites

The error is due to C not liking you initizing your vec3_ts and similar data thingys when you define them. Do the following to fix this:

 

cg_players.c, CG_Player()

const unsigned char savRGBA[3] = {legs.shaderRGBA[0],legs.shaderRGBA[1],legs.shaderRGBA[2]};

=>

unsigned char savRGBA[3];

savRGBA[0] = legs.shaderRGBA[0];

savRGBA[1] = legs.shaderRGBA[1];

savRGBA[2] = legs.shaderRGBA[2];

Link to post
Share on other sites

Here are some sound bugfixes:

 

when you use meditate/bow and saber is not out, usually with staff or dual sabers the saber off sound still plays fix:

 

meditate:

 

where it says

 

{//turn off second saber

just above the G_Sound add

 

if (ent->client->ps.weapon == WP_SABER)

 

same for {//turn off first

if (ent->client->ps.weapon == WP_SABER)

 

do the same with bow.

 

in g_cmds.c find the Cmd_SaberAttackCycle_f command

 

and look for the G_Sound 's in it and just add above them:

if (ent->client->ps.weapon == WP_SABER)

 

i suppose you could just have a return towards the top of the function like:

 

if (ent->client->ps.weapon == WP_SABER) {

return;

}

 

hope that helps :)

Link to post
Share on other sites

CopyToBodyQue has a bug where your custom rgb is used even when in team game. to fix:

 

		body->s.customRGBA[0] = ent->client->ps.customRGBA[0];
	body->s.customRGBA[1] = ent->client->ps.customRGBA[1];
	body->s.customRGBA[2] = ent->client->ps.customRGBA[2];
	body->s.customRGBA[3] = ent->client->ps.customRGBA[3];

 

should be:

 

	if (g_gametype.integer >= GT_TEAM) {
	switch(ent->client->sess.sessionTeam)
	{
	case TEAM_RED:
		body->s.customRGBA[0] = 255;
		body->s.customRGBA[1] = 50;
		body->s.customRGBA[2] = 50;
		break;
	case TEAM_BLUE:
		body->s.customRGBA[0] = 75;
		body->s.customRGBA[1] = 75;
		body->s.customRGBA[2] = 255;
		break;
	default:
		body->s.customRGBA[0] = ent->client->ps.customRGBA[0];
		body->s.customRGBA[1] = ent->client->ps.customRGBA[1];
		body->s.customRGBA[2] = ent->client->ps.customRGBA[2];
		body->s.customRGBA[3] = ent->client->ps.customRGBA[3];
		break;
	}
} else {
	body->s.customRGBA[0] = ent->client->ps.customRGBA[0];
	body->s.customRGBA[1] = ent->client->ps.customRGBA[1];
	body->s.customRGBA[2] = ent->client->ps.customRGBA[2];
	body->s.customRGBA[3] = ent->client->ps.customRGBA[3];
}

Link to post
Share on other sites

×
×
  • Create New...