git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@3421 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
003f374e50
commit
7dfc0e99a4
17 changed files with 304 additions and 239 deletions
|
@ -153,7 +153,9 @@ void() DecodeLevelParms =
|
|||
|
||||
self.class = 1;
|
||||
|
||||
self.current_slot = parm16;
|
||||
if (parm16 > 0)
|
||||
self.current_slot = parm16;
|
||||
|
||||
self.islot1 = parm17;
|
||||
self.islot2 = parm18;
|
||||
self.islot3 = parm19;
|
||||
|
@ -620,7 +622,7 @@ void() PutClientInServer =
|
|||
self.takedamage = DAMAGE_AIM;
|
||||
self.movetype = MOVETYPE_WALK;
|
||||
self.show_hostile = 0;
|
||||
self.max_health = 100;
|
||||
self.max_health = 100 + self.skill_combat;
|
||||
self.health = 100;
|
||||
self.flags = FL_CLIENT;
|
||||
self.air_finished = time + 12;
|
||||
|
@ -638,7 +640,7 @@ void() PutClientInServer =
|
|||
|
||||
|
||||
DecodeLevelParms ();
|
||||
|
||||
/*
|
||||
if (self.skill_combat == 0 && self.skill_sneak == 0 && self.skill_doctor == 0 && self.skill_science == 0)
|
||||
{
|
||||
self.deadflag = DEAD_NO;
|
||||
|
@ -660,7 +662,7 @@ void() PutClientInServer =
|
|||
self.active = 1;
|
||||
player_stand1 ();
|
||||
return;
|
||||
}
|
||||
}*/
|
||||
|
||||
if (self.current_slot == 0)
|
||||
{
|
||||
|
@ -703,7 +705,7 @@ void() PutClientInServer =
|
|||
self.fixangle = TRUE; // turn this way immediately
|
||||
|
||||
|
||||
self.max_health = 100;
|
||||
self.max_health = 100 + self.skill_combat;
|
||||
|
||||
self.equipment_slot = 0;
|
||||
|
||||
|
@ -1312,7 +1314,7 @@ float(entity targ) check_fov_side =
|
|||
|
||||
void() SneakLevel =
|
||||
{
|
||||
local float sn, st, front, r;
|
||||
local float sn, st, front, r, q;
|
||||
local entity te;
|
||||
local string report;
|
||||
|
||||
|
@ -1330,7 +1332,7 @@ void() SneakLevel =
|
|||
}
|
||||
|
||||
|
||||
sn = 95;
|
||||
sn = 90 + self.skill_sneak*0.5;
|
||||
|
||||
//sneaking along a wall increases chance by 2%
|
||||
makevectors(self.angles);
|
||||
|
@ -1358,16 +1360,9 @@ void() SneakLevel =
|
|||
if (r > 0 && r <= 600)
|
||||
{
|
||||
r = 600 - r;
|
||||
q = 3 + (self.skill_sneak/5);
|
||||
|
||||
|
||||
if (self.class == 1)
|
||||
sn = sn - r/3;
|
||||
if (self.class == 2)
|
||||
sn = sn - r/6;
|
||||
if (self.class == 3)
|
||||
sn = sn - r/3;
|
||||
if (self.class == 4)
|
||||
sn = sn - r/3;
|
||||
sn = sn - r/q;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1431,6 +1426,8 @@ void() ArmorCheck =
|
|||
if (self.walk == 1)
|
||||
self.speedmulti = self.speedmulti * 0.50;
|
||||
|
||||
self.speedmulti = self.speedmulti*(1+(self.skill_sneak*0.01));
|
||||
|
||||
//Armor
|
||||
if (aid == IID_ARM_DESERT)
|
||||
type = 0.10;
|
||||
|
@ -1450,8 +1447,6 @@ void() ArmorCheck =
|
|||
type = 0.15;
|
||||
if (aid == IID_ARM_LPOWER)
|
||||
type = 0.50;
|
||||
if (self.class == 3)
|
||||
type += 0.10;
|
||||
if (self.rage == IID_CHEM_PSYCHO)
|
||||
type += 0.20;
|
||||
|
||||
|
@ -1506,15 +1501,9 @@ void () WeightControl =
|
|||
wt = wt + GetItemsWeight(self.islot16);
|
||||
|
||||
self.weight = wt;
|
||||
self.max_weight = 30;
|
||||
|
||||
if (self.class == 1)
|
||||
self.max_weight = 40;
|
||||
if (self.class == 2)
|
||||
self.max_weight = 40;
|
||||
if (self.class == 3)
|
||||
self.max_weight = 60;
|
||||
if (self.class == 4)
|
||||
self.max_weight = 30;
|
||||
self.max_weight = self.max_weight + self.skill_combat;
|
||||
};
|
||||
|
||||
|
||||
|
@ -1571,11 +1560,7 @@ void () PositionControl =
|
|||
if (self.maxspeed < 50)
|
||||
self.maxspeed = 50;
|
||||
|
||||
if (self.equipment_slot)
|
||||
{
|
||||
if ((ToIID(ItemInSlot(self, self.equipment_slot))) == IID_EQUIP_SPRINTKIT)
|
||||
self.maxspeed = self.maxspeed*2;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
.float clientcolors;
|
||||
|
@ -1626,14 +1611,30 @@ void() PlayerPreThink =
|
|||
DisplayMenu ();
|
||||
return;
|
||||
}
|
||||
else if (self.score >= 20 && self.currentmenu == "none")
|
||||
else if (self.score >= 500 && self.score <= 1550 && self.currentmenu == "none")
|
||||
{
|
||||
self.score = self.score + 1;
|
||||
}
|
||||
else if (self.score >= 1551 && self.currentmenu == "none")
|
||||
{
|
||||
self.currentmenu = "gain_skill";
|
||||
self.missionbrief = 2;
|
||||
DisplayMenu ();
|
||||
}
|
||||
else if (self.score >= 200 && self.currentmenu == "none")
|
||||
{
|
||||
self.score = 500;
|
||||
}
|
||||
|
||||
|
||||
if ((self.skill_combat + self.skill_sneak + self.skill_doctor + self.skill_science) <= 5)
|
||||
{
|
||||
if (self.currentmenu == "none")
|
||||
{
|
||||
self.currentmenu = "gain_skill";
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -2217,8 +2218,7 @@ void() ClientConnect =
|
|||
stuffcmd(self, "alias zoom impulse 60\n");
|
||||
stuffcmd(self, "alias hostage impulse 65\n");
|
||||
|
||||
stuffcmd(self, "alias stimpack \"cmd invuse superstims+stimpack+bandages\"\n");
|
||||
stuffcmd(self, "alias bandages \"cmd invuse bandages+superstims+stimpack\"\n");
|
||||
stuffcmd(self, "alias stimpack impulse 225\n");
|
||||
stuffcmd(self, "alias equip \"cmd invuse 4\"\n");
|
||||
stuffcmd(self, "alias q1 \"cmd invuse 5\"\n");
|
||||
stuffcmd(self, "alias q2 \"cmd invuse 6\"\n");
|
||||
|
|
|
@ -134,20 +134,17 @@ void(entity targ, entity inflictor, entity attacker, float damage) T_Damage =
|
|||
else if (attacker.classname == "player" && total_players == 2)
|
||||
damage = floor(damage * 0.90);
|
||||
|
||||
if (attacker.classname == "monster" && total_players == 4)
|
||||
damage = floor(damage * 1.30);
|
||||
if (attacker.classname == "monster" && total_players == 3)
|
||||
damage = floor(damage * 1.20);
|
||||
else if (attacker.classname == "monster" && total_players == 2)
|
||||
damage = floor(damage * 1.10);
|
||||
if (attacker.classname == "monster")
|
||||
damage = floor(damage * 0.80);
|
||||
|
||||
|
||||
//getting hurt is slightly painful to the score, play cautiously!
|
||||
if (attacker.classname == "monster" && targ.classname == "player")
|
||||
targ.score = targ.score - 6;
|
||||
targ.score = targ.score - 1;
|
||||
|
||||
//flanking monsters awards points
|
||||
if (attacker.classname == "player" && targ.classname == "monster" && targ.enemy != attacker)
|
||||
attacker.score = attacker.score + 5;
|
||||
attacker.score = attacker.score + 1;
|
||||
|
||||
//aimed shots awards points
|
||||
if (attacker.classname == "player" && targ.classname == "monster" && attacker.recoil <= 5)
|
||||
|
@ -165,20 +162,20 @@ void(entity targ, entity inflictor, entity attacker, float damage) T_Damage =
|
|||
dot = (vec * v_forward);
|
||||
|
||||
if (dot > 0.3)
|
||||
attacker.score = attacker.score + 5;
|
||||
attacker.score = attacker.score + 1;
|
||||
}
|
||||
|
||||
//attacking a team-mate is a HUGE penalty
|
||||
if (attacker.classname == "player" && targ.classname == "player")
|
||||
{
|
||||
attacker.score = attacker.score - 25;
|
||||
attacker.score = attacker.score - 3;
|
||||
sprint(attacker, 2, "you just shot a teammate! be careful!\n");
|
||||
}
|
||||
|
||||
//attacking a hostage is a HUGE penalty
|
||||
if (attacker.classname == "player" && targ.classname == "hostage")
|
||||
{
|
||||
attacker.score = attacker.score - 25;
|
||||
attacker.score = attacker.score - 3;
|
||||
sprint(attacker, 2, "you just shot a hostage! be careful!\n");
|
||||
}
|
||||
|
||||
|
@ -333,7 +330,7 @@ void(entity targ, entity inflictor, entity attacker, float damage) T_Damage =
|
|||
damage = (damage * 3);
|
||||
|
||||
if (targ.classname == "monster")
|
||||
attacker.score = attacker.score + 5;
|
||||
attacker.score = attacker.score + 1;
|
||||
|
||||
helm = targ.armortype;
|
||||
if (targ.helmet == 0)
|
||||
|
@ -559,7 +556,7 @@ take = damage;
|
|||
while (te)
|
||||
{
|
||||
if (te.classname == "player")
|
||||
te.score = te.score + 10;
|
||||
te.score = te.score + 2;
|
||||
|
||||
te = te.chain;
|
||||
}
|
||||
|
@ -655,7 +652,7 @@ void(entity targ, entity inflictor, entity attacker, float damage) J_Damage =
|
|||
damage = (damage * 3);
|
||||
|
||||
if (targ.classname == "monster")
|
||||
attacker.score = attacker.score + 5;
|
||||
attacker.score = attacker.score + 1;
|
||||
|
||||
helm = targ.armortype;
|
||||
if (targ.helmet == 0)
|
||||
|
@ -949,7 +946,7 @@ void(entity targ, entity inflictor, entity attacker, float damage) X_Damage =
|
|||
damage = (damage * 3);
|
||||
|
||||
if (targ.classname == "monster")
|
||||
attacker.score = attacker.score + 5;
|
||||
attacker.score = attacker.score + 1;
|
||||
|
||||
helm = targ.armortype;
|
||||
if (targ.helmet == 0)
|
||||
|
|
|
@ -4,6 +4,7 @@ float PRINT_MEDIUM = 1;
|
|||
|
||||
float show_inventory;
|
||||
float show_pipboy;
|
||||
float show_trader;
|
||||
|
||||
vector mousepos;
|
||||
|
||||
|
@ -34,6 +35,37 @@ float mouseisdown;
|
|||
#define CURSORSIZE 8
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void(vector pos, float slotno) TraderImage =
|
||||
{
|
||||
local float it, mod_s, mod_e;
|
||||
local string itname;
|
||||
|
||||
|
||||
if (slotno == downslotnum && slotnum)
|
||||
slotno = slotnum;
|
||||
else if (slotno == slotnum && downslotnum)
|
||||
slotno = downslotnum;
|
||||
|
||||
if (slotno <= 20)
|
||||
it = getstati(70+slotno);
|
||||
|
||||
|
||||
itname = GetItemImage(ToIID(it));
|
||||
drawpic(pos, strcat("gui/", itname), IMGSIZEV, '1 1 1', 1);
|
||||
|
||||
it = ToStatus(it);
|
||||
if (it < 1)
|
||||
return;
|
||||
itname = ftos(it);
|
||||
it = strlen(itname);
|
||||
drawstring(pos + IMGSIZEV - '0 8 0' - '8 0 0'*it, itname, '8 8 8', '1 1 1', 1);
|
||||
};
|
||||
|
||||
|
||||
void(vector pos, float slotno) SlotImage =
|
||||
{
|
||||
local float it, mod_s, mod_e;
|
||||
|
@ -71,9 +103,6 @@ void(vector pos, float slotno) SlotImage =
|
|||
itname = GetItemImage(ToIID(it));
|
||||
drawpic(pos, strcat("gui/", itname), IMGSIZEV, '1 1 1', 1);
|
||||
|
||||
mod_s = getstati(70);
|
||||
mod_e = getstati(71);
|
||||
|
||||
it = ToStatus(it);
|
||||
if (it < 1)
|
||||
return;
|
||||
|
@ -118,18 +147,6 @@ void(vector pos, float slotno) SlotImageSmall =
|
|||
itname = GetItemImage(ToIID(it));
|
||||
drawpic(pos, strcat("gui/", itname), IMGSIZEH, '1 1 1', 1);
|
||||
|
||||
mod_s = getstati(70);
|
||||
mod_e = getstati(71);
|
||||
|
||||
|
||||
if (it > 0)
|
||||
{
|
||||
if (mod_s == it)
|
||||
drawstring(pos, "sil", '8 8 8', '1 1 1', 1);
|
||||
|
||||
if (mod_e == it)
|
||||
drawstring(pos, "ext", '8 8 8', '1 1 1', 1);
|
||||
}
|
||||
|
||||
it = ToStatus(it);
|
||||
if (it <= 1)
|
||||
|
@ -358,6 +375,25 @@ void(vector pos, string image) Crosshair =
|
|||
};
|
||||
|
||||
|
||||
void() Trader_Draw =
|
||||
{
|
||||
float width,height,lvl,bar;
|
||||
vector w;
|
||||
|
||||
width = cvar("vid_conwidth");
|
||||
height = cvar("vid_conheight");
|
||||
//w = '1 1 0'*height;
|
||||
|
||||
|
||||
|
||||
|
||||
drawpic('0 0 0', "gui/pipboy/buyscreen.bmp", w, '1 1 1', 1);
|
||||
TraderImage('2 2 0'*IMGSIZEF, 1);
|
||||
TraderImage('2 3 0'*IMGSIZEF, 2);
|
||||
|
||||
drawpic(mousepos, "gui/cursor.jpg", '1 1 0'*CURSORSIZE, '1 1 1', 1);
|
||||
};
|
||||
|
||||
void() Pipboy_Draw =
|
||||
{
|
||||
float width,height,lvl,bar;
|
||||
|
@ -365,7 +401,7 @@ void() Pipboy_Draw =
|
|||
|
||||
width = cvar("vid_conwidth");
|
||||
height = cvar("vid_conheight");
|
||||
w = '1 1 0'*height;
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -429,14 +465,7 @@ void() Invent_Draw =
|
|||
|
||||
local float slotofs;
|
||||
slotofs = sliderpos*(height - (IMGSIZEF*6)) + (IMGSIZEF*6);
|
||||
/*
|
||||
for (i = 6; i <= MAXSLOTS; i++)
|
||||
{
|
||||
SlotImage(((i*IMGSIZEF-slotofs) * '0 1 0'), i+1);
|
||||
|
||||
// itname = GetItemName(ToIID(it));
|
||||
// drawstring(toppos + ((i*8-slotofs) * '0 1 0'), strcat(itname, " (", ftos(ToStatus(it)), ")"), '8 8 0', '1 1 1', 1);
|
||||
}*/
|
||||
|
||||
SlotImage('2 1 0'*IMGSIZEF, 5);
|
||||
SlotImage('2 2 0'*IMGSIZEF, 6);
|
||||
|
@ -467,16 +496,6 @@ void() Invent_Draw =
|
|||
|
||||
SlotImageSmall('1 12.5 0'*IMGSIZEK, 4);
|
||||
|
||||
/*
|
||||
drawstring('120 72 0'+('4 0 0'*IMGSIZEF), " JUNK ", '8 8 8', '1 1 1', 1);
|
||||
SlotImageSmall('112 80 0'+('4 0 0'*IMGSIZEF), 17);
|
||||
SlotImageSmall('112 128 0'+('4 0 0'*IMGSIZEF), 18);
|
||||
SlotImageSmall('112 176 0'+('4 0 0'*IMGSIZEF), 19);
|
||||
SlotImageSmall('112 224 0'+('4 0 0'*IMGSIZEF), 20);
|
||||
SlotImageSmall('96 80 0'+('5 0 0'*IMGSIZEF), 21);
|
||||
SlotImageSmall('96 128 0'+('5 0 0'*IMGSIZEF), 22);
|
||||
SlotImageSmall('96 176 0'+('5 0 0'*IMGSIZEF), 23);
|
||||
SlotImageSmall('96 224 0'+('5 0 0'*IMGSIZEF), 24);*/
|
||||
|
||||
/*
|
||||
perki = GetPerkImage(getstati(60));
|
||||
|
@ -498,13 +517,7 @@ void() Invent_Draw =
|
|||
|
||||
|
||||
|
||||
/*
|
||||
drawpic(('1 0 0'*IMGSIZEF), "gui/scrollup.jpg", '16 16 0', '1 1 1', 1);
|
||||
for (i = 0; i < height; i+=16)
|
||||
drawpic('1 0 0'*IMGSIZEF+'0 16 0'+i*'0 1 0', "gui/scrollbar.jpg", '16 16 0', '1 1 1', 1);
|
||||
drawpic(('1 0 0'*IMGSIZEF)+(height-16)*'0 1 0', "gui/scrolldown.jpg", '16 16 0', '1 1 1', 1);
|
||||
|
||||
drawpic(('1 0 0'*IMGSIZEF)+'0 16 0'+sliderpos*(height-48)*'0 1 0', "gui/scrollbox.jpg", '16 16 0', '1 1 1', 1);*/
|
||||
|
||||
|
||||
if (showcontextmenu)
|
||||
|
@ -513,25 +526,11 @@ void() Invent_Draw =
|
|||
|
||||
op = floor((mousepos_y - contextpos_y)/8);
|
||||
drawstring(contextpos + (0 * '0 8 0'), "use/reload", '8 8 0', '1 1 0' + (op!=0)*'0 0 1', 1);
|
||||
drawstring(contextpos + (1 * '0 8 0'), "put in hand", '8 8 0', '1 1 0' + (op!=1)*'0 0 1', 1);
|
||||
if (getstati(108) == 0)
|
||||
drawstring(contextpos + (2 * '0 8 0'), "drop", '8 8 0', '1 1 0' + (op!=2)*'0 0 1', 1);
|
||||
drawstring(contextpos + (1 * '0 8 0'), "drop", '8 8 0', '1 1 0' + (op!=1)*'0 0 1', 1);
|
||||
drawstring(contextpos + (2 * '0 8 0'), "mix", '8 8 0', '1 1 0' + (op!=2)*'0 0 1', 1);
|
||||
if (getstati(108) == 1)
|
||||
drawstring(contextpos + (2 * '0 8 0'), "sell", '8 8 0', '1 1 0' + (op!=2)*'0 0 1', 1);
|
||||
if (getstati(60) == 14 || getstati(59) == 14)
|
||||
drawstring(contextpos + (3 * '0 8 0'), "mix chems", '8 8 0', '1 1 0' + (op!=3)*'0 0 1', 1);
|
||||
drawstring(contextpos + (3 * '0 8 0'), "sell", '8 8 0', '1 1 0' + (op!=3)*'0 0 1', 1);
|
||||
|
||||
drawstring(contextpos + (4 * '0 8 0'), "build: flash bomb", '8 8 0', '1 1 0' + (op!=4)*'0 0 1', 1);
|
||||
drawstring(contextpos + (5 * '0 8 0'), "build: frag grenade", '8 8 0', '1 1 0' + (op!=5)*'0 0 1', 1);
|
||||
drawstring(contextpos + (6 * '0 8 0'), "build: stun grenade", '8 8 0', '1 1 0' + (op!=6)*'0 0 1', 1);
|
||||
drawstring(contextpos + (7 * '0 8 0'), "build: silencer", '8 8 0', '1 1 0' + (op!=7)*'0 0 1', 1);
|
||||
|
||||
if (getstati(63) == 4)
|
||||
{
|
||||
drawstring(contextpos + (8 * '0 8 0'), "build: scope", '8 8 0', '1 1 0' + (op!=8)*'0 0 1', 1);
|
||||
drawstring(contextpos + (9 * '0 8 0'), "build: x-ray device", '8 8 0', '1 1 0' + (op!=9)*'0 0 1', 1);
|
||||
drawstring(contextpos + (10 * '0 8 0'), "build: modification", '8 8 0', '1 1 0' + (op!=10)*'0 0 1', 1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -644,6 +643,10 @@ float(float eventtype, float param1, float param2) CSQC_InputEvent =
|
|||
{
|
||||
show_pipboy = !show_pipboy;
|
||||
}
|
||||
if (param1 == 'b' && (getstati(108) == 1))
|
||||
{
|
||||
show_trader = !show_trader;
|
||||
}
|
||||
else if (!show_inventory)
|
||||
return false;
|
||||
else if (param1 == k_mouse1)
|
||||
|
@ -672,7 +675,7 @@ float(float eventtype, float param1, float param2) CSQC_InputEvent =
|
|||
return false;
|
||||
return true;
|
||||
}
|
||||
if (eventtype == 1 && show_inventory) //key up
|
||||
if (eventtype == 1 && (show_inventory || show_trader || show_pipboy)) //key up
|
||||
{
|
||||
if (param1 == k_mouse1)
|
||||
{
|
||||
|
@ -682,28 +685,12 @@ float(float eventtype, float param1, float param2) CSQC_InputEvent =
|
|||
|
||||
if (op == 0)
|
||||
localcmd(strcat("cmd invuse ", ftos(slotnum), "\n"));
|
||||
else if (op == 1)
|
||||
localcmd(strcat("cmd invswap 1 ", ftos(slotnum), "\nimpulse 1\n"));
|
||||
else if ((op == 2) && (getstati(108) == 0))
|
||||
else if ((op == 1))
|
||||
localcmd(strcat("cmd invdrop ", ftos(slotnum), "\n"));
|
||||
else if ((op == 2) && (getstati(108) == 1))
|
||||
localcmd(strcat("cmd invsell ", ftos(slotnum), "\n"));
|
||||
else if (op == 3)
|
||||
else if (op == 2)
|
||||
localcmd(strcat("cmd invmix ", ftos(slotnum), "\n"));
|
||||
else if (op == 4)
|
||||
localcmd("cmd create flash\n");
|
||||
else if (op == 5)
|
||||
localcmd("cmd create grenade\n");
|
||||
else if (op == 6)
|
||||
localcmd("cmd create stun\n");
|
||||
else if (op == 7)
|
||||
localcmd("cmd create silencer\n");
|
||||
else if (op == 8)
|
||||
localcmd("cmd create extender\n");
|
||||
else if (op == 9)
|
||||
localcmd("cmd create xray\n");
|
||||
else if (op == 10)
|
||||
localcmd("cmd create modify\n");
|
||||
else if ((op == 3) && (getstati(108) == 1))
|
||||
localcmd(strcat("cmd invsell ", ftos(slotnum), "\n"));
|
||||
|
||||
showcontextmenu = false;
|
||||
}
|
||||
|
@ -744,7 +731,7 @@ float(float eventtype, float param1, float param2) CSQC_InputEvent =
|
|||
return false;
|
||||
return true;
|
||||
}
|
||||
if (eventtype == 2 && show_inventory) //mouse
|
||||
if (eventtype == 2 && (show_inventory || show_trader || show_pipboy)) //mouse
|
||||
{
|
||||
mousepos_x += param1;
|
||||
mousepos_y += param2;
|
||||
|
|
|
@ -442,6 +442,8 @@ void(float do2d) CSQC_UpdateView =
|
|||
DrawScreen();
|
||||
else if (getstati(109) == 0)
|
||||
DrawScreen();
|
||||
else if (show_trader)
|
||||
Trader_Draw();
|
||||
else if (show_inventory)
|
||||
Invent_Draw();
|
||||
else if (show_pipboy)
|
||||
|
|
|
@ -343,6 +343,11 @@ void () woof_pain =
|
|||
{
|
||||
if (self.rtime > 0)
|
||||
{
|
||||
if (random()*100<10)
|
||||
{
|
||||
remove(self);
|
||||
return;
|
||||
}
|
||||
self.health = 180;
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -8,6 +8,12 @@ void () door_go_up;
|
|||
|
||||
void () door_blocked =
|
||||
{
|
||||
if (other.classname == "treasure_chest")
|
||||
{
|
||||
remove(other);
|
||||
return;
|
||||
}
|
||||
|
||||
T_Damage (other, self, self, self.dmg);
|
||||
if ((self.wait >= MULTICAST_ALL))
|
||||
{
|
||||
|
@ -159,7 +165,8 @@ void () door_killed =
|
|||
|
||||
void () OpenDoorBeep =
|
||||
{
|
||||
local float r;
|
||||
local float r,x;
|
||||
|
||||
|
||||
r = range (self.enemy);
|
||||
|
||||
|
@ -175,9 +182,14 @@ void () OpenDoorBeep =
|
|||
else
|
||||
sound (self, CHAN_BODY, "items/lockpick2.wav", 1, ATTN_NORM);
|
||||
|
||||
|
||||
x = (2.51 - (2.5*(self.enemy.skill_sneak/30)));
|
||||
|
||||
|
||||
self.think = OpenDoorBeep;
|
||||
self.nextthink = time + 0.5;
|
||||
if (ToIID(other.islot4) == IID_EQUIP_TOOLKIT)
|
||||
self.nextthink = time + x;
|
||||
|
||||
if (ToIID(self.enemy.islot4) == IID_EQUIP_TOOLKIT)
|
||||
self.owner.owner.rtime = self.owner.owner.rtime + 3;
|
||||
else
|
||||
self.owner.owner.rtime = self.owner.owner.rtime + 1;
|
||||
|
@ -256,32 +268,13 @@ void () door_touch =
|
|||
}
|
||||
else if (self.owner.items == IT_KEY2)
|
||||
{
|
||||
if (other.class == 1)
|
||||
{
|
||||
sprint(other, 2, "the lock on this door is too complex for you.\n");
|
||||
sound (other, CHAN_BODY, "items/locked.wav", 1, ATTN_NORM);
|
||||
return;
|
||||
}
|
||||
if (other.class == 2)
|
||||
{
|
||||
|
||||
sprint(other, 2, "picking...\n");
|
||||
other.attack_finished = time + 7;
|
||||
other.rtime = time + 7.5;
|
||||
SpawnOpenDoor(self, other);
|
||||
return;
|
||||
}
|
||||
if (other.class == 3)
|
||||
{
|
||||
sprint(other, 2, "the lock on this door is too complex for you.\n");
|
||||
sound (other, CHAN_BODY, "items/locked.wav", 1, ATTN_NORM);
|
||||
return;
|
||||
}
|
||||
if (other.class == 4)
|
||||
{
|
||||
sprint(other, 2, "picking...\n");
|
||||
SpawnOpenDoor(self, other);
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
if (self.owner.items == IT_KEY1)
|
||||
sound (self, CHAN_VOICE, self.noise3, 1, ATTN_NORM);
|
||||
|
|
|
@ -285,7 +285,7 @@ void (vector jojo) spawn_civilian =
|
|||
}
|
||||
}
|
||||
|
||||
te = findradius (self.origin, 30);
|
||||
te = findradius (self.origin, 40);
|
||||
while (te)
|
||||
{
|
||||
if (te.classname == "player" || te.classname == "monster" && te.health > 0)
|
||||
|
|
|
@ -184,6 +184,18 @@ float(float slotno, float iid) FitsInSlot;
|
|||
.float xslot6;
|
||||
.float xslot7;
|
||||
.float xslot8;
|
||||
.float xslot9;
|
||||
.float xslot10;
|
||||
.float xslot11;
|
||||
.float xslot12;
|
||||
.float xslot13;
|
||||
.float xslot14;
|
||||
.float xslot15;
|
||||
.float xslot16;
|
||||
.float xslot17;
|
||||
.float xslot18;
|
||||
.float xslot19;
|
||||
.float xslot20;
|
||||
|
||||
#define MAXSLOTS 24
|
||||
|
||||
|
@ -604,7 +616,7 @@ slot_t(float slot) SlotField =
|
|||
return islot24;
|
||||
|
||||
|
||||
bprint(PRINT_MEDIUM, "ERROR: Invalid slot number (", ftos(slot), ")\n");
|
||||
//bprint(PRINT_MEDIUM, "ERROR: Invalid slot number (", ftos(slot), ")\n");
|
||||
return islot1;
|
||||
};
|
||||
|
||||
|
@ -647,11 +659,11 @@ string(float iid) GetItemVModel =
|
|||
if (iid == IID_WP_JACKHAMMER)
|
||||
return "progs/v_jackhammer.mdl";
|
||||
if (iid == IID_WP_MP9)
|
||||
return "progs/v_ump.mdl";
|
||||
return "progs/v_mp9.mdl";
|
||||
if (iid == IID_WP_MP7)
|
||||
return "progs/v_smg.mdl";
|
||||
if (iid == IID_WP_MP9_S)
|
||||
return "progs/v_ump.mdl";
|
||||
return "progs/v_mp9.mdl";
|
||||
if (iid == IID_WP_MP7_S)
|
||||
return "progs/v_smg.mdl";
|
||||
if (iid == IID_WP_RANGEMASTER)
|
||||
|
|
|
@ -207,7 +207,7 @@ void() treasure_touch =
|
|||
{
|
||||
sound (self, CHAN_BODY, "items/locked.wav", 1, ATTN_NORM);
|
||||
sprint(other, 2, "this metal box is locked.\n");
|
||||
if (other.class == 2 || other.class == 4)
|
||||
if (other.skill_sneak >= 1)
|
||||
{
|
||||
sprint(other, 2, "you may attempt to pick this\n");
|
||||
sprint(other, 2, "by pressing your 'action' key\n");
|
||||
|
@ -539,7 +539,7 @@ void () OpenChestBeep =
|
|||
|
||||
|
||||
self.think = OpenChestBeep;
|
||||
self.nextthink = time + 0.2+random()*0.4;
|
||||
self.nextthink = time + 0.1+random()*0.4 + (0.02*self.enemy.skill_sneak);
|
||||
self.enemy.chest = self;
|
||||
self.enemy.currentmenu = "menu_lockpick";
|
||||
|
||||
|
@ -929,6 +929,7 @@ void() buyzone1 =
|
|||
setsize (self, '-16 -16 -24', '16 16 32');
|
||||
setorigin(self, self.origin + '0 0 24');
|
||||
self.classname = "merchant";
|
||||
|
||||
};
|
||||
|
||||
void() buyzone2 =
|
||||
|
|
|
@ -48,7 +48,7 @@ $frame deathb9 deathb10 deathb11
|
|||
void() go_invisible =
|
||||
{
|
||||
setmodel (self, "");
|
||||
sound (self, CHAN_BODY, "items/inv1.wav", 1, ATTN_NORM);
|
||||
sound (self, CHAN_BODY, "misc/r_tele4.wav", 1, ATTN_NORM);
|
||||
};
|
||||
|
||||
void() go_visible =
|
||||
|
@ -67,10 +67,7 @@ void() knight_stand7 =[ $stand7, knight_stand8 ] {ai_stand();};
|
|||
void() knight_stand8 =[ $stand8, knight_stand9 ] {ai_stand();};
|
||||
void() knight_stand9 =[ $stand9, knight_stand1 ] {ai_stand();};
|
||||
|
||||
void() knight_walk1 =[ $walk1, knight_walk2 ] {
|
||||
if (random() < 0.2)
|
||||
sound (self, CHAN_VOICE, "knight/idle.wav", 1, ATTN_IDLE);
|
||||
ai_walk(3);};
|
||||
void() knight_walk1 =[ $walk1, knight_walk2 ] {ai_walk(3);};
|
||||
void() knight_walk2 =[ $walk2, knight_walk3 ] {ai_walk(2);};
|
||||
void() knight_walk3 =[ $walk3, knight_walk4 ] {ai_walk(3);};
|
||||
void() knight_walk4 =[ $walk4, knight_walk5 ] {ai_walk(4);};
|
||||
|
@ -89,8 +86,6 @@ void() knight_walk14 =[ $walk14, knight_walk1 ] {ai_walk(3);};
|
|||
void() knight_run1 =[ $runb1, knight_run2 ] {
|
||||
if ((random() < 0.6) && self.model != "")
|
||||
go_invisible();
|
||||
else if (random() < 0.2)
|
||||
sound (self, CHAN_VOICE, "knight/idle.wav", 1, ATTN_IDLE);
|
||||
ai_run(21);};
|
||||
void() knight_run2 =[ $runb2, knight_run3 ] {ai_run(25);};
|
||||
void() knight_run3 =[ $runb3, knight_run4 ] {ai_run(18);};
|
||||
|
@ -130,6 +125,16 @@ if (self.takedamage == DAMAGE_NO)
|
|||
return;
|
||||
}
|
||||
|
||||
local vector source, org, vec, dir;
|
||||
local float weap, dot, tdam;
|
||||
local string sdam;
|
||||
makevectors (self.enemy.angles);
|
||||
vec = normalize ((self.origin - self.enemy.origin));
|
||||
dot = (vec * v_forward);
|
||||
|
||||
if (dot > 0.5)
|
||||
return;
|
||||
|
||||
sound (self, CHAN_WEAPON, "knight/sword1.wav", 1, ATTN_NORM);
|
||||
ai_charge(0);
|
||||
go_visible();
|
||||
|
@ -247,7 +252,8 @@ void() knight_bow10 =[ $walk1, knight_walk1 ] {ai_turn();};
|
|||
|
||||
|
||||
|
||||
void() knight_die1 =[ $death1, knight_die2 ] {};
|
||||
void() knight_die1 =[ $death1, knight_die2 ]
|
||||
{go_visible();};
|
||||
void() knight_die2 =[ $death2, knight_die3 ] {};
|
||||
void() knight_die3 =[ $death3, knight_die4 ]
|
||||
{self.solid = SOLID_NOT;};
|
||||
|
@ -321,7 +327,7 @@ void() monster_knight =
|
|||
|
||||
setsize (self, '-16 -16 -24', '16 16 40');
|
||||
self.health = 75;
|
||||
self.islot3 = SlotVal(IID_ARM_METAL, 1);
|
||||
self.islot3 = SlotVal(IID_ARM_METAL, 1);
|
||||
self.armornoise = "weapons/ric1.wav";
|
||||
self.th_stand = knight_stand1;
|
||||
self.th_walk = knight_walk1;
|
||||
|
|
|
@ -923,6 +923,9 @@ void() brotherhood_merchant =
|
|||
self.classname = "merchant";
|
||||
self.think = shop_face;
|
||||
self.nextthink = time + 0.5;
|
||||
|
||||
self.xslot1 = 412;
|
||||
self.xslot2 = 413;
|
||||
};
|
||||
|
||||
void() brotherhood_sergeant =
|
||||
|
|
|
@ -949,8 +949,9 @@ void() W_PlayerMenu =
|
|||
sound (self, CHAN_WEAPON, "player/yourturn.wav", TRUE, ATTN_NORM);
|
||||
centerprint(self, "\n");
|
||||
self.currentmenu = "none";
|
||||
//DisplayMenu();
|
||||
self.impulse = 1;
|
||||
PutClientInServer();
|
||||
self.impulse = 0;
|
||||
self.current_slot = 1;
|
||||
return;
|
||||
}
|
||||
else if (self.impulse == 1 && coop == 0)
|
||||
|
|
|
@ -97,6 +97,13 @@ void() plat_outside_touch =
|
|||
if (other.classname != "player")
|
||||
return;
|
||||
|
||||
|
||||
if (other.classname == "treasure_chest")
|
||||
{
|
||||
remove(other);
|
||||
return;
|
||||
}
|
||||
|
||||
if (other.health <= 0)
|
||||
return;
|
||||
|
||||
|
@ -118,6 +125,12 @@ void() plat_crush =
|
|||
{
|
||||
//dprint ("plat_crush\n");
|
||||
|
||||
if (other.classname == "treasure_chest")
|
||||
{
|
||||
remove(other);
|
||||
return;
|
||||
}
|
||||
|
||||
other.deathtype = "squish";
|
||||
T_Damage (other, self, self, 1);
|
||||
|
||||
|
@ -225,6 +238,13 @@ void() func_train_find;
|
|||
|
||||
void() train_blocked =
|
||||
{
|
||||
|
||||
if (other.classname == "treasure_chest")
|
||||
{
|
||||
remove(other);
|
||||
return;
|
||||
}
|
||||
|
||||
if (time < self.attack_finished)
|
||||
return;
|
||||
self.attack_finished = time + 0.5;
|
||||
|
|
|
@ -1378,6 +1378,11 @@ void () grunt_pain =
|
|||
|
||||
if (self.rtime > 0)
|
||||
{
|
||||
if (random()*100<10)
|
||||
{
|
||||
remove(self);
|
||||
return;
|
||||
}
|
||||
if (random()*100<50)
|
||||
sound (self, CHAN_VOICE, "player/headshot.wav", 0.75, ATTN_NORM);
|
||||
else
|
||||
|
|
|
@ -199,14 +199,15 @@ void(float damage, float dist, float rate) FireMelee =
|
|||
|
||||
if (dot < 0.5 && trace_ent.takedamage)
|
||||
{
|
||||
tdam = self.sneak*random()*3;
|
||||
tdam = 10 + (15*self.skill_sneak);
|
||||
|
||||
if (getperk(7))
|
||||
tdam = self.sneak*random()*6;
|
||||
tdam = tdam * 2;
|
||||
|
||||
if (self.steadyaim == 0)
|
||||
tdam = tdam * 5;
|
||||
tdam = tdam + 10;
|
||||
|
||||
if (trace_ent.solid != SOLID_BSP && trace_ent.classname != "car" && (trace_ent.islot3 == 0 || self.critical == 3))
|
||||
if (trace_ent.solid != SOLID_BSP && trace_ent.classname != "car")
|
||||
SpawnBlood (org, 1);
|
||||
else
|
||||
SpawnNonBlood (org, 1);
|
||||
|
@ -239,7 +240,7 @@ void(float damage, float dist, float rate) FireMelee =
|
|||
bprint(2, " assassinates ");
|
||||
bprint(2, trace_ent.netname);
|
||||
bprint(2, "!\n");
|
||||
self.score = self.score + 25;
|
||||
self.score = self.score + 5;
|
||||
|
||||
if (random()*4<2)
|
||||
sound (trace_ent, CHAN_WEAPON, "player/headshot.wav", 0.25, ATTN_IDLE);
|
||||
|
@ -1620,11 +1621,11 @@ void() W_Attack =
|
|||
else if (weap == IID_WP_DKS1_S)
|
||||
FireAssaultRifle(35, 3, "weapons/moonlight1.wav", 5000, 0.25);
|
||||
else if (weap == IID_WP_WINCHESTER)
|
||||
W_FireShotgun (2, 4, 8, 30, 1500, 0, "weapons/shotgun1.wav");
|
||||
W_FireShotgun (2, 5, 8, 50, 1500, 0, "weapons/shotgun1.wav");
|
||||
else if (weap == IID_WP_MOSSBERG)
|
||||
W_FireShotgun (2, 4, 8, 20, 2000, 1, "weapons/citykiller.wav");
|
||||
W_FireShotgun (2, 5, 7, 20, 2000, 1, "weapons/citykiller.wav");
|
||||
else if (weap == IID_WP_JACKHAMMER)
|
||||
W_FireShotgun (1, 4, 9, 25, 1750, 2, "weapons/citykiller.wav");
|
||||
W_FireShotgun (1, 5, 7, 30, 1750, 2, "weapons/citykiller.wav");
|
||||
else if (weap == IID_WP_MP9)
|
||||
FireSMG(14, 0, "weapons/mp7.wav", 1500, 0.10);
|
||||
else if (weap == IID_WP_MP7)
|
||||
|
@ -1758,7 +1759,7 @@ void() CheatCommand =
|
|||
{
|
||||
local float x;
|
||||
local string y;
|
||||
|
||||
/*
|
||||
x = self.waterlevel;
|
||||
y = ftos(x);
|
||||
|
||||
|
@ -1766,8 +1767,8 @@ void() CheatCommand =
|
|||
sprint(self, 2, y);
|
||||
sprint(self, 2, "\n");
|
||||
self.ammo_shells = 900;
|
||||
self.score = 21;
|
||||
|
||||
self.currentmenu = "gain_skill";
|
||||
*/
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -4227,14 +4228,28 @@ void () UseStimpack =
|
|||
{
|
||||
sprint(self, PRINT_MEDIUM, trace_ent.netname);
|
||||
sprint(self, PRINT_MEDIUM, " had no stims!\n");
|
||||
return;
|
||||
}
|
||||
else
|
||||
if (x >= 1)
|
||||
{
|
||||
self.score = self.score + 50;
|
||||
self.score = self.score + 5;
|
||||
sprint(self, PRINT_MEDIUM, trace_ent.netname);
|
||||
sprint(self, PRINT_MEDIUM, " had a stim. using it to heal.\n");
|
||||
DecreaseDestroySlotOther(trace_ent, x);//take away a stimpack
|
||||
return;
|
||||
}
|
||||
x = SlotOfItem(trace_ent, IID_CHEM_MEDICALBAG);
|
||||
if (x == 0)
|
||||
{
|
||||
sprint(self, PRINT_MEDIUM, trace_ent.netname);
|
||||
sprint(self, PRINT_MEDIUM, " had no medical bag!\n");
|
||||
}
|
||||
if (x >= 1)
|
||||
{
|
||||
self.score = self.score + 5;
|
||||
sprint(self, PRINT_MEDIUM, trace_ent.netname);
|
||||
sprint(self, PRINT_MEDIUM, " had a stim. using it to heal.\n");
|
||||
DecreaseDestroySlotOther(trace_ent, x);//take away a stimpack
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4645,9 +4660,7 @@ void () DisplayMenu =
|
|||
|
||||
void () Special =
|
||||
{
|
||||
if (self.class == 1)
|
||||
UseMedicalBag();
|
||||
else
|
||||
|
||||
Sneak();
|
||||
};
|
||||
|
||||
|
@ -4946,7 +4959,7 @@ void () ExitScreen =
|
|||
sprint(self, 2, "lock is jammed.\n");
|
||||
return;
|
||||
}
|
||||
if (self.class != 2 && self.class != 4)
|
||||
if (self.skill_sneak == 0)
|
||||
{
|
||||
sound (self, CHAN_BODY, "items/locked.wav", 1, ATTN_NORM);
|
||||
sprint(self, 2, "locked!\n");
|
||||
|
@ -4970,7 +4983,8 @@ void () ExitScreen =
|
|||
if (self.currentmenu != "none")
|
||||
return;
|
||||
|
||||
bprint (2, "hostage has been located.\n");
|
||||
bprint (2, "civilian has been located.\n");
|
||||
sound (trace_ent, CHAN_BODY, "misc/rescued.wav", 1, ATTN_NONE);
|
||||
rescue = rescue + 1;
|
||||
//remove(trace_ent);
|
||||
spawn_excla(trace_ent, 3000);
|
||||
|
@ -5628,6 +5642,26 @@ void () shop_face =
|
|||
{
|
||||
self.enemy = te;
|
||||
te.safezone = 1;
|
||||
te.xslot1 = self.xslot1;
|
||||
te.xslot1 = self.xslot2;
|
||||
te.xslot1 = self.xslot3;
|
||||
te.xslot1 = self.xslot4;
|
||||
te.xslot1 = self.xslot5;
|
||||
te.xslot1 = self.xslot6;
|
||||
te.xslot1 = self.xslot7;
|
||||
te.xslot1 = self.xslot8;
|
||||
te.xslot1 = self.xslot9;
|
||||
te.xslot1 = self.xslot10;
|
||||
te.xslot1 = self.xslot11;
|
||||
te.xslot1 = self.xslot12;
|
||||
te.xslot1 = self.xslot13;
|
||||
te.xslot1 = self.xslot14;
|
||||
te.xslot1 = self.xslot15;
|
||||
te.xslot1 = self.xslot16;
|
||||
te.xslot1 = self.xslot17;
|
||||
te.xslot1 = self.xslot18;
|
||||
te.xslot1 = self.xslot19;
|
||||
te.xslot1 = self.xslot20;
|
||||
}
|
||||
te = te.chain;
|
||||
}
|
||||
|
@ -5734,20 +5768,10 @@ void () CharacterSheet =
|
|||
|
||||
sprint (self, PRINT_HIGH, "<EFBFBD>Score ‘ ");
|
||||
r1 = (self.score);
|
||||
r2 = (self.kills);
|
||||
if (r1 == 0)
|
||||
r1 = 1;
|
||||
|
||||
ratio = (r2 / r1);
|
||||
x = ftos (r1);
|
||||
sprint (self, 2, x);
|
||||
sprint (self, 2, " (");
|
||||
x = ftos (self.kills);
|
||||
sprint (self, 2, x);
|
||||
sprint (self, PRINT_HIGH, "/");
|
||||
x = ftos (self.dead);
|
||||
sprint (self, 2, x);
|
||||
sprint (self, 2, ") ");
|
||||
|
||||
sprint (self, PRINT_HIGH, "\n<EFBFBD>Speed ‘ ");
|
||||
x = ftos (self.maxspeed);
|
||||
sprint (self, 2, x);
|
||||
|
|
|
@ -68,12 +68,26 @@ void() SetupStats =
|
|||
clientstat(67, 2, map_ent1);
|
||||
clientstat(68, 2, map_ent2);
|
||||
clientstat(69, 2, map_ent3);
|
||||
clientstat(70, 2, silencer);
|
||||
clientstat(71, 2, extender);
|
||||
clientstat(81, 2, skill_combat);
|
||||
clientstat(82, 2, skill_doctor);
|
||||
clientstat(83, 2, skill_sneak);
|
||||
clientstat(84, 2, skill_science);
|
||||
clientstat(71, 2, xslot1);
|
||||
clientstat(72, 2, xslot2);
|
||||
clientstat(73, 2, xslot3);
|
||||
clientstat(74, 2, xslot4);
|
||||
clientstat(75, 2, xslot5);
|
||||
clientstat(76, 2, xslot6);
|
||||
clientstat(77, 2, xslot7);
|
||||
clientstat(78, 2, xslot8);
|
||||
clientstat(79, 2, xslot9);
|
||||
clientstat(80, 2, xslot10);
|
||||
clientstat(81, 2, xslot11);
|
||||
clientstat(82, 2, xslot12);
|
||||
clientstat(83, 2, xslot13);
|
||||
clientstat(84, 2, xslot14);
|
||||
clientstat(85, 2, xslot15);
|
||||
clientstat(86, 2, xslot16);
|
||||
clientstat(87, 2, xslot17);
|
||||
clientstat(88, 2, xslot18);
|
||||
clientstat(89, 2, xslot19);
|
||||
clientstat(90, 2, xslot20);
|
||||
clientstat(91, 2, islot17);
|
||||
clientstat(92, 2, islot18);
|
||||
clientstat(93, 2, islot19);
|
||||
|
@ -83,14 +97,11 @@ void() SetupStats =
|
|||
clientstat(97, 2, islot23);
|
||||
clientstat(98, 2, islot24);
|
||||
clientstat(99, 2, recoil);
|
||||
clientstat(100, 2, xslot1);
|
||||
clientstat(101, 2, xslot2);
|
||||
clientstat(102, 2, xslot3);
|
||||
clientstat(103, 2, xslot4);
|
||||
clientstat(104, 2, xslot5);
|
||||
clientstat(105, 2, xslot6);
|
||||
clientstat(106, 2, xslot7);
|
||||
clientstat(107, 2, xslot8);
|
||||
clientstat(81, 2, skill_combat);
|
||||
clientstat(82, 2, skill_doctor);
|
||||
clientstat(83, 2, skill_sneak);
|
||||
clientstat(84, 2, skill_science);
|
||||
|
||||
clientstat(108, 2, safezone);
|
||||
clientstat(109, 2, connected);
|
||||
clientstat(110, 2, steadyaim);
|
||||
|
@ -669,15 +680,12 @@ if (coop == 1) // Players vs Monsters
|
|||
te = find(te, classname, "player");
|
||||
}
|
||||
|
||||
// if (pcount > 0)
|
||||
// self.timer = self.timer + 0.5;
|
||||
|
||||
if (pcount == 0 && self.timer > 5)
|
||||
localcmd("restart\n");
|
||||
|
||||
if (world.map_obj == OBJ_HOSTAGE)
|
||||
{
|
||||
time_left = time_left - 1;
|
||||
//time_left = time_left - 1;
|
||||
|
||||
te = find(world, classname, "rhostage");
|
||||
while (te)
|
||||
|
@ -1088,11 +1096,12 @@ if (coop == 1) // Players vs Monsters
|
|||
ze = find (ze, classname, "player");
|
||||
}
|
||||
}
|
||||
if (endgame_timer == 10)
|
||||
if (endgame_timer >= 10)
|
||||
{
|
||||
localcmd("serverinfo objective return\n");
|
||||
changelevel ("r_bunker");
|
||||
}
|
||||
endgame_timer = endgame_timer + 1;
|
||||
}
|
||||
if (pcount == 0 && pdead > 0)
|
||||
endgame_timer = endgame_timer + 1;
|
||||
|
@ -1743,14 +1752,8 @@ void () RecoilControl =
|
|||
|
||||
}
|
||||
|
||||
if (te.class == 1)
|
||||
te.recoil = te.recoil - 0.20;
|
||||
if (te.class == 2)
|
||||
te.recoil = te.recoil - 0.20;
|
||||
if (te.class == 3)
|
||||
te.recoil = te.recoil - 0.25;
|
||||
if (te.class == 4)
|
||||
te.recoil = te.recoil - 0.15;
|
||||
|
||||
te.recoil = te.recoil - (0.20+(te.skill_combat*0.005));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1967,7 +1970,7 @@ void() worldspawn =
|
|||
precache_model ("progs/v_pipe.mdl");
|
||||
precache_model ("progs/v_double.mdl");
|
||||
precache_model ("progs/v_combat.mdl");
|
||||
precache_model ("progs/v_ump.mdl");
|
||||
precache_model ("progs/v_mp9.mdl");
|
||||
precache_model ("progs/v_g11.mdl");
|
||||
precache_model ("progs/v_ak47.mdl");
|
||||
precache_model ("progs/v_acr.mdl");
|
||||
|
@ -2096,6 +2099,8 @@ void() worldspawn =
|
|||
|
||||
precache_sound ("misc/hosdie1.wav");
|
||||
precache_sound ("misc/hosdie2.wav");
|
||||
precache_sound ("misc/hosdown.wav");
|
||||
precache_sound ("misc/rescued.wav");
|
||||
|
||||
precache_sound ("player/gib1.wav");
|
||||
precache_sound ("player/step1.wav");
|
||||
|
|
|
@ -524,6 +524,12 @@ void () zombie_death =
|
|||
{
|
||||
if (self.rtime > 0)
|
||||
{
|
||||
if (random()*100<10)
|
||||
{
|
||||
remove(self);
|
||||
return;
|
||||
}
|
||||
|
||||
if (random()*100<50)
|
||||
sound (self, CHAN_VOICE, "player/headshot.wav", 0.75, ATTN_NORM);
|
||||
else
|
||||
|
@ -925,13 +931,8 @@ void() monster_zombie =
|
|||
self.th_die = zombie_die;
|
||||
self.th_melee = zombie_melee;
|
||||
|
||||
if (world.map_obj == OBJ_DEADTOWN)
|
||||
{
|
||||
if (random()<0.5)
|
||||
self.th_missile = zombie_missile;
|
||||
}
|
||||
else
|
||||
self.th_missile = zombie_missile;
|
||||
|
||||
self.th_missile = zombie_missile;
|
||||
|
||||
self.angles_y = random()*360;
|
||||
|
||||
|
@ -939,12 +940,15 @@ void() monster_zombie =
|
|||
|
||||
|
||||
|
||||
if (random()<0.25 || world.map_obj == OBJ_DEADTOWN)
|
||||
spawn_ghoul(self.origin);
|
||||
if (world.map_obj == OBJ_DEADTOWN && random()<0.25)
|
||||
spawn_ghoul(self.origin + '128 128 0');
|
||||
if (world.map_obj == OBJ_DEADTOWN && random()<0.25)
|
||||
spawn_ghoul(self.origin + '128 0 0');
|
||||
|
||||
spawn_ghoul(self.origin + '-128 -128 0');
|
||||
spawn_ghoul(self.origin + '-128 0 0');
|
||||
spawn_ghoul(self.origin + '0 -128 0');
|
||||
spawn_ghoul(self.origin + '0 128 0');
|
||||
spawn_ghoul(self.origin + '128 0 0');
|
||||
spawn_ghoul(self.origin + '128 128 0');
|
||||
spawn_ghoul(self.origin + '-128 128 0');
|
||||
spawn_ghoul(self.origin + '128 -128 0');
|
||||
|
||||
if (random()<0.25 && world.map_obj == 1)
|
||||
spawn_civilian(self.origin);
|
||||
|
|
Loading…
Reference in a new issue