123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- /*
- server.qc
- server functions (movetarget code)
- Copyright (C) 1996-1997 Id Software, Inc.
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2
- of the License, or (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to:
- Free Software Foundation, Inc.
- 59 Temple Place - Suite 330
- Boston, MA 02111-1307, USA
- */
- void() monster_ogre = {remove(self);};
- void() monster_demon1 = {remove(self);};
- void() monster_shambler = {remove(self);};
- void() monster_knight = {remove(self);};
- void() monster_army = {remove(self);};
- void() monster_wizard = {remove(self);};
- void() monster_dog = {remove(self);};
- void() monster_zombie = {remove(self);};
- void() monster_boss = {remove(self);};
- void() monster_tarbaby = {remove(self);};
- void() monster_hell_knight = {remove(self);};
- void() monster_fish = {remove(self);};
- void() monster_shalrath = {remove(self);};
- void() monster_enforcer = {remove(self);};
- void() monster_oldone = {remove(self);};
- void() event_lightning = {remove(self);};
- /*
- ==============================================================================
- MOVETARGET CODE
- The angle of the movetarget effects standing and bowing direction, but has no effect on movement, which allways heads to the next target.
- targetname
- must be present. The name of this movetarget.
- target
- the next spot to move to. If not present, stop here for good.
- pausetime
- The number of seconds to spend standing or bowing for path_stand or path_bow
- ==============================================================================
- */
- /*
- =============
- t_movetarget
- Something has bumped into a movetarget. If it is a monster
- moving towards it, change the next destination and continue.
- ==============
- */
- void() t_movetarget =
- {
- local entity temp;
- if (other.movetarget != self)
- return;
-
- if (other.enemy)
- return; // fighting, not following a path
- temp = self;
- self = other;
- other = temp;
- if (self.classname == "monster_ogre")
- sound (self, CHAN_VOICE, "ogre/ogdrag.wav", 1, ATTN_IDLE);// play chainsaw drag sound
- //dprint ("t_movetarget\n");
- self.goalentity = self.movetarget = find (world, targetname, other.target);
- self.ideal_yaw = vectoyaw(self.goalentity.origin - self.origin);
- if (!self.movetarget)
- {
- self.pausetime = time + 999999;
- self.th_stand ();
- return;
- }
- };
- void() movetarget_f =
- {
- if (!self.targetname)
- objerror ("monster_movetarget: no targetname");
-
- self.solid = SOLID_TRIGGER;
- self.touch = t_movetarget;
- setsize (self, '-8 -8 -8', '8 8 8');
-
- };
- /*QUAKED path_corner (0.5 0.3 0) (-8 -8 -8) (8 8 8)
- Monsters will continue walking towards the next target corner.
- */
- void() path_corner =
- {
- movetarget_f ();
- };
- //============================================================================
|