Override database mount level requirements to match configured values. (#132)
This commit is contained in:
parent
a0a25be120
commit
c234125fce
@ -9809,7 +9809,88 @@ InventoryResult Player::CanUseItem(ItemPrototype const* pProto, bool direct_acti
|
||||
if (direct_action && GetHonorHighestRankInfo().rank < (uint8)pProto->RequiredHonorRank)
|
||||
{ return EQUIP_ERR_CANT_EQUIP_RANK; }
|
||||
|
||||
if (getLevel() < pProto->RequiredLevel)
|
||||
// override mount level requirements with the settings from the configuration file
|
||||
int requiredLevel = pProto->RequiredLevel;
|
||||
switch(pProto->ItemId) {
|
||||
case 1132: //regular mounts
|
||||
case 2411:
|
||||
case 2414:
|
||||
case 5655:
|
||||
case 5656:
|
||||
case 5665:
|
||||
case 5668:
|
||||
case 5864:
|
||||
case 5872:
|
||||
case 5873:
|
||||
case 8563:
|
||||
case 8588:
|
||||
case 8591:
|
||||
case 8592:
|
||||
case 8595:
|
||||
case 8629:
|
||||
case 8631:
|
||||
case 8632:
|
||||
case 12325:
|
||||
case 12326:
|
||||
case 12327:
|
||||
case 13321:
|
||||
case 13322:
|
||||
case 13331:
|
||||
case 13332:
|
||||
case 13333:
|
||||
case 15277:
|
||||
case 15290:
|
||||
case 18241:
|
||||
case 18242:
|
||||
case 18243:
|
||||
case 18244:
|
||||
case 18245:
|
||||
case 18246:
|
||||
case 18247:
|
||||
case 18248:
|
||||
requiredLevel = AccountTypes(sWorld.getConfig(CONFIG_UINT32_MIN_TRAIN_MOUNT_LEVEL));
|
||||
break;
|
||||
case 12302: // epic mounts
|
||||
case 12303:
|
||||
case 12330:
|
||||
case 12351:
|
||||
case 12353:
|
||||
case 12354:
|
||||
case 13086:
|
||||
case 13326:
|
||||
case 13327:
|
||||
case 13328:
|
||||
case 13329:
|
||||
case 13334:
|
||||
case 13335:
|
||||
case 18766:
|
||||
case 18767:
|
||||
case 18768:
|
||||
case 18772:
|
||||
case 18773:
|
||||
case 18774:
|
||||
case 18776:
|
||||
case 18777:
|
||||
case 18778:
|
||||
case 18785:
|
||||
case 18786:
|
||||
case 18787:
|
||||
case 18788:
|
||||
case 18789:
|
||||
case 18790:
|
||||
case 18791:
|
||||
case 18793:
|
||||
case 18794:
|
||||
case 18795:
|
||||
case 18796:
|
||||
case 18797:
|
||||
case 18798:
|
||||
case 18902:
|
||||
requiredLevel = AccountTypes(sWorld.getConfig(CONFIG_UINT32_MIN_TRAIN_EPIC_MOUNT_LEVEL));
|
||||
break;
|
||||
}
|
||||
|
||||
if (getLevel() < requiredLevel)
|
||||
{ return EQUIP_ERR_CANT_EQUIP_LEVEL_I; }
|
||||
|
||||
#ifdef ENABLE_ELUNA
|
||||
|
@ -302,6 +302,86 @@ void WorldSession::HandleItemQuerySingleOpcode(WorldPacket& recv_data)
|
||||
std::string description = pProto->Description;
|
||||
sObjectMgr.GetItemLocaleStrings(pProto->ItemId, loc_idx, &name, &description);
|
||||
|
||||
// override mount level requirements with the settings from the configuration file
|
||||
int requiredLevel = pProto->RequiredLevel;
|
||||
switch(pProto->ItemId) {
|
||||
case 1132: //regular mounts
|
||||
case 2411:
|
||||
case 2414:
|
||||
case 5655:
|
||||
case 5656:
|
||||
case 5665:
|
||||
case 5668:
|
||||
case 5864:
|
||||
case 5872:
|
||||
case 5873:
|
||||
case 8563:
|
||||
case 8588:
|
||||
case 8591:
|
||||
case 8592:
|
||||
case 8595:
|
||||
case 8629:
|
||||
case 8631:
|
||||
case 8632:
|
||||
case 12325:
|
||||
case 12326:
|
||||
case 12327:
|
||||
case 13321:
|
||||
case 13322:
|
||||
case 13331:
|
||||
case 13332:
|
||||
case 13333:
|
||||
case 15277:
|
||||
case 15290:
|
||||
case 18241:
|
||||
case 18242:
|
||||
case 18243:
|
||||
case 18244:
|
||||
case 18245:
|
||||
case 18246:
|
||||
case 18247:
|
||||
case 18248:
|
||||
requiredLevel = AccountTypes(sWorld.getConfig(CONFIG_UINT32_MIN_TRAIN_MOUNT_LEVEL));
|
||||
break;
|
||||
case 12302: // epic mounts
|
||||
case 12303:
|
||||
case 12330:
|
||||
case 12351:
|
||||
case 12353:
|
||||
case 12354:
|
||||
case 13086:
|
||||
case 13326:
|
||||
case 13327:
|
||||
case 13328:
|
||||
case 13329:
|
||||
case 13334:
|
||||
case 13335:
|
||||
case 18766:
|
||||
case 18767:
|
||||
case 18768:
|
||||
case 18772:
|
||||
case 18773:
|
||||
case 18774:
|
||||
case 18776:
|
||||
case 18777:
|
||||
case 18778:
|
||||
case 18785:
|
||||
case 18786:
|
||||
case 18787:
|
||||
case 18788:
|
||||
case 18789:
|
||||
case 18790:
|
||||
case 18791:
|
||||
case 18793:
|
||||
case 18794:
|
||||
case 18795:
|
||||
case 18796:
|
||||
case 18797:
|
||||
case 18798:
|
||||
case 18902:
|
||||
requiredLevel = AccountTypes(sWorld.getConfig(CONFIG_UINT32_MIN_TRAIN_EPIC_MOUNT_LEVEL));
|
||||
break;
|
||||
}
|
||||
|
||||
// guess size
|
||||
WorldPacket data(SMSG_ITEM_QUERY_SINGLE_RESPONSE, 600);
|
||||
@ -322,7 +402,7 @@ void WorldSession::HandleItemQuerySingleOpcode(WorldPacket& recv_data)
|
||||
data << pProto->AllowableClass;
|
||||
data << pProto->AllowableRace;
|
||||
data << pProto->ItemLevel;
|
||||
data << pProto->RequiredLevel;
|
||||
data << requiredLevel;
|
||||
data << pProto->RequiredSkill;
|
||||
data << pProto->RequiredSkillRank;
|
||||
data << pProto->RequiredSpell;
|
||||
|
Loading…
x
Reference in New Issue
Block a user