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
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
- gopostal
- OldUnreal Member
- Posts: 1005
- Joined: Thu Jul 31, 2008 9:29 pm
the most deadly weapon ever
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.
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
but we're all going to die one day
- []KAOS[]Casey
- OldUnreal Member
- Posts: 4497
- Joined: Sun Aug 07, 2011 4:22 am
- Location: over there
Re: the most deadly weapon ever
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)
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.
- gopostal
- OldUnreal Member
- Posts: 1005
- Joined: Thu Jul 31, 2008 9:29 pm
Re: the most deadly weapon ever
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.
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
but we're all going to die one day
- Bleeder91[NL]
- OldUnreal Member
- Posts: 1062
- Joined: Sun Oct 04, 2009 7:22 pm
Re: the most deadly weapon ever
Return it to the void:
Bcollideworld=false;
Setlocation (maxint*vect (1,1,1));
Bcollideworld=false;
Setlocation (maxint*vect (1,1,1));
- gopostal
- OldUnreal Member
- Posts: 1005
- Joined: Thu Jul 31, 2008 9:29 pm
Re: the most deadly weapon ever
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
but we're all going to die one day
- Bleeder91[NL]
- OldUnreal Member
- Posts: 1062
- Joined: Sun Oct 04, 2009 7:22 pm
Re: the most deadly weapon ever
And if not, he'd be stuck in limbo.
Unless it's some ethereal being.
Unless it's some ethereal being.
Last edited by Bleeder91[NL] on Thu Feb 09, 2017 3:25 pm, edited 1 time in total.
- []KAOS[]Casey
- OldUnreal Member
- Posts: 4497
- Joined: Sun Aug 07, 2011 4:22 am
- Location: over there
Re: the most deadly weapon ever
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 offhandReturn it to the void:
Bcollideworld=false;
Setlocation (maxint*vect (1,1,1));
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
- []KAOS[]Casey
- OldUnreal Member
- Posts: 4497
- Joined: Sun Aug 07, 2011 4:22 am
- Location: over there
Re: the most deadly weapon ever
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.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.
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.
- []KAOS[]Casey
- OldUnreal Member
- Posts: 4497
- Joined: Sun Aug 07, 2011 4:22 am
- Location: over there
Re: the most deadly weapon ever
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
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
- gopostal
- OldUnreal Member
- Posts: 1005
- Joined: Thu Jul 31, 2008 9:29 pm
Re: the most deadly weapon ever
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
but we're all going to die one day