[SRC] Optok növelése

Indította 5310pati, 2015-05-17, 13:42:46

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

aki nem látná: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.