- finally make hacked fieldgens work right

- some of my "stuck in field" experiments, because they're in the same
  file and I didn't feel like reverting them.
- add an item to TODO
This commit is contained in:
Adam Olsen 2001-07-28 16:46:29 +00:00
parent b3a03080e0
commit bf8e4e1b33
4 changed files with 664 additions and 618 deletions

1
TODO
View file

@ -12,3 +12,4 @@ o various drop items
X move from *preqcc to cpp
o add more variety to tinkering
o add a way to edit the respawn ammo entities
o add localinfo string for bottom half of the MOTD

View file

@ -160,12 +160,17 @@ void() Field_think =
if (te.velocity == '0 0 0')
// if (!IsBuilding(te)) // no screwing with the buildings :)
if (te.classname != "force_field")
if (EntsTouching2(te,self))
// if (EntsTouching2(te,self))
{
other = te;
deathmsg = DMSG_STUCK_FORCEFIELD;
self.dmg = FIELDGEN_DMGINSIDE; // this gonna hurt
Field_touch_SUB();
local entity foo;
foo = testentitypos (te);
if (foo == self)
{
other = te;
deathmsg = DMSG_STUCK_FORCEFIELD;
self.dmg = FIELDGEN_DMGINSIDE; // this gonna hurt
Field_touch_SUB();
}
}
te = te.chain;
@ -280,7 +285,7 @@ void() Field_touch_SUB =
deathmsg = DMSG_FF_HACKED;
else /* if (deathmsg == DMSG_FORCEFIELD_STUCK) */
deathmsg = DMSG_FF_STUCK_HACKED;
TF_T_Damage (other, self, self.martyr_enemy, self.dmg, TF_TD_NOTTEAM, TF_TD_ELECTRICITY);
TF_T_Damage (other, self, self, self.dmg, TF_TD_NOTTEAM, TF_TD_ELECTRICITY);
}
}
@ -305,7 +310,7 @@ void() Field_touch_SUB =
deathmsg = DMSG_FF_HACKED;
else /* if (deathmsg == DMSG_FORCEFIELD_STUCK) */
deathmsg = DMSG_FF_STUCK_HACKED;
TF_T_Damage (other, self, self.martyr_enemy, self.dmg, TF_TD_NOTTEAM, TF_TD_ELECTRICITY);
TF_T_Damage (other, self, self, self.dmg, TF_TD_NOTTEAM, TF_TD_ELECTRICITY);
}
}
}
@ -630,6 +635,13 @@ void(entity gen1, entity gen2) Create_Field =
gen2.has_teleporter = TRUE;
gen2.skin = 2;
if (gen1.martyr_enemy)
tfield.martyr_enemy = gen1.martyr_enemy;
else if (gen1.martyr_enemy)
tfield.martyr_enemy = gen2.martyr_enemy;
else
tfield.martyr_enemy = world;
/* // make sure the field goes off instantly if there's somebody in it
local entity oldself;
oldself = self;

View file

@ -418,6 +418,8 @@ void() SBFireInterface =
{
sprint(self, PRINT_HIGH, "The field generator is now rigged to hurt teammates...\n");
targ.martyr_enemy = self;
if (targ.fieldgen_hasfield)
targ.fieldgen_field.martyr_enemy = self;
}
}
else if (hackThis == SCREWUP_TWO)

File diff suppressed because it is too large Load diff