Page 4 of 5

Re: BRUT/BRUTUS (Entry for the December contest)

Posted: Tue Feb 05, 2019 8:01 pm
by TheDane
JackGriffin wrote:Just to give you an idea D, here is an example map Krullor sent me to help me learn the emitter settings:
lL7UJZPAWes

Turn your YT settings way up to really see the details. And this is the demo, it only gets better as you tweak and improve the textures and settings.
looks great 8) if it's not a zillion megabytes it could be usefull for Unreal though it looks very real :wink:

Re: BRUT/BRUTUS (Entry for the December contest)

Posted: Fri Feb 15, 2019 5:04 pm
by JackGriffin
@TheDane: I can't reply to you.
150b7f238006e75e1713df8b2d7901e6.jpg
150b7f238006e75e1713df8b2d7901e6.jpg (44.85 KiB) Viewed 1798 times

Re: BRUT/BRUTUS (Entry for the December contest)

Posted: Fri Feb 15, 2019 5:43 pm
by TheDane
JackGriffin wrote:@TheDane: I can't reply to you.

OMG I'm so blonde haha ... Sry!!! It should be fixed now :rock:

Re: BRUT/BRUTUS (Entry for the December contest)

Posted: Tue Feb 19, 2019 1:36 am
by Dr.Flay
@TheDane I think all the available renderers are fine with any AV.
It is just ACE protected servers with admin that do not maintain their whitelist that is a problem.

You may find using the DX10 renderer works better than the regular GL or DX9 renderers, though in any case don't forget to install the full DX9 runtime distro to add the missing older files.
Kentie hasn't updated his renderers for a long time, and so Smirftsch got his source to make his own branch.
It is probably worth using whatever the newest preferred stable version is at OldUnreal.

When updating an existing renderer, the ini lines will no longer match.
Use the advanced options window to tweak the updated renderers, so any missing switches will be added to the ini file, so next time you can see manually edit all of them.


BTW. meowcat mentioned he may port a smaller version of his YARM - Yet Another Real-life Mod to UT99.
https://forums.beyondunreal.com/threads ... st-2627598
I wonder if certain members here would want to help that happen :wink:

Re: BRUT/BRUTUS (Entry for the December contest)

Posted: Tue Feb 19, 2019 6:53 pm
by TheDane
Thx, I'll try installing the latest drivers and see which one I like the best :tu:

Re: BRUT/BRUTUS (Entry for the December contest)

Posted: Mon May 06, 2019 6:02 pm
by CoN_Dentures
Love this gametype. Was just wondering if there have been any extensive testing done on a server?

Re: BRUT/BRUTUS (Entry for the December contest)

Posted: Wed Nov 25, 2020 10:29 pm
by f7r
Hi guys! I put a weapon on of this without using the mutator itself. For example, BRUTUS.Snipe_AWM. Can I reload somehow?

Re: BRUT/BRUTUS (Entry for the December contest)

Posted: Thu Nov 26, 2020 12:37 am
by OjitroC
f7r wrote: Wed Nov 25, 2020 10:29 pm Hi guys! I put a weapon on of this without using the mutator itself. For example, BRUTUS.Snipe_AWM. Can I reload somehow?
It reloads automatically doesn't it?

I don't use the BRUT/BRUTUS weapons much because I don't like the recoil. I have subclassed a couple to reduce the recoil (the M60, as it's not in the various Counter Strike weapon mods and it's a handy MG, and the AWM) - both reload automatically.

The readme says "Players may add on-demand reload by binding "Mutate BRRELOAD" to a key" but I'm not sure if that works outside the mod itself. I can't remember if there is a property in the weapons to do with reloading - you can check that out in the Editor.

Re: BRUT/BRUTUS (Entry for the December contest)

Posted: Fri Nov 27, 2020 8:22 pm
by f7r
OjitroC wrote: Thu Nov 26, 2020 12:37 am It reloads automatically doesn't it?
Уes you are right. It do it automatically too. But I want to reload on half clip. I know very little about Unreal Script.
I found that:
in class BRUT extends Mutator config(BRUT);
Spoiler

Code: Select all

//Reload of the weapons on demand
function Mutate (string MutateString, PlayerPawn Sender)
{
	if (Left(Caps(MutateString),8) == "BRRELOAD")
	{
		if(Sender != None)
		{
			if(Sender.Weapon != None && !Sender.Weapon.bMeleeWeapon)
			{
				if(Sender.Weapon.IsA('CSSWeapons'))
				{
					if((CSSWeapons(Sender.Weapon).ClipCount < CSSWeapons(Sender.Weapon).default.ClipCount) && (CSSWeapons(Sender.Weapon).AmmoType.AmmoAmount > 0))
					{
						if(!CSSWeapons(Sender.Weapon).IsInState('NewClip'))
							CSSWeapons(Sender.Weapon).Reload();
					}
				}
			}
		}
	}

	Super.Mutate(MutateString,Sender);

	if(NextMutator != None)
		NextMutator.Mutate(MutateString,Sender);
}
and in class Sniper_AWM extends CSSWeapons;
Spoiler

Code: Select all

function Reload()
{
   if ((AmmoType.AmmoAmount>0) && (ClipCount < Default.ClipCount))
   {
    	PZoomLevel = 0;
      GotoState('NewClip');
      PlayReloading();
      ClientReload();

      if(Owner.IsA('PlayerPawn'))
		{
			if (PlayerPawn(Owner).Player.IsA('ViewPort'))
			{
				if(PlayerPawn(Owner).DesiredFOV != PlayerPawn(Owner).DefaultFOV)
				{
					PlayerPawn(Owner).DesiredFOV = PlayerPawn(Owner).DefaultFOV;
					PlayerPawn(Owner).FOVAngle = PlayerPawn(Owner).DesiredFOV;
				}
			}
		}
   }
}

simulated function ClientReload()
{
   if ((Role < ROLE_Authority) && (ClipCount < Default.ClipCount) && (AmmoType.AmmoAmount>0))
   {
    	PZoomLevel = 0;
    	GoToState('ClientReloading');
      PlayReloading();

      if(Owner.IsA('PlayerPawn'))
		{
			if (PlayerPawn(Owner).Player.IsA('ViewPort'))
			{
				if(PlayerPawn(Owner).DesiredFOV != PlayerPawn(Owner).DefaultFOV)
				{
					PlayerPawn(Owner).DesiredFOV = PlayerPawn(Owner).DefaultFOV;
					PlayerPawn(Owner).FOVAngle = PlayerPawn(Owner).DesiredFOV;
				}
			}
		}
   }
}

simulated function PlayReloading()
{
   if ((Owner == None))
      return;
   PlayAnim('Reload',0.8, 0.05);
}
Аlso the mutator does not change the weapon, it does class BattleRoyaleUT extends DeathMatchPlus;.
I don't want a Battle Royal, I want a CS weapon. I saw the CSWeapon16_v2 here on the forum, but I'm having some problems with it. So I decided to try the BRUT.
Thanks to you, I am now thinking about subclassing this weapon and creating my own simple mutator. :omfg:

Re: BRUT/BRUTUS (Entry for the December contest)

Posted: Sat Aug 28, 2021 5:20 am
by a9902957@nepwk.com
This is totally great.
I had to attempt and make FerBotz compatible with this and try to make those go more actively/pronounced for the zone's center.
The latter part is still WIP and I am such a newbie I definitely would welcome e.g. Higor himself stepping in.
Where is that Betrayal Beta gametype FerBotz have a file for by the way?
Spoiler
diff --git a/BRUT.uc b/BRUT.uc
index 637cd11..29dda41 100644
--- a/BRUT.uc
+++ b/BRUT.uc
@@ -338,7 +338,7 @@ function modifyPlayer(pawn Other)

if(Other != None)
{
- if(Other.IsA('PlayerPawn') || Other.IsA('Bot') && !Other.IsA('Spectator'))
+ if(Other.IsA('PlayerPawn') || (Other.IsA('Bot') || Other.IsA('Botz')) && !Other.IsA('Spectator'))
{
W = Weapon(Other.FindInventoryType(Class'Enforcer'));
if(W != None)
@@ -611,6 +611,7 @@ simulated function Timer()
local PlayerPawn PP;
local pawn p;
local Bot BB;
+ local Botz BBotz;
local float CenterDistance, PNDistance, f;
local Vector EndFlashFog, X;
local GraffitiLight T;
@@ -857,8 +858,46 @@ simulated function Timer()
}
}
}
- }
}
+ }
+ //Damage Botz in the radiation
+ Foreach AllActors(class'Botz',BBotz)
+ {
+ If (BBotz !=none)
+ {
+ CenterDistance=VSize(CZG.Location - BBotz.Location);
+ if ((CenterDistance / 50) > (CZoneSpawn.Drawscale))
+ {
+ BBotz.TakeDamage(5, pawn(owner), Location, 100.0 * X, 'Zoned');
+
+ //Make sure no current burger exists for the bot
+ IExist = False;
+
+ foreach AllActors(class'BotBurger', BO)
+ {
+ if(BO.Owner == BBotz) //Found one
+ {
+ IExist = True;
+ break;
+ }
+ }
+
+ if (!IExist)
+ {
+ //Check for a nearby pathnode that's in the safe zone
+ foreach RadiusActors(class'Pathnode', PN, 300, BBotz.Location)
+ {
+ PNDistance=VSize(CZG.Location - PN.Location);
+ if(PNDistance < CenterDistance)
+ {
+ Spawn(Class'BotBurger', BBotz,, PN.Location);
+ break;
+ }
+ }
+ }
+ }
+ }
+ }

//Destroy any BotBurgers that are in the radiation zone
Foreach AllActors(class'BotBurger',BO)
@@ -953,6 +992,8 @@ simulated function Timer()
BattleRoyaleUT(Level.Game).EndGame("BRUT");
foreach AllActors(class'Bot',BB) //added check to stop bots respawning
BB.GotoState('GameEnded');
+ foreach AllActors(class'Botz',BBotz) //added check to stop bots respawning
+ BBotz.GotoState('GameEnded');
}
else
{
@@ -977,7 +1018,7 @@ Function TimeChange()

For(p=level.pawnlist;p!=none;p=p.nextpawn)
{
- if(p.isa('bot') || p.isa('playerpawn'))
+ if(p.isa('bot') || p.isa('Botz') || p.isa('playerpawn'))
{
p.GroundSpeed = p.Default.GroundSpeed * (Normalspeed/Level.Timedilation);
p.WaterSpeed = p.Default.WaterSpeed * (Normalspeed/Level.Timedilation);
diff --git a/BattleRoyaleUT.uc b/BattleRoyaleUT.uc
index d5f17f1..cd85d36 100644
--- a/BattleRoyaleUT.uc
+++ b/BattleRoyaleUT.uc
@@ -359,7 +359,9 @@ event InitGame(string Options, out string Error)

function float GameThreatAdd(Bot aBot, Pawn Other)
{
- if (!Other.bIsPlayer)
+// Botz probably have a bIsPlayer=true but we afford this extra check for being lazy too to check this now ...
+// and are not ashamed enough to spell that out here
+ if (!Other.bIsPlayer && !Other.IsA('Botz') )
return 0;
else
return 0.1 * Other.PlayerReplicationInfo.Score;
@@ -414,20 +416,22 @@ function bool RestartPlayer(pawn aPlayer)

if(bRestartLevel && Level.NetMode!=NM_DedicatedServer && Level.NetMode!=NM_ListenServer)
return true;
-
+ // This special handling for the FerBotz here would be better put elsewhere but meh!
+ if (aPlayer.IsA('Botz') && aPlayer.PlayerReplicationInfo.Deaths < 1)
+ aPlayer.PlayerReplicationInfo.Score = 1; // not Lives; more than 1 is weird and would break the cond above
if (aPlayer.PlayerReplicationInfo.Score < 1)
{
- BroadcastLocalizedMessage(class'BRUTOutMessage', 0, aPlayer.PlayerReplicationInfo);
For (P=Level.PawnList; P!=None; P=P.NextPawn)
if (P.bIsPlayer && (P.PlayerReplicationInfo.Score >= 1))
P.PlayerReplicationInfo.Score += 0.00001;
- if (aPlayer.IsA('Bot'))
+ if (aPlayer.IsA('Bot') || aPlayer.IsA('Botz'))
{
aPlayer.PlayerReplicationInfo.bIsSpectator = true;
aPlayer.PlayerReplicationInfo.bWaitingPlayer = true;
aPlayer.GotoState('GameEnded');
return false; // bots don't respawn when ghosts
}
+ BroadcastLocalizedMessage(class'BRUTOutMessage', 0, aPlayer.PlayerReplicationInfo);
}
startSpot = FindPlayerStart(None, 255);
if(startSpot == None)
@@ -497,6 +501,7 @@ function CheckEndGame()
local int StillPlaying;
local bool bStillHuman;
local bot B, D, BB;
+ local Botz BBotz;
local actor A;

if (bGameEnded)
@@ -505,6 +510,9 @@ function CheckEndGame()
// Check to see if everyone is a ghost.
NumGhosts = 0;
for (PawnLink=Level.PawnList; PawnLink!=None; PawnLink=PawnLink.nextPawn)
+// hmm this shall check for us if Botz have the bIsPlayer=true bool Yay!
+// does not appear so; so the check above is needed it seems
+// err actually not sure :/
if (PawnLink.bIsPlayer)
{
if (PawnLink.PlayerReplicationInfo.Score < 1)
@@ -530,6 +538,8 @@ function CheckEndGame()
EndGame("BRUT");
foreach AllActors(class'Bot',BB) //added check to stop bots respawning
BB.GotoState('GameEnded');
+ foreach AllActors(class'Botz',BBotz) //added check to stop bots respawning
+ BBotz.GotoState('GameEnded');
}
}
else if (!bStillHuman)
diff --git a/DeadPlayerMarker.uc b/DeadPlayerMarker.uc
index 80f15dd..d88701a 100644
--- a/DeadPlayerMarker.uc
+++ b/DeadPlayerMarker.uc
@@ -54,7 +54,7 @@ auto state Pickup
}
Self.Destroy();
}
- else if (ValidTouch(Other) && Other.IsA('Bot'))
+ else if (ValidTouch(Other) && (Other.IsA('Bot') || Other.IsA('Botz'))
{
PlaySound (PickupSound,,2.5);
Self.Destroy();
Attached is the FerBotz special support .u (which I did not bless with useful comments or awesome formatting so far unfortunately).
Plus this version has embarrassing errors and shall get vastly improved. I am slowly getting there.

This is great fun on https://www.mapraider.com/maps/unreal-t ... picTownV2A

Re: BRUT/BRUTUS (Entry for the December contest)

Posted: Sat Aug 28, 2021 9:29 am
by papercoffee
does it work? do the bots go for the center instead of dying in the radiation alone?

Re: BRUT/BRUTUS (Entry for the December contest)

Posted: Sat Aug 28, 2021 7:10 pm
by a9902957@nepwk.com
I would say the effort definitely shows and they do better than the stock bots do with this mod (making more use of the translocator when playing with that e.g. which
came sort of free with Higor's FerBotz).
I packaged my tampered BRUT.u to make it more easy for you to give it a try:
https://ufile.io/eb7ausad
mirror: https://www.udrop.com/5TAE/BRUT_tampered_u_file.7z

But as I hinted at I am a newbie when it comes to writing UBZFV files or general better support for FerBotz for gametypes.
This could get vastly improved with the proper know-how.

Some more map recommendations for this:
(Mapraider's Huge category helped turn these up):

https://www.mapraider.com/maps/unreal-t ... paceBeacon ("My" FerBotz20 on UTv436 with XC-Engine19 have troubles with the lifts in this one. Maybe newer XC_Engine and FerBotz18 UScript would fare better).
Some of Zerker's UltimeUndwerworld maps.

The following two can give you sweet cool/wow experiences when you do not yet know the map, play with a very fast collapsing zone like I do currently ( ZoneSpeed=0.07 you could tone that down to 0.065 or so because that should still be relatively fast; mine is nearing "extreme" ) and you and the center happen to be at the right places at the right times. I was so lucky, so maybe you are as well. (So I would suggest not checking the maps out in detail beforehand but adding FerBotz before the start so that you are ~22 at the start and if you yourself die early, restart do not watch till the end).
https://www.mapraider.com/maps/unreal-t ... t-Atlantis
https://www.mapraider.com/maps/unreal-t ... oineCavern rename/link as DM-...

Re: BRUT/BRUTUS (Entry for the December contest)

Posted: Wed Sep 01, 2021 7:39 pm
by a9902957@nepwk.com
This should be an improvement on the last one. (DELETETHISPREFIXBattleRoyaleUTUBZFV.u is maybe better you will have to rename/overwrite; This does away with three SetMoveTarget calls again in the hopes of having bots run less against/into walls in a stuck manner)
Still I need to keep at it.
And also check out if I can get the FerBotz improvements that are in here (which offer greater control; however it is not compiled yet):
https://github.com/CacoFFF/XC-UT99-Old/ ... er/FerBotz

Because I think I might have hit a road block with what I can do with the TargetAdder class/plugin in terms of attempting to make the bots stop to go for items outside of the zone.

Re: BRUT/BRUTUS (Entry for the December contest)

Posted: Fri Sep 03, 2021 11:49 pm
by sektor2111
I was chatting a bit with Kelly about out-of-zone stuff. I don't know if something else was operated here but things might be solved - I guess...
Whatever actor or that zone itself can lock-down paths for nodes out of range and then Pawns won't walk there - poor lost Pawns will remain to die.
Paths lock-down can be done by adding 100000000 Cost perhaps even ExtraCost or retrieving connections with DescribeSpec and removing connections from Paths upStreamPaths PrunedPaths lists exactly like in map SkaarjTower pathed by Higor where some Teleporters inactive needed to be hacked as long as Teleporter code it's incomplete. A Teleporter disabled should lock paths as well not only when pawn is closer (with SpecialHandling) leaving it to Wander around. Higor's actor is tracking teleporters based on a timer and is placing paths back into lists if Teleporter is going enabled. It's a bit engineering but is doable - demonstrated.

Re: BRUT/BRUTUS (Entry for the December contest)

Posted: Sat Sep 04, 2021 2:33 pm
by papercoffee
interesting would be for bots to have a strong desire to reach the centre actor.
not only pathnodes but weapons and pickups should be also disabled when entering the deadly outside zone.
sometimes are bots so eager to get an item they miss the chance to get back in the savezone... and then they die very slowly.