Kill Limiting (A Ctrl Idle Fix)

Got something on your mind about the project? This is the correct place for that.


Forum rules

This forum is for feature requests, content changes additions, anything not a Bug in the software.
Please report all bugs on the Support Forums

Post Reply
Miana
Peon
Peon
Posts: 8
Joined: 03 Jul 2008, 00:45

Kill Limiting (A Ctrl Idle Fix)

Post by Miana »

It is no hidden fact that using the keyboard keys can allow a player to lock down a key, such as Ctrl, or even "a" and "Ctrl" to be able to fight in a mob populated area while idle. Though such actions may be viewed as cheating, the easy accessibility to these functions, make it a prime way to gain levels without the tedium. The following is a method that may help to reduce this, without terminating the gameplay for those who are actively leveling.

What I am suggesting is a max kill limit when attacking the same mob over and over again. This will force people to go to other areas, and kill other mobs. The following is an example of how it would work.

We make an array which mob ID numbers are stored. Lets say the array has 100 entries. If the array becomes full, the new mobs IDs are overwritten over the oldest ID's in the array. For example, lets say you killed 50 "bats" and that maxed out the allowed limit. For every "bat" over 50, the exp earned would drop exponentially The only way to go back to gaining max experience again for "bats", would be to kill enough other mobs so that enough of the "bat" ID's were removed from the array so that the penalty did not apply.

Really all in all a simple code. The array is saved to the player file. Each kill writes to the array.
Each mob file would need to have a spot for their kill limit, and the exp modifier.
A couple of checks in the exp gain code, and viola, problem resolved.

So, back to our 50 bats example. Lets say the limit is 50, and the exp mod is 20%.
Bat 1 through 50 gives you 55 exp. Bat 51 gives you 44 exp, 52 gives 33 exp and so on to the point where no exp is gained.

- Miana

PS> Programmers note: Be sure to have a check for if exp gain < 0, exp gain = 0.

Edited: Wednesday, July 2nd: 11:08PM (GMT -05:00)
- Apparently this post should have been a reply to the post linked below. My apologies.
- http://forums.themanaworld.org/viewtopic.php?f=4&t=2646
User avatar
mon
Peon
Peon
Posts: 46
Joined: 28 May 2008, 08:07

Re: Kill Limiting (A Ctrl Idle Fix)

Post by mon »

What about areas with multiple monsters like the ice cave with bats and pinkies. or the desert with giant maggots, green slimes and red scorpions?
That would fill the array up to 3 monsters.

Maybe even doubling the map area while maintaining the spawn rate would make the bats more scarce per square unit. So the chances of a bat going near a player is lesser. Assuming the player is only putting weights on the 'target nearest' and 'attack' button.

Looking at the thread [Board Index >> General >> Suggestions/Feedback >> Enforcing no bots]. Some say that all of these can be done using scripts or programs. :(
a.k.a. - Achel
Miana
Peon
Peon
Posts: 8
Joined: 03 Jul 2008, 00:45

Re: Kill Limiting (A Ctrl Idle Fix)

Post by Miana »

The numbers given were only for an example. The "builders" would adjust the max kill for each mob based on spawn rates, mobs loaded, accessibility to other mobs and so on. Adjusting the bats to a max of 30. Each mob would have it's own limit and it's own exp dwindling effect, which would be checked in the array.

Let me throw out another example with a bit more detail. Taking the ice caves for instance, where you have both bats and pinkies loading in the same room. In general, players kill about 5 bats per 1 pinkie killed. So, lets say that the max number of bats is still 50, and the percentage drop is still 20% (this is the info saved in the mob file). Also, the pinkies would have their own numbers, lets say 10 max, and 20% exp drop.

The player file for the character would have an array, usually numbers, but we will use B for Bat and P for Pinkie in this example. It saves the last 100 kills made by the player. A person idled killing in this area in bot mode would have an array that more than likely looks like this:

P B B B P B B B B B B B P B P B B B B B /* 1 - 20 */
B B P B B B P B B B B P B B B B B B P B /* 21 - 40 */
B P B B B B B P B B B B B B P P P B B B /* 41 - 60 */
B B B P B B P B B B B B B P B B B B B P /* 61 - 80 */
B B P B B B B B P B B B B P B B B B P P /* 81 - 100 */

The Pinkies and Bats designated by color, are the ones that would be subjected to the exp penalties. Each kill, the array drops off the oldest kill, and adds the new kill to the end of the array. Going by the above chart, in order to have full exp gain for a Pinkie for example, the player would need to kill enough other monsters that were not pinkies (in this case 57 others) before they could gain max exp from killing a pinkie.

I hope I explained that okay.

- Miana
User avatar
Crush
TMW Adviser
TMW Adviser
Posts: 8046
Joined: 25 Aug 2005, 16:08
Location: Germany

Re: Kill Limiting (A Ctrl Idle Fix)

Post by Crush »

In such a case I would rather use a linked list instead of an array in addition to caching the number of kills per creature in a map (auto-balanced binary tree).

Arrays are so C-ish.
  • former Manasource Programmer
  • former TMW Pixel artist
  • NOT a game master

Please do not send me any inquiries regarding player accounts on TMW.


You might have heard a certain rumor about me. This rumor is completely false. You might also have heard the other rumor about me. This rumor is 100% accurate.
Miana
Peon
Peon
Posts: 8
Joined: 03 Jul 2008, 00:45

Re: Kill Limiting (A Ctrl Idle Fix)

Post by Miana »

Really, a link list for what I described above? An array has less overhead for a keeping track of a specific set number of things, and the process time is shorter (though both are milliseconds, so it doesn't matter too much). I guess it is a matter of preference. I guess if you are talking the flexibility to add other components later on, I can see the desire for a linked list.

Anyway, thanks for looking over my idea.

- Miana
User avatar
Shaggy
Novice
Novice
Posts: 132
Joined: 22 Apr 2008, 12:56
Location: Liverpool, England

Re: Kill Limiting (A Ctrl Idle Fix)

Post by Shaggy »

For a fixed size queue, as proposed, would be easiest implemented in an array (or a std::vector), with indices/iterators/whatever to mark the front and back of the queue.

This has nothing to do with whether it is coded in C or C++.
Enjoyed The Mana World? Then check out Aethyra (http://www.aethyra.com).
User avatar
Rotonen
TMW Adviser
TMW Adviser
Posts: 3154
Joined: 08 Sep 2004, 19:48
Location: Bern, Switzerland

Re: Kill Limiting (A Ctrl Idle Fix)

Post by Rotonen »

OK, before you derail this thread into technical nitpicking: is the concept per se going to get implemented?

If it is: in TMW or our current platform (as in the revamp process)?

If no one is against, I'll call it silent agreement. Details will follow in due time.
This message used to be meaningful.
Post Reply