From 2d6c9f881a5b65c854d90468e3df62efc57d3f7b Mon Sep 17 00:00:00 2001 From: Fryguy Date: Sun, 7 Jan 2024 15:02:21 -0500 Subject: [PATCH] [Bug Fix] Swimming Rules Adjustment and Racial (#3889) * [Bug Fix] Swiming rules adjustment and racial We need to set all character default swiming prior to working through racials. Added racial check so if starting rule is over the racial default it will not over-ride the starting rule. * operator fix --- world/client.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/world/client.cpp b/world/client.cpp index 53268ced9..dae48d94d 100644 --- a/world/client.cpp +++ b/world/client.cpp @@ -1691,15 +1691,16 @@ bool Client::OPCharCreate(char *name, CharCreate_Struct *cc) pp.hunger_level = 6000; pp.thirst_level = 6000; + /* Set default skills for everybody */ + pp.skills[EQ::skills::SkillSwimming] = RuleI(Skills, SwimmingStartValue); + pp.skills[EQ::skills::SkillSenseHeading] = RuleI(Skills, SenseHeadingStartValue); + /* Set Racial and Class specific language and skills */ SetRacialLanguages(&pp); SetRaceStartingSkills(&pp); SetClassStartingSkills(&pp); SetClassLanguages(&pp); - pp.skills[EQ::skills::SkillSwimming] = RuleI(Skills, SwimmingStartValue); - pp.skills[EQ::skills::SkillSenseHeading] = RuleI(Skills, SenseHeadingStartValue); - // strcpy(pp.servername, WorldConfig::get()->ShortName.c_str()); memset(pp.spell_book, 0xFF, (sizeof(uint32) * EQ::spells::SPELLBOOK_SIZE)); @@ -2143,7 +2144,9 @@ void Client::SetRaceStartingSkills( PlayerProfile_Struct *pp ) } case FROGLOK: { - pp->skills[EQ::skills::SkillSwimming] = 125; + if (RuleI(Skills, SwimmingStartValue) < 125) { + pp->skills[EQ::skills::SkillSwimming] = 125; + } break; } case GNOME: @@ -2160,7 +2163,9 @@ void Client::SetRaceStartingSkills( PlayerProfile_Struct *pp ) case IKSAR: { pp->skills[EQ::skills::SkillForage] = 50; - pp->skills[EQ::skills::SkillSwimming] = 100; + if (RuleI(Skills, SwimmingStartValue) < 100) { + pp->skills[EQ::skills::SkillSwimming] = 100; + } break; } case WOOD_ELF: