Sziasztok! Betettem egy új bónuszt a szerverbe, viszont 1 problémám van vele. Hogy nem az új bónuszt teszi bele, hanem egy teljesen másikat.
Ezt tettem be:
[spoiler]https://mega.nz/#!oYtHgTYD!RDr1N9CoICB0SmPDHf5y4alyEAsivzSoMbc97YaJKSM[/spoiler]
Az új bónusz helyett, pedig ezt teszi bele. Az új bónuszt megpróbáltam új helyre is rakni, akkor szintén egy már meglévőt rakott bele.
Csatolom a hibát. A SEGÍTSÉGEKET ELŐRE IS KÖSZÖNÖM!
Adatbázist nem hagytad ki véletlen?
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fwww.kepfeltoltes.eu%2Fimages%2Fhdd1%2F2018%2F03%2F19%2F872nav.png&hash=95b1999f10f6ba90def85065f1e7f3b8bf73cbbd)
Természetesen nem. Az ördög elleni erőröl másoltam le (ATTBONUS_DEVIL) és a devilt átírtam az új bónusz helyére.
És jó bónusz id-t ír item táblában?
Az látod jó kérdés. Hazaérek és megnézem.
Nálam tök jól működik, igaz nem leírás alapján csináltam hanem magamtól.
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fwww.kepfeltoltes.eu%2Fimages%2Fhdd1%2F2018%2F03%2F20%2F875metin.png&hash=984be817c9566076358344b6eb73e8ef9d1b5c61)
Üzenet összefésülés: 2018-03-20, 13:38:24
+ ami a leírásban szerepel, ott a metin mellett továbbra is hat a szörny a kövekre, ami sztem az új metin elleni erő mellett nem kell, szóval ha ezt nem akarod így használd:
if (pkVictim->IsStone())
iAtk += (iAtk * pkAttacker->GetPoint(POINT_ATTBONUS_METIN)) / 100;
else
iAtk += (iAtk * pkAttacker->GetPoint(POINT_ATTBONUS_MONSTER)) / 100;
Na, megnéztem az item táblát, tényleg nem azt a bónuszt teszi bele, ami nekem kellene. Számszerint a 97-es az. Viszont ha manuálisan átírom, akkor jót tesz bele, viszont ha optolom a tárgyat, illetve pörgetem, akkor rosszat tesz bele.
Üzenet összefésülés: 2018-03-20, 14:02:22
Illetve, az erőt sem adja meg. :-[
Üzenet összefésülés: 2018-03-20, 14:07:53
Esetleg valami normális tutoriát nincs kedved csinálni?
Őszintén rákerestem a MONSTER-es részre (2 is van APPLY és POINT), majd lemásoltam és átírtam METIN-re.
Annyi h a végén a POINT_ENERGY-vel ütközés lett és át kellett azt írni (szerver és indító oldalon is).
Pontosan mi ütközött össze?
Az h enum osztályban van, és a POINT_ENERGY-nek meg lett adva alap érték, aszem 128, de mivel elé beírtam 1 újat a METIN-t, az előtte lévőt defaultból megnövelte ugye és ez okozta az ütközést.
Na, most újra rakom az egészet, aztán írok, ha van valami.
Üzenet összefésülés: 2018-03-20, 14:40:55
A helyzet változatlan, továbbra is Max TP%-ot rak bele, és ha manuálisan átírom, akkor se adja meg a bónuszt.
Csatolom a fájlokat, rátudsz nézni?
Be raktad az uj bonuszt a proto readerekbe? Kliens és szerver oldalon is, majd újra csomagoltad az item protot? Mivel itt az a gond, hogy rosz azonosítót hív meg a bónuszhoz, tehát vagy nem tetted be a proto readerekbe, vagy rossz sorrenben vannak a bonusz azonosítók.
ProtoReadernek nincs köze ehhez, az csak alap bónuszért felel a tárgyban.
Találtál valami hibát?
Azon kívül h te a legvégére raktad az enumoknak elv egyezik az enyimmel.
Én adatbázisra tippelek, mivel az felel azért h milyen bónuszt rak a tárgyba, onnan olvassa a szerver mikor hozzáadódik a bónusz.
Ha bonuszért felel, akkor hogy ne lenne. XDXDXD
Ha ott nincs bent, akkor item protoban az életben nem tud bonuszt hozzá adni egy tárgyhoz ezzel a bonusz azonosítóval...
Az tény hogy nem csak ott kell renben lennie, mert az item_lenght.h, affect.h char.h bizonyos enumjai felelnek még a bonuszokért.
Use your brain, please.
Azt én értem és nem is azt mondtam, de ő optolni próbálja a bónuszt és úgy nincs rendben és én arra írtam h nincs köze hozzá.
Adatbázis felöl meg ez a hiba nem jelenik meg, mert ha nincs az item_attr listán akkor nem rakja be a bonuszt, ha meg ottvan akkor nyilván berakja az adott azonosito alapján, tehát ha a forrásban nincs rendben az adott bonusz azonosito ami bekerü csak akkor rinyál be ilyen jelenség. És mint írtam a sorrend lesz a ludas, vagy h egyáltalán nincs is bent valahol. Érdemes figyelni, hogy minden fájlban ahol meghívjuk ugyan arra a sorra essen az enumon belül. Honnan tudom ezt? Éjjel raktam be két új statisztika pontot (mint az Erő, Inteligencia) és nyilván item bonuszként is szerepel, és volt rálátásom mikor hogy reagált a rendszer az uj bonuszoknál.
Igen, de ha rosszul van megcsinálva adatbázisban rossz ID-vel tölti be a bónuszt, ezért van az h Metin elleni erő helyett nála Max TP lett.
while ((data = mysql_fetch_row(pRes->pSQLResult)))
{
TItemAttrTable t;
memset(&t, 0, sizeof(TItemAttrTable));
int col = 0;
strlcpy(t.szApply, data[col++], sizeof(t.szApply));
str_to_number(t.dwApplyIndex, data[col++]);
str_to_number(t.dwProb, data[col++]);
str_to_number(t.lValues[0], data[col++]);
str_to_number(t.lValues[1], data[col++]);
str_to_number(t.lValues[2], data[col++]);
str_to_number(t.lValues[3], data[col++]);
str_to_number(t.lValues[4], data[col++]);
str_to_number(t.bMaxLevelBySet[ATTRIBUTE_SET_WEAPON], data[col++]);
str_to_number(t.bMaxLevelBySet[ATTRIBUTE_SET_BODY], data[col++]);
str_to_number(t.bMaxLevelBySet[ATTRIBUTE_SET_WRIST], data[col++]);
str_to_number(t.bMaxLevelBySet[ATTRIBUTE_SET_FOOTS], data[col++]);
str_to_number(t.bMaxLevelBySet[ATTRIBUTE_SET_NECK], data[col++]);
str_to_number(t.bMaxLevelBySet[ATTRIBUTE_SET_HEAD], data[col++]);
str_to_number(t.bMaxLevelBySet[ATTRIBUTE_SET_SHIELD], data[col++]);
str_to_number(t.bMaxLevelBySet[ATTRIBUTE_SET_EAR], data[col++]);
sys_log(0, "ITEM_RARE: %-20s %4lu { %3d %3d %3d %3d %3d } { %d %d %d %d %d %d %d }",
t.szApply,
t.dwProb,
t.lValues[0],
t.lValues[1],
t.lValues[2],
t.lValues[3],
t.lValues[4],
t.bMaxLevelBySet[ATTRIBUTE_SET_WEAPON],
t.bMaxLevelBySet[ATTRIBUTE_SET_BODY],
t.bMaxLevelBySet[ATTRIBUTE_SET_WRIST],
t.bMaxLevelBySet[ATTRIBUTE_SET_FOOTS],
t.bMaxLevelBySet[ATTRIBUTE_SET_NECK],
t.bMaxLevelBySet[ATTRIBUTE_SET_HEAD],
t.bMaxLevelBySet[ATTRIBUTE_SET_SHIELD],
t.bMaxLevelBySet[ATTRIBUTE_SET_EAR]);
m_vec_itemRareTable.push_back(t);
}
A forrását meg felrakta, és nem láttam hibát, azon kívül h ő más helyre rakta az enumon belül ami nem számít, ha passzol indtóval.
Azt én vágom, hogy passzol indítóval, de passzolnia kell az a szerver forráson belül számos fájlban, figyelni kell hogy egyes bonusz azonosítók nem enum auto incrementel vannak számozva, hanem manuálisan, igy ha manuális után rakunk uj azonositot akkor a manuális értéktöl kezd nőni. Jó nyilván ezt vágod te is. És egy ötlet, nézd meg az uitooltip.py-ben, hogy az apply/affect listán is szerepel-e a bonusz és ha igen megfelelő sorrenben van-e azis, mert szivatós a rendszer ha vmi nem jo számra esik. (Bocsi ha helyesirási problémákat észleltek, telorol írok és kapkodva.)
Üzenet összefésülés: 2018-03-20, 15:43:43
Miért szúrtál be egy 6-7 bónusz (rare) adatbázisból olvasó kódrészt?? Csak mert nem értem ez h jön ide.
Forrást mondtam h átnéztem, és stimmel minden.
Adatbázis részét tekintve meg:
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fwww.kepfeltoltes.eu%2Fimages%2Fhdd1%2F2018%2F03%2F20%2F405metin.png&hash=872ad5dfd97c80f2bde1a1fcdf84b88ecd13749e)
Csak felcseréltem a design-nál a valuesban a szörny és metin elleni erőt és lám...
Üzenet összefésülés: 2018-03-20, 15:46:41
Idézetet írta: udvatt108 Dátum 2018-03-20, 15:40:43
Üzenet összefésülés: 2018-03-20, 15:43:43
Miért szúrtál be egy 6-7 bónusz (rare) adatbázisból olvasó kódrészt?? Csak mert nem értem ez h jön ide.
Hát először is ez alap 1-5 bónusz nem a 6-7-é de m1, másodszor meg te mondtad h a proto readernek van köze a dologhoz... szóval gondolom érted már.
Ahh szóval 6-7 bonusz lesz az uj bonusz, már értem. De ez megerősíti amit a képen demonstrálzál, hogy rossz a bonuszok sorrendje fortásban, vaagy amit irtam az uitooltip.py-ben rossz a sorrend, esetleg nincs ott a bonusz.
1-5 bónusznak készül. Uitooltip nem hiszem, hogy hibás, hisz amikor manuálisan írom át a bónusz ID-t az item táblában, akkor a helyes bónuszt írja, csak az értéket sem adja hozzá, illetve, ha optolom, akkor jön ez a hiba.
Édes istenem... Ha szar indexre rakod adatbázisban akkor persze h nem stimmel forrásban és bizonyos szemszögből tekintve mondhatjuk h a forrásban a szar, de nem egyszerűbb a jó helyre berakni adatbázisban mint forrást átjavítani...?
uitooltipben meg milyen sorrend is? Nem manuálisan írod be az index-et, indítótól függ a dolog...
item.APPLY_ATTBONUS_MONSTER : localeInfo.TOOLTIP_APPLY_ATTBONUS_MONSTER,
item.APPLY_ATTBONUS_METIN : localeInfo.TOOLTIP_APPLY_ATTBONUS_METIN,
Az meg mellékes most h 1-5 v 6-7, nem mondtam h számít, csak én éppenséggel a 6-7be raktam be.
De a item_attr_rare az a 6-7 bonuszként berakható bonuszok listályát és értékeit tartalmazza, de m1...
Idézetet írta: gife974 Dátum 2018-03-20, 15:50:01
1-5 bónusznak készül. Uitooltip nem hiszem, hogy hibás, hisz amikor manuálisan írom át a bónusz ID-t az item táblában, akkor a helyes bónuszt írja, csak az értéket sem adja hozzá, illetve, ha optolom, akkor jön ez a hiba.
Ez az amit magyarázok, szerveren jól van, indítóban is, kliensben is, ezért stimmel ha manuálisan beírod az ID-t.
Ebből látszik h a sorrend van elrontva a desingban a valuesnál.
Idézetet írta: udvatt108 Dátum 2018-03-20, 15:51:36
De a item_attr_rare az a 6-7 bonuszként berakható bonuszok listályát és értékeit tartalmazza, de m1...
Na neeeeeeeeeeeeeeee :O Most csak szivacc ugye??
(https://media1.giphy.com/media/aWPGuTlDqq2yc/giphy.gif)
Üzenet összefésülés: 2018-03-20, 16:01:31
De tessék:
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fwww.kepfeltoltes.eu%2Fimages%2Fhdd1%2F2018%2F03%2F20%2F696metin.png&hash=782c4002048c781f6488edfbd139eb90115c675c)
És igen, fel van cserélve mert lecopyztam mint kikeresgéljem azért van szörny metin helyett. :-X
Nekem ez azért nem stimmel, mert én akár hová tettem a mysql-ben az új bónuszaimat, akkor is megfelelően adta be a bonuszokat optolásnál. Tehát (nállam miért lenne máshogy másoknál) nem szabályozta a mysql-ben az hogy melyik sorba miután milyen bonuszt tettem, hiszen ott csak tájékoztato adatok vannak a szerver részére. Honnan tudom? Nállam van 8. Opt és külön item_attr_eightopt táblában van, hogy oda milyen bonuszokat tehet.
De bocsika, nem szeretnék beleszolni. xD
Én is csináltam már olyat új táblából, új rakóval/cserével stb.
De mint látod számít a sorrend.
Pati, próbáld ki, hogy megkatyvaszolod az item_attr táblád(biztonsági mentés után) és nézd meg, hogy úgy átpakolgatott sorrendel mit reagál a szervered Csak érdekel, mert mint irtam nállam változatlanul müködik minden függeltelül hogy milyen sorrendet alkot a táblám.
Esetleg ha sorrend érzékenység fennáll, akkor db-ben a ClientManagerBoot.cpp vagy most fejböl nem tudom biztosan, de vmelyik fájlban betölti az adatbázisból ezeket a tárgyakba tehető bonuszok listályát (item_attr, item_attr_rare) és elképzelhető, hogy azonosítót ellenőriz és párosít, ha így van akkor talán nincs ott megadva, vagy rossz sorrend. CSAK ÖTLET, ÍGY FEJBŐL ENNYIT TUDOK HOZÁFŰZNI.
Akk beszarik, de engem nem zavar ha sorrendben kell megadni.
Alapból így volt, nem piszkálom, jó így is.
Nah, akkor engedelmetekkel becsatlakoznék egy külsős félként, aki pártatlanul szemlélődik! :DIdézetet írta: 5310pati Dátum 2018-03-20, 15:44:39
Hát először is ez alap 1-5 bónusz nem a 6-7-é de m1
Igazság szerint amit másoltál, az valóban a 6-7-hez tartozik, nézd csak meg az utolsó sorát.
m_vec_itemRareTable.push_back(t);
De jelenleg valóban tökmindegy.
Az uitooltip.py-ben a bónuszok sorrendje tök mellékes, aki nem hiszi, járjon utána. :-X
Az item_attr-ben pedig csak az számít, hogy melyik bónusznak milyen értéke van (azaz táblaszerkesztőben a sorrend alapján, a szöveg is tök mellékes, csak nekünk segít), ezenkívül tök mindegy, hogy helyezkednek el a táblázatban, jól kell, hogy működjön.[spoiler]
Ez milyen tökös hozzászólás lett.. 8)[/spoiler]