How to start with Custom Augmentations[Fixed]

A refuge for those migrating from the fallen DXEditing.com and a place for general discussion relating to Deus Ex editing (coding, mapping, etc).
Post Reply
jmrg2992
Thug
Posts: 20
Joined: Tue Dec 22, 2009 5:13 pm

How to start with Custom Augmentations[Fixed]

Post by jmrg2992 »

Alrite ppl im back again with more questions.

I got my cool player class JMPlayer and i already set it to start into a specific map, also with custom Skillspoints. but now i got this prob, how i make to start it but with custom augs. I made these 3 Custom augs just for testing. SuperAugBallistic,SuperAugVision,SuperAugSpeed
so all of this are customize augs. but now my question, what command i need to put'em on the start, or i gotta to add something on my player class, or its the augmentationmanager ? i don't got any idea about this. also,

I played the cassandra mod and it has two initial augs and i check the PlayerClass ( Don't have anything related to augs Exectpy the SubSystem ) And the augmentationmanager say something about default augs, so i create my NewAugmentationManager. but isn't working, or my player ain't reconising my custom augmentationManager, such i created a medicalbot to see if at least i can set it on by that, but its still useuless LOL. this is friken hard.
jmrg2992
Thug
Posts: 20
Joined: Tue Dec 22, 2009 5:13 pm

Re: How to start with Custom Augmentations[Fixed]

Post by jmrg2992 »

Well i think i was rigth on this. to get some Default Augs at the beggining of the game you just need to set it on the DefaultAugs On properties here's the code for you guyz, based from the Cassandra AugmentationManager.uc

Code: Select all

class NewAugmentationManager expands AugmentationManager;


// added so we can have more starting augmentations

var Class<Augmentation> moreDefaultAugs[15];

var float StrengthLevel;
var float SpeedLevel;
var float ArmourLevel;


// Overriden to apply both sets of default augs

function AddDefaultAugmentations()
{
	local int augIndex;

	for(augIndex=0; augIndex<arrayCount(defaultAugs); augIndex++)
	{
		if (defaultAugs[augIndex] != None)
			GivePlayerAugmentation(defaultAugs[augIndex]);
	}

	for(augIndex=0; augIndex<arrayCount(moreDefaultAugs); augIndex++)
	{
		if (moreDefaultAugs[augIndex] != None)
			GivePlayerAugmentation(moreDefaultAugs[augIndex]);
	}

}


function Augmentation GivePlayerAugmentation(Class<Augmentation> giveClass)
{
	local Augmentation anAug;

	// Checks to see if the player already has it.  If so, we want to 
	// increase the level
	anAug = FindAugmentation(giveClass);

	if (anAug == None)
		return None;		// shouldn't happen, but you never know!

	if (anAug.bHasIt)
	{
		anAug.IncLevel();
		return anAug;
	}

	if (AreSlotsFull(anAug))
	{
		Player.ClientMessage(AugLocationFull);
		return anAug;
	}

	anAug.bHasIt = True;

	if (anAug.bAlwaysActive)
	{
		anAug.bIsActive = True;
		anAug.GotoState('Active');
	}
	else
	{
		anAug.bIsActive = False;
	}


	// Manage our AugLocs[] array
	AugLocs[anAug.AugmentationLocation].augCount++;
	
	// Assign hot key to new aug 
	// (must be after before augCount is incremented!)
   if (Level.NetMode == NM_Standalone)	
      anAug.HotKeyNum = AugLocs[anAug.AugmentationLocation].augCount + AugLocs[anAug.AugmentationLocation].KeyBase;
   else
      anAug.HotKeyNum = anAug.MPConflictSlot + 2;

	if ((!anAug.bAlwaysActive) && (Player.bHUDShowAllAugs))
	    Player.AddAugmentationDisplay(anAug);

	return anAug;
}



// this function returns the level of the aug (0, 1, 2, 3)


simulated function int GetClassLevel(class<Augmentation> augClass)
{
    local Augmentation anAug, anotherAug;

    anAug = FirstAug;

    if ((augClass.Name == 'AugMuscle') || (augClass.Name == 'AugBallistic'))
    {
        anotherAug = FirstAug;
        while(anotherAug != None)
        {
            if (anotherAug.IsA('SuperAugBallistic') &&  anotherAug.bHasIt &&
                anotherAug.bIsActive)
            {
		return StrengthLevel;
// would rather return below line but can't for the moment as our level is 0
//                return GetClassLevel(AugCloak);
            }
                    
            anotherAug = anotherAug.next;
        }
        return -1;
        }
        
    // --------------------------------------------------------------------
    // TCP - eperdu - 14/01/2000
	//corrected by Tim 10/3/01

    if (augClass.Name == 'SuperAugSpeed')
    {
        anotherAug = FirstAug;
        while(anotherAug != None)
        {
            if (anotherAug.IsA('SuperAugSpeed') &&  anotherAug.bHasIt &&
                anotherAug.bIsActive)
            {
		return SpeedLevel;
// would rather return below line but can't for the moment as our level is 0
//                return GetClassLevel(SuperAugSpeed);
            }
                    
            anotherAug = anotherAug.next;
        }
        return -1;
        }
        
    // --------------------------------------------------------------------
	//Tim 11/3/01

    if (augClass.Name == 'SuperAugBallistic')
    {
        anotherAug = FirstAug;
        while(anotherAug != None)
        {
            if (anotherAug.IsA('SuperAugBallistic') &&  anotherAug.bHasIt &&
                anotherAug.bIsActive)
            {
		return ArmourLevel;
// would rather return below line but can't for the moment as our level is 0
//                return GetClassLevel(SuperAugBallistic);
            }
                    
            anotherAug = anotherAug.next;
        }
        return -1;
        }
        
    // --------------------------------------------------------------------

    while(anAug != None)
    {
        
        if (anAug.Class == augClass)
        {
            if (anAug.bHasIt && anAug.bIsActive)
            return anAug.CurrentLevel;
        }
        anAug = anAug.next;
     }
     return -1;
}




// this function returns the VALUE of an aug, which is a float number corresponding to the level

simulated function float GetAugLevelValue(class<Augmentation> AugClass)
{
     local Augmentation anAug, anotherAug;
     local float retval;

     retval = 0;

    // --------------------------------------------------------------------
    // TCP - eperdu - 14/01/2000
	//corrected by Tim 10/3/01

    if ((augClass.Name == 'SuperAugVision') || (augClass.Name == 'SuperAugVision'))
    {
        anotherAug = FirstAug;
        while(anotherAug != None)
        {
            if (anotherAug.IsA('SuperAugVision') && anotherAug.bHasIt &&
                anotherAug.bIsActive)
            {
                return GetAugLevelValue(class'SuperAugVision');
            }
                    
            anotherAug = anotherAug.next;
        }
        return -1.0;
        }

        
    // --------------------------------------------------------------------


     anAug = FirstAug;
     while(anAug != None)
     {
          if (anAug.Class == augClass)
          {
               if (anAug.bHasIt && anAug.bIsActive)
                    return anAug.LevelValues[anAug.CurrentLevel];
               else
                    return -1.0;
          }

          anAug = anAug.next;
     }

     return -1.0;
}

defaultproperties
{
    moreDefaultAugs(0)=Class'SuperAugBallistic'
    moreDefaultAugs(1)=Class'SuperAugVision'
    moreDefaultAugs(2)=Class'SuperAugSpeed'
    StrengthLevel=3.00
    SpeedLevel=2.00
    ArmourLevel=3.00
    augClasses(0)=Class'AugLight'
    augClasses(1)=Class'AugDatalink'
    augClasses(2)=Class'AugPhysio'
    augClasses(3)=Class'SuperAugSpeed'
    augClasses(4)=Class'AugStrength'
    augClasses(5)=Class'AugHyper'
    augClasses(6)=Class'SuperAugBallistic'
    augClasses(7)=Class'SuperAugVision'
    augClasses(8)=Class'SuperAugSpeed'
    augClasses(9)=None
    augClasses(10)=None
    augClasses(11)=None
    augClasses(12)=None
    augClasses(13)=None
    augClasses(14)=None
    augClasses(15)=None
    augClasses(16)=None
    augClasses(17)=None
    augClasses(18)=None
    augClasses(19)=None
    augClasses(20)=None
    defaultAugs(0)=Class'SuperAugBallistic'
    defaultAugs(1)=Class'SuperAugVision'
    defaultAugs(2)=Class'SuperAugSpeed'
    NoAugInSlot="You do not have any such augmentation."
}
its just question of changing the part that says SuperAug**** for the want you want to start it and select it after on the default properties remember to put it in both parts. (Code up from default properties and also on properties)

hope this was helpful
Post Reply