-
-
Save irancore/d8c242625d17c7f1c013 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class AccountMounts : public PlayerScript | |
{ | |
static const bool limitrace = false; // This set to true will only learn mounts from chars on the same team, do what you want. | |
public: | |
AccountMounts() : PlayerScript("AccountMounts") { } | |
void OnLogin(Player* pPlayer) | |
{ | |
std::vector<uint32> Guids; | |
QueryResult result1 = CharacterDatabase.PQuery("SELECT guid, race FROM characters WHERE account = %u", pPlayer->GetSession()->GetAccountId()); | |
if (!result1) | |
return; | |
do | |
{ | |
Field* fields = result1->Fetch(); | |
uint32 guid = fields[0].GetUInt32(); | |
uint32 race = fields[1].GetUInt8(); | |
if ((Player::TeamForRace(race) == Player::TeamForRace(pPlayer->getRace())) || !limitrace) | |
Guids.push_back(result1->Fetch()[0].GetUInt32()); | |
} while (result1->NextRow()); | |
std::vector<uint32> Spells; | |
for (auto& i : Guids) | |
{ | |
QueryResult result2 = CharacterDatabase.PQuery("SELECT spell FROM character_spell WHERE guid = %u", i); | |
if (!result2) | |
continue; | |
do | |
{ | |
Spells.push_back(result2->Fetch()[0].GetUInt32()); | |
} while (result2->NextRow()); | |
} | |
for (auto& i : Spells) | |
{ | |
auto sSpell = sSpellStore.LookupEntry(i); | |
if (sSpell->Effect[0] == SPELL_EFFECT_APPLY_AURA && sSpell->EffectApplyAuraName[0] == SPELL_AURA_MOUNTED) | |
pPlayer->learnSpell(sSpell->Id, false); | |
} | |
} | |
}; | |
void AddSC_accontmounts() | |
{ | |
new AccountMounts; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment