class edef changes

This commit is contained in:
Marco Cawthorne 2024-09-09 22:02:59 -07:00
parent 73b6749546
commit bc5e8aaae1
7 changed files with 176 additions and 239 deletions

View file

@ -207,7 +207,7 @@ info_tfgoal::Touch(entity eToucher)
pl.GiveAmmo(detpackType, m_iDetpack);
/* clamp */
pl.health = bound(0, pl.health, pl.m_iMaxHealth);
pl.health = bound(0, pl.health, pl.max_health);
pl.armor = bound(0, pl.armor, pl.m_iMaxArmor);
pl.frags += frags;

View file

@ -136,10 +136,6 @@ CSEv_ClassJoin_f(float f)
return;
}
if (self.classname != "player") {
spawnfunc_TFPlayer();
}
/* invalid */
if (pl.classtype == f)
return;
@ -157,6 +153,5 @@ CSEv_ClassJoin_f(float f)
/* turn the player into the class of his choice */
pl.MakeClass(f);
pl.SpawnIntoGame();
}
}

View file

@ -52,26 +52,3 @@ string g_teammodels_hd[] = {
"models/player/spy/spy2.mdl",
"models/player/engineer/engineer2.mdl"
};
/* are we using a later build of TF? */
bool
TFC_IsLaterBuild(void)
{
if (whichpack(g_teammodels_hd[1]))
return true;
return false;
}
/* stuff */
string
TFC_GetModelForClasstype(classtype_e type)
{
if (TFC_IsLaterBuild() == true)
if (autocvar(tfc_newmodels, 0) == 1)
return g_teammodels[type]; /* on later versions, the old names are the HD ones */
else
return g_teammodels_hd[type];
return g_teammodels[type];
}

View file

@ -5,12 +5,12 @@ weapons.h
flags.h
events.h
../../../valve/src/shared/skeleton.h
../../../valve/src/shared/player.qc
player.qc
../../../valve/src/shared/animations.h
animations_tfc.h
../../../valve/src/shared/animations.qc
../../../valve/src/shared/pmove.qc
pmove.qc
../../../valve/src/shared/fx_blood.qc

View file

@ -85,7 +85,6 @@ class TFPlayer:HLPlayer
void
TFPlayer::TFPlayer(void)
{
classname = "player";
}
void
@ -448,200 +447,58 @@ TFPlayer::SpawnIntoGame(void)
}
void
TFPlayer::MakeClass(classtype_e class)
TFPlayer::MakeClass(classtype_e classType)
{
int atShells = ammoNumForName("ammo_shells");
int atNails = ammoNumForName("ammo_nails");
int atCells = ammoNumForName("ammo_cells");
int atRockets = ammoNumForName("ammo_rockets");
MakePlayer();
int oldTeam = team;
/* select our class model */
model = TFC_GetModelForClasstype(classtype);
setmodel(this, model);
setsize(this, VEC_HULL_MIN, VEC_HULL_MAX);
velocity = [0,0,0];
gravity = __NULL__;
armor = activeweapon = g_items = 0;
iBleeds = TRUE;
forceinfokey(this, "*spec", "0");
forceinfokey(this, "*team", ftos(team));
switch (classtype) {
switch (classType) {
case CLASS_SCOUT:
GiveItem("tf_weapon_axe");
GiveItem("tf_weapon_shotgun");
GiveItem("tf_weapon_ng");
GiveAmmo(atShells, 17i);
GiveAmmo(atNails, 100i);
m_iMaxHealth = 75;
m_iMaxArmor = 50;
health = m_iMaxHealth;
armor = 25;
m_iMaxShells = 50;
m_iMaxNails = 200;
m_iMaxCells = 100;
m_iMaxRockets = 25;
EntityDef_SpawnClassname("player_scout");
env_message_single(this, "HELP_SCOUT");
break;
case CLASS_SNIPER:
GiveItem("tf_weapon_axe");
GiveItem("tf_weapon_sniperrifle");
GiveItem("tf_weapon_autorifle");
GiveItem("tf_weapon_ng");
GiveAmmo(atShells, 60i); /* sniper rifles use shells */
GiveAmmo(atNails, 50i);
m_iMaxHealth = 90;
m_iMaxArmor = 50;
health = m_iMaxHealth;
armor = 0;
m_iMaxShells = 75;
m_iMaxNails = 100;
m_iMaxCells = 50;
m_iMaxRockets = 25;
EntityDef_SpawnClassname("player_sniper");
env_message_single(this, "HELP_SNIPER");
break;
case CLASS_SOLDIER:
GiveItem("tf_weapon_axe");
GiveItem("tf_weapon_supershotgun");
GiveItem("tf_weapon_shotgun");
GiveItem("tf_weapon_rpg");
GiveAmmo(atShells, 26i);
GiveAmmo(atRockets, 6i);
m_iMaxHealth = 100;
m_iMaxArmor = 200;
health = m_iMaxHealth;
armor = 100;
m_iMaxShells = 100;
m_iMaxNails = 100;
m_iMaxCells = 50;
m_iMaxRockets = 50;
EntityDef_SpawnClassname("player_soldier");
env_message_single(this, "HELP_SOLDIER");
break;
case CLASS_DEMO:
GiveItem("tf_weapon_axe");
GiveItem("tf_weapon_shotgun");
GiveItem("tf_weapon_gl");
GiveItem("tf_weapon_pl");
GiveAmmo(atShells, 22i);
GiveAmmo(atRockets, 14i);
m_iMaxHealth = 90;
m_iMaxArmor = 100;
health = m_iMaxHealth;
armor = 50;
m_iMaxShells = 75;
m_iMaxNails = 50;
m_iMaxCells = 50;
m_iMaxRockets = 50;
EntityDef_SpawnClassname("player_demo");
env_message_single(this, "HELP_DEMOMAN");
break;
case CLASS_MEDIC:
GiveItem("tf_weapon_medikit");
GiveItem("tf_weapon_supershotgun");
GiveItem("tf_weapon_shotgun");
GiveItem("tf_weapon_superng");
GiveAmmo(atShells, 26i);
GiveAmmo(atNails, 50i);
m_iMaxHealth = 90;
m_iMaxArmor = 100;
health = m_iMaxHealth;
armor = 50;
m_iMaxShells = 75;
m_iMaxNails = 150;
m_iMaxCells = 50;
m_iMaxRockets = 25;
EntityDef_SpawnClassname("player_medic");
env_message_single(this, "HELP_MEDIC");
break;
case CLASS_HVYWEAPON:
GiveItem("tf_weapon_axe");
GiveItem("tf_weapon_supershotgun");
GiveItem("tf_weapon_shotgun");
GiveItem("tf_weapon_ac");
GiveAmmo(atShells, 176i); /* all of the heavy's weapons use shells */
m_iMaxHealth = 100;
m_iMaxArmor = 300;
health = m_iMaxHealth;
armor = 150;
m_iMaxShells = 200;
m_iMaxNails = 200;
m_iMaxCells = 50;
m_iMaxRockets = 25;
EntityDef_SpawnClassname("player_heavy");
env_message_single(this, "HELP_HWGUY");
break;
case CLASS_PYRO:
GiveItem("tf_weapon_axe");
GiveItem("tf_weapon_shotgun");
GiveItem("tf_weapon_flamethrower");
GiveItem("tf_weapon_ic");
GiveAmmo(atShells, 12i);
GiveAmmo(atCells, 120i);
GiveAmmo(atRockets, 5i);
m_iMaxHealth = 100;
m_iMaxArmor = 150;
health = m_iMaxHealth;
armor = 50;
m_iMaxShells = 40;
m_iMaxNails = 50;
m_iMaxCells = 200;
m_iMaxRockets = 60;
EntityDef_SpawnClassname("player_pyro");
env_message_single(this, "HELP_PYRO");
break;
case CLASS_SPY:
GiveItem("tf_weapon_knife");
GiveItem("tf_weapon_tranq");
GiveItem("tf_weapon_supershotgun");
GiveItem("tf_weapon_ng");
GiveAmmo(atShells, 24i); /* tranquil and dbs use shells */
GiveAmmo(atNails, 50i);
m_iMaxHealth = 90;
m_iMaxArmor = 100;
health = m_iMaxHealth;
armor = 25;
m_iMaxShells = 40;
m_iMaxNails = 50;
m_iMaxCells = 30;
m_iMaxRockets = 15;
EntityDef_SpawnClassname("player_spy");
env_message_single(this, "HELP_SPY");
break;
case CLASS_ENGINEER:
GiveItem("tf_weapon_spanner");
GiveItem("tf_weapon_railgun");
GiveItem("tf_weapon_supershotgun");
GiveAmmo(atCells, 100i);
GiveAmmo(atNails, 25i);
GiveAmmo(atShells, 4i);
m_iMaxHealth = 80;
m_iMaxArmor = 50;
health = m_iMaxHealth;
armor = 25;
m_iMaxShells = 50;
m_iMaxNails = 50;
m_iMaxCells = 200;
m_iMaxRockets = 30;
EntityDef_SpawnClassname("player_engineer");
env_message_single(this, "HELP_ENGINEER");
break;
}
MakePlayer();
team = oldTeam;
forceinfokey(this, "*team", ftos(team));
GiveItem("item_suit");
SpawnIntoGame();
}
/*

View file

@ -2,3 +2,157 @@ entityDef player
{
"spawnclass" "TFPlayer"
}
entityDef player_scout
{
"inherit" "player"
"model" "models/player/scout/scout.mdl"
"health" "75"
"armor" "25"
"maxarmor" "50"
"ammo_shells" "17"
"ammo_nails" "100"
"max_ammo_shells" "50"
"max_ammo_nails" "200"
"max_ammo_cells" "100"
"max_ammo_rockets" "25"
"weapon" "tf_weapon_axe,tf_weapon_shotgun,tf_weapon_ng"
"current_weapon" "1"
}
entityDef player_sniper
{
"inherit" "player"
"model" "models/player/sniper/sniper.mdl"
"health" "90"
"armor" "0"
"maxarmor" "50"
"ammo_shells" "60"
"ammo_nails" "50"
"max_ammo_shells" "75"
"max_ammo_nails" "100"
"max_ammo_cells" "50"
"max_ammo_rockets" "25"
"weapon" "tf_weapon_axe,tf_weapon_sniperrifle,tf_weapon_autorifle,tf_weapon_ng"
"current_weapon" "1"
}
entityDef player_soldier
{
"inherit" "player"
"model" "models/player/soldier/soldier.mdl"
"health" "100"
"armor" "100"
"maxarmor" "200"
"ammo_shells" "26"
"ammo_rockets" "6"
"max_ammo_shells" "100"
"max_ammo_nails" "100"
"max_ammo_cells" "50"
"max_ammo_rockets" "50"
"weapon" "tf_weapon_axe,tf_weapon_supershotgun,tf_weapon_shotgun,tf_weapon_rpg"
"current_weapon" "1"
}
entityDef player_demo
{
"inherit" "player"
"model" "models/player/demo/demo.mdl"
"health" "90"
"armor" "50"
"maxarmor" "100"
"ammo_shells" "22"
"ammo_rockets" "14"
"max_ammo_shells" "75"
"max_ammo_nails" "50"
"max_ammo_cells" "50"
"max_ammo_rockets" "50"
"weapon" "tf_weapon_axe,tf_weapon_shotgun,tf_weapon_gl,tf_weapon_pl"
"current_weapon" "1"
}
entityDef player_medic
{
"inherit" "player"
"model" "models/player/medic/medic.mdl"
"health" "90"
"armor" "50"
"maxarmor" "100"
"ammo_shells" "26"
"ammo_nails" "50"
"max_ammo_shells" "75"
"max_ammo_nails" "150"
"max_ammo_cells" "50"
"max_ammo_rockets" "25"
"weapon" "tf_weapon_medikit,tf_weapon_supershotgun,tf_weapon_shotgun,tf_weapon_superng"
"current_weapon" "1"
}
entityDef player_heavy
{
"inherit" "player"
"model" "models/player/hvyweapon/hvyweapon.mdl"
"health" "100"
"armor" "150"
"maxarmor" "300"
"ammo_shells" "176"
"max_ammo_shells" "200"
"max_ammo_nails" "200"
"max_ammo_cells" "50"
"max_ammo_rockets" "25"
"weapon" "tf_weapon_axe,tf_weapon_supershotgun,tf_weapon_shotgun,tf_weapon_ac"
"current_weapon" "1"
}
entityDef player_pyro
{
"inherit" "player"
"model" "models/player/pyro/pyro.mdl"
"health" "100"
"armor" "50"
"maxarmor" "150"
"ammo_shells" "12"
"ammo_cells" "120"
"ammo_rockets" "5"
"max_ammo_shells" "40"
"max_ammo_nails" "50"
"max_ammo_cells" "200"
"max_ammo_rockets" "60"
"weapon" "tf_weapon_axe,tf_weapon_shotgun,tf_weapon_flamethrower,tf_weapon_ic"
"current_weapon" "1"
}
entityDef player_spy
{
"inherit" "player"
"model" "models/player/spy/spy.mdl"
"health" "90"
"armor" "25"
"maxarmor" "100"
"ammo_shells" "24"
"ammo_nails" "50"
"max_ammo_shells" "40"
"max_ammo_nails" "50"
"max_ammo_cells" "30"
"max_ammo_rockets" "15"
"weapon" "tf_weapon_knife,tf_weapon_tranq,tf_weapon_supershotgun,tf_weapon_ng"
"current_weapon" "1"
}
entityDef player_engineer
{
"inherit" "player"
"model" "models/player/engineer/engineer.mdl"
"health" "80"
"armor" "25"
"maxarmor" "50"
"ammo_shells" "4"
"ammo_nails" "25"
"ammo_cells" "100"
"max_ammo_shells" "50"
"max_ammo_nails" "50"
"max_ammo_cells" "200"
"max_ammo_rockets" "30"
"weapon" "tf_weapon_spanner,tf_weapon_railgun,tf_weapon_supershotgun"
"current_weapon" "1"
}

54
zpak001.pk3dir/default.cfg Executable file → Normal file
View file

@ -1,52 +1,6 @@
// Generic Binds
bind "ESC" "togglemenu"
bind "w" "+forward"
bind "s" "+back"
bind "a" "+moveleft"
bind "d" "+moveright"
bind "SPACE" "+jump"
bind "CTRL" "+duck"
bind "SHIFT" "+speed"
bind "0" "slot10"
bind "1" "slot1"
bind "2" "slot2"
bind "3" "slot3"
bind "4" "slot4"
bind "5" "slot5"
bind "6" "slot6"
bind "7" "slot7"
bind "8" "slot8"
bind "9" "slot9"
bind "UPARROW" "+forward"
bind "DOWNARROW" "+back"
bind "LEFTARROW" "+left"
bind "RIGHTARROW" "+right"
bind "MOUSE1" "+attack"
bind "MOUSE2" "+attack2"
bind "MWHEELDOWN" "invnext"
bind "MWHEELUP" "invprev"
bind "r" "+reload"
bind "e" "+use"
bind "TAB" "+showscores"
bind "y" "messagemode"
bind "u" "messagemode2"
bind "t" "impulse 201"
bind "f" "impulse 100"
bind "f1" "vote yes"
bind "f2" "vote no"
// Game Variables
exec default_controls.cfg
exec cvar_defaults.cfg
seta "hostname" "FreeTFC Server"
seta "maxplayers" "8"
// disable some nuclide niceties
seta v_muzzledlight 0
// config compat
alias mp_timelimit timelimit
alias mp_fraglimit fraglimit
// video settings
seta gl_overbright 0
seta gl_ldr 1
seta r_lightmap_format rgb8