For direct access use https://forums.oldunreal.com
It's been quite a while since oldunreal had an overhaul, but we are moving to another server which require some updates and changes. The biggest change is the migration of our old reliable YaBB forum to phpBB. This system expects you to login with your username and old password known from YaBB.
If you experience any problems there is also the usual "password forgotten" function. Don't forget to clear your browser cache!
If you have any further concerns feel free to contact me: Smirftsch@oldunreal.com

the most deadly weapon ever

The section related to UnrealScript and modding. This board is for coders to discuss and exchange experiences or ask questions.
Post Reply
User avatar
gopostal
OldUnreal Member
Posts: 1005
Joined: Thu Jul 31, 2008 9:29 pm

the most deadly weapon ever

Post by gopostal »

Catchy title, huh? I thought so too.

So here's what I have going on. I'm recoding the Food Fight Weapons to be usable in the various monsterhunt servers that are asking for new weaponry. Within FF the premier weapon configuration is the Can Opener (think Enforcer) using the halapenjo ammo can. It's a 'single shot should kill anything' weapon.

That's all good but it got me thinking about how to cheat it. I'd like to code this so it cannot be defeated by a monster that cannot take damage (like this thread: https://ut99.org/viewtopic.php?f=10&t=11946 ) or by a monster that is otherwise set up not to be hurt. I do realize that this could negatively affect coop maps, etc. but I'm interested in the theory side of things.

I was thinking that it would attempt to do normal damage but also check to see if the victim was
- a scripted pawn
- had a health setting besides none
and then check to make sure the monster was destroyed. If not I would force the death while also checking for events, etc. associated with the monster and calling those.

Thinking about the various monsters that are in the coop maps would this work on them? Is there a way as a mapper that you could defeat this? I'm interested in how you would code it so that death would be assured no matter how the monster was protected (provided it met the criteria above). I know you could make a non-scriptedpawn or otherwise make something invulnerable but I'm only really interested in dealing with mainstream monsters.
I don't want to give the end away
but we're all going to die one day
User avatar
[]KAOS[]Casey
OldUnreal Member
Posts: 4497
Joined: Sun Aug 07, 2011 4:22 am
Location: over there

Re: the most deadly weapon ever

Post by []KAOS[]Casey »

Problem is if it overrides Died/Killedby/Encroachedby etc, it can be truly unkillable unless you hack around it.

You could probably simulate calling Killed(or if killed is not overridden, call it normally) then Destroy() it manually

which btw it's possible to override destroy too... so..... it could also potentially be undeletable unless it has some of its own flags on when it can be destroyed.

tl;dr its on a case by case basis with how pedantic the creator of "unkillable" monster is.


Edit: note that some monsters like mercenary have build in shields, so you may bring up a false positive like a custom skaarj trooper or something that comes with armor/shieldbelt. If you detect that other.takedamage does nothing by comparing health values at least it could be a false positive


edit2: Just note that only an absolute madman like myself would even think of overriding destroy/destroyed, since if you do that wrongly you can cause memory leaks (maps not getting garbage collected)
Last edited by []KAOS[]Casey on Thu Feb 09, 2017 3:19 am, edited 1 time in total.
User avatar
gopostal
OldUnreal Member
Posts: 1005
Joined: Thu Jul 31, 2008 9:29 pm

Re: the most deadly weapon ever

Post by gopostal »

I hadn't considered someone overriding destroy but I think you are right in that it's not a big deal. If some madman went to that length then there's a *really* good reason for it. I've been mulling this all evening and I think compensating for monsters with modified takedamage will likely take care of 99% of any issues. Mappers who use something else are advanced enough that they have a good reason for going to such lengths.

BTW, concerning your second edit and memory leaks. This may be a dumb question but is there a way to monitor for those if they are occurring? I've seen servers that I was sure this was what was going on with them but I didn't know how to log/check/see. There's not a lot of info on garbage collection really anywhere concerning UScript.
Last edited by gopostal on Thu Feb 09, 2017 5:27 am, edited 1 time in total.
I don't want to give the end away
but we're all going to die one day
User avatar
Bleeder91[NL]
OldUnreal Member
Posts: 1062
Joined: Sun Oct 04, 2009 7:22 pm

Re: the most deadly weapon ever

Post by Bleeder91[NL] »

Return it to the void:
Bcollideworld=false;
Setlocation (maxint*vect (1,1,1));
Image
User avatar
gopostal
OldUnreal Member
Posts: 1005
Joined: Thu Jul 31, 2008 9:29 pm

Re: the most deadly weapon ever

Post by gopostal »

Whoa..good idea. Fell out of the world would do the destroying properly no matter what I think?
I don't want to give the end away
but we're all going to die one day
User avatar
Bleeder91[NL]
OldUnreal Member
Posts: 1062
Joined: Sun Oct 04, 2009 7:22 pm

Re: the most deadly weapon ever

Post by Bleeder91[NL] »

And if not, he'd be stuck in limbo.
Unless it's some ethereal being.
Last edited by Bleeder91[NL] on Thu Feb 09, 2017 3:25 pm, edited 1 time in total.
Image
User avatar
[]KAOS[]Casey
OldUnreal Member
Posts: 4497
Joined: Sun Aug 07, 2011 4:22 am
Location: over there

Re: the most deadly weapon ever

Post by []KAOS[]Casey »

Return it to the void:
Bcollideworld=false;
Setlocation (maxint*vect (1,1,1));
you can override fell out of world and search for a location in level to setlocation back to(and setlocation can also be overriden), but I'm not really sure if bcollideworld changes the event or not offhand

not to mention looking at your location from the previous tick and diffing it, though they'd probably just use oldlocation so you could set that to the new location too
User avatar
[]KAOS[]Casey
OldUnreal Member
Posts: 4497
Joined: Sun Aug 07, 2011 4:22 am
Location: over there

Re: the most deadly weapon ever

Post by []KAOS[]Casey »

BTW, concerning your second edit and memory leaks. This may be a dumb question but is there a way to monitor for those if they are occurring? I've seen servers that I was sure this was what was going on with them but I didn't know how to log/check/see. There's not a lot of info on garbage collection really anywhere concerning UScript.
I forget the exact commands offhand, but there is a way to determine what specifically hasn't been garbage collected using obj list or something like it. You can figure out what "depends" on another actor and it prints a graph eventually leading to rogue actor -- in any sane case this is an actor referencing an object or and object referencing an actor, since objects don't clean up like normal that can "trap" levels into sticking around.

Also, obj list class=level or class=levelinfo will reveal how many levels are loaded. There should only be 2 for a client and 1 for a server.
User avatar
[]KAOS[]Casey
OldUnreal Member
Posts: 4497
Joined: Sun Aug 07, 2011 4:22 am
Location: over there

Re: the most deadly weapon ever

Post by []KAOS[]Casey »

Upon examination of the original cyberus.u, I can only really come to the conclusion that it's supposed to be invulnerable until it's triggered(another class does this) which allows it to take damage normally. Obviously this was meant to be some kind of scripted boss, but all you have to do to work around that is either lower its health manually if takedamage doesn't lower it, call died on it directly, etc. It's nothing particularly special despite that ut99.org topic overly inflating its un-killableness.

I've made some pretty stupid monsters in the past that are mostly immune to damage or just have ridiculous health numbers and kill you the instant they see you but making them outright unable to take damage or be telefragged is just dumb. IF you can get close enough to telefrag something without one of the "teleport rifles" that coop mods used to have it's probably not deadly enough
User avatar
gopostal
OldUnreal Member
Posts: 1005
Joined: Thu Jul 31, 2008 9:29 pm

Re: the most deadly weapon ever

Post by gopostal »

The Cyberus discussion kicked off my thinking on this but there are a lot of examples in other MH maps where monsters have hundreds of thousands in health and reduced damage. The mappers tried to make it so a group would have to spam and spam to get past these bosses but it has the unintended affect of making single/dual player attempts to be nearly impossible. They absolutely depend on those visually incredible but way overpowered NaliWeapons nukes. It's just an arms race out of control that could be remedied with a simple pistol that can absolutely kill no matter the circumstance. That's more what I'm trying to attack, not necessarily the Cyberus itself (though it's an example of mappers using things they don't understand).
I don't want to give the end away
but we're all going to die one day
Post Reply

Return to “UScript Board”