ďťż

Spell family mask (flag)





Syde_Syrius - 07-23-2010 17:55
Spell family mask (flag)
  Witam,
otóż mam problem w rozszyfrowaniu spell_family_mask z spell_affect. Widziałem, że to pojawia się gdzieś jeszcze i w necie niby coś było, ale nie za bardzo potrafię rozszyfrować jak "stworzyć" odpowiednią wartość...

np. dla Improved Strength of Earth - Czary - HG Wiki - Kompendium wiedzy maska jest 65536 i mógłby ktoś pomóc i napisać jak to zrobić?

Podrawiam.




Siofra - 07-23-2010 19:23
spell_family_mask masz w spell.dbc wpisane dla każdego spella.
SpellFamilyNames masz w pliku SpellMgr w kodzie trinity. SpellFamiliFlags są tylko wykorzystane w kodzie i niema chyba konkretnego spisu tych flag (a bardzo by to ułatwiło)

edit: kurde znowu źle przeczytałęm ;p

wg opisu bazy:
This field controls what family flag or flags a spell needs to have to be affected by the modifier. This is the main field that defines which spells are affected by modifiers. For SpellFamily see spell.dbc (in WoW-2.4.2 column 198 )

musisz sam jakby dodać taką maske jaka powinna być. niestety więcej nie jestem w stanie Ci o tym powiedzieć



lunatic - 07-23-2010 21:44
Modyfikatory speli przez spele opisywane w spell_affect maja dotyczyc konkretnej "rodziny" czarow. Pogrupowane sa one w bazach DBC za pomoca kilku flag, po pierwsze SpellFamilyName (kolumna 199) w ktorej spele pogrupowane sa wg przynaleznosci do klasy: generic i pozniej odpowiednie klasy z WoW: druid, mag etc.. a takze w obrebie kazdej takiej "rodziny" maja swoje odpowiednie flagi okreslane w SpellFamilyFlags (kolumny 200 i 201) w ktorych czary dalej pogrupowane sa wedlug tego co robia np. wszystkie flash heale maja jedna flage (niezaleznie od ranku spella), wszystkie cursy danego typu itd. Czyli jesli np mamy czar ktory ma zwiekszac dajmy na do spell damage ale tylko flash heal priesta, okreslamy ze rodzina speli to spele priesta, a flaga to flaga odpowiadajaca flash healowi.

Niestety nie mamy podanego wszystkiego na tacy, sami musimy wyszukac jakiego typu flagi maja spele nas interesujace i czy aby inne spele z tej rodziny na ktore nie chcemy dawac modyfikatora tej flagi nie maja. Aha i musisz zwracac uwage w jakim systemie masz zapisywane flagi (DEC lub HEX), oczywiscie poniewaz sa to maski, latwiej zorientowac sie w sumowaniu ich ogladajac wartosci w HEX ;]

Mam nadzieje ze pomoglem, jesli nadal masz jakies pytania to pisz.

edit.
Aha, moze jeszcze jedno nie napisalem co jest chyba kluczowe, ale wydawalo mi sie oczywiste :P Musisz edytowac bazy DBC klienta, ktore jesli instalujesz TrinityCore konwertujesz zwykle i zapisujesz w folderze DATA. Tam jest plik Spell.dbc ktory zawiera dane nt spelli aktualnego patcha. Do otworzenia plikow DBC moze sluzyc kilka programow, osobiscie polecam DBCTool, ktory darmowo mozna pobrac z sieci.



Muzzafar - 07-24-2010 01:09
http://img707.imageshack.us/img707/6109/18041689.jpg

Przy tabeli 'spell_affects' SpellFamilyFlags to flagi spelli, na które ma działać dany modifier czyli w tym przypadku co podałeś HG Wiki - Kompendium wiedzy
działa na Strength of Earth - Czary - HG Wiki - Kompendium wiedzy (wszystkie ranki mają tą samą flagę)
SpellFamilyName i SpellFamilyFlags to unikatowa kombinacja tylko dla jednego spella i wszystkich jego ranków




Syde_Syrius - 07-26-2010 21:37
no na bitach to ja rozumiem :D

dobra... a jeśli moje spell_dbc zawiera tylko 2 wiersze to znaczy, że mam słabą bazę i nie odczytam tak? bo znalazłem jeszcze coś takiego w necie na ten temat: How to fix talents in FDB (Mangos) Wotlk



Muzzafar - 07-27-2010 01:21
niemożliwe, żeby spell.dbc z wersji 2.4.3 miało tylko 2 wiersze xO



lukaasm - 07-27-2010 01:52
Nie chodzi o tabele w bazie spell_dbc tylko pliki klienta z rozszerzeniem .dbc



Syde_Syrius - 07-27-2010 17:34
hmm... teraz trochę dziwnie... no generalnie to kolumna pierwsza(oznaczona jako index) to index, kolumna druga (oznaczona jako 0) to id spella (tak to rozumiem ;] ) i teraz dla spella Improved Strength of Earth - Czary - HG Wiki - Kompendium wiedzy mimo wszystko kolumna 200 i 201 są 0, a spellfamilymask nie jest 0, możliwe że jakieś inne ułożenie kolumn? bo widziałem w necie 2 różne opisy, jedno coś dla starszego, a jedno dla nowszego.

EDIT:
Dobra doczytałem posty Lukaasm i chyba pasuje ;) bo kolumknu 198 i 199;)



Syde_Syrius - 07-27-2010 19:28
Jednak nadal coś mi tutaj nie pasuje... Posłużę się dalej przykładem podanym w 1 poście, SpellFamilyMask dla Improved Strength of Earth - Czary - HG Wiki - Kompendium wiedzy mam zapisane w spell_affect jako 65536 (0x00010000).

Wg. tabelki Muzzafara i tego co mam w spell.dbc (kolumna 201 i 200 sa =0) to wychodzi, że moje SpellFamilyMask = 0... błąd w mojej bazie czy coś źle odczytuję? Kolumna 198 =0, a kolumna 199=11 (to jest klasa o ile dobrze pamiętam tak?).



Muzzafar - 07-27-2010 20:34
Wychodzi na to, że 199 u ciebie to spellfamilyname a 200/201 to spellfamily flags...
Jeszcze raz przeczytaj mojego posta, bo nie lubię się powtarzać.



Syde_Syrius - 07-28-2010 09:30
No ok, ale wg. tego co wkleiłeś o tym jak stworzyć SFM czyli przesunąć o 32 bity kol 201 (, to chyba nie do końca przesunąć bo jak przesuniemy 32 pracując na 32 bitach to dostaniemy zawsze 0, no ale rozumiem, że chodzi o wstawienie na starszą pozycję.No ale jej wartość jest i tak 0 ). No i no i mlodsze 32 bity to kol 200 (której wartość też 0) wiec spell_family_mask jest 0. Natomiast spell_family_mask dla mojego przykładu w spell_affect jest równe 65536 czyli wartości nie pasują.



lukaasm - 07-28-2010 12:32
Pelny spell_dbc SQL:
WyslijTo.pl - Za duży załącznik? Problemy z pocztą? WyslijTo.pl :))) Przesyłanie i hosting plików.

Wrzucacie sobie do bazy mysql, wyciagacie po ID. Zawiera attributes, spellfamily, spellfamilyflags oraz nazwe spella ;] nie musicie meczyc sie z DBC.



Muzzafar - 07-28-2010 13:24
SpellFamiyMask jest 64 bitowe więc jak przesuniesz kolumne 201 o 32 bity w lewo to nie wyjdzie za zakres....
Anyway chodziło mi, żebyś przeczytał ta część:
Cytat:
Przy tabeli 'spell_affects' SpellFamilyFlags to flagi spelli, na które ma działać dany modifier czyli w tym przypadku co podałeś HG Wiki - Kompendium wiedzy
działa na Strength of Earth - Czary - HG Wiki - Kompendium wiedzy (wszystkie ranki mają tą samą flagę)
SpellFamilyName i SpellFamilyFlags to unikatowa kombinacja tylko dla jednego spella i wszystkich jego ranków




Syde_Syrius - 07-29-2010 09:06
No ale 201 to jest spellfamilyflag i jest 32bit, no ale mniejsza z tym

Dzieki Lukaasm za pliczek :D no i tam jest zgodnie z tabelką Muzzafar, ale wychodzi na to, że to jest inny spellfamilymask niż w spell_affect czyli w sumie nadal nie wiem co powinno się dać do tek kolumny w spell_affect, chyba że tam mam coś źle wpisane dla tego przykładu. Po południu będę w domu to pokombinuje jeszcze.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • karro31.htw.pl
  •