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

Plutonium

WerYouDoonCyundefined

WerYouDoonCy

@WerYouDoonCy
About
Posts
8
Topics
2
Shares
0
Groups
0
Followers
2
Following
1

Posts

Recent Best Controversial

  • Damage feedback Crosshair For T6MP
    WerYouDoonCyundefined WerYouDoonCy

    S2RT Thank you! I appreciate this a ton. I come from no programming background, so this is a first for me. I'm kind of just messing around with snippets I see on here and seeing what each thing does, but this help is very much appreciated.

    BO2 Modding Support & Discussion bo2

  • Damage feedback Crosshair For T6MP
    WerYouDoonCyundefined WerYouDoonCy

    I'm trying to find a way to make the crosshair in MP turn red on hit, similar to a hitmarker. (if the player gets a hitmarker) the crosshair should show red and fade out

    I came across a script that does this for zombies, but I'm new to GSC and unsure how to adapt it for T6MP. Specifically, I'm looking for the equivalent of level.zombie_team in this context

    #include maps\mp\_utility;
    #include common_scripts\utility;
    #include maps\mp\gametypes_zm\_hud_util;
    #include maps\mp\zombies\_zm_utility;
    #include maps\mp\zombies\_zm;
    #include maps\mp\zombies\_zm_perks;
    #include maps\mp\zombies\_zm_powerups;
    #include maps\mp\gametypes_zm\spawnlogic;
    #include maps\mp\gametypes_zm\_hostmigration;
    #include maps\mp\zombies\_zm_laststand;
    #include maps\mp\zombies\_zm_weapons;
    #include maps\mp\gametypes_zm\_hud_message;
    
    
    init()
    {
        precacheshader( "damage_feedback" ); 
        level endon( "end_game" );
        level thread onplayerconnect();
    }
    
    onplayerconnect()
    {
        for(;;)
        {
            level waittill("connected", player);
            player thread onplayerspawned();
        }
    }
    
    onplayerspawned()
    {
        
        level endon("game_ended");
        self endon("disconnect");
        for(;;)
        {
            self waittill("spawned_player");
        //    self maps\mp\zombies\_zm_spawner::register_zombie_damage_callback(::do_hitmarker);
        //    self maps\mp\zombies\_zm_spawner::register_zombie_death_event_callback(::do_hitmarker_death);
            self thread drawdamagehitmarker();
        }
    }
    
    drawdamagehitmarker()
    {
        self thread startwaiting();
        self.hitmarker = newdamageindicatorhudelem( self );
        self.hitmarker.horzalign = "center";
        self.hitmarker.vertalign = "middle";
        self.hitmarker.x = -12;
        self.hitmarker.y = -12;
        self.hitmarker.alpha = 0;
        self.hitmarker setshader( "damage_feedback", 24, 48 );
    }
    
    startwaiting()
    {
    	while( 1 )
    	{
            foreach( zombie in getaiarray( level.zombie_team ) )
            {
                if( !(IsDefined( zombie.waitingfordamage )) )
                {
                    zombie thread hitmark();
                }
            }
            wait 0.25;
    	}
    }
    
    hitmark()
    {
    	self endon( "killed" );
    	self.waitingfordamage = 1;
    	while( 1 )
    	{
    		self waittill( "damage", amount, attacker, dir, point, mod );
    //		attacker.hitmarker.alpha = 0;
    		if( isplayer( attacker ) )
    		{
    			if( isalive( self ) )
    			{
    				attacker.hitmarker.color = ( 1, 1, 1 );
    				attacker.hitmarker.alpha = 1;
    				attacker.hitmarker fadeovertime( 1 );
    				attacker.hitmarker.alpha = 0;
    			}
    			else
    			{
    				attacker.hitmarker.color = ( 1, 0, 0 );
                    attacker.hitmarker.alpha = 1;
    				attacker.hitmarker fadeovertime( 1 );
    				attacker.hitmarker.alpha = 0;
    				self notify( "killed" );
    			}
    		}
    	}
    }	
    
    updatedamagefeedback( mod, inflictor, death )
    {
        if( IsDefined( self.disable_hitmarkers ) || !(isplayer( self )) )
        {
            return;
        }
    
        if( mod != "MOD_HIT_BY_OBJECT" && mod != "MOD_GRENADE_SPLASH" && mod != "MOD_CRUSH" && IsDefined( mod ) )
        {
            if( death )
            {
                self hud_show_zombie_health(self.targetZombie, true);
            }
            else
            {
    
            }
    
            if (IsDefined(self.targetZombie) && isalive(self.targetZombie))
            {
                self hud_show_zombie_health(self.targetZombie, false);
            }
        }
        return 0;
    }
    
    do_hitmarker_death()
    {
        if( self.attacker != self && isplayer( self.attacker ) && IsDefined( self.attacker ) )
        {
            self.attacker thread updatedamagefeedback( self.damagemod, self.attacker, 1 );
        }
        return 0;
    }
    
    do_hitmarker( mod, hitloc, hitorig, player, damage )
    {
        if( player != self && isplayer( player ) && IsDefined( player ) )
        {
            player.targetZombie = self;
            player thread updatedamagefeedback( mod, player, 0 );
        }
        return 0;
    }
    
    hud_show_zombie_health(zombie, isDead)
    {
        self endon("disconnect");
        level endon("end_game");
    
        if (!isdefined(zombie))
            return;
        if (!isdefined(self.hud_zombie_health))
        {
            self.hud_zombie_health = self createprimaryprogressbar();        
            self.hud_zombie_health setpoint( "RIGHT", "BOTTOM", -75, -13 );
            self.hud_zombie_health.hidewheninmenu = false;
    
            self thread configbar();
    
        }
    
        zombieIndex = -1;
        zombieArray = getaiarray(level.zombie_team);
        for (i = 0; i < zombieArray.size; i++)
        {
            if (zombieArray[i] == zombie)
            {
                zombieIndex = i;
                break;
            }
        }
    
        if (isDead)
        {
            self.hud_zombie_health updatebar(0);
            self.hud_zombie_health.bar.color = (1, 0.2, 0.2);
        }
        else
        {
            totalHealth = zombie.maxhealth;
            damageInflicted = totalHealth - zombie.health;
            healthFraction = zombie.health / totalHealth;
            healthFractionColor = healthFraction * 100;
            self.hud_zombie_health updatebar(healthFraction);
            if(healthFractionColor <= 100 && healthFractionColor >= 71)
                self.hud_zombie_health.bar.color = (0, 1, 0.5);
            else if(healthFractionColor <= 70 && healthFractionColor >= 50)
                self.hud_zombie_health.bar.color = (1, 1, 0);
            else if(healthFractionColor <= 49 && healthFractionColor >= 25)
                self.hud_zombie_health.bar.color = (1, 0.5, 0);
            else if(healthFractionColor <= 24 && healthFractionColor >= 0)
                self.hud_zombie_health.bar.color = (1, 0.2, 0.2);
        }
    
        if (!isDead && zombie.health == zombie.maxhealth)
        {
            self.hud_zombie_health fadeovertime(1.5);
            self.hud_zombie_health.alpha = 0;
            wait 1.5;
            self.hud_zombie_health destroy();
            self.hud_zombie_health = undefined;
        }
    }
    
    configbar()
    {
        self endon("disconnect");
        level endon("end_game");
        while(true)
        {
            self.hud_zombie_health.width = 75; 
            self.hud_zombie_health.height = 3;
            self.hud_zombie_health.alpha = 0;
            if(self.zombiehealthvisible)
                self.hud_zombie_health.bar.alpha = 1;
            else
                self.hud_zombie_health.bar.alpha = 0;
            wait 1;
        }
    }
    
    BO2 Modding Support & Discussion bo2

  • Wallbang everything
    WerYouDoonCyundefined WerYouDoonCy

    I was also interested if this has been figured out as well @Meckz-AO mollyinduced

    BO2 Modding Support & Discussion
  • 1 / 1
  • Login

  • Don't have an account? Register

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