Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ==============================================================================
- SOLDIER / PLAYER
- ==============================================================================
- */
- $cd infantry/models/nailinf
- $origin 0 -6 24
- $base base
- $skin skin
- $frame stand1 stand2 stand3 stand4 stand5 stand6 stand7
- $frame walk1 walk2 walk3 walk4 walk5 walk6 walk7 walk8 walk9 walk10
- $frame walk11 walk12 walk13 walk14 walk15 walk16
- $frame run1 run2 run3 run4 run5 run6 run7 run8
- $frame attack1 attack2 attack3 attack4 attack5 attack6
- $frame attack7 attack8 attack9 attack10
- $frame death1 death2 death3 death4 death5 death6 death7 death8
- $frame death9 death10 death11 death12 death13 death14
- $frame fdeath1 fdeath2 fdeath3 fdeath4 fdeath5 fdeath6 fdeath7 fdeath8
- $frame fdeath9 fdeath10 fdeath11
- $frame paina1 paina2 paina3 paina4
- $frame painb1 painb2 painb3 painb4 painb5
- $frame painc1 painc2 painc3 painc4 painc5 painc6 painc7 painc8
- $frame paind1 paind2 paind3 paind4 paind5 paind6 paind7 paind8
- $frame paind9 paind10 paind11 paind12 paind13 paind14 paind15 paind16
- $frame paind17 paind18 paind19
- void() nailinfantry_fire =
- {
- local vector dir;
- local entity en;
- ai_face();
- sound (self, CHAN_WEAPON, "nailinf/nailshrd.wav", 1, ATTN_NORM);
- // fire somewhat behind the player, so a dodging player is harder to hit
- en = self.enemy;
- dir = en.origin - en.velocity*0.2;
- dir = normalize (dir - self.origin);
- FireNailShards (1, dir, '0.02 0.02 0');
- };
- //============================================================================
- void() inf_stand1 =[ $stand1, inf_stand2 ] {ai_stand();};
- void() inf_stand2 =[ $stand2, inf_stand3 ] {ai_stand();};
- void() inf_stand3 =[ $stand3, inf_stand4 ] {ai_stand();};
- void() inf_stand4 =[ $stand4, inf_stand5 ] {ai_stand();};
- void() inf_stand5 =[ $stand5, inf_stand6 ] {ai_stand();};
- void() inf_stand6 =[ $stand6, inf_stand7 ] {ai_stand();};
- void() inf_stand7 =[ $stand7, inf_stand1 ] {ai_stand();};
- void() inf_walk1 =[ $walk1 , inf_walk2 ] {
- if (random() < 0.2)
- sound (self, CHAN_VOICE, "nailinf/idle1.wav", 1, ATTN_IDLE);
- ai_walk(2);};
- void() inf_walk2 =[ $walk2 , inf_walk3 ] {ai_walk(4);};
- void() inf_walk3 =[ $walk3 , inf_walk4 ] {ai_walk(4);};
- void() inf_walk4 =[ $walk4 , inf_walk5 ] {ai_walk(3);};
- void() inf_walk5 =[ $walk5 , inf_walk6 ] {ai_walk(1);};
- void() inf_walk6 =[ $walk6 , inf_walk7 ] {ai_walk(2);};
- void() inf_walk7 =[ $walk7 , inf_walk8 ] {ai_walk(2);};
- void() inf_walk8 =[ $walk8 , inf_walk9 ] {ai_walk(1);};
- void() inf_walk9 =[ $walk9 , inf_walk10 ] {ai_walk(2);};
- void() inf_walk10 =[ $walk10, inf_walk11 ] {ai_walk(4);};
- void() inf_walk11 =[ $walk11, inf_walk12 ] {ai_walk(4);};
- void() inf_walk12 =[ $walk12, inf_walk13 ] {ai_walk(1);};
- void() inf_walk13 =[ $walk13, inf_walk14 ] {ai_walk(2);};
- void() inf_walk14 =[ $walk14, inf_walk15 ] {ai_walk(3);};
- void() inf_walk15 =[ $walk15, inf_walk16 ] {ai_walk(4);};
- void() inf_walk16 =[ $walk16, inf_walk1 ] {ai_walk(2);};
- void() inf_run1 =[ $run1 , inf_run2 ] {
- if (random() < 0.2)
- sound (self, CHAN_VOICE, "nailinf/idle1.wav", 1, ATTN_IDLE);
- ai_run(18);};
- void() inf_run2 =[ $run2 , inf_run3 ] {ai_run(14);};
- void() inf_run3 =[ $run3 , inf_run4 ] {ai_run(7);};
- void() inf_run4 =[ $run4 , inf_run5 ] {ai_run(12);};
- void() inf_run5 =[ $run5 , inf_run6 ] {ai_run(14);};
- void() inf_run6 =[ $run6 , inf_run7 ] {ai_run(14);};
- void() inf_run7 =[ $run7 , inf_run8 ] {ai_run(7);};
- void() inf_run8 =[ $run8 , inf_run1 ] {ai_run(11);};
- void() inf_atk1 =[ $attack1, inf_atk2 ] {ai_face();sound (self, CHAN_VOICE, "nailinf/prepfire.wav", 1, ATTN_IDLE);};
- void() inf_atk2 =[ $attack2, inf_atk3 ] {ai_face();};
- void() inf_atk3 =[ $attack3, inf_atk4 ] {ai_face();};
- void() inf_atk4 =[ $attack4, inf_atk5 ] {ai_face();};
- void() inf_atk5 =[ $attack5, inf_atk6 ] {ai_face();};
- void() inf_atk6 =[ $attack6, inf_atk7 ] {nailinfantry_fire();self.nextthink = time + 0.06;};
- void() inf_atk7 =[ $attack7, inf_atk8 ] {
- ai_face();
- self.nextthink = time + 0.06;
- if(visible(self.enemy))
- inf_atk6();
- };
- void() inf_atk8 =[ $attack8, inf_atk9 ] {ai_face();};
- void() inf_atk9 =[ $attack9, inf_atk10 ] {ai_face();};
- void() inf_atk10 =[ $attack10, inf_run1 ] {ai_face();
- SUB_CheckRefire (inf_atk1);
- };
- void() inf_paina1 =[ $paina1, inf_paina2 ] {};
- void() inf_paina2 =[ $paina2, inf_paina3 ] {};
- void() inf_paina3 =[ $paina3, inf_paina4 ] {};
- void() inf_paina4 =[ $paina4, inf_run1 ] {};
- void() inf_painb1 =[ $painb1, inf_painb2 ] {};
- void() inf_painb2 =[ $painb2, inf_painb3 ] {};
- void() inf_painb3 =[ $painb3, inf_painb4 ] {};
- void() inf_painb4 =[ $painb4, inf_painb5 ] {};
- void() inf_painb5 =[ $painb5, inf_run1 ] {};
- void() inf_painc1 =[ $painc1, inf_painc2 ] {};
- void() inf_painc2 =[ $painc2, inf_painc3 ] {};
- void() inf_painc3 =[ $painc3, inf_painc4 ] {};
- void() inf_painc4 =[ $painc4, inf_painc5 ] {};
- void() inf_painc5 =[ $painc5, inf_painc6 ] {};
- void() inf_painc6 =[ $painc6, inf_painc7 ] {};
- void() inf_painc7 =[ $painc7, inf_painc8 ] {};
- void() inf_painc8 =[ $painc8, inf_run1 ] {};
- void() inf_paind1 =[ $paind1, inf_paind2 ] {};
- void() inf_paind2 =[ $paind2, inf_paind3 ] {};
- void() inf_paind3 =[ $paind3, inf_paind4 ] {};
- void() inf_paind4 =[ $paind4, inf_paind5 ] {ai_painforward(2);};
- void() inf_paind5 =[ $paind5, inf_paind6 ] {ai_painforward(1);};
- void() inf_paind6 =[ $paind6, inf_paind7 ] {};
- void() inf_paind7 =[ $paind7, inf_paind8 ] {};
- void() inf_paind8 =[ $paind8, inf_paind9 ] {};
- void() inf_paind9 =[ $paind9, inf_paind10 ] {};
- void() inf_paind10 =[ $paind10, inf_paind11 ] {};
- void() inf_paind11 =[ $paind11, inf_paind12 ] {ai_painforward(1);};
- void() inf_paind12 =[ $paind12, inf_paind13 ] {ai_painforward(1);};
- void() inf_paind13 =[ $paind13, inf_paind14 ] {ai_painforward(1);};
- void() inf_paind14 =[ $paind14, inf_paind15 ] {};
- void() inf_paind15 =[ $paind15, inf_paind16 ] {};
- void() inf_paind16 =[ $paind16, inf_paind17 ] {ai_pain(1);};
- void() inf_paind17 =[ $paind17, inf_paind18 ] {ai_pain(1);};
- void() inf_paind18 =[ $paind18, inf_paind19 ] {};
- void() inf_paind19 =[ $paind19, inf_run1 ] {};
- void(entity attacker, float damage) inf_pain =
- {
- local float r;
- r = random ();
- if (self.pain_finished > time)
- return;
- if (r < 0.5)
- sound (self, CHAN_VOICE, "nailinf/pain1.wav", 1, ATTN_NORM);
- else
- sound (self, CHAN_VOICE, "nailinf/pain2.wav", 1, ATTN_NORM);
- if (r < 0.2)
- {
- self.pain_finished = time + 1;
- inf_paina1 ();
- }
- else if (r < 0.4)
- {
- self.pain_finished = time + 1;
- inf_painb1 ();
- }
- else if (r < 0.7)
- {
- self.pain_finished = time + 1;
- inf_painc1 ();
- }
- else
- {
- self.pain_finished = time + 2;
- inf_paind1 ();
- }
- };
- //============================================================================
- void() inf_die1 =[ $death1, inf_die2 ] {};
- void() inf_die2 =[ $death2, inf_die3 ] {};
- void() inf_die3 =[ $death3, inf_die4 ]
- {self.solid = SOLID_NOT;self.ammo_nails = 5;DropBackpack();};
- void() inf_die4 =[ $death4, inf_die5 ] {ai_forward(14);};
- void() inf_die5 =[ $death5, inf_die6 ] {ai_forward(2);};
- void() inf_die6 =[ $death6, inf_die7 ] {};
- void() inf_die7 =[ $death7, inf_die8 ] {};
- void() inf_die8 =[ $death8, inf_die9 ] {};
- void() inf_die9 =[ $death9, inf_die10 ] {ai_forward(3);};
- void() inf_die10 =[ $death10, inf_die11 ] {ai_forward(5);};
- void() inf_die11 =[ $death11, inf_die12 ] {ai_forward(5);};
- void() inf_die12 =[ $death12, inf_die13 ] {ai_forward(5);};
- void() inf_die13 =[ $death13, inf_die14 ] {};
- void() inf_die14 =[ $death14, inf_die14 ] {};
- void() inf_fdie1 =[ $fdeath1, inf_fdie2 ] {
- };
- void() inf_fdie2 =[ $fdeath2, inf_fdie3 ] {};
- void() inf_fdie3 =[ $fdeath3, inf_fdie4 ]
- {self.solid = SOLID_NOT;self.ammo_nails = 5;DropBackpack();};
- void() inf_fdie4 =[ $fdeath4, inf_fdie5 ] {};
- void() inf_fdie5 =[ $fdeath5, inf_fdie6 ] {};
- void() inf_fdie6 =[ $fdeath6, inf_fdie7 ] {};
- void() inf_fdie7 =[ $fdeath7, inf_fdie8 ] {};
- void() inf_fdie8 =[ $fdeath8, inf_fdie9 ] {};
- void() inf_fdie9 =[ $fdeath9, inf_fdie10 ] {};
- void() inf_fdie10 =[ $fdeath10, inf_fdie11 ] {};
- void() inf_fdie11 =[ $fdeath11, inf_fdie11 ] {};
- void() inf_die =
- {
- // check for gib
- if (self.health < -35)
- {
- sound (self, CHAN_VOICE, "player/udeath.wav", 1, ATTN_NORM);
- ThrowHead ("progs/h_nail.mdl", self.health);
- ThrowGib ("progs/gib1.mdl", self.health);
- ThrowGib ("progs/gib2.mdl", self.health);
- ThrowGib ("progs/gib3.mdl", self.health);
- return;
- }
- // regular death
- sound (self, CHAN_VOICE, "nailinf/death1.wav", 1, ATTN_NORM);
- if (random() > 0.5)
- inf_die1 ();
- else
- inf_fdie1 ();
- };
- /*QUAKED monster_enforcer (1 0 0) (-16 -16 -24) (16 16 40) Ambush
- */
- void() monster_nailinf =
- {
- if (deathmatch)
- {
- remove(self);
- return;
- }
- precache_model ("progs/nailinf.mdl");
- precache_model ("progs/h_nail.mdl");
- precache_sound ("nailinf/death.wav");
- precache_sound ("nailinf/prepfire.wav");
- precache_sound ("nailinf/nailshrd.wav");
- precache_sound ("nailinf/idle1.wav");
- precache_sound ("nailinf/pain1.wav");
- precache_sound ("nailinf/pain2.wav");
- precache_sound ("nailinf/sight1.wav");
- precache_sound ("nailinf/sight2.wav");
- precache_sound ("nailinf/sight3.wav");
- precache_sound ("nailinf/sight4.wav");
- self.solid = SOLID_SLIDEBOX;
- self.movetype = MOVETYPE_STEP;
- setmodel (self, "progs/nailinf.mdl");
- setsize (self, '-16 -16 -24', '16 16 40');
- self.health = 80;
- self.th_stand = inf_stand1;
- self.th_walk = inf_walk1;
- self.th_run = inf_run1;
- self.th_pain = inf_pain;
- self.th_die = inf_die;
- self.th_missile = inf_atk1;
- walkmonster_start();
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement