PDA

View Full Version : Size of "Self Circle"



SeqTester
02-22-2002, 08:44 AM
This may sound stupid or even trivial for most, but I was wondering if there is a way to "Hack" SEQ a little so I can adjust the size of the circle around me. I use it for telling if something is in casting range for Kiting or just to determin safe distance to med while waiting for DOTs/Root to wear off.

Even if I can get pointed in the right direction I am not really a programmmer but learned a lot about hacking the code keeping my 3.1.x working so if it isn't REALLY hard I should be able to figure out, with a few fingers pointing me in right direction.

Also is there a way to revert back to the circle without shading in it? I liked the "Ring Only" a little better, that was the major reason I never ran SINS (Sounds stupid but I am like that)

Thanks in Advance
ST

guice
02-23-2002, 11:58 AM
There use to be two circles at one time.

I do agree, one to tell if you're within the 200 feet limit would be nice.
The inner circle use to also be a light grey color. It was the only way I was able to see the black basement lines on the black backgroud in KC. :mad:

sleed
02-25-2002, 05:17 PM
I've made such a change to my code. Tried to figure out how to submit a pitch, but never got a reply.

The change I made will draw a circle that is pretty much at spell casting distance, but the big change is that it scales with the zoom level of the map.

Lets see if I can remember.... hmm. It was in map.cpp in a function called DrawPlayerBackground() or something like that. There's a DrawElipse API call (QT?) in there which was hardwired to always draw a circle of a given size. Since the zoom level is easily available info in this function it was easy enough to calculate variable paramters to DrawElipse().

Sorry if this is all rather obtuse, but I don't have the code where I am and it was a while ago that I did it...

RSB
02-25-2002, 08:48 PM
problem with the circle being the radius of spell casting or mob agro is they are both variable depending on the spell and the mob. To make agro even worse your level gets factored in the agro radius problem.

RSB

Cryonic
02-26-2002, 01:04 AM
As does the fact of you sitting/standing.

guice
02-26-2002, 01:59 AM
problem with the circle being the radius of spell casting or mob agro is they are both variable depending on the spell and the mob.

There's no way to program agro radious with the circle.

Spells do very, however; the majority of the spells, I would say about 80-90% of all spells in game are a 200 feet range radious.

Just make a static circle for 200 feet, and that can be your most common spell casting range.

There are spells in a shorter range, but you'll fine that a grand number, if not all, at higher levels is the max 200.

SeqTester
02-26-2002, 07:08 AM
Thats exaclty what I was looking for, I would like to make the circle 200 ft and scale with the map.

fryfrog
02-26-2002, 11:45 AM
i'd love to see this happen, i always hate that the more i zoom in the more my char's view thing takes up space. it would be great to have that 200ft circle that always is 200ft no matter the zoom.

love to see just a diff if anyone who did this wanted to.

SeqTester
03-04-2002, 12:42 PM
Can any Developers at least point me in right direction and if I get some free time I can try hacking it a bit?

I think this would be a nice feature to add maybe even an option from the pulldown menu "Scale Self Circle" or something like that.

Also do you think it would be an easy fix to turn off the shading in the circle? That is the one big thing I disliked about SINS.

Also what do you call that circle I only called it "Self Circle" due to lack of propper term for it.

Thanks
ST

pinzmon
03-04-2002, 02:13 PM
ST, here are my changes to the map.cpp src. Getting rid of the pattern in the circle is just a matter of commenting out this line:


tmpBrush.setStyle(QBrush::Dense7Pattern);

in the paintPlayerBackground function.


Scaling the circle was just a matter of multiplying the bounding rectangle scaler by the map zoom. Seems to work, but feel free to tell me if I'm totally off base. I didn't bother to figure out if the scaling factor of 40 is exactly 200 feet or not, seems to be close enough. This diff also comments out the constant white lines to things in your [locate] section. Those were driving me crazy.



2530c2530
< tmpBrush.setStyle(QBrush::Dense7Pattern);
---
> // tmpBrush.setStyle(QBrush::Dense7Pattern);
2533,2534c2533,2541
< p.drawEllipse (m_param.playerXOffset() - 40,
< m_param.playerYOffset() - 40, 80, 80);
---
> p.drawEllipse (m_param.playerXOffset() - 40 * m_param.zoom(),
> m_param.playerYOffset() - 40 * m_param.zoom(),
> 80 * m_param.zoom(), 80 * m_param.zoom());
3160c3167
< p.setPen(white);
---
> p.setPen(red);
3164,3167c3171,3174
<
< p.drawLine(m_param.playerXOffset(),
< m_param.playerYOffset(),
< spawnOffsetXPos, spawnOffsetYPos);
---
>
> // p.drawLine(m_param.playerXOffset(),
> // m_param.playerYOffset(),
> // spawnOffsetXPos, spawnOffsetYPos);
3173c3180
< p.drawRect(spawnOffsetXPos - 4, spawnOffsetYPos - 4,
---
> p.drawRect(spawnOffsetXPos - 4, spawnOffsetYPos - 4,
3179c3186
< if (m_highlightConsideredSpawns &&
---
> if (m_highlightConsideredSpawns &&
3200c3207
< else
---
> else
3216c3223
<
---
>

SeqTester
03-04-2002, 02:14 PM
Thanks a lot. I am going to try and get to this some time this week.

Busy in REal life righ tnow, and in lvl55 :mad:

SeqTester
03-15-2002, 12:35 PM
Bah... I was out of power all last week and now my power is up and I manually aplied this (I not good with Diff) and recompiled, now my Cable modem is down.

And I was going to Ding 56 this weekend.

I think Verant and @home worked out some AntiLVLing code for me. :mad:

SeqTester
03-15-2002, 06:41 PM
Well i got my cable modem working today. I had to recompile liek this.
> p.drawEllipse (m_param.playerXOffset() - 20 * m_param.zoom(),
> m_param.playerYOffset() - 20 * m_param.zoom(),
> 40 * m_param.zoom(), 40 * m_param.zoom());


I actually had to recompile after this one didnt work.


> p.drawEllipse (m_param.playerXOffset() - 40 * m_param.zoom(),
> m_param.playerYOffset() - 40 * m_param.zoom(),
> 40 * m_param.zoom(), 40 * m_param.zoom());

That one was funy, Well 2 tries isnt that bad for a newb. ;)

SeqTester
03-15-2002, 07:20 PM
Well after loggin my main on i realize that it is scaling to the Zone and different from zone to zone.

Thanks for trying, I am going to play with it some more after I ding 56 I got a new pet that I need to scribe
:)

Zaphod
03-17-2002, 06:40 AM
Actually, to have the circle actually be 200 clicks (for lack of a better term for the EQ unit of distance) you need to start from the number 200 and scale it the same way all other points (including all spawns, player, map lines, etc...) and distances are scaled. so, pulling the appropriate parts out of calcXOffsetI (for speed purposes) you get approximately the following.



int centerOffset = fixPtMulII(m_param.ratioIFixPt(), MapParameters::qFormat, 200);
// or the slower centerOffset = (int)(200 / m_param.ratio());
int sizeWH = centerOffset << 1;
// or the slower sizeWH = centerOffset * 2

p.drawEllipse(m_param.playerXOffset() - centerOffset, m_param.playerYOffset() - centerOffset, sizeWH, sizeWH);


I'm currently working onputting something to this effect into the code, with a runtime configurable FOV distance.

Enjoy,
Zaphod (dohpaZ)

Zaphod
03-17-2002, 11:20 AM
And with a hail of keystrokes he said...

Done, see http://seq.sourceforge.net/showthread.php?s=&threadid=691.

Also, made it and the draw size of the spawn dots configurable from the map menu. ;)

Enjoy,
Zaphod (dohpaZ)

SeqTester
03-17-2002, 03:09 PM
Nice, thanks.

I love this place :D

Mongo222
03-21-2002, 02:36 PM
Now, since we can tell the last spell cast by the user from the packet sream, all we need to do is make a range table for each of the spells, and adjust the circle size to the spell range.