Monster Match

Discussions about coding and scripting for Unreal Tournament.
Santhosh
Novice
Posts: 9
Joined: Sat Feb 06, 2016 9:03 am
Status: Offline

Post by Santhosh »

Creature Match is a Free-to-Play amusement for Android robot and Apple logo dark, in which players investigate the Prismal Islands catching, gathering and developing their own Monster Team. The amusement includes a riddle based fight workman wherein players match pearls so as to make their beasts assault. There are at present more than 700 Monsters to gather in the amusement, and more are included with each occasion.

Sektor2111
Novice
Posts: 11
Joined: Sat Feb 27, 2016 6:39 pm
Status: Offline

Post by Sektor2111 »

Bump >>>
Let's move this ahead. Post error, post function... then, my turn... I'll post what I think that will solve Accessed None in that function. Your move = Try new compilation and check if error occurs again.

User avatar
Deepu
Site Admin
Posts: 552
Joined: Sat Dec 27, 2014 12:14 pm
Contact:
Status: Offline

Post by Deepu »

OK!

Sektor2111
Novice
Posts: 11
Joined: Sat Feb 27, 2016 6:39 pm
Status: Offline

Post by Sektor2111 »

Error sample:

Code: Select all

ScriptWarning: MM_Mercenary MM-TestMap.MM_Mercenary1 (Function MMGame.MM_Mercenary.SpawnCarcass:0796) Accessed None
Function content (what I have seen):

Code: Select all

function Carcass SpawnCarcass()
{
local carcass carc;
local inventory w;
local inventory v;
local mm_mercenary s;
local float Selection;	

Selection = FRand();

 w = instigator.FindInventoryType(class'MM_GoldUnholyTool');
   	if ( w != None )  
{

if  ( Selection < zombiechance )

{
if (!bzombie) 
{

s =  Spawn(class'mm_mercenary',,,Location);  	
s.instigator = self.instigator;
s.playerreplicationinfo.team = self.playerreplicationinfo.team;
s.aggressiveness = self.aggressiveness * 2;
s.bhasrangedattack = false;
s.bmovingrangedattack = false;
s.bcanstrafe = false;
s.dropwhenkilled = none;
s.drawscale = self.drawscale;
s.bzombie = true;

v = instigator.FindInventoryType(class'MM_SilverImprovementTool');
	if ( v != None ) 
{
s.groundspeed =0.7*self.groundspeed;
s.airspeed = 0.7*self.airspeed;
s.waterspeed = 2.5*self.waterspeed;
s.health = self.default.health*3;
s.fatness = 0.3*self.fatness;
}
v = instigator.FindInventoryType(class'MM_SilverImprovementTool');
	if ( v == None )
{
s.groundspeed =0.5*self.groundspeed;
s.airspeed = 0.5*self.airspeed;
s.waterspeed = 2*self.waterspeed;
s.health = self.default.health*2;
s.fatness = 0.5*self.fatness;
}
s.skin = zombieskin;
s.multiskins[0] = self.zombieskin;
s.multiskins[1] = self.zombieskin;
s.multiskins[2] = self.zombieskin;
s.multiskins[3] = self.zombieskin;
s.multiskins[4] = self.zombieskin;
s.multiskins[5] = self.zombieskin;
s.multiskins[6] = self.zombieskin;
s.multiskins[7] = self.zombieskin;
}

if (bzombie) 
{
carc = Spawn(CarcassType);
carc.multiskins[0] = self.multiskins[0]; 
carc.multiskins[1] = self.multiskins[1]; 
carc.multiskins[2] = self.multiskins[2]; 
carc.multiskins[3] = self.multiskins[3]; 
carc.multiskins[4] = self.multiskins[4]; 
carc.multiskins[5] = self.multiskins[5]; 
carc.multiskins[6] = self.multiskins[6]; 
carc.multiskins[7] = self.multiskins[7]; 
carc.skin = self.skin; 
s.fatness = self.fatness;

	if ( carc != None )
		carc.Initfor(self);
}
}
else
{
carc = Spawn(CarcassType);
carc.multiskins[0] = self.multiskins[0]; 
carc.multiskins[1] = self.multiskins[1]; 
carc.multiskins[2] = self.multiskins[2]; 
carc.multiskins[3] = self.multiskins[3]; 
carc.multiskins[4] = self.multiskins[4]; 
carc.multiskins[5] = self.multiskins[5]; 
carc.multiskins[6] = self.multiskins[6]; 
carc.multiskins[7] = self.multiskins[7]; 
carc.skin = self.skin; 
s.fatness = self.fatness;

	if ( carc != None )
		carc.Initfor(self);
}
}
w = instigator.FindInventoryType(class'MM_GoldUnholyTool');
   	if ( w == None )  
{
carc = Spawn(CarcassType);
carc.multiskins[0] = self.multiskins[0]; 
carc.multiskins[1] = self.multiskins[1]; 
carc.multiskins[2] = self.multiskins[2]; 
carc.multiskins[3] = self.multiskins[3]; 
carc.multiskins[4] = self.multiskins[4]; 
carc.multiskins[5] = self.multiskins[5]; 
carc.multiskins[6] = self.multiskins[6]; 
carc.multiskins[7] = self.multiskins[7]; 

carc.skin = self.skin;

s.fatness = self.fatness; 

	if ( carc != None )
		carc.Initfor(self);
	return carc;
}
}
My Presumed fix - See differences

Code: Select all

function Carcass SpawnCarcass()
{
	local carcass carc;
	local inventory w;
	local inventory v;
	local mm_mercenary s;
	local float Selection;

	Selection = FRand();
	if ( self.instigator != None ) //Added Main Sanity Check
	{
		w = instigator.FindInventoryType(class'MM_GoldUnholyTool');
	if ( w != None )  
	{
		if  ( Selection < zombiechance )
		{
			if (!bzombie) 
			{
				s = Spawn(class'mm_mercenary',,,Location); //Is only try to spawn, LOL
				if ( s != None ) //Sanitycheck
				{
					s.instigator = self.instigator;
					if ( s.PlayerReplicationInfo != None && self.PlayerReplicationInfo != None )
						s.playerreplicationinfo.team = self.playerreplicationinfo.team;
					s.aggressiveness = self.aggressiveness * 2;
					s.bhasrangedattack = false;
					s.bmovingrangedattack = false;
					s.bcanstrafe = false;
					s.dropwhenkilled = none;
					s.drawscale = self.drawscale;
					s.bzombie = true;
					v = instigator.FindInventoryType(class'MM_SilverImprovementTool');
					if ( v != None ) 
					{
						s.groundspeed =0.7*self.groundspeed;
						s.airspeed = 0.7*self.airspeed;
						s.waterspeed = 2.5*self.waterspeed;
						s.health = self.default.health*3;
						s.fatness = 0.3*self.fatness;
					}
					v = instigator.FindInventoryType(class'MM_SilverImprovementTool');
					if ( v == None )
					{
						s.groundspeed =0.5*self.groundspeed;
						s.airspeed = 0.5*self.airspeed;
						s.waterspeed = 2*self.waterspeed;
						s.health = self.default.health*2;
						s.fatness = 0.5*self.fatness;
					}
					s.skin = zombieskin;
					s.multiskins[0] = self.zombieskin;
					s.multiskins[1] = self.zombieskin;
					s.multiskins[2] = self.zombieskin;
					s.multiskins[3] = self.zombieskin;
					s.multiskins[4] = self.zombieskin;
					s.multiskins[5] = self.zombieskin;
					s.multiskins[6] = self.zombieskin;
					s.multiskins[7] = self.zombieskin;
				}
			}
			else
//			if (bzombie) //Can be just an else !bzombie was before Boolean has only 2 options !bzombie or else is automated bzombie
			{
				carc = Spawn(CarcassType);
				if ( carc != None ) //Moved - Test Spawning
				{
					carc.multiskins[0] = self.multiskins[0]; 
					carc.multiskins[1] = self.multiskins[1]; 
					carc.multiskins[2] = self.multiskins[2]; 
					carc.multiskins[3] = self.multiskins[3]; 
					carc.multiskins[4] = self.multiskins[4]; 
					carc.multiskins[5] = self.multiskins[5]; 
					carc.multiskins[6] = self.multiskins[6]; 
					carc.multiskins[7] = self.multiskins[7]; 
					carc.skin = self.skin; 
	//				s.fatness = self.fatness; //=???
					carc.fatness = self.fatness; //added
//					if ( carc != None ) //LOL ? Move this before!
					carc.Initfor(self);
				}
			}
		}
		else
		{
			carc = Spawn(CarcassType);
			if (carc != None) //Moved
			{
			carc.multiskins[0] = self.multiskins[0]; 
			carc.multiskins[1] = self.multiskins[1]; 
			carc.multiskins[2] = self.multiskins[2]; 
			carc.multiskins[3] = self.multiskins[3]; 
			carc.multiskins[4] = self.multiskins[4]; 
			carc.multiskins[5] = self.multiskins[5]; 
			carc.multiskins[6] = self.multiskins[6]; 
			carc.multiskins[7] = self.multiskins[7]; 
			carc.skin = self.skin; 
//			s.fatness = self.fatness; //=???
			carc.fatness = self.fatness; //added
//			if ( carc != None ) //LOL ? Move this before!
			carc.Initfor(self);
			}
		}
	}
//	w = instigator.FindInventoryType(class'MM_GoldUnholyTool'); //WHY 2 checks ?
	else  
	{
		carc = Spawn(CarcassType);
		if ( carc != None ) //ADDED-MOVED
		{
			carc.multiskins[0] = self.multiskins[0]; 
			carc.multiskins[1] = self.multiskins[1]; 
			carc.multiskins[2] = self.multiskins[2]; 
			carc.multiskins[3] = self.multiskins[3]; 
			carc.multiskins[4] = self.multiskins[4]; 
			carc.multiskins[5] = self.multiskins[5]; 
			carc.multiskins[6] = self.multiskins[6]; 
			carc.multiskins[7] = self.multiskins[7]; 
			carc.skin = self.skin;
			carc.fatness = self.fatness; 
//		if ( carc != None ) //NOT HERE
			carc.Initfor(self);
		}
	}
	}
	return carc;
}
Rules ARE simple: when we access some ActorValue we have to be sure about "if (ActorValue != None)" and then everything accessed reach at target else it results only NONE.

User avatar
Deepu
Site Admin
Posts: 552
Joined: Sat Dec 27, 2014 12:14 pm
Contact:
Status: Offline

Post by Deepu »

SpawnCarcass error is fixed with your edited code for all monsters. Thank you!

you can fix one of Flying.ProcessTouch error?

Code: Select all

ScriptWarning: MM_BruteProjectile MM-TestMap.MM_BruteProjectile16 (Function MMGame.MM_BruteProjectile.Flying.ProcessTouch:003B) Accessed None
Last updated code is here
http://ultut.in/ut_dev/MMGame_v1_1_Test_Source.zip

Sektor2111
Novice
Posts: 11
Joined: Sat Feb 27, 2016 6:39 pm
Status: Offline

Post by Sektor2111 »

Original code more readable is this one

Code: Select all

	simulated function ProcessTouch (Actor Other, Vector HitLocation)
	{
		local vector momentum;
		local inventory w;
		local float Selection;
		local int NewFatness;

		Selection = FRand();
//////////////////////////////////////////
//////////////////////////////////////////
		if ( other == instigator )  //Rakiayn: monster getting hit not by own meleeattack but from an other monster//
		{
			//Rakiayn: monster does not get hit
			//Add > This check is pointless, Next check does job normally and nothing happens with instigator, if != None
		}
		if ( other != instigator )
		{
			//momentum = MomentumTransfer * Normal(Velocity);///
			w = other.instigator.FindInventoryType(class'MM_GoldnalispiritTool');
			if ( w != None ) 
			{
				if ( Selection < nalispirit )
				{
					other.style = STY_translucent;
					PlaySound(sound'Teleport1',, 2.0);
					other.ScaleGlow = 2.0;
					other.fatness = Clamp(NewFatness, 0, 255);
					playerpawn(other).weapon.Style = STY_translucent;
				}
				else
				{
					Explode(HitLocation,Vect(0,0,0));          
					other.style = other.default.style;
					other.ScaleGlow = other.default.Scaleglow;
					other.fatness = 128;
					//playerpawn(other).weapon.Style = playerpawn(other).weapon.default.Style;
				}
				Destroy();
			}
			w = other.instigator.FindInventoryType(class'MM_GoldnalispiritTool');
			if ( w == None ) 
			{
				Explode(HitLocation,Vect(0,0,0));
				other.style = other.default.style;
				other.ScaleGlow = other.default.Scaleglow;
				other.fatness = 128;              
				//playerpawn(other).weapon.Style = playerpawn(other).weapon.default.Style;
			}
		Destroy();
		}
}
My Solution/Proposal >>>

Code: Select all

	simulated function ProcessTouch (Actor Other, Vector HitLocation)
	{
		local vector momentum;
		local inventory w;
		local float Selection;
		local int NewFatness;

		Selection = FRand();
//////////////////////////////////////////
//////////////////////////////////////////
/*
		if ( other == instigator )  //Rakiayn: monster getting hit not by own meleeattack but from an other monster//
		{
			//Rakiayn: monster does not get hit
			//Add > This check is pointless, Next check does job normally and nothing happens with instigator, if != None
		}
	//Removed this chapter, doesn't make any sense.
*/
		if ( other != instigator && Instigator != None )
		{
			//momentum = MomentumTransfer * Normal(Velocity);
			w = other.instigator.FindInventoryType(class'MM_GoldnalispiritTool'); //hm, let me see #1
			if ( w != None ) 
			{
				if ( Selection < nalispirit )
				{
					other.style = STY_translucent;
					PlaySound(sound'Teleport1',, 2.0);
					other.ScaleGlow = 2.0;
					other.fatness = Clamp(NewFatness, 0, 255);
					if ( PlayerPawn(other) != None && PlayerPawn(other).Weapon != None ) //Added sanity check
						playerpawn(other).weapon.Style = STY_translucent;
				}
				else
				{
					Explode(HitLocation,Vect(0,0,0));          
					other.style = other.default.style;
					other.ScaleGlow = other.default.Scaleglow;
					other.fatness = 128;
					if ( PlayerPawn(other) != None && PlayerPawn(other).Weapon != None ) //Added sanity check
						PlayerPawn(other).Weapon.Style = playerpawn(other).weapon.default.Style; //Added back - remove if it is not needed
				}
				Destroy();
			} //if not then process ELSE bellow
//			w = other.instigator.FindInventoryType(class'MM_GoldnalispiritTool'); #2 WHAT For ??? Already checked..
//			if ( w == None ) //pointless
			else //Changed condition
			{
				Explode(HitLocation,Vect(0,0,0));
				other.style = other.default.style;
				other.ScaleGlow = other.default.Scaleglow;
				other.fatness = 128;
				if ( PlayerPawn(other) != None && PlayerPawn(other).Weapon != None ) //Added sanity check
					PlayerPawn(other).weapon.Style = PlayerPawn(other).Weapon.Default.Style; //Back Style if changed
			}
		Destroy();
		}
}
Go figure...

Source-code above doesn't compile because of some texture missing

User avatar
Deepu
Site Admin
Posts: 552
Joined: Sat Dec 27, 2014 12:14 pm
Contact:
Status: Offline

Post by Deepu »

Which textures?

Still error coming...

Code: Select all

ScriptWarning: MM_BruteProjectile MM-Test.MM_BruteProjectile360 (Function MMGame_v1_1.MM_BruteProjectile.Flying.ProcessTouch:003B) Accessed None
ScriptWarning: MM_BruteProjectile MM-Test.MM_BruteProjectile360 (Function MMGame_v1_1.MM_BruteProjectile.Flying.ProcessTouch:014D) Accessed None
ScriptWarning: MM_BruteProjectile MM-Test.MM_BruteProjectile364 (Function MMGame_v1_1.MM_BruteProjectile.Flying.ProcessTouch:003B) Accessed None
ScriptWarning: MM_BruteProjectile MM-Test.MM_BruteProjectile364 (Function MMGame_v1_1.MM_BruteProjectile.Flying.ProcessTouch:014D) Accessed None
ScriptWarning: MM_BruteProjectile MM-Test.MM_BruteProjectile394 (Function MMGame_v1_1.MM_BruteProjectile.Flying.ProcessTouch:003B) Accessed None
ScriptWarning: MM_BruteProjectile MM-Test.MM_BruteProjectile394 (Function MMGame_v1_1.MM_BruteProjectile.Flying.ProcessTouch:014D) Accessed None
:cry:
Compiled & playable file is here
http://ultut.in/ut_dev/MMGame_v1_1_Test_Pack.zip

Sektor2111
Novice
Posts: 11
Joined: Sat Feb 27, 2016 6:39 pm
Status: Offline

Post by Sektor2111 »

Because still codes are wrong

Old code:

Code: Select all

	simulated function ProcessTouch (Actor Other, Vector HitLocation)
	{
			
		local vector momentum;
          local inventory w;
        local float Selection;	
local int NewFatness; 

Selection = FRand();
	



//////////////////////////////////////////
//////////////////////////////////////////



if (other == instigator)  //Rakiayn: monster getting hit not by own meleeattack but from an other monster//

               {

//Rakiayn: monster does not get hit// 



               }			
if (other != instigator)


               {

				//momentum = MomentumTransfer * Normal(Velocity);///

w = other.instigator.FindInventoryType(class'MM_GoldnalispiritTool');
	if ( w != None ) 
                     {




if ( Selection < nalispirit )
                         {

                             
other.style = STY_translucent;
PlaySound(sound'Teleport1',, 2.0);
other.ScaleGlow = 2.0;
other.fatness = Clamp(NewFatness, 0, 255);
playerpawn(other).weapon.Style = STY_translucent;






                        }


                          
else
                         {
		Explode(HitLocation,Vect(0,0,0));          
        other.style = other.default.style;
        other.ScaleGlow = other.default.Scaleglow;
        other.fatness = 128;
        //playerpawn(other).weapon.Style = playerpawn(other).weapon.default.Style;
                         }

	destroy();	
	
                    }

w = other.instigator.FindInventoryType(class'MM_GoldnalispiritTool');
	if ( w == None ) 
                    {
     		     Explode(HitLocation,Vect(0,0,0));
                 other.style = other.default.style;
                 other.ScaleGlow = other.default.Scaleglow;
                 other.fatness = 128;              
                    //playerpawn(other).weapon.Style = playerpawn(other).weapon.default.Style;
	                }




		destroy();	
	
                   

               
           
       }


}
You should wrap it, it's not friendly readable.
New Code
  • ....
    simulated function ProcessTouch (Actor Other, Vector HitLocation)
    {
    local vector momentum;
    local inventory w;
    local float Selection;
    local int NewFatness;

    Selection = FRand();
    //////////////////////////////////////////
    //////////////////////////////////////////
    /*
    if ( other == instigator ) //Rakiayn: monster getting hit not by own meleeattack but from an other monster//
    {
    //Rakiayn: monster does not get hit
    //Add > This check is pointless, Next check does job normally and nothing happens with instigator, if != None
    }
    //Removed this chapter, doesn't make any sense.
    */
    if ( other != instigator )
    {
    //momentum = MomentumTransfer * Normal(Velocity);
    if (other.Instigator != None) //THIS ??
    w = other.instigator.FindInventoryType(class'MM_GoldnalispiritTool'); //hm, let me see #1
    if ( w != None )
    {
    if ( Selection < nalispirit )
    {
    other.style = STY_translucent;
    PlaySound(sound'Teleport1',, 2.0);
    other.ScaleGlow = 2.0;
    other.fatness = Clamp(NewFatness, 0, 255);
    if ( PlayerPawn(other) != None && PlayerPawn(other).Weapon != None ) //Added sanity check
    playerpawn(other).weapon.Style = STY_translucent;
    }
    else
    {
    Explode(HitLocation,Vect(0,0,0));
    other.style = other.default.style;
    other.ScaleGlow = other.default.Scaleglow;
    other.fatness = 128;
    if ( PlayerPawn(other) != None && PlayerPawn(other).Weapon != None ) //Added sanity check
    PlayerPawn(other).Weapon.Style = playerpawn(other).weapon.default.Style; //Added - back - remove if it is not needed - or using PlayerReplicationInfo to involve Bot as well
    }
    Destroy();
    } //if not then process ELSE bellow
    // w = other.instigator.FindInventoryType(class'MM_GoldnalispiritTool'); #2 WHAT For ??? Already checked..
    // if ( w == None ) //pointless
    else //Changed condition
    {
    Explode(HitLocation,Vect(0,0,0));
    other.style = other.default.style;
    other.ScaleGlow = other.default.Scaleglow;
    other.fatness = 128;
    if ( PlayerPawn(other) != None && PlayerPawn(other).Weapon != None ) //Added sanity check
    PlayerPawn(other).weapon.Style = PlayerPawn(other).Weapon.Default.Style; //Back Style if changed
    }
    Destroy();
    }
    }
    ...

User avatar
Deepu
Site Admin
Posts: 552
Joined: Sat Dec 27, 2014 12:14 pm
Contact:
Status: Offline

Post by Deepu »

Yes it works. But....
If i added this line

//PlayerPawn(other).weapon.Style = PlayerPawn(other).Weapon.Default.Style;

log comes again

Code: Select all

ScriptWarning: MM_BruteProjectile MM-Test.MM_BruteProjectile360 (Function MMGame_v1_1.MM_BruteProjectile.Flying.ProcessTouch:003B) Accessed None
ScriptWarning: MM_BruteProjectile MM-Test.MM_BruteProjectile360 (Function MMGame_v1_1.MM_BruteProjectile.Flying.ProcessTouch:014D) Accessed None
ScriptWarning: MM_BruteProjectile MM-Test.MM_BruteProjectile364 (Function MMGame_v1_1.MM_BruteProjectile.Flying.ProcessTouch:003B) Accessed None
Also coming...

Code: Select all

ScriptWarning: MeleeAttack MM-Test.MeleeAttack15 (Function MMGame_v1_1.MeleeAttack.Flying.ProcessTouch:0054) Accessed None
ScriptWarning: MeleeAttack MM-Test.MeleeAttack15 (Function MMGame_v1_1.MeleeAttack.Flying.ProcessTouch:01DA) Accessed None
ScriptWarning: MeleeAttack MM-Test.MeleeAttack15 (Function MMGame_v1_1.MeleeAttack.Flying.ProcessTouch:0288) Accessed None
ScriptWarning: MeleeAttack MM-Test.MeleeAttack19 (Function MMGame_v1_1.MeleeAttack.Flying.ProcessTouch:0054) Accessed None
ScriptWarning: MeleeAttack MM-Test.MeleeAttack19 (Function MMGame_v1_1.MeleeAttack.Flying.ProcessTouch:01DA) Accessed None
ScriptWarning: MeleeAttack MM-Test.MeleeAttack19 (Function MMGame_v1_1.MeleeAttack.Flying.ProcessTouch:0288) Accessed None
ScriptWarning: MeleeAttack MM-Test.MeleeAttack24 (Function MMGame_v1_1.MeleeAttack.Flying.ProcessTouch:0054) Accessed None
ScriptWarning: MeleeAttack MM-Test.MeleeAttack24 (Function MMGame_v1_1.MeleeAttack.Flying.ProcessTouch:01DA) Accessed None
ScriptWarning: MeleeAttack MM-Test.MeleeAttack24 (Function MMGame_v1_1.MeleeAttack.Flying.ProcessTouch:0288) Accessed None
ScriptWarning: MeleeAttack MM-Test.MeleeAttack29 (Function MMGame_v1_1.MeleeAttack.Flying.ProcessTouch:0054) Accessed None
ScriptWarning: MeleeAttack MM-Test.MeleeAttack29 (Function MMGame_v1_1.MeleeAttack.Flying.ProcessTouch:01DA) Accessed None
ScriptWarning: MeleeAttack MM-Test.MeleeAttack29 (Function MMGame_v1_1.MeleeAttack.Flying.ProcessTouch:0288) Accessed None
ScriptWarning: MeleeAttack MM-Test.MeleeAttack44 (Function MMGame_v1_1.MeleeAttack.Flying.ProcessTouch:0054) Accessed None
ScriptWarning: MeleeAttack MM-Test.MeleeAttack44 (Function MMGame_v1_1.MeleeAttack.Flying.ProcessTouch:01DA) Accessed None
ScriptWarning: MeleeAttack MM-Test.MeleeAttack44 (Function MMGame_v1_1.MeleeAttack.Flying.ProcessTouch:0288) Accessed None
ScriptWarning: MeleeAttack MM-Test.MeleeAttack46 (Function MMGame_v1_1.MeleeAttack.Flying.ProcessTouch:0054) Accessed None
ScriptWarning: MeleeAttack MM-Test.MeleeAttack46 (Function MMGame_v1_1.MeleeAttack.Flying.ProcessTouch:01DA) Accessed None
ScriptWarning: MeleeAttack MM-Test.MeleeAttack46 (Function MMGame_v1_1.MeleeAttack.Flying.ProcessTouch:0288) Accessed None

Code: Select all

ScriptWarning: MM_BruteProjectile MM-Test.MM_BruteProjectile224 (Function MMGame_v1_1.MM_BruteProjectile.Flying.BlowUp:0017) Accessed None
ScriptWarning: MM_BruteProjectile MM-Test.MM_BruteProjectile227 (Function MMGame_v1_1.MM_BruteProjectile.Flying.BlowUp:0017) Accessed None
ScriptWarning: MM_BruteProjectile MM-Test.MM_BruteProjectile228 (Function MMGame_v1_1.MM_BruteProjectile.Flying.BlowUp:0017) Accessed None

Sektor2111
Novice
Posts: 11
Joined: Sat Feb 27, 2016 6:39 pm
Status: Offline

Post by Sektor2111 »

MeleeAttack.
I see "instigator" called a lot. YOU must understand that you always need SANITIZER.

Code: Select all

if (Instigator != None && Instigator.PlayerReplicationInfo != None)
	...
+ "Instigator.PlayerReplicationInfo != None" because you call it but you cannot be sure if exist or not. Else
Pawn(Instigator) != None if code does funky things, before that "FindInventoryType" LINE.
Also you look like did not changed that ProcessTouch - post your compiled code.

BruteProjectile.blowup need also Instigator checker

Code: Select all

	function BlowUp(vector HitLocation)
	{
		if ( Instigator != None ) //ADDED
			HurtRadius(damage, 50 + instigator.skill * 45, 'exploded', MomentumTransfer, HitLocation);
		else
			HurtRadius(damage, 50 + Level.Game.Difficulty * 45, 'exploded', MomentumTransfer, HitLocation); //ELSE using Level "skill"
		MakeNoise(1.0);
		PlaySound(ImpactSound);
	}

Post Reply