Salut je vous partage un petit script que j'ai fait et qui a été corrigé par un amis (Lawys) destiné pour les serveurs FUN / UltraFUN, consistant à donner tout les talents à la création du personnage. Ce script est fonctionnel en 3.3.5a sous TrinityCore (dernière revision)
#include "ScriptPCH.h"
class login_script : public PlayerScript
{
public:
login_script() : PlayerScript("login_script") { }
void OnCreate(Player* player)
{
for (uint32 i = 0; i < sTalentStore.GetNumRows(); ++i)
{
TalentEntry const* talentInfo = sTalentStore.LookupEntry(i);
if (!talentInfo)
continue;
TalentTabEntry const* talentTabInfo = sTalentTabStore.LookupEntry(talentInfo->TalentTab);
if (!talentTabInfo)
continue;
uint32 classMask = player->getClassMask();
if ((classMask & talentTabInfo->ClassMask) == 0)
continue;
// On cherche le rang maximum.
uint32 spellId = 0;
for (int8 rank = MAX_TALENT_RANK - 1; rank >= 0; --rank)
{
if (talentInfo->RankID[rank] != 0)
{
spellId = talentInfo->RankID[rank];
break;
}
}
if (!spellId)
continue;
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellId);
if (!spellInfo || !SpellMgr::IsSpellValid(spellInfo, player->GetSession()->GetPlayer(), false))
continue;
// On lui ajoute les sorts de rang maximum.
player->learnSpellHighRank(spellId);
player->AddTalent(spellId, player->GetActiveSpec(), true);
}
player->SetFreeTalentPoints(0);
player->SaveToDB();
}
};
void AddSC_login_script()
{
new login_script();
}