v1.10
- Fix flood in log when spectate monsters.
Always check latest posts in this topic, for be sure you download latest version.
Mind Reader
-
- Godlike
- Posts: 3227
- Joined: Sat Mar 21, 2020 5:32 am
Re: Mind Reader
You do not have the required permissions to view the files attached to this post.
Last edited by Buggie on Mon Oct 10, 2022 8:56 pm, edited 1 time in total.
-
- Godlike
- Posts: 1462
- Joined: Mon Jun 01, 2015 7:08 pm
- Personal rank: Resident Wallaby
- Location: Porto Alegre, Brazil
Re: Mind Reader
Could the black background be translucent? As it stands it's a little jarring to look at.
"Everyone is an idea man. Everybody thinks they have a revolutionary new game concept that no one else has ever thought of. Having cool ideas will rarely get you anywhere in the games industry. You have to be able to implement your ideas or provide some useful skill. Never join a project whose idea man or leader has no obvious development skills. Never join a project that only has a web designer. You have your own ideas. Focus on them carefully and in small chunks and you will be able to develop cool projects."
— Weapon of Destruction
— Weapon of Destruction
-
- Godlike
- Posts: 3227
- Joined: Sat Mar 21, 2020 5:32 am
-
- Godlike
- Posts: 3754
- Joined: Sat Sep 12, 2015 8:46 pm
Re: Mind Reader
One interesting thing I've noticed when using MindReader with ScriptedPawns is that the Destination and Focus are sometimes given as 'QueenDest' in maps which don't have this Actor in them - it's not important (at least for me) but any idea why that should be?
DM-[NES]USZ_2022 is one of the maps where this happens.
DM-[NES]USZ_2022 is one of the maps where this happens.
-
- Godlike
- Posts: 3227
- Joined: Sat Mar 21, 2020 5:32 am
Re: Mind Reader
MindReader report only exists things. If it report about QueenDest, then on map present QueenDest. Use search actors for find them.
Sometimes mapper drop actors, which don't has visible representation by one or another reason. Since they not visible, mapper not notice them and release map with it.
This explain invisible redeemer ammo, invisible collide trees and invisible flames.
Same can be here.
Sometimes mapper drop actors, which don't has visible representation by one or another reason. Since they not visible, mapper not notice them and release map with it.
This explain invisible redeemer ammo, invisible collide trees and invisible flames.
Same can be here.
-
- Godlike
- Posts: 2956
- Joined: Fri Sep 25, 2015 9:01 pm
- Location: moved without proper hashing
Re: Mind Reader
No QueenDests in that map:
@OjitroC: what mutators do you use? Maybe one of them injects QueenDests into the map.You do not have the required permissions to view the files attached to this post.
"If Origin not in center it be not in center." --Buggie
-
- Godlike
- Posts: 6442
- Joined: Sun May 09, 2010 6:15 pm
- Location: On the roof.
Re: Mind Reader
Can I bring you my opinions ?
Let's see...
In map's Editing process, some boys are copying assets from elsewhere from pathed maps. This will result in some references that are ONLY DESCRIBED but they don't exist in target map. I was already showing some map with supposed paths that are nowhere. VisNoReachPaths are Navigation ACTORS referenced and we can have here internal chains created in previous source map pointing to corresponding actors. When these are selected and "COPY-PASTE"-ed elsewhere in that state it's normal to return a map with GAPS pointing Actors that are nowhere - and if you ask my private public opinion, this is the first route to memory corruptions making some players to get tired of GPF crashes since these boys are not having any clue what they do.
In other hand I would like to drop an eye over that map...
Let's see...
In map's Editing process, some boys are copying assets from elsewhere from pathed maps. This will result in some references that are ONLY DESCRIBED but they don't exist in target map. I was already showing some map with supposed paths that are nowhere. VisNoReachPaths are Navigation ACTORS referenced and we can have here internal chains created in previous source map pointing to corresponding actors. When these are selected and "COPY-PASTE"-ed elsewhere in that state it's normal to return a map with GAPS pointing Actors that are nowhere - and if you ask my private public opinion, this is the first route to memory corruptions making some players to get tired of GPF crashes since these boys are not having any clue what they do.
In other hand I would like to drop an eye over that map...
Last edited by sektor2111 on Sat Aug 27, 2022 11:15 am, edited 1 time in total.
-
- Godlike
- Posts: 3754
- Joined: Sat Sep 12, 2015 8:46 pm
Re: Mind Reader
Yes, you are right of course - I'm using MonsterSpawn and, looking at the (obfuscated) code, I see that it does indeed inject QueenDests into maps (as one would expect I suppose) - so that's cleared that up for me
-
- Godlike
- Posts: 6442
- Joined: Sun May 09, 2010 6:15 pm
- Location: On the roof.
Re: Mind Reader
So MonsterSpawn doesn't use a sanity check if internal QueenDests could spawn ? Good to know...
-
- Godlike
- Posts: 3754
- Joined: Sat Sep 12, 2015 8:46 pm
Re: Mind Reader
At the risk of derailing the thread, I'm not sure in what circumstances internal QueenDests would be spawned in a DM map? However my uninformed reading of the code suggests that MonsterSpawn only spawns QueenDests if the property/variable AllowQueensXtraTeleports is set to true - which mine is at the moment anyway. Since I don't use QUeens in MonsterSpawn, I'll turn it off and see what happens.sektor2111 wrote: ↑Sat Aug 27, 2022 11:16 am So MonsterSpawn doesn't use a sanity check if internal QueenDests could spawn ? Good to know...
-
- Godlike
- Posts: 3754
- Joined: Sat Sep 12, 2015 8:46 pm
Re: Mind Reader
Had the following crash using MindReader (the first time it has crashed after extensive use)
Don't know if there is enough information there to indicate what might be the cause of the runaway loop or of the crash.
The map is a pathed version of (LAGG)MountainCity - I pathed it using PathsMaker and then it was 'cleaned up', using MapGarbage, to remove or reposition PathNodes without connections in and/or out and the pathnetwork then rebuilt (I don't normally alter PlayerStarts or InventorySpots that lack connections as I am not pathing the map for bots but for the spawning of Relics and ScriptedPawns).
I had a crash in the same map earlier related to the drawing of the Biogelm LodMesh but presumably the 2 crashes are unrelated.
Nothing out of the ordinary in the map except that a rifle and some ammo 'fell out of the world' - I use StuffSwapper with CS weapons and this happens sometimes, possibly due to the size or whatever of those weapons/ammo compared to the default UT sniper and ammo.
Code: Select all
Critical: appError called:
Critical: MindReaderHUD DM-(LAGG)MountainCity.MindReaderHUD0 (Function MindReader.MindReaderHUD.DrawLine:00D9) Runaway loop detected (over 10000000 iterations)
Critical: Windows GetLastError: Not enough memory. (8)
Exit: Executing UObject::StaticShutdownAfterError
Exit: Executing UWindowsClient::ShutdownAfterError
Exit: UGalaxyAudioSubsystem::ShutdownAfterError
Log: DirectDraw End Mode
Exit: UD3D9RenderDevice::ShutdownAfterError
Critical: FFrame::Serialize
Critical: (DM-(LAGG)MountainCity.MindReaderHUD0 MindReader.MindReaderHUD.DrawLine)
Critical: (DM-(LAGG)MountainCity.MindReaderHUD0 MindReader.MindReaderHUD.PostRender)
Critical: (DM-(LAGG)MountainCity.SoundsHUDHelper0 2k4Sounds24.SoundsHUDHelper.PostRender)
Critical: (DM-(LAGG)MountainCity.ERelicHUDMutator0 EnhancedRelics.ERelicHUDMutator.PostRender)
Critical: (DM-(LAGG)MountainCity.ChallengeHUD0 Botpack.ChallengeHUD.PostRender)
Critical: UObject::ProcessEvent
Critical: (MMOniKonokoF DM-(LAGG)MountainCity.MMOniKonokoF0, Function Engine.PlayerPawn.PostRender)
Critical: UGameEngine::Draw
Critical: UWindowsViewport::Repaint
Critical: UWindowsClient::Tick
Critical: ClientTick
Critical: UGameEngine::Tick
Critical: UpdateWorld
Critical: MainLoop
The map is a pathed version of (LAGG)MountainCity - I pathed it using PathsMaker and then it was 'cleaned up', using MapGarbage, to remove or reposition PathNodes without connections in and/or out and the pathnetwork then rebuilt (I don't normally alter PlayerStarts or InventorySpots that lack connections as I am not pathing the map for bots but for the spawning of Relics and ScriptedPawns).
I had a crash in the same map earlier related to the drawing of the Biogelm LodMesh but presumably the 2 crashes are unrelated.
Nothing out of the ordinary in the map except that a rifle and some ammo 'fell out of the world' - I use StuffSwapper with CS weapons and this happens sometimes, possibly due to the size or whatever of those weapons/ammo compared to the default UT sniper and ammo.
-
- Godlike
- Posts: 3227
- Joined: Sat Mar 21, 2020 5:32 am
Re: Mind Reader
Unfortunately in UT no way for draw line on screen. So it going with hack with fill pixel 1-by-1. Which is expensive and if there many lines, this can hit runaway limit.
Unfortunately there no much which can be done with that. But this happen not really often.
Unfortunately there no much which can be done with that. But this happen not really often.
-
- Godlike
- Posts: 3754
- Joined: Sat Sep 12, 2015 8:46 pm
Re: Mind Reader
Thanks for the info. No, it doesn't happen often at all - I run MindReader all the time and use it quite a lot in-game particularly when checking out 'new' ScriptedPawns - so it's very useful and the (very) occasional crash is not a problem.
-
- Godlike
- Posts: 3227
- Joined: Sat Mar 21, 2020 5:32 am
Re: Mind Reader
v1.11
- Show Accelearation.
- Show AmbushSpot for bots.
Always check latest posts in this topic, for be sure you download latest version.
- Show Accelearation.
- Show AmbushSpot for bots.
Always check latest posts in this topic, for be sure you download latest version.
You do not have the required permissions to view the files attached to this post.
-
- Godlike
- Posts: 1462
- Joined: Mon Jun 01, 2015 7:08 pm
- Personal rank: Resident Wallaby
- Location: Porto Alegre, Brazil
Re: Mind Reader
A workaround is to use a diagonal line texture ("slope 1"), and mess around with
RectX
and RectY
below to 'rotate' it.Here is something I imagine could work, but I haven't tested it – it does, however, have the original idea. This assumes that using a negative value for
RectY
in DrawRect
will flip the texture upside down.Documentation comments are Doxygen-style.
Code: Select all
/**
* @brief Draw a line in a Canvas using texture skew.
*
* Uses a texture of a diagonal (slope 1) line to draw a line across the
* screen.
*
* Does not support dynamic adjustment of line thickness. Also, due to the
* nature of the skewing algorithm, line thickness will be bigger for longer
* lines. To avoid that, use @ref DrawLine, which automatically segments the
* line.
*
* @param Target The Canvas unto which to draw the line.
* @param x The starting X position of the line.
* @param y The starting Y position of the line.
* @param dx The line's length along the X axis.
* @param dy The line's length along the Y axis.
* @param LineTex The slope-1 texture used to draw the line. Defaults
* to LineTexDefault' (who would have thought!)
*/
function DrawLineTex(Canvas Target,
int x, int y, int dx, int dy,
optional Texture LineTex) {
local float slope; // The slope of the line.
// Set default LineTex.
if (LineTex == None) {
LineTex = Texture'LineTexDefault';
}
// Sanity check: do not draw dots or nothingnesses.
if (dx == 0 && dy == 0) {
return;
}
// Calculate the slope of this line.
if (dx == 0) {
// Avoid divide-by-one by adding a single pixel.
dx = 1;
}
if (dy == 0) {
dy = 1;
}
// If dx is negative, flip.
if (dx < 0) {
x += dx;
dx *= -1;
dy *= -1;
}
slope = dy / dx;
// Move Canvas to line origin.
Canvas.CurX = x;
Canvas.CurY = y;
// Draw line segment.
// If slope is negative, dx is positive but dy is negative.
// Confusingly, if dy is positive, the texture must be mirrored
// vertically.
if (slope > 0) {
// A positive dy goes *down* the screen; the line in the
// texture goes up (slope 1), Therefore, use a negative
// height to flip the texture.
Canvas.CurY += dy;
Canvas.DrawRect(LineTex, dx, -dy);
}
else {
Canvas.DrawRect(LineTex, dx, dy);
}
}
/**
* @brief Draw a line in a Canvas using texture skew, segmented to
* minimize thickness distortion.
*
* Uses a texture of a diagonal (slope 1) line to draw a line across the
* screen, segmenting it into multiple @ref DrawLineTex calls to minimize
* distortion caused by line length.
*
* @param Target The Canvas unto which to draw the line.
* @param x The starting X position of the line.
* @param y The starting Y position of the line.
* @param dx The line's length along the X axis.
* @param dy The line's length along the Y axis.
* @param LineTex The slope-1 texture used to draw the line. Defaults
* to LineTexDefault' (who would have thought!)
* @param MaxSegLength The maximum length of any one single segment of the
* line. Defaults to 32.
*/
function DrawLine(Canvas Target,
int x, int y, int dx, int dy,
optional Texture LineTex,
optional float MaxSegLength) {
local float FullLength; // The full length of the line.
local int NumSegs; // Number of segments to split the
// line into.
local float sdx, sdy; // Delta x and delta y for each
// segment.
local int seg;
// Set default MaxSegLength, in pixels.
if (MaxSegLength <= 0) {
MaxSegLength = 32;
}
// Sanity check: do not draw dots or nothingnesses.
if (dx == 0 && dy == 0) {
return;
}
// Get the current line length.
FullLength = Sqrt( Square(float(dx)) + Square(float(dy)) );
// Calculate the desired segment count and length.
NumSegs = Ceil(FullLength / MaxSegLength);
sdx = dx / NumSegs;
sdy = dy / NumSegs;
for (seg = 0; seg < NumSegs; seg++) {
DrawLineTex(Target,
x + dx * seg,
y + dy * seg,
sdx, sdy,
LineTexture);
}
}
"Everyone is an idea man. Everybody thinks they have a revolutionary new game concept that no one else has ever thought of. Having cool ideas will rarely get you anywhere in the games industry. You have to be able to implement your ideas or provide some useful skill. Never join a project whose idea man or leader has no obvious development skills. Never join a project that only has a web designer. You have your own ideas. Focus on them carefully and in small chunks and you will be able to develop cool projects."
— Weapon of Destruction
— Weapon of Destruction