Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

C++ Więcej niż 7 atrybutów w przedmiocie.


Rekomendowane odpowiedzi

Opublikowano

­Cześć.

 

 

~~~Zaczynamy od Common~~

 

1.Otwieramy common/item_length.h i szukamy :

ITEM_ATTRIBUTE_MAX_NUM  = 7,

Zamieniamy "7" na "9".

 

 

~~~Game~~~

 

1.Otwieramy game/item_manager.h i szukamy:

const static int MAX_RARE_ATTR_NUM = 2;

Zamieniamy "2" na "4".

 

2.Otwieramy game/item_attribute.cpp i szukamy :

int CItem::GetRareAttrCount()

Edytujemy to:

int CItem::GetRareAttrCount()
{
	int ret = 0;

	if (m_aAttr[5].bType != 0)
		ret++;

	if (m_aAttr[6].bType != 0)
		ret++;

	return ret;
}

w taki sposób:

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;
}

2.1. Teraz szukamy:

bool CItem::AddRareAttribute()

Zamieniamy "2" na "4" tutaj:

	if (count >= 2)
		return false;

~~~DB~~~

 

1.Otwieramy db/AuctionManager.cpp i szukamy:

void AuctionManager::LoadAuctionItem()

I dopisujemy do tego:

void AuctionManager::LoadAuctionItem()
{
	char szQuery[512];
	snprintf(szQuery, sizeof(szQuery), 
		"SELECT id,	owner_id, count, vnum, socket0, socket1, socket2, "
		"attrtype0, attrvalue0, "
		"attrtype1, attrvalue1, "
		"attrtype2, attrvalue2, "
		"attrtype3, attrvalue3, "
		"attrtype4, attrvalue4, "
		"attrtype5, attrvalue5, "
		"attrtype6, attrvalue6  "

"attrtype7, attrvalue7 " i "attrtype8, attrvalue8 "

 

2.Otwieramy db/cache.cpp i szukamy :

attrtype4, attrvalue4, attrtype5, attrvalue5, attrtype6, attrvalue6");

Edytujemy to w taki sposób:

					", attrtype4, attrvalue4, attrtype5, attrvalue5, attrtype6, attrvalue6, attrtype7, attrvalue7"
					", attrtype8, attrvalue8");

Aby dorównać attrtype 7 i 8 do tych dwóch wpisów.

 

2.1. Poniżej mamy taki kod:

", %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d",

Zamieniamy na:

", %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d",

2.2. Poniżej mamy taki kod:

					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);

Zamieniamy go na taki:

					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);

2.3. Tuż poniżej jest coś takiego:

					", 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);

To też zamieniamy na :

					", 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);

3. Otwieramy db/ClientManager.cpp i szukamy:

"SELECT id, window+0, pos, count, vnum, socket0, socket1, socket2, "

Do tej części kodu:

				"attrtype0, attrvalue0, "
				"attrtype1, attrvalue1, "
				"attrtype2, attrvalue2, "
				"attrtype3, attrvalue3, "
				"attrtype4, attrvalue4, "
				"attrtype5, attrvalue5, "
				"attrtype6, attrvalue6 "

Dopisujemy value7 i value8 w ten sposób:

				"attrtype0, attrvalue0, "
				"attrtype1, attrvalue1, "
				"attrtype2, attrvalue2, "
				"attrtype3, attrvalue3, "
				"attrtype4, attrvalue4, "
				"attrtype5, attrvalue5, "
				"attrtype6, attrvalue6, "
				"attrtype7, attrvalue7, "
				"attrtype8, attrvalue8 "

3.1. Szukamy:

"REPLACE INTO item%s (id, owner_id, window, pos, count, vnum, socket0, socket1, socket2, "

Tutaj również dopisujemy value 7 i 8.

			"attrtype0, attrvalue0, "
			"attrtype1, attrvalue1, "
			"attrtype2, attrvalue2, "
			"attrtype3, attrvalue3, "
			"attrtype4, attrvalue4, "
			"attrtype5, attrvalue5, "
			"attrtype6, attrvalue6) "

W taki sposób:

			"attrtype0, attrvalue0, "
			"attrtype1, attrvalue1, "
			"attrtype2, attrvalue2, "
			"attrtype3, attrvalue3, "
			"attrtype4, attrvalue4, "
			"attrtype5, attrvalue5, "
			"attrtype6, attrvalue6, "
			"attrtype7, attrvalue7, "
			"attrtype8, attrvalue8) "

3.2.Poniżej mamy:

"VALUES(%u, %u, %d, %d, %u, %u, %ld, %ld, %ld, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d)",

Zamieniamy na :

"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)",

3.3. Poniżej mamy:

			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);

Zamieniamy to na :

			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);

4. Otwieramy db/ClientManagerPlayer.cpp i szukamy:

"SELECT id,window+0,pos,count,vnum,socket0,socket1,socket2,attrtype0,attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,attrtype3,attrvalue3,attrtype4,attrvalue4,attrtype5,attrvalue5,attrtype6,attrvalue6 "

Zamieniamy na :

"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 "

~~~Binka~~~

1. Otwieramy UserInterface/GameType.h i szukamy:

ITEM_ATTRIBUTE_SLOT_MAX_NUM = 7,

Zamieniamy "7" na "9".

 

~~~MySQL~~~

 

1.Edytujemy design table tabelki Item@player.

Musimy dodać pola poprzez "AddField" z attrtype7/8 i attrvalue7/8.

 

 

 

 

Opublikowano

A tak zapytam z ciekawości? Czy ktoś by grał na serwerze na którym jest 99999 bonów? bo z tego co wiem ludzie nie chca grac na serwerach gdzie jest 6/7b

A co do tuta jak najbardziej OK.

33748387117269464751.png

Opublikowano

@KizioRCK1

A właściwie dlaczego ludzie mają taki zły stosunek do 6/7 bonu?

Jedyną racjonalną odpowiedzią, jest, że zwykle są w IS oraz dodają spore wartości bonusów, ale i tak, tego nie rozumiem, bo ktoś doda coś innego (z dopiskiem NOWOŚĆ), która dodaję w c**j bonusów i wtedy serwer

jest z*******y, bo ma same nowości. xD xD

 

@topic

Dobry poradnik.

Opublikowano

@KizioRCK1

A właściwie dlaczego ludzie mają taki zły stosunek do 6/7 bonu?

Jedyną racjonalną odpowiedzią, jest, że zwykle są w IS oraz dodają spore wartości bonusów, ale i tak, tego nie rozumiem, bo ktoś doda coś innego (z dopiskiem NOWOŚĆ), która dodaję w c**j bonusów i wtedy serwer

jest z*******y, bo ma same nowości. xD xD

 

@topic

Dobry poradnik.

Dlatego, że powstały takie serwery jak pandora i inne tego samego typu, gdzie mogłeś sobie zrobić tylko 6/7 bon w eq bez 1-5 i byłeś już koxem... Oczywiście jest to sam plus posiadania 8-10 bonusów w danym przedmiocie, ale to jest takie złe! 

Azraelka dająca 400 defa i 20 abs do pż jest spoko, ale kolce full abs 15% na miecze/2hand/arrow/dagger/bell/fan jest bardzo zły! Psuje rozgrywkę !

­

Opublikowano

W sumie ja ciągle kombinuję z tym 6-7, aby zlikwidować 7 a 6 podpiąć pod 'zwykłe bony'

Przyda mi się takie coś na likana

 

A co do poradnika, to ciekawy, niektórym na easy się przyda :P

Opublikowano

Nie jest to chyba takie trudne, wystarczy zmienić use_add_attribute i attribute2 w char_item, ale nie jestem pewien do końca.

  • 2 tygodnie później...
Opublikowano

Poniższe zdjęcia prawidłowo

 

 

MEZBD6.jpg

 

I umieścić je w sklepie

 

3DVl64.jpg

 

Ten miecz stał repozytorium

 

3DVl3M.jpg

 

 

posiada wiedzę o pomyłkę ??

 

Opublikowano

Teraz.. Mam takie pytanko, ponieważ jeśli bym nie chciał żeby te bony zmieniało się 6/7 bonem, tylko 1/5 bonem czyli tym zwykłym, standardowo jest max. 5 a ja np: chciałbym wprowadzić by było ich 8, to co bym musiał zmienić? :)

image.png

Opublikowano

­

 

Nie kłam, nie masz go dokończonego.

Dom aukcyjny jest jak twój system sklepów offline;

niedokończony i zbugowany :D  :D  :D  :D  :D

 

Jeżeli będziesz miał albo pytanie albo ból dupy to:

 

Brakuje tutaj kilku bonusów...

APPLY_BLEEDING_PCT,
APPLY_BLEEDING_REDUCE,
APPLY_ATTBONUS_WOLFMAN,
APPLY_RESIST_WOLFMAN,
APPLY_RESIST_CLAW

Mógłby mi ktoś wytłumaczyć od czego one są?

Te bonusy są od Likana, 
Szansa na krwawienie,
odpornosc na krwawienie,
silny przeciwko wilkom,
odpornosc na wilki
odpronosc na szpony,
 
Nie zapomnijmy również o tym, że to Ty masz "serwer" z Likanem, na który pewno wydałeś 250 ełrosów + shop offline xD
Czemu również miałbym kłamać ? Mam i tyle, a co? Chcesz kupić ? :D
Opublikowano

 

­

 

Dom aukcyjny jest jak twój system sklepów offline;

niedokończony i zbugowany :D  :D  :D  :D  :D

 

Jeżeli będziesz miał albo pytanie albo ból dupy to:

 
Te bonusy są od Likana, 
Szansa na krwawienie,
odpornosc na krwawienie,
silny przeciwko wilkom,
odpornosc na wilki
odpronosc na szpony,
 
Nie zapomnijmy również o tym, że to Ty masz "serwer" z Likanem, na który pewno wydałeś 250 ełrosów + shop offline xD
Czemu również miałbym kłamać ? Mam i tyle, a co? Chcesz kupić ? :D

 

 

Likana kupiliśmy za 350 eurosów bo ten na devie jest zbugowany.

Sklepy offline 2 razy tyle, bo niemiecka jakość.

No i kupiliśmy jeszcze system, który pozwala odróżnić głupotę od ironii, jak chcesz to mogę dać kontakt do sprzedawcy, również Niemiec.

1977114309277781373321.png


 


Protected by system-dev


GG: 28952858

Opublikowano

Likana kupiliśmy za 350 eurosów bo ten na devie jest zbugowany.

Sklepy offline 2 razy tyle, bo niemiecka jakość.

No i kupiliśmy jeszcze system, który pozwala odróżnić głupotę od ironii, jak chcesz to mogę dać kontakt do sprzedawcy, również Niemiec.

 

Hehe, niemiecka jakość ?xD 350 eurosów za likana który pewno też jest bugnięty? Już lepiej wzorować się na src dev_wolf_branch i później główkować jak odbugować

poszczególne elementy... A nie, ktoś wam kopiuje likana, a Ty sobie siedzisz na forum  i zgrywasz nie wiadomo kogo... Sklepy offline za 700 euro, aha. Kłamiesz albo jesteś po prostu idiotom -.-

 

­

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...