Szerző Téma: 106 talent 2 full talentfa  (Megtekintve 4349 alkalommal)

Nem elérhető K3nNy

  • Újonc
  • *
  • Hozzászólások: 34
  • Op. Rendszer: Windows 8 Professional
106 talent 2 full talentfa
« Dátum: 2013 Január 01, 10:21:24 pm »
Sziasztok.

Az lenne a kérdésem, hogy ha 106 talentpont van a playereknek, akkor hogyan oldható az meg, hogy csak egy talentfát tudjanak utolsó talentig kitalentolni?
Tehát ha pl kitalentol egy talentfát utolsó talentig, akkor a másik talentfán csak 50 talentpontot engedjen elnyomni.
Ebben tudna nekem valaki segíteni?

Köszönöm a segítésget!

Nem elérhető EroniX

  • Középhaladó
  • ***
  • Hozzászólások: 224
  • www.azuregoswow.com
  • Op. Rendszer: Windows 8 Pro x64
Re:106 talent 2 full talentfa
« Válasz #1 Dátum: 2013 Január 01, 11:51:44 pm »
Hali!
Az arena spectatoromban volt egy hasonló függvény (tabok pontjainak megszámlálása) ezt egy kicsit átalakítottam:
uint32 activeSpec = this->GetActiveSpec();
uint32 talentTabResult[3] = {0, 0, 0};

uint32 const* talentTabIds = GetTalentTabPages(this->getClass());

    for (uint8 i = 0; i < MAX_TALENT_TABS; ++i)
    {
        uint32 talentTabId = talentTabIds[i];

        for (uint32 talentId = 0; talentId < sTalentStore.GetNumRows(); ++talentId)
        {
             TalentEntry const* talentInfo = sTalentStore.LookupEntry(talentId);
             if (!talentInfo)
                 continue;

             if (talentInfo->TalentTab != talentTabId)
                 continue;

int32 talentRank = -1;
             for (int8 rank = MAX_TALENT_RANK-1; rank >= 0; --rank)
             {
                  if (talentInfo->RankID[rank] && this->HasTalent(talentInfo->RankID[rank], activeSpec))
                  {
                      talentRank = ++rank;
                      break;
                  }
             }

             if (talentRank < 0)
                 continue;

talentTabResult[i] += talentRank;
        }
    }

uint32 maxIndex = -1;
for(uint8 i = 0; i < MAX_TALENT_TABS; i++)
if(talentTabResult[i] > 50)
maxIndex = i;

if(maxIndex != talentTabInfo->tabpage && maxIndex != -1 && talentTabResult[talentTabInfo->tabpage] >= 50)
return;

Ezt a kódot másold be a Player.cpp-ben található LearnTalent függvény ezen sora után:
TalentTabEntry const* talentTabInfo = sTalentTabStore.LookupEntry(talentInfo->TalentTab);
Azuregos Delta Force

Nem elérhető K3nNy

  • Újonc
  • *
  • Hozzászólások: 34
  • Op. Rendszer: Windows 8 Professional
Re:106 talent 2 full talentfa
« Válasz #2 Dátum: 2013 Január 02, 01:49:19 pm »
ahogy olvasgatom, ez csak 50 tp-t enged talentolni minden egy talentfán nem?
Nekem olyan kellene, hogy egyre annyit nyom amennyit akar, a többire viszont már csak 50 et

Nem elérhető EroniX

  • Középhaladó
  • ***
  • Hozzászólások: 224
  • www.azuregoswow.com
  • Op. Rendszer: Windows 8 Pro x64
Re:106 talent 2 full talentfa
« Válasz #3 Dátum: 2013 Január 02, 03:26:56 pm »
Ez pontosan azt csinálja:
maxIndex != talentTabInfo->tabpage && maxIndex != -1 // a legtöbb tp-vel rendelkező tab NEM a jelenlegi ÉS már van egy max

De miért nem próbálod ki... ennyire lusta azé ne legyél!
« Utoljára szerkesztve: 2013 Január 02, 03:41:38 pm írta EroniX »
Azuregos Delta Force

Nem elérhető K3nNy

  • Újonc
  • *
  • Hozzászólások: 34
  • Op. Rendszer: Windows 8 Professional
Re:106 talent 2 full talentfa
« Válasz #4 Dátum: 2013 Január 02, 05:11:23 pm »
2>..\..\..\..\forras\src\server\game\Entities\Player\Player.cpp(4466) : error C2561: 'Player::resetTalents' : function must return a value
2>        c:\szerver\forras\src\server\game\entities\player\Player.h(1670) : see declaration of 'Player::resetTalents'

Erre hivatkozik, de ennek köze sincs ahoz amit beillesztettem, ráadásil a 4466. sorba, egy visszatérés van csak(return;)
Valami ötleted esetleg van, hogy mi lehet a problémája?

Nem elérhető EroniX

  • Középhaladó
  • ***
  • Hozzászólások: 224
  • www.azuregoswow.com
  • Op. Rendszer: Windows 8 Pro x64
Re:106 talent 2 full talentfa
« Válasz #5 Dátum: 2013 Január 02, 05:27:39 pm »
Rossz függvénybe illesztetted be...
Azuregos Delta Force

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27