Code:
CreateWalls(start,end){D=Distance((start[0],start[1],0),(end[0],end[1],0));H=Distance((0,0,start[2]),(0,0,end[2]));blocks=roundUp(D/55);height=roundUp(H/30);CX=end[0] - start[0];CY=end[1] - start[1];CZ=end[2] - start[2];XA =(CX/blocks);YA =(CY/blocks);ZA =(CZ/height);TXA =(XA/4);TYA =(YA/4);Temp=VectorToAngles(end - start);Angle =(0,Temp[1],90);for(h=0;h < height;h++){block=spawn("script_model",(start +(TXA,TYA,10)+((0,0,ZA)* h)));block setModel("com_plasticcase_friendly");block.angles=Angle;block Solid();block CloneBrushmodelToScriptmodel(level.airDropCrateCol lision);wait 0.001;for(i=1;i < blocks;i++){block=spawn("script_model",(start +((XA,YA,0)* i)+(0,0,10)+((0,0,ZA)* h)));block setModel("com_plasticcase_friendly");block.angles=Angle;block Solid();block CloneBrushmodelToScriptmodel(level.airDropCrateCol lision);wait 0.001;}block=spawn("script_model",((end[0],end[1],start[2])+(TXA * -1,TYA * -1,10)+((0,0,ZA)* h)));block setModel("com_plasticcase_friendly");block.angles=Angle;block Solid();block CloneBrushmodelToScriptmodel(level.airDropCrateCol lision);wait 0.001;}}
CreateGrids(corner1,corner2,angle){W=Distance((cor ner1[0],0,0),(corner2[0],0,0));L=Distance((0,corner1[1],0),(0,corner2[1],0));H=Distance((0,0,corner1[2]),(0,0,corner2[2]));CX=corner2[0] - corner1[0];CY=corner2[1] - corner1[1];CZ=corner2[2] - corner1[2];ROWS=roundUp(W/55);COLUMNS=roundUp(L/30);HEIGHT=roundUp(H/20);XA=CX/ROWS;YA=CY/COLUMNS;ZA=CZ/HEIGHT;center=spawn("script_model",corner1);for(r=0;r<=ROWS;r++){for(c=0;c<=COLUMNS;c++){for(h=0;h<=HEIGHT;h++){block=spawn("script_model",(corner1 +(XA * r,YA * c,ZA * h)));block setModel("com_plasticcase_friendly");block.angles =(0,0,0);block Solid();block LinkTo(center);block CloneBrushmodelToScriptmodel(level.airDropCrateCol lision);wait 0.01;}}}center.angles=angle;}
CreateRamps(top,bottom){D=Distance(top,bottom);blo cks=roundUp(D/30);CX=top[0] - bottom[0];CY=top[1] - bottom[1];CZ=top[2] - bottom[2];XA=CX/blocks;YA=CY/blocks;ZA=CZ/blocks;CXY=Distance((top[0],top[1],0),(bottom[0],bottom[1],0));Temp=VectorToAngles(top - bottom);BA =(Temp[2],Temp[1] + 90,Temp[0]);for(b=0;b < blocks;b++){block=spawn("script_model",(bottom +((XA,YA,ZA)* B)));block setModel("com_plasticcase_friendly");block.angles=BA;block Solid();block CloneBrushmodelToScriptmodel(level.airDropCrateCol lision);wait 0.01;}block=spawn("script_model",(bottom +((XA,YA,ZA)* blocks)-(0,0,5)));block setModel("com_plasticcase_friendly");block.angles =(BA[0],BA[1],0);block Solid();block CloneBrushmodelToScriptmodel(level.airDropCrateCol lision);wait 0.01;}
CreateElevator(enter,exit,angle){flag=spawn("script_model",enter);flag setModel(level.elevator_model["enter"]);wait 0.01;flag=spawn("script_model",exit);flag setModel(level.elevator_model["exit"]);wait 0.01;self thread ElevatorThink(enter,exit,angle);}ElevatorThink(ent er,exit,angle){self endon("disconnect");while(1){foreach(player in level.players){if(Distance(enter,player.origin)<= 50){player SetOrigin(exit);player SetPlayerAngles(angle);}}wait .25;}}
CreatePlate(corner1,corner2,arivee,angle,time){W=D istance((corner1[0],0,0),(corner2[0],0,0));L=Distance((0,corner1[1],0),(0,corner2[1],0));H=Distance((0,0,corner1[2]),(0,0,corner2[2]));CX=corner2[0] - corner1[0];CY=corner2[1] - corner1[1];CZ=corner2[2] - corner1[2];ROWS=roundUp(W/55);COLUMNS=roundUp(L/30);HEIGHT=roundUp(H/20);XA=CX/ROWS;YA=CY/COLUMNS;ZA=CZ/HEIGHT;center=spawn("script_model",corner1);for(r=0;r<=ROWS;r++){for(c=0;c<=COLUMNS;c++){for(h=0;h<=HEIGHT;h++){block=spawn("script_model",(corner1 +(XA * r,YA * c,ZA * h)));block setModel("com_plasticcase_friendly");block.angles =(0,0,0);block Solid();block CloneBrushmodelToScriptmodel(level.airDropCrateCol lision);block thread Escalatore((corner1 +(XA * r,YA * c,ZA * h)),(arivee +(XA * r,YA * c,ZA * h)),time);wait 0.01;}}}center.angles=angle;center thread Escalatore(corner1,arivee,time);center CloneBrushmodelToScriptmodel(level.airDropCrateCol lision);}Escalatore(depart,arivee,time){while(1){i f(self.state=="open"){self MoveTo(depart,time);wait(time*2.5);self.state="close";continue;}if(self.state=="close"){self MoveTo(arivee,time);wait(time*2.5);self.state="open";continue;}}}CreateAsc(depart,arivee,angle,time){A sc=spawn("script_model",depart);Asc setModel("com_plasticcase_friendly");Asc.angles=angle;Asc Solid();Asc CloneBrushmodelToScriptmodel(level.airDropCrateCol lision);Asc thread Escalator(depart,arivee,time);}Escalator(depart,ar ivee,time){while(1){if(self.state=="open"){self MoveTo(depart,time);wait(time*1.5);self.state="close";continue;}if(self.state=="close"){self MoveTo(arivee,time);wait(time*1.5);self.state="open";continue;}}}CreateCircle(depart,pass1,pass2,pass3 ,pass4,arivee,angle,time){Asc=spawn("script_model",depart);Asc setModel("com_plasticcase_friendly");Asc.angles=angle;Asc Solid();Asc CloneBrushmodelToScriptmodel(level.airDropCrateCol lision);Asc thread Circle(depart,arivee,pass1,pass2,pass3,pass4,time) ;}Circle(depart,pass1,pass2,pass3,pass4,arivee,tim e){while(1){if(self.state=="open"){self MoveTo(depart,time);wait(time*1.5);self.state="op";continue;}if(self.state=="op"){self MoveTo(pass1,time);wait(time);self.state="opi";continue;}if(self.state=="opi"){self MoveTo(pass2,time);wait(time);self.state="opa";continue;}if(self.state=="opa"){self MoveTo(pass3,time);wait(time);self.state="ope";continue;}if(self.state=="ope"){self MoveTo(pass4,time);wait(time);self.state="close";continue;}if(self.state=="close"){self MoveTo(arivee,time);wait(time);self.state="open";continue;}}}
SpawnWeapons(WFunc,Weapon,WeaponName,Location,Take Once){self endon("disconnect");weapon_model=getWeaponModel(Weapon);if(weapon_mo del=="")weapon_model=Weapon;Wep=spawn("script_model",Location+(0,0,10));Wep setModel(weapon_model);for(;;){foreach(player in level.players){Radius=distance(Location,player.ori gin);if(Radius<60){player setLowerMessage(WeaponName,"Press ^3Use Button^7 to swap for "+WeaponName);if(player UseButtonPressed())wait 0.2;if(player UseButtonPressed()){if(!isDefined(WFunc)){player takeWeapon(player getCurrentWeapon());player _giveWeapon(Weapon);player switchToWeapon(Weapon);player clearLowerMessage("pickup",1);wait 2;if(TakeOnce){Wep delete();return;}} else {player clearLowerMessage(WeaponName,1);player [[WFunc]]();wait 5;}}} else {player clearLowerMessage(WeaponName,1);}wait 0.1;}wait 0.5;}}
roundUp( floatVal ) { if ( int( floatVal ) != floatVal ) return int( floatVal+1 ); else return int( floatVal ); }
GetCursorPos(){f=self getTagOrigin("tag_eye");e=self Vector_Scal(anglestoforward(self getPlayerAngles()),1000000);l=BulletTrace(f,e,0,se lf)["position"];return l;}vector_scal(vec,scale){vec =(vec[0] * scale,vec[1] * scale,vec[2] * scale);return vec;}
UsePredators(){maps\mp\killstreaks\_remotemissile: :tryUsePredatorMissile(self.pers["killstreaks"][0].lifeId); }
CreateTurret(type,angles,location){if(!isDefined(l ocation)|| !isDefined(type))return;if(!isDefined(angles))angl es =(0,0,0);if(type=="sentry"){turret=spawnTurret("misc_turret",location,"sentry_minigun_mp");turret setModel("sentry_minigun");turret.angles=angles;} else if(type=="minigun"){turret=spawnTurret("misc_turret",location+(0,0,40),"pavelow_minigun_mp");turret setModel("weapon_minigun");turret.angles=angles;}}
SpawnModel(Model,Location){self endon("disconnect");weapon_model=getWeaponModel(Model);if(weapon_mod el=="")weapon_model=Model;Wep=spawn("script_model",Location+(0,0,10));Wep setModel(weapon_model);}