Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ==============================================================================
- butch
- ==============================================================================
- */
- $cd id1/models/butch_c
- $origin 0 0 24
- $base base
- $skin base
- $frame stand1 stand2 stand3 stand4 stand5 stand6 stand7 stand8 stand9
- $frame walk1 walk2 walk3 walk4 walk5 walk6 walk7
- $frame walk8 walk9 walk10 walk11 walk12 walk13 walk14 walk15 walk16
- $frame run1 run2 run3 run4 run5 run6 run7 run8
- $frame swing1 swing2 swing3 swing4 swing5 swing6 swing7
- $frame swing8 swing9 swing10 swing11 swing12 swing13 swing14
- $frame smash1 smash2 smash3 smash4 smash5 smash6 smash7
- $frame smash8 smash9 smash10 smash11 smash12 smash13 smash14
- $frame shoot1 shoot2 shoot3 shoot4 shoot5 shoot6
- $frame pain1 pain2 pain3 pain4 pain5
- $frame painb1 painb2 painb3
- $frame painc1 painc2 painc3 painc4 painc5 painc6
- $frame paind1 paind2 paind3 paind4 paind5 paind6 paind7 paind8 paind9 paind10
- $frame paind11 paind12 paind13 paind14 paind15 paind16
- $frame paine1 paine2 paine3 paine4 paine5 paine6 paine7 paine8 paine9 paine10
- $frame paine11 paine12 paine13 paine14 paine15
- $frame death1 death2 death3 death4 death5 death6
- $frame death7 death8 death9 death10 death11 death12
- $frame death13 death14
- $frame bdeath1 bdeath2 bdeath3 bdeath4 bdeath5 bdeath6
- $frame bdeath7 bdeath8 bdeath9 bdeath10
- $frame pull1 pull2 pull3 pull4 pull5 pull6 pull7 pull8 pull9 pull10 pull11
- //=============================================================================
- void() FlakFire =
- {
- local vector dir;
- local entity en;
- ai_face();
- sound (self, CHAN_WEAPON, "butch/flak.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);
- launch_spike_butcher (self.origin + '0 0 16', dir + v_right* 0.1 * (random() - 0.5) + v_up* 0.1 * (random() - 0.5)); //0.08
- launch_spike_butcher (self.origin + '0 0 16', dir + v_right* 0.1 * (random() - 0.5) + v_up* 0.1 * (random() - 0.5)); //0.08
- launch_spike_butcher (self.origin + '0 0 16', dir + v_right* 0.1 * (random() - 0.5) + v_up* 0.1 * (random() - 0.5)); //0.08
- launch_spike_butcher (self.origin + '0 0 16', dir + v_right* 0.1 * (random() - 0.5) + v_up* 0.1 * (random() - 0.5)); //0.08
- launch_spike_butcher (self.origin + '0 0 16', dir + v_right* 0.1 * (random() - 0.5) + v_up* 0.1 * (random() - 0.5)); //0.08
- };
- //=============================================================================
- /*
- ================
- chainsaw
- FIXME
- ================
- */
- void(float side) chainsaw =
- {
- local vector delta;
- local float ldmg;
- if (!self.enemy)
- return;
- if (!CanDamage (self.enemy, self))
- return;
- ai_charge(10);
- delta = self.enemy.origin - self.origin;
- if (vlen(delta) > 100)
- return;
- ldmg = (random() + random() + random()) * 4;
- T_Damage (self.enemy, self, self, ldmg);
- if (side)
- {
- makevectors (self.angles);
- if (side == 1)
- SpawnMeatSpray (self.origin + v_forward*16, crandom() * 100 * v_right);
- else
- SpawnMeatSpray (self.origin + v_forward*16, side * v_right);
- }
- };
- void() butch_stand1 =[ $stand1, butch_stand2 ] {ai_stand();};
- void() butch_stand2 =[ $stand2, butch_stand3 ] {ai_stand();};
- void() butch_stand3 =[ $stand3, butch_stand4 ] {ai_stand();};
- void() butch_stand4 =[ $stand4, butch_stand5 ] {ai_stand();};
- void() butch_stand5 =[ $stand5, butch_stand6 ] {
- if (random() < 0.2)
- sound (self, CHAN_VOICE, "butch/ogidle.wav", 1, ATTN_IDLE);
- ai_stand();
- };
- void() butch_stand6 =[ $stand6, butch_stand7 ] {ai_stand();};
- void() butch_stand7 =[ $stand7, butch_stand8 ] {ai_stand();};
- void() butch_stand8 =[ $stand8, butch_stand9 ] {ai_stand();};
- void() butch_stand9 =[ $stand9, butch_stand1 ] {ai_stand();};
- void() butch_walk1 =[ $walk1, butch_walk2 ] {ai_walk(3);};
- void() butch_walk2 =[ $walk2, butch_walk3 ] {ai_walk(2);};
- void() butch_walk3 =[ $walk3, butch_walk4 ] {
- ai_walk(2);
- if (random() < 0.2)
- sound (self, CHAN_VOICE, "butch/ogidle.wav", 1, ATTN_IDLE);
- };
- void() butch_walk4 =[ $walk4, butch_walk5 ] {ai_walk(2);};
- void() butch_walk5 =[ $walk5, butch_walk6 ] {ai_walk(2);};
- void() butch_walk6 =[ $walk6, butch_walk7 ] {
- ai_walk(5);
- if (random() < 0.1)
- sound (self, CHAN_VOICE, "butch/ogdrag.wav", 1, ATTN_IDLE);
- };
- void() butch_walk7 =[ $walk7, butch_walk8 ] {ai_walk(3);};
- void() butch_walk8 =[ $walk8, butch_walk9 ] {ai_walk(2);};
- void() butch_walk9 =[ $walk9, butch_walk10 ] {ai_walk(3);};
- void() butch_walk10 =[ $walk10, butch_walk11 ] {ai_walk(1);};
- void() butch_walk11 =[ $walk11, butch_walk12 ] {ai_walk(2);};
- void() butch_walk12 =[ $walk12, butch_walk13 ] {ai_walk(3);};
- void() butch_walk13 =[ $walk13, butch_walk14 ] {ai_walk(3);};
- void() butch_walk14 =[ $walk14, butch_walk15 ] {ai_walk(3);};
- void() butch_walk15 =[ $walk15, butch_walk16 ] {ai_walk(3);};
- void() butch_walk16 =[ $walk16, butch_walk1 ] {ai_walk(4);};
- void() butch_run1 =[ $run1, butch_run2 ] {ai_run(9);
- if (random() < 0.2)
- sound (self, CHAN_VOICE, "butch/ogidle2.wav", 1, ATTN_IDLE);
- };
- void() butch_run2 =[ $run2, butch_run3 ] {ai_run(12);};
- void() butch_run3 =[ $run3, butch_run4 ] {ai_run(8);};
- void() butch_run4 =[ $run4, butch_run5 ] {ai_run(22);};
- void() butch_run5 =[ $run5, butch_run6 ] {ai_run(16);};
- void() butch_run6 =[ $run6, butch_run7 ] {ai_run(4);};
- void() butch_run7 =[ $run7, butch_run8 ] {ai_run(13);};
- void() butch_run8 =[ $run8, butch_run1 ] {ai_run(24);};
- void() butch_swing1 =[ $swing1, butch_swing2 ] {ai_charge(11);
- sound (self, CHAN_WEAPON, "butch/ogsawatk.wav", 1, ATTN_NORM);
- };
- void() butch_swing2 =[ $swing2, butch_swing3 ] {ai_charge(1);};
- void() butch_swing3 =[ $swing3, butch_swing4 ] {ai_charge(4);};
- void() butch_swing4 =[ $swing4, butch_swing5 ] {ai_charge(13);};
- void() butch_swing5 =[ $swing5, butch_swing6 ] {ai_charge(9); chainsaw(0);self.angles_y = self.angles_y + random()*25;};
- void() butch_swing6 =[ $swing6, butch_swing7 ] {chainsaw(200);self.angles_y = self.angles_y + random()* 25;};
- void() butch_swing7 =[ $swing7, butch_swing8 ] {chainsaw(0);self.angles_y = self.angles_y + random()* 25;};
- void() butch_swing8 =[ $swing8, butch_swing9 ] {chainsaw(0);self.angles_y = self.angles_y + random()* 25;};
- void() butch_swing9 =[ $swing9, butch_swing10 ] {chainsaw(0);self.angles_y = self.angles_y + random()* 25;};
- void() butch_swing10 =[ $swing10, butch_swing11 ] {chainsaw(-200);self.angles_y = self.angles_y + random()* 25;};
- void() butch_swing11 =[ $swing11, butch_swing12 ] {chainsaw(0);self.angles_y = self.angles_y + random()* 25;};
- void() butch_swing12 =[ $swing12, butch_swing13 ] {ai_charge(3);};
- void() butch_swing13 =[ $swing13, butch_swing14 ] {ai_charge(8);};
- void() butch_swing14 =[ $swing14, butch_run1 ] {ai_charge(9);};
- void() butch_smash1 =[ $smash1, butch_smash2 ] {ai_charge(6);
- sound (self, CHAN_WEAPON, "butch/ogsawatk.wav", 1, ATTN_NORM);
- };
- void() butch_smash2 =[ $smash2, butch_smash3 ] {ai_charge(0);};
- void() butch_smash3 =[ $smash3, butch_smash4 ] {ai_charge(0);};
- void() butch_smash4 =[ $smash4, butch_smash5 ] {ai_charge(1);};
- void() butch_smash5 =[ $smash5, butch_smash6 ] {ai_charge(4);};
- void() butch_smash6 =[ $smash6, butch_smash7 ] {ai_charge(4); chainsaw(0);};
- void() butch_smash7 =[ $smash7, butch_smash8 ] {ai_charge(4); chainsaw(0);};
- void() butch_smash8 =[ $smash8, butch_smash9 ] {ai_charge(10); chainsaw(0);};
- void() butch_smash9 =[ $smash9, butch_smash10 ] {ai_charge(13); chainsaw(0);};
- void() butch_smash10 =[ $smash10, butch_smash11 ] {chainsaw(1);};
- void() butch_smash11 =[ $smash11, butch_smash12 ] {ai_charge(2); chainsaw(0);
- self.nextthink = self.nextthink + random()*0.2;}; // slight variation
- void() butch_smash12 =[ $smash12, butch_smash13 ] {ai_charge();};
- void() butch_smash13 =[ $smash13, butch_smash14 ] {ai_charge(4);};
- void() butch_smash14 =[ $smash14, butch_run1 ] {ai_charge(12);};
- void() butch_nail1 =[ $shoot1, butch_nail2 ] {ai_face();};
- void() butch_nail2 =[ $shoot2, butch_nail3 ] {ai_face();};
- void() butch_nail3 =[ $shoot2, butch_nail4 ] {ai_face();};
- void() butch_nail4 =[ $shoot3, butch_nail5 ] {ai_face();FlakFire();};
- void() butch_nail5 =[ $shoot4, butch_nail6 ] {ai_face();};
- void() butch_nail6 =[ $shoot5, butch_nail7 ] {ai_face();};
- void() butch_nail7 =[ $shoot6, butch_run1 ] {ai_face();};
- void() butch_pain1 =[ $pain1, butch_pain2 ] {};
- void() butch_pain2 =[ $pain2, butch_pain3 ] {};
- void() butch_pain3 =[ $pain3, butch_pain4 ] {};
- void() butch_pain4 =[ $pain4, butch_pain5 ] {};
- void() butch_pain5 =[ $pain5, butch_run1 ] {};
- void() butch_painb1 =[ $painb1, butch_painb2 ] {};
- void() butch_painb2 =[ $painb2, butch_painb3 ] {};
- void() butch_painb3 =[ $painb3, butch_run1 ] {};
- void() butch_painc1 =[ $painc1, butch_painc2 ] {};
- void() butch_painc2 =[ $painc2, butch_painc3 ] {};
- void() butch_painc3 =[ $painc3, butch_painc4 ] {};
- void() butch_painc4 =[ $painc4, butch_painc5 ] {};
- void() butch_painc5 =[ $painc5, butch_painc6 ] {};
- void() butch_painc6 =[ $painc6, butch_run1 ] {};
- void() butch_paind1 =[ $paind1, butch_paind2 ] {};
- void() butch_paind2 =[ $paind2, butch_paind3 ] {ai_pain(10);};
- void() butch_paind3 =[ $paind3, butch_paind4 ] {ai_pain(9);};
- void() butch_paind4 =[ $paind4, butch_paind5 ] {ai_pain(4);};
- void() butch_paind5 =[ $paind5, butch_paind6 ] {};
- void() butch_paind6 =[ $paind6, butch_paind7 ] {};
- void() butch_paind7 =[ $paind7, butch_paind8 ] {};
- void() butch_paind8 =[ $paind8, butch_paind9 ] {};
- void() butch_paind9 =[ $paind9, butch_paind10 ] {};
- void() butch_paind10=[ $paind10, butch_paind11 ] {};
- void() butch_paind11=[ $paind11, butch_paind12 ] {};
- void() butch_paind12=[ $paind12, butch_paind13 ] {};
- void() butch_paind13=[ $paind13, butch_paind14 ] {};
- void() butch_paind14=[ $paind14, butch_paind15 ] {};
- void() butch_paind15=[ $paind15, butch_paind16 ] {};
- void() butch_paind16=[ $paind16, butch_run1 ] {};
- void() butch_paine1 =[ $paine1, butch_paine2 ] {};
- void() butch_paine2 =[ $paine2, butch_paine3 ] {ai_pain(10);};
- void() butch_paine3 =[ $paine3, butch_paine4 ] {ai_pain(9);};
- void() butch_paine4 =[ $paine4, butch_paine5 ] {ai_pain(4);};
- void() butch_paine5 =[ $paine5, butch_paine6 ] {};
- void() butch_paine6 =[ $paine6, butch_paine7 ] {};
- void() butch_paine7 =[ $paine7, butch_paine8 ] {};
- void() butch_paine8 =[ $paine8, butch_paine9 ] {};
- void() butch_paine9 =[ $paine9, butch_paine10 ] {};
- void() butch_paine10=[ $paine10, butch_paine11 ] {};
- void() butch_paine11=[ $paine11, butch_paine12 ] {};
- void() butch_paine12=[ $paine12, butch_paine13 ] {};
- void() butch_paine13=[ $paine13, butch_paine14 ] {};
- void() butch_paine14=[ $paine14, butch_paine15 ] {};
- void() butch_paine15=[ $paine15, butch_run1 ] {};
- void(entity attacker, float damage) butch_pain =
- {
- local float r;
- // don't make multiple pain sounds right after each other
- if (self.pain_finished > time)
- return;
- sound (self, CHAN_VOICE, "butch/ogpain1.wav", 1, ATTN_NORM);
- r = random();
- if (r < 0.25)
- {
- butch_pain1 ();
- self.pain_finished = time + 1;
- }
- else if (r < 0.5)
- {
- butch_painb1 ();
- self.pain_finished = time + 1;
- }
- else if (r < 0.75)
- {
- butch_painc1 ();
- self.pain_finished = time + 1;
- }
- else if (r < 0.88)
- {
- butch_paind1 ();
- self.pain_finished = time + 2;
- }
- else
- {
- butch_paine1 ();
- self.pain_finished = time + 2;
- }
- };
- void() butch_die1 =[ $death1, butch_die2 ] {};
- void() butch_die2 =[ $death2, butch_die3 ] {};
- void() butch_die3 =[ $death3, butch_die4 ]
- {self.solid = SOLID_NOT;
- self.ammo_rockets = 2;DropBackpack();};
- void() butch_die4 =[ $death4, butch_die5 ] {};
- void() butch_die5 =[ $death5, butch_die6 ] {};
- void() butch_die6 =[ $death6, butch_die7 ] {};
- void() butch_die7 =[ $death7, butch_die8 ] {};
- void() butch_die8 =[ $death8, butch_die9 ] {};
- void() butch_die9 =[ $death9, butch_die10 ] {};
- void() butch_die10 =[ $death10, butch_die11 ] {};
- void() butch_die11 =[ $death11, butch_die12 ] {};
- void() butch_die12 =[ $death12, butch_die13 ] {};
- void() butch_die13 =[ $death13, butch_die14 ] {};
- void() butch_die14 =[ $death14, butch_die14 ] {};
- void() butch_bdie1 =[ $bdeath1, butch_bdie2 ] {};
- void() butch_bdie2 =[ $bdeath2, butch_bdie3 ] {ai_forward(5);};
- void() butch_bdie3 =[ $bdeath3, butch_bdie4 ]
- {self.solid = SOLID_NOT;
- self.ammo_rockets = 2;DropBackpack();};
- void() butch_bdie4 =[ $bdeath4, butch_bdie5 ] {ai_forward(1);};
- void() butch_bdie5 =[ $bdeath5, butch_bdie6 ] {ai_forward(3);};
- void() butch_bdie6 =[ $bdeath6, butch_bdie7 ] {ai_forward(7);};
- void() butch_bdie7 =[ $bdeath7, butch_bdie8 ] {ai_forward(25);};
- void() butch_bdie8 =[ $bdeath8, butch_bdie9 ] {};
- void() butch_bdie9 =[ $bdeath9, butch_bdie10 ] {};
- void() butch_bdie10 =[ $bdeath10, butch_bdie10 ] {};
- void() butch_die =
- {
- // check for gib
- if (self.health < -80)
- {
- sound (self, CHAN_VOICE, "player/udeath.wav", 1, ATTN_NORM);
- ThrowHead ("progs/h_butch.mdl", self.health);
- ThrowGib ("progs/gib3.mdl", self.health);
- ThrowGib ("progs/gib3.mdl", self.health);
- ThrowGib ("progs/gib3.mdl", self.health);
- return;
- }
- sound (self, CHAN_VOICE, "butch/ogdth.wav", 1, ATTN_NORM);
- if (random() < 0.5)
- butch_die1 ();
- else
- butch_bdie1 ();
- };
- void() butch_melee =
- {
- if (random() > 0.5)
- butch_smash1 ();
- else
- butch_swing1 ();
- };
- /*QUAKED monster_butch (1 0 0) (-32 -32 -24) (32 32 64) Ambush
- */
- void() monster_butcher =
- {
- if (deathmatch)
- {
- remove(self);
- return;
- }
- precache_model ("progs/butch.mdl");
- precache_model ("progs/h_butch.mdl");
- precache_model ("progs/spike.mdl");
- precache_sound ("butch/ogdrag.wav");
- precache_sound ("butch/ogdth.wav");
- precache_sound ("butch/ogidle.wav");
- precache_sound ("butch/ogidle2.wav");
- precache_sound ("butch/ogpain1.wav");
- precache_sound ("butch/ogsawatk.wav");
- precache_sound ("butch/ogwake.wav");
- self.solid = SOLID_SLIDEBOX;
- self.movetype = MOVETYPE_STEP;
- setmodel (self, "progs/butch.mdl");
- setsize (self, VEC_HULL2_MIN, VEC_HULL2_MAX);
- self.health = 200;
- self.th_stand = butch_stand1;
- self.th_walk = butch_walk1;
- self.th_run = butch_run1;
- self.th_die = butch_die;
- self.th_melee = butch_melee;
- self.th_missile = butch_nail1;
- self.th_pain = butch_pain;
- walkmonster_start();
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement