MapChecker

Tutorials and discussions about Mapping - Introduce your own ones!
Buggie
Inhuman
Posts: 882
Joined: Sat Mar 21, 2020 5:32 am

Re: MapChecker

Post by Buggie » Tue Nov 09, 2021 4:16 pm

Which package be missed?

User avatar
fudgonaut
Skilled
Posts: 199
Joined: Sat Oct 05, 2013 7:20 am
Personal rank: Easy Target
Location: "The Butthole of the World"

Re: MapChecker

Post by fudgonaut » Tue Nov 09, 2021 4:23 pm

Buggie wrote: Which package be missed?
For some reason my Monster Hunt package was incomplete. I re-installed it and the editor loaded with MapChecker.

Buggie
Inhuman
Posts: 882
Joined: Sat Mar 21, 2020 5:32 am

Re: MapChecker

Post by Buggie » Tue Nov 09, 2021 4:38 pm

- Removed dependency to MonsterHunt.u

Updated in the first post: viewtopic.php?p=131447#p131447

Buggie
Inhuman
Posts: 882
Joined: Sat Mar 21, 2020 5:32 am

Re: MapChecker

Post by Buggie » Mon Dec 20, 2021 5:30 am

Added more checks:

Code: Select all

	checkShortcut();
	checkUnlockInventory();
	checkScriptedPawnMovement();
	checkTeamCannons();
	checkZoneInfoAmbientBrightness();
	checkMonsterHuntAssaultRandomizer();
	checkMonsterHuntAssaultBonusPackActors();
	checkTeleporterRelevance();
	checkCounterCount();
	checkTeleporterURL();
	checkDispatcherLoop();
	checkInventorySpotMarkedItem();
	checkLevelInfoCount();
	checkDecorationFragments();
	checkMonsterHuntTriggerType();
	checkPathNodeNotUsed();
	checkPathNodeClose();
	checkCeilingGunBase();
	checkGrBase();
	checkMoverScale();
	checkTeamCannon();
Updated in the first post: viewtopic.php?p=131447#p131447

User avatar
sektor2111
Godlike
Posts: 5661
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: MapChecker

Post by sektor2111 » Mon Dec 20, 2021 8:22 pm

With regard to this section

Code: Select all

....
foreach LevelInfo.AllActors(class'ScriptedPawn', A) {
		if (A.RangedProjectile == class'GuidedWarShell') { // Plasma too?
			if (Header != "") {
				Log(Header);
				Header = "";
			}
			LogProblem(A);
		}
There are stock projectile classes which are not exactly projectiles or useless (zero speed and zero damage), like are having certain Tentacles from "ported" map MH-Gauntlet (those projectiles are only falling down not at enemy direction).
Also here it would be needed checks for Non-Projectiles used as projectiles spamming actors. Some Skaarj in whatever map were firing ASMD - it was just a miserable setup.

Paths
By deleting a PathNode without Paths and not rebuilding Paths will result a screwed up NavigationPointlist. Previous node having deleted node as nextNavigationPoint will break chain. All Nodes from map are chained even if they are in void or not having paths after building paths due some factors (void, far away, too high isolated in the sky, buried in walls or floors, etc.). If some PlayerStart actors are lost from chain, even if these are inactive they can be in account for spawn due to secondary iterator deal, and player might spawn in other disabled area, either way navigation will get screwed up from certain point toward. Path searching is based on NavigationPointlist which needs to be Valid.

Buggie
Inhuman
Posts: 882
Joined: Sat Mar 21, 2020 5:32 am

Re: MapChecker

Post by Buggie » Tue Dec 21, 2021 12:08 am

It is not silver bullet. neither it is not "push for fix" solution.
It is simple checker.

It is mean it is not cover all cases. I try collect some, but obviously can not catch all.

And this tool produce hints. You can decide take it account or no. Possible hint is wrong and must be ignored.

Most auto-fix is fast but dirty. And not fit all possible scenarios. So need use fix (even if use) only after first pass without fixes and read output. And only if you fine for fix some issues in "some" way. Not necessary "proper" way.

Also after apply any fixes and make release better rebuilt paths and lights. But it obvious and must be done almost before any release of map.

Finally v469c rebuild NavigationPoint list on map load. So you can drop PathNodes and this not harm on v469c.

User avatar
sektor2111
Godlike
Posts: 5661
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: MapChecker

Post by sektor2111 » Tue Dec 21, 2021 2:42 am

I understand... So for version 469c I have to write a ServerActor for fixing the fix. I don't need InventorySpots from walls and Invalid Nodes relinked in Navigation chain. When map is corrupted this is not an answer at all.

Buggie
Inhuman
Posts: 882
Joined: Sat Mar 21, 2020 5:32 am

Re: MapChecker

Post by Buggie » Tue Dec 21, 2021 3:24 am

As you fish. Possible this can break some stuff which related to fact - any nav node in list. Anyway it is not subject of this topic.

Return to checker- use fix or just check before built paths is bad idea. Checker try detect state paths not rebuilt, but easily can fail with that,
So you place 100 PathNodes, run with fix and all nodes removed, because firstly need rebuilt paths. Only after that apply fix.

Anyway simple run without fix not modify anything so safe for call even if paths not built.

Biggest problem -huge flood in the log.