Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include common_scripts\utility;
- #include maps\mp\_utility;
- #include maps\mp\gametypes\_hud_util;
- main()
- {
- preCacheModel("ch_bunker_doorway_03");
- maps\mp\_load::main();
- thread onPlayerConnect();
- game["allies"] = "marines";
- game["axis"] = "opfor";
- game["attackers"] = "axis";
- game["defenders"] = "allies";
- game["allies_soldiertype"] = "desert";
- game["axis_soldiertype"] = "desert";
- ambientPlay("ambient_convoy");
- setdvar( "r_specularcolorscale", "1" );
- }
- onPlayerConnect()
- {
- for(;;)
- {
- level waittill( "connected", player );
- player thread onPlayerSpawned();
- }
- }
- onPlayerSpawned()
- {
- self endon("disconnect");
- self.weaponpor = "ak47_mp";
- self.greenroof=1;
- self.redroof=1;
- self.ffirst=1;
- self thread getpos();
- self.redsaveshit = (-155154,-514654,-5132168);
- self.saveshit = (-155154,-514654,-5132168);
- self.justtel=0;
- for(;;)
- {
- self waittill("spawned_player");
- {
- self.por=0;
- self thread check();
- self thread testinsh();
- self thread oneweptext();
- self thread onewep();
- self thread checkwep();
- self thread ragdollit();
- }
- }
- }
- ragdollit()
- {
- for(;;)
- {
- self waittill("death");
- self StartRagdoll();
- wait .1;
- return;
- }
- }
- checkwep()
- {
- self endon("death");
- displayPortal = self createFontString( "objective", 1.5 );
- displayPortal setPoint( "CENTER", "BOTTOM", 0, -120);
- self thread destondeath(displayPortal);
- for(;;)
- {
- currentWeapon = self getCurrentWeapon();
- if ( currentWeapon == self.weaponpor)
- {
- displayPortal setText("^2Portal gun!");
- self AllowAds(false);
- self setSpreadOverride(.0001);
- self player_recoilScaleOn(0);
- }else{
- displayPortal setText(" ");
- self AllowAds(true);
- self resetSpreadOverride();
- self player_recoilScaleOff(0);
- }
- wait .2;
- }
- }
- onewep()
- {
- self endon("death");
- if(player useButtonPressed() && player meleeButtonPressed())
- for(;;)
- {
- currentWeapon = self getCurrentWeapon();
- if ( currentWeapon == self.weaponpor && self.por==0)
- {
- self.por=1;
- }
- else
- {
- if ( currentWeapon == self.weaponpor && self.por==1)
- {
- self.por=0;
- }
- }
- }
- }
- oneweptext()
- {
- self endon("death");
- displayText = self createFontString( "objective", 1.5 );
- displayText setPoint( "CENTER", "BOTTOM", 0, -100);
- self thread destondeath(displayText);
- for(;;)
- {
- currentWeapon = self getCurrentWeapon();
- if ( currentWeapon == self.weaponpor && self.por==0)
- {
- displayText setText("^1Red ^0Portal");
- }else{
- if(currentWeapon == self.weaponpor && self.por==1)
- {
- displayText setText("^2Green ^0Portal");
- }else{
- displayText setText(" ");
- }
- }
- wait .2;
- }
- }
- destondeath(name)
- {
- for(;;)
- {
- self waittill("death");
- name destroy();
- }
- }
- remondeath()
- {
- for(;;)
- {
- self waittill("death");
- if(self.ffirst==0)
- {
- self.redsaveshit = (-155154,-514654,-5132168);
- self.saveshit = (-155154,-514654,-5132168);
- self.green delete();
- self.red delete();
- }
- wait .2;
- }
- }
- getpos()
- {
- while(1)
- {
- self.newshit = self.origin;
- self.newshit2 = self GetVelocity();
- wait .1;
- }
- }
- Bluesavepos(Pos)
- {
- self endon("death");
- self.saveshit = Pos;
- }
- Redsavepos(Pos)
- {
- self endon("death");
- self.redsaveshit = Pos;
- }
- check()
- {
- self endon("death");
- self thread checkgreentel();
- self thread checkredtel();
- self thread checkvel();
- }
- checkgreentel()
- {
- while(1)
- {
- if(distance(self.saveshit, self.newshit) < 50 && self.justtel==0 && self.reddd==1 )
- {
- self.justtel=1;
- self thread justreset(self.justtele);
- if(self.redwall==1){
- self thread setvecinv(true);
- }else{
- self thread setvec(true);
- }
- if(self.redroof==0)
- {
- self SetOrigin(self.redsaveshit);
- }else{
- self SetOrigin(self.redsaveshit-(0,0,100));
- }
- }
- wait .1;
- }
- }
- checkredtel()
- {
- while(1)
- {
- if(distance(self.redsaveshit, self.newshit) < 50 && self.justtel==0 && self.greendd==1 )
- {
- self.justtel=1;
- self thread justreset(self.justtele);
- if(self.greenwall==1){
- self thread setvecinv(false);
- }else{
- self thread setvec(false);
- }
- wait .05;
- if(self.greenroof==0)
- {
- self SetOrigin(self.saveshit);
- }else{
- self SetOrigin(self.saveshit-(0,0,100));
- }
- }
- wait .1;
- }
- }
- checkvel()
- {
- while(1)
- {
- if((distance(self.redsaveshit, self.newshit) < 120 && distance(self.redsaveshit, self.newshit) > 50) || (distance(self.saveshit, self.newshit) < 120 && distance(self.saveshit, self.newshit) > 50) )
- {
- self.vel = self GetVelocity();
- self.oldvel = (self.vel[0], self.vel[1], self Negate(self.vel[2]));
- }
- wait .1;
- }
- }
- justreset(var11)
- {
- wait .6;
- self.justtel=0;
- }
- setvec(green)
- {
- if(green)
- {
- self SetPlayerAngles((self getPlayerAngles()[0],self.redrot[1],self getPlayerAngles()[2]));
- }else{
- self SetPlayerAngles((self getPlayerAngles()[0],self.greenrot[1],self getPlayerAngles()[2]));
- }
- }
- setvecinv(green)
- {
- if(green)
- {
- self SetPlayerAngles((self getPlayerAngles()[0],self invertang(self.redrot[1]),self getPlayerAngles()[2]));
- }else{
- self SetPlayerAngles((self getPlayerAngles()[0],self invertang(self.greenrot[1]),self getPlayerAngles()[2]));
- }
- }
- invertang(angle)
- {
- if(angle<=180)
- {
- retu=angle-180;
- }else{
- retu=angle+180;
- }
- return(retu);
- }
- Negate(vector){
- self endon("death");
- negative=vector-(vector*2);
- return(negative);
- }
- testinsh()
- {
- self endon("death");
- green = spawn("script_model", (-155154,-514654,-5132168) );
- green setModel( "ch_bunker_doorway_03" );
- red = spawn("script_model", (-155154,-514654,-5132168) );
- red setModel( "ch_bunker_doorway_03" );
- self.greendd=0;
- self.reddd=0;
- green hide();
- red hide();
- self thread remondeath();
- for(;;)
- {
- self waittill ( "weapon_fired" );
- vec = anglestoforward(self getPlayerAngles());
- end = (vec[0] * 200000, vec[1] * 200000, vec[2] * 200000);
- SPLOSIONlocation = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self)[ "position" ];
- currentWeapon = self getCurrentWeapon();
- if ( currentWeapon == self.weaponpor && self.por==1)
- {
- self thread getvec(self.por);
- self.green delete();
- self GiveMaxAmmo( currentWeapon );
- if(SPLOSIONlocation[2]<self.newshit[2] + 100 && SPLOSIONlocation[2]>self.newshit[2] + 25)
- {
- self.green = spawn("script_model", SPLOSIONlocation);
- self.green RotateTo( ( 90, 0, 0), 0.0001, 0, 0);
- self.green setModel( "ch_bunker_doorway_03" );
- SPLOSIONlocation = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self)[ "position" ];
- self.greenroof=0;
- self.greenwall=1;
- }else{
- if(SPLOSIONlocation[2]<self.newshit[2] + 100)
- {
- self.green = spawn("script_model", SPLOSIONlocation - (0,0,11.5) );
- self.greenroof=0;
- }else{
- self.green = spawn("script_model", SPLOSIONlocation + (0,0,11.5) );
- self.greenroof=1;
- }
- self.greenwall=0;
- self.green RotateYaw(self.greenrot[1], 0.0001, 0, 0);
- self.green setModel( "ch_bunker_doorway_03" );
- self.greenwall=0;
- }
- self thread Bluesavepos(SPLOSIONlocation);
- self.greendd=1;
- }
- if ( currentWeapon == self.weaponpor && self.por==0)
- {
- self thread getvec(self.por);
- self.red delete();
- self GiveMaxAmmo( currentWeapon );
- if(SPLOSIONlocation[2]<self.newshit[2] + 100 && SPLOSIONlocation[2]>self.newshit[2] + 25)
- {
- self.red = spawn("script_model", SPLOSIONlocation);
- self.red RotateTo( ( 90, 0, 0), 0.0001, 0, 0);
- self.red setModel( "ch_bunker_doorway_03" );
- SPLOSIONlocation = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self)[ "position" ];
- self.redroof=0;
- self.redwall=1;
- }else{
- if(SPLOSIONlocation[2]<self.newshit[2] + 100)
- {
- self.red = spawn("script_model", SPLOSIONlocation - (0,0,11.5) );
- self.redroof=0;
- }else{
- self.red = spawn("script_model", SPLOSIONlocation + (0,0,11.5) );
- self.redroof=1;
- }
- self.red setModel( "ch_bunker_doorway_03" );
- self.red RotateYaw(self.redrot[1], 0.001, 0, 0);
- self.redwall=0;
- }
- self thread Redsavepos(SPLOSIONlocation);
- self.reddd=1;
- }
- }
- }
- getvec(col)
- {
- if(col==0)
- {
- self.redrot=self getPlayerAngles();
- }
- else
- {
- self.greenrot=self getPlayerAngles();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement