Advertisement
S3VDIT0

MapEdit for PlutoIW5

Jan 30th, 2021
2,921
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Thanks to WIZE for the motivation to do this XD
  2. //
  3. // Let me know that I did it for a reason, you can support me
  4. // http://paypal.me/s3vdit0
  5.  
  6. global carePackage = gsc.getent("care_package", "targetname");
  7. global targetString = carePackage.get("target");
  8. global airdropCollision = gsc.getent(targetString, "targetname");
  9.    
  10. def CreateRamp(top, bottom, isInvisible)
  11. {
  12.     var distance = gsc.distance(top, bottom);
  13.     var blocks = (int)(distance / 30) + 1;
  14.    
  15.     var A = [(top[0] - bottom[0]) / blocks, (top[1] - bottom[1]) / blocks, (top[2] - bottom[2]) / blocks];
  16.     var temp = gsc.vectorToAngles([top[0] - bottom[0], top[1] - bottom[1], top[2] - bottom[2]]);
  17.     var BA = [temp[2], temp[1] + 90, temp[0]];
  18.  
  19.    
  20.     for (var b = 0; b <= blocks; ++b) {
  21.         var crate = gsc.spawn("script_model", [bottom[0] + A[0] * b, bottom[1] + A[1] * b, bottom[2] + A[2] * b]);
  22.         crate.setModel("com_plasticcase_friendly");
  23.         crate.clonebrushmodeltoscriptmodel(airdropCollision);
  24.         crate.rotateTo(BA, 1);
  25.        
  26.         if(isInvisible)
  27.         {
  28.             crate.Hide();
  29.         }
  30.     }
  31. }
  32.  
  33. def CreateFloor(corner1, corner2, isInvisible)
  34. {
  35.     var width = corner1[0] - corner2[0];
  36.     if (width < 0)
  37.     {
  38.         width = width * -1;
  39.     }
  40.        
  41.     var length = corner1[1] - corner2[1];
  42.        
  43.     if (length < 0)
  44.     {
  45.         length = length * -1;
  46.     }
  47.            
  48.     var bwide = gsc.Floor(width / 50);
  49.     var blength = gsc.Floor(length / 30);
  50.     var C = [corner2[0] - corner1[0], corner2[1] - corner1[1], corner2[2] - corner1[2]];
  51.     var A = [C[0] / bwide, C[1] / blength, 0];
  52.  
  53.     for (var i = 0; i < bwide; ++i)
  54.     {
  55.         for (var j = 0; j < blength; ++j)
  56.         {
  57.             var crate = gsc.spawn("script_model", [corner1[0] + A[0] * i, corner1[1] + A[1] * j, corner1[2]]);
  58.             crate.setModel("com_plasticcase_friendly");
  59.             crate.clonebrushmodeltoscriptmodel(airdropCollision);
  60.            
  61.             if(isInvisible)
  62.             {
  63.                 crate.Hide();
  64.             }
  65.         }
  66.     }
  67. }
  68.  
  69. def CreateWall(start, end, isInvisible)
  70. {
  71.     var D = gsc.Distance2D(start, end);
  72.     var H = gsc.Distance([0, 0, start[2]], [0, 0, end[2]]);
  73.     var blocks = gsc.Ceil(D / 60);
  74.     var height = gsc.Ceil(H / 30);
  75.  
  76.     var C = [end[0] - start[0], end[1] - start[1], end[2] - start[2]];
  77.     var A = [C[0] / blocks, C[1] / blocks, C[2] / height];
  78.     var TXA = A[0] / 4;
  79.     var TYA = A[1] / 4;
  80.     var angle = gsc.VectorToAngles(C);
  81.     angle = [0, angle[1], 90];
  82.  
  83.     for (var h = 0; h < height; ++h)
  84.     {
  85.         var crate = gsc.spawn("script_model", [start[0] + TXA, start[1] + TYA, start[2] + 15 + A[2] * h]);
  86.         crate.setModel("com_plasticcase_friendly");
  87.         crate.clonebrushmodeltoscriptmodel(airdropCollision);
  88.         crate.RotateTo(angle, 1);
  89.        
  90.         if(isInvisible)
  91.         {
  92.             crate.Hide();
  93.         }
  94.  
  95.         for (var i = 0; i < blocks; ++i)
  96.         {
  97.             crate = gsc.spawn("script_model", [start[0] + A[0] * i, start[1] + A[1] * i, start[2] + 15 + A[2] * h]);
  98.             crate.setModel("com_plasticcase_friendly");
  99.             crate.clonebrushmodeltoscriptmodel(airdropCollision);
  100.             crate.RotateTo(angle, 1);
  101.            
  102.             if(isInvisible)
  103.             {
  104.                 crate.Hide();
  105.             }
  106.         }
  107.  
  108.         crate = gsc.spawn("script_model", [start[0] + TXA * -1, start[1] + TYA * -1, start[2] + 15 + A[2] * h]);
  109.         crate.setModel("com_plasticcase_friendly");
  110.         crate.clonebrushmodeltoscriptmodel(airdropCollision);
  111.         crate.RotateTo(angle, 1);
  112.        
  113.         if(isInvisible)
  114.         {
  115.             crate.Hide();
  116.         }
  117.     }
  118. }
  119.  
  120. level.onNotify("prematch_done", fun(arguments)
  121. {
  122.     switch(gsc.GetDvar("mapname"))
  123.     {
  124.         case("mp_rust")
  125.         {
  126.             CreateRamp([0, 0, 512], [512, 512, 0], false);
  127.             CreateFloor([0, 0, 0], [512, 512, 0], false);
  128.             CreateWall([512, 512, 0], [0, 0, 512], false);
  129.            
  130.             break;
  131.         }
  132.         case("mp_dome")
  133.         {
  134.             CreateRamp([0, 0, 512], [512, 512, 0], false);
  135.             CreateFloor([0, 0, 0], [512, 512, 0], false);
  136.             CreateWall([512, 512, 0], [0, 0, 512], false);
  137.            
  138.             break;
  139.         }
  140.     }
  141. });
  142.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement