Jump to content

Alias List command?


Recommended Posts

Ok since pb died, I have really missed (and NEEDED) /pb_alist..

 

I think !alist [playername/playerslot] would be a VERY handy feature.

 

I understand that this means even MORE records to keep, but I do think it's an important feature that was certainly a very big part of my routine whilst doing my rounds on my clan's servers.

 

Since SilEnT is revolutionary with regards to overcoming EvenBalance dropping PB support for ET, I do feel that this is something SilEnT should offer.. And I would be extremely impressed if it could be implemented.

 

Chuckun

Link to comment
Share on other sites

Well in a perfect world, the amount of aliases would be a variable in the server config.. Since with PB this was doable with PB_SV_AliasMax... (0 turned it off, 1-99 would be the amount of aliases stored) .. But that means even more work.. So if that makes this request much harder to implement, then maybe just a limit of 10 aliases or something would suffice.

 

Obviously the list should contain most used aliases (and drop the least used ones when the list wants to exceed the limit), and it would be good to see how many times each name was set, and the first/last dates like how pb_alist was..

 

Structure:

 

[Count] [Date First Used] [Date Last Used] [Alias]

110 20101109 20110420 chuckun
1 20101106 20101106 etplayer
1 20101106 20101116 Player1

 

Chuckun

Edited by Chuckun
Link to comment
Share on other sites

  • 4 months later...
  • Management

Optional aliases database is implemented in the next version with new commands !aliases, !aliassearch and option for !userinfo to show also the aliases. New server cvar g_dbMaxAliases.

 

Alias information holds: first time seen, last time seen, the time the alias has been in actual use.

Link to comment
Share on other sites

  • 1 month later...

Thanks for adding this feature! It'll definitely be quite helpful for keeping track of players on the server!

 

 

However, I have a question about how this database makes room for new names...

 

The feature was proposed as dropping the least used names to make room...

Obviously the list should contain most used aliases (and drop the least used ones when the list wants to exceed the limit), and it would be good to see how many times each name was set, and the first/last dates like how pb_alist was..

 

However, the wiki says...

If the player has more aliases then this value, the oldest aliases are deleted.

 

Does it drop the oldest aliases or the least used aliases in the released version?

 

If it does just drop the oldest aliases and the limit is set to 3, someone could just change their names multiple times in a row and all of the stored aliases wouldn't be of much value. Dropping the least used aliases seems like it would be more useful. Also, I have seen people use name changing scripts that actually cycle through the names by changing it each time. If someone has a longer version of that type of script, it could eat through the stored names very quickly.

Edited by JvIasterMind
Link to comment
Share on other sites

Thanks for the answer! We use that cvar, but we like having the limit be high enough that most players can switch names if they want (I think our limit is 10 or so).

 

Would you guys consider changing this behavior? Or would it be too difficult now that it is already released? When we were running ETPub, the main thing we used the aka name for was so that admins and certain members could figure out who a player is that is using an unknown name. How it worked in Pub was that it stored the name used at the moment of the !setlevel command. This was very helpful because the aka always told us who the disguised player really was. I believe if the database removed the names that were used the least amount of time, it would accomplish the same thing (as the names that they play under the longest are generally ones that would easily identify them). This would also have the added bonus that if a player decides to switch their standard name and/or colors for a long period, the database would adapt and the alias info would more or less stay up to date.

 

Another way that could accomplish a similar behavior would be to add an admin command that could store a permanent version of the players name along with the current behavior (or do it on !setlevel - although it would be really nice to be able to change it without setting a new level). Maybe keep the permanent alias at the top of the list when you use the !aliases command. Would this be easier to implement since it only requires an extra field in the database?

 

As it is currently, it seems like we would need to set the limit to a very high value to ensure that a known name shows up in the list. This is especially true if the targeted player is one that uses a lot of different names with many being short-lived.

Link to comment
Share on other sites

  • Management

The alias inserts happen in constant time and the commands !aliases and !userinfo will not have significant performance losses from bigger aliases lists. So there shouldn't be problems experimenting higher g_dbMaxAliases values. The only times when the performance suffers from bigger aliases db is when the db is cached into memory during the map initialization and when using !aliasessearch command. I do think that hiding the true identity can be done by changing GUIDs in general. Also, I do think players should have the option to change it also. At least over time.

 

Using the example of small g_dbMaxAliases value and dropping the least used aliases, it would be possible to hide short lived offensive nicks and fake being a nice regular. While in the case of dropping the nicks by time, even if the most used nick would get lost it would be possible to determine from other stored data that the player is supposed to be a regular. Another poblem is that if the player has 2 nicks with a lot of playtime, it will at some point take considerable effort to have a new nick overcome either one of those old ones. Effectively he would have a possiblity to change his nick freely and all those changed nicks would be lost.

 

We can consider adding option to remove the least used nicks.

 

PS.

I think if you want to set some sort of identity info by hand to a player like in the !setlevel example above, I think a Lua script might do that easily. Associating one name, or note, with one guid.

Link to comment
Share on other sites

Thanks for the reply!

 

I agree that players should have the option of the alias changing at least over time. That was a problem with ETPub's aka info because it could get out of date easily with a player changing their name "permanently".

 

On our server, offensive nicknames and people faking other players names is not a common problem, but I do see your point about players being able to hide short-lived bad names. A possible solution to the second problem you mentioned could be to keep the names that have the longest continuous playtime duration instead of total playtime. This would be a lot easier for a new name to be able to get into the database. It also seems like it would be easier to implement.

 

If we go the route of using a high value for g_dbMaxAliases, what range of values would you say are safe numbers? Also, if we needed to change the value of the cvar in the future due to the database getting too big or not enough names being stored, I assume that it is easier to increase the value than to decrease it? If we do decrease it, does silEnT remove all the older names that are already stored above the limit? Would it do that all at once (making the database smaller right away) or as each player connects to the server?

 

That's interesting that Lua would be able to handle something like that. I haven't really looked into the language much and didn't realize it's that powerful! I may give that a shot to make a temporary command to hold us over until you possibly add in that option to change the removal behavior of the database. To store such information, does Lua have some sort of SQLite database or something that I would use? Or is there a much better or easier way?

Edited by JvIasterMind
Link to comment
Share on other sites

  • Management
If we go the route of using a high value for g_dbMaxAliases, what range of values would you say are safe numbers? Also, if we needed to change the value of the cvar in the future due to the database getting too big or not enough names being stored, I assume that it is easier to increase the value than to decrease it? If we do decrease it, does silEnT remove all the older names that are already stored above the limit? Would it do that all at once (making the database smaller right away) or as each player connects to the server?

 

I think safe numbers are anything below 100. Maybe more. Maybe you could try 20 or 50 if it fits your purposes. It of course depends with the frequency the players on your server will change the nicks. Some players never change them. On the other hand bots do rotate the nicks so don't get scared because it looks like it is growing fast in the beginning. If you set the g_dbMaxAliases to a smaller value, but still more then 0, it will remove the older aliases in the next server close. If you set the g_dbMaxAliases to 0, nothing will happen to the database, but it is not used. Do remember that this requires server restart..

 

To store such information, does Lua have some sort of SQLite database or something that I would use? Or is there a much better or easier way?

 

The example I mentioned doesn't need SQL at all. I remember there was some sort of clan tag protection script and I think quite possibly this could be modified to store single informations about a player. E.g. designated name. If you want to use SQL through Lua there are possibilities for it. But you need to use the qagame binary that doesn't have Lua statically linked into it.

Link to comment
Share on other sites

×
×
  • Create New...