Report Broken Maps Here

Discussions related to Unreal Tournament.
User avatar
SC]-[WARTZ_{HoF}
Site Admin
Posts: 356
Joined: Wed May 10, 2017 7:08 am

Re: Report Broken Maps Here

Post by SC]-[WARTZ_{HoF} » Fri Apr 10, 2020 1:54 am

It's up to you how you want to handle it.

Nelsona
Posts: 906
Joined: Sat Sep 30, 2017 5:03 am

Re: Report Broken Maps Here

Post by Nelsona » Fri Apr 10, 2020 5:28 am

That thing it's solved, I want to see next mod doing damage in "maps". No mismatch was encountered, mod is now Generation 2.

Code: Select all

class PlasmaArena expands Mutator config(EvilPR_001);

var bool bInitialized;
var() config bool	bDoubleJump, //Adding brackets for a better control in Editor + Preferences when INT file has all requirements
		bLowGrav,		// Low Gravity
		bNoFallDam;		// No Fall Damage
var() config int	maxJumps,
		jumpType; 
var() config float	jumpHeight; 

var() name		WeaponName,		//The name of our custom weapon.
		AmmoName;		//The name of our custom ammo.
var() string		WeaponString,		//The string Package.Class name of our custom weapon.
		AmmoString;		//The string Package.Class name of our custom ammo.

//XC_GameEngine interface
native(1718) final function bool AddToPackageMap( optional string PkgName);
// 1719 would check if it's not already a package...
event PreBeginPlay()
{
	Level.Game.DefaultWeapon=class'EvilPR_001.StealthTrans';
}

event PostBeginPlay()
{
//	Super.PostBeginPlay(); //Not needed at all
	if ( bInitialized ) //Moved here
		return;
	if ( int(ConsoleCommand("get ini:Engine.Engine.GameEngine XC_Version")) >= 11 )
		AddToPackageMap();
	bInitialized = True;
	SaveConfig();
}

function ModifyPlayer(Pawn Other) //Not needed as a simulated thing, it works as it is in Mutator.uc
{		//Actually as alternate method these can be server-side and only weapon as package, works guaranteed...
	local Inventory Inv;
	local class<DJ_InventoryItem> InventoryClass;
	local DJ_InventoryItem DJ_Inv;

	// Make sure we don't break anything
	Super.ModifyPlayer(Other);
	DeathMatchPlus(Level.Game).GiveWeapon(Other,WeaponString);

	// Create a DJ_InventoryItem
	InventoryClass = class<DJ_InventoryItem>(DynamicLoadObject("EvilPR_001.DJ_InventoryItem", class'Class'));

	if(bDoubleJump)
	{
		DJ_Inv = Spawn(class'DJ_InventoryItem', Other,, Other.Location);
		if( DJ_Inv != None )
		{
			DJ_Inv.RespawnTime = 0.0;
			DJ_Inv.GiveTo(Other);
			DJ_Inv.maxJumps = maxJumps;
			DJ_Inv.jumpType = jumpType;
			DJ_Inv.jumpHeight = jumpHeight; 
		}
	}
	Inv = Other.FindInventoryType(class'PlasmaRifle');
	if ( Inv == None )
	{
		Inv = Spawn(class'PlasmaRifle');
		if( inv != None )
		{
			Inv.GiveTo(Other);
			Ammo(Inv).AmmoAmount  = 999;
			Ammo(Inv).MaxAmmo  = 999;
		}
	}
	for( Inv=other.Inventory; Inv!=None; Inv=Inv.Inventory )
	{
			if (Ammo(Inv)!=None)
			{
				Ammo(Inv).AmmoAmount  = 999;
				Ammo(Inv).MaxAmmo  = 999;				
			}
	}
}
function bool CheckReplacement(Actor Other, out byte bSuperRelevant)
{
	if (Other.IsA('ZoneInfo'))
	{
		if (bLowGrav)
		{
			ZoneInfo(Other).ZoneGravity = vect(0,0,-200); // low gravity
		}

		if (bNoFallDam)
		{
			ZoneInfo(Other).ZoneTerminalVelocity = 1000;  // no fall damage yo
		}
	}
	if ((Other.IsA('StealthTrans')) )
		return true;

	if (Other.Class==Class'Translocator')
	{
		ReplaceWith(Other,"EvilPR_001.StealthTrans");
			return false;
	}
	if (Other.IsA('Ammo'))
	{
		if (Other.IsA('PlasmaAmmo')) //Nelsona - Our item is here out of replacing job
			return True;

		if ((Other.IsA('ShockCore'))
//		|| (Other.IsA('RifleShell')) // RifleShell Is child of BulletBox 
		|| (Other.IsA('BulletBox'))
		|| (Other.IsA('RocketPack'))
		|| (Other.IsA('BladeHopper'))
		|| (Other.IsA('FlakAmmo'))
		|| (Other.IsA('BioAmmo'))
		|| (Other.IsA('MiniAmmo'))
//		|| (Other.IsA('EClip')) //This is under MiniAmmo deal as well
		|| (Other.IsA('WarheadAmmo'))
		|| (Other.IsA('PAmmo')))
		{
			//ReplaceWith(Other,"EvilPR_001.PlasmaAmmo");
			return false;
		}
	}

	if(Other.IsA('Weapon'))
	{
		if ( Other.IsA('PlasmaRifle') ) //Nelsona - same as above
			return True;

		if ((Other.IsA('ShockRifle'))
		|| (Other.IsA('UT_BioRifle'))
		|| (Other.IsA('SniperRifle'))
		|| (Other.IsA('PulseGun'))
		|| (Other.IsA('Ripper'))
		|| (Other.IsA('Minigun2'))
		|| (Other.IsA('UT_Eightball'))
		|| (Other.IsA('UT_FlakCannon'))
		|| (Other.IsA('Enforcer'))
		|| (Other.IsA('WarheadLauncher'))
		|| (Other.IsA('ImpactHammer'))
		|| (Other.IsA('ChainSaw')))
		{
                        		//ReplaceWith(Other,"EvilPR_001.PlasmaRifle");
			return false;
      		}
   	}
   	return true;
}
If is damaging for whatever redeemer I'll proceed to adjust relevance for replaced class - KeepIt mutator might be helpful, else WarHeadLauncher can be excepted from any deal.
Not often maintained
My UT Mapping works...
Learn the rules like a pro, so you can break them like an artist.
- Pablo Picasso -

User avatar
SC]-[WARTZ_{HoF}
Site Admin
Posts: 356
Joined: Wed May 10, 2017 7:08 am

Re: Report Broken Maps Here

Post by SC]-[WARTZ_{HoF} » Fri Apr 10, 2020 1:57 pm

I'll factor this in next mods. Thanks for pointing these out.

User avatar
SC]-[WARTZ_{HoF}
Site Admin
Posts: 356
Joined: Wed May 10, 2017 7:08 am

Re: Report Broken Maps Here

Post by SC]-[WARTZ_{HoF} » Fri Apr 10, 2020 5:11 pm

What do you think about this block.

Code: Select all

// Modified version of the ReplaceWith function
// Replaces an inventory Other with an inventory of class aClassName and
// returns a reference to it
final function Inventory ReplaceWithItem(Inventory Other, coerce string aClassName)
{
	local Inventory A;
	local class<Inventory> aClass;
	local bool bAllowItemFall, bForceItemFall;
	local bool bAllowItemRotation, bForceItemRotation;

	if ( Other.Location == vect(0,0,0) )
		return None;
	aClass = class<Inventory>(DynamicLoadObject(aClassName, class'Class'));
	if ( aClass != None )
		A = Spawn(aClass, Other.Owner, Other.Tag, Other.Location + (aClass.Default.CollisionHeight - Other.CollisionHeight) * vect(0,0,1), Other.Rotation);
	
	if ( Other.MyMarker != None ) {
		Other.MyMarker.markedItem = A;
		if ( A != None )
			A.MyMarker = Other.MyMarker;
		Other.MyMarker = None;
	}
	else if ( A != None ) {
		A.bHeldItem = true;
		A.Respawntime = 0.0;
	}
	
	if ( A != None ) {
		if ( Other.Physics != Other.Class.Default.Physics ) {
			if ( Other.Physics == PHYS_Falling )
				bForceItemFall = True;
			else if ( Other.Class.Default.Physics == PHYS_Falling )
				bAllowItemFall = False;
		}
		if ( (!Other.bRotatingPickup || Other.RotationRate == rot(0,0,0))
				&& (Other.Rotation.Pitch != 0 || Other.Rotation.Roll != 0) )
			bAllowItemRotation = False;
		else
			bAllowItemRotation = (Other.RotationRate != rot(0,0,0) && Other.bRotatingPickup)
					|| !Other.default.bRotatingPickup || Other.default.RotationRate == rot(0,0,0);
		bForceItemRotation = Other.RotationRate != rot(0,0,0) && Other.bRotatingPickup
				&& (!Other.default.bRotatingPickup || Other.default.RotationRate == rot(0,0,0));
		
		if ( A.Physics == PHYS_Falling && !bAllowItemFall )
			A.SetPhysics(PHYS_None);
		else if ( A.Physics != PHYS_Falling && bForceItemFall )
			A.SetPhysics(PHYS_Falling);
		A.bRotatingPickup = bAllowItemRotation && (A.bRotatingPickup || bForceItemRotation);
		
		A.Event = Other.Event;
		A.Tag = Other.Tag;
		return A;
	}
	return None;
}

Nelsona
Posts: 906
Joined: Sat Sep 30, 2017 5:03 am

Re: Report Broken Maps Here

Post by Nelsona » Fri Apr 10, 2020 6:11 pm

Copy maybe Respawntime if has MyMarker ? In case that replacement class doesn't exist ? What if older is bStatic bNoDelete ? Idk, it looks a bit advanced anyway.

Else I'm asking you politely to try as much as possible to remove even from backups maps like Urban_Ascent.
#1 First of all duplicated actors/movers might crash server - here crashed in a recursive code call.
#2 No insults, no offenses but this is full time BULLSHIT.
Let's take a look:
Urban_Ascent.PNG
Urban_Ascent.PNG (1.25 MiB) Viewed 903 times
Why in hell a server would need this mess ? Let's see what I found with Mr Garbage.

Code: Select all

VoidCheck: --- Void placement report ---
VoidCheck: Light36 looks placed into void.
VoidCheck: Light203 looks placed into void.
VoidCheck: Light39 looks placed into void.
VoidCheck: Light40 looks placed into void.
VoidCheck: 4 actors look placed into void, check those.
GarbageLord: Found Level's Map: MyLevel.LevelInfo0
GarbageLord: Found Level's Map: MyLevel.LevelInfo0
Duplicated: AmbientSound2 was found 2 times.
Duplicated: AmbientSound3 was found 2 times.
Duplicated: AmbientSound4 was found 2 times.
Duplicated: AmbientSound5 was found 2 times.
Duplicated: AmbientSound6 was found 2 times.
Duplicated: AmbientSound7 was found 2 times.
Duplicated: AmbientSound8 was found 2 times.
Duplicated: AmbientSound9 was found 2 times.
Duplicated: AmbientSound10 was found 2 times.
Duplicated: AmbientSound11 was found 2 times.
Duplicated: Mover17 was found 2 times.
Duplicated: Mover18 was found 2 times.
Duplicated: Light233 was found 2 times.
Duplicated: Light234 was found 2 times.
Duplicated: Light235 was found 2 times.
Duplicated: Light236 was found 2 times.
Duplicated: Light237 was found 2 times.
Duplicated: Light238 was found 2 times.
Duplicated: Actors might be removed by using subsequent bTryFixDuplicates set to True.
Duplicated: Operation recommended in another clean editing session with both values set True.
Duplicated: Found 18 duplicated Actors.
Duplicated: Duplicated Actors scanning is being finished.
Maps ? Huh Mr. who talk about bullies in server ? Maps my A$$...
I guess I was funny when I was looking at ScreenShot hosted in myLevel - textured - but Dark as hell. I was wondering where was from that ScreenShot because it's not from this map. This is COPY-PASTE not mapping...
Not often maintained
My UT Mapping works...
Learn the rules like a pro, so you can break them like an artist.
- Pablo Picasso -

User avatar
SC]-[WARTZ_{HoF}
Site Admin
Posts: 356
Joined: Wed May 10, 2017 7:08 am

Re: Report Broken Maps Here

Post by SC]-[WARTZ_{HoF} » Fri Apr 10, 2020 6:50 pm

No doubt you are gonna find a mess of garbage maps on the sniper servers. Many of them need to be examined.

Edit: I told Blue that if she wants new maps on her server to have them looked at first.

Post Reply