this should fix it:
in bool Client::Process() // client_process.cpp
change
Code:
if (GetClass() == WARRIOR || GetClass() == BERSERKER) {
if(!dead && !berserk && this->GetHPRatio() < 30) {
// char temp[100];
// snprintf(temp, 100, "%s goes into a berserker frenzy!", this->GetName());
// entity_list.MessageClose(this, 0, 200, 10, temp);
entity_list.MessageClose_StringID(this, false, 200, 0, BERSERK_START, GetName());
this->berserk = true;
}
if (berserk && this->GetHPRatio() > 30) {
// char temp[100];
// snprintf(temp, 100, "%s is no longer berserk.", this->GetName());
// entity_list.MessageClose(this, 0, 200, 10, temp);
entity_list.MessageClose_StringID(this, false, 200, 0, BERSERK_END, GetName());
this->berserk = false;
}
}
to this:
Code:
if (GetClass() == WARRIOR || GetClass() == BERSERKER) {
if(!dead && !berserk && this->GetHPRatio() < 30) {
// char temp[100];
// snprintf(temp, 100, "%s goes into a berserker frenzy!", this->GetName());
// entity_list.MessageClose(this, 0, 200, 10, temp);
entity_list.MessageClose_StringID(this, false, 200, 0, BERSERK_START, GetName());
this->berserk = true;
this->CalcSTR();
}
if (berserk && this->GetHPRatio() > 30) {
// char temp[100];
// snprintf(temp, 100, "%s is no longer berserk.", this->GetName());
// entity_list.MessageClose(this, 0, 200, 10, temp);
entity_list.MessageClose_StringID(this, false, 200, 0, BERSERK_END, GetName());
this->berserk = false;
this->CalcSTR();
}
}
and in
sint16 Client::CalcSTR() // client_mods.cpp
change:
Code:
sint16 val = m_pp.STR + itembonuses.STR + spellbonuses.STR;
sint16 mod = 2 * (GetAA(aaInnateStrength) + GetAA(aaAdvancedInnateStrength));
if(val>255 && GetLevel() <= 60)
val = 255;
STR = val + mod;
to
Code:
sint16 val = m_pp.STR + itembonuses.STR + spellbonuses.STR;
sint16 mod = 2 * (GetAA(aaInnateStrength) + GetAA(aaAdvancedInnateStrength));
// check for berserking warrior or berserker
// normally you cant be berserk if not a warrior or berserker but we check
// for sanity sake
if( berserk && ( GetClass() == WARRIOR || GetClass() == BERSERKER) )
{
mod += 10;
}
if(val>255 && GetLevel() <= 60)
val = 255;
STR = val + mod;
i apologize for not offering diffs, but many of my files are not upto date with CVS and have custom modifications. this is the cleanest way to display what i changed without confusing versions and stuff.
== sfisque