|
|
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();};
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.