Team Fortress: Add fancy class help upon spawn.
TODO: Make this optional, via setinfokeys
This commit is contained in:
parent
5132b28c49
commit
4029e92713
3 changed files with 49 additions and 39 deletions
|
@ -1,23 +1,39 @@
|
|||
/*
|
||||
* Copyright (c) 2016-2019 Marco Hladik <marco@icculus.org>
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
|
||||
* IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
|
||||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
class info_player_teamspawn:CBaseTrigger
|
||||
{
|
||||
int m_iTeam;
|
||||
|
||||
void() info_player_teamspawn;
|
||||
};
|
||||
|
||||
void info_player_teamspawn::info_player_teamspawn(void)
|
||||
void
|
||||
info_player_teamspawn::info_player_teamspawn(void)
|
||||
{
|
||||
int team = 1;
|
||||
for (int i = 1; i < (tokenize(__fullspawndata) - 1); i += 2) {
|
||||
switch (argv(i)) {
|
||||
case "team_no":
|
||||
m_iTeam = stoi(argv(i+1));
|
||||
team = stoi(argv(i+1));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
switch (m_iTeam) {
|
||||
switch (team) {
|
||||
case 1:
|
||||
classname = "info_teamspawn_blue";
|
||||
break;
|
||||
|
@ -33,4 +49,4 @@ void info_player_teamspawn::info_player_teamspawn(void)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
CLASSEXPORT(i_p_t, info_player_teamspawn)
|
||||
|
|
|
@ -14,14 +14,8 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
=================
|
||||
Input_Handle
|
||||
|
||||
Handles impulse and whatnot
|
||||
=================
|
||||
*/
|
||||
void Game_Input(void)
|
||||
void
|
||||
Game_Input(void)
|
||||
{
|
||||
if (input_buttons & INPUT_BUTTON0) {
|
||||
Weapons_Primary();
|
||||
|
@ -45,30 +39,6 @@ void Game_Input(void)
|
|||
|
||||
if (cvar("sv_cheats") == 1) {
|
||||
player pl = (player)self;
|
||||
if (self.impulse == 101) {
|
||||
pl.health = 100;
|
||||
pl.armor = 100;
|
||||
Weapons_AddItem(pl, WEAPON_CROWBAR);
|
||||
Weapons_AddItem(pl, WEAPON_MEDKIT);
|
||||
Weapons_AddItem(pl, WEAPON_KNIFE);
|
||||
Weapons_AddItem(pl, WEAPON_WRENCH);
|
||||
Weapons_AddItem(pl, WEAPON_UMBRELLA);
|
||||
Weapons_AddItem(pl, WEAPON_SBS);
|
||||
Weapons_AddItem(pl, WEAPON_SNIPER);
|
||||
Weapons_AddItem(pl, WEAPON_TRANQUIL);
|
||||
Weapons_AddItem(pl, WEAPON_RAILGUN);
|
||||
Weapons_AddItem(pl, WEAPON_AUTORIFLE);
|
||||
Weapons_AddItem(pl, WEAPON_DBS);
|
||||
Weapons_AddItem(pl, WEAPON_NAILGUN);
|
||||
Weapons_AddItem(pl, WEAPON_GLAUNCHER);
|
||||
Weapons_AddItem(pl, WEAPON_SUPERNAIL);
|
||||
Weapons_AddItem(pl, WEAPON_FLAMER);
|
||||
Weapons_AddItem(pl, WEAPON_RPG);
|
||||
Weapons_AddItem(pl, WEAPON_PIPEBOMB);
|
||||
Weapons_AddItem(pl, WEAPON_ASSCAN);
|
||||
Weapons_AddItem(pl, WEAPON_INCENDIARY);
|
||||
}
|
||||
|
||||
if (self.impulse == 102) {
|
||||
// Respawn all the entities
|
||||
for (entity a = world; (a = findfloat(a, gflags, GF_CANRESPAWN));) {
|
||||
|
|
|
@ -1,3 +1,18 @@
|
|||
/*
|
||||
* Copyright (c) 2016-2019 Marco Hladik <marco@icculus.org>
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
|
||||
* IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
|
||||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
enum {
|
||||
CLASS_SCOUT = 1,
|
||||
|
@ -98,55 +113,64 @@ CSEv_TeamJoin_f(float f)
|
|||
Weapons_AddItem(pl, WEAPON_CROWBAR);
|
||||
Weapons_AddItem(pl, WEAPON_SBS);
|
||||
Weapons_AddItem(pl, WEAPON_NAILGUN);
|
||||
env_message_single(pl, "HELP_SCOUT");
|
||||
break;
|
||||
case CLASS_SNIPER:
|
||||
Weapons_AddItem(pl, WEAPON_CROWBAR);
|
||||
Weapons_AddItem(pl, WEAPON_SNIPER);
|
||||
Weapons_AddItem(pl, WEAPON_AUTORIFLE);
|
||||
Weapons_AddItem(pl, WEAPON_NAILGUN);
|
||||
env_message_single(pl, "HELP_SNIPER");
|
||||
break;
|
||||
case CLASS_SOLDIER:
|
||||
Weapons_AddItem(pl, WEAPON_CROWBAR);
|
||||
Weapons_AddItem(pl, WEAPON_SBS);
|
||||
Weapons_AddItem(pl, WEAPON_DBS);
|
||||
Weapons_AddItem(pl, WEAPON_RPG);
|
||||
env_message_single(pl, "HELP_SOLDIER");
|
||||
break;
|
||||
case CLASS_DEMO:
|
||||
Weapons_AddItem(pl, WEAPON_CROWBAR);
|
||||
Weapons_AddItem(pl, WEAPON_SBS);
|
||||
Weapons_AddItem(pl, WEAPON_GLAUNCHER);
|
||||
Weapons_AddItem(pl, WEAPON_PIPEBOMB);
|
||||
env_message_single(pl, "HELP_DEMOMAN");
|
||||
break;
|
||||
case CLASS_MEDIC:
|
||||
Weapons_AddItem(pl, WEAPON_MEDKIT);
|
||||
Weapons_AddItem(pl, WEAPON_SBS);
|
||||
Weapons_AddItem(pl, WEAPON_DBS);
|
||||
Weapons_AddItem(pl, WEAPON_SUPERNAIL);
|
||||
env_message_single(pl, "HELP_MEDIC");
|
||||
break;
|
||||
case CLASS_HVYWEAPON:
|
||||
Weapons_AddItem(pl, WEAPON_CROWBAR);
|
||||
Weapons_AddItem(pl, WEAPON_SBS);
|
||||
Weapons_AddItem(pl, WEAPON_DBS);
|
||||
Weapons_AddItem(pl, WEAPON_ASSCAN);
|
||||
env_message_single(pl, "HELP_HWGUY");
|
||||
break;
|
||||
case CLASS_PYRO:
|
||||
Weapons_AddItem(pl, WEAPON_CROWBAR);
|
||||
Weapons_AddItem(pl, WEAPON_SBS);
|
||||
Weapons_AddItem(pl, WEAPON_FLAMER);
|
||||
Weapons_AddItem(pl, WEAPON_INCENDIARY);
|
||||
env_message_single(pl, "HELP_PYRO");
|
||||
break;
|
||||
case CLASS_SPY:
|
||||
Weapons_AddItem(pl, WEAPON_KNIFE);
|
||||
Weapons_AddItem(pl, WEAPON_TRANQUIL);
|
||||
Weapons_AddItem(pl, WEAPON_DBS);
|
||||
Weapons_AddItem(pl, WEAPON_NAILGUN);
|
||||
env_message_single(pl, "HELP_SPY");
|
||||
break;
|
||||
case CLASS_ENGINEER:
|
||||
Weapons_AddItem(pl, WEAPON_WRENCH);
|
||||
Weapons_AddItem(pl, WEAPON_RAILGUN);
|
||||
Weapons_AddItem(pl, WEAPON_DBS);
|
||||
env_message_single(pl, "HELP_ENGINEER");
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
pl.g_items |= ITEM_SUIT;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue