Jump to content
Eternal Lands Official Forums
Bongo

[patch] Kill Counter

Recommended Posts

when kills.c/h weas changed to counters.c/h there was a new #define; COUNTERS

so now its like it should be again :-)

Yeah, I updated all the Makefiles. It's always a good idea to give them a once over to check for added or removed files and defines if you use your own makefile.

Share this post


Link to post
Share on other sites

If the client crash, statistics does not save. Also after a client crash today all of my data was erased. All kills, alchemy etc., all is gone.

I have had several crashes the last couple of day when i press alt-x to exit. So i guess that the data loss and data not being saved is due to this crash...

 

/G

Share this post


Link to post
Share on other sites

If the client crash, statistics does not save. Also after a client crash today all of my data was erased. All kills, alchemy etc., all is gone.

I have had several crashes the last couple of day when i press alt-x to exit. So i guess that the data loss and data not being saved is due to this crash...

 

/G

 

Unfortunately that will happen. The data is saved when the client is closed cleanly, or when you log in again after disconnecting.

 

This isn't a bug in itself, it's a side effect of other bugs in the development client.

Share this post


Link to post
Share on other sites

Unfortunately that will happen. The data is saved when the client is closed cleanly, or when you log in again after disconnecting.

 

This isn't a bug in itself, it's a side effect of other bugs in the development client.

 

Yes, however the client crash for me everytime i exit thru alt-x. And this started when counters.c/h was added yesterday or if it was the day before that.

I cant debug it either to see whats wrong, cause i just updated to MSVC2005 and havent properly configured it yet.

I have also tested deleting the counter_something....dat file.

 

 

One suggestion: save the counter data atleast once per hour.

Edited by Gravito

Share this post


Link to post
Share on other sites

Unfortunately that will happen. The data is saved when the client is closed cleanly, or when you log in again after disconnecting.

 

This isn't a bug in itself, it's a side effect of other bugs in the development client.

 

Yes, however the client crash for me everytime i exit thru alt-x. And this started when counters.c/h was added yesterday or if it was the day before that.

I cant debug it either to see whats wrong, cause i just updated to MSVC2005 and havent properly configured it yet.

I have also tested deleting the counter_something....dat file.

 

 

One suggestion: save the counter data atleast once per hour.

 

To see if the counters code is to blame, try compiling the client without -DCOUNTERS and see if it still crashes.

 

Edit:

 

D'oh! There is a bug that causes the data to be lost. It just happened to me. I can't understand it though. I'm too tired to root out the problem now, but watch this thread.

Edited by Bongo

Share this post


Link to post
Share on other sites

Just wondering, will rostos, efes, modable weapons etc. nice things countered too?

 

Rostogols and other things found while harvesting are not counted, but enriched essences and modable weapons are.

Share this post


Link to post
Share on other sites
One suggestion: save the counter data atleast once per hour.
I have what I think is a better idea... have #save also save local data. counters, el.cfg, el.ini (if set in config), spells quickbar, anything else that comes up

this change will go into CVS shortly

note that it'll save local data every time you use the command, not only if the server saves stuff (y'know, the 'too soon' message)

also note that people need to remember to #save regularly, but that's not new :P

Share this post


Link to post
Share on other sites

D'oh! There is a bug that causes the data to be lost. It just happened to me. I can't understand it though. I'm too tired to root out the problem now, but watch this thread.

 

And now I don't think there is such a bug. I haven't been able to make it happen again and nobody else has reported it. Maybe it had something to do with all the client versions I've been testing.

Share this post


Link to post
Share on other sites

I had the same bug, but it wasn't after a crash. I closed the game, it automaticly restarted and then my counts were gone. Maybe this can help

Share this post


Link to post
Share on other sites

I just have a minor UI problem to report. (I'm running latest CVS codes) My kills list have more entries than the window allows, so the windows should receive a vertical scroll bar. However, after client starts, the window does not have the scroll, but all the data is there (sorting by name I get monsters from beginning and end of the list). I need to change the category to any other and that back to Kills to get the vertical scroll bar on the window.

Share this post


Link to post
Share on other sites

Hi!

 

I don't know if somebody had this kind of problem but when I press F2, to open a link, a client crashes.

It happens on two different computers with two different clients.

Of course after crashing all the statistics are lost...

Share this post


Link to post
Share on other sites
I don't know if somebody had this kind of problem but when I press F2, to open a link, a client crashes.

This is an old version of the client and was fixed almost a month ago. It also has nothing to do with this patch. Out of interest, when you #save in a recent client it also saves the counter info.

Share this post


Link to post
Share on other sites

I just have a minor UI problem to report. (I'm running latest CVS codes) My kills list have more entries than the window allows, so the windows should receive a vertical scroll bar. However, after client starts, the window does not have the scroll, but all the data is there (sorting by name I get monsters from beginning and end of the list). I need to change the category to any other and that back to Kills to get the vertical scroll bar on the window.

 

I'll fix this and the total wipe bug this weekend. I hope these are the last two bugs in my patch, because this weekend will probably be my last free weekend before the update.

Share this post


Link to post
Share on other sites

Lost my stats again yesterday during the invasion. I got disconnected a couple of times so it's possible the problem occurs when you get disconnected

Share this post


Link to post
Share on other sites

There may be a bug with how kills are detected, i have people in my kills list who i've never killed. I've never even attacked one of them (tho i have fought alongside him when he died).

 

I think it caused by chims being on the square 2 coords ahead of you, if you're fighting in a line like:

 

you->enemy->ally

 

If ally dies it thinks you made the kill because it checks the two coords ahead of you incase you're fighting a chim, should be solved by checking if the thing that died was a chim.

 

Heres the problem code:

 

/* get the coords of the tile we're facing */
	x1 = me->async_x_tile_pos + face_offsets[((int)me->async_z_rot)/45][0];
	y1 = me->async_y_tile_pos + face_offsets[((int)me->async_z_rot)/45][1];

	/* get the coords of the next tile we're facing (necessary for Chimerans) */
	x2 = x1 + face_offsets[((int)me->async_z_rot)/45][0];
	y2 = y1 + face_offsets[((int)me->async_z_rot)/45][1];

	/* return if this actor is not on one of these tiles */
	if ((them->async_x_tile_pos != x1 || them->async_y_tile_pos != y1) && (them->async_x_tile_pos != x2 || them->async_y_tile_pos != y2)) {
			return;
	}

Edited by Bharain

Share this post


Link to post
Share on other sites

There may be a bug with how kills are detected, i have people in my kills list who i've never killed. I've never even attacked one of them (tho i have fought alongside him when he died).

 

I think it caused by chims being on the square 2 coords ahead of you, if you're fighting in a line like:

 

you->enemy->ally

 

If ally dies it thinks you made the kill because it checks the two coords ahead of you incase you're fighting a chim, should be solved by checking if the thing that died was a chim.

 

Heres the problem code:

 

/* get the coords of the tile we're facing */
	x1 = me->async_x_tile_pos + face_offsets[((int)me->async_z_rot)/45][0];
	y1 = me->async_y_tile_pos + face_offsets[((int)me->async_z_rot)/45][1];

	/* get the coords of the next tile we're facing (necessary for Chimerans) */
	x2 = x1 + face_offsets[((int)me->async_z_rot)/45][0];
	y2 = y1 + face_offsets[((int)me->async_z_rot)/45][1];

	/* return if this actor is not on one of these tiles */
	if ((them->async_x_tile_pos != x1 || them->async_y_tile_pos != y1) && (them->async_x_tile_pos != x2 || them->async_y_tile_pos != y2)) {
			return;
	}

 

I was hoping this would happen so infrequently that it would be a non-issue. I didn't want to specifically add a check for Chimerans because it would have to be updated if other Chimeran-like creatures were added.

Share this post


Link to post
Share on other sites

I was hoping this would happen so infrequently that it would be a non-issue. I didn't want to specifically add a check for Chimerans because it would have to be updated if other Chimeran-like creatures were added.

 

I don't know about other people but when i attack someone who's already fighting i tend to stand away from my ally so it may not be as infrequent as you'd hope.

 

Unfortunately your solution was the only one i could find (and i didn't like it either :)). Is it possible to work out which square an actor should be in based on the skeleton and the bone_scale? Canine skeleton and scale 1.55 would catch all the current chimerans. If not maybe a new variable could be added to the actor defs called "squares" or something similar to indicate how many squares an actor occupies?

 

EDIT: a half solution would be to check if the dying actor isn't player, that would prevent the more "important" PK entries.

Edited by Bharain

Share this post


Link to post
Share on other sites

Ok, I don't know a thing about programming, but reading the problems with chims (?) I thought it might be useful to mention that I seem to have killed a friend (I don't have killcounter, the friend has) - but I think one of us would remember that :). Best we can think of is that it happened during the last invasion, where he got killed at the fluff invasion in PV, probably close to me (didn't see him, only the deathmessage later). There were *no* chims there.

Share this post


Link to post
Share on other sites

Ok, I don't know a thing about programming, but reading the problems with chims (?) I thought it might be useful to mention that I seem to have killed a friend (I don't have killcounter, the friend has) - but I think one of us would remember that :). Best we can think of is that it happened during the last invasion, where he got killed at the fluff invasion in PV, probably close to me (didn't see him, only the deathmessage later). There were *no* chims there.

 

The problem only occurs when you aren't fighting chims but is caused by a check for when you are fighting chims ... i'll draw some pictures ...

 

When you fight a chim it looks like this:

 

y = you, c = chim, [] = one grid square

 

[y][ ][c]

 

an empty space between you and the chim, because they're big i guess.

 

The counters get confused in the following situation:

 

y=you, e=enemy you're attacking(player or monster), o=other person

 

[y][e][o]

 

Since the client doesn't actually know when you're fighting something it checks if you're in combat and facing towards the actor which died. When "o" dies "y" recieves a kill message, it checks if the dying actor was on the square infront of you (ie you were attacking it) or on the square after that (ie you were fighting a chim).

 

Your friend must've been two squares infront of you and died while you were fighting the fluffy between you and him.

 

@Bongo: Wouldn't an easy solution be to check the first square is occupied before checking the next one? If the square is empty you're fighting a chim. Something like:

 

PF_TILE *next_tile;
if ((them->async_x_tile_pos != x1 || them->async_y_tile_pos != y1)) {
			return;
	}
next_tile = pf_get_next_open_tile();

if ((them->async_x_tile_pos != x2 || them->async_y_tile_pos != y2) || (next_tile->x != x1 || next_tile->y != y1))  {
		  return;
}

Edited by Bharain

Share this post


Link to post
Share on other sites

Well, I've just found an easy way to erase the stats.

 

1. Do something (make any stats)

2. Exit the game (stats saved OK)

3. Run the game, go to the login screen

4. Exit the game without logging

5. Puff... stats gone (size of counters*.dat for my character = 0)

 

Be advised that I have my name preselected (set in config), so I normally input only the password at logon.

Can someone verify the sequence?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×