19 Jan, 2009, Venrexx wrote in the 1st comment:
Votes: 0
Hey I have a question for anyone who may be able to answer. I am using a modifed DB Saga Codebase (SMAUG 1.4a Modified) and I want to know what I would need to edit in order to set a maximum capacity for the players on my mud as far as powerlevel goes. (So they cannot gain any more powerlevel past the set number). So far there really is no limit and you could go up to and PAST 1000Quadrillion PL, a bit high for my liking seeing as the MUD will be PK and I like to make things challenging… It isn't very challenging for someone when they are 900trillion pl stronger than their opponent so I want there to be a max, say… 25trillion. Any ideas?
19 Jan, 2009, Keberus wrote in the 2nd comment:
Votes: 0
Now, I don't know much about DBSaga, but I downloaded it and took a look. It looks to me that ch->exp is the base for thier powerlevel, so you need to cap that. From a quick once over, it looks to me that the function you need to look at more is gain_exp.

Here's what I was kinda thinking:

Here's a snip from gain_exp
void gain_exp( CHAR_DATA *ch, long double gain )
{
char buf[MAX_STRING_LENGTH];
/* int modgain;*/
long double modgain;
int energygain;
float pl_mult = 1;
int rank = 0, newRank = 0;
int trueRank = 0;

if ( IS_NPC(ch) )
return;

if (IS_IMMORTAL(ch))
return;


After the IS_IMMORTAL(ch) check add in something that will return out if thier exp is so high, so I would delcare a variable constant like

#define MAX_PLR_EXP 300000


And add a check so the code would look like
void gain_exp( CHAR_DATA *ch, long double gain )
{
char buf[MAX_STRING_LENGTH];
/* int modgain;*/
long double modgain;
int energygain;
float pl_mult = 1;
int rank = 0, newRank = 0;
int trueRank = 0;

if ( IS_NPC(ch) )
return;

if (IS_IMMORTAL(ch))
return;

if( ch->exp >= MAX_PLR_EXP )
return;


I know you mentioned 25 trillon as the PL, but the pl is the ch->exp multiplied by a modifier, probably based on transformations, etc… So I definitly would undercut it a lot, keeping that in mind.


Hope that helps.
19 Jan, 2009, Venrexx wrote in the 3rd comment:
Votes: 0
Well basically I want 25Trillion to be the maximum BASE pl gainable, this is what you can gain from your base pl without using trasnformations. Then at 25Trill pl I want them to not be able to gain over 25trill pl but still be able to use their powerups and transformations, see? Only base pl capped lol
Also the first check you told me to add, I got a little confused on that, I need to add the check
"#define MAX_PLR_EXP 25,000,000,000,000", would that work as a whole check in conjunction with
" if( ch->exp >= MAX_PLR_EXP )
return;"
Sorry for sounding lame :P lol
19 Jan, 2009, Zeno wrote in the 4th comment:
Votes: 0
19 Jan, 2009, Guest wrote in the 5th comment:
Votes: 0
Hi,
i dont know much about DB Saga Codebase or SMAUG 1.4a, but with it is exp an int, and cant that not go to 2bill without going negative?
19 Jan, 2009, Venrexx wrote in the 6th comment:
Votes: 0
Ok so I went ahead and tried it and here is what I did.
void gain_exp( CHAR_DATA *ch, long double gain )
{
char buf[MAX_STRING_LENGTH];
/* int modgain;*/
long double modgain;
int energygain;
float pl_mult = 1;
int rank = 0, newRank = 0;
int trueRank = 0;

if ( IS_NPC(ch) )
return;

if (IS_IMMORTAL(ch))
return;

#define MAX_PLR_EXP 25000000000000ULL //Added this in as is, 30000 set their max base pl at 30000 (ULL is so it
//doesn't say warning: integer constant is too large for 'long' type

if( ch->exp >= MAX_PLR_EXP )
return; //I have tested it like this (added to update.c) and my characters cannot gain over
//25trill pl but they can still use their transformations, just what I wanted.

modgain = gain;


Thanks for all the help man, this is going to make PK a heck of a lot more fun. :D
19 Jan, 2009, Zeno wrote in the 7th comment:
Votes: 0
Xrakisis said:
Hi,
i dont know much about DB Saga Codebase or SMAUG 1.4a, but with it is exp an int, and cant that not go to 2bill without going negative?


I think in Saga it's a lld
19 Jan, 2009, Venrexx wrote in the 8th comment:
Votes: 0
Whats an LLD?
19 Jan, 2009, Zeno wrote in the 9th comment:
Votes: 0
Er, looks like a ld actually. Long double. I think Star was LLD.
19 Jan, 2009, Venrexx wrote in the 10th comment:
Votes: 0
ULL is what I found in othe parts of my code a long time ago, thats why I remember it and why I used it, it was used when defining what PL is needed for what levels. I figured it would be also appropriate to use it on max gainable PL as well.
19 Jan, 2009, Venrexx wrote in the 11th comment:
Votes: 0
else if (ch->exp < 1000000000ULL)

return ("Level 9");

else if (ch->exp < 1500000000ULL)

return ("Level 10");

else if (ch->exp < 3000000000ULL)

return ("Level 11");

else if (ch->exp < 5000000000ULL)

return ("Level 12");

else if (ch->exp < 10000000000ULL)

return ("Level 13");

else if (ch->exp < 15000000000ULL)

return ("Level 14");

else if (ch->exp < 20000000000ULL)

return ("Level 15");

See? :P lol
20 Jan, 2009, David Haley wrote in the 12th comment:
Votes: 0
Can I have two bazillion experience points, to complement the seven hundred gazillion points I already have?
20 Jan, 2009, Lyanic wrote in the 13th comment:
Votes: 0
What's the point to all these hyper-inflated numbers? It almost seems like a pissing contest between Dystopian/Utopian/DB (probably a few others) MUDs to see which one can count the highest…

Sorry for the bitter flame derail - I just get annoyed by the consequences of these trends. I routinely have new players log onto my MUD and within 5 minutes say something along the lines of "WHY DO I ONLY DO 20 DAMAGE!?" or "ONLY 2XP POINTS FOR MY FIRST KILL!?"

This is in no way meant as an attack on the OP or his choice of MUD to run, but I wish someone could tell me why the mentality exists that higher numbers are inherently better? Otherwise, please continue on topic…
20 Jan, 2009, Zeno wrote in the 14th comment:
Votes: 0
Hm? Are you assuming they start off at those "hyper-inflated numbers"? Because they don't. And it's not like (in Saga at least) they go from 100 to 1mil+ in a short period; it takes time.

If you think 100 is a lot, it's not. The first enemy in DBZ is Raditz, who has a Powerlevel around 1k. Aka weak.
20 Jan, 2009, Kline wrote in the 15th comment:
Votes: 0
I understand where you're coming from, Lyanic. Sad but true that people equate bigger = better :(. Maybe I should make a config option as a player flag that just displays all numbers multiplied by 10,000 or something silly :P
20 Jan, 2009, Zeno wrote in the 16th comment:
Votes: 0
Or if Lyanic has that problem with players, just change everything to percents. :P "You gain 25% exp to your next level!" "Player: Wow, 3 more hits and I gain a lvl!"
20 Jan, 2009, Lyanic wrote in the 17th comment:
Votes: 0
Zeno said:
Hm? Are you assuming they start off at those "hyper-inflated numbers"? Because they don't. And it's not like (in Saga at least) they go from 100 to 1mil+ in a short period; it takes time.

First, you can't make that statement for all MUDs. I've seen plenty where the numbers start at values I consider hyper-inflated.

Second, I made no such assumption or statement implying it, anyway.

Third, I'd expect most MUDs to take time. It just depends on how much time you're talking about? I'm used to the type of MUDs that require hundreds of hours be invested in a character. Are you implying that the MUDs I'm categorizing as "hyper-inflated numbers" types take longer than that to reach the hyper-inflated numbers?

On a lot of these MUDs I'm talking about, the numbers actually do start high - say: 20k, then going up to 2bil. I've seen that specific instance a lot. Even if the numbers start at 1 and go to 1 trillion, it's the rate of increase that is ridiculous. If MUD A uses numbers that go from 1 to 1000 and MUD B uses numbers that go from 1 to 1000000000000, it's not as if there is a 1000000000x difference in the amount of time it takes. The fact is, the rate of increase as a percentage of maximum typically remains constant on average. So, if it's the same balance and the same time investment, then why have the numbers go that high?

Zeno said:
Or if Lyanic has that problem with players, just change everything to percents. :P "You gain 25% exp to your next level!" "Player: Wow, 3 more hits and I gain a lvl!"

The only problem with that is I run a level-less MUD.
20 Jan, 2009, Zeno wrote in the 18th comment:
Votes: 0
Quote
First, you can't make that statement for all MUDs. I've seen plenty where the numbers start at values I consider hyper-inflated.

I'm not. Which is why I said "in Saga at least"; it wasn't just referring to that sentence alone.

Quote
It just depends on how much time you're talking about?

Here's char data from DBSaga:
The Unknown,
Zeno Mcdohl is bottig.
—————————————————————————-
RACE : Saiyan SEX: Male Played: 670 hours
YEARS: 22 Created: Thu Aug 29 14:18:14 2002
STR : 100(100.00) DAM+: 5 Log in: Wed Oct 15 19:16:19 2003
SPD : 100(100.00) pDEF: 8 Last Saved: Wed Oct 15 19:26:16 2003
INT : 100(100.00) eDEF: 4 CurrTime: Wed Oct 15 19:26:16 2003
CON : 100(100.00) Armor: 0, improper for a battle
Align: fiendish Items: 0 (max 20)
Glory: 0/0 Pos'n: resting Weight: 0 (max 500)
Wimpy: 0 Style: evasive
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
TRAIN: 0 Lifeforce: [ 15]% AutoCompass: (X) AutoZeni: (X)
Energy: [ 6,000/99,999] AutoExit: (X) AutoLoot: (X)
ZENI : 625,255 AutoSac: (X)
BASE POWERLEVEL: 623,072,521
CURR POWERLEVEL: 623,072,521
GAIN POWERLEVEL: 177,904
PKills: [00230] PDeaths: [00244] SparWins: [00760]
MKills: [09769] MDeaths: [00016] SparLoss: [00968]
You feel great.
—————————————————————————-

(Note Base PL and Played)

I believe ~2bil was when you get the final skills. Of course I was slow due to being HC (always PKable).
20 Jan, 2009, Venrexx wrote in the 19th comment:
Votes: 0
DBS used to be unlimited PL, I just happened to set a cap on it so you still gain really slow but atleast now you have an end to it and it should make it more interesting for PK and Clan HQ raid defence/Attack when people can actually all be at around the same pl.
0.0/19