Results 1 to 4 of 4

Thread: [CoD2][Standalone] Progress bar

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Private
    Join Date
    Feb 2013
    Location
    Poland
    Posts
    32
    Thanks
    33
    Thanked 27 Times in 8 Posts

    [CoD2][Standalone] Progress bar

    blanco\_progress.gsc
    PHP Code:
    ////////////////////////
    // Scripted by BlancO //
    // For killtube.org   //
    // 23.09.2013         //
    ////////////////////////

    main()
    {
        
    // Image of progress background
        
    level.progressBar_back "gfx/hud/hud@health_back.tga";
        
    // Image of progress
        
    level.progressBar "gfx/hud/hud@health_bar.tga";
        
    // Show time left (0 = no timer, 1 = timer, 2 tenthsTimer)
        
    level.progressShowTime 2;
        
    // Progress passed "time", "melee" (when holding melee button), "use" (when holding use button), "attack" (when holding attack button),
        
    level.progressPassesOn "use";
        
    // Reset Timer when key is no longer holded (bool)
        
    level.progressReset 1;
        
    // Lock player when progressing (bool)
        
    level.progressLockPlayer 1;
        
    // Disable player weapon when progressing (bool)
        
    level.progressDisableWeapon 1;
        
    // Check if player is on the ground (bool)
        
    level.progressMustBeOnTheGround 1;
        
    // Hud settings
        
    level.progressHudX 220// x position
        
    level.progressHudY 360// y position
        
    level.progressHudMaxWidth 200// max width
        
    level.progressHudHeight 12// height
        
    level.progressHudColor = (010); // color
        
    level.progressHudBackgroundColor = (111); // color of the background
        // Timer hud settings
        
    level.progressTimerX = (level.progressHudX 10); // x position
        
    level.progressTimerY = (level.progressHudY 1); // y position
        
    level.progressTimerColor = (000); // color

        // Precache
        
    precacheShader(level.progressBar_back);
        
    precacheShader(level.progressBar);
    }

    startProgressBar(total)
    {
        
    self endon("progress_end");
        
    part 0;

        if(!
    isDefined(self.progressBlocker))
            
    self.progressBlocker spawn("script_origin"self.origin);

        while(
    isDefined(self) && isAlive(self))
        {
            if(
    level.progressReset && part >= 0)
            {
                
    self unLink();
                
    self enableWeapon();
                
    part 0;
                
    self thread deleteProgressBar();
            }

            if((!
    level.progressMustBeOnTheGround || (level.progressMustBeOnTheGround && self isOnGround())))
            {
                while((
    level.progressPassesOn == "melee" && self meleeButtonPressed()) || (level.progressPassesOn == "use" && self useButtonPressed()) || (level.progressPassesOn == "attack" && self attackButtonPressed()) || (level.progressPassesOn == "time"))
                {
                    
    self thread updateProgressBar(parttotal);

                    if(
    level.progressLockPlayer)
                        
    self linkTo(self.progressBlocker);

                    if(
    level.progressDisableWeapon)
                        
    self disableWeapon();

                    if(
    part >= total)
                    {
                        
    self unLink();
                        
    self enableWeapon();
                        
    self thread deleteProgressBar();
                        
    self notify("progress_end");
                    }

                    
    wait 0.05;
                    
    part += 0.05;
                }
            }

            
    timeleft total part;
            if(
    timeleft && level.progressShowTime == && isDefined(self.progressHudTimer))
                
    self.progressHudTimer setTimer(timeleft);
            if(
    timeleft && level.progressShowTime == && isDefined(self.progressHudTimer))
                
    self.progressHudTimer setTenthsTimer(timeleft);

            
    wait 0.05;
        }

        
    self unLink();
        
    self enableWeapon();
        
    self thread deleteProgressBar();
    }

    updateProgressBar(partmax)
    {
        
    maxwidth level.progressHudMaxWidth;

        if(!
    isDefined(self.progressHud))
        {
            
    self.progressHud newClientHudElem(self);
            
    self.progressHud setShader(level.progressBar, (maxwidth 2), level.progressHudHeight);
            
    self.progressHud.color level.progressHudColor;
            
    self.progressHud.alignX "left";
            
    self.progressHud.alignY "middle";
            
    self.progressHud.= (level.progressHudX 2);
            
    self.progressHud.= (level.progressHudY);
            
    self.progressHud.sort = -1;
        }
        
        if(!
    isDefined(self.progressHudBg))
        {
            
    self.progressHudBg newClientHudElem(self);
            
    self.progressHudBg setShader(level.progressBar_backmaxwidthlevel.progressHudHeight);
            
    self.progressHudBg.color level.progressHudBackgroundColor;
            
    self.progressHudBg.alignX "left";
            
    self.progressHudBg.alignY "middle";
            
    self.progressHudBg.level.progressHudX;
            
    self.progressHudBg.level.progressHudY;
            
    self.progressHudBg.sort 1;
        }

        if(!
    isDefined(self.progressHudTimer) && (level.progressShowTime == || level.progressShowTime == 2))
        {
            
    self.progressHudTimer newClientHudElem(self);
            
    self.progressHudTimer.color level.progressTimerColor;
            
    self.progressHudTimer.alignX "left";
            
    self.progressHudTimer.alignY "middle";
            
    self.progressHudTimer.level.progressTimerX;
            
    self.progressHudTimer.level.progressTimerY;
            
    self.progressHudTimer.sort 2;
        }

        
    timeleft max part;
        if(
    timeleft && level.progressShowTime == 1)
            
    self.progressHudTimer setTimer(timeleft);
        if(
    timeleft && level.progressShowTime == 2)
            
    self.progressHudTimer setTenthsTimer(timeleft);

        if(
    part <= 0)
            
    part 0.1;

        if(
    level.progressHudColor == (010))
            
    self.progressHud.color = (max partmax/part0);

        
    hud_width int((part/max) * (maxwidth 2));

        if(
    hud_width 1)
            
    hud_width 1;
        if(
    hud_width > (maxwidth 2))
            
    hud_width = (maxwidth 2);

        
    self.progressHud setShader(level.progressBarhud_widthlevel.progressHudHeight);
    }

    deleteProgressBar()
    {
        if(
    isDefined(self.progressHud))
            
    self.progressHud destroy();
        
        if(
    isDefined(self.progressHudBg))
            
    self.progressHudBg destroy();

        if(
    isDefined(self.progressHudTimer))
            
    self.progressHudTimer destroy();

    Call on server start
    Code:
    thread blanco\_progress::main();
    Call when progress bar should start (time = total time of progress bar)
    Code:
    self blanco\_progress::startProgressBar(time);
    I think it's clear. Don't change anything except main() function. :D

    Click image for larger version. 

Name:	1.jpg 
Views:	339 
Size:	190.5 KB 
ID:	461

    Click image for larger version. 

Name:	2.jpg 
Views:	296 
Size:	193.1 KB 
ID:	462
    Last edited by BlancO; 23rd September 2013 at 15:12.

  2. The Following 9 Users Say Thank You to BlancO For This Useful Post:

    Invictus (25th December 2013),kung foo man (23rd September 2013),Loveboy (23rd September 2013),Ni3ls (23rd September 2013),remes29 (23rd September 2013),Rocky (8th July 2014),smect@ (6th October 2013),thOuMta (23rd September 2013),YuriJurek (23rd September 2013)

Tags for this Thread

Posting Permissions

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