Footsteps are more unified across BSP versions, can easily be extended
and cover more types of materials even on HL BSP maps. Improved documentation for QUAKED comments. Seperated skill file for valve into its own little thing.
This commit is contained in:
parent
7c22d66c17
commit
a7fc08f857
31 changed files with 980 additions and 386 deletions
|
@ -168,45 +168,41 @@ void initents(void)
|
|||
precache_sound("debris/concrete2.wav");
|
||||
precache_sound("debris/concrete3.wav");
|
||||
|
||||
precache_sound("player/pl_metal1.wav");
|
||||
precache_sound("player/pl_metal2.wav");
|
||||
precache_sound("player/pl_metal3.wav");
|
||||
precache_sound("player/pl_metal4.wav");
|
||||
Sound_Precache("step_default.left");
|
||||
Sound_Precache("step_default.right");
|
||||
Sound_Precache("step_alien.left");
|
||||
Sound_Precache("step_alien.right");
|
||||
Sound_Precache("step_bloodyflesh.left");
|
||||
Sound_Precache("step_bloodyflesh.right");
|
||||
Sound_Precache("step_computer.left");
|
||||
Sound_Precache("step_computer.right");
|
||||
Sound_Precache("step_concrete.left");
|
||||
Sound_Precache("step_concrete.right");
|
||||
Sound_Precache("step_dirt.left");
|
||||
Sound_Precache("step_dirt.right");
|
||||
Sound_Precache("step_flesh.left");
|
||||
Sound_Precache("step_flesh.right");
|
||||
Sound_Precache("step_foliage.left");
|
||||
Sound_Precache("step_foliage.right");
|
||||
Sound_Precache("step_glass.left");
|
||||
Sound_Precache("step_glass.right");
|
||||
Sound_Precache("step_grate.left");
|
||||
Sound_Precache("step_grate.right");
|
||||
Sound_Precache("step_metal.left");
|
||||
Sound_Precache("step_metal.right");
|
||||
Sound_Precache("step_slosh.left");
|
||||
Sound_Precache("step_slosh.right");
|
||||
Sound_Precache("step_snow.left");
|
||||
Sound_Precache("step_snow.right");
|
||||
Sound_Precache("step_tile.left");
|
||||
Sound_Precache("step_tile.right");
|
||||
Sound_Precache("step_vent.left");
|
||||
Sound_Precache("step_vent.right");
|
||||
Sound_Precache("step_wood.left");
|
||||
Sound_Precache("step_wood.right");
|
||||
Sound_Precache("step_ladder.left");
|
||||
Sound_Precache("step_ladder.right");
|
||||
|
||||
precache_sound("player/pl_duct1.wav");
|
||||
precache_sound("player/pl_duct2.wav");
|
||||
precache_sound("player/pl_duct3.wav");
|
||||
precache_sound("player/pl_duct4.wav");
|
||||
|
||||
precache_sound("player/pl_dirt1.wav");
|
||||
precache_sound("player/pl_dirt2.wav");
|
||||
precache_sound("player/pl_dirt3.wav");
|
||||
precache_sound("player/pl_dirt4.wav");
|
||||
|
||||
precache_sound("player/pl_slosh1.wav");
|
||||
precache_sound("player/pl_slosh2.wav");
|
||||
precache_sound("player/pl_slosh3.wav");
|
||||
precache_sound("player/pl_slosh4.wav");
|
||||
|
||||
precache_sound("player/pl_tile1.wav");
|
||||
precache_sound("player/pl_tile2.wav");
|
||||
precache_sound("player/pl_tile3.wav");
|
||||
precache_sound("player/pl_tile4.wav");
|
||||
|
||||
precache_sound("player/pl_grate1.wav");
|
||||
precache_sound("player/pl_grate2.wav");
|
||||
precache_sound("player/pl_grate3.wav");
|
||||
precache_sound("player/pl_grate4.wav");
|
||||
|
||||
precache_sound("player/pl_ladder1.wav");
|
||||
precache_sound("player/pl_ladder2.wav");
|
||||
precache_sound("player/pl_ladder3.wav");
|
||||
precache_sound("player/pl_ladder4.wav");
|
||||
|
||||
precache_sound("player/pl_step1.wav");
|
||||
precache_sound("player/pl_step2.wav");
|
||||
precache_sound("player/pl_step3.wav");
|
||||
precache_sound("player/pl_step4.wav");
|
||||
precache_sound("player/pl_fallpain3.wav");
|
||||
precache_sound("items/9mmclip1.wav");
|
||||
precache_sound("items/gunpickup2.wav");
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2016-2019 Marco Hladik <marco@icculus.org>
|
||||
* Copyright (c) 2016-2020 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
|
||||
|
@ -14,8 +14,123 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* TODO: Move this into the player class. Monsters will call steps via
|
||||
* modelevents. */
|
||||
.int iStep;
|
||||
|
||||
/* HLBSP materials.txt character id's */
|
||||
#define MATID_ALIEN 'H'
|
||||
#define MATID_BLOODYFLESH 'B'
|
||||
#define MATID_COMPUTER 'P'
|
||||
#define MATID_CONCRETE 'C'
|
||||
#define MATID_DIRT 'D'
|
||||
#define MATID_FLESH 'F'
|
||||
#define MATID_FOLIAGE 'O'
|
||||
#define MATID_GLASS 'Y'
|
||||
#define MATID_GRATE 'G'
|
||||
#define MATID_METAL 'M'
|
||||
#define MATID_SLOSH 'S'
|
||||
#define MATID_SNOW 'N'
|
||||
#define MATID_TILE 'T'
|
||||
#define MATID_VENT 'V'
|
||||
#define MATID_WOOD 'W'
|
||||
|
||||
/* Valve Half-Life BSP */
|
||||
void
|
||||
Footsteps_HLBSP(entity target)
|
||||
{
|
||||
string mat_name = "";
|
||||
string tex_name = "";
|
||||
|
||||
if (!g_hlbsp_materials) {
|
||||
return;
|
||||
}
|
||||
|
||||
traceline(target.origin + target.view_ofs, target.origin + [0,0,-48], FALSE, target);
|
||||
tex_name = getsurfacetexture(trace_ent, getsurfacenearpoint(trace_ent, trace_endpos));
|
||||
|
||||
if (target.flags & FL_ONGROUND) {
|
||||
switch((float)hash_get(hashMaterials, tex_name)) {
|
||||
case MATID_ALIEN:
|
||||
mat_name = "step_alien";
|
||||
break;
|
||||
case MATID_BLOODYFLESH:
|
||||
mat_name = "step_bloodyflesh";
|
||||
break;
|
||||
case MATID_COMPUTER:
|
||||
mat_name = "step_computer";
|
||||
break;
|
||||
case MATID_CONCRETE:
|
||||
mat_name = "step_concrete";
|
||||
break;
|
||||
case MATID_DIRT:
|
||||
mat_name = "step_dirt";
|
||||
break;
|
||||
case MATID_FLESH:
|
||||
mat_name = "step_flesh";
|
||||
break;
|
||||
case MATID_FOLIAGE:
|
||||
mat_name = "step_foliage";
|
||||
break;
|
||||
case MATID_GLASS:
|
||||
mat_name = "step_glass";
|
||||
break;
|
||||
case MATID_GRATE:
|
||||
mat_name = "step_grate";
|
||||
break;
|
||||
case MATID_METAL:
|
||||
mat_name = "step_metal";
|
||||
break;
|
||||
case MATID_SLOSH:
|
||||
mat_name = "step_slosh";
|
||||
break;
|
||||
case MATID_SNOW:
|
||||
mat_name = "step_snow";
|
||||
break;
|
||||
case MATID_TILE:
|
||||
mat_name = "step_tile";
|
||||
break;
|
||||
case MATID_VENT:
|
||||
mat_name = "step_vent";
|
||||
break;
|
||||
case MATID_WOOD:
|
||||
mat_name = "step_wood";
|
||||
break;
|
||||
default:
|
||||
mat_name = "step_default";
|
||||
break;
|
||||
}
|
||||
} else if (target.flags & FL_ONLADDER) {
|
||||
mat_name = "step_ladder";
|
||||
}
|
||||
|
||||
if (target.iStep) {
|
||||
Sound_Play(target, CHAN_BODY, sprintf("%s.left", mat_name));
|
||||
} else {
|
||||
Sound_Play(target, CHAN_BODY, sprintf("%s.right", mat_name));
|
||||
}
|
||||
}
|
||||
|
||||
/* Vera Visions BSP / Modified RFBSP */
|
||||
void
|
||||
Footsteps_VVBSP(entity target)
|
||||
{
|
||||
string mat_name = "";
|
||||
|
||||
/* WIP */
|
||||
if (target.flags & FL_ONGROUND) {
|
||||
mat_name = "step_default";
|
||||
} else if (target.flags & FL_ONLADDER) {
|
||||
mat_name = "step_ladder";
|
||||
}
|
||||
|
||||
if (target.iStep) {
|
||||
Sound_Play(target, CHAN_BODY, sprintf("%s.left", mat_name));
|
||||
} else {
|
||||
Sound_Play(target, CHAN_BODY, sprintf("%s.right", mat_name));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
=================
|
||||
Footsteps_Update
|
||||
|
@ -23,92 +138,34 @@ Footsteps_Update
|
|||
Run every frame for each player, plays material based footsteps
|
||||
=================
|
||||
*/
|
||||
void Footsteps_Update(void) {
|
||||
float fSpeed;
|
||||
float fVol;
|
||||
string sMaterial = "";
|
||||
string sTexture = "";
|
||||
|
||||
if (!g_hlbsp_materials) {
|
||||
return;
|
||||
}
|
||||
|
||||
void
|
||||
Footsteps_Update(void)
|
||||
{
|
||||
if (self.movetype == MOVETYPE_WALK) {
|
||||
if ((self.velocity[0] == 0 && self.velocity[1] == 0) || self.fStepTime > time) {
|
||||
return;
|
||||
}
|
||||
|
||||
fSpeed = vlen(self.velocity);
|
||||
traceline(self.origin + self.view_ofs, self.origin + '0 0 -48', FALSE, self);
|
||||
sTexture = getsurfacetexture(trace_ent, getsurfacenearpoint(trace_ent, trace_endpos));
|
||||
|
||||
if (fSpeed < 150) {
|
||||
return;
|
||||
} else if (fSpeed < 270) {
|
||||
fVol = 0.35f;
|
||||
} else {
|
||||
fVol = 0.75;
|
||||
}
|
||||
|
||||
self.fStepTime = time + 0.35;
|
||||
|
||||
if (self.flags & FL_ONGROUND) {
|
||||
switch((float)hash_get(hashMaterials, sTexture)) {
|
||||
case 'M':
|
||||
sMaterial = "metal";
|
||||
break;
|
||||
case 'V':
|
||||
sMaterial = "duct";
|
||||
break;
|
||||
case 'D':
|
||||
sMaterial = "dirt";
|
||||
break;
|
||||
case 'S':
|
||||
sMaterial = "slosh";
|
||||
break;
|
||||
case 'T':
|
||||
sMaterial = "tile";
|
||||
break;
|
||||
case 'G':
|
||||
sMaterial = "grate";
|
||||
break;
|
||||
case 'W':
|
||||
sMaterial = "step";
|
||||
break;
|
||||
case 'P':
|
||||
sMaterial = "step";
|
||||
break;
|
||||
case 'Y':
|
||||
sMaterial = "step";
|
||||
break;
|
||||
case 'N':
|
||||
sMaterial = "snow";
|
||||
break;
|
||||
default:
|
||||
sMaterial = "step";
|
||||
break;
|
||||
}
|
||||
} else if (self.flags & FL_ONLADDER) {
|
||||
sMaterial = "ladder";
|
||||
} else {
|
||||
/* make it so we step once we land */
|
||||
if (!self.flags & FL_ONGROUND) {
|
||||
self.fStepTime = 0.0f;
|
||||
return;
|
||||
}
|
||||
|
||||
if (self.iStep) {
|
||||
if (random() < 0.5f) {
|
||||
sound(self, CHAN_BODY, sprintf("player/pl_%s1.wav", sMaterial), fVol, ATTN_STATIC);
|
||||
} else {
|
||||
sound(self, CHAN_BODY, sprintf("player/pl_%s2.wav", sMaterial), fVol, ATTN_STATIC);
|
||||
}
|
||||
} else {
|
||||
if (random() < 0.5f) {
|
||||
sound(self, CHAN_BODY, sprintf("player/pl_%s3.wav", sMaterial), fVol, ATTN_STATIC);
|
||||
} else {
|
||||
sound(self, CHAN_BODY, sprintf("player/pl_%s4.wav", sMaterial), fVol, ATTN_STATIC);
|
||||
}
|
||||
/* the footsteps call might overwrite this later */
|
||||
self.fStepTime = time + 0.35;
|
||||
|
||||
switch (serverkeyfloat("*bspversion")) {
|
||||
case 30:
|
||||
Footsteps_HLBSP(self);
|
||||
break;
|
||||
case 1:
|
||||
Footsteps_VVBSP(self);
|
||||
break;
|
||||
default:
|
||||
}
|
||||
|
||||
/* switch between feet */
|
||||
self.iStep = 1 - self.iStep;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,6 +14,15 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*QUAKED weapon_displacer (0 0 1) (-16 -16 0) (16 16 32)
|
||||
"model" "models/w_displacer.mdl"
|
||||
|
||||
HALF-LIFE: OPPOSING FORCE (1999) ENTITY
|
||||
|
||||
Displacer Weapon
|
||||
|
||||
*/
|
||||
|
||||
enum
|
||||
{
|
||||
DISP_IDLE1,
|
||||
|
|
|
@ -14,6 +14,15 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*QUAKED weapon_eagle (0 0 1) (-16 -16 0) (16 16 32)
|
||||
"model" "models/w_desert_eagle.mdl"
|
||||
|
||||
HALF-LIFE: OPPOSING FORCE (1999) ENTITY
|
||||
|
||||
Desert Eagle Weapon
|
||||
|
||||
*/
|
||||
|
||||
enum
|
||||
{
|
||||
EAGLE_IDLE1,
|
||||
|
|
|
@ -14,8 +14,19 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*QUAKED weapon_grapple (0 0 1) (-16 -16 0) (16 16 32)
|
||||
"model" "models/w_bgrap.mdl"
|
||||
|
||||
HALF-LIFE: OPPOSING FORCE (1999) ENTITY
|
||||
|
||||
Barnacle Grappling-Hook Weapon
|
||||
|
||||
*/
|
||||
|
||||
#ifdef CSQC
|
||||
/* because some people apparently prefer the worse quality one */
|
||||
var int autocvar_cl_tonguemode = 0;
|
||||
#endif
|
||||
|
||||
enum
|
||||
{
|
||||
|
|
|
@ -14,6 +14,15 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*QUAKED weapon_knife (0 0 1) (-16 -16 0) (16 16 32)
|
||||
"model" "models/w_knife.mdl"
|
||||
|
||||
HALF-LIFE: OPPOSING FORCE (1999) ENTITY
|
||||
|
||||
Knife Weapon
|
||||
|
||||
*/
|
||||
|
||||
enum
|
||||
{
|
||||
KNIFE_IDLE1,
|
||||
|
|
|
@ -14,6 +14,15 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*QUAKED weapon_m249 (0 0 1) (-16 -16 0) (16 16 32)
|
||||
"model" "models/w_saw.mdl"
|
||||
|
||||
HALF-LIFE: OPPOSING FORCE (1999) ENTITY
|
||||
|
||||
M249 Weapon
|
||||
|
||||
*/
|
||||
|
||||
/* Animations */
|
||||
enum {
|
||||
M249_IDLE1,
|
||||
|
|
|
@ -14,6 +14,15 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*QUAKED weapon_penguin (0 0 1) (-16 -16 0) (16 16 32)
|
||||
"model" "models/w_penguin.mdl"
|
||||
|
||||
HALF-LIFE: OPPOSING FORCE (1999) ENTITY
|
||||
|
||||
Penguin Weapon
|
||||
|
||||
*/
|
||||
|
||||
enum
|
||||
{
|
||||
PENGUIN_IDLE,
|
||||
|
|
|
@ -14,6 +14,15 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*QUAKED weapon_pipewrench (0 0 1) (-16 -16 0) (16 16 32)
|
||||
"model" "models/w_pipe_wrench.mdl"
|
||||
|
||||
HALF-LIFE: OPPOSING FORCE (1999) ENTITY
|
||||
|
||||
Pipe-Wrench Weapon
|
||||
|
||||
*/
|
||||
|
||||
enum
|
||||
{
|
||||
PIPE_IDLE1,
|
||||
|
|
|
@ -14,6 +14,15 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*QUAKED weapon_shockrifle (0 0 1) (-16 -16 0) (16 16 32)
|
||||
"model" "models/w_shock.mdl"
|
||||
|
||||
HALF-LIFE: OPPOSING FORCE (1999) ENTITY
|
||||
|
||||
Shockrifle Weapon
|
||||
|
||||
*/
|
||||
|
||||
#ifdef CSQC
|
||||
var int PART_SHOCKPIECE;
|
||||
#endif
|
||||
|
|
|
@ -14,6 +14,15 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*QUAKED weapon_sniperrifle (0 0 1) (-16 -16 0) (16 16 32)
|
||||
"model" "models/w_m40a1.mdl"
|
||||
|
||||
HALF-LIFE: OPPOSING FORCE (1999) ENTITY
|
||||
|
||||
Sniper-Rifle Weapon
|
||||
|
||||
*/
|
||||
|
||||
enum
|
||||
{
|
||||
SNIPER_DRAW,
|
||||
|
|
|
@ -14,6 +14,15 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*QUAKED weapon_sporelauncher (0 0 1) (-16 -16 0) (16 16 32)
|
||||
"model" "models/w_spore_launcher.mdl"
|
||||
|
||||
HALF-LIFE: OPPOSING FORCE (1999) ENTITY
|
||||
|
||||
Sporelauncher Weapon
|
||||
|
||||
*/
|
||||
|
||||
enum
|
||||
{
|
||||
SPORE_IDLE1,
|
||||
|
|
|
@ -24,6 +24,7 @@ enumflags
|
|||
SNDFL_NOREVERB, /* skip reverb */
|
||||
SNDFL_OMNI, /* volume on all channels is equal */
|
||||
SNDFL_PRIVATE, /* only play on target */
|
||||
SNDFL_STEP, /* volume is calculated from entity speed */
|
||||
SNDFL_FOLLOW
|
||||
};
|
||||
|
||||
|
@ -57,6 +58,25 @@ void
|
|||
Sound_ParseField(int i, int a)
|
||||
{
|
||||
switch (argv(0)) {
|
||||
case "attenuation":
|
||||
if (a == 2) {
|
||||
switch(argv(1)) {
|
||||
case "idle":
|
||||
g_sounds[i].dist_max = ATTN_IDLE;
|
||||
break;
|
||||
case "static":
|
||||
g_sounds[i].dist_max = ATTN_STATIC;
|
||||
break;
|
||||
case "none":
|
||||
g_sounds[i].dist_max = ATTN_NONE;
|
||||
break;
|
||||
case "normal":
|
||||
g_sounds[i].dist_max = ATTN_NORM;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "dist_min":
|
||||
if (a == 2) {
|
||||
dprint("\tMin distance set\n");
|
||||
|
@ -134,6 +154,9 @@ Sound_ParseField(int i, int a)
|
|||
dprint("\tSound set to follow\n");
|
||||
g_sounds[i].flags |= SNDFL_FOLLOW;
|
||||
break;
|
||||
case "footstep":
|
||||
g_sounds[i].flags |= SNDFL_STEP;
|
||||
break;
|
||||
case "sample":
|
||||
if (a == 2) {
|
||||
dprint("\tAdded sample ");
|
||||
|
@ -266,6 +289,7 @@ void
|
|||
Sound_Play(entity target, int chan, string shader)
|
||||
{
|
||||
int r;
|
||||
float volume;
|
||||
float radius;
|
||||
float pitch;
|
||||
int flags;
|
||||
|
@ -284,6 +308,7 @@ Sound_Play(entity target, int chan, string shader)
|
|||
/* set pitch */
|
||||
pitch = random(g_sounds[sample].pitch_min, g_sounds[sample].pitch_max);
|
||||
radius = g_sounds[sample].dist_max;
|
||||
volume = g_sounds[sample].volume;
|
||||
|
||||
/* flags */
|
||||
if (g_sounds[sample].flags & SNDFL_NOREVERB) {
|
||||
|
@ -301,9 +326,19 @@ Sound_Play(entity target, int chan, string shader)
|
|||
}
|
||||
r = g_sounds[sample].playc++;
|
||||
}
|
||||
if (g_sounds[sample].flags & SOUNDFLAG_FOLLOW) {
|
||||
if (g_sounds[sample].flags & SNDFL_FOLLOW) {
|
||||
flags |= SOUNDFLAG_FOLLOW;
|
||||
}
|
||||
if (g_sounds[sample].flags & SNDFL_STEP) {
|
||||
float s = vlen(target.velocity);
|
||||
if (s < 120) {
|
||||
return;
|
||||
} else if (s < 270) {
|
||||
volume = 0.35f;
|
||||
} else {
|
||||
volume = 0.75;
|
||||
}
|
||||
}
|
||||
#ifdef CSQC
|
||||
if (g_sounds[sample].flags & SNDFL_OMNI) {
|
||||
flags |= SOUNDFLAG_NOSPACIALISE;
|
||||
|
@ -323,7 +358,7 @@ Sound_Play(entity target, int chan, string shader)
|
|||
target,
|
||||
chan,
|
||||
argv(r),
|
||||
g_sounds[sample].volume,
|
||||
volume,
|
||||
radius,
|
||||
pitch,
|
||||
flags,
|
||||
|
@ -471,7 +506,7 @@ Sound_Speak(entity target, string shader)
|
|||
}
|
||||
r = g_sounds[sample].playc++;
|
||||
}
|
||||
if (g_sounds[sample].flags & SOUNDFLAG_FOLLOW) {
|
||||
if (g_sounds[sample].flags & SNDFL_FOLLOW) {
|
||||
flags |= SOUNDFLAG_FOLLOW;
|
||||
}
|
||||
|
||||
|
|
|
@ -14,6 +14,15 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*QUAKED weapon_crossbow (0 0 1) (-16 -16 0) (16 16 32)
|
||||
"model" "models/w_crossbow.mdl"
|
||||
|
||||
HALF-LIFE (1998) ENTITY
|
||||
|
||||
Crossbow Weapon
|
||||
|
||||
*/
|
||||
|
||||
enum
|
||||
{
|
||||
CROSSBOW_IDLE1,
|
||||
|
|
|
@ -14,6 +14,15 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*QUAKED weapon_crowbar (0 0 1) (-16 -16 0) (16 16 32)
|
||||
"model" "models/w_crowbar.mdl"
|
||||
|
||||
HALF-LIFE (1998) ENTITY
|
||||
|
||||
Crowbar Weapon
|
||||
|
||||
*/
|
||||
|
||||
enum
|
||||
{
|
||||
CBAR_IDLE,
|
||||
|
|
|
@ -14,6 +14,15 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*QUAKED weapon_egon (0 0 1) (-16 -16 0) (16 16 32)
|
||||
"model" "models/w_egon.mdl"
|
||||
|
||||
HALF-LIFE (1998) ENTITY
|
||||
|
||||
Egon/Gluon-Gun Weapon
|
||||
|
||||
*/
|
||||
|
||||
enum
|
||||
{
|
||||
EGON_IDLE1,
|
||||
|
|
|
@ -14,6 +14,15 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*QUAKED weapon_gauss (0 0 1) (-16 -16 0) (16 16 32)
|
||||
"model" "models/w_gauss.mdl"
|
||||
|
||||
HALF-LIFE (1998) ENTITY
|
||||
|
||||
Gauss Weapon
|
||||
|
||||
*/
|
||||
|
||||
enum
|
||||
{
|
||||
GAUSS_IDLE1,
|
||||
|
|
|
@ -14,6 +14,26 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*QUAKED weapon_9mmhandgun (0 0 1) (-16 -16 0) (16 16 32)
|
||||
"model" "models/w_9mmhandgun.mdl"
|
||||
|
||||
HALF-LIFE (1998) ENTITY
|
||||
|
||||
9mm Handgun/Glock Weapon
|
||||
Same as weapon_glock
|
||||
|
||||
*/
|
||||
|
||||
/*QUAKED weapon_glock (0 0 1) (-16 -16 0) (16 16 32)
|
||||
"model" "models/w_9mmhandgun.mdl"
|
||||
|
||||
HALF-LIFE (1998) ENTITY
|
||||
|
||||
9mm Handgun/Glock Weapon
|
||||
Same as weapon_9mmhandgun
|
||||
|
||||
*/
|
||||
|
||||
enum
|
||||
{
|
||||
GLOCK_IDLE1,
|
||||
|
|
|
@ -14,6 +14,15 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*QUAKED weapon_handgrenade (0 0 1) (-16 -16 0) (16 16 32)
|
||||
"model" "models/w_grenade.mdl"
|
||||
|
||||
HALF-LIFE (1998) ENTITY
|
||||
|
||||
Handgrenade Weapon
|
||||
|
||||
*/
|
||||
|
||||
enum
|
||||
{
|
||||
HANDGRENADE_IDLE,
|
||||
|
|
|
@ -14,6 +14,15 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*QUAKED weapon_hornetgun (0 0 1) (-16 -16 0) (16 16 32)
|
||||
"model" "models/w_hgun.mdl"
|
||||
|
||||
HALF-LIFE (1998) ENTITY
|
||||
|
||||
Hornetgun Weapon
|
||||
|
||||
*/
|
||||
|
||||
enum
|
||||
{
|
||||
HORNETGUN_IDLE,
|
||||
|
|
|
@ -14,6 +14,26 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*QUAKED weapon_9mmAR (0 0 1) (-16 -16 0) (16 16 32)
|
||||
"model" "models/w_9mmar.mdl"
|
||||
|
||||
HALF-LIFE (1998) ENTITY
|
||||
|
||||
MP5/9mmAR Weapon
|
||||
Same as weapon_mp5
|
||||
|
||||
*/
|
||||
|
||||
/*QUAKED weapon_mp5 (0 0 1) (-16 -16 0) (16 16 32)
|
||||
"model" "models/w_9mmar.mdl"
|
||||
|
||||
HALF-LIFE (1998) ENTITY
|
||||
|
||||
MP5/9mmAR Weapon
|
||||
Same as weapon_9mmAR
|
||||
|
||||
*/
|
||||
|
||||
/* Animations */
|
||||
enum {
|
||||
MP5_IDLE1,
|
||||
|
|
|
@ -14,6 +14,26 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*QUAKED weapon_357 (0 0 1) (-16 -16 0) (16 16 32)
|
||||
"model" "models/w_357.mdl"
|
||||
|
||||
HALF-LIFE (1998) ENTITY
|
||||
|
||||
357/Python Weapon
|
||||
Same as weapon_python
|
||||
|
||||
*/
|
||||
|
||||
/*QUAKED weapon_python (0 0 1) (-16 -16 0) (16 16 32)
|
||||
"model" "models/w_357.mdl"
|
||||
|
||||
HALF-LIFE (1998) ENTITY
|
||||
|
||||
357/Python Weapon
|
||||
Same as weapon_357
|
||||
|
||||
*/
|
||||
|
||||
enum
|
||||
{
|
||||
PYTHON_IDLE1,
|
||||
|
|
|
@ -14,6 +14,15 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*QUAKED weapon_rpg (0 0 1) (-16 -16 0) (16 16 32)
|
||||
"model" "models/w_rpg.mdl"
|
||||
|
||||
HALF-LIFE (1998) ENTITY
|
||||
|
||||
RPG Weapon
|
||||
|
||||
*/
|
||||
|
||||
enum
|
||||
{
|
||||
RPG_IDLE,
|
||||
|
|
|
@ -14,6 +14,15 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*QUAKED weapon_satchel (0 0 1) (-16 -16 0) (16 16 32)
|
||||
"model" "models/w_satchel.mdl"
|
||||
|
||||
HALF-LIFE (1998) ENTITY
|
||||
|
||||
Satchel Weapon
|
||||
|
||||
*/
|
||||
|
||||
enum
|
||||
{
|
||||
SATCHEL_IDLE,
|
||||
|
|
|
@ -14,6 +14,15 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*QUAKED weapon_shotgun (0 0 1) (-16 -16 0) (16 16 32)
|
||||
"model" "models/w_shotgun.mdl"
|
||||
|
||||
HALF-LIFE (1998) ENTITY
|
||||
|
||||
Shotgun Weapon
|
||||
|
||||
*/
|
||||
|
||||
enum
|
||||
{
|
||||
SHOTGUN_IDLE1,
|
||||
|
|
|
@ -14,6 +14,15 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*QUAKED weapon_snark (0 0 1) (-16 -16 0) (16 16 32)
|
||||
"model" "models/w_squeak.mdl"
|
||||
|
||||
HALF-LIFE (1998) ENTITY
|
||||
|
||||
Snark/Squeakgrenade Weapon
|
||||
|
||||
*/
|
||||
|
||||
enum
|
||||
{
|
||||
SNARK_IDLE,
|
||||
|
|
|
@ -14,6 +14,15 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*QUAKED weapon_tripmine (0 0 1) (-16 -16 0) (16 16 32)
|
||||
"model" "models/v_tripmine.mdl"
|
||||
|
||||
HALF-LIFE (1998) ENTITY
|
||||
|
||||
Tripmine Weapon
|
||||
|
||||
*/
|
||||
|
||||
/* MONSTER_TRIPMINE SEGMENT
|
||||
*
|
||||
* Because not being able to place it around levels would be boring.
|
||||
|
|
|
@ -1,255 +1 @@
|
|||
set sk_12mm_bullet1 "8"
|
||||
set sk_12mm_bullet2 "10"
|
||||
set sk_12mm_bullet3 "10"
|
||||
set sk_9mmAR_bullet1 "3"
|
||||
set sk_9mmAR_bullet2 "4"
|
||||
set sk_9mmAR_bullet3 "5"
|
||||
set sk_9mm_bullet1 "5"
|
||||
set sk_9mm_bullet2 "5"
|
||||
set sk_9mm_bullet3 "8"
|
||||
set sk_agrunt_dmg_punch1 "10"
|
||||
set sk_agrunt_dmg_punch2 "20"
|
||||
set sk_agrunt_dmg_punch3 "20"
|
||||
set sk_agrunt_health1 "60"
|
||||
set sk_agrunt_health2 "90"
|
||||
set sk_agrunt_health3 "120"
|
||||
set sk_apache_health1 "150"
|
||||
set sk_apache_health2 "250"
|
||||
set sk_apache_health3 "400"
|
||||
set sk_barnacle_health1 "25"
|
||||
set sk_barnacle_health2 "25"
|
||||
set sk_barnacle_health3 "25"
|
||||
set sk_barney_health1 "35"
|
||||
set sk_barney_health2 "35"
|
||||
set sk_barney_health3 "35"
|
||||
set sk_battery1 "15"
|
||||
set sk_battery2 "15"
|
||||
set sk_battery3 "10"
|
||||
set sk_bigmomma_dmg_blast1 "100"
|
||||
set sk_bigmomma_dmg_blast2 "120"
|
||||
set sk_bigmomma_dmg_blast3 "160"
|
||||
set sk_bigmomma_dmg_slash1 "50"
|
||||
set sk_bigmomma_dmg_slash2 "60"
|
||||
set sk_bigmomma_dmg_slash3 "70"
|
||||
set sk_bigmomma_health_factor1 "1.0"
|
||||
set sk_bigmomma_health_factor2 "1.5"
|
||||
set sk_bigmomma_health_factor3 "2"
|
||||
set sk_bigmomma_radius_blast1 "250"
|
||||
set sk_bigmomma_radius_blast2 "250"
|
||||
set sk_bigmomma_radius_blast3 "275"
|
||||
set sk_bullsquid_dmg_bite1 "15"
|
||||
set sk_bullsquid_dmg_bite2 "25"
|
||||
set sk_bullsquid_dmg_bite3 "25"
|
||||
set sk_bullsquid_dmg_spit1 "10"
|
||||
set sk_bullsquid_dmg_spit2 "10"
|
||||
set sk_bullsquid_dmg_spit3 "15"
|
||||
set sk_bullsquid_dmg_whip1 "25"
|
||||
set sk_bullsquid_dmg_whip2 "35"
|
||||
set sk_bullsquid_dmg_whip3 "35"
|
||||
set sk_bullsquid_health1 "40"
|
||||
set sk_bullsquid_health2 "40"
|
||||
set sk_bullsquid_health3 "120"
|
||||
set sk_controller_dmgball1 "3"
|
||||
set sk_controller_dmgball2 "4"
|
||||
set sk_controller_dmgball3 "5"
|
||||
set sk_controller_dmgzap1 "15"
|
||||
set sk_controller_dmgzap2 "25"
|
||||
set sk_controller_dmgzap3 "35"
|
||||
set sk_controller_health1 "60"
|
||||
set sk_controller_health2 "60"
|
||||
set sk_controller_health3 "100"
|
||||
set sk_controller_speedball1 "650"
|
||||
set sk_controller_speedball2 "800"
|
||||
set sk_controller_speedball3 "1000"
|
||||
set sk_gargantua_dmg_fire1 "3"
|
||||
set sk_gargantua_dmg_fire2 "5"
|
||||
set sk_gargantua_dmg_fire3 "5"
|
||||
set sk_gargantua_dmg_slash1 "10"
|
||||
set sk_gargantua_dmg_slash2 "30"
|
||||
set sk_gargantua_dmg_slash3 "30"
|
||||
set sk_gargantua_dmg_stomp1 "50"
|
||||
set sk_gargantua_dmg_stomp2 "100"
|
||||
set sk_gargantua_dmg_stomp3 "100"
|
||||
set sk_gargantua_health1 "800"
|
||||
set sk_gargantua_health2 "800"
|
||||
set sk_gargantua_health3 "1000"
|
||||
set sk_hassassin_health1 "30"
|
||||
set sk_hassassin_health2 "50"
|
||||
set sk_hassassin_health3 "50"
|
||||
set sk_headcrab_dmg_bite1 "5"
|
||||
set sk_headcrab_dmg_bite2 "10"
|
||||
set sk_headcrab_dmg_bite3 "10"
|
||||
set sk_headcrab_health1 "10"
|
||||
set sk_headcrab_health2 "10"
|
||||
set sk_headcrab_health3 "20"
|
||||
set sk_healthcharger1 "50"
|
||||
set sk_healthcharger2 "40"
|
||||
set sk_healthcharger3 "25"
|
||||
set sk_healthkit1 "15"
|
||||
set sk_healthkit2 "15"
|
||||
set sk_healthkit3 "10"
|
||||
set sk_hgrunt_gspeed1 "400"
|
||||
set sk_hgrunt_gspeed2 "600"
|
||||
set sk_hgrunt_gspeed3 "800"
|
||||
set sk_hgrunt_health1 "50"
|
||||
set sk_hgrunt_health2 "50"
|
||||
set sk_hgrunt_health3 "80"
|
||||
set sk_hgrunt_kick1 "5"
|
||||
set sk_hgrunt_kick2 "10"
|
||||
set sk_hgrunt_kick3 "10"
|
||||
set sk_hgrunt_pellets1 "3"
|
||||
set sk_hgrunt_pellets2 "5"
|
||||
set sk_hgrunt_pellets3 "6"
|
||||
set sk_hornet_dmg1 "4"
|
||||
set sk_hornet_dmg2 "5"
|
||||
set sk_hornet_dmg3 "8"
|
||||
set sk_houndeye_dmg_blast1 "10"
|
||||
set sk_houndeye_dmg_blast2 "15"
|
||||
set sk_houndeye_dmg_blast3 "15"
|
||||
set sk_houndeye_health1 "20"
|
||||
set sk_houndeye_health2 "20"
|
||||
set sk_houndeye_health3 "30"
|
||||
set sk_ichthyosaur_health1 "200"
|
||||
set sk_ichthyosaur_health2 "200"
|
||||
set sk_ichthyosaur_health3 "400"
|
||||
set sk_ichthyosaur_shake1 "20"
|
||||
set sk_ichthyosaur_shake2 "35"
|
||||
set sk_ichthyosaur_shake3 "50"
|
||||
set sk_islave_dmg_claw1 "8"
|
||||
set sk_islave_dmg_claw2 "10"
|
||||
set sk_islave_dmg_claw3 "10"
|
||||
set sk_islave_dmg_clawrake1 "25"
|
||||
set sk_islave_dmg_clawrake2 "25"
|
||||
set sk_islave_dmg_clawrake3 "25"
|
||||
set sk_islave_dmg_zap1 "10"
|
||||
set sk_islave_dmg_zap2 "10"
|
||||
set sk_islave_dmg_zap3 "15"
|
||||
set sk_islave_health1 "30"
|
||||
set sk_islave_health2 "30"
|
||||
set sk_islave_health3 "60"
|
||||
set sk_leech_dmg_bite1 "2"
|
||||
set sk_leech_dmg_bite2 "2"
|
||||
set sk_leech_dmg_bite3 "2"
|
||||
set sk_leech_health1 "2"
|
||||
set sk_leech_health2 "2"
|
||||
set sk_leech_health3 "2"
|
||||
set sk_miniturret_health1 "40"
|
||||
set sk_miniturret_health2 "40"
|
||||
set sk_miniturret_health3 "50"
|
||||
set sk_monster_arm1 "1"
|
||||
set sk_monster_arm2 "1"
|
||||
set sk_monster_arm3 "1"
|
||||
set sk_monster_chest1 "1"
|
||||
set sk_monster_chest2 "1"
|
||||
set sk_monster_chest3 "1"
|
||||
set sk_monster_head1 "3"
|
||||
set sk_monster_head2 "3"
|
||||
set sk_monster_head3 "3"
|
||||
set sk_monster_leg1 "1"
|
||||
set sk_monster_leg2 "1"
|
||||
set sk_monster_leg3 "1"
|
||||
set sk_monster_stomach1 "1"
|
||||
set sk_monster_stomach2 "1"
|
||||
set sk_monster_stomach3 "1"
|
||||
set sk_nihilanth_health1 "800"
|
||||
set sk_nihilanth_health2 "800"
|
||||
set sk_nihilanth_health3 "1000"
|
||||
set sk_nihilanth_zap1 "30"
|
||||
set sk_nihilanth_zap2 "30"
|
||||
set sk_nihilanth_zap3 "50"
|
||||
set sk_player_arm1 "1"
|
||||
set sk_player_arm2 "1"
|
||||
set sk_player_arm3 "1"
|
||||
set sk_player_chest1 "1"
|
||||
set sk_player_chest2 "1"
|
||||
set sk_player_chest3 "1"
|
||||
set sk_player_head1 "3"
|
||||
set sk_player_head2 "3"
|
||||
set sk_player_head3 "3"
|
||||
set sk_player_leg1 "1"
|
||||
set sk_player_leg2 "1"
|
||||
set sk_player_leg3 "1"
|
||||
set sk_player_stomach1 "1"
|
||||
set sk_player_stomach2 "1"
|
||||
set sk_player_stomach3 "1"
|
||||
set sk_plr_357_bullet1 "40"
|
||||
set sk_plr_357_bullet2 "40"
|
||||
set sk_plr_357_bullet3 "40"
|
||||
set sk_plr_9mmAR_bullet1 "5"
|
||||
set sk_plr_9mmAR_bullet2 "5"
|
||||
set sk_plr_9mmAR_bullet3 "5"
|
||||
set sk_plr_9mmAR_grenade1 "100"
|
||||
set sk_plr_9mmAR_grenade2 "100"
|
||||
set sk_plr_9mmAR_grenade3 "100"
|
||||
set sk_plr_9mm_bullet1 "8"
|
||||
set sk_plr_9mm_bullet2 "8"
|
||||
set sk_plr_9mm_bullet3 "8"
|
||||
set sk_plr_buckshot1 "5"
|
||||
set sk_plr_buckshot2 "5"
|
||||
set sk_plr_buckshot3 "5"
|
||||
set sk_plr_crowbar1 "10"
|
||||
set sk_plr_crowbar2 "10"
|
||||
set sk_plr_crowbar3 "10"
|
||||
set sk_plr_egon_narrow1 "6"
|
||||
set sk_plr_egon_narrow2 "6"
|
||||
set sk_plr_egon_narrow3 "6"
|
||||
set sk_plr_egon_wide1 "14"
|
||||
set sk_plr_egon_wide2 "14"
|
||||
set sk_plr_egon_wide3 "14"
|
||||
set sk_plr_gauss1 "20"
|
||||
set sk_plr_gauss2 "20"
|
||||
set sk_plr_gauss3 "20"
|
||||
set sk_plr_hand_grenade1 "100"
|
||||
set sk_plr_hand_grenade2 "100"
|
||||
set sk_plr_hand_grenade3 "100"
|
||||
set sk_plr_hornet1 "10"
|
||||
set sk_plr_hornet2 "10"
|
||||
set sk_plr_hornet3 "10"
|
||||
set sk_plr_rpg1 "100"
|
||||
set sk_plr_rpg2 "100"
|
||||
set sk_plr_rpg3 "100"
|
||||
set sk_plr_satchel1 "150"
|
||||
set sk_plr_satchel2 "150"
|
||||
set sk_plr_satchel3 "150"
|
||||
set sk_plr_tripmine1 "150"
|
||||
set sk_plr_tripmine2 "150"
|
||||
set sk_plr_tripmine3 "150"
|
||||
set sk_plr_xbow_bolt_client1 "10"
|
||||
set sk_plr_xbow_bolt_client2 "10"
|
||||
set sk_plr_xbow_bolt_client3 "10"
|
||||
set sk_plr_xbow_bolt_monster1 "50"
|
||||
set sk_plr_xbow_bolt_monster2 "50"
|
||||
set sk_plr_xbow_bolt_monster3 "50"
|
||||
set sk_scientist_heal1 "25"
|
||||
set sk_scientist_heal2 "25"
|
||||
set sk_scientist_heal3 "25"
|
||||
set sk_scientist_health1 "20"
|
||||
set sk_scientist_health2 "20"
|
||||
set sk_scientist_health3 "20"
|
||||
set sk_sentry_health1 "40"
|
||||
set sk_sentry_health2 "40"
|
||||
set sk_sentry_health3 "50"
|
||||
set sk_snark_dmg_bite1 "10"
|
||||
set sk_snark_dmg_bite2 "10"
|
||||
set sk_snark_dmg_bite3 "10"
|
||||
set sk_snark_dmg_pop1 "5"
|
||||
set sk_snark_dmg_pop2 "5"
|
||||
set sk_snark_dmg_pop3 "5"
|
||||
set sk_snark_health1 "2"
|
||||
set sk_snark_health2 "2"
|
||||
set sk_snark_health3 "2"
|
||||
set sk_suitcharger1 "75"
|
||||
set sk_suitcharger2 "50"
|
||||
set sk_suitcharger3 "35"
|
||||
set sk_turret_health1 "50"
|
||||
set sk_turret_health2 "50"
|
||||
set sk_turret_health3 "60"
|
||||
set sk_zombie_dmg_both_slash1 "25"
|
||||
set sk_zombie_dmg_both_slash2 "40"
|
||||
set sk_zombie_dmg_both_slash3 "40"
|
||||
set sk_zombie_dmg_one_slash1 "10"
|
||||
set sk_zombie_dmg_one_slash2 "20"
|
||||
set sk_zombie_dmg_one_slash3 "20"
|
||||
set sk_zombie_health1 "50"
|
||||
set sk_zombie_health2 "50"
|
||||
set sk_zombie_health3 "100"
|
||||
exec skill_valve.cfg
|
||||
|
|
255
valve/data.pk3dir/skill_valve.cfg
Normal file
255
valve/data.pk3dir/skill_valve.cfg
Normal file
|
@ -0,0 +1,255 @@
|
|||
set sk_12mm_bullet1 "8"
|
||||
set sk_12mm_bullet2 "10"
|
||||
set sk_12mm_bullet3 "10"
|
||||
set sk_9mmAR_bullet1 "3"
|
||||
set sk_9mmAR_bullet2 "4"
|
||||
set sk_9mmAR_bullet3 "5"
|
||||
set sk_9mm_bullet1 "5"
|
||||
set sk_9mm_bullet2 "5"
|
||||
set sk_9mm_bullet3 "8"
|
||||
set sk_agrunt_dmg_punch1 "10"
|
||||
set sk_agrunt_dmg_punch2 "20"
|
||||
set sk_agrunt_dmg_punch3 "20"
|
||||
set sk_agrunt_health1 "60"
|
||||
set sk_agrunt_health2 "90"
|
||||
set sk_agrunt_health3 "120"
|
||||
set sk_apache_health1 "150"
|
||||
set sk_apache_health2 "250"
|
||||
set sk_apache_health3 "400"
|
||||
set sk_barnacle_health1 "25"
|
||||
set sk_barnacle_health2 "25"
|
||||
set sk_barnacle_health3 "25"
|
||||
set sk_barney_health1 "35"
|
||||
set sk_barney_health2 "35"
|
||||
set sk_barney_health3 "35"
|
||||
set sk_battery1 "15"
|
||||
set sk_battery2 "15"
|
||||
set sk_battery3 "10"
|
||||
set sk_bigmomma_dmg_blast1 "100"
|
||||
set sk_bigmomma_dmg_blast2 "120"
|
||||
set sk_bigmomma_dmg_blast3 "160"
|
||||
set sk_bigmomma_dmg_slash1 "50"
|
||||
set sk_bigmomma_dmg_slash2 "60"
|
||||
set sk_bigmomma_dmg_slash3 "70"
|
||||
set sk_bigmomma_health_factor1 "1.0"
|
||||
set sk_bigmomma_health_factor2 "1.5"
|
||||
set sk_bigmomma_health_factor3 "2"
|
||||
set sk_bigmomma_radius_blast1 "250"
|
||||
set sk_bigmomma_radius_blast2 "250"
|
||||
set sk_bigmomma_radius_blast3 "275"
|
||||
set sk_bullsquid_dmg_bite1 "15"
|
||||
set sk_bullsquid_dmg_bite2 "25"
|
||||
set sk_bullsquid_dmg_bite3 "25"
|
||||
set sk_bullsquid_dmg_spit1 "10"
|
||||
set sk_bullsquid_dmg_spit2 "10"
|
||||
set sk_bullsquid_dmg_spit3 "15"
|
||||
set sk_bullsquid_dmg_whip1 "25"
|
||||
set sk_bullsquid_dmg_whip2 "35"
|
||||
set sk_bullsquid_dmg_whip3 "35"
|
||||
set sk_bullsquid_health1 "40"
|
||||
set sk_bullsquid_health2 "40"
|
||||
set sk_bullsquid_health3 "120"
|
||||
set sk_controller_dmgball1 "3"
|
||||
set sk_controller_dmgball2 "4"
|
||||
set sk_controller_dmgball3 "5"
|
||||
set sk_controller_dmgzap1 "15"
|
||||
set sk_controller_dmgzap2 "25"
|
||||
set sk_controller_dmgzap3 "35"
|
||||
set sk_controller_health1 "60"
|
||||
set sk_controller_health2 "60"
|
||||
set sk_controller_health3 "100"
|
||||
set sk_controller_speedball1 "650"
|
||||
set sk_controller_speedball2 "800"
|
||||
set sk_controller_speedball3 "1000"
|
||||
set sk_gargantua_dmg_fire1 "3"
|
||||
set sk_gargantua_dmg_fire2 "5"
|
||||
set sk_gargantua_dmg_fire3 "5"
|
||||
set sk_gargantua_dmg_slash1 "10"
|
||||
set sk_gargantua_dmg_slash2 "30"
|
||||
set sk_gargantua_dmg_slash3 "30"
|
||||
set sk_gargantua_dmg_stomp1 "50"
|
||||
set sk_gargantua_dmg_stomp2 "100"
|
||||
set sk_gargantua_dmg_stomp3 "100"
|
||||
set sk_gargantua_health1 "800"
|
||||
set sk_gargantua_health2 "800"
|
||||
set sk_gargantua_health3 "1000"
|
||||
set sk_hassassin_health1 "30"
|
||||
set sk_hassassin_health2 "50"
|
||||
set sk_hassassin_health3 "50"
|
||||
set sk_headcrab_dmg_bite1 "5"
|
||||
set sk_headcrab_dmg_bite2 "10"
|
||||
set sk_headcrab_dmg_bite3 "10"
|
||||
set sk_headcrab_health1 "10"
|
||||
set sk_headcrab_health2 "10"
|
||||
set sk_headcrab_health3 "20"
|
||||
set sk_healthcharger1 "50"
|
||||
set sk_healthcharger2 "40"
|
||||
set sk_healthcharger3 "25"
|
||||
set sk_healthkit1 "15"
|
||||
set sk_healthkit2 "15"
|
||||
set sk_healthkit3 "10"
|
||||
set sk_hgrunt_gspeed1 "400"
|
||||
set sk_hgrunt_gspeed2 "600"
|
||||
set sk_hgrunt_gspeed3 "800"
|
||||
set sk_hgrunt_health1 "50"
|
||||
set sk_hgrunt_health2 "50"
|
||||
set sk_hgrunt_health3 "80"
|
||||
set sk_hgrunt_kick1 "5"
|
||||
set sk_hgrunt_kick2 "10"
|
||||
set sk_hgrunt_kick3 "10"
|
||||
set sk_hgrunt_pellets1 "3"
|
||||
set sk_hgrunt_pellets2 "5"
|
||||
set sk_hgrunt_pellets3 "6"
|
||||
set sk_hornet_dmg1 "4"
|
||||
set sk_hornet_dmg2 "5"
|
||||
set sk_hornet_dmg3 "8"
|
||||
set sk_houndeye_dmg_blast1 "10"
|
||||
set sk_houndeye_dmg_blast2 "15"
|
||||
set sk_houndeye_dmg_blast3 "15"
|
||||
set sk_houndeye_health1 "20"
|
||||
set sk_houndeye_health2 "20"
|
||||
set sk_houndeye_health3 "30"
|
||||
set sk_ichthyosaur_health1 "200"
|
||||
set sk_ichthyosaur_health2 "200"
|
||||
set sk_ichthyosaur_health3 "400"
|
||||
set sk_ichthyosaur_shake1 "20"
|
||||
set sk_ichthyosaur_shake2 "35"
|
||||
set sk_ichthyosaur_shake3 "50"
|
||||
set sk_islave_dmg_claw1 "8"
|
||||
set sk_islave_dmg_claw2 "10"
|
||||
set sk_islave_dmg_claw3 "10"
|
||||
set sk_islave_dmg_clawrake1 "25"
|
||||
set sk_islave_dmg_clawrake2 "25"
|
||||
set sk_islave_dmg_clawrake3 "25"
|
||||
set sk_islave_dmg_zap1 "10"
|
||||
set sk_islave_dmg_zap2 "10"
|
||||
set sk_islave_dmg_zap3 "15"
|
||||
set sk_islave_health1 "30"
|
||||
set sk_islave_health2 "30"
|
||||
set sk_islave_health3 "60"
|
||||
set sk_leech_dmg_bite1 "2"
|
||||
set sk_leech_dmg_bite2 "2"
|
||||
set sk_leech_dmg_bite3 "2"
|
||||
set sk_leech_health1 "2"
|
||||
set sk_leech_health2 "2"
|
||||
set sk_leech_health3 "2"
|
||||
set sk_miniturret_health1 "40"
|
||||
set sk_miniturret_health2 "40"
|
||||
set sk_miniturret_health3 "50"
|
||||
set sk_monster_arm1 "1"
|
||||
set sk_monster_arm2 "1"
|
||||
set sk_monster_arm3 "1"
|
||||
set sk_monster_chest1 "1"
|
||||
set sk_monster_chest2 "1"
|
||||
set sk_monster_chest3 "1"
|
||||
set sk_monster_head1 "3"
|
||||
set sk_monster_head2 "3"
|
||||
set sk_monster_head3 "3"
|
||||
set sk_monster_leg1 "1"
|
||||
set sk_monster_leg2 "1"
|
||||
set sk_monster_leg3 "1"
|
||||
set sk_monster_stomach1 "1"
|
||||
set sk_monster_stomach2 "1"
|
||||
set sk_monster_stomach3 "1"
|
||||
set sk_nihilanth_health1 "800"
|
||||
set sk_nihilanth_health2 "800"
|
||||
set sk_nihilanth_health3 "1000"
|
||||
set sk_nihilanth_zap1 "30"
|
||||
set sk_nihilanth_zap2 "30"
|
||||
set sk_nihilanth_zap3 "50"
|
||||
set sk_player_arm1 "1"
|
||||
set sk_player_arm2 "1"
|
||||
set sk_player_arm3 "1"
|
||||
set sk_player_chest1 "1"
|
||||
set sk_player_chest2 "1"
|
||||
set sk_player_chest3 "1"
|
||||
set sk_player_head1 "3"
|
||||
set sk_player_head2 "3"
|
||||
set sk_player_head3 "3"
|
||||
set sk_player_leg1 "1"
|
||||
set sk_player_leg2 "1"
|
||||
set sk_player_leg3 "1"
|
||||
set sk_player_stomach1 "1"
|
||||
set sk_player_stomach2 "1"
|
||||
set sk_player_stomach3 "1"
|
||||
set sk_plr_357_bullet1 "40"
|
||||
set sk_plr_357_bullet2 "40"
|
||||
set sk_plr_357_bullet3 "40"
|
||||
set sk_plr_9mmAR_bullet1 "5"
|
||||
set sk_plr_9mmAR_bullet2 "5"
|
||||
set sk_plr_9mmAR_bullet3 "5"
|
||||
set sk_plr_9mmAR_grenade1 "100"
|
||||
set sk_plr_9mmAR_grenade2 "100"
|
||||
set sk_plr_9mmAR_grenade3 "100"
|
||||
set sk_plr_9mm_bullet1 "8"
|
||||
set sk_plr_9mm_bullet2 "8"
|
||||
set sk_plr_9mm_bullet3 "8"
|
||||
set sk_plr_buckshot1 "5"
|
||||
set sk_plr_buckshot2 "5"
|
||||
set sk_plr_buckshot3 "5"
|
||||
set sk_plr_crowbar1 "10"
|
||||
set sk_plr_crowbar2 "10"
|
||||
set sk_plr_crowbar3 "10"
|
||||
set sk_plr_egon_narrow1 "6"
|
||||
set sk_plr_egon_narrow2 "6"
|
||||
set sk_plr_egon_narrow3 "6"
|
||||
set sk_plr_egon_wide1 "14"
|
||||
set sk_plr_egon_wide2 "14"
|
||||
set sk_plr_egon_wide3 "14"
|
||||
set sk_plr_gauss1 "20"
|
||||
set sk_plr_gauss2 "20"
|
||||
set sk_plr_gauss3 "20"
|
||||
set sk_plr_hand_grenade1 "100"
|
||||
set sk_plr_hand_grenade2 "100"
|
||||
set sk_plr_hand_grenade3 "100"
|
||||
set sk_plr_hornet1 "10"
|
||||
set sk_plr_hornet2 "10"
|
||||
set sk_plr_hornet3 "10"
|
||||
set sk_plr_rpg1 "100"
|
||||
set sk_plr_rpg2 "100"
|
||||
set sk_plr_rpg3 "100"
|
||||
set sk_plr_satchel1 "150"
|
||||
set sk_plr_satchel2 "150"
|
||||
set sk_plr_satchel3 "150"
|
||||
set sk_plr_tripmine1 "150"
|
||||
set sk_plr_tripmine2 "150"
|
||||
set sk_plr_tripmine3 "150"
|
||||
set sk_plr_xbow_bolt_client1 "10"
|
||||
set sk_plr_xbow_bolt_client2 "10"
|
||||
set sk_plr_xbow_bolt_client3 "10"
|
||||
set sk_plr_xbow_bolt_monster1 "50"
|
||||
set sk_plr_xbow_bolt_monster2 "50"
|
||||
set sk_plr_xbow_bolt_monster3 "50"
|
||||
set sk_scientist_heal1 "25"
|
||||
set sk_scientist_heal2 "25"
|
||||
set sk_scientist_heal3 "25"
|
||||
set sk_scientist_health1 "20"
|
||||
set sk_scientist_health2 "20"
|
||||
set sk_scientist_health3 "20"
|
||||
set sk_sentry_health1 "40"
|
||||
set sk_sentry_health2 "40"
|
||||
set sk_sentry_health3 "50"
|
||||
set sk_snark_dmg_bite1 "10"
|
||||
set sk_snark_dmg_bite2 "10"
|
||||
set sk_snark_dmg_bite3 "10"
|
||||
set sk_snark_dmg_pop1 "5"
|
||||
set sk_snark_dmg_pop2 "5"
|
||||
set sk_snark_dmg_pop3 "5"
|
||||
set sk_snark_health1 "2"
|
||||
set sk_snark_health2 "2"
|
||||
set sk_snark_health3 "2"
|
||||
set sk_suitcharger1 "75"
|
||||
set sk_suitcharger2 "50"
|
||||
set sk_suitcharger3 "35"
|
||||
set sk_turret_health1 "50"
|
||||
set sk_turret_health2 "50"
|
||||
set sk_turret_health3 "60"
|
||||
set sk_zombie_dmg_both_slash1 "25"
|
||||
set sk_zombie_dmg_both_slash2 "40"
|
||||
set sk_zombie_dmg_both_slash3 "40"
|
||||
set sk_zombie_dmg_one_slash1 "10"
|
||||
set sk_zombie_dmg_one_slash2 "20"
|
||||
set sk_zombie_dmg_one_slash3 "20"
|
||||
set sk_zombie_health1 "50"
|
||||
set sk_zombie_health2 "50"
|
||||
set sk_zombie_health3 "100"
|
254
valve/data.pk3dir/sound/footsteps.sndshd
Normal file
254
valve/data.pk3dir/sound/footsteps.sndshd
Normal file
|
@ -0,0 +1,254 @@
|
|||
step_default.left
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_step1.wav
|
||||
sample player/pl_step2.wav
|
||||
}
|
||||
step_default.right
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_step3.wav
|
||||
sample player/pl_step4.wav
|
||||
}
|
||||
|
||||
step_alien.left
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_step1.wav
|
||||
sample player/pl_step2.wav
|
||||
}
|
||||
step_alien.right
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_step3.wav
|
||||
sample player/pl_step4.wav
|
||||
}
|
||||
|
||||
step_bloodyflesh.left
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_step1.wav
|
||||
sample player/pl_step2.wav
|
||||
}
|
||||
step_bloodyflesh.right
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_step3.wav
|
||||
sample player/pl_step4.wav
|
||||
}
|
||||
|
||||
step_computer.left
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_step1.wav
|
||||
sample player/pl_step2.wav
|
||||
}
|
||||
step_computer.right
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_step3.wav
|
||||
sample player/pl_step4.wav
|
||||
}
|
||||
|
||||
step_concrete.left
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_step1.wav
|
||||
sample player/pl_step2.wav
|
||||
}
|
||||
step_concrete.right
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_step3.wav
|
||||
sample player/pl_step4.wav
|
||||
}
|
||||
|
||||
step_dirt.left
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_dirt1.wav
|
||||
sample player/pl_dirt2.wav
|
||||
}
|
||||
step_dirt.right
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_dirt3.wav
|
||||
sample player/pl_dirt4.wav
|
||||
}
|
||||
|
||||
step_flesh.left
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_step1.wav
|
||||
sample player/pl_step2.wav
|
||||
}
|
||||
step_flesh.right
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_step3.wav
|
||||
sample player/pl_step4.wav
|
||||
}
|
||||
|
||||
step_foliage.left
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_step1.wav
|
||||
sample player/pl_step2.wav
|
||||
}
|
||||
step_foliage.right
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_step3.wav
|
||||
sample player/pl_step4.wav
|
||||
}
|
||||
|
||||
step_glass.left
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_step1.wav
|
||||
sample player/pl_step2.wav
|
||||
}
|
||||
step_glass.right
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_step3.wav
|
||||
sample player/pl_step4.wav
|
||||
}
|
||||
|
||||
step_grate.left
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_grate1.wav
|
||||
sample player/pl_grate2.wav
|
||||
}
|
||||
step_grate.right
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_grate3.wav
|
||||
sample player/pl_grate4.wav
|
||||
}
|
||||
|
||||
step_metal.left
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_metal1.wav
|
||||
sample player/pl_metal2.wav
|
||||
}
|
||||
step_metal.right
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_metal3.wav
|
||||
sample player/pl_metal4.wav
|
||||
}
|
||||
|
||||
step_slosh.left
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_slosh1.wav
|
||||
sample player/pl_slosh2.wav
|
||||
}
|
||||
step_slosh.right
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_slosh3.wav
|
||||
sample player/pl_slosh4.wav
|
||||
}
|
||||
|
||||
step_snow.left
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_snow1.wav
|
||||
sample player/pl_snow2.wav
|
||||
}
|
||||
step_snow.right
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_snow3.wav
|
||||
sample player/pl_snow4.wav
|
||||
}
|
||||
|
||||
step_tile.left
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_tile1.wav
|
||||
sample player/pl_tile2.wav
|
||||
}
|
||||
step_tile.right
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_tile3.wav
|
||||
sample player/pl_tile4.wav
|
||||
}
|
||||
|
||||
step_vent.left
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_duct1.wav
|
||||
sample player/pl_duct2.wav
|
||||
}
|
||||
step_vent.right
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_duct3.wav
|
||||
sample player/pl_duct4.wav
|
||||
}
|
||||
|
||||
step_wood.left
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_step1.wav
|
||||
sample player/pl_step2.wav
|
||||
}
|
||||
step_wood.right
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_step3.wav
|
||||
sample player/pl_step4.wav
|
||||
}
|
||||
|
||||
step_ladder.left
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_ladder1.wav
|
||||
sample player/pl_ladder2.wav
|
||||
}
|
||||
step_ladder.right
|
||||
{
|
||||
attenuation static
|
||||
footstep
|
||||
sample player/pl_ladder3.wav
|
||||
sample player/pl_ladder4.wav
|
||||
}
|
|
@ -89,7 +89,7 @@ monster_alien_slave.pain
|
|||
sample aslave/slv_pain2.wav
|
||||
}
|
||||
|
||||
/* bcl_bite3 is played when an entity is in it's mouth bcl_tongue1 unused? */
|
||||
// bcl_bite3 is played when an entity is in it's mouth bcl_tongue1 unused?
|
||||
monster_barnacle.attackchew
|
||||
{
|
||||
sample barnacle/bcl_chew1.wav
|
||||
|
@ -128,7 +128,7 @@ monster_bigmomma.alert
|
|||
sample gonarch/gon_alert3.wav
|
||||
}
|
||||
|
||||
/* the groans for when she spits? */
|
||||
// the groans for when she spits?
|
||||
monster_bigmomma.attack
|
||||
{
|
||||
sample gonarch/gon_attack1.wav
|
||||
|
@ -136,7 +136,7 @@ monster_bigmomma.attack
|
|||
sample gonarch/gon_attack3.wav
|
||||
}
|
||||
|
||||
/* mourns the death of her children */
|
||||
/ mourns the death of her children
|
||||
monster_bigmomma.child
|
||||
{
|
||||
sample gonarch/gon_childdie1.wav
|
||||
|
@ -166,7 +166,7 @@ monster_bigmomma.pain
|
|||
sample gonarch/gon_pain5.wav
|
||||
}
|
||||
|
||||
/* has unique foot step sounds */
|
||||
// has unique foot step sounds
|
||||
monster_bigmomma.step
|
||||
{
|
||||
sample gonarch/gon_step1.wav
|
||||
|
@ -232,7 +232,7 @@ monster_gargantua.alert
|
|||
sample garg/gar_alert3.wav
|
||||
}
|
||||
|
||||
/* similar to bullsquid groans during and after attacks */
|
||||
// similar to bullsquid groans during and after attacks
|
||||
monster_gargantua.attack
|
||||
{
|
||||
sample garg/gar_attack1.wav
|
||||
|
@ -281,7 +281,7 @@ monster_gargantua.pain
|
|||
sample garg/gar_pain3.wav
|
||||
}
|
||||
|
||||
/* has unique foot step sounds */
|
||||
// has unique foot step sounds
|
||||
monster_gargantua.step
|
||||
{
|
||||
sample garg/gar_step1.wav
|
||||
|
@ -294,7 +294,7 @@ monster_headcrab.alert
|
|||
sample headcrab/hc_alert2.wav
|
||||
}
|
||||
|
||||
/* these attack sounds are actually the cry when it jumps */
|
||||
// these attack sounds are actually the cry when it jumps
|
||||
monster_headcrab.attack
|
||||
{
|
||||
sample headcrab/hc_attack1.wav
|
||||
|
@ -350,7 +350,7 @@ monster_houndeye.die
|
|||
sample houndeye/he_die3.wav
|
||||
}
|
||||
|
||||
/* Not sure where the hunt sounds are actually used */
|
||||
// Not sure where the hunt sounds are actually used
|
||||
monster_houndeye.idle
|
||||
{
|
||||
sample houndeye/he_hunt1.wav
|
||||
|
@ -439,11 +439,11 @@ monster_leech.attack
|
|||
sample leech/leech_bite3.wav
|
||||
}
|
||||
|
||||
/* other sounds
|
||||
* x_shoot1 - ?
|
||||
* nih_die2 - used in map not code? */
|
||||
// other sounds
|
||||
// * x_shoot1 - ?
|
||||
// * nih_die2 - used in map not code?
|
||||
|
||||
/* these attack sounds are his growls */
|
||||
// these attack sounds are his growls
|
||||
monster_nihilanth.attack
|
||||
{
|
||||
sample x/x_attack1.wav
|
||||
|
@ -530,7 +530,7 @@ monster_sentry.retract
|
|||
sample turret/tu_retract.wav
|
||||
}
|
||||
|
||||
/* cut sounds listing here because why not */
|
||||
// cut sounds listing here because why not
|
||||
monster_tentacle.alert
|
||||
{
|
||||
sample tentacle/te_alert1.wav
|
||||
|
@ -548,7 +548,7 @@ monster_tentacle.die
|
|||
sample tentacle/te_death2.wav
|
||||
}
|
||||
|
||||
/* includes some cut sounds might be interesting */
|
||||
// includes some cut sounds might be interesting
|
||||
monster_tentacle.idle
|
||||
{
|
||||
sample tentacle/te_roar1.wav
|
||||
|
|
Loading…
Reference in a new issue