Returning to UT99 after years

  • Two Factor Authentication is now available on BeyondUnreal Forums. To configure it, visit your Profile and look for the "Two Step Verification" option on the left side. We can send codes via email (may be slower) or you can set up any TOTP Authenticator app on your phone (Authy, Google Authenticator, etc) to deliver codes. It is highly recommended that you configure this to keep your account safe.

|wSp|KiLLaKeLLeR

New Member
Dec 15, 2009
16
0
0
My server

I'm having some problems with my Maps and bots on my server, some maps like dm-empowered keep crashing everything is installed correctly and I am only running utpure,mapvotela13, phoenix and whopushed me mods at the moment, also some maps bots will die and just stay there on the map and turn green?? yet there are no S3 textures enabled? 68.232.177.100:7777
 

|wSp|KiLLaKeLLeR

New Member
Dec 15, 2009
16
0
0
Umod

What i normally do is I have a Umod utility that extracts the umods into seperate files on my desktop then i'll put them on my ftp, simple as that, whats wrong with your umod extractor??
and Yes I mean the Server isn't using S3 high res textures.
 

JadeWolf

New Member
Dec 16, 2009
10
0
0
Back again! ^^

Really sorry about double post, had some sort of problem and only half the post got posted, so though there might be a character limit, so split the post. Not sure what happened actually, since if there had have been such a limit I would have had to make 4 posts...

So, back to the post.
I found two great mods, one a mod which adds a gametype : CTF with 4 teams http://www.unrealtexture.com/UT/Downloads/Mods/FileCatcher.php?dir=.%2FCTF+4/, and the other mutator which makes the blue team have only instagib rifles, and the red team only snipers http://www.unrealtexture.com/UT/Downloads/Mods/FileCatcher.php?dir=.%2FInstagibbers+vs+Snipers/.

So what I'd like to do is modify the mutator by adding the Flak Cannon for the Green team, and the Rocket Launcher for the Gold team.
I don't plan on distributing this mutator, but if I do i'll give full credit to the original maker and to whoever here tells me how to do it ^^.


So in the mutator's folder there are two files:

InstaVsSniper.int
Code:
[Public]
Object=(Name=InstaVsSniper.InstaVsSniper,Class=Class,MetaClass=Engine.Mutator,Description="ÓNßt≈ vs ßNÓp3r")

and InstaVsSniper.u
 
Last edited:

JadeWolf

New Member
Dec 16, 2009
10
0
0
Code:
¡É*ûE4@ß#≤Äú úÿäh¨ƒ] ±N4None
bIsATeamGameInstaVsSniperWeaponPickupbaseCoreEngineAddMutator
ModifyPlayer
BulletBoxSuperShockCoreSniperRifleSystemAlwaysKeepArenaPickupSuperShockRifleAmmoPostBeginPlayCheckReplacement
InventoryLevelPlayerReplicationInfoMutator	GameInfo
BoolProperty
LevelInfoActorObjectPropertyClassPawnTeam
bCanThrowOtherM
bTeamGameGamebSuperRelevant	myMarkerPickupAmmoCountAmmoAmountIntPropertyPackageBotpackDeathMatchPlusGiveWeaponTextBuffer	FunctionObject
BytePropertyReturnValueScriptTextÄÇÇÄÖÄÑÄÇ
ÄO0/*============================================================================
InstaVsSniper
By Ch3z 
This mod was created almost entirely by information I found at UnrealWiki.
                                                  (http://wiki.beyondunreal.com/wiki/Home_Page)
A simple Arena style mutator to give Sniper Rifle to Red Team (with 999 ammo) and Enhanced Shock Rifle to Blue Team
In non-TeamGames everyone has both weapons. All pickups are gone.
=============================================================================
*/

class InstaVsSniper extends Mutator;

function AddMutator(Mutator M)
{
	if ( M.IsA('Arena') )
	{
		log(M$" not allowed (Arena mutator not compatible with existing mutator, InstaVsSniper)");
		return; // Arena Muator not added.
	}
	Super.AddMutator(M); // Allow next mutator to load otherwise.
}

function PostBeginPlay()
{
	local actor Other;

// Get rid of all pickups here otherwise they are gone as player inventory as well, which looses our weapons.
   	 foreach AllActors( class 'Actor', Other )
   	{
		if( Other.IsA('Pickup') || Other.IsA('Pickupbase' ) || Other.IsA('Weapon') || Other.IsA('Ammo'))
		{
			if( Inventory(Other).MyMarker != None)
			{
           				Other.Destroy();
			}
		}
    	}

	Super.PostBeginPlay();
}

function bool AlwaysKeep(Actor Other) // Keep CheckReplacement from removing some stuff from map that loads..
{
	if ( Other.IsA('SniperRifle') || Other.IsA('SuperShockRifle') ) // keep our 2 weapons.
	{
			Weapon(Other).PickupAmmoCount = 999; // Otherwise SniperRifle only gets 8 loads.
			Weapon(Other).bCanThrow = false; // so weapons aren't dropped and left when player is killed.
			return true;
	}

	if ( Other.IsA('BulletBox') || Other.IsA('SuperShockCore')  ) // Keep our 2 weapons' ammo.
	{
			Ammo(Other).AmmoAmount = 999; // Probably didn't need to raise this, but don't matter.
			return true;
	}

	Super.AlwaysKeep(Other);  // So that Mutator class can allow next mutator to use AlwaysKeep function.
	return false;
}

function bool CheckReplacement(Actor Other, out byte bSuperRelevant) // Get rid of some stuff from map that loads.
{
	

	if ( Other.IsA('Weapon') )
	{
				return false;
	}


	super.CheckReplacement(Other, bSuperRelevant);
	return true;
}

function bool bIsATeamGame()
{

// Called in ModifyPlayer() and used to give weapons reguardless of team for DeathMatch and LastManStanding
	if(Level != None && Level.Game != None )
		return Level.Game.bTeamGame;
}

function ModifyPlayer(Pawn Other)
{

// If teamgame give weapons per team else give both weapons to all

	if ( Other.PlayerReplicationInfo != None)
	{ 
		if ( Other.PlayerReplicationInfo.Team == 0 ||  !bIsATeamGame())
			Super(DeathMatchPlus).GiveWeapon(Other, "Botpack.SniperRifle");
		if ( Other.PlayerReplicationInfo.Team == 1 || !bIsATeamGame())
			Super(DeathMatchPlus).GiveWeapon(Other, "Botpack.SuperShockRifle");
	}

	Super.ModifyPlayer(Other); // So that Mutator class can allow next mutator to use ModifyPlayer function
}

òora/!ÁpV not allowed (Arena mutator not compatible with existing mutator, InstaVsSniper)òïAâ*a/!(ï'ñˇï/a0 ÇåãÑÑÑa/!a/!a/!a/!ãw.ã£*a10ñö

,íØ[Ña/!a/!.á¢Á.á-ú('†Ña/!	a/!
.åõÁ'ö(ÑˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇeHÏÑ=$:eÖût»Öût»â{#UøÖût»â{#Uøäéçîäéçîê©Ÿ´Çú‘ùXÇú‘ùXÇú‘ùXáX©'áX©'Çú‘ùXÇú‘ùXå—∏ôBÇú‘ùXÇú‘ùXÇú‘ùXÇú‘ùXãØ–ìúÇú‘ùXÑ=$:e°Ä	Oö	<:Çwé*wéë*éë-ùÄôXX
ªÆwç*_Ñö:çó%	ÅíBotpack.SniperRifleÆÑö:çó&	ÅíBotpack.SuperShockRifleôÄ*ˇˇˇˇ*ˇˇˇˇˇˇˇˇ˝ˇˇˇ/ˇˇˇˇ˝ˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇ˚ˇˇˇ˛ˇˇˇ˝ˇˇˇˇˇˇˇˆˇˇˇ$/Ìˇˇˇ-Ïˇˇˇ,*+/¸ˇˇˇ/˛ˇˇˇ1˜ˇˇˇ/¸ˇˇˇ/¸ˇˇˇ/¸ˇˇˇ
)Ùˇˇˇ(˘ˇˇˇ ˇˇˇ#˝ˇˇˇ.˝ˇˇˇ1˝ˇˇˇ˝ˇˇˇ0)˘ˇˇˇ'ıˇˇˇ&à!
N
à
!
[
à!
h
à"
u
à	!
Bü	%
Oû34Z0\ÜòIv>Üï4@ÜñAsAÜö
OtCÑdCFè	2gJÜCsJè2vKÜôdBLè2fN

So what I tried first was replacing every occurence of the text InstaVsSniper in both files with InstaVsSniperTwo, and in the .int file changing ÓNßt≈ vs ßNÓp3r to InstaSniperFlakRocket.
Then I made the following edits to the .u file:

Code:
¡É*ûE4@ß#≤Äú úÿäh¨ƒ] ±N4None
bIsATeamGameInstaVsSniperWeaponPickupbaseCoreEngineAddMutator
ModifyPlayer
BulletBoxSuperShockCoreSniperRifleSystemAlwaysKeepArenaPickupSuperShockRifleAmmoPostBeginPlayCheckReplacement
InventoryLevelPlayerReplicationInfoMutator	GameInfo
BoolProperty
LevelInfoActorObjectPropertyClassPawnTeam
bCanThrowOtherM
bTeamGameGamebSuperRelevant	myMarkerPickupAmmoCountAmmoAmountIntPropertyPackageBotpackDeathMatchPlusGiveWeaponTextBuffer	FunctionObject
BytePropertyReturnValueScriptTextÄÇÇÄÖÄÑÄÇ
ÄO0/*============================================================================
InstaVsSniper
By Ch3z 
This mod was created almost entirely by information I found at UnrealWiki.
                                                  (http://wiki.beyondunreal.com/wiki/Home_Page)
A simple Arena style mutator to give Sniper Rifle to Red Team (with 999 ammo) and Enhanced Shock Rifle to Blue Team
In non-TeamGames everyone has both weapons. All pickups are gone.
=============================================================================
*/

class InstaVsSniperTwo extends Mutator;

function AddMutator(Mutator M)
{
	if ( M.IsA('Arena') )
	{
		log(M$" not allowed (Arena mutator not compatible with existing mutator, InstaVsSniperTwo)");
		return; // Arena Muator not added.
	}
	Super.AddMutator(M); // Allow next mutator to load otherwise.
}

function PostBeginPlay()
{
	local actor Other;

// Get rid of all pickups here otherwise they are gone as player inventory as well, which looses our weapons.
   	 foreach AllActors( class 'Actor', Other )
   	{
		if( Other.IsA('Pickup') || Other.IsA('Pickupbase' ) || Other.IsA('Weapon') || Other.IsA('Ammo'))
		{
			if( Inventory(Other).MyMarker != None)
			{
           				Other.Destroy();
			}
		}
    	}

	Super.PostBeginPlay();
}

function bool AlwaysKeep(Actor Other) // Keep CheckReplacement from removing some stuff from map that loads..
{
	if ( Other.IsA('SniperRifle') || Other.IsA('SuperShockRifle') || Other.IsA('UT_FlakCannon')  || Other.IsA('UT_Eightball')  ) // keep our 4 weapons.
	{
			Weapon(Other).PickupAmmoCount = 999; // Otherwise SniperRifle only gets 8 loads.
			Weapon(Other).bCanThrow = false; // so weapons aren't dropped and left when player is killed.
			return true;
	}

	if ( Other.IsA('BulletBox') || Other.IsA('SuperShockCore')  ) // Keep our 2 weapons' ammo.
	{
			Ammo(Other).AmmoAmount = 999; // Probably didn't need to raise this, but don't matter.
			return true;
	}

	Super.AlwaysKeep(Other);  // So that Mutator class can allow next mutator to use AlwaysKeep function.
	return false;
}

function bool CheckReplacement(Actor Other, out byte bSuperRelevant) // Get rid of some stuff from map that loads.
{
	

	if ( Other.IsA('Weapon') )
	{
				return false;
	}


	super.CheckReplacement(Other, bSuperRelevant);
	return true;
}

function bool bIsATeamGame()
{

// Called in ModifyPlayer() and used to give weapons reguardless of team for DeathMatch and LastManStanding
	if(Level != None && Level.Game != None )
		return Level.Game.bTeamGame;
}

function ModifyPlayer(Pawn Other)
{

// If teamgame give weapons per team else give both weapons to all

	if ( Other.PlayerReplicationInfo != None)
	{ 
		if ( Other.PlayerReplicationInfo.Team == 0 ||  !bIsATeamGame())
			Super(DeathMatchPlus).GiveWeapon(Other, "Botpack.SniperRifle");
		if ( Other.PlayerReplicationInfo.Team == 1 || !bIsATeamGame())
			Super(DeathMatchPlus).GiveWeapon(Other, "Botpack.SuperShockRifle");
		if ( Other.PlayerReplicationInfo.Team == 2 || !bIsATeamGame())
			Super(DeathMatchPlus).GiveWeapon(Other, "Botpack.UT_FlakCannon");
		if ( Other.PlayerReplicationInfo.Team == 3 || !bIsATeamGame())
			Super(DeathMatchPlus).GiveWeapon(Other, "Botpack.UT_Eightball");
	}

	Super.ModifyPlayer(Other); // So that Mutator class can allow next mutator to use ModifyPlayer function
}

òora/!ÁpV not allowed (Arena mutator not compatible with existing mutator, InstaVsSniperTwo)òïAâ*a/!(ï'ñˇï/a0 ÇåãÑÑÑa/!a/!a/!a/!ãw.ã£*a10ñö

,íØ[Ña/!a/!.á¢Á.á-ú('†Ña/!	a/!
.åõÁ'ö(ÑˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇeHÏÑ=$:eÖût»Öût»â{#UøÖût»â{#Uøäéçîäéçîê©Ÿ´Çú‘ùXÇú‘ùXÇú‘ùXáX©'áX©'Çú‘ùXÇú‘ùXå—∏ôBÇú‘ùXÇú‘ùXÇú‘ùXÇú‘ùXãØ–ìúÇú‘ùXÑ=$:e°Ä	Oö	<:Çwé*wéë*éë-ùÄôXX
ªÆwç*_Ñö:çó%	ÅíBotpack.SniperRifleÆÑö:çó&	ÅíBotpack.SuperShockRifleôÄ*ˇˇˇˇ*ˇˇˇˇˇˇˇˇ˝ˇˇˇ/ˇˇˇˇ˝ˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇ˚ˇˇˇ˛ˇˇˇ˝ˇˇˇˇˇˇˇˆˇˇˇ$/Ìˇˇˇ-Ïˇˇˇ,*+/¸ˇˇˇ/˛ˇˇˇ1˜ˇˇˇ/¸ˇˇˇ/¸ˇˇˇ/¸ˇˇˇ
)Ùˇˇˇ(˘ˇˇˇ ˇˇˇ#˝ˇˇˇ.˝ˇˇˇ1˝ˇˇˇ˝ˇˇˇ0)˘ˇˇˇ'ıˇˇˇ&à!
N
à
!
[
à!
h
à"
u
à	!
Bü	%
Oû34Z0\ÜòIv>Üï4@ÜñAsAÜö
OtCÑdCFè	2gJÜCsJè2vKÜôdBLè2fN



I added in the "function bool AlwaysKeep" section a copy paste of the text surrounding the two existing weapons, replacing the duplicates with the names of the two new weapons, and in the end bit making two new entries with the new team numbers and the new weapon names.

When I try to launch a CFT4 game, UT freezes and comes up with
"Bad name index -69414417/52:"

I didn't expect my edits to work. So how can I make them work ?

Ofc the problem could be from either the fact i'm using unreal tournament OS X, a program with still several bugs (like the quitting in tournament mode i mentioned in my first post), which is unlikely cos it works with other mutators, or maybe I missed some things because I used a normal text editor (BBEdit) and not an unreal script modifier (I can't find one for OS X).

But I think I missed something, but can't see what. I've never done this before ^^.

Can any scripters help?
 
Last edited:

DannyMeister

UT3 Jailbreak Coder
Dec 11, 2002
1,275
1
38
40
Bolivar, Missouri
You can't directly edit .u files. You need the source code so that you can modify the .uc files. See the gibberish stuff scattered around in there? That is where the source code was compiled down to a binary format that UT can understand. If you don't have access to the original source code, you can extract it using UnrealEd. Go to the Actor class browser, open the package(s) for the mod, then do File->Export All Scripts. Then you have to make your edits and compile the mod. Make sure it's in your EditPackages and compile from the UT system directory with "ucc make". I'd suggest giving your package a new name (copy/rename the folder it extracts the mod to) and the classes a new name too, so you still have to the original mod to compare it to.
 

Zur

surrealistic mad cow
Jul 8, 2002
11,708
8
38
48
Just to add to DannyMeister's post:

Unrealscript in text form/uc file => Compilation/ucc.exe => Unreal engine bytecode/u file

Get hold of WOTGreal if you want to edit Unrealscript using a graphical interface: http://www.wotgreal.com/
 

JadeWolf

New Member
Dec 16, 2009
10
0
0
Aha, but the problem now is that I'm on mac os x - and neither UnrealEd nor WOTGreal work on my operating system.
Any chance someone with a few minutes handy could edit the mutator themselves?
 

Zur

surrealistic mad cow
Jul 8, 2002
11,708
8
38
48
If WOTGreal isn't an option, you can always use a text editor to modify the script and compile scripts using UCC. Either that or install VirtualBox, create a Windows virtual machine and modify/compile scripts there.

http://www.youtube.com/watch?v=7gIQNQFOuWM
 
Last edited:

JadeWolf

New Member
Dec 16, 2009
10
0
0
Hmm, haven't checked to see if UCC.exe works with my version of Crossover Games. Let's see. IF not, is virtualbox really reliable?
 

WedgeBob

XSI Mod Tool User
Nov 12, 2008
619
5
18
Cleveland, OH, USA
Glad I grabbed Unreal Anthology myself so I can get into the classics. Back in the days that Unreal 1 and UT1 were first run, silly me, I chose to follow the Quake series instead. What a dumb move that was. Had I known that the Unreal Series was that much better (of course, Carmack had better reputation than CliffyB did back in the '90s, and id Software will still more well known than Epic), I definitely would've given the Unreal Series more thought. Then again, I was too addicted to Duke Nukem 3D back then on top of that. Just went to who was more well known at the time. Glad you brought up the classics. Now that I'm playing them, I kinda wish I'd think about Unreal Tournament over Quake 3 Arena, or Half-Life Deathmatch back in those days (Counter-Strike didn't exist until after Q3A or UT, iirc).
 
Last edited:

JadeWolf

New Member
Dec 16, 2009
10
0
0
Right, i've tried several times. Once with a virtal comp, and on various PCs - my PC ver of UT doesnt work right it seems - the editor freezes when i ask it to export all scripts;

Could someone with some spare time export them and upload them please?
 

JadeWolf

New Member
Dec 16, 2009
10
0
0
Code:
*/============================================================================
InstaVsSniper
By Ch3z
This mod was created almost entirely by information I found at UnrealWiki.
                                                  (http://wiki.beyondunreal.com/wiki/Home_Page)
A simple Arena style mutator to give Sniper Rifle to Red Team (with 999 ammo) and Enhanced Shock Rifle to Blue Team
In non-TeamGames everyone has both weapons. All pickups are gone.
=============================================================================
*/

class InstaVsSniiper extends Mutator;

function AddMutator(Mutator M)
{
	if ( M.IsA('Arena') )
	{
		log(M$" not allowed (Arena mutator not compatible with existing mutator, InstaVsSniiper)");
		return; // Arena Muator not added.
	}
	Super.AddMutator(M); // Allow next mutator to load otherwise.
}

function PostBeginPlay()
{
	local actor Other;

// Get rid of all pickups here otherwise they are gone as player inventory as well, which looses our weapons.
   	 foreach AllActors( class 'Actor', Other )
   	{
		if( Other.IsA('Pickup') || Other.IsA('Pickupbase' ) || Other.IsA('Weapon') || Other.IsA('Ammo'))
		{
			if( Inventory(Other).MyMarker != None)
			{
           				Other.Destroy();
			}
		}
    	}

	Super.PostBeginPlay();
}

function bool AlwaysKeep(Actor Other) // Keep CheckReplacement from removing some stuff from map that loads..
{
	if ( Other.IsA('SniperRifle') || Other.IsA('SuperShockRifle') || Other.IsA('FlakCannon') || Other.IsA('Eightball') ) // keep our 4 weapons.
	{
			Weapon(Other).PickupAmmoCount = 999; // Otherwise SniperRifle and other two only gets 8 loads.
			Weapon(Other).bCanThrow = true; // so weapons aren't dropped and left when player is killed.
			return true;
	}

	if ( Other.IsA('BulletBox') || Other.IsA('SuperShockCore')|| Other.IsA('FlakBox')|| Other.IsA('RocketCan')  ) // Keep our 4 weapons' ammo.
	{
			Ammo(Other).AmmoAmount = 999; // Probably didn't need to raise this, but don't matter.
			return true;
	}

	Super.AlwaysKeep(Other);  // So that Mutator class can allow next mutator to use AlwaysKeep function.
	return false;
}

function bool CheckReplacement(Actor Other, out byte bSuperRelevant) // Get rid of some stuff from map that loads.
{


	if ( Other.IsA('Weapon') )
	{
				return false;
	}


	super.CheckReplacement(Other, bSuperRelevant);
	return true;
}

function bool bIsATeamGame()
{

// Called in ModifyPlayer() and used to give weapons reguardless of team for DeathMatch and LastManStanding
	if(Level != None && Level.Game != None )
		return Level.Game.bTeamGame;
}

function ModifyPlayer(Pawn Other)
{

// If teamgame give weapons per team else give both weapons to all

	if ( Other.PlayerReplicationInfo != None)
	{
		if ( Other.PlayerReplicationInfo.Team == 0 ||  !bIsATeamGame())
			Super(DeathMatchPlus).GiveWeapon(Other, "Botpack.SniperRifle");
		if ( Other.PlayerReplicationInfo.Team == 1 || !bIsATeamGame())
			Super(DeathMatchPlus).GiveWeapon(Other, "Botpack.SuperShockRifle");
		if ( Other.PlayerReplicationInfo.Team == 2 || !bIsATeamGame())
			Super(DeathMatchPlus).GiveWeapon(Other, "Botpack.FlakCannon");
		if ( Other.PlayerReplicationInfo.Team == 3 || !bIsATeamGame())
			Super(DeathMatchPlus).GiveWeapon(Other, "Botpack.Eightball");
	}

	Super.ModifyPlayer(Other); // So that Mutator class can allow next mutator to use ModifyPlayer function
}

defaultproperties
{
}

OK, I noticed unrealed had exported it even though it freezed. So here are my edits.

However, UCC.exe seems coprrupted, it crashes as well. Could someone run the above through their UCC to compile it please?