Annotation of quakeworld/progs/player.qc, revision 1.1

1.1     ! root        1: 
        !             2: void() bubble_bob;
        !             3: 
        !             4: /*
        !             5: ==============================================================================
        !             6: 
        !             7: PLAYER
        !             8: 
        !             9: ==============================================================================
        !            10: */
        !            11: 
        !            12: $cd /raid/quake/id1/models/player_4
        !            13: $origin 0 -6 24
        !            14: $base base              
        !            15: $skin skin
        !            16: 
        !            17: //
        !            18: // running
        !            19: //
        !            20: $frame axrun1 axrun2 axrun3 axrun4 axrun5 axrun6
        !            21: 
        !            22: $frame rockrun1 rockrun2 rockrun3 rockrun4 rockrun5 rockrun6
        !            23: 
        !            24: //
        !            25: // standing
        !            26: //
        !            27: $frame stand1 stand2 stand3 stand4 stand5
        !            28: 
        !            29: $frame axstnd1 axstnd2 axstnd3 axstnd4 axstnd5 axstnd6
        !            30: $frame axstnd7 axstnd8 axstnd9 axstnd10 axstnd11 axstnd12
        !            31: 
        !            32: 
        !            33: //
        !            34: // pain
        !            35: //
        !            36: $frame axpain1 axpain2 axpain3 axpain4 axpain5 axpain6
        !            37: 
        !            38: $frame pain1 pain2 pain3 pain4 pain5 pain6
        !            39: 
        !            40: 
        !            41: //
        !            42: // death
        !            43: //
        !            44: 
        !            45: $frame axdeth1 axdeth2 axdeth3 axdeth4 axdeth5 axdeth6
        !            46: $frame axdeth7 axdeth8 axdeth9
        !            47: 
        !            48: $frame deatha1 deatha2 deatha3 deatha4 deatha5 deatha6 deatha7 deatha8
        !            49: $frame deatha9 deatha10 deatha11
        !            50: 
        !            51: $frame deathb1 deathb2 deathb3 deathb4 deathb5 deathb6 deathb7 deathb8
        !            52: $frame deathb9
        !            53: 
        !            54: $frame deathc1 deathc2 deathc3 deathc4 deathc5 deathc6 deathc7 deathc8
        !            55: $frame deathc9 deathc10 deathc11 deathc12 deathc13 deathc14 deathc15
        !            56: 
        !            57: $frame deathd1 deathd2 deathd3 deathd4 deathd5 deathd6 deathd7
        !            58: $frame deathd8 deathd9
        !            59: 
        !            60: $frame deathe1 deathe2 deathe3 deathe4 deathe5 deathe6 deathe7
        !            61: $frame deathe8 deathe9
        !            62: 
        !            63: //
        !            64: // attacks
        !            65: //
        !            66: $frame nailatt1 nailatt2
        !            67: 
        !            68: $frame light1 light2
        !            69: 
        !            70: $frame rockatt1 rockatt2 rockatt3 rockatt4 rockatt5 rockatt6
        !            71: 
        !            72: $frame shotatt1 shotatt2 shotatt3 shotatt4 shotatt5 shotatt6
        !            73: 
        !            74: $frame axatt1 axatt2 axatt3 axatt4 axatt5 axatt6
        !            75: 
        !            76: $frame axattb1 axattb2 axattb3 axattb4 axattb5 axattb6
        !            77: 
        !            78: $frame axattc1 axattc2 axattc3 axattc4 axattc5 axattc6
        !            79: 
        !            80: $frame axattd1 axattd2 axattd3 axattd4 axattd5 axattd6
        !            81: 
        !            82: 
        !            83: /*
        !            84: ==============================================================================
        !            85: PLAYER
        !            86: ==============================================================================
        !            87: */
        !            88: 
        !            89: void() player_run;
        !            90: 
        !            91: void()  player_stand1 =[        $axstnd1,       player_stand1   ]
        !            92: {
        !            93:        self.weaponframe=0;
        !            94:        if (self.velocity_x || self.velocity_y)
        !            95:        {
        !            96:                self.walkframe=0;
        !            97:                player_run();
        !            98:                return;
        !            99:        }
        !           100: 
        !           101:        if (self.weapon == IT_AXE)
        !           102:        {
        !           103:                if (self.walkframe >= 12)
        !           104:                        self.walkframe = 0;
        !           105:                self.frame = $axstnd1 + self.walkframe;
        !           106:        }
        !           107:        else
        !           108:        {
        !           109:                if (self.walkframe >= 5)
        !           110:                        self.walkframe = 0;
        !           111:                self.frame = $stand1 + self.walkframe;
        !           112:        }
        !           113:        self.walkframe = self.walkframe + 1;    
        !           114: };
        !           115: 
        !           116: void()  player_run =[   $rockrun1,      player_run      ]
        !           117: {
        !           118:        self.weaponframe=0;
        !           119:        if (!self.velocity_x && !self.velocity_y)
        !           120:        {
        !           121:                self.walkframe=0;
        !           122:                player_stand1();
        !           123:                return;
        !           124:        }
        !           125: 
        !           126:        if (self.weapon == IT_AXE)
        !           127:        {
        !           128:                if (self.walkframe == 6)
        !           129:                        self.walkframe = 0;
        !           130:                self.frame = $axrun1 + self.walkframe;
        !           131:        }
        !           132:        else
        !           133:        {
        !           134:                if (self.walkframe == 6)
        !           135:                        self.walkframe = 0;
        !           136:                self.frame = self.frame + self.walkframe;
        !           137:        }
        !           138:        self.walkframe = self.walkframe + 1;
        !           139: };
        !           140: 
        !           141: void()muzzleflash =
        !           142: {
        !           143:        WriteByte (MSG_MULTICAST, SVC_MUZZLEFLASH);
        !           144:        WriteEntity (MSG_MULTICAST, self);
        !           145:        multicast (self.origin, MULTICAST_PVS);
        !           146: };
        !           147: 
        !           148: 
        !           149: void()  player_shot1 =  [$shotatt1, player_shot2        ] {self.weaponframe=1;muzzleflash();};
        !           150: void()  player_shot2 =  [$shotatt2, player_shot3        ] {self.weaponframe=2;};
        !           151: void()  player_shot3 =  [$shotatt3, player_shot4        ] {self.weaponframe=3;};
        !           152: void()  player_shot4 =  [$shotatt4, player_shot5        ] {self.weaponframe=4;};
        !           153: void()  player_shot5 =  [$shotatt5, player_shot6        ] {self.weaponframe=5;};
        !           154: void()  player_shot6 =  [$shotatt6, player_run  ] {self.weaponframe=6;};
        !           155: 
        !           156: void()  player_axe1 =   [$axatt1, player_axe2   ] {self.weaponframe=1;};
        !           157: void()  player_axe2 =   [$axatt2, player_axe3   ] {self.weaponframe=2;};
        !           158: void()  player_axe3 =   [$axatt3, player_axe4   ] {self.weaponframe=3;W_FireAxe();};
        !           159: void()  player_axe4 =   [$axatt4, player_run    ] {self.weaponframe=4;};
        !           160: 
        !           161: void()  player_axeb1 =  [$axattb1, player_axeb2 ] {self.weaponframe=5;};
        !           162: void()  player_axeb2 =  [$axattb2, player_axeb3 ] {self.weaponframe=6;};
        !           163: void()  player_axeb3 =  [$axattb3, player_axeb4 ] {self.weaponframe=7;W_FireAxe();};
        !           164: void()  player_axeb4 =  [$axattb4, player_run   ] {self.weaponframe=8;};
        !           165: 
        !           166: void()  player_axec1 =  [$axattc1, player_axec2 ] {self.weaponframe=1;};
        !           167: void()  player_axec2 =  [$axattc2, player_axec3 ] {self.weaponframe=2;};
        !           168: void()  player_axec3 =  [$axattc3, player_axec4 ] {self.weaponframe=3;W_FireAxe();};
        !           169: void()  player_axec4 =  [$axattc4, player_run   ] {self.weaponframe=4;};
        !           170: 
        !           171: void()  player_axed1 =  [$axattd1, player_axed2 ] {self.weaponframe=5;};
        !           172: void()  player_axed2 =  [$axattd2, player_axed3 ] {self.weaponframe=6;};
        !           173: void()  player_axed3 =  [$axattd3, player_axed4 ] {self.weaponframe=7;W_FireAxe();};
        !           174: void()  player_axed4 =  [$axattd4, player_run   ] {self.weaponframe=8;};
        !           175: 
        !           176: 
        !           177: //============================================================================
        !           178: 
        !           179: void() player_nail1   =[$nailatt1, player_nail2  ] 
        !           180: {
        !           181:        muzzleflash();
        !           182: 
        !           183:        if (!self.button0 || intermission_running || self.impulse)
        !           184:                {player_run ();return;}
        !           185:        self.weaponframe = self.weaponframe + 1;
        !           186:        if (self.weaponframe == 9)
        !           187:                self.weaponframe = 1;
        !           188:        SuperDamageSound();
        !           189:        W_FireSpikes (4);
        !           190:        self.attack_finished = time + 0.2;
        !           191: };
        !           192: void() player_nail2   =[$nailatt2, player_nail1  ]
        !           193: {
        !           194:        muzzleflash();
        !           195: 
        !           196:        if (!self.button0 || intermission_running || self.impulse)
        !           197:                {player_run ();return;}
        !           198:        self.weaponframe = self.weaponframe + 1;
        !           199:        if (self.weaponframe == 9)
        !           200:                self.weaponframe = 1;
        !           201:        SuperDamageSound();
        !           202:        W_FireSpikes (-4);
        !           203:        self.attack_finished = time + 0.2;
        !           204: };
        !           205: 
        !           206: //============================================================================
        !           207: 
        !           208: void() player_light1   =[$light1, player_light2  ] 
        !           209: {
        !           210:        muzzleflash();
        !           211: 
        !           212:        if (!self.button0 || intermission_running)
        !           213:                {player_run ();return;}
        !           214:        self.weaponframe = self.weaponframe + 1;
        !           215:        if (self.weaponframe == 5)
        !           216:                self.weaponframe = 1;
        !           217:        SuperDamageSound();
        !           218:        W_FireLightning();
        !           219:        self.attack_finished = time + 0.2;
        !           220: };
        !           221: void() player_light2   =[$light2, player_light1  ]
        !           222: {
        !           223:        muzzleflash();
        !           224: 
        !           225:        if (!self.button0 || intermission_running)
        !           226:                {player_run ();return;}
        !           227:        self.weaponframe = self.weaponframe + 1;
        !           228:        if (self.weaponframe == 5)
        !           229:                self.weaponframe = 1;
        !           230:        SuperDamageSound();
        !           231:        W_FireLightning();
        !           232:        self.attack_finished = time + 0.2;
        !           233: };
        !           234: 
        !           235: //============================================================================
        !           236: 
        !           237: 
        !           238: void() player_rocket1   =[$rockatt1, player_rocket2  ] {self.weaponframe=1;
        !           239:        muzzleflash();};
        !           240: void() player_rocket2   =[$rockatt2, player_rocket3  ] {self.weaponframe=2;};
        !           241: void() player_rocket3   =[$rockatt3, player_rocket4  ] {self.weaponframe=3;};
        !           242: void() player_rocket4   =[$rockatt4, player_rocket5  ] {self.weaponframe=4;};
        !           243: void() player_rocket5   =[$rockatt5, player_rocket6  ] {self.weaponframe=5;};
        !           244: void() player_rocket6   =[$rockatt6, player_run  ] {self.weaponframe=6;};
        !           245: void(float num_bubbles) DeathBubbles;
        !           246: 
        !           247: void() PainSound =
        !           248: {
        !           249: local float             rs;
        !           250: 
        !           251:        if (self.health < 0)
        !           252:                return;
        !           253: 
        !           254:        if (damage_attacker.classname == "teledeath")
        !           255:        {
        !           256:                sound (self, CHAN_VOICE, "player/teledth1.wav", 1, ATTN_NONE);
        !           257:                return;
        !           258:        }
        !           259: 
        !           260: // water pain sounds
        !           261:        if (self.watertype == CONTENT_WATER && self.waterlevel == 3)
        !           262:        {
        !           263:                DeathBubbles(1);
        !           264:                if (random() > 0.5)
        !           265:                        sound (self, CHAN_VOICE, "player/drown1.wav", 1, ATTN_NORM);
        !           266:                else
        !           267:                        sound (self, CHAN_VOICE, "player/drown2.wav", 1, ATTN_NORM);
        !           268:                return;
        !           269:        }
        !           270: 
        !           271: // slime pain sounds
        !           272:        if (self.watertype == CONTENT_SLIME)
        !           273:        {
        !           274: // FIX ME       put in some steam here
        !           275:                if (random() > 0.5)
        !           276:                        sound (self, CHAN_VOICE, "player/lburn1.wav", 1, ATTN_NORM);
        !           277:                else
        !           278:                        sound (self, CHAN_VOICE, "player/lburn2.wav", 1, ATTN_NORM);
        !           279:                return;
        !           280:        }
        !           281: 
        !           282:        if (self.watertype == CONTENT_LAVA)
        !           283:        {
        !           284:                if (random() > 0.5)
        !           285:                        sound (self, CHAN_VOICE, "player/lburn1.wav", 1, ATTN_NORM);
        !           286:                else
        !           287:                        sound (self, CHAN_VOICE, "player/lburn2.wav", 1, ATTN_NORM);
        !           288:                return;
        !           289:        }
        !           290: 
        !           291:        if (self.pain_finished > time)
        !           292:        {
        !           293:                self.axhitme = 0;
        !           294:                return;
        !           295:        }
        !           296:        self.pain_finished = time + 0.5;
        !           297: 
        !           298: // don't make multiple pain sounds right after each other
        !           299: 
        !           300: // ax pain sound
        !           301:        if (self.axhitme == 1)
        !           302:        {
        !           303:                self.axhitme = 0;
        !           304:                sound (self, CHAN_VOICE, "player/axhit1.wav", 1, ATTN_NORM);
        !           305:                return;
        !           306:        }
        !           307:        
        !           308: 
        !           309:        rs = rint((random() * 5) + 1);
        !           310: 
        !           311:        self.noise = "";
        !           312:        if (rs == 1)
        !           313:                self.noise = "player/pain1.wav";
        !           314:        else if (rs == 2)
        !           315:                self.noise = "player/pain2.wav";
        !           316:        else if (rs == 3)
        !           317:                self.noise = "player/pain3.wav";
        !           318:        else if (rs == 4)
        !           319:                self.noise = "player/pain4.wav";
        !           320:        else if (rs == 5)
        !           321:                self.noise = "player/pain5.wav";
        !           322:        else
        !           323:                self.noise = "player/pain6.wav";
        !           324: 
        !           325:        sound (self, CHAN_VOICE, self.noise, 1, ATTN_NORM);
        !           326:        return;
        !           327: };
        !           328: 
        !           329: void()  player_pain1 =  [       $pain1, player_pain2    ] {PainSound();self.weaponframe=0;};
        !           330: void()  player_pain2 =  [       $pain2, player_pain3    ] {};
        !           331: void()  player_pain3 =  [       $pain3, player_pain4    ] {};
        !           332: void()  player_pain4 =  [       $pain4, player_pain5    ] {};
        !           333: void()  player_pain5 =  [       $pain5, player_pain6    ] {};
        !           334: void()  player_pain6 =  [       $pain6, player_run      ] {};
        !           335: 
        !           336: void()  player_axpain1 =        [       $axpain1,       player_axpain2  ] {PainSound();self.weaponframe=0;};
        !           337: void()  player_axpain2 =        [       $axpain2,       player_axpain3  ] {};
        !           338: void()  player_axpain3 =        [       $axpain3,       player_axpain4  ] {};
        !           339: void()  player_axpain4 =        [       $axpain4,       player_axpain5  ] {};
        !           340: void()  player_axpain5 =        [       $axpain5,       player_axpain6  ] {};
        !           341: void()  player_axpain6 =        [       $axpain6,       player_run      ] {};
        !           342: 
        !           343: void() player_pain =
        !           344: {
        !           345:        if (self.weaponframe)
        !           346:                return;
        !           347: 
        !           348:        if (self.invisible_finished > time)
        !           349:                return;         // eyes don't have pain frames
        !           350: 
        !           351:        if (self.weapon == IT_AXE)
        !           352:                player_axpain1 ();
        !           353:        else
        !           354:                player_pain1 ();
        !           355: };
        !           356: 
        !           357: void() player_diea1;
        !           358: void() player_dieb1;
        !           359: void() player_diec1;
        !           360: void() player_died1;
        !           361: void() player_diee1;
        !           362: void() player_die_ax1;
        !           363: 
        !           364: void() DeathBubblesSpawn =
        !           365: {
        !           366: local entity    bubble;
        !           367:        if (self.owner.waterlevel != 3)
        !           368:                return;
        !           369:        bubble = spawn();
        !           370:        setmodel (bubble, "progs/s_bubble.spr");
        !           371:        setorigin (bubble, self.owner.origin + '0 0 24');
        !           372:        bubble.movetype = MOVETYPE_NOCLIP;
        !           373:        bubble.solid = SOLID_NOT;
        !           374:        bubble.velocity = '0 0 15';
        !           375:        bubble.nextthink = time + 0.5;
        !           376:        bubble.think = bubble_bob;
        !           377:        bubble.classname = "bubble";
        !           378:        bubble.frame = 0;
        !           379:        bubble.cnt = 0;
        !           380:        setsize (bubble, '-8 -8 -8', '8 8 8');
        !           381:        self.nextthink = time + 0.1;
        !           382:        self.think = DeathBubblesSpawn;
        !           383:        self.air_finished = self.air_finished + 1;
        !           384:        if (self.air_finished >= self.bubble_count)
        !           385:                remove(self);
        !           386: };
        !           387: 
        !           388: void(float num_bubbles) DeathBubbles =
        !           389: {
        !           390: local entity    bubble_spawner;
        !           391:        
        !           392:        bubble_spawner = spawn();
        !           393:        setorigin (bubble_spawner, self.origin);
        !           394:        bubble_spawner.movetype = MOVETYPE_NONE;
        !           395:        bubble_spawner.solid = SOLID_NOT;
        !           396:        bubble_spawner.nextthink = time + 0.1;
        !           397:        bubble_spawner.think = DeathBubblesSpawn;
        !           398:        bubble_spawner.air_finished = 0;
        !           399:        bubble_spawner.owner = self;
        !           400:        bubble_spawner.bubble_count = num_bubbles;
        !           401:        return;
        !           402: };
        !           403: 
        !           404: 
        !           405: void() DeathSound =
        !           406: {
        !           407: local float             rs;
        !           408: 
        !           409:        // water death sounds
        !           410:        if (self.waterlevel == 3)
        !           411:        {
        !           412:                DeathBubbles(5);
        !           413:                sound (self, CHAN_VOICE, "player/h2odeath.wav", 1, ATTN_NONE);
        !           414:                return;
        !           415:        }
        !           416:        
        !           417:        rs = rint ((random() * 4) + 1);
        !           418:        if (rs == 1)
        !           419:                self.noise = "player/death1.wav";
        !           420:        if (rs == 2)
        !           421:                self.noise = "player/death2.wav";
        !           422:        if (rs == 3)
        !           423:                self.noise = "player/death3.wav";
        !           424:        if (rs == 4)
        !           425:                self.noise = "player/death4.wav";
        !           426:        if (rs == 5)
        !           427:                self.noise = "player/death5.wav";
        !           428: 
        !           429:        sound (self, CHAN_VOICE, self.noise, 1, ATTN_NONE);
        !           430:        return;
        !           431: };
        !           432: 
        !           433: 
        !           434: void() PlayerDead =
        !           435: {
        !           436:        self.nextthink = -1;
        !           437: // allow respawn after a certain time
        !           438:        self.deadflag = DEAD_DEAD;
        !           439: };
        !           440: 
        !           441: vector(float dm) VelocityForDamage =
        !           442: {
        !           443:        local vector v;
        !           444: 
        !           445:        if (vlen(damage_inflictor.velocity)>0)
        !           446:        {
        !           447:                v = 0.5 * damage_inflictor.velocity;
        !           448:                v = v + (25 * normalize(self.origin-damage_inflictor.origin));
        !           449:                v_z = 100 + 240 * random();
        !           450:                v_x = v_x + (200 * crandom());
        !           451:                v_y = v_y + (200 * crandom());
        !           452:                //dprint ("Velocity gib\n");                
        !           453:        }
        !           454:        else
        !           455:        {
        !           456:                v_x = 100 * crandom();
        !           457:                v_y = 100 * crandom();
        !           458:                v_z = 200 + 100 * random();
        !           459:        }
        !           460: 
        !           461:        //v_x = 100 * crandom();
        !           462:        //v_y = 100 * crandom();
        !           463:        //v_z = 200 + 100 * random();
        !           464: 
        !           465:        if (dm > -50)
        !           466:        {
        !           467:        //      dprint ("level 1\n");
        !           468:                v = v * 0.7;
        !           469:        }
        !           470:        else if (dm > -200)
        !           471:        {
        !           472:        //      dprint ("level 3\n");
        !           473:                v = v * 2;
        !           474:        }
        !           475:        else
        !           476:                v = v * 10;
        !           477: 
        !           478:        return v;
        !           479: };
        !           480: 
        !           481: void(string gibname, float dm) ThrowGib =
        !           482: {
        !           483:        local   entity new;
        !           484: 
        !           485:        new = spawn();
        !           486:        new.origin = self.origin;
        !           487:        setmodel (new, gibname);
        !           488:        setsize (new, '0 0 0', '0 0 0');
        !           489:        new.velocity = VelocityForDamage (dm);
        !           490:        new.movetype = MOVETYPE_BOUNCE;
        !           491:        new.solid = SOLID_NOT;
        !           492:        new.avelocity_x = random()*600;
        !           493:        new.avelocity_y = random()*600;
        !           494:        new.avelocity_z = random()*600;
        !           495:        new.think = SUB_Remove;
        !           496:        new.ltime = time;
        !           497:        new.nextthink = time + 10 + random()*10;
        !           498:        new.frame = 0;
        !           499:        new.flags = 0;
        !           500: };
        !           501: 
        !           502: void(string gibname, float dm) ThrowHead =
        !           503: {
        !           504:        setmodel (self, gibname);
        !           505:        self.frame = 0;
        !           506:        self.nextthink = -1;
        !           507:        self.movetype = MOVETYPE_BOUNCE;
        !           508:        self.takedamage = DAMAGE_NO;
        !           509:        self.solid = SOLID_NOT;
        !           510:        self.view_ofs = '0 0 8';
        !           511:        setsize (self, '-16 -16 0', '16 16 56');
        !           512:        self.velocity = VelocityForDamage (dm);
        !           513:        self.origin_z = self.origin_z - 24;
        !           514:        self.flags = self.flags - (self.flags & FL_ONGROUND);
        !           515:        self.avelocity = crandom() * '0 600 0';
        !           516: };
        !           517: 
        !           518: 
        !           519: void() GibPlayer =
        !           520: {
        !           521:        ThrowHead ("progs/h_player.mdl", self.health);
        !           522:        ThrowGib ("progs/gib1.mdl", self.health);
        !           523:        ThrowGib ("progs/gib2.mdl", self.health);
        !           524:        ThrowGib ("progs/gib3.mdl", self.health);
        !           525: 
        !           526:        self.deadflag = DEAD_DEAD;
        !           527: 
        !           528:        if (damage_attacker.classname == "teledeath")
        !           529:        {
        !           530:                sound (self, CHAN_VOICE, "player/teledth1.wav", 1, ATTN_NONE);
        !           531:                return;
        !           532:        }
        !           533: 
        !           534:        if (damage_attacker.classname == "teledeath2")
        !           535:        {
        !           536:                sound (self, CHAN_VOICE, "player/teledth1.wav", 1, ATTN_NONE);
        !           537:                return;
        !           538:        }
        !           539:                
        !           540:        if (random() < 0.5)
        !           541:                sound (self, CHAN_VOICE, "player/gib.wav", 1, ATTN_NONE);
        !           542:        else
        !           543:                sound (self, CHAN_VOICE, "player/udeath.wav", 1, ATTN_NONE);
        !           544: };
        !           545: 
        !           546: void() PlayerDie =
        !           547: {
        !           548:        local   float   i;
        !           549:        local   string  s;      
        !           550:        self.items = self.items - (self.items & IT_INVISIBILITY);
        !           551: 
        !           552:        if ((stof(infokey(world,"dq"))) != 0)
        !           553:        {
        !           554:                if (self.super_damage_finished > 0)
        !           555:                {
        !           556:                        DropQuad (self.super_damage_finished - time);
        !           557:                        bprint (PRINT_LOW, self.netname);
        !           558:                        if (deathmatch == 4)
        !           559:                                bprint (PRINT_LOW, " lost an OctaPower with ");
        !           560:                        else
        !           561:                                bprint (PRINT_LOW, " lost a quad with ");
        !           562:                        s = ftos(rint(self.super_damage_finished - time));
        !           563:                        bprint (PRINT_LOW, s);
        !           564:                        bprint (PRINT_LOW, " seconds remaining\n");
        !           565:                }
        !           566:        }
        !           567: 
        !           568:        if ((stof(infokey(world,"dr"))) != 0)
        !           569:        {
        !           570:                if (self.invisible_finished > 0)
        !           571:                {
        !           572:                        bprint (PRINT_LOW, self.netname);
        !           573:                        bprint (PRINT_LOW, " lost a ring with ");
        !           574:                        s = ftos(rint(self.invisible_finished - time));
        !           575:                        bprint (PRINT_LOW, s);
        !           576:                        bprint (PRINT_LOW, " seconds remaining\n");
        !           577:                        DropRing (self.invisible_finished - time);
        !           578:                }
        !           579:        }
        !           580: 
        !           581:        self.invisible_finished = 0;    // don't die as eyes
        !           582:        self.invincible_finished = 0;
        !           583:        self.super_damage_finished = 0;
        !           584:        self.radsuit_finished = 0;
        !           585:        self.modelindex = modelindex_player;    // don't use eyes
        !           586: 
        !           587:        DropBackpack();
        !           588:        
        !           589:        self.weaponmodel="";
        !           590:        self.view_ofs = '0 0 -8';
        !           591:        self.deadflag = DEAD_DYING;
        !           592:        self.solid = SOLID_NOT;
        !           593:        self.flags = self.flags - (self.flags & FL_ONGROUND);
        !           594:        self.movetype = MOVETYPE_TOSS;
        !           595:        if (self.velocity_z < 10)
        !           596:                self.velocity_z = self.velocity_z + random()*300;
        !           597: 
        !           598:        if (self.health < -40)
        !           599:        {
        !           600:                GibPlayer ();
        !           601:                return;
        !           602:        }
        !           603: 
        !           604:        DeathSound();
        !           605:        
        !           606:        self.angles_x = 0;
        !           607:        self.angles_z = 0;
        !           608:        
        !           609:        if (self.weapon == IT_AXE)
        !           610:        {
        !           611:                player_die_ax1 ();
        !           612:                return;
        !           613:        }
        !           614:        
        !           615:        i = cvar("temp1");
        !           616:        if (!i)
        !           617:                i = 1 + floor(random()*6);
        !           618:        
        !           619:        if (i == 1)
        !           620:                player_diea1();
        !           621:        else if (i == 2)
        !           622:                player_dieb1();
        !           623:        else if (i == 3)
        !           624:                player_diec1();
        !           625:        else if (i == 4)
        !           626:                player_died1();
        !           627:        else
        !           628:                player_diee1();
        !           629: 
        !           630: };
        !           631: 
        !           632: void() set_suicide_frame =
        !           633: {       // used by klill command and diconnect command
        !           634:        if (self.model != "progs/player.mdl")
        !           635:                return; // allready gibbed
        !           636:        self.frame = $deatha11;
        !           637:        self.solid = SOLID_NOT;
        !           638:        self.movetype = MOVETYPE_TOSS;
        !           639:        self.deadflag = DEAD_DEAD;
        !           640:        self.nextthink = -1;
        !           641: };
        !           642: 
        !           643: 
        !           644: void()  player_diea1    =       [       $deatha1,       player_diea2    ] {};
        !           645: void()  player_diea2    =       [       $deatha2,       player_diea3    ] {};
        !           646: void()  player_diea3    =       [       $deatha3,       player_diea4    ] {};
        !           647: void()  player_diea4    =       [       $deatha4,       player_diea5    ] {};
        !           648: void()  player_diea5    =       [       $deatha5,       player_diea6    ] {};
        !           649: void()  player_diea6    =       [       $deatha6,       player_diea7    ] {};
        !           650: void()  player_diea7    =       [       $deatha7,       player_diea8    ] {};
        !           651: void()  player_diea8    =       [       $deatha8,       player_diea9    ] {};
        !           652: void()  player_diea9    =       [       $deatha9,       player_diea10   ] {};
        !           653: void()  player_diea10   =       [       $deatha10,      player_diea11   ] {};
        !           654: void()  player_diea11   =       [       $deatha11,      player_diea11 ] {PlayerDead();};
        !           655: 
        !           656: void()  player_dieb1    =       [       $deathb1,       player_dieb2    ] {};
        !           657: void()  player_dieb2    =       [       $deathb2,       player_dieb3    ] {};
        !           658: void()  player_dieb3    =       [       $deathb3,       player_dieb4    ] {};
        !           659: void()  player_dieb4    =       [       $deathb4,       player_dieb5    ] {};
        !           660: void()  player_dieb5    =       [       $deathb5,       player_dieb6    ] {};
        !           661: void()  player_dieb6    =       [       $deathb6,       player_dieb7    ] {};
        !           662: void()  player_dieb7    =       [       $deathb7,       player_dieb8    ] {};
        !           663: void()  player_dieb8    =       [       $deathb8,       player_dieb9    ] {};
        !           664: void()  player_dieb9    =       [       $deathb9,       player_dieb9    ] {PlayerDead();};
        !           665: 
        !           666: void()  player_diec1    =       [       $deathc1,       player_diec2    ] {};
        !           667: void()  player_diec2    =       [       $deathc2,       player_diec3    ] {};
        !           668: void()  player_diec3    =       [       $deathc3,       player_diec4    ] {};
        !           669: void()  player_diec4    =       [       $deathc4,       player_diec5    ] {};
        !           670: void()  player_diec5    =       [       $deathc5,       player_diec6    ] {};
        !           671: void()  player_diec6    =       [       $deathc6,       player_diec7    ] {};
        !           672: void()  player_diec7    =       [       $deathc7,       player_diec8    ] {};
        !           673: void()  player_diec8    =       [       $deathc8,       player_diec9    ] {};
        !           674: void()  player_diec9    =       [       $deathc9,       player_diec10   ] {};
        !           675: void()  player_diec10   =       [       $deathc10,      player_diec11   ] {};
        !           676: void()  player_diec11   =       [       $deathc11,      player_diec12   ] {};
        !           677: void()  player_diec12   =       [       $deathc12,      player_diec13   ] {};
        !           678: void()  player_diec13   =       [       $deathc13,      player_diec14   ] {};
        !           679: void()  player_diec14   =       [       $deathc14,      player_diec15   ] {};
        !           680: void()  player_diec15   =       [       $deathc15,      player_diec15 ] {PlayerDead();};
        !           681: 
        !           682: void()  player_died1    =       [       $deathd1,       player_died2    ] {};
        !           683: void()  player_died2    =       [       $deathd2,       player_died3    ] {};
        !           684: void()  player_died3    =       [       $deathd3,       player_died4    ] {};
        !           685: void()  player_died4    =       [       $deathd4,       player_died5    ] {};
        !           686: void()  player_died5    =       [       $deathd5,       player_died6    ] {};
        !           687: void()  player_died6    =       [       $deathd6,       player_died7    ] {};
        !           688: void()  player_died7    =       [       $deathd7,       player_died8    ] {};
        !           689: void()  player_died8    =       [       $deathd8,       player_died9    ] {};
        !           690: void()  player_died9    =       [       $deathd9,       player_died9    ] {PlayerDead();};
        !           691: 
        !           692: void()  player_diee1    =       [       $deathe1,       player_diee2    ] {};
        !           693: void()  player_diee2    =       [       $deathe2,       player_diee3    ] {};
        !           694: void()  player_diee3    =       [       $deathe3,       player_diee4    ] {};
        !           695: void()  player_diee4    =       [       $deathe4,       player_diee5    ] {};
        !           696: void()  player_diee5    =       [       $deathe5,       player_diee6    ] {};
        !           697: void()  player_diee6    =       [       $deathe6,       player_diee7    ] {};
        !           698: void()  player_diee7    =       [       $deathe7,       player_diee8    ] {};
        !           699: void()  player_diee8    =       [       $deathe8,       player_diee9    ] {};
        !           700: void()  player_diee9    =       [       $deathe9,       player_diee9    ] {PlayerDead();};
        !           701: 
        !           702: void()  player_die_ax1  =       [       $axdeth1,       player_die_ax2  ] {};
        !           703: void()  player_die_ax2  =       [       $axdeth2,       player_die_ax3  ] {};
        !           704: void()  player_die_ax3  =       [       $axdeth3,       player_die_ax4  ] {};
        !           705: void()  player_die_ax4  =       [       $axdeth4,       player_die_ax5  ] {};
        !           706: void()  player_die_ax5  =       [       $axdeth5,       player_die_ax6  ] {};
        !           707: void()  player_die_ax6  =       [       $axdeth6,       player_die_ax7  ] {};
        !           708: void()  player_die_ax7  =       [       $axdeth7,       player_die_ax8  ] {};
        !           709: void()  player_die_ax8  =       [       $axdeth8,       player_die_ax9  ] {};
        !           710: void()  player_die_ax9  =       [       $axdeth9,       player_die_ax9  ] {PlayerDead();};

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.