Informatikai Barkács Fórum

WORLD OF WARCRAFT SZERVER => Core/Mag => A témát indította: DarkCatalysm Dátum 2010 augusztus 06, 10:39:33 DÉLUTÁN

Cím: DeathKnight Talent Pont
Írta: DarkCatalysm Dátum 2010 augusztus 06, 10:39:33 DÉLUTÁN
Sziasztok, hogy lehet megoldani hogy a DK is 71 Talent pontal kezdjen.
Vagy lehet valamit csinálni pl: egy quest de csak DK tudja használni.
Hogy ha felveszed leadodd kapsz + tp-t és meglesz a 71
Ha igen mit kell átírni a questben?:D
Confban nem találtam ilyesmi sort h Heroic Karakter Talent Pont vagy hasonlot. :s
Cím: Re:DeathKnight Talent Pont
Írta: DoomKiller Dátum 2010 augusztus 06, 10:42:50 DÉLUTÁN
Hello,

Cím: Re:DeathKnight Talent Pont
Írta: DarkCatalysm Dátum 2010 augusztus 06, 10:46:09 DÉLUTÁN
Köszönöm, de ez megis oldja a talent pontot?:) Épp most írogatjuk a kezdőket.
Cím: Re:DeathKnight Talent Pont
Írta: DoomKiller Dátum 2010 augusztus 06, 10:49:11 DÉLUTÁN
IdézÍgy nem kell megcsinálni a questeket, 71 tp-je lesz, tud teleportálni.
Cím: Re:DeathKnight Talent Pont
Írta: Szilárd Dátum 2010 augusztus 08, 07:50:21 DÉLUTÁN

Rohadtul nem az első ilyen topik!
Cím: Re:DeathKnight Talent Pont
Írta: Bluerák Dátum 2010 augusztus 08, 08:34:09 DÉLUTÁN
Ez mióta Core :)?
SQL(ha nem tudnád véletlen:)):

SET @DK := 6
SET @map := 0; -- map id
SET @zone := 0; -- Zone id .gps parancs :D
SET @x := 0; -- x koordináta .gps parancs
SET @y := 0; -- y koordináta .gps parancs
SET @z := 0; -- z koordináta .gps parancs

UPDATE `playercreatinfo` SET `map`=@map WHERE `class`=@DK;
UPDATE `playercreatinfo` SET `zone`=@zone WHERE `class`=@DK;
UPDATE `playercreatinfo` SET `position_x`=@x WHERE `class`=@DK;
UPDATE `playercreatinfo` SET `position_y`=@y WHERE `class`=@DK;
UPDATE `playercreatinfo` SET `position_z`=@z WHERE `class`=@DK;
Cím: Re:DeathKnight Talent Pont
Írta: kagebunshin Dátum 2010 augusztus 09, 12:01:53 DÉLUTÁN
Tény, hogy adatbázisból könnyebben és kényelmesebben lehet megoldani. Plusz mivel átírják a kezdőhelyeket simán megoldódik a probléma.

De ha már core témába vagyunk.

Player.cpp, CalculateTalentsPoints() függvénye:
Idézuint32 Player::CalculateTalentsPoints() const
{
   uint32 base_talent = getLevel() < 10 ? 0 : getLevel()-9;

   if (getClass() != CLASS_DEATH_KNIGHT || GetMapId() != 609)
       return uint32(base_talent * sWorld.getRate(RATE_TALENT));

   uint32 talentPointsForLevel = getLevel() < 56 ? 0 : getLevel() - 55;
   talentPointsForLevel += m_questRewardTalentCount;

   if (talentPointsForLevel > base_talent)
       talentPointsForLevel = base_talent;

   return uint32(talentPointsForLevel * sWorld.getRate(RATE_TALENT));
}

Kis átalakítás után a death kinght a saját kezdőhelyén is megkapja a talent pontjait:
Idézuint32 Player::CalculateTalentsPoints() const
{
   uint32 base_talent = getLevel() < 10 ? 0 : getLevel()-9;

   return uint32(base_talent * sWorld.getRate(RATE_TALENT));
}

Viszont nem kapja meg a questekért járó talenteket sem.

Sokféleképp átalakítható. Akár saját talent rendszer is készíthető.
pl.:
1. talent csak questekből.
2. fajonként/kasztonként több/kevesebb talent.
3. vásárolható talent pontok, természetesen szűrni, hogy egy bizonyos talentpont fölé ne lehessen menni.
4. a fentiek bármilyen kombinációja.