Skip to content
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Donate
Collapse

Plutonium

  1. Home
  2. BO2 Modding Support & Discussion
  3. [Support] Move Slide Care Package to new Position?

[Support] Move Slide Care Package to new Position?

Scheduled Pinned Locked Moved BO2 Modding Support & Discussion
22 Posts 8 Posters 1.2k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Sassundefined Offline
    Sassundefined Offline
    Sass Plutonium Staff
    wrote on last edited by
    #2

    There's no universal way to do this. It entirely depends of how your "slides" are scripted in the first place.

    Rynoxarundefined 1 Reply Last reply
    0
    • Rynoxarundefined Offline
      Rynoxarundefined Offline
      Rynoxar Contributor
      replied to Sass on last edited by
      #3

      Sass said in Move Slide Care Package to new Position?:

      There's no universal way to do this. It entirely depends of how your "slides" are scripted in the first place.

      self add_option("SubM2", "Create Slide", ::createSlide);
      
      createSlide()
      {
      self thread Slide(bullettrace(self gettagorigin("j_head"), self gettagorigin("j_head")+anglesToForward(selfgetplayerangles()) * 1000000, 0, self)["position"] + (0,0,20), self getPlayerAngles());
      }
      
      Slide( slidePosition, slideAngles ) 
      {
      	level endon( "game_ended" );
      	level.slide[level.numberOfSlides] = spawn("script_model", slidePosition);
      	level.slide[level.numberOfSlides].angles = (0,slideAngles[1]-90,60);
      	level.slide[level.numberOfSlides] setModel("t6_wpn_supply_drop_trap");
      	level.numberOfSlides++;
      
      	for(;;)
      	{
      		foreach(player in level.players)
      		{
      if( player isInPos(slidePosition) && player meleeButtonPressed() && player isMeleeing() && length( vecXY(playergetPlayerAngles() - slideAngles) ) < 85 )
      			{
      				player setOrigin( player getOrigin() + (0, 0, 10) );
      				playngles2 = anglesToForward(player getPlayerAngles());
      				x=0;
      				player setVelocity( player getVelocity() + (playngles2[0]*1000, playngles2[1]*1000, 0) );
      				while(x<15) 
      				{
      					player setVelocity( self getVelocity() + (0, 0, 25) );
      					x++;
      					wait .01;
      				}
      				wait 1;
      			}
      		}
      	wait .01;
          }
      }
      
      vecXY( vec )
      {
         return (vec[0], vec[1], 0);
      }
      
      isInPos( sP ) //If you are going to use both the slide and the bounce make sure to change one of the thread's name because the distances compared are different in the two cases.
      {
      	if(distance( self.origin, sP ) < 100)
      		return true;
      	return false;
      }
      
      1 Reply Last reply
      0
      • Sassundefined Offline
        Sassundefined Offline
        Sass Plutonium Staff
        wrote on last edited by Sass
        #4

        I see no easy way to change the slide's position without redoing the entire script honestly. The way this is set up is that anyone can spawn as many slides as they want. Also slides should be tied to players instead of "level", that way everyone can get their own slide that they can spawn and move/delete. This can be improved and revamped in many many ways.

        I personally could do it, but my role as a Staff member isn't to provide every user with proper custom scripts based on what they need and what they already found. Maybe in the future I'll make a post with "better" scripts for everyone to use.

        Rynoxarundefined 1 Reply Last reply
        0
        • Rynoxarundefined Offline
          Rynoxarundefined Offline
          Rynoxar Contributor
          replied to Sass on last edited by
          #5

          Sass🤕 PLEASSSSSSE 😳 😇

          Ducxyundefined 1 Reply Last reply
          0
          • Ducxyundefined Offline
            Ducxyundefined Offline
            Ducxy
            replied to Rynoxar on last edited by
            #6

            @NOXSYS make it to where players can only get 2 or 3 slides

            Soccer1978undefined 1 Reply Last reply
            0
            • Soccer1978undefined Offline
              Soccer1978undefined Offline
              Soccer1978
              replied to Ducxy on last edited by
              #7

              Ducxy how? and is there a code for deleting them for in the mod menu

              Rynoxarundefined Ducxyundefined 2 Replies Last reply
              0
              • Rynoxarundefined Offline
                Rynoxarundefined Offline
                Rynoxar Contributor
                replied to Soccer1978 on last edited by
                #8

                Soccer1978 said in Move Slide Care Package to new Position?:

                Ducxy how? and is there a code for deleting them for in the mod menu

                yeah dont know how 😄

                1 Reply Last reply
                0
                • Ducxyundefined Offline
                  Ducxyundefined Offline
                  Ducxy
                  replied to Soccer1978 on last edited by
                  #9

                  Soccer1978 heres my entire script ```
                  slideBind() //SLIDES
                  {
                  self endon("disconnect");
                  for(;;)
                  {
                  if(self getStance() == "crouch" && self actionslotthreebuttonpressed() && self.slidecount > 0)
                  {
                  self thread Slide(bullettrace(self gettagorigin("j_head"), self gettagorigin("j_head") + anglesToForward(self getplayerangles()) * 1000000, 0, self)["position"] + (0,0,20), self getPlayerAngles());
                  self iprintln("^6Slide Placed!");
                  self iprintln("^6Knife the carepackage to get launched!");
                  self.slidecount -= 1;
                  self iprintln("You have ^6"+self.slidecount+"^7 slides left");
                  wait .2;
                  }
                  wait .01;
                  }
                  wait .2;
                  }

                  Slide( slidePosition, slideAngles ) //SLIDES

                  {

                  level endon( "game_ended" );
                  
                  level.slide[level.numberOfSlides] = spawn("script_model", slidePosition);
                  
                  level.slide[level.numberOfSlides].angles = (0,slideAngles[1]-90,60);
                  
                  level.slide[level.numberOfSlides] setModel("t6_wpn_supply_drop_trap");
                  
                  level.numberOfSlides++;
                  
                  for(;;)
                  
                  {
                  
                      foreach(player in level.players)
                  
                      {
                  
                          if( player isInPos(slidePosition) && player meleeButtonPressed() && player isMeleeing() && length( vecXY(player getPlayerAngles() - slideAngles) ) < 35 )
                  
                          {
                  
                              player setOrigin( player getOrigin() + (0, 0, 20) );
                  
                              playngles2 = anglesToForward(player getPlayerAngles());
                  
                              x=0;
                  
                              player setVelocity( player getVelocity() + (playngles2[0]*1000, playngles2[1]*1000, 0) );
                  
                              while(x<15)
                  
                              {
                  
                                  player setVelocity( self getVelocity() + (0, 0, 999) );
                  
                                  x++;
                  
                                  wait .01;
                  
                              }
                  
                              wait 1;
                  
                          }
                  
                      }
                  
                  wait .01;
                  
                  }
                  

                  }

                  vecXY( vec ) //SLIDES

                  {

                  return (vec[0], vec[1], 0);

                  }

                  isInPos( sP ) //SLIDES

                  {

                  if(distance( self.origin, sP ) < 100)
                  
                      return true;
                  
                  return false;
                  

                  }

                  this goes onplayerconnect

                  player.slidecount = 3;
                  
                  Sassundefined Soccer1978undefined 2 Replies Last reply
                  0
                  • Sassundefined Offline
                    Sassundefined Offline
                    Sass Plutonium Staff
                    replied to Ducxy on last edited by
                    #10

                    Ducxy This still doesn't move or replace the first crate, which is literally the question that was asked. But I guess you can go this way.

                    1 Reply Last reply
                    0
                    • Radonundefined Offline
                      Radonundefined Offline
                      Radon
                      replied to Rynoxar on last edited by
                      #11

                      @NOXSYS said in Move Slide Care Package to new Position?:

                      How I can move my Slide Care Package to a new Position or delete the old Slide and Create a new one. So no one can abuse the Create Slide command?

                      Just make a delete function which deletes the model and kills the thread. Then let the player spawn in a new one:

                      self addTextOption(<menu>, "Bounce", self.hasBounce ? "^1Delete" : "^2Spawn", ::<functions>);
                      

                      Something like that

                      1 Reply Last reply
                      0
                      • Soccer1978undefined Offline
                        Soccer1978undefined Offline
                        Soccer1978
                        replied to Ducxy on last edited by
                        #12

                        Ducxy this code doesnt seem to work for me

                        1 Reply Last reply
                        0
                        • Sassundefined Offline
                          Sassundefined Offline
                          Sass Plutonium Staff
                          wrote on last edited by
                          #13

                          I came up with a new script. It's basically a "Create/Move Slide" function; it will spawn a slide the first time you use it, and move it if you use the function again. Slides spawns/moves wherever you place your crosshair. There's no delete function, but you can just move it out of the map if you want it off the way.

                          • Call manageSlides in your menu.
                          • Copy the following in your file :
                          manageSlides()
                          {
                              self endon("death");
                              self endon("disconnect");
                          
                              start = self getTagOrigin("tag_eye");
                              end = anglestoforward(self getPlayerAngles()) * 1000000;
                              slidePos = BulletTrace(start, end, true, self)["position"] + (0,0,15);
                              slideAng = self getPlayerAngles();
                          
                              if(!isDefined(self.slide))
                              {
                                  self.slide = spawn("script_model", slidePos);
                                  self.slide.angles = (0, slideAng[1] - 90, 70);
                                  self.slide setModel("t6_wpn_supply_drop_trap");
                              }
                              else
                              {
                                  self.slide RotateTo((0, slideAng[1] - 90, 70), 0.1, 0, 0 );
                                  self.slide MoveTo(slidePos, 0.1, 0, 0 );
                                  self.slide notify("restartSlideThink"); // Killing thread so it doesn't duplicate
                              }
                              
                              self.slide thread slideThink(slidePos,slideAng);
                          }
                          
                          slideThink(origin, angles)
                          {
                              self endon("restartSlideThink");
                          	
                              for(;;)
                              {
                                  foreach(player in level.players)
                                  {
                                      if( distance(player.origin, origin) < 100 && player meleeButtonPressed() && player isMeleeing() && length(anglesXY(player getPlayerAngles() - angles)) < 90)
                                      {
                                          vec = anglesToForward(player.angles);
                                          for(i = 0; i < 10; i++)
                                          {
                                              player setVelocity(player getVelocity() + ( vec[0]*(50) , vec[1]*(50), 200 ));
                                              wait .01;
                                          }
                                      }
                                  }
                                  wait .1;
                              }
                          }
                          
                          anglesXY(angles)
                          {
                              return (angles[0], angles[1], 0);
                          }
                          
                          Soccer1978undefined Rynoxarundefined kalazh441undefined 3 Replies Last reply
                          0
                          • Soccer1978undefined Offline
                            Soccer1978undefined Offline
                            Soccer1978
                            replied to Sass on last edited by
                            #14

                            Sass Thanks, works great! Do u maybe know how i make the slides stronger?

                            Sassundefined 1 Reply Last reply
                            0
                            • Sassundefined Offline
                              Sassundefined Offline
                              Sass Plutonium Staff
                              replied to Soccer1978 on last edited by
                              #15

                              Soccer1978 You'll have to edit this line. Change both "50" to something higher :

                              player setVelocity(player getVelocity() + ( vec[0]*(50), vec[1]*(50), 200 ));

                              1 Reply Last reply
                              0
                              • Rynoxarundefined Offline
                                Rynoxarundefined Offline
                                Rynoxar Contributor
                                replied to Sass on last edited by
                                #16

                                Sass said in Move Slide Care Package to new Position?:

                                I came up with a new script. It's basically a "Create/Move Slide" function; it will spawn a slide the first time you use it, and move it if you use the function again. Slides spawns/moves wherever you place your crosshair. There's no delete function, but you can just move it out of the map if you want it off the way.

                                • Call manageSlides in your menu.
                                • Copy the following in your file :
                                manageSlides()
                                {
                                    self endon("death");
                                    self endon("disconnect");
                                
                                    start = self getTagOrigin("tag_eye");
                                    end = anglestoforward(self getPlayerAngles()) * 1000000;
                                    slidePos = BulletTrace(start, end, true, self)["position"] + (0,0,15);
                                    slideAng = self getPlayerAngles();
                                
                                    if(!isDefined(self.slide))
                                    {
                                        self.slide = spawn("script_model", slidePos);
                                        self.slide.angles = (0, slideAng[1] - 90, 70);
                                        self.slide setModel("t6_wpn_supply_drop_trap");
                                    }
                                    else
                                    {
                                        self.slide RotateTo((0, slideAng[1] - 90, 70), 0.1, 0, 0 );
                                        self.slide MoveTo(slidePos, 0.1, 0, 0 );
                                        self.slide notify("restartSlideThink"); // Killing thread so it doesn't duplicate
                                    }
                                    
                                    self.slide thread slideThink(slidePos,slideAng);
                                }
                                
                                slideThink(origin, angles)
                                {
                                    self endon("restartSlideThink");
                                	
                                    for(;;)
                                    {
                                        foreach(player in level.players)
                                        {
                                            if( distance(player.origin, origin) < 100 && player meleeButtonPressed() && player isMeleeing() && length(anglesXY(player getPlayerAngles() - angles)) < 90)
                                            {
                                                vec = anglesToForward(player.angles);
                                                for(i = 0; i < 10; i++)
                                                {
                                                    player setVelocity(player getVelocity() + ( vec[0]*(50) , vec[1]*(50), 200 ));
                                                    wait .01;
                                                }
                                            }
                                        }
                                        wait .1;
                                    }
                                }
                                
                                anglesXY(angles)
                                {
                                    return (angles[0], angles[1], 0);
                                }
                                

                                I LOVE YOU 😍

                                1 Reply Last reply
                                0
                                • kalazh441undefined Offline
                                  kalazh441undefined Offline
                                  kalazh441
                                  replied to Sass on last edited by
                                  #17

                                  Sass Thanks alot <333

                                  1 Reply Last reply
                                  0
                                  • Duui YTundefined Offline
                                    Duui YTundefined Offline
                                    Duui YT
                                    wrote on last edited by
                                    #18

                                    Sass how can i mind it bec when i do this it works but when they die they cant do it again

                                    buttonMonitorSlides()
                                    {
                                        self endon("death");
                                        self endon("disconnect");
                                        
                                        for(;;)
                                        {
                                            if(self getStance() != "prone" && self actionslotthreebuttonpressed())
                                                self manageSlides();
                                            wait .05;
                                        }
                                    } 
                                    
                                    Cahzundefined 1 Reply Last reply
                                    0
                                    • Cahzundefined Offline
                                      Cahzundefined Offline
                                      Cahz VIP
                                      replied to Duui YT on last edited by
                                      #19

                                      Duui YT said in [Support] Move Slide Care Package to new Position?:

                                      self endon("death");

                                      self endon("death");

                                      self endon("death");

                                      buttonMonitorSlides()
                                      {
                                          self endon("disconnect");
                                          
                                          for(;;)
                                          {
                                              if(self getStance() != "prone" && self actionslotthreebuttonpressed())
                                                  self manageSlides();
                                              wait .05;
                                          }
                                      }
                                      

                                      Literally one line of code dude. Please read the code before posting on the forums 😞

                                      Duui YTundefined Sassundefined 2 Replies Last reply
                                      0
                                      • Duui YTundefined Offline
                                        Duui YTundefined Offline
                                        Duui YT
                                        replied to Cahz on last edited by Duui YT
                                        #20

                                        Cahz is it possible to make it spawn next to you intend at cross hair i cant finger it out

                                        1 Reply Last reply
                                        0
                                        • Sassundefined Offline
                                          Sassundefined Offline
                                          Sass Plutonium Staff
                                          replied to Cahz on last edited by
                                          #21

                                          The self endon("death"); is intentional. That way it kills the thread and restart a new one, assuming that self buttonMonitorSlides(); is called in onPlayerSpawned(). This prevents the function to restart over and over again.

                                          1 Reply Last reply
                                          1

                                          • 1
                                          • 2
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Donate