Régebben már kerestek fel páran skypeon, és ahogy látom itt is van 1-2 érdeklődő ez iránt, és végül úgy döntöttem, hogy leírom.
Ez szerintem egyértelmű, de leírom, hogy mentést csináljatok.
szerver oldal:
common/item_length.h
ITEM_ATTRIBUTE_MAX_NUM = 7,
írjátok át amennyi optot szeretnétek.
pl:
ITEM_ATTRIBUTE_MAX_NUM = 9,
game/item_manager.h
const static int MAX_RARE_ATTR_NUM = 2;
amennyivel növeltétek az előző értéket itt szintén növeljétek annyival
pl:
const static int MAX_RARE_ATTR_NUM = 4;
game/item_attribute.cpp
keressetek rá
int CItem::GetRareAttrCount()
majd az alatta lévő feltétel annyiszor másoljátok le, amennyivel több bónuszt szeretnétek
az attr utáni szögletes zárójelben lévő számot pedig 1-gyel növeljétek mindig
a példámban 2-vel növelem tehát nekem így néz ki:
int CItem::GetRareAttrCount()
{
int ret = 0;
if (m_aAttr[5].bType != 0)
ret++;
if (m_aAttr[6].bType != 0)
ret++;
if (m_aAttr[7].bType != 0)
ret++;
if (m_aAttr[8].bType != 0)
ret++;
return ret;
}
majd keressetek rá
bool CItem::AddRareAttribute()
az alatta lévő feltételben szereplő értéket szintén növeljétek
if (count >= 2)
return false;
pl:
if (count >= 4)
return false;
db/AuctionManager.cpp
keressetek rá
void AuctionManager::LoadAuctionItem()
és az alatta található attrtype-value párból másoljatok le annyit amennyivel növeltétek, de az utolsó attrvalue végén ne legyen vessző(,)
pl:
"attrtype0, attrvalue0, "
"attrtype1, attrvalue1, "
"attrtype2, attrvalue2, "
"attrtype3, attrvalue3, "
"attrtype4, attrvalue4, "
"attrtype5, attrvalue5, "
"attrtype6, attrvalue6, "
"attrtype7, attrvalue7, "
"attrtype8, attrvalue8 "
db/cache.cpp
keressetek rá
", attrtype4, attrvalue4, attrtype5, attrvalue5, attrtype6, attrvalue6");
itt szintén írjatok hozzá annyi attrtype-value párt amennyivel növeltétek, de a tördelésre figyeljetek, 1 sorban 4 opt legyen
nekem pl:
", attrtype4, attrvalue4, attrtype5, attrvalue5, attrtype6, attrvalue6, attrtype7, attrvalue7"
", attrtype8, attrvalue8");
ez alatt pár sorral van ez
", %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d",
itt írjatok hozzá 2x annyi %d-t amennyivel növeltétek az optokat, type-value miatt kell 2x annyi
pl én 2-vel növeltem ezért 4-et írok hozzá:
", %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d",
ez alatt szintén írjatok hozzá annyi attr párt amennyivel növeltétek, a szögletes zárójelben lévő számot itt is növelni kell, és itt az utolsó után kell ");"
tehát így nézzen ki
p->aAttr[0].bType, p->aAttr[0].sValue,
p->aAttr[1].bType, p->aAttr[1].sValue,
p->aAttr[2].bType, p->aAttr[2].sValue,
p->aAttr[3].bType, p->aAttr[3].sValue,
p->aAttr[4].bType, p->aAttr[4].sValue,
p->aAttr[5].bType, p->aAttr[5].sValue,
p->aAttr[6].bType, p->aAttr[6].sValue,
p->aAttr[7].bType, p->aAttr[7].sValue,
p->aAttr[8].bType, p->aAttr[8].sValue);
ez alatt még két helyen kell ugyanígy hozzáírni attr párokat, közvetlen egymás alatt vannak
itt is figyelni kell, hogy az utolsó után legyen csak , és ");"
az alap:
", attrtype0=%d, attrvalue0=%d"
", attrtype1=%d, attrvalue1=%d"
", attrtype2=%d, attrvalue2=%d"
", attrtype3=%d, attrvalue3=%d"
", attrtype4=%d, attrvalue4=%d"
", attrtype5=%d, attrvalue5=%d"
", attrtype6=%d, attrvalue6=%d",
p->aAttr[0].bType, p->aAttr[0].sValue,
p->aAttr[1].bType, p->aAttr[1].sValue,
p->aAttr[2].bType, p->aAttr[2].sValue,
p->aAttr[3].bType, p->aAttr[3].sValue,
p->aAttr[4].bType, p->aAttr[4].sValue,
p->aAttr[5].bType, p->aAttr[5].sValue,
p->aAttr[6].bType, p->aAttr[6].sValue);
és növelve:
", attrtype0=%d, attrvalue0=%d"
", attrtype1=%d, attrvalue1=%d"
", attrtype2=%d, attrvalue2=%d"
", attrtype3=%d, attrvalue3=%d"
", attrtype4=%d, attrvalue4=%d"
", attrtype5=%d, attrvalue5=%d"
", attrtype6=%d, attrvalue6=%d"
", attrtype7=%d, attrvalue7=%d"
", attrtype8=%d, attrvalue8=%d",
p->aAttr[0].bType, p->aAttr[0].sValue,
p->aAttr[1].bType, p->aAttr[1].sValue,
p->aAttr[2].bType, p->aAttr[2].sValue,
p->aAttr[3].bType, p->aAttr[3].sValue,
p->aAttr[4].bType, p->aAttr[4].sValue,
p->aAttr[5].bType, p->aAttr[5].sValue,
p->aAttr[6].bType, p->aAttr[6].sValue,
p->aAttr[7].bType, p->aAttr[7].sValue,
p->aAttr[8].bType, p->aAttr[8].sValue);
db/ClientManager.cpp
keressetek rá
"SELECT id, window+0, pos, count, vnum, socket0, socket1, socket2, "
ez alatt szintén írjatok hozzá attr párokat, de az utolsó után ne legyen vessző (,)
"attrtype0, attrvalue0, "
"attrtype1, attrvalue1, "
"attrtype2, attrvalue2, "
"attrtype3, attrvalue3, "
"attrtype4, attrvalue4, "
"attrtype5, attrvalue5, "
"attrtype6, attrvalue6 "
pl:
"attrtype0, attrvalue0, "
"attrtype1, attrvalue1, "
"attrtype2, attrvalue2, "
"attrtype3, attrvalue3, "
"attrtype4, attrvalue4, "
"attrtype5, attrvalue5, "
"attrtype6, attrvalue6, "
"attrtype7, attrvalue7, "
"attrtype8, attrvalue8 "
majd keressetek rá
"REPLACE INTO item%s (id, owner_id, window, pos, count, vnum, socket0, socket1, socket2, "
ez azatt 2 helyen kell hozzáírni attr párokat, valamint %d-t
"attrtype0, attrvalue0, "
"attrtype1, attrvalue1, "
"attrtype2, attrvalue2, "
"attrtype3, attrvalue3, "
"attrtype4, attrvalue4, "
"attrtype5, attrvalue5, "
"attrtype6, attrvalue6) "
pl:
"attrtype0, attrvalue0, "
"attrtype1, attrvalue1, "
"attrtype2, attrvalue2, "
"attrtype3, attrvalue3, "
"attrtype4, attrvalue4, "
"attrtype5, attrvalue5, "
"attrtype6, attrvalue6, "
"attrtype7, attrvalue7, "
"attrtype8, attrvalue8) "
"VALUES(%u, %u, %d, %d, %u, %u, %ld, %ld, %ld, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d)",
pl:
"VALUES(%u, %u, %d, %d, %u, %u, %ld, %ld, %ld, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d)",
p->aAttr[0].bType, p->aAttr[0].sValue,
p->aAttr[1].bType, p->aAttr[1].sValue,
p->aAttr[2].bType, p->aAttr[2].sValue,
p->aAttr[3].bType, p->aAttr[3].sValue,
p->aAttr[4].bType, p->aAttr[4].sValue,
p->aAttr[5].bType, p->aAttr[5].sValue,
p->aAttr[6].bType, p->aAttr[6].sValue);
pl:
p->aAttr[0].bType, p->aAttr[0].sValue,
p->aAttr[1].bType, p->aAttr[1].sValue,
p->aAttr[2].bType, p->aAttr[2].sValue,
p->aAttr[3].bType, p->aAttr[3].sValue,
p->aAttr[4].bType, p->aAttr[4].sValue,
p->aAttr[5].bType, p->aAttr[5].sValue,
p->aAttr[6].bType, p->aAttr[6].sValue,
p->aAttr[7].bType, p->aAttr[7].sValue,
p->aAttr[8].bType, p->aAttr[8].sValue);
és az utolsó fájl szerver oldalon
db/ClientManagerPlayer.cpp
keressetek rá
"SELECT id,window+0,pos,count,vnum,socket0,socket1,socket2,attrtype0,attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,attrtype3,attrvalue3,attrtype4,attrvalue4,attrtype5,attrvalue5,attrtype6,attrvalue6 "
ebből 2-t fogtok találni, és értelem szerűen, mind a 2 helyen írjatok hozzá attr párt, itt is figyelni a végződésre, ami egy szóköz
pl:
"SELECT id,window+0,pos,count,vnum,socket0,socket1,socket2,attrtype0,attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,attrtype3,attrvalue3,attrtype4,attrvalue4,attrtype5,attrvalue5,attrtype6,attrvalue6,attrtype7,attrvalue7,attrtype8,attrvalue8 "
kliens oldal:
UserInterface/GameType.h
keressetek rá
ITEM_ATTRIBUTE_SLOT_MAX_NUM = 7,
és írjátok át annyira mennyi optot szeretnétek
pl:
ITEM_ATTRIBUTE_SLOT_MAX_NUM = 9,
ezzel kész is van a forrás rész
utolsó lépésként, adatbázisban adjatok hozzá a player.item táblához attr párokat
Jobb klikk a táblán és Design Table
majd Add Field gombbal tudtok új sort hozzáadni
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fkepfeltoltes.hu%2F150517%2Foptok_www.kepfeltoltes.hu_.png&hash=51b9d232e992c61a86491b571d0cfc0a878bbe7f)
aki nem látná:http://kepfeltoltes.hu/150517/optok_www.kepfeltoltes.hu_.png (http://kepfeltoltes.hu/150517/optok_www.kepfeltoltes.hu_.png)
És ezzel kész is vannak az optok.
Ez a kép nem a leírás után készült, hanem még régebben próbálgattam, új optolót stb, és még akkor készült, csak példaként mutatom, és ennek eredménye, hogy több harcos elleni van valamint nem 9 hanem 12 opt.
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fkepfeltoltes.hu%2F150517%2Foptok2_www.kepfeltoltes.hu_.jpg&hash=46035c60db14afa489c42649fc56763661fe5056)