mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 01:11:29 +00:00
Merge pull request #381 from noudess/master
Allow server customization of swimming start value.
This commit is contained in:
commit
bd9665e35b
@ -18,6 +18,13 @@ Notes:
|
||||
- Wearable equipment types still register as valid light sources when in general slots (needs exemption criteria)
|
||||
|
||||
== 02/23/2015 ==
|
||||
Noudess: Allow for a rule to set starting swimming && SenseHeading value.
|
||||
I moved the swimming override to char create instead of setting it
|
||||
every time a char enters a zone.
|
||||
|
||||
Also added rules to not ignore, but rather forrce sense heading packets to be
|
||||
used to train it instead of maxing it out like before.
|
||||
|
||||
Uleat: Fix for RoF+ clients showing active 'Return Home' button when action is not available (swapped 'GoHome' and 'Enabled' fields in RoF-era CharacterSelectEntry structs)
|
||||
|
||||
== 02/21/2015 ==
|
||||
|
||||
@ -133,6 +133,9 @@ RULE_INT ( Skills, MaxTrainTradeskills, 21 )
|
||||
RULE_BOOL ( Skills, UseLimitTradeskillSearchSkillDiff, true )
|
||||
RULE_INT ( Skills, MaxTradeskillSearchSkillDiff, 50 )
|
||||
RULE_INT ( Skills, MaxTrainSpecializations, 50 ) // Max level a GM trainer will train casting specializations
|
||||
RULE_INT ( Skills, SwimmingStartValue, 100 )
|
||||
RULE_BOOL ( Skills, TrainSenseHeading, false )
|
||||
RULE_INT ( Skills, SenseHeadingStartValue, 200 )
|
||||
RULE_CATEGORY_END()
|
||||
|
||||
RULE_CATEGORY( Pets )
|
||||
|
||||
@ -1430,7 +1430,10 @@ bool Client::OPCharCreate(char *name, CharCreate_Struct *cc)
|
||||
SetRaceStartingSkills(&pp);
|
||||
SetClassStartingSkills(&pp);
|
||||
SetClassLanguages(&pp);
|
||||
pp.skills[SkillSenseHeading] = 200;
|
||||
|
||||
pp.skills[SkillSwimming] = RuleI(Skills, SwimmingStartValue);
|
||||
pp.skills[SkillSenseHeading] = RuleI(Skills, SenseHeadingStartValue);
|
||||
|
||||
// strcpy(pp.servername, WorldConfig::get()->ShortName.c_str());
|
||||
|
||||
|
||||
|
||||
@ -332,7 +332,13 @@ void MapOpcodes()
|
||||
ConnectedOpcodes[OP_Save] = &Client::Handle_OP_Save;
|
||||
ConnectedOpcodes[OP_SaveOnZoneReq] = &Client::Handle_OP_SaveOnZoneReq;
|
||||
ConnectedOpcodes[OP_SelectTribute] = &Client::Handle_OP_SelectTribute;
|
||||
ConnectedOpcodes[OP_SenseHeading] = &Client::Handle_OP_Ignore;
|
||||
|
||||
// Use or Ignore sense heading based on rule.
|
||||
bool train=RuleB(Skills, TrainSenseHeading);
|
||||
|
||||
ConnectedOpcodes[OP_SenseHeading] =
|
||||
(train) ? &Client::Handle_OP_SenseHeading : &Client::Handle_OP_Ignore;
|
||||
|
||||
ConnectedOpcodes[OP_SenseTraps] = &Client::Handle_OP_SenseTraps;
|
||||
ConnectedOpcodes[OP_SetGuildMOTD] = &Client::Handle_OP_SetGuildMOTD;
|
||||
ConnectedOpcodes[OP_SetRunMode] = &Client::Handle_OP_SetRunMode;
|
||||
@ -1431,10 +1437,6 @@ void Client::Handle_Connect_OP_ZoneEntry(const EQApplicationPacket *app)
|
||||
if (m_pp.ldon_points_tak < 0 || m_pp.ldon_points_tak > 2000000000){ m_pp.ldon_points_tak = 0; }
|
||||
if (m_pp.ldon_points_available < 0 || m_pp.ldon_points_available > 2000000000){ m_pp.ldon_points_available = 0; }
|
||||
|
||||
/* Set Swimming Skill 100 by default if under 100 */
|
||||
if (GetSkill(SkillSwimming) < 100)
|
||||
SetSkill(SkillSwimming, 100);
|
||||
|
||||
/* Initialize AA's : Move to function eventually */
|
||||
for (uint32 a = 0; a < MAX_PP_AA_ARRAY; a++){ aa[a] = &m_pp.aa_array[a]; }
|
||||
query = StringFormat(
|
||||
@ -11653,6 +11655,27 @@ void Client::Handle_OP_SelectTribute(const EQApplicationPacket *app)
|
||||
return;
|
||||
}
|
||||
|
||||
void Client::Handle_OP_SenseHeading(const EQApplicationPacket *app)
|
||||
{
|
||||
if (!HasSkill(SkillSenseHeading))
|
||||
return;
|
||||
|
||||
int chancemod=0;
|
||||
|
||||
// The client seems to limit sense heading packets based on skill
|
||||
// level. So if we're really low, we don't hit this routine very often.
|
||||
// I think it's the GUI deciding when to skill you up.
|
||||
// So, I'm adding a mod here which is larger at lower levels so
|
||||
// very low levels get a much better chance to skill up when the GUI
|
||||
// eventually sends a message.
|
||||
if (GetLevel() <= 8)
|
||||
chancemod += (9-level) * 10;
|
||||
|
||||
CheckIncreaseSkill(SkillSenseHeading, nullptr, chancemod);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
void Client::Handle_OP_SenseTraps(const EQApplicationPacket *app)
|
||||
{
|
||||
if (!HasSkill(SkillSenseTraps))
|
||||
|
||||
@ -28,7 +28,7 @@
|
||||
set to nullptr and 0 respectively since they aren't used when adding
|
||||
an alias. The function pointers being equal is makes it an alias.
|
||||
The access level you set with command_add is only a default if
|
||||
the command isn't listed in the addon.ini file.
|
||||
the command isn't listed in the commands db table.
|
||||
|
||||
*/
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user