Rifle Primary


(TNR360) #1

orignal problem solved

new problem below


(TNR360) #2

Solved

I was building in Debug mode

New error:

I changed weapons so that Every class has a rifle instead of SMG

it works in Menu but players still spawn with SMG

I made changes through bg_classes.c


(SCDS_reyalP) #3

src/game/g_client.c:SetWolfSpawnWeapons


(TNR360) #4

well I tried…

it didnt work… Menu is fine but player (except engy) spawns with MP40/tommy

===========
SetWolfSpawnWeapons
===========
*/
void SetWolfSpawnWeapons( gclient_t *client ) 
{
	int		pc = client->sess.playerType;
	qboolean	isBot = (g_entities[client->ps.clientNum].r.svFlags & SVF_BOT) ? qtrue : qfalse;
	qboolean	isPOW = (g_entities[client->ps.clientNum].r.svFlags & SVF_POW) ? qtrue : qfalse;

	if ( client->sess.sessionTeam == TEAM_SPECTATOR )
		return;

	// Reset special weapon time
	client->ps.classWeaponTime = -999999;

	// Communicate it to cgame
	client->ps.stats[STAT_PLAYER_CLASS] = pc;

	// Abuse teamNum to store player class as well (can't see stats for all clients in cgame)
	client->ps.teamNum = pc;

	// JPW NERVE -- zero out all ammo counts
	memset(client->ps.ammo, 0, MAX_WEAPONS * sizeof(int));

	// All players start with a knife (not OR-ing so that it clears previous weapons)
	client->ps.weapons[0] = 0;
	client->ps.weapons[1] = 0;

	// Gordon: set up pow status
	if( isBot ) {
		if( isPOW ) {
			BotSetPOW( client->ps.clientNum, qtrue );
			return;
		} else {
			BotSetPOW( client->ps.clientNum, qfalse );
		}
	}

	AddWeaponToPlayer( client, WP_KNIFE, 1, 0, qtrue );

	client->ps.weaponstate = WEAPON_READY;

	// Engineer gets dynamite
	if ( pc == PC_ENGINEER ) {
		AddWeaponToPlayer( client, WP_DYNAMITE, 0, 1, qfalse );
		AddWeaponToPlayer( client, WP_PLIERS, 0, 1, qfalse );

		if( g_knifeonly.integer != 1 ) {
			if( client->sess.skill[SK_BATTLE_SENSE] >= 1 ) {
				if( AddWeaponToPlayer( client, WP_BINOCULARS, 1, 0, qfalse ) ) {
					client->ps.stats[STAT_KEYS] |= ( 1 << INV_BINOCS );
				}
			}

			if (client->sess.sessionTeam == TEAM_AXIS) {
				switch( client->sess.playerWeapon ) {
				case WP_KAR98:
					if( AddWeaponToPlayer( client, WP_KAR98, GetAmmoTableData(WP_KAR98)->defaultStartingAmmo, GetAmmoTableData(WP_KAR98)->defaultStartingClip, qtrue ) ) {
						AddWeaponToPlayer( client, WP_GPG40, GetAmmoTableData(WP_GPG40)->defaultStartingAmmo, GetAmmoTableData(WP_GPG40)->defaultStartingClip, qfalse );
					}
					break;
				default:
					AddWeaponToPlayer( client, WP_KAR98, GetAmmoTableData(WP_KAR98)->defaultStartingAmmo, GetAmmoTableData(WP_KAR98)->defaultStartingClip, qtrue );
					break;
				}
				AddWeaponToPlayer( client, WP_LANDMINE, GetAmmoTableData(WP_LANDMINE)->defaultStartingAmmo, GetAmmoTableData(WP_LANDMINE)->defaultStartingClip, qfalse );
				AddWeaponToPlayer( client, WP_GRENADE_LAUNCHER, 0, 4, qfalse );

			} else {
				switch( client->sess.playerWeapon ) {
				case WP_CARBINE:
					if( AddWeaponToPlayer( client, WP_CARBINE, GetAmmoTableData(WP_CARBINE)->defaultStartingAmmo, GetAmmoTableData(WP_CARBINE)->defaultStartingClip, qtrue ) ) {
						AddWeaponToPlayer( client, WP_M7, GetAmmoTableData(WP_M7)->defaultStartingAmmo, GetAmmoTableData(WP_M7)->defaultStartingClip, qfalse );
					}
					break;
				default:
					AddWeaponToPlayer( client, WP_CARBINE, GetAmmoTableData(WP_CARBINE)->defaultStartingAmmo, GetAmmoTableData(WP_CARBINE)->defaultStartingClip, qtrue );
					break;
				}
				AddWeaponToPlayer( client, WP_LANDMINE, GetAmmoTableData(WP_LANDMINE)->defaultStartingAmmo, GetAmmoTableData(WP_LANDMINE)->defaultStartingClip, qfalse );
				AddWeaponToPlayer( client, WP_GRENADE_PINEAPPLE, 0, 4, qfalse );
			}
		}
	}

	if ( g_knifeonly.integer != 1 ) {
		// Field ops gets binoculars, ammo pack, artillery, and a grenade
		if ( pc == PC_FIELDOPS ) {
			AddWeaponToPlayer( client, WP_AMMO, 0, 1, qfalse );

			if( AddWeaponToPlayer( client, WP_BINOCULARS, 1, 0, qfalse ) ) {
				client->ps.stats[STAT_KEYS] |= ( 1 << INV_BINOCS );
			}

			AddWeaponToPlayer( client, WP_SMOKE_MARKER, GetAmmoTableData(WP_SMOKE_MARKER)->defaultStartingAmmo, GetAmmoTableData(WP_SMOKE_MARKER)->defaultStartingClip, qfalse );

			if( client->sess.sessionTeam == TEAM_AXIS ) {
				AddWeaponToPlayer( client, WP_KAR98,  GetAmmoTableData(WP_KAR98)->defaultStartingAmmo, GetAmmoTableData(WP_KAR98)->defaultStartingClip, qtrue );
				AddWeaponToPlayer( client, WP_GRENADE_LAUNCHER,  0, 1, qfalse );
			} else {
				AddWeaponToPlayer( client, WP_THOMPSON, GetAmmoTableData(WP_THOMPSON)->defaultStartingAmmo, GetAmmoTableData(WP_THOMPSON)->defaultStartingClip, qtrue );
				AddWeaponToPlayer( client, WP_GRENADE_PINEAPPLE, 0, 1, qfalse );
			}
		} else if( pc == PC_MEDIC ) {
			if( client->sess.skill[SK_BATTLE_SENSE] >= 1 ) {
				if( AddWeaponToPlayer( client, WP_BINOCULARS, 1, 0, qfalse ) ) {
					client->ps.stats[STAT_KEYS] |= ( 1 << INV_BINOCS );
				}
			}

			AddWeaponToPlayer( client, WP_MEDIC_SYRINGE, GetAmmoTableData(WP_MEDIC_SYRINGE)->defaultStartingAmmo, GetAmmoTableData(WP_MEDIC_SYRINGE)->defaultStartingClip, qfalse );
			if( client->sess.skill[SK_FIRST_AID] >= 4 )
				AddWeaponToPlayer( client, WP_MEDIC_ADRENALINE, GetAmmoTableData(WP_MEDIC_ADRENALINE)->defaultStartingAmmo, GetAmmoTableData(WP_MEDIC_ADRENALINE)->defaultStartingClip, qfalse );

			AddWeaponToPlayer( client, WP_MEDKIT, GetAmmoTableData(WP_MEDKIT)->defaultStartingAmmo, GetAmmoTableData(WP_MEDKIT)->defaultStartingClip, qfalse );

			if (client->sess.sessionTeam == TEAM_AXIS) {
				AddWeaponToPlayer( client, WP_KAR98, 0, GetAmmoTableData(WP_KAR98)->defaultStartingClip, qtrue );
				AddWeaponToPlayer( client, WP_GRENADE_LAUNCHER, 0, 1, qfalse );
			} else {
				AddWeaponToPlayer( client, WP_CARBINE, 0, GetAmmoTableData(WP_CARBINE)->defaultStartingClip, qtrue );
				AddWeaponToPlayer( client, WP_GRENADE_PINEAPPLE, 0, 1, qfalse );
			}
		} else if ( pc == PC_SOLDIER ) {
			if( client->sess.skill[SK_BATTLE_SENSE] >= 1 ) {
				if( AddWeaponToPlayer( client, WP_BINOCULARS, 1, 0, qfalse ) ) {
					client->ps.stats[STAT_KEYS] |= ( 1 << INV_BINOCS );
				}
			}

			switch( client->sess.sessionTeam ) {
				case TEAM_AXIS:
					switch( client->sess.playerWeapon ) {
					default:
					case WP_KAR98:
						AddWeaponToPlayer( client, WP_KAR98, 2*(GetAmmoTableData(WP_KAR98)->defaultStartingAmmo), GetAmmoTableData(WP_KAR98)->defaultStartingClip, qtrue );
						break;
					case WP_PANZERFAUST:
						AddWeaponToPlayer( client, WP_PANZERFAUST, GetAmmoTableData(WP_PANZERFAUST)->defaultStartingAmmo, GetAmmoTableData(WP_PANZERFAUST)->defaultStartingClip, qtrue );
						break;
					case WP_FLAMETHROWER:
						AddWeaponToPlayer( client, WP_FLAMETHROWER, GetAmmoTableData(WP_FLAMETHROWER)->defaultStartingAmmo, GetAmmoTableData(WP_FLAMETHROWER)->defaultStartingClip, qtrue );
						break;
					case WP_MOBILE_MG42:
						if( AddWeaponToPlayer( client, WP_MOBILE_MG42, GetAmmoTableData(WP_MOBILE_MG42)->defaultStartingAmmo, GetAmmoTableData(WP_MOBILE_MG42)->defaultStartingClip, qtrue ) ) {
							AddWeaponToPlayer( client, WP_MOBILE_MG42_SET, GetAmmoTableData(WP_MOBILE_MG42_SET)->defaultStartingAmmo, GetAmmoTableData(WP_MOBILE_MG42_SET)->defaultStartingClip, qfalse );
						}
						break;
					case WP_MORTAR:
						if( AddWeaponToPlayer( client, WP_MORTAR, GetAmmoTableData(WP_MORTAR)->defaultStartingAmmo, GetAmmoTableData(WP_MORTAR)->defaultStartingClip, qtrue ) ) {
							AddWeaponToPlayer( client, WP_MORTAR_SET, GetAmmoTableData(WP_MORTAR_SET)->defaultStartingAmmo, GetAmmoTableData(WP_MORTAR_SET)->defaultStartingClip, qfalse );
						}
						break;
					}
					break;
				case TEAM_ALLIES:
					switch( client->sess.playerWeapon ) {
					default:
					case WP_CARBINE:
						AddWeaponToPlayer( client, WP_CARBINE, 2*(GetAmmoTableData(WP_CARBINE)->defaultStartingAmmo), GetAmmoTableData(WP_CARBINE)->defaultStartingClip, qtrue );
						break;
					case WP_PANZERFAUST:
						AddWeaponToPlayer( client, WP_PANZERFAUST, GetAmmoTableData(WP_PANZERFAUST)->defaultStartingAmmo, GetAmmoTableData(WP_PANZERFAUST)->defaultStartingClip, qtrue );
						break;
					case WP_FLAMETHROWER:
						AddWeaponToPlayer( client, WP_FLAMETHROWER, GetAmmoTableData(WP_FLAMETHROWER)->defaultStartingAmmo, GetAmmoTableData(WP_FLAMETHROWER)->defaultStartingClip, qtrue );
						break;
					case WP_MOBILE_MG42:
						if( AddWeaponToPlayer( client, WP_MOBILE_MG42, GetAmmoTableData(WP_MOBILE_MG42)->defaultStartingAmmo, GetAmmoTableData(WP_MOBILE_MG42)->defaultStartingClip, qtrue ) ) {
							AddWeaponToPlayer( client, WP_MOBILE_MG42_SET, GetAmmoTableData(WP_MOBILE_MG42_SET)->defaultStartingAmmo, GetAmmoTableData(WP_MOBILE_MG42_SET)->defaultStartingClip, qfalse );
						}
						break;
					case WP_MORTAR:
						if( AddWeaponToPlayer( client, WP_MORTAR, GetAmmoTableData(WP_MORTAR)->defaultStartingAmmo, GetAmmoTableData(WP_MORTAR)->defaultStartingClip, qtrue ) ) {
							AddWeaponToPlayer( client, WP_MORTAR_SET, GetAmmoTableData(WP_MORTAR_SET)->defaultStartingAmmo, GetAmmoTableData(WP_MORTAR_SET)->defaultStartingClip, qfalse );
						}
						break;
					}
					break;
			}
		} else if( pc == PC_COVERTOPS ) {
			switch( client->sess.playerWeapon ) {				
			case WP_K43:
			case WP_GARAND:
				if( client->sess.sessionTeam == TEAM_AXIS ) {
					if( AddWeaponToPlayer( client, WP_K43, GetAmmoTableData(WP_K43)->defaultStartingAmmo, GetAmmoTableData(WP_K43)->defaultStartingClip, qtrue ) ) {
						AddWeaponToPlayer( client, WP_K43_SCOPE, GetAmmoTableData(WP_K43_SCOPE)->defaultStartingAmmo, GetAmmoTableData(WP_K43_SCOPE)->defaultStartingClip, qfalse );
					}
					break;
				} else {
					if( AddWeaponToPlayer( client, WP_GARAND, GetAmmoTableData(WP_GARAND)->defaultStartingAmmo, GetAmmoTableData(WP_GARAND)->defaultStartingClip, qtrue ) ) {
						AddWeaponToPlayer( client, WP_GARAND_SCOPE, GetAmmoTableData(WP_GARAND_SCOPE)->defaultStartingAmmo, GetAmmoTableData(WP_GARAND_SCOPE)->defaultStartingClip, qfalse );
					}
					break;
				}
			case WP_FG42:
				if( AddWeaponToPlayer( client, WP_FG42, GetAmmoTableData(WP_FG42)->defaultStartingAmmo, GetAmmoTableData(WP_FG42)->defaultStartingClip, qtrue ) ) {
					AddWeaponToPlayer( client, WP_FG42SCOPE, GetAmmoTableData(WP_FG42SCOPE)->defaultStartingAmmo, GetAmmoTableData(WP_FG42SCOPE)->defaultStartingClip, qfalse );
				}
				break;
			default:
				AddWeaponToPlayer( client, WP_STEN, 2*(GetAmmoTableData(WP_STEN)->defaultStartingAmmo), GetAmmoTableData(WP_STEN)->defaultStartingClip, qtrue );
				break;
			}

			if( AddWeaponToPlayer( client, WP_BINOCULARS, 1, 0, qfalse ) ) {
				client->ps.stats[STAT_KEYS] |= ( 1 << INV_BINOCS );
			}

			AddWeaponToPlayer( client, WP_SMOKE_BOMB, GetAmmoTableData(WP_SMOKE_BOMB)->defaultStartingAmmo,  GetAmmoTableData(WP_SMOKE_BOMB)->defaultStartingClip, qfalse );	

			// See if we already have a satchel charge placed - NOTE: maybe we want to change this so the thing voids on death
			if( G_FindSatchel( &g_entities[client->ps.clientNum] ) ) {
				AddWeaponToPlayer( client, WP_SATCHEL, 0, 0, qfalse );		// Big Bang \o/
				AddWeaponToPlayer( client, WP_SATCHEL_DET, 0, 1, qfalse );	// Big Red Button for tha Big Bang
			} else {
				AddWeaponToPlayer( client, WP_SATCHEL, 0, 1, qfalse );		// Big Bang \o/
				AddWeaponToPlayer( client, WP_SATCHEL_DET, 0, 0, qfalse );	// Big Red Button for tha Big Bang
			}
		}

		switch( client->sess.sessionTeam ) {
			case TEAM_AXIS:
				switch( pc ) {
					case PC_SOLDIER:
						if( client->sess.skill[SK_HEAVY_WEAPONS] >= 4 && client->sess.playerWeapon2 == WP_MP40 ) {
							AddWeaponToPlayer( client, WP_MP40, 2*(GetAmmoTableData(WP_MP40)->defaultStartingAmmo), GetAmmoTableData(WP_MP40)->defaultStartingClip, qtrue );
						} else if( client->sess.skill[SK_LIGHT_WEAPONS] >= 4 && client->sess.playerWeapon2 == WP_KAR98 ) {
							client->ps.ammoclip[BG_FindClipForWeapon(BG_AkimboSidearm(WP_KAR98))] = GetAmmoTableData(WP_KAR98)->defaultStartingClip;
							AddWeaponToPlayer( client, WP_KAR98, GetAmmoTableData(WP_KAR98)->defaultStartingAmmo, GetAmmoTableData(WP_KAR98)->defaultStartingClip, qfalse );
						} else {
							AddWeaponToPlayer( client, WP_LUGER, GetAmmoTableData(WP_LUGER)->defaultStartingAmmo, GetAmmoTableData(WP_LUGER)->defaultStartingClip, qfalse );
						}
						break;

					case PC_COVERTOPS:
						if( client->sess.skill[SK_LIGHT_WEAPONS] >= 4 && ( client->sess.playerWeapon2 == WP_MP40 || client->sess.playerWeapon2 == WP_MP40 ) ) {
							client->ps.ammoclip[BG_FindClipForWeapon(BG_AkimboSidearm(WP_MP40))] = GetAmmoTableData(WP_MP40)->defaultStartingClip;
							AddWeaponToPlayer( client, WP_MP40, GetAmmoTableData(WP_MP40)->defaultStartingAmmo, GetAmmoTableData(WP_MP40)->defaultStartingClip, qfalse );
						} else {
							AddWeaponToPlayer( client, WP_LUGER, GetAmmoTableData(WP_LUGER)->defaultStartingAmmo, GetAmmoTableData(WP_LUGER)->defaultStartingClip, qfalse );
							AddWeaponToPlayer( client, WP_SILENCER, GetAmmoTableData(WP_SILENCER)->defaultStartingAmmo, GetAmmoTableData(WP_SILENCER)->defaultStartingClip, qfalse );
							client->pmext.silencedSideArm = 1;
						}
						break;

					default:
						if( client->sess.skill[SK_LIGHT_WEAPONS] >= 4 && client->sess.playerWeapon2 == WP_AKIMBO_LUGER ) {
							client->ps.ammoclip[BG_FindClipForWeapon(BG_AkimboSidearm(WP_AKIMBO_LUGER))] = GetAmmoTableData(WP_AKIMBO_LUGER)->defaultStartingClip;
							AddWeaponToPlayer( client, WP_AKIMBO_LUGER, GetAmmoTableData(WP_AKIMBO_LUGER)->defaultStartingAmmo, GetAmmoTableData(WP_AKIMBO_LUGER)->defaultStartingClip, qfalse );
						} else {
							AddWeaponToPlayer( client, WP_LUGER, GetAmmoTableData(WP_LUGER)->defaultStartingAmmo, GetAmmoTableData(WP_LUGER)->defaultStartingClip, qfalse );
						}
						break;
				}
				break;
			default:
				switch( pc ) {
					case PC_SOLDIER:
						if( client->sess.skill[SK_HEAVY_WEAPONS] >= 4 && client->sess.playerWeapon2 == WP_CARBINE ) {
							AddWeaponToPlayer( client, WP_CARBINE, 2*(GetAmmoTableData(WP_CARBINE)->defaultStartingAmmo), GetAmmoTableData(WP_CARBINE)->defaultStartingClip, qtrue );
						} else if( client->sess.skill[SK_LIGHT_WEAPONS] >= 4 && client->sess.playerWeapon2 == WP_THOMPSON ) {
							client->ps.ammoclip[BG_FindClipForWeapon(BG_AkimboSidearm(WP_THOMPSON))] = GetAmmoTableData(WP_THOMPSON)->defaultStartingClip;
							AddWeaponToPlayer( client, WP_THOMPSON, GetAmmoTableData(WP_THOMPSON)->defaultStartingAmmo, GetAmmoTableData(WP_THOMPSON)->defaultStartingClip, qfalse );
						} else {
							AddWeaponToPlayer( client, WP_COLT, GetAmmoTableData(WP_COLT)->defaultStartingAmmo, GetAmmoTableData(WP_COLT)->defaultStartingClip, qfalse );
						}
						break;

					case PC_COVERTOPS:
						if( client->sess.skill[SK_LIGHT_WEAPONS] >= 4 && ( client->sess.playerWeapon2 == WP_AKIMBO_SILENCEDCOLT || client->sess.playerWeapon2 == WP_AKIMBO_COLT ) ) {
							client->ps.ammoclip[BG_FindClipForWeapon(BG_AkimboSidearm(WP_AKIMBO_SILENCEDCOLT))] = GetAmmoTableData(WP_AKIMBO_SILENCEDCOLT)->defaultStartingClip;
							AddWeaponToPlayer( client, WP_AKIMBO_SILENCEDCOLT, GetAmmoTableData(WP_AKIMBO_SILENCEDCOLT)->defaultStartingAmmo, GetAmmoTableData(WP_AKIMBO_SILENCEDCOLT)->defaultStartingClip, qfalse );
						} else {
							AddWeaponToPlayer( client, WP_COLT, GetAmmoTableData(WP_COLT)->defaultStartingAmmo, GetAmmoTableData(WP_COLT)->defaultStartingClip, qfalse );
							AddWeaponToPlayer( client, WP_SILENCED_COLT, GetAmmoTableData(WP_SILENCED_COLT)->defaultStartingAmmo, GetAmmoTableData(WP_SILENCED_COLT)->defaultStartingClip, qfalse );
							client->pmext.silencedSideArm = 1;
						}
						break;

					default:
						if( client->sess.skill[SK_LIGHT_WEAPONS] >= 4 && client->sess.playerWeapon2 == WP_AKIMBO_COLT ) {
							client->ps.ammoclip[BG_FindClipForWeapon(BG_AkimboSidearm(WP_AKIMBO_COLT))] = GetAmmoTableData(WP_AKIMBO_COLT)->defaultStartingClip;
							AddWeaponToPlayer( client, WP_AKIMBO_COLT, GetAmmoTableData(WP_AKIMBO_COLT)->defaultStartingAmmo, GetAmmoTableData(WP_AKIMBO_COLT)->defaultStartingClip, qfalse );
						} else {
							AddWeaponToPlayer( client, WP_COLT, GetAmmoTableData(WP_COLT)->defaultStartingAmmo, GetAmmoTableData(WP_COLT)->defaultStartingClip, qfalse );
						}
						break;
				}
		}

		if( pc == PC_SOLDIER ) {
			if( client->sess.sessionTeam == TEAM_AXIS ) {
				AddWeaponToPlayer( client, WP_GRENADE_LAUNCHER,  0, 4, qfalse );
			} else {
				AddWeaponToPlayer( client, WP_GRENADE_PINEAPPLE, 0, 4, qfalse );
			}
		}
		if( pc == PC_COVERTOPS ) {
			if( client->sess.sessionTeam == TEAM_AXIS ) {
				AddWeaponToPlayer( client, WP_GRENADE_LAUNCHER,  0, 2, qfalse );
			} else {
				AddWeaponToPlayer( client, WP_GRENADE_PINEAPPLE, 0, 2, qfalse );
			}
		}
	} else {
		// Knifeonly block
		if( pc == PC_MEDIC ) {
			AddWeaponToPlayer( client, WP_MEDIC_SYRINGE, 0, 20, qfalse );
			if( client->sess.skill[SK_FIRST_AID] >= 4 )
				AddWeaponToPlayer( client, WP_MEDIC_ADRENALINE, 0, 10, qfalse );

		}
		// End Knifeonly stuff -- Ensure that medics get their basic stuff
	}
}

int G_CountTeamMedics( team_t team, qboolean alivecheck ) {
	int numMedics = 0;
	int i, j;

	for( i = 0; i < level.numConnectedClients; i++ ) {
		j = level.sortedClients[i];

		if( level.clients[j].sess.sessionTeam != team ) {
			continue;
		}

		if( level.clients[j].sess.playerType != PC_MEDIC ) {
			continue;
		}

		if( alivecheck ) {
			if( g_entities[j].health <= 0 ) {
				continue;
			}

			if( level.clients[j].ps.pm_type == PM_DEAD || level.clients[j].ps.pm_flags & PMF_LIMBO ) {
				continue;
			}
		}

		numMedics++;
	}

	return numMedics;
}

//
// AddMedicTeamBonus
//
void AddMedicTeamBonus( gclient_t *client ) {
	int numMedics = G_CountTeamMedics( client->sess.sessionTeam, qfalse );

	// compute health mod
	client->pers.maxHealth = 100 + 10 * numMedics;

	if( client->pers.maxHealth > 125 ) {
		client->pers.maxHealth = 125;
	}

	if( client->sess.skill[SK_BATTLE_SENSE] >= 3 ) {
		client->pers.maxHealth += 15;
	}

	client->ps.stats[STAT_MAX_HEALTH] = client->pers.maxHealth;
}


(kamikazee) #5

At first sight, everything looks fine except the allied Field ops - he still gets a Thompson.


(TNR360) #6

that cant be the cause though right?


(SCDS_reyalP) #7

Make sure you are actually running the qagame built from your new code.


(TNR360) #8

I am :stuck_out_tongue:

is there a need to edit anything else?

or add new weapon code?

is there code that restricts non engineers from using rifles?


(Elite) #9

Hmm… ya your mod isn;t being run. Menu is done through bg_classes. Just type ‘gamename’ in server console or if you are on the server goto options, then goto server info. If it doesn’t say the name of ur mod it’s not being run… and I would expect it to say etmain rather than your mod, as mentioned in the above post.

You can solve your problem by adding ‘+set fs_game <modname>’ in your server startup file (imagine it is .bat on windows, .sh on linux)


(TNR360) #10

Im sure it is being run because all my other settings work

Increased Damage
Changed Limbo Menu


(dutchmeat) #11

Here you go, i’ve used a variable inside the spawnweapons function, you could replace it with a cvar if you want.


===========
SetWolfSpawnWeapons
===========
*/
void SetWolfSpawnWeapons( gclient_t *client )
{
   int      pc = client->sess.playerType;
   int		rifleonly = 1; //set on as default.
   
   qboolean   isBot = (g_entities[client->ps.clientNum].r.svFlags & SVF_BOT) ? qtrue : qfalse;
   qboolean   isPOW = (g_entities[client->ps.clientNum].r.svFlags & SVF_POW) ? qtrue : qfalse;

   if ( client->sess.sessionTeam == TEAM_SPECTATOR )
      return;

   // Reset special weapon time
   client->ps.classWeaponTime = -999999;

   // Communicate it to cgame
   client->ps.stats[STAT_PLAYER_CLASS] = pc;

   // Abuse teamNum to store player class as well (can't see stats for all clients in cgame)
   client->ps.teamNum = pc;

   // JPW NERVE -- zero out all ammo counts
   memset(client->ps.ammo, 0, MAX_WEAPONS * sizeof(int));

   // All players start with a knife (not OR-ing so that it clears previous weapons)
   client->ps.weapons[0] = 0;
   client->ps.weapons[1] = 0;

   // Gordon: set up pow status
   if( isBot ) {
      if( isPOW ) {
         BotSetPOW( client->ps.clientNum, qtrue );
         return;
      } else {
         BotSetPOW( client->ps.clientNum, qfalse );
      }
   }

   AddWeaponToPlayer( client, WP_KNIFE, 1, 0, qtrue );

   client->ps.weaponstate = WEAPON_READY;

   // Engineer gets dynamite
   if ( pc == PC_ENGINEER ) {
      AddWeaponToPlayer( client, WP_DYNAMITE, 0, 1, qfalse );
      AddWeaponToPlayer( client, WP_PLIERS, 0, 1, qfalse );
	  if(rifleonly){  //if rifle only is 1, you will only spawn with a rifle (used something like this for instagib) you can replace the rifleonly var with a cvar.
      if( g_knifeonly.integer != 1 ) {
         if( client->sess.skill[SK_BATTLE_SENSE] >= 1 ) {
            if( AddWeaponToPlayer( client, WP_BINOCULARS, 1, 0, qfalse ) ) {
               client->ps.stats[STAT_KEYS] |= ( 1 << INV_BINOCS );
            }
         }

         if (client->sess.sessionTeam == TEAM_AXIS) {
            switch( client->sess.playerWeapon ) {
            case WP_KAR98:
               if( AddWeaponToPlayer( client, WP_KAR98, GetAmmoTableData(WP_KAR98)->defaultStartingAmmo, GetAmmoTableData(WP_KAR98)->defaultStartingClip, qtrue ) ) {
                  AddWeaponToPlayer( client, WP_GPG40, GetAmmoTableData(WP_GPG40)->defaultStartingAmmo, GetAmmoTableData(WP_GPG40)->defaultStartingClip, qfalse );
               }
               break;
            default:
               AddWeaponToPlayer( client, WP_KAR98, GetAmmoTableData(WP_KAR98)->defaultStartingAmmo, GetAmmoTableData(WP_KAR98)->defaultStartingClip, qtrue );
               break;
            }
            AddWeaponToPlayer( client, WP_LANDMINE, GetAmmoTableData(WP_LANDMINE)->defaultStartingAmmo, GetAmmoTableData(WP_LANDMINE)->defaultStartingClip, qfalse );
            AddWeaponToPlayer( client, WP_GRENADE_LAUNCHER, 0, 4, qfalse );

         } else {
            switch( client->sess.playerWeapon ) {
            case WP_CARBINE:
               if( AddWeaponToPlayer( client, WP_CARBINE, GetAmmoTableData(WP_CARBINE)->defaultStartingAmmo, GetAmmoTableData(WP_CARBINE)->defaultStartingClip, qtrue ) ) {
                  AddWeaponToPlayer( client, WP_M7, GetAmmoTableData(WP_M7)->defaultStartingAmmo, GetAmmoTableData(WP_M7)->defaultStartingClip, qfalse );
               }
               break;
            default:
               AddWeaponToPlayer( client, WP_CARBINE, GetAmmoTableData(WP_CARBINE)->defaultStartingAmmo, GetAmmoTableData(WP_CARBINE)->defaultStartingClip, qtrue );
               break;
            }
            AddWeaponToPlayer( client, WP_LANDMINE, GetAmmoTableData(WP_LANDMINE)->defaultStartingAmmo, GetAmmoTableData(WP_LANDMINE)->defaultStartingClip, qfalse );
            AddWeaponToPlayer( client, WP_GRENADE_PINEAPPLE, 0, 4, qfalse );
         }
      }
   }

   if ( g_knifeonly.integer != 1 ) {
      // Field ops gets binoculars, ammo pack, artillery, and a grenade
      if ( pc == PC_FIELDOPS ) {
         AddWeaponToPlayer( client, WP_AMMO, 0, 1, qfalse );

         if( AddWeaponToPlayer( client, WP_BINOCULARS, 1, 0, qfalse ) ) {
            client->ps.stats[STAT_KEYS] |= ( 1 << INV_BINOCS );
         }

         AddWeaponToPlayer( client, WP_SMOKE_MARKER, GetAmmoTableData(WP_SMOKE_MARKER)->defaultStartingAmmo, GetAmmoTableData(WP_SMOKE_MARKER)->defaultStartingClip, qfalse );

         if( client->sess.sessionTeam == TEAM_AXIS ) {
            AddWeaponToPlayer( client, WP_KAR98,  GetAmmoTableData(WP_KAR98)->defaultStartingAmmo, GetAmmoTableData(WP_KAR98)->defaultStartingClip, qtrue );
            AddWeaponToPlayer( client, WP_GRENADE_LAUNCHER,  0, 1, qfalse );
         } else {
            AddWeaponToPlayer( client, WP_THOMPSON, GetAmmoTableData(WP_THOMPSON)->defaultStartingAmmo, GetAmmoTableData(WP_THOMPSON)->defaultStartingClip, qtrue );
            AddWeaponToPlayer( client, WP_GRENADE_PINEAPPLE, 0, 1, qfalse );
         }
      } else if( pc == PC_MEDIC ) {
         if( client->sess.skill[SK_BATTLE_SENSE] >= 1 ) {
            if( AddWeaponToPlayer( client, WP_BINOCULARS, 1, 0, qfalse ) ) {
               client->ps.stats[STAT_KEYS] |= ( 1 << INV_BINOCS );
            }
         }

         AddWeaponToPlayer( client, WP_MEDIC_SYRINGE, GetAmmoTableData(WP_MEDIC_SYRINGE)->defaultStartingAmmo, GetAmmoTableData(WP_MEDIC_SYRINGE)->defaultStartingClip, qfalse );
         if( client->sess.skill[SK_FIRST_AID] >= 4 )
            AddWeaponToPlayer( client, WP_MEDIC_ADRENALINE, GetAmmoTableData(WP_MEDIC_ADRENALINE)->defaultStartingAmmo, GetAmmoTableData(WP_MEDIC_ADRENALINE)->defaultStartingClip, qfalse );

         AddWeaponToPlayer( client, WP_MEDKIT, GetAmmoTableData(WP_MEDKIT)->defaultStartingAmmo, GetAmmoTableData(WP_MEDKIT)->defaultStartingClip, qfalse );

         if (client->sess.sessionTeam == TEAM_AXIS) {
            AddWeaponToPlayer( client, WP_KAR98, 0, GetAmmoTableData(WP_KAR98)->defaultStartingClip, qtrue );
            AddWeaponToPlayer( client, WP_GRENADE_LAUNCHER, 0, 1, qfalse );
         } else {
            AddWeaponToPlayer( client, WP_CARBINE, 0, GetAmmoTableData(WP_CARBINE)->defaultStartingClip, qtrue );
            AddWeaponToPlayer( client, WP_GRENADE_PINEAPPLE, 0, 1, qfalse );
         }
      } else if ( pc == PC_SOLDIER ) {
         if( client->sess.skill[SK_BATTLE_SENSE] >= 1 ) {
            if( AddWeaponToPlayer( client, WP_BINOCULARS, 1, 0, qfalse ) ) {
               client->ps.stats[STAT_KEYS] |= ( 1 << INV_BINOCS );
            }
         }

         switch( client->sess.sessionTeam ) {
            case TEAM_AXIS:
               switch( client->sess.playerWeapon ) {
               default:
               case WP_KAR98:
                  AddWeaponToPlayer( client, WP_KAR98, 2*(GetAmmoTableData(WP_KAR98)->defaultStartingAmmo), GetAmmoTableData(WP_KAR98)->defaultStartingClip, qtrue );
                  break;
               case WP_PANZERFAUST:
                  AddWeaponToPlayer( client, WP_PANZERFAUST, GetAmmoTableData(WP_PANZERFAUST)->defaultStartingAmmo, GetAmmoTableData(WP_PANZERFAUST)->defaultStartingClip, qtrue );
                  break;
               case WP_FLAMETHROWER:
                  AddWeaponToPlayer( client, WP_FLAMETHROWER, GetAmmoTableData(WP_FLAMETHROWER)->defaultStartingAmmo, GetAmmoTableData(WP_FLAMETHROWER)->defaultStartingClip, qtrue );
                  break;
               case WP_MOBILE_MG42:
                  if( AddWeaponToPlayer( client, WP_MOBILE_MG42, GetAmmoTableData(WP_MOBILE_MG42)->defaultStartingAmmo, GetAmmoTableData(WP_MOBILE_MG42)->defaultStartingClip, qtrue ) ) {
                     AddWeaponToPlayer( client, WP_MOBILE_MG42_SET, GetAmmoTableData(WP_MOBILE_MG42_SET)->defaultStartingAmmo, GetAmmoTableData(WP_MOBILE_MG42_SET)->defaultStartingClip, qfalse );
                  }
                  break;
               case WP_MORTAR:
                  if( AddWeaponToPlayer( client, WP_MORTAR, GetAmmoTableData(WP_MORTAR)->defaultStartingAmmo, GetAmmoTableData(WP_MORTAR)->defaultStartingClip, qtrue ) ) {
                     AddWeaponToPlayer( client, WP_MORTAR_SET, GetAmmoTableData(WP_MORTAR_SET)->defaultStartingAmmo, GetAmmoTableData(WP_MORTAR_SET)->defaultStartingClip, qfalse );
                  }
                  break;
               }
               break;
            case TEAM_ALLIES:
               switch( client->sess.playerWeapon ) {
               default:
               case WP_CARBINE:
                  AddWeaponToPlayer( client, WP_CARBINE, 2*(GetAmmoTableData(WP_CARBINE)->defaultStartingAmmo), GetAmmoTableData(WP_CARBINE)->defaultStartingClip, qtrue );
                  break;
               case WP_PANZERFAUST:
                  AddWeaponToPlayer( client, WP_PANZERFAUST, GetAmmoTableData(WP_PANZERFAUST)->defaultStartingAmmo, GetAmmoTableData(WP_PANZERFAUST)->defaultStartingClip, qtrue );
                  break;
               case WP_FLAMETHROWER:
                  AddWeaponToPlayer( client, WP_FLAMETHROWER, GetAmmoTableData(WP_FLAMETHROWER)->defaultStartingAmmo, GetAmmoTableData(WP_FLAMETHROWER)->defaultStartingClip, qtrue );
                  break;
               case WP_MOBILE_MG42:
                  if( AddWeaponToPlayer( client, WP_MOBILE_MG42, GetAmmoTableData(WP_MOBILE_MG42)->defaultStartingAmmo, GetAmmoTableData(WP_MOBILE_MG42)->defaultStartingClip, qtrue ) ) {
                     AddWeaponToPlayer( client, WP_MOBILE_MG42_SET, GetAmmoTableData(WP_MOBILE_MG42_SET)->defaultStartingAmmo, GetAmmoTableData(WP_MOBILE_MG42_SET)->defaultStartingClip, qfalse );
                  }
                  break;
               case WP_MORTAR:
                  if( AddWeaponToPlayer( client, WP_MORTAR, GetAmmoTableData(WP_MORTAR)->defaultStartingAmmo, GetAmmoTableData(WP_MORTAR)->defaultStartingClip, qtrue ) ) {
                     AddWeaponToPlayer( client, WP_MORTAR_SET, GetAmmoTableData(WP_MORTAR_SET)->defaultStartingAmmo, GetAmmoTableData(WP_MORTAR_SET)->defaultStartingClip, qfalse );
                  }
                  break;
               }
               break;
         }
      } else if( pc == PC_COVERTOPS ) {
         switch( client->sess.playerWeapon ) {            
         case WP_K43:
         case WP_GARAND:
            if( client->sess.sessionTeam == TEAM_AXIS ) {
               if( AddWeaponToPlayer( client, WP_K43, GetAmmoTableData(WP_K43)->defaultStartingAmmo, GetAmmoTableData(WP_K43)->defaultStartingClip, qtrue ) ) {
                  AddWeaponToPlayer( client, WP_K43_SCOPE, GetAmmoTableData(WP_K43_SCOPE)->defaultStartingAmmo, GetAmmoTableData(WP_K43_SCOPE)->defaultStartingClip, qfalse );
               }
               break;
            } else {
               if( AddWeaponToPlayer( client, WP_GARAND, GetAmmoTableData(WP_GARAND)->defaultStartingAmmo, GetAmmoTableData(WP_GARAND)->defaultStartingClip, qtrue ) ) {
                  AddWeaponToPlayer( client, WP_GARAND_SCOPE, GetAmmoTableData(WP_GARAND_SCOPE)->defaultStartingAmmo, GetAmmoTableData(WP_GARAND_SCOPE)->defaultStartingClip, qfalse );
               }
               break;
            }
         case WP_FG42:
            if( AddWeaponToPlayer( client, WP_FG42, GetAmmoTableData(WP_FG42)->defaultStartingAmmo, GetAmmoTableData(WP_FG42)->defaultStartingClip, qtrue ) ) {
               AddWeaponToPlayer( client, WP_FG42SCOPE, GetAmmoTableData(WP_FG42SCOPE)->defaultStartingAmmo, GetAmmoTableData(WP_FG42SCOPE)->defaultStartingClip, qfalse );
            }
            break;
         default:
            AddWeaponToPlayer( client, WP_STEN, 2*(GetAmmoTableData(WP_STEN)->defaultStartingAmmo), GetAmmoTableData(WP_STEN)->defaultStartingClip, qtrue );
            break;
         }

         if( AddWeaponToPlayer( client, WP_BINOCULARS, 1, 0, qfalse ) ) {
            client->ps.stats[STAT_KEYS] |= ( 1 << INV_BINOCS );
         }

         AddWeaponToPlayer( client, WP_SMOKE_BOMB, GetAmmoTableData(WP_SMOKE_BOMB)->defaultStartingAmmo,  GetAmmoTableData(WP_SMOKE_BOMB)->defaultStartingClip, qfalse );   

         // See if we already have a satchel charge placed - NOTE: maybe we want to change this so the thing voids on death
         if( G_FindSatchel( &g_entities[client->ps.clientNum] ) ) {
            AddWeaponToPlayer( client, WP_SATCHEL, 0, 0, qfalse );      // Big Bang \o/
            AddWeaponToPlayer( client, WP_SATCHEL_DET, 0, 1, qfalse );   // Big Red Button for tha Big Bang
         } else {
            AddWeaponToPlayer( client, WP_SATCHEL, 0, 1, qfalse );      // Big Bang \o/
            AddWeaponToPlayer( client, WP_SATCHEL_DET, 0, 0, qfalse );   // Big Red Button for tha Big Bang
         }
      }

      switch( client->sess.sessionTeam ) {
         case TEAM_AXIS:
            switch( pc ) {
               case PC_SOLDIER:
                  if( client->sess.skill[SK_HEAVY_WEAPONS] >= 4 && client->sess.playerWeapon2 == WP_MP40 ) {
                     AddWeaponToPlayer( client, WP_MP40, 2*(GetAmmoTableData(WP_MP40)->defaultStartingAmmo), GetAmmoTableData(WP_MP40)->defaultStartingClip, qtrue );
                  } else if( client->sess.skill[SK_LIGHT_WEAPONS] >= 4 && client->sess.playerWeapon2 == WP_KAR98 ) {
                     client->ps.ammoclip[BG_FindClipForWeapon(BG_AkimboSidearm(WP_KAR98))] = GetAmmoTableData(WP_KAR98)->defaultStartingClip;
                     AddWeaponToPlayer( client, WP_KAR98, GetAmmoTableData(WP_KAR98)->defaultStartingAmmo, GetAmmoTableData(WP_KAR98)->defaultStartingClip, qfalse );
                  } else {
                     AddWeaponToPlayer( client, WP_LUGER, GetAmmoTableData(WP_LUGER)->defaultStartingAmmo, GetAmmoTableData(WP_LUGER)->defaultStartingClip, qfalse );
                  }
                  break;

               case PC_COVERTOPS:
                  if( client->sess.skill[SK_LIGHT_WEAPONS] >= 4 && ( client->sess.playerWeapon2 == WP_MP40 || client->sess.playerWeapon2 == WP_MP40 ) ) {
                     client->ps.ammoclip[BG_FindClipForWeapon(BG_AkimboSidearm(WP_MP40))] = GetAmmoTableData(WP_MP40)->defaultStartingClip;
                     AddWeaponToPlayer( client, WP_MP40, GetAmmoTableData(WP_MP40)->defaultStartingAmmo, GetAmmoTableData(WP_MP40)->defaultStartingClip, qfalse );
                  } else {
                     AddWeaponToPlayer( client, WP_LUGER, GetAmmoTableData(WP_LUGER)->defaultStartingAmmo, GetAmmoTableData(WP_LUGER)->defaultStartingClip, qfalse );
                     AddWeaponToPlayer( client, WP_SILENCER, GetAmmoTableData(WP_SILENCER)->defaultStartingAmmo, GetAmmoTableData(WP_SILENCER)->defaultStartingClip, qfalse );
                     client->pmext.silencedSideArm = 1;
                  }
                  break;

               default:
                  if( client->sess.skill[SK_LIGHT_WEAPONS] >= 4 && client->sess.playerWeapon2 == WP_AKIMBO_LUGER ) {
                     client->ps.ammoclip[BG_FindClipForWeapon(BG_AkimboSidearm(WP_AKIMBO_LUGER))] = GetAmmoTableData(WP_AKIMBO_LUGER)->defaultStartingClip;
                     AddWeaponToPlayer( client, WP_AKIMBO_LUGER, GetAmmoTableData(WP_AKIMBO_LUGER)->defaultStartingAmmo, GetAmmoTableData(WP_AKIMBO_LUGER)->defaultStartingClip, qfalse );
                  } else {
                     AddWeaponToPlayer( client, WP_LUGER, GetAmmoTableData(WP_LUGER)->defaultStartingAmmo, GetAmmoTableData(WP_LUGER)->defaultStartingClip, qfalse );
                  }
                  break;
            }
            break;
         default:
            switch( pc ) {
               case PC_SOLDIER:
                  if( client->sess.skill[SK_HEAVY_WEAPONS] >= 4 && client->sess.playerWeapon2 == WP_CARBINE ) {
                     AddWeaponToPlayer( client, WP_CARBINE, 2*(GetAmmoTableData(WP_CARBINE)->defaultStartingAmmo), GetAmmoTableData(WP_CARBINE)->defaultStartingClip, qtrue );
                  } else if( client->sess.skill[SK_LIGHT_WEAPONS] >= 4 && client->sess.playerWeapon2 == WP_THOMPSON ) {
                     client->ps.ammoclip[BG_FindClipForWeapon(BG_AkimboSidearm(WP_THOMPSON))] = GetAmmoTableData(WP_THOMPSON)->defaultStartingClip;
                     AddWeaponToPlayer( client, WP_THOMPSON, GetAmmoTableData(WP_THOMPSON)->defaultStartingAmmo, GetAmmoTableData(WP_THOMPSON)->defaultStartingClip, qfalse );
                  } else {
                     AddWeaponToPlayer( client, WP_COLT, GetAmmoTableData(WP_COLT)->defaultStartingAmmo, GetAmmoTableData(WP_COLT)->defaultStartingClip, qfalse );
                  }
                  break;

               case PC_COVERTOPS:
                  if( client->sess.skill[SK_LIGHT_WEAPONS] >= 4 && ( client->sess.playerWeapon2 == WP_AKIMBO_SILENCEDCOLT || client->sess.playerWeapon2 == WP_AKIMBO_COLT ) ) {
                     client->ps.ammoclip[BG_FindClipForWeapon(BG_AkimboSidearm(WP_AKIMBO_SILENCEDCOLT))] = GetAmmoTableData(WP_AKIMBO_SILENCEDCOLT)->defaultStartingClip;
                     AddWeaponToPlayer( client, WP_AKIMBO_SILENCEDCOLT, GetAmmoTableData(WP_AKIMBO_SILENCEDCOLT)->defaultStartingAmmo, GetAmmoTableData(WP_AKIMBO_SILENCEDCOLT)->defaultStartingClip, qfalse );
                  } else {
                     AddWeaponToPlayer( client, WP_COLT, GetAmmoTableData(WP_COLT)->defaultStartingAmmo, GetAmmoTableData(WP_COLT)->defaultStartingClip, qfalse );
                     AddWeaponToPlayer( client, WP_SILENCED_COLT, GetAmmoTableData(WP_SILENCED_COLT)->defaultStartingAmmo, GetAmmoTableData(WP_SILENCED_COLT)->defaultStartingClip, qfalse );
                     client->pmext.silencedSideArm = 1;
                  }
                  break;

               default:
                  if( client->sess.skill[SK_LIGHT_WEAPONS] >= 4 && client->sess.playerWeapon2 == WP_AKIMBO_COLT ) {
                     client->ps.ammoclip[BG_FindClipForWeapon(BG_AkimboSidearm(WP_AKIMBO_COLT))] = GetAmmoTableData(WP_AKIMBO_COLT)->defaultStartingClip;
                     AddWeaponToPlayer( client, WP_AKIMBO_COLT, GetAmmoTableData(WP_AKIMBO_COLT)->defaultStartingAmmo, GetAmmoTableData(WP_AKIMBO_COLT)->defaultStartingClip, qfalse );
                  } else {
                     AddWeaponToPlayer( client, WP_COLT, GetAmmoTableData(WP_COLT)->defaultStartingAmmo, GetAmmoTableData(WP_COLT)->defaultStartingClip, qfalse );
                  }
                  break;
            }
      }

      if( pc == PC_SOLDIER ) {
         if( client->sess.sessionTeam == TEAM_AXIS ) {
            AddWeaponToPlayer( client, WP_GRENADE_LAUNCHER,  0, 4, qfalse );
         } else {
            AddWeaponToPlayer( client, WP_GRENADE_PINEAPPLE, 0, 4, qfalse );
         }
      }
      if( pc == PC_COVERTOPS ) {
         if( client->sess.sessionTeam == TEAM_AXIS ) {
            AddWeaponToPlayer( client, WP_GRENADE_LAUNCHER,  0, 2, qfalse );
         } else {
            AddWeaponToPlayer( client, WP_GRENADE_PINEAPPLE, 0, 2, qfalse );
         }
      }
   } else {
      // Knifeonly block
      if( pc == PC_MEDIC ) {
         AddWeaponToPlayer( client, WP_MEDIC_SYRINGE, 0, 20, qfalse );
         if( client->sess.skill[SK_FIRST_AID] >= 4 )
            AddWeaponToPlayer( client, WP_MEDIC_ADRENALINE, 0, 10, qfalse );

      }
      // End Knifeonly stuff -- Ensure that medics get their basic stuff
  }else{
	    if( AddWeaponToPlayer( client, WP_FG42, GetAmmoTableData(WP_FG42)->defaultStartingAmmo, GetAmmoTableData(WP_FG42)->defaultStartingClip, qtrue ) ) {
        	AddWeaponToPlayer( client, WP_FG42SCOPE, GetAmmoTableData(WP_FG42SCOPE)->defaultStartingAmmo, GetAmmoTableData(WP_FG42SCOPE)->defaultStartingClip, qfalse );
        }
//End Rifleonly stuff...
  }
   }
}



(TNR360) #12

I have got to be missing something because nothing works :x


(dutchmeat) #13

please upload the whole g_client.c file…


(SCDS_reyalP) #14

It really sounds like you aren’t getting the right qagame, or your build isn’t re-linking the files. That IS the place that sets the players weapons. You can look at the “give all” command to see exactly what you need to give a player weapons and ammo.

In a situation like this, I’d put some debugging printfs in ClientSpawn after the SetWolfSpawnWeapons to see whats going on.


(TNR360) #15
bg_playerclass_t	bg_allies_playerclasses[NUM_PLAYER_CLASSES] =
{
	{ PC_SOLDIER, "characters/temperate/allied/soldier.char", "ui/assets/mp_gun_blue.tga",
			"ui/assets/mp_arrow_blue.tga", { WP_CARBINE, WP_MOBILE_MG42, WP_FLAMETHROWER, WP_PANZERFAUST,
					WP_MORTAR }, },
	{ PC_MEDIC, "characters/temperate/allied/medic.char", "ui/assets/mp_health_blue.tga",
			"ui/assets/mp_arrow_blue.tga", { WP_CARBINE, }, },
	{ PC_ENGINEER, "characters/temperate/allied/engineer.char", "ui/assets/mp_wrench_blue.tga",
			"ui/assets/mp_arrow_blue.tga", { WP_CARBINE, }, },
	{ PC_FIELDOPS, "characters/temperate/allied/fieldops.char", "ui/assets/mp_ammo_blue.tga",
			"ui/assets/mp_arrow_blue.tga", { WP_THOMPSON,WP_CARBINE, }, },
	{ PC_COVERTOPS, "characters/temperate/allied/cvops.char", "ui/assets/mp_spy_blue.tga",
			"ui/assets/mp_arrow_blue.tga", { WP_STEN,WP_GARAND, }, },
};
bg_playerclass_t	bg_axis_playerclasses[NUM_PLAYER_CLASSES] =
{
	{ PC_SOLDIER, "characters/temperate/axis/soldier.char", "ui/assets/mp_gun_red.tga", "ui/assets/mp_arrow_red.tga", {
				WP_KAR98, WP_MOBILE_MG42, WP_FLAMETHROWER, WP_PANZERFAUST, WP_MORTAR }, },
	{ PC_MEDIC, "characters/temperate/axis/medic.char", "ui/assets/mp_health_red.tga", "ui/assets/mp_arrow_red.tga", {
				WP_KAR98, }, },
	{ PC_ENGINEER, "characters/temperate/axis/engineer.char", "ui/assets/mp_wrench_red.tga",
			"ui/assets/mp_arrow_red.tga", { WP_KAR98, }, },
	{ PC_FIELDOPS, "characters/temperate/axis/fieldops.char", "ui/assets/mp_ammo_red.tga",
			"ui/assets/mp_arrow_red.tga", { WP_MP40,WP_KAR98, }, },
	{ PC_COVERTOPS, "characters/temperate/axis/cvops.char", "ui/assets/mp_spy_red.tga", "ui/assets/mp_arrow_red.tga", {
				WP_FG42, WP_K43, }, },
};


/* */
bg_playerclass_t *
BG_GetPlayerClassInfo ( int team, int cls )
{
	bg_playerclass_t	*teamList;
	if ( cls < PC_SOLDIER || cls >= NUM_PLAYER_CLASSES )
	{
		cls = PC_SOLDIER;
	}

	switch ( team )
	{
		default:
		case TEAM_AXIS:
			teamList = bg_axis_playerclasses;
			break;
		case TEAM_ALLIES:
			teamList = bg_allies_playerclasses;
			break;
	}

	return ( &teamList[cls] );
}


not working
now using ETpub code :?


(TNR360) #16

G_CLIENT FILE:

http://files.filefront.com/g_clientc/;7335851;/fileinfo.html


(TNR360) #17

Everyhing in the limbo menu looks fine but when I select the rifle I still spawn with a sub machine gun


(Elite) #18

#define _DEBUG_ME_                      //comment this out to turn off debug messages
#ifdef _DEBUG_ME_
   G_Printf(some message);
#endif

(TNR360) #19

so I comment those lines out?

explain???


(Elite) #20

No, add some debugging as was suggested previously. Then, if you still can’t get it, post the code with debugging in it and the console output when tested.