Page 1 of 2 12 LastLast
Results 1 to 10 of 15

Thread: Escalators cod2 radiant

  1. #1
    ... connecting
    Join Date
    Apr 2015
    Posts
    9
    Thanks
    2
    Thanked 5 Times in 2 Posts

    Escalators cod2 radiant

    k well this is what i got so far for an escalator
    http://social.xfire.com/videos/63458b
    heres a vid but now i wanna know how do i keep it rotating all map long without needing to use a trigger or so
    and if i need a new script and redo some stuff in radiant could any one tell or explain me i got no clue how to make this escalators work perfectly

    Heres the image of the escalators i want to workClick image for larger version. 

Name:	escalators.png 
Views:	104 
Size:	394.2 KB 
ID:	851

    heres the script

    Code:
    main()
    {
    	maps\mp\_load::main();
    	
    	Patanosta = getent("patanosta","targetname");//the objekt with the targetname “patanosta” has the name “Patanosta”
    	Patanosta thread Patanosta_Move();//the script contains the thread Patanosta_Move
    
    }
    
    Patanosta_Move()//starts the thread Patanosta_Move
    {
    	Targ1 = getent(self.target,"targetname");
    	Targ2 = getent(Targ1.target,"targetname");
    	Targ3 = getent(Targ2.target,"targetname");
    	Targ4 = getent(Targ3.target,"targetname");
    	Targ5 = getent(Targ4.target,"targetname");
    	Targ6 = getent(Targ5.target,"targetname");
    	Targ7 = getent(Targ6.target,"targetname");
    	Targ8 = getent(Targ7.target,"targetname");
    	Targ9 = getent(Targ8.target,"targetname");
    	Targ10 = getent(Targ9.target,"targetname");
    	Targ11 = getent(Targ10.target,"targetname");
    	Targ12 = getent(Targ11.target,"targetname");
    	Targ13 = getent(Targ12.target,"targetname");
    	Targ13 = getent(Targ12.target,"targetname");
    
    	while (1)
    	{
    		self moveto (targ1.origin,2);
    		
    		Targ1 moveto (targ2.origin,2);//example explanationŕTarg2 is moving on the psition of targ2 in 20 seconds
    		Targ2 moveto (targ3.origin,2);
    		Targ3 moveto (targ4.origin,2);
    		Targ4 moveto (targ5.origin,2);
    		Targ5 moveto (targ6.origin,2);
    		Targ6 moveto (targ7.origin,2);
    		Targ7 moveto (targ8.origin,2);
    		Targ8 moveto (targ9.origin,2);
    		Targ9 moveto (targ10.origin,2);
    		Targ10 moveto (targ11.origin,2);
    		Targ11 moveto (targ12.origin,2);
    		Targ12 moveto (targ12.origin,2);
    		Targ13 moveto (targ13.origin,2);
    		Targ13 waittill ("movedone");
    	}
    }
    Last edited by Tally; 12th April 2015 at 10:15.

  2. #2
    Brigadier General
    Join Date
    Oct 2012
    Posts
    994
    Thanks
    20
    Thanked 588 Times in 388 Posts
    Assuming it wont cause a script stack overflow, you get "self" (the original targetname) to thread the move function again and again:

    Code:
    main()
    {
    	maps\mp\_load::main();
    	
    	Patanosta = getent("patanosta","targetname");//the objekt with the targetname “patanosta” has the name “Patanosta”
    	Patanosta thread Patanosta_Move();//the script contains the thread Patanosta_Move
    
    }
    
    Patanosta_Move()//starts the thread Patanosta_Move
    {
    	Targ1 = getent(self.target,"targetname");
    	Targ2 = getent(Targ1.target,"targetname");
    	Targ3 = getent(Targ2.target,"targetname");
    	Targ4 = getent(Targ3.target,"targetname");
    	Targ5 = getent(Targ4.target,"targetname");
    	Targ6 = getent(Targ5.target,"targetname");
    	Targ7 = getent(Targ6.target,"targetname");
    	Targ8 = getent(Targ7.target,"targetname");
    	Targ9 = getent(Targ8.target,"targetname");
    	Targ10 = getent(Targ9.target,"targetname");
    	Targ11 = getent(Targ10.target,"targetname");
    	Targ12 = getent(Targ11.target,"targetname");
    	Targ13 = getent(Targ12.target,"targetname");
    	Targ13 = getent(Targ12.target,"targetname");
    
    	self moveto (targ1.origin,2);
    		
    	Targ1 moveto (targ2.origin,2);//example explanationŕTarg2 is moving on the psition of targ2 in 20 seconds
    	Targ2 moveto (targ3.origin,2);
    	Targ3 moveto (targ4.origin,2);
    	Targ4 moveto (targ5.origin,2);
    	Targ5 moveto (targ6.origin,2);
    	Targ6 moveto (targ7.origin,2);
    	Targ7 moveto (targ8.origin,2);
    	Targ8 moveto (targ9.origin,2);
    	Targ9 moveto (targ10.origin,2);
    	Targ10 moveto (targ11.origin,2);
    	Targ11 moveto (targ12.origin,2);
    	Targ12 moveto (targ12.origin,2);
    	Targ13 moveto (targ13.origin,2);
    	Targ13 waittill ("movedone");
    	
    	self thread Patanosta_Move();
    }

  3. #3
    ... connecting
    Join Date
    Apr 2015
    Posts
    9
    Thanks
    2
    Thanked 5 Times in 2 Posts
    Quote Originally Posted by Tally View Post
    Assuming it wont cause a script stack overflow, you get "self" (the original targetname) to thread the move function again and again:

    Code:
    main()
    {
    	maps\mp\_load::main();
    	
    	Patanosta = getent("patanosta","targetname");//the objekt with the targetname “patanosta” has the name “Patanosta”
    	Patanosta thread Patanosta_Move();//the script contains the thread Patanosta_Move
    
    }
    
    Patanosta_Move()//starts the thread Patanosta_Move
    {
    	Targ1 = getent(self.target,"targetname");
    	Targ2 = getent(Targ1.target,"targetname");
    	Targ3 = getent(Targ2.target,"targetname");
    	Targ4 = getent(Targ3.target,"targetname");
    	Targ5 = getent(Targ4.target,"targetname");
    	Targ6 = getent(Targ5.target,"targetname");
    	Targ7 = getent(Targ6.target,"targetname");
    	Targ8 = getent(Targ7.target,"targetname");
    	Targ9 = getent(Targ8.target,"targetname");
    	Targ10 = getent(Targ9.target,"targetname");
    	Targ11 = getent(Targ10.target,"targetname");
    	Targ12 = getent(Targ11.target,"targetname");
    	Targ13 = getent(Targ12.target,"targetname");
    	Targ13 = getent(Targ12.target,"targetname");
    
    	self moveto (targ1.origin,2);
    		
    	Targ1 moveto (targ2.origin,2);//example explanationŕTarg2 is moving on the psition of targ2 in 20 seconds
    	Targ2 moveto (targ3.origin,2);
    	Targ3 moveto (targ4.origin,2);
    	Targ4 moveto (targ5.origin,2);
    	Targ5 moveto (targ6.origin,2);
    	Targ6 moveto (targ7.origin,2);
    	Targ7 moveto (targ8.origin,2);
    	Targ8 moveto (targ9.origin,2);
    	Targ9 moveto (targ10.origin,2);
    	Targ10 moveto (targ11.origin,2);
    	Targ11 moveto (targ12.origin,2);
    	Targ12 moveto (targ12.origin,2);
    	Targ13 moveto (targ13.origin,2);
    	Targ13 waittill ("movedone");
    	
    	self thread Patanosta_Move();
    }
    i tried the script you posted but it does exactly the same as it did before

  4. #4
    Global Mossaderator Mitch's Avatar
    Join Date
    Nov 2012
    Posts
    654
    Thanks
    204
    Thanked 450 Times in 305 Posts
    Quote Originally Posted by p0wner52 View Post
    i tried the script you posted but it does exactly the same as it did before
    What if you put all your targets in an array and save each target's current position. Then you move the target to the next position useing the array's index.

    Something like this
    PHP Code:
    steps = [];
    maxsteps 14;
    time 2;
    steps[steps.size] = getent(self.target,"targetname");
    steps[steps.size-1].position 0;
    for(
    i=0;i<maxsteps-1;i++)
    {
        
    steps[steps.size] = getent(steps[i].target,"targetname");
        
    steps[steps.size-1].position i+1;
    }

    while(
    1)
    {
        for(
    i=0;i<steps.size;i++)
        {
            
    nextposition steps[i].position-1;
            if(
    nextposition 0// no next step, back to top
                
    nextposition steps.size-1;

            
    steps[i].position nextposition;
            
    steps[imoveto(steps[nextposition].origintime);
        }

        
    steps[maxsteps-1waittill("movedone");


  5. #5
    Assadministrator IzNoGoD's Avatar
    Join Date
    Aug 2012
    Posts
    1,718
    Thanks
    17
    Thanked 1,068 Times in 674 Posts
    That script is buggable as only one waittill movedone is used, which might cause some of the non-last steps to become bugged
    "Does not work" is an error report for a bug between keyboard and chair.

    All hail Artie Effem

  6. #6
    ... connecting
    Join Date
    Apr 2015
    Posts
    9
    Thanks
    2
    Thanked 5 Times in 2 Posts
    Quote Originally Posted by Mitch View Post
    What if you put all your targets in an array and save each target's current position. Then you move the target to the next position useing the array's index.

    Something like this
    PHP Code:
    steps = [];
    maxsteps 14;
    time 2;
    steps[steps.size] = getent(self.target,"targetname");
    steps[steps.size-1].position 0;
    for(
    i=0;i<maxsteps-1;i++)
    {
        
    steps[steps.size] = getent(steps[i].target,"targetname");
        
    steps[steps.size-1].position i+1;
    }

    while(
    1)
    {
        for(
    i=0;i<steps.size;i++)
        {
            
    nextposition steps[i].position-1;
            if(
    nextposition 0// no next step, back to top
                
    nextposition steps.size-1;

            
    steps[i].position nextposition;
            
    steps[imoveto(steps[nextposition].origintime);
        }

        
    steps[maxsteps-1waittill("movedone");

    didnt even know how to make this at all i really dont understand this kind of script but
    ive tried moveto already for like 5hours i thought i made it perfectly but it didnt work out after all

    so does anyone still have ideas xD?


    wish i knew how this guy made his lol
    https://www.youtube.com/watch?v=YKzokeH4IrY

  7. #7
    Private First Class php's Avatar
    Join Date
    Nov 2012
    Posts
    142
    Thanks
    28
    Thanked 116 Times in 59 Posts
    Thanks to megazoR

    [12:22] mеgazor: i can send script but its very specific
    [12:24] php: just wanted to give a heads up
    [12:24] php: u got referenced!!
    [12:24] php: omgggggg
    [12:24] mеgazor: ye
    [12:24] mеgazor:

    PHP Code:
    escalator_stuff()
    {
        
    level.esc_time .05;
        
    //setCvar("esc_time", level.esc_time);

        
    steps getEntArray("step""targetname");
        for (
    0steps.sizei++)    //26 steps
        
    {
            
    steps[ithread steps(1);
            
    wait level.esc_time;
        }
        
    wait 1;

        
    level.esc_time 1;
        
    level.esc_speed 5;
        
    getEnt("esc_speed_"+level.esc_speed"targetname").origin = (08.010);
        
    getEnt("esc_speed_plus""targetname"thread esc_speed("plus");
        
    getEnt("esc_speed_minus""targetname"thread esc_speed("minus");

        
    //thread haha();
    }

    esc_speed(method)
    {
        
    self waittill("trigger"user);
        if (
    user.origin[1] < -8280.88)
        {
            
    self thread esc_speed(method);
            return;
        }

        
    getEnt("esc_speed_"+level.esc_speed"targetname").origin = (000);

        if (
    method == "plus")
        {
            
    level.esc_speed++;
            if (
    level.esc_speed == 11)
                
    level.esc_speed 0;    
        }

        else if (
    method == "minus")
        {
            
    level.esc_speed--;
            if (
    level.esc_speed == -1)
                
    level.esc_speed 10;
        }

        if (
    level.esc_speed == 1)
            
    level.esc_time 16;
        if (
    level.esc_speed == 2)
            
    level.esc_time 8;
        if (
    level.esc_speed == 3)
            
    level.esc_time 4;
        if (
    level.esc_speed == 4)
            
    level.esc_time 2;
        if (
    level.esc_speed == 5)
            
    level.esc_time 1;
        if (
    level.esc_speed == 6)
            
    level.esc_time .8;
        if (
    level.esc_speed == 7)
            
    level.esc_time .6;
        if (
    level.esc_speed == 8)
            
    level.esc_time .4;
        if (
    level.esc_speed == 9)
            
    level.esc_time .2;
        if (
    level.esc_speed == 10)
            
    level.esc_time .1;
        
        if (
    isDefined(level.esc_stop))
            
    level.esc_stop undefined;

        if (
    level.esc_speed == 0)
            
    level.esc_stop 1;

        
    getEnt("esc_speed_"+level.esc_speed"targetname").origin = (08.010);

        
    self thread esc_speed(method);
    }

    steps(flag)
    {
        if (
    flag)
        {
            
    self moveTo((00, -24), .05);    //moveTo is a more accurate method than setting an origin
            
    wait .05;
        }

        for (
    03i++)
        {
            while (
    isDefined(level.esc_stop))    // To stop the escalator, I had to use this stupid code
            
    {                // I tried many different variants and only this one worked
                
    self moveTo(self.origin.05);
                
    wait .05;
            }
            
    self moveY(-17level.esc_time);
            
    wait level.esc_time;    //the waittill() function doesn't work properly as it causes short pauses between motions
        
    }

        
    = -2;
        
    lol .125;
        for (
    15i++)
        {
            if (
    1)
            {
                
    = (i-1)*(-4);
                
    lol = (i-1)*.25;
            }

            while (
    isDefined(level.esc_stop))
            {
                
    self moveTo(self.origin.05);
                
    wait .05;
            }
            
    self moveTo(self.origin+(0lol-17d), level.esc_time);
            
    wait level.esc_time;
        }

        for (
    012i++)
        {
            while (
    isDefined(level.esc_stop))
            {
                
    self moveTo(self.origin.05);
                
    wait .05;
            }
            
    self moveTo(self.origin+(0, -16, -16), level.esc_time);
            
    wait level.esc_time;
        }

        for (
    40i--)
        {
            if (
    1)
            {
                
    = (i-1)*(-4);
                
    lol = (i-1)*.25;
            }
            else
            {
                
    = -2;
                
    lol .125;
            }

            while (
    isDefined(level.esc_stop))
            {
                
    self moveTo(self.origin.05);
                
    wait .05;
            }
            
    self moveTo(self.origin+(0lol-17d), level.esc_time);
            
    wait level.esc_time;
        }

        for (
    03i++)
        {
            while (
    isDefined(level.esc_stop))
            {
                
    self moveTo(self.origin.05);
                
    wait .05;
            }
            
    self moveY(-17level.esc_time);
            
    wait level.esc_time;
        }

        while (
    isDefined(level.esc_stop))
        {
            
    self moveTo(self.origin.05);
            
    wait .05;
        }
        
    self.origin = (00, -24);
        
    self thread steps(0);
    }
    */ 

  8. The Following 2 Users Say Thank You to php For This Useful Post:

    kung foo man (14th April 2015),p0wner52 (13th April 2015)

  9. #8
    Private MeGaBooM's Avatar
    Join Date
    Sep 2013
    Location
    germany
    Posts
    42
    Thanks
    22
    Thanked 20 Times in 9 Posts
    haha doomz, do you get the script?

  10. #9
    ... connecting
    Join Date
    Apr 2015
    Posts
    9
    Thanks
    2
    Thanked 5 Times in 2 Posts
    Quote Originally Posted by php View Post
    Thanks to megazoR

    [12:22] mеgazor: i can send script but its very specific
    [12:24] php: just wanted to give a heads up
    [12:24] php: u got referenced!!
    [12:24] php: omgggggg
    [12:24] mеgazor: ye
    [12:24] mеgazor:

    PHP Code:
    escalator_stuff()
    {
        
    level.esc_time .05;
        
    //setCvar("esc_time", level.esc_time);

        
    steps getEntArray("step""targetname");
        for (
    0steps.sizei++)    //26 steps
        
    {
            
    steps[ithread steps(1);
            
    wait level.esc_time;
        }
        
    wait 1;

        
    level.esc_time 1;
        
    level.esc_speed 5;
        
    getEnt("esc_speed_"+level.esc_speed"targetname").origin = (08.010);
        
    getEnt("esc_speed_plus""targetname"thread esc_speed("plus");
        
    getEnt("esc_speed_minus""targetname"thread esc_speed("minus");

        
    //thread haha();
    }

    esc_speed(method)
    {
        
    self waittill("trigger"user);
        if (
    user.origin[1] < -8280.88)
        {
            
    self thread esc_speed(method);
            return;
        }

        
    getEnt("esc_speed_"+level.esc_speed"targetname").origin = (000);

        if (
    method == "plus")
        {
            
    level.esc_speed++;
            if (
    level.esc_speed == 11)
                
    level.esc_speed 0;    
        }

        else if (
    method == "minus")
        {
            
    level.esc_speed--;
            if (
    level.esc_speed == -1)
                
    level.esc_speed 10;
        }

        if (
    level.esc_speed == 1)
            
    level.esc_time 16;
        if (
    level.esc_speed == 2)
            
    level.esc_time 8;
        if (
    level.esc_speed == 3)
            
    level.esc_time 4;
        if (
    level.esc_speed == 4)
            
    level.esc_time 2;
        if (
    level.esc_speed == 5)
            
    level.esc_time 1;
        if (
    level.esc_speed == 6)
            
    level.esc_time .8;
        if (
    level.esc_speed == 7)
            
    level.esc_time .6;
        if (
    level.esc_speed == 8)
            
    level.esc_time .4;
        if (
    level.esc_speed == 9)
            
    level.esc_time .2;
        if (
    level.esc_speed == 10)
            
    level.esc_time .1;
        
        if (
    isDefined(level.esc_stop))
            
    level.esc_stop undefined;

        if (
    level.esc_speed == 0)
            
    level.esc_stop 1;

        
    getEnt("esc_speed_"+level.esc_speed"targetname").origin = (08.010);

        
    self thread esc_speed(method);
    }

    steps(flag)
    {
        if (
    flag)
        {
            
    self moveTo((00, -24), .05);    //moveTo is a more accurate method than setting an origin
            
    wait .05;
        }

        for (
    03i++)
        {
            while (
    isDefined(level.esc_stop))    // To stop the escalator, I had to use this stupid code
            
    {                // I tried many different variants and only this one worked
                
    self moveTo(self.origin.05);
                
    wait .05;
            }
            
    self moveY(-17level.esc_time);
            
    wait level.esc_time;    //the waittill() function doesn't work properly as it causes short pauses between motions
        
    }

        
    = -2;
        
    lol .125;
        for (
    15i++)
        {
            if (
    1)
            {
                
    = (i-1)*(-4);
                
    lol = (i-1)*.25;
            }

            while (
    isDefined(level.esc_stop))
            {
                
    self moveTo(self.origin.05);
                
    wait .05;
            }
            
    self moveTo(self.origin+(0lol-17d), level.esc_time);
            
    wait level.esc_time;
        }

        for (
    012i++)
        {
            while (
    isDefined(level.esc_stop))
            {
                
    self moveTo(self.origin.05);
                
    wait .05;
            }
            
    self moveTo(self.origin+(0, -16, -16), level.esc_time);
            
    wait level.esc_time;
        }

        for (
    40i--)
        {
            if (
    1)
            {
                
    = (i-1)*(-4);
                
    lol = (i-1)*.25;
            }
            else
            {
                
    = -2;
                
    lol .125;
            }

            while (
    isDefined(level.esc_stop))
            {
                
    self moveTo(self.origin.05);
                
    wait .05;
            }
            
    self moveTo(self.origin+(0lol-17d), level.esc_time);
            
    wait level.esc_time;
        }

        for (
    03i++)
        {
            while (
    isDefined(level.esc_stop))
            {
                
    self moveTo(self.origin.05);
                
    wait .05;
            }
            
    self moveY(-17level.esc_time);
            
    wait level.esc_time;
        }

        while (
    isDefined(level.esc_stop))
        {
            
    self moveTo(self.origin.05);
            
    wait .05;
        }
        
    self.origin = (00, -24);
        
    self thread steps(0);
    }
    */ 
    holy sht xD all of ya and megazor r dam awesome xD
    he has a sick script hehe
    but one thing
    is it possible to get a litle bit explaining cuz i dont think i can make it in radiant without knowing how to even start or make it
    i really hope its possible would be really nice

    or the .map file itself with the materials/images if he or you guys doesnt mind so i can make the steps etc exact the same
    just needa get my own textures

    and dam his glass is so clear looks 1000x nicer then mine
    Last edited by p0wner52; 13th April 2015 at 22:22.

  11. #10
    ... connecting
    Join Date
    Apr 2015
    Posts
    9
    Thanks
    2
    Thanked 5 Times in 2 Posts
    i really have no clue how to make it without explaining i tried but didnt work out
    hope u guys would atleast be able to get me some explaining xD if possible with screens
    Last edited by p0wner52; 14th April 2015 at 18:27.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •