[Logo]
 
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 
Working booster combo to replace BBBB  XML
Forum Index -> UnrealScript, Coding, Mapping, and 3rd party Mods Go to Page: 1, 2, 3 Next 
Author Message
Drago'Nish

Dominating
[Avatar]
Joined: 08/10/2005 18:38:46
Messages: 205
Offline

Where others have failed, i have succeeded, or atleast, mysterial did for UT2003.

about a hour ago i was looking at the mutators mysterial made, and i found a mutator to replace the booster combo, as he found it to powerfull compared to others. (the others stopt, booster kept health and shield afterwards.)
link: http://mysterial.linuxgangster.org/

having found that, i also knew it would contain the required code, download > decompiled it.

and i indeed found the necesary code to fully disable, and enable the new combo, while still using the BBBB combo.

one last thing remains, is testing if it truly keeps running if the health has passed the true max, i cant do this myself, because i do not have a mutator available or know any, that i can throw on and run to see if it works.
so it would be greatly apreciated if someone would give it a test, and post it if it works.

i am pretty sure it will, but guesse its never 100% sure.
 Filename BoosterFix.rar [Disk] Download
 Description
 Filesize 3 Kbytes
 Downloaded:  286 time(s)


Zenas: Weapons Master - lvl 26
v0rTeX

Wicked Sick!
[Avatar]

Joined: 12/19/2004 20:59:52
Messages: 562
Offline

Heh, nice one. I figured there had to be a way around the old combo but I don't understand enough about code to have found it on my own.

My problem was that I could replace Booster in instant action but not in netplay. I'll give this one a shot and see what happens.

EDIT: Okay I just gave it a shot and when used on a dedicated server it seems to still use the old combo because it breaks the second your health goes over the normal max.

I even tested it with only RPG, Druids, RPG HUD and the booster fix running.
After looking at the code I can see why mine wouldn't have worked. And I can probably assure you that the reason this one doesnt work is because the functions that control client replication have changed from 2k3 to 2k4.

Either that or you have to call Super before the replacement functions for net clients.

Take your pick.
Deunan

Dominating
[Avatar]
Joined: 06/07/2005 21:19:19
Messages: 206
Offline

Excellent, let us know if it works!

never interrupt your enemy when they're making a mistake!

My Skin : http://www.ut2003hq.com/pafiledb/pafiledb.php?action=file&id=2381
[Email] [Yahoo!]
Drago'Nish

Dominating
[Avatar]
Joined: 08/10/2005 18:38:46
Messages: 205
Offline

v0rTeX wrote:
Heh, nice one. I figured there had to be a way around the old combo but I don't understand enough about code to have found it on my own.

My problem was that I could replace Booster in instant action but not in netplay. I'll give this one a shot and see what happens.

EDIT: Okay I just gave it a shot and when used on a dedicated server it seems to still use the old combo because it breaks the second your health goes over the normal max.

I even tested it with only RPG, Druids, RPG HUD and the booster fix running.
After looking at the code I can see why mine wouldn't have worked. And I can probably assure you that the reason this one doesnt work is because the functions that control client replication have changed from 2k3 to 2k4.

Either that or you have to call Super before the replacement functions for net clients.

Take your pick. 


i already were afraid of that, guesse best bet in this case would be to first try if Mysterial's booster works on net games.

i'll have a look tonight i think, but not sure about anything.
few discusions/problems with school right now..

anyway, i'll post it up as soon as i find out a bit more, and maybe get a bit further in the code.

oh, and thnx for trying if it worked, to bad it dindt, though i already thought it was still going to break.

Zenas: Weapons Master - lvl 26
KohanX

Godlike

Joined: 03/04/2006 13:40:23
Messages: 350
Offline

Please tell me I'm not the only one who's looked at MutCrateCombo.uc... Any questions on adding and removing combos can be answered in that piece.
v0rTeX

Wicked Sick!
[Avatar]

Joined: 12/19/2004 20:59:52
Messages: 562
Offline

KohanX wrote:
Please tell me I'm not the only one who's looked at MutCrateCombo.uc... Any questions on adding and removing combos can be answered in that piece. 


Yes we have all looked at that one. The problem is that mutcrate combo does not try to replace any of the default 4 combos. It merely adds new combos. I can add new combos no problem. But no one yet has demonstrated the abiility to completely replace one of the 4 standard combos with something else when it comes to a dedicated server.

Try not to insult us if you aren't following the whole conversation next time please.
Continuum

Wicked Sick!
[Avatar]

Joined: 03/09/2005 05:20:36
Messages: 479
Location: Indianapolis, Indiana
Offline

What if you used the no combo mut then re-created the combos (code is already there) then added your "new" combos to the rpg as something other than a combo... youd have to go back and extend whatever class the adrelalin combo extended then copy that code, ect ect... basically would be cut and paste then checking references to make sure they referenced your version but I think it would work..

Although the best idea ive heard was modifying the medic weapon to know when booster was running...




Current WIP:
Skins:
[Email]
KohanX

Godlike

Joined: 03/04/2006 13:40:23
Messages: 350
Offline

Does it only not work when running on a Dedicated Server? Let me know if this piece of code is relevant (pun not intended)

Code:
function bool IsRelevant(Actor Other, out byte bSuperRelevant)
 {
 	local int i;
 
 	if ( xPlayer(Other) != None )
 	{
 		for ( i=0; i<16; i++ )
 		{
 			if ( xPlayer(Other).ComboNameList[i] ~= "Bonuspack.ComboCrate" )
 				break;
 			else if ( xPlayer(Other).ComboNameList[i] == "" )
 			{
 				xPlayer(Other).ComboNameList[i] = "Bonuspack.ComboCrate";
 				break;
 			}
 		}

Correct me if I'm wrong, please, but I believe you can manipulate this to become:
Code:
function bool IsRelevant(Actor Other, out byte bSuperRelevant)
 {
 	local int i;
 
 	if ( xPlayer(Other) != None )
 	{
 		for ( i=0; i<16; i++ )
 		{
 			if ( xPlayer(Other).ComboNameList[i] ~= "NewBooster.ComboNewBooster" )
 				break;
 			else if ( xPlayer(Other).ComboNameList[i] == "ComboDefense" )
 			{
 				xPlayer(Other).ComboNameList[i] = "NewBooster.ComboNewBooster";
 				break;
 			}
 		}

I mean, it's essentially the same code, so it should work, right? Let me know what your results are. Sorry about the insult from earlier; I thought I had read the whole story, or perhaps you just misinterpreted what I was getting at. Ah well, no hard feelings.
v0rTeX

Wicked Sick!
[Avatar]

Joined: 12/19/2004 20:59:52
Messages: 562
Offline

Yes that is exactly what I did.

It works in Instant Action just fine to replace the combo with a new one. But it does absoultely nothing to replace the combo when clients connect to a dedicated server running this code.

Drago was close with the code from Mysterial which actually has some post begin play code written in, but it still doesn't actually use the new combo in a dedicated server.
v0rTeX

Wicked Sick!
[Avatar]

Joined: 12/19/2004 20:59:52
Messages: 562
Offline

Continuum wrote:
What if you used the no combo mut then re-created the combos (code is already there) then added your "new" combos to the rpg as something other than a combo...  


The trouble with that is the 'no combo' mutator is actually a 'no adrenaline' mutator. It doesn't really 'disable' combos so much as it just removes all adrenaline of any kind from the game. And since so many things about RPG already utilize the adrenaline system, it would be a ton of work to recode RPG to use adrenaline combos that aren't really adrenaline combos.

It is entirely possible that the normal booster combo could be replaced. But the problem is that the few of us who are really trying to make it work can only write code based on previous examples. And in this case the previous example we have to go on doesn't work (at least in UT2004). What we need is someone like Mysterial who is up to his eyeballs in knowledge of how the code works to show us what those code lines about client replication need to look like to work.

As I said in my other post, we can make it work for Instant Action, we just need to know how to 'force' it to work on a dedicated server and the clients that connect to it.
KohanX

Godlike

Joined: 03/04/2006 13:40:23
Messages: 350
Offline

Hmm... Must it use IsRelevant() to give the combos to the players? Could you do:
Code:
class MutNewBooster extends Mutator;
 
 function ModifyPlayer( Pawn Other )
 {
 	local int i;
 
 	Super.ModifyPlayer(Other);
 
 	if ( xPlayer(Other) != None )
 	{
 		for ( i=0; i<16; i++ )
 		{
 			if ( xPlayer(Other).ComboNameList[i] ~= "NewBooster.ComboNewBooster" )
 				break;
 			else if ( xPlayer(Other).ComboNameList[i] == "xGame.ComboDefensive" )
 			{
 				xPlayer(Other).ComboNameList[i] = "NewBooster.ComboNewBooster";
 				break;
 			}
 		}
 	}
 }

ModifyPlayer() usually works (dunno about a dedicated server), so you might try that. If all else fails, find the function that is called when a player joins the server and have it call the combo-adding function.

Oohh... Is xPlayer a subclass of Pawn? If not, I see why that wouldn't work.
v0rTeX

Wicked Sick!
[Avatar]

Joined: 12/19/2004 20:59:52
Messages: 562
Offline

Code:
simulated function BeginPlay()
 {
 	local xPlayer P;
 	local int x;
 
 	//Override default adrenaline combos in xPlayer and all subclasses (netgame clients only)
 	if (Level.NetMode != NM_DedicatedServer)
 	{
 		//foreach DynamicActors(class'xPlayer', P)
 		P = xPlayer(Level.GetLocalPlayerController());
 		if (P != None)
 			for (x = 0; x < 16; x++)
 				if (P.ComboList[x] == class'ComboDefensive')
 					P.ComboList[x] = class'ComboDefensiveFix';
 	}
 
 	Super.BeginPlay();
 }
 
 function bool CheckReplacement(Actor Other, out byte bSuperRelevant)
 {
 	local int x;
 
 	//Override default adrenaline combos in xPlayer and all subclasses (servers only)
 	if (xPlayer(Other) != None)
 	{
 		for (x = 0; x < 16; x++)
 			if (xPlayer(Other).ComboNameList[x] ~= "xgame.combodefensive")
 				xPlayer(Other).ComboNameList[x] = "DefensiveFix.ComboDefensiveFix";
 	}
 
 	return true;
 }
 


That is the code Drago found in another mutator Mysterial made that is supposed to replace Booster in UT2k3. But it still doesnt work in 2k4 on a dedicated server. I dont know enough about code to see why this wouldnt work.
KohanX

Godlike

Joined: 03/04/2006 13:40:23
Messages: 350
Offline

We still don't know why it's only the Dedicated Server on which it does not succeed.
Continuum

Wicked Sick!
[Avatar]

Joined: 03/09/2005 05:20:36
Messages: 479
Location: Indianapolis, Indiana
Offline

Youve tried changing this?

Code:
if (Level.NetMode != NM_DedicatedServer)




Current WIP:
Skins:
[Email]
v0rTeX

Wicked Sick!
[Avatar]

Joined: 12/19/2004 20:59:52
Messages: 562
Offline

Continuum wrote:
Youve tried changing this?

Code:
if (Level.NetMode != NM_DedicatedServer)
 


Honestly, I dont fully understand how its all supposed to work. I could try changing things one way or another and just brute force testing, but that usually doesn't work when I try it. I believe it says that line the way it does because that section of the code is designed to work on the clients, not the server. So if you were to take the exclamation point out of there, that piece of code would be disabled unless it was acting as a dedicated server.

Also, I have a fixed version of Booster that I use so I am less inclined to try and make this one work. I'm happy with a new key combo to use. I'm happy to test things when someone else thinks they have fixed the code but I won't go trying to fix it myself anymore. I took a shot at it and it didn't work.
 
Forum Index -> UnrealScript, Coding, Mapping, and 3rd party Mods Go to Page: 1, 2, 3 Next 
Go to: