(http://hobby-site.blogja.net/wajcraft.png)
Erről lenne szó:
http://collab.kpsn.org/display/tc/Item+instance+tc2#Iteminstancetc2-enchantments (http://collab.kpsn.org/display/tc/Item+instance+tc2#Iteminstancetc2-enchantments)
Addig Oké, hogy SpellItemEnchantment.dbc, de mégis melyik érték micsoda?
Én erről a dologról nem találtam infót, lehet csak én vagyok béna.
Ezért kikísérleteztem.
Egy példa, így egyszerűbb lesz átlátni:
Idéz3297 0 0 0 0 0 3100 0 0 3056 0 0 3049 0 0 2868 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Látunk pár számot, és közben egy talicska ' 0 '-t.
Ezen számok ténylegesen a SpellItemEnchantment.dbc-ből visszakérhetőek.
De mégis melyik érték micsoda?
Ezt fogom most megmondani.
Jöjjön ezen sornak, a kiolvasott értékei visszakérve a SpellItemEnchantment.dbc-ből, kép formájában.
(http://kepfeltoltes.hu/130208/tolltip-emuf_www.kepfeltoltes.hu_.jpg)
( Ezt az egészet, egy tömbbe kell rendeznünk, amiről itt találtok információt: http://infobarkacs.hu/index.php/topic,4898.msg79823.html#msg79823 (http://infobarkacs.hu/index.php/topic,4898.msg79823.html#msg79823) )
Egy tömb számozása, indexe, mindig a ' 0 '-tól kezdődik. ( 0; 1; 2; 3; 4.... )
Én ezen szellemben számoztam meg az adatokat.
- 0, A nulladik érték amennyiben nem ' 0 ', akkor az item-en lévő encsat ID-jét adja meg.
- 6, A hetedik érték amennyiben nem ' 0 ' akkor az, az item-ben lévő első Gem ID-jét adja meg.
- 9, A kilencedik érték amennyiben nem ' 0 ' akkor az, az item-ben lévő második Gem ID-jét adja meg.
- 12, A tizenkettedik érték amennyiben nem ' 0 ' akkor az, az item-ben lévő harmadik Gem ID-jét adja meg.
- 15, A tizenötödik érték amennyiben nem ' 0 ' akkor az a Gem-ek által kiadott Socket bónusz ID-jét adja meg.
Létezhet még 3 érték, ez pedig a random dolgokra vonatkozik. ( Subfix GemProperties )
Maga a sor:
Idéz3839 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2803 0 0 2802 0 0 3727 0 0 0 0 0 0 0 0
(http://kepfeltoltes.hu/130208/tolltip-emuf2_www.kepfeltoltes.hu_.jpg)
Itt is látszik, hogy az első érték a gyűrűn lévő encsi.
- 0, A nulladik érték amennyiben nem ' 0 ', akkor az item-en lévő encsat ID-jét adja meg.
- 21, A huszonegyedik érték amennyiben nem ' 0 ', akkor az item-en lévő első, Random stat ID-t adja meg.
- 24, A huszonnegyedik érték amennyiben nem ' 0 ', akkor az item-en lévő második Random stat ID-t adja meg.
- 27, A huszonhetedik érték amennyiben nem ' 0 ', akkor az item-en lévő harmadik Random stat ID-t adja meg.
Hogy pontosan hogyan kell kikarkulálni a Random dolgok pontos értékét, azt majd egy másik leírásban teszem közzé.
Tc-ék igazán kiegészíthetnék a Wiki-jüket...
Üdv.: Senki
Ez feler egy reverse engineeringel. :D
Amugy ha ilyen dolgokkal probal foglalkozni az ember, mindig erdemes magat a core-t megnezni, mert ott mindig pontos es napra kesz informacio van.
Ez igazabol egy 2 dimenzios tomb [12][3], tehat osszesen 36 ertek.
Az 1. dimenzio: src/server/game/Entities/Item/Item.h#L156 (https://github.com/TrinityCore/TrinityCore/blob/master/src/server/game/Entities/Item/Item.h#L156)
enum EnchantmentSlot
{
PERM_ENCHANTMENT_SLOT = 0,
TEMP_ENCHANTMENT_SLOT = 1,
SOCK_ENCHANTMENT_SLOT = 2,
SOCK_ENCHANTMENT_SLOT_2 = 3,
SOCK_ENCHANTMENT_SLOT_3 = 4,
BONUS_ENCHANTMENT_SLOT = 5,
PRISMATIC_ENCHANTMENT_SLOT = 6, // added at apply special permanent enchantment
MAX_INSPECTED_ENCHANTMENT_SLOT = 7,
PROP_ENCHANTMENT_SLOT_0 = 7, // used with RandomSuffix
PROP_ENCHANTMENT_SLOT_1 = 8, // used with RandomSuffix
PROP_ENCHANTMENT_SLOT_2 = 9, // used with RandomSuffix and RandomProperty
PROP_ENCHANTMENT_SLOT_3 = 10, // used with RandomProperty
PROP_ENCHANTMENT_SLOT_4 = 11, // used with RandomProperty
MAX_ENCHANTMENT_SLOT = 12
};
Vegul a 2. dimenzio:src/server/game/Entities/Item/Item.cpp#L339 (https://github.com/TrinityCore/TrinityCore/blob/master/src/server/game/Entities/Item/Item.cpp#L339)
for (uint8 i = 0; i < MAX_ENCHANTMENT_SLOT; ++i)
{
ssEnchants << GetEnchantmentId(EnchantmentSlot(i)) << ' ';
ssEnchants << GetEnchantmentDuration(EnchantmentSlot(i)) << ' ';
ssEnchants << GetEnchantmentCharges(EnchantmentSlot(i)) << ' ';
}
UI.:
Regebben meg tobb ehhez hasonlo tomb volt a DB oszlopokban, de szep lassan egyre tobb lett kulon oszlopokra bontva, ugy latszik ez (meg) nem. :)
Oh.... jól van te Céss... Hát így könnyű... :D
Hát én nem néztem bele a Core-ba, csak Google, DBC-k, Adatbázistáblák.
Megy a +1!
Ha már sikerült megtalálnod, akkor egy kérdés. Hogy számolod ki a RandomSuffix és a RandomProperty által létrejövő pontos statokat? Példának okáért az első hozzászólásban szereplő gyűrű.
A gyűrűhöz tartozó bejegyzés:
Idéz3839 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2803 0 0 2802 0 0 3727 0 0 0 0 0 0 0 0
A gyűrű random statjai:
- 18 Stamina
- 12 Agility
- 12 Hit
PROP_ENCHANTMENT_SLOT_0 = 7, // used with RandomSuffix
PROP_ENCHANTMENT_SLOT_1 = 8, // used with RandomSuffix
PROP_ENCHANTMENT_SLOT_2 = 9, // used with RandomSuffix and RandomProperty
PROP_ENCHANTMENT_SLOT_3 = 10, // used with RandomProperty
PROP_ENCHANTMENT_SLOT_4 = 11, // used with RandomProperty
MAX_ENCHANTMENT_SLOT = 12
Mert ez nekem még nem világos. Azért kérdezlek téged, mert lehet hogy a Core-ban megvan a pontos, és egyszerű megoldás. És te jobban bele vagy mélyedve a C-be.
Üdv.: Senki
Frissítés..Én rájöttem, az volt eddig a baj, hogy egy DBC-t nem találtam.
Kép:
(http://kepfeltoltes.hu/thumb/130209/tolltip_sufix_www.kepfeltoltes.hu_.jpg) (http://kepfeltoltes.hu/view/130209/tolltip_sufix_www.kepfeltoltes.hu_.jpg)
A képet a Képfeltöltés.hu tárolja. http://www.kepfeltoltes.hu (http://www.kepfeltoltes.hu)
Csak kötözködök, mert nem értem.
Ennél a példánál maradva. Mert ez pontosan az az item ( Id: 51991 ) amit fentebb képen láthatsz. A legmagasabb esélyű random stat-ot kaptam meg rá. ( Wowhead-en utána lehet nézni )
Idéz3839 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2803 0 0 2802 0 0 3727 0 0 0 0 0 0 0 0
A vége felé lévő 3 Db különálló négyjegyű szám takarja a itemrandomsuffix DBC-ben a visszakereséshez szükséges azonosítót, majd a randproppoints DBC-ben quality ilevel és invtype alapján a beszorzáshoz kellő számot.
Nálad az egyenlőségjel utáni számok minek az értékeit takarják? Mert hogy nem a sorozatban elfoglalt helyét, az biztos. Nem értem hogy hogy bontja különálló tömbökre. Mert én PHP-val, ezen számhalmazból, egy sima tömböt tudok csak kreálni.
Üdv.: Senki
Igy kell elkepzelni:
array[PERM_ENCHANTMENT_SLOT][0] = 3839;
array[PERM_ENCHANTMENT_SLOT][1] = 0;
array[PERM_ENCHANTMENT_SLOT][2] = 0;
array[TEMP_ENCHANTMENT_SLOT][0] = 0;
array[TEMP_ENCHANTMENT_SLOT][1] = 0;
array[TEMP_ENCHANTMENT_SLOT][2] = 0;
// ...
array[PROP_ENCHANTMENT_SLOT_1][0] = 2803
array[PROP_ENCHANTMENT_SLOT_1][1] = 0;
array[PROP_ENCHANTMENT_SLOT_1][2] = 0;
array[PROP_ENCHANTMENT_SLOT_2][0] = 2802;
array[PROP_ENCHANTMENT_SLOT_2][1] = 0;
array[PROP_ENCHANTMENT_SLOT_2][2] = 0;
array[PROP_ENCHANTMENT_SLOT_3][0] = 3727;
array[PROP_ENCHANTMENT_SLOT_3][1] = 0;
array[PROP_ENCHANTMENT_SLOT_3][2] = 0;
// ...
[0] -> GetEnchantmentId(); // ID
[1] -> GetEnchantmentDuration(); // duration
[2] -> GetEnchantmentCharges(); // charges