Page 6 of 10

Re: MapChecker

Posted: Thu May 11, 2023 8:11 am
by Buggie
Then you can select all plants and uncheck this flag (bCollideWorld). Or somehow change collision of it. If collision not same as default, there no warning.

You can't place InventorySpots manually. So this pointless tell this. It just hint about missing it. This mean you need rebuild paths.

Re: MapChecker

Posted: Tue May 23, 2023 10:34 am
by Barbie
Suggestion for check: is ScriptedPawn.RangedProjectile of class projectile?
code

Code: Select all

function bool CheckRangedProjectile(out int ErrCount) {
/*********************************************************************************************
Checks if ScriptedPawn.RangedProjectile is a projectile and issues a warning for other classes.
ScriptedPawn.RangedProjectile==None may be correct.
*********************************************************************************************/
local ScriptedPawn SP;

	ErrCount = 0;
	foreach AllActors(class'ScriptedPawn', SP)
	{
		if (SP.RangedProjectile != None && ! ClassIsChildOf(SP.RangedProjectile, class'Projectile'))
		{
			logger(LOG_Warning, "CheckRangedProjectile", SP $ ".RangedProjectile ==" @ SP.RangedProjectile @ "is not of type 'Projectile'");
			ErrCount++;
		}
	}
	return ErrCount == 0;
}

Re: MapChecker

Posted: Fri May 26, 2023 7:05 pm
by Buggie
Added more checks:

Code: Select all

	checkWeaponLockerWeaponOrder();
Improved some checks:
- checkScriptedPawnRangedProjectile

Add modular system for connect modules which make check required create dependency.

Updated in first post: viewtopic.php?f=5&t=14809

Re: MapChecker

Posted: Mon May 29, 2023 12:50 pm
by Barbie
I noticed your comment "Plasma too?" - yes, that also needs a fix, because Plasma@UnrealShare.u has a damage of 0 (do devs have forgotten to set property?)

FYI my fix of RangedProjectiles

Code: Select all

function int FixRangedProjectiles(ELogType LogLevel) {
/*******************************************************************************
Changes RangedProjectile for all ScriptedPawns, if RangedProjectile.Class is
equal to:
* "class'UnrealShare.Plasma'" -> ScriptedPawn.Default.RangedProjectile
* "class'BotPack.GuidedWarShell'" -> ScriptedPawn.Default.RangedProjectile
* "class'UnrealShare.EnergyBolt'" -> Class'EnergyBoltSB'
* "class'UnrealShare.ShellCase'" -> ScriptedPawn.Default.RangedProjectile

If a stock SkaarjTrooper has no weapon, the default weapon is assigned.

Log a warning if
	ScriptedPawn.bHasRangedAttack != ScriptedPawn.Default.bHasRangedAttack
	ScriptedPawn.RangedProjectile != None && ! ScriptedPawn.bHasRangedAttack
Returns the number of modified ScriptedPawns.
*******************************************************************************/
local ScriptedPawn SP;
local int result;

	// log("Entered FixRangedProjectiles, Level.PawnList=" $ Level.PawnList);

	foreach AllActors(class'ScriptedPawn', SP)
		if (SkaarjTrooper(SP) != None && SkaarjTrooper(SP).WeaponType == None)
		{
			if      (SP.Class == class'SkaarjTrooper')  SkaarjTrooper(SP).WeaponType  = class'SkaarjTrooper'.Default.WeaponType;
			else if (SP.Class == class'SkaarjGunner')   SkaarjGunner(SP).WeaponType    = class'SkaarjGunner'.Default.WeaponType;
			else if (SP.Class == class'SkaarjInfantry') SkaarjInfantry(SP).WeaponType  = class'SkaarjInfantry'.Default.WeaponType;
			else if (SP.Class == class'SkaarjOfficer')  SkaarjOfficer(SP).WeaponType   = class'SkaarjOfficer'.Default.WeaponType;
			else if (SP.Class == class'SkaarjSniper')   SkaarjSniper(SP).WeaponType    = class'SkaarjSniper'.Default.WeaponType;
			// other types are custom and should not be changed
		}
		else if (SP.RangedProjectile == class'UnrealShare.Plasma')
			FixRangedProjectile(LOG_Info, SP, SP.Default.RangedProjectile, result);
		else if (SP.RangedProjectile == class'BotPack.GuidedWarShell')
			FixRangedProjectile(LOG_Info, SP, SP.Default.RangedProjectile, result);
		else if (SP.RangedProjectile == class'UnrealShare.EnergyBolt')
			FixRangedProjectile(LOG_Info, SP, Class'EnergyBoltSB', result);
		else if (SP.RangedProjectile == class'UnrealShare.ShellCase' || SP.RangedProjectile == class'Botpack.UT_ShellCase')
			FixRangedProjectile(LOG_Info, SP, SP.Default.RangedProjectile, result);
		// if *RangedProjectile==None* then *bHasRangedAttack* is not necessarily FALSE - see Titan for example. Such cases cannot be detected.
		else if (SP.bHasRangedAttack != SP.Default.bHasRangedAttack)
			logger(LOG_Warning, "FixRangedProjectiles", "bHasRangedAttack=" $ SP.bHasRangedAttack @ "is not the default value for" @ SP $ "; RangedProjectile=" $ SP.RangedProjectile);
		else if (SP.RangedProjectile != None && ! SP.bHasRangedAttack)
			logger(LOG_Warning, "FixRangedProjectiles", "bHasRangedAttack=false for" @ SP @ "although it has a RangedProjectile=" $ SP.RangedProjectile);
	return result;
}

----- snip -----

class EnergyBoltSB extends EnergyBolt;


simulated function Explode(vector HitLocation, vector HitNormal) {
/******************************************************************************
EnergyBolt.Explode() is not "simulated".
******************************************************************************/
	Destroy();
}


defaultproperties {
	RemoteRole=ROLE_SimulatedProxy
	LifeSpan=7
}


Re: MapChecker

Posted: Mon May 29, 2023 5:31 pm
by Buggie
Plasma work for some scripted stuff. It blown and make damage if touch DispersionAmmo

Code: Select all

simulated function Explode(vector HitLocation, vector HitNormal)
{
	if ( Role == ROLE_Authority )
		HurtRadius(Damage,150.0, 'exploded', MomentumTransfer, HitLocation );	
	Destroy();
}

simulated function ProcessTouch (Actor Other, vector HitLocation)
{
	If ( (Other!=Instigator) && Other.IsA('DispersionAmmo') )
		Explode(HitLocation, HitLocation);
}
   
Auto merged new post submitted 3 minutes later
Improved some checks:
- checkScriptedPawnRangedProjectile

Updated in first post: viewtopic.php?f=5&t=14809

Re: MapChecker

Posted: Mon May 29, 2023 10:35 pm
by Barbie
But Plasma has a damage of zero - then HurtRadius(Damage,150.0, …) does not really hurt.
And if it had a none zero damage: would really anybody shoot other player's or ScriptedPawns' dispersion pistol's projectiles? :shock:

Re: MapChecker

Posted: Tue May 30, 2023 6:51 am
by Buggie
Idk. it look as weird ancient stuff or hack from Unreal.

Re: MapChecker

Posted: Sat Jun 03, 2023 2:40 pm
by Buggie
Improved some checks:
- checkMoverMoveTime

Updated in first post: viewtopic.php?f=5&t=14809

Re: MapChecker

Posted: Fri Jun 09, 2023 4:25 am
by Red_Fist
Barbie wrote: Mon May 29, 2023 10:35 pm But Plasma has a damage of zero - then HurtRadius(Damage,150.0, …) does not really hurt.
And if it had a none zero damage: would really anybody shoot other player's or ScriptedPawns' dispersion pistol's projectiles? :shock:
Long time ago I sort of gave the thought (total nube), and after reading some code, the whole dispersion thing only works for ,,,momentum more-so,,, but somehow it delivers damage like a bullet. (based on momentum)

Something more, a lot more, going on with that weapon.

I could be full of shit, but ,,,,,,,,,,,,,,,,,

Re: MapChecker

Posted: Fri Jun 09, 2023 10:29 pm
by sektor2111
Plasma is not a Dispersion projectile - it looks like a sort of, but it's not the same, it's another class and frankly useless for both human player and A.I. players/monsters - and there are others too... We can build elsewhere a list with these junks that are useless in maps or... they are not exactly mapping actors... because it's off-topic to discuss them here.

Re: MapChecker

Posted: Sun Jul 16, 2023 6:25 pm
by Buggie
Improved some checks:
- checkPathNodeClose

Updated in first post: viewtopic.php?f=5&t=14809

Re: MapChecker

Posted: Fri Jul 28, 2023 4:36 am
by Buggie
Added more checks:

Code: Select all

	checkMoverLiftInitialState();
Updated in first post: viewtopic.php?f=5&t=14809

Re: MapChecker

Posted: Tue Aug 08, 2023 5:55 pm
by Buggie
Added more checks:

Code: Select all

	checkBadStandingCount();
Updated in first post: viewtopic.php?f=5&t=14809

Re: MapChecker

Posted: Tue Aug 08, 2023 8:34 pm
by Red_Fist
When it says pathbides are too high or too low with that number.

What does the number mean

1 UU unit ?
It finds a lot of those but the numbers seem so low, like 12, or 1, ur 40, how large does the number have to be to be worth messing around with all those nodes. ?

It has helped me on things and fixxed most of them.

Not sure about scaled movers complaint or the , no delete complaints, like , smallsmokepuff.

Re: MapChecker

Posted: Tue Aug 08, 2023 10:06 pm
by OjitroC
Can you explain what BadStandingCount is/means? Thanks.