The following email says it all:
"jjaf.de" <kingpin@kingpin.jjaf.de>
<trig_71@btinternet.com>
Top class weapon sounds not conforming
Mon, 13 Aug 2001 12:26:07 +0200Hi,
i tried your file http://www.btinternet.com/~trig_71/Downloads/pak6.pak (Top class weapon sounds) but found out that it crashes the system sometimes (but too often too be ignored).A look into it revealed that not all files are the required format "PCM; 22.050 Hz; 16 Bit; Mono". I will try to fix that and give you a new version of it.
Kun afablaj salutoj
http://jjaf.de/kingpin/
Updated versions are welcomed to come back.
Install by putting one of these in your …\main\
-directory naming it Pak1.pak
or a higher number up to 9 if you happen to already have such a file.
Did you notice that players make different pain-sounds, depending on their remaining health? Probably not but original kingpin code includes a function that selects pain-sounds depending on health.
By replacing these files with others one can increase the contrast of the ough!
and ouch!
.
The following code-excerpts from the files voice_punk.c
and voice_bitch.c
tells us which sound-files to change, it's in the 4th field of the array.
The sound format of the replaced files should be the same to avoid trouble. In original this is: Microsoft Windows .wav; PCM 22.050 Hz; 16 bit; mono
. The volume should be looked at too. In original the volume is at maximum so if you are creating a replacement normally you would increase the volume to the max. You can use GoldWave for this, it has a built-in function for this. If you consider using voice-anouncement like 10! 7! 5! 2! Killed him! Flamedeath!
resp. 10! 7! 5! 2! Killed her! Flamedeath!
as a replacement have a look at links about voice.
void bitch_pain (edict_t *self, edict_t *other, float kick, int damage, int mdx_part, int mdx_subobject)
if (skill->value >= 3)
return; // no pain anims in nightmare
if (self->health < 25)
Voice_Specific (self, other, female_specific, 4);
else if (self->health < 50)
Voice_Specific (self, other, female_specific, 3);
else if (self->health < 75)
Voice_Specific (self, other, female_specific, 2);
else
Voice_Specific (self, other, female_specific, 1);
// Ridah, randomly don't play an animation, since it' leaves them WAY open to be killed
if (skill->value > 0 && rand()%2)
return;
// JOSEPH 29-MAY-99
voice_table_t female_specific[] =
{
// pain
{NULL, "", "", "actors/female/pain1.wav", 0, {0,0,0,0,0},0,0, TT_NONE},
{NULL, "", "", "actors/female/pain2.wav", 0, {0,0,0,0,0},0,0, TT_NONE},
{NULL, "", "", "actors/female/pain3.wav", 0, {0,0,0,0,0},0,0, TT_NONE},
{NULL, "", "", "actors/female/pain4.wav", 0, {0,0,0,0,0},0,0, TT_NONE},
// death
{NULL, "", "", "actors/female/death1.wav", 0, {0,0,0,0,0},0,0, TT_NONE},
{NULL, "", "", "actors/female/death2.wav", 0, {0,0,0,0,0},0,0, TT_NONE},
// fire death
{NULL, "", "", "actors/female/f_flamedeath1.wav", 0, {0,0,0,0,0},0,0, TT_NONE},
{NULL, "", "", "actors/female/f_flamedeath2.wav", 0, {0,0,0,0,0},0,0, TT_NONE},
{NULL, "", "", "actors/female/f_flamedeath2.wav", 0, {0,0,0,0,0},0,0, TT_NONE},
};
// END JOSEPH
Analogous theres the code for male players:
// JOSEPH 29-MAY-99
voice_table_t male_specific[] =
{
// pain
{NULL, "", "", "actors/male/pain100_1.wav", 0, {0,0,0,0,0},0,0, TT_NEGATIVE},
{NULL, "", "", "actors/male/pain100_2.wav", 0, {0,0,0,0,0},0,0, TT_NEGATIVE},
{NULL, "", "", "actors/male/pain75_1.wav", 0, {0,0,0,0,0},0,0, TT_NEGATIVE},
{NULL, "", "", "actors/male/pain75_2.wav", 0, {0,0,0,0,0},0,0, TT_NEGATIVE},
{NULL, "", "", "actors/male/pain50_1.wav", 0, {0,0,0,0,0},0,0, TT_NEGATIVE},
{NULL, "", "", "actors/male/pain50_2.wav", 0, {0,0,0,0,0},0,0, TT_NEGATIVE},
{NULL, "", "", "actors/male/pain25_1.wav", 0, {0,0,0,0,0},0,0, TT_NEGATIVE},
{NULL, "", "", "actors/male/pain25_2.wav", 0, {0,0,0,0,0},0,0, TT_NEGATIVE},
// death
{NULL, "", "", "actors/male/death1.wav", 0, {0,0,0,0,0},0,0, TT_NEGATIVE},
{NULL, "", "", "actors/male/death2.wav", 0, {0,0,0,0,0},0,0, TT_NEGATIVE},
// fire death
{NULL, "", "", "actors/male/flamedeath1.wav", 0, {0,0,0,0,0},0,0, TT_NONE},
{NULL, "", "", "actors/male/flamedeath2.wav", 0, {0,0,0,0,0},0,0, TT_NONE},
{NULL, "", "", "actors/male/flamedeath3.wav", 0, {0,0,0,0,0},0,0, TT_NONE},
};
// END JOSEPH
Updated versions are welcomed to come back.
Install by putting one of these in your …\main\
-directory naming it Pak1.pak
or a higher number up to 9 if you happen to already have such a file.
The following code-excerpt from the function void ClientUserinfoChanged (edict_t *ent, char *userinfo)
tells us what skins to change. Team 1
refers to Dragons
, Team 2
to Nikki's Boyz
.
static char *valid_skinsets[][2][2][2] = // ordering here is {"LEGS", "BODY"} { { // Bitch {{"056","057"}, {"056","058"}}, // Team 1 {{"033","032"}, {"031","031"}} // Team 2 }, { // Thug {{"057","056"}, {"058","091"}}, {{"031","031"}, {"032","035"}} }, { // Runt {{"058","056"}, {"057","056"}}, {{"031","030"}, {"032","031"}} } };
Updated versions are welcomed to come back.
Install by putting one of these in your …\main\
-directory naming it Pak1.pak
or a higher number up to 9 if you happen to already have such a file.