Exemplo n.º 1
0
// Josh: Won't gib if already in limbo, same as shrub
void G_CensorPenalize(gentity_t *ent)
{
    if (!ent->client)
    {
        return;
    }
    // forty - #127 - Burn a potty mouth
    if (g_censorPenalty.integer & CNSRPNLTY_BURN)
    {
        if (
            ent->client->sess.sessionTeam != TEAM_SPECTATOR &&
            !(ent->client->ps.pm_flags & PMF_LIMBO) &&
            ent->health >= 0 &&
            level.match_pause == PAUSE_NONE
            )
        {
            G_BurnMeGood(ent, ent, NULL);
            AP(va("chat \"^7%s ^7burnt his fingers.\" -1", ent->client->pers.netname));
        }
    }
    // forty - #127 - censor xp penalty
    if (g_censorPenalty.integer & CNSRPNLTY_XP)
    {
        if (ent->client->sess.sessionTeam != TEAM_SPECTATOR)
        {
            CPx(ent - g_entities, va("chat \"^1Warning^7: Watch you mouth!^* You have Lost %d XP.\"", g_censorXP.integer));
            G_LoseSkillPoints(ent, BG_ClassSkillForClass(ent->client->sess.playerType), g_censorXP.integer);
        }
    }

    if (g_censorPenalty.integer & CNSRPNLTY_TMPMUTE)
    {
        ent->client->sess.auto_unmute_time = (level.time + 1000 * (g_censorMuteTime.integer));
        CPx(ent - g_entities, va("print \"^5You've been auto-muted for %d seconds for language.\n\"", g_censorMuteTime.integer));
        AP(va("chat \"%s^7 has been auto-muted for %d seconds for language.\" -1",
              ent->client->pers.netname, g_censorMuteTime.integer));
    }
    if (g_censorPenalty.integer & CNSRPNLTY_KILL)
    {
        Force_Suicide(ent);
        return;
    }
    if (g_censorPenalty.integer & CNSRPNLTY_NOGIB)
    {
        // KILL, don't GIB
        ent->flags                                  &= ~FL_GODMODE;
        ent->client->ps.stats[STAT_HEALTH]           = ent->health = 0;
        ent->client->ps.persistant[PERS_HWEAPON_USE] = 0; // TTimo - if at MG42
        player_die(ent, ent, ent, 135, MOD_UNKNOWN);
    }
}
Exemplo n.º 2
0
/**
 * @brief Loose skill for evil tkers :E
 * @param[in] tker
 * @param[in] mod
 * @param hr - unused
 * @param splash - unused
 */
void G_LoseKillSkillPoints(gentity_t *tker, meansOfDeath_t mod, hitRegion_t hr, qboolean splash)
{
	if (!tker->client)
	{
		return;
	}

	if (GetMODTableData(mod)->skillType < SK_NUM_SKILLS)
	{
		G_LoseSkillPoints(tker, GetMODTableData(mod)->skillType, GetMODTableData(mod)->defaultKillPoints);
	}

	// prepare scoreboard
	CalculateRanks();
}
Exemplo n.º 3
0
void G_LoseKillSkillPoints(gentity_t *tker, meansOfDeath_t mod, hitRegion_t hr, qboolean splash)
{
	// for evil tkers :E

	if (!tker->client)
	{
		return;
	}

	switch (mod)
	{
			// light weapons
		case MOD_KNIFE:
		case MOD_LUGER:
		case MOD_COLT:
		case MOD_MP40:
		case MOD_THOMPSON:
		case MOD_STEN:
		case MOD_GARAND:
		case MOD_SILENCER:
		case MOD_FG42:

//      case MOD_FG42SCOPE:
		case MOD_CARBINE:
		case MOD_KAR98:
		case MOD_SILENCED_COLT:
		case MOD_K43:

//bani - akimbo weapons lose score now as well
		case MOD_AKIMBO_COLT:
		case MOD_AKIMBO_LUGER:
		case MOD_AKIMBO_SILENCEDCOLT:
		case MOD_AKIMBO_SILENCEDLUGER:
		case MOD_GRENADE_LAUNCHER:
		case MOD_GRENADE_PINEAPPLE:

//bani - airstrike marker kills
		case MOD_SMOKEGRENADE:
			G_LoseSkillPoints(tker, SK_LIGHT_WEAPONS, 3.f);
//          G_DebugAddSkillPoints( attacker, SK_LIGHT_WEAPONS, 2.f, "kill" );
			break;

			// scoped weapons
		case MOD_GARAND_SCOPE:
		case MOD_K43_SCOPE:
		case MOD_FG42SCOPE:
		case MOD_SATCHEL:
			G_LoseSkillPoints(tker, SK_MILITARY_INTELLIGENCE_AND_SCOPED_WEAPONS, 3.f);
//          G_DebugAddSkillPoints( attacker, SK_LIGHT_WEAPONS, 2.f, "legshot kill" );
			break;

		case MOD_MOBILE_MG42:
		case MOD_MACHINEGUN:
		case MOD_BROWNING:
		case MOD_MG42:
		case MOD_PANZERFAUST:
		case MOD_FLAMETHROWER:
		case MOD_MORTAR:
			G_LoseSkillPoints(tker, SK_HEAVY_WEAPONS, 3.f);
//          G_DebugAddSkillPoints( attacker, SK_HEAVY_WEAPONS, 3.f, "emplaced mg42 kill" );
			break;

		case MOD_DYNAMITE:
		case MOD_LANDMINE:
		case MOD_GPG40:
		case MOD_M7:
			G_LoseSkillPoints(tker, SK_EXPLOSIVES_AND_CONSTRUCTION, 3.f);
//          G_DebugAddSkillPoints( attacker, SK_EXPLOSIVES_AND_CONSTRUCTION, 4.f, "dynamite or landmine kill" );
			break;

		case MOD_ARTY:
		case MOD_AIRSTRIKE:
			G_LoseSkillPoints(tker, SK_SIGNALS, 3.f);
//          G_DebugAddSkillPoints( attacker, SK_SIGNALS, 4.f, "artillery kill" );
			break;

			// no skills for anything else
		default:
			break;
	}
}