[Intrebare + Rezolvare]: Cum adaug bonusurile 6/7 pe server?

Înainte de a posta o problemă, caută în acest forum și poate găsești rezolvare.
Închis
Avatar utilizator
misura123
Nivel 3

Nivel 3
Mesaje: 301
Membru din: 13 Mar 2014, 18:46
Server: Karios2
Regat: Shinsoo
Aprecieri: 185  
Mulţumiri: 9  
Discord: Copiază ID
Medalii

*Problemă/Întrebare: Salut! Cum adaug bonusurile 6/7 pe server? In item_proto nu le am, nici in navicat la item_attr_rare. Deci cred ca trebuie implementate de la zero. :-?
Tipologie server:
*Resursă folosită:
*ServerFiles utilizat:
*Syserr:
Poză:
*Detalii suplimentare: Serverul meu citeste .txt, nu .sql.
Ultima oară modificat 20 Mar 2020, 01:23 de către misura123, modificat 1 dată în total.
Talk is cheap.
Show me the code.
Afișează semnătura
Avatar utilizator
misura123
Nivel 3

Nivel 3
Mesaje: 301
Membru din: 13 Mar 2014, 18:46
Server: Karios2
Regat: Shinsoo
Aprecieri: 185  
Mulţumiri: 9  
Discord: Copiază ID
Medalii

Am rezolvat cu ajutorul lui Syron. Big like!
Se poate inchide topicul. Multumesc!
Talk is cheap.
Show me the code.
Afișează semnătura
Avatar utilizator
Ionuţ M.
Metin Master

Metin Master
Mesaje: 2680
Membru din: 28 Noi 2015, 22:02
Aprecieri: 170  
Mulţumiri: 12723  
  Rezolvări prob.: 2
Discord: Copiază ID
 Contact:
Medalii

misura123 scrie: ↑19 Mar 2020, 23:43 Am rezolvat cu ajutorul lui Syron. Big like!
Se poate inchide topicul. Multumesc!
Frumos ar fii sa postezi si cum ai rezolvat ca poate mai sunt persoane care vor sa adauge 6/7 si nu stiu cum.
Imagine
Afișează semnătura
Avatar utilizator
misura123
Nivel 3

Nivel 3
Mesaje: 301
Membru din: 13 Mar 2014, 18:46
Server: Karios2
Regat: Shinsoo
Aprecieri: 185  
Mulţumiri: 9  
Discord: Copiază ID
Medalii

Ionuţ M. scrie: ↑19 Mar 2020, 23:57 Frumos ar fii sa postezi si cum ai rezolvat ca poate mai sunt persoane care vor sa adauge 6/7 si nu stiu cum.
Ok, am sa postez si rezolvarea :ymhug: . Nu inchide topicul inca, te rog :)
Talk is cheap.
Show me the code.
Afișează semnătura
Avatar utilizator
misura123
Nivel 3

Nivel 3
Mesaje: 301
Membru din: 13 Mar 2014, 18:46
Server: Karios2
Regat: Shinsoo
Aprecieri: 185  
Mulţumiri: 9  
Discord: Copiază ID
Medalii

Rezolvarea: IMPORTANT: Aveti nevoie de sursa pentru acest tutorial!

Acesta este item_proto client:

Cod: Selectaţi tot

	<ItemDef Vnum="71052" Name="Vrajeste Obiectul 6/7" LocalizedName="Vrajeste Obiectul 6/7" Type="3" SubType="10" Weight="0" Size="1" AntiFlags="33152" Flags="24576" WearFlags="0" ImmuneFlags="0" Gold="1000000" ShopBuyPrice="0" LimitType0="0" LimitValue0="0" LimitType1="0" LimitValue1="0" ApplyType0="0" ApplyValue0="0" ApplyType1="0" ApplyValue1="0" ApplyType2="0" ApplyValue2="0" Value0="0" Value1="0" Value2="0" Value3="0" Value4="0" Value5="0" Socket0="0" Socket1="0" Socket2="0" RefinedVnum="0" RefineSet="0" AlterToMagicItemPercent="0" Specular="0" GainSocketPercent="0" AddonType="0"  />
	<ItemDef Vnum="71051" Name="Intarirea Obiectului 6/7" LocalizedName="Intarirea Obiectului 6/7" Type="3" SubType="10" Weight="0" Size="1" AntiFlags="33152" Flags="24576" WearFlags="0" ImmuneFlags="0" Gold="1000000" ShopBuyPrice="0" LimitType0="0" LimitValue0="0" LimitType1="0" LimitValue1="0" ApplyType0="0" ApplyValue0="0" ApplyType1="0" ApplyValue1="0" ApplyType2="0" ApplyValue2="0" Value0="0" Value1="0" Value2="0" Value3="0" Value4="0" Value5="0" Socket0="0" Socket1="0" Socket2="0" RefinedVnum="0" RefineSet="0" AlterToMagicItemPercent="0" Specular="0" GainSocketPercent="0" AddonType="0"  />
Depinde acum cu ce lucrati: item_proto.txt sau item_proto.sql

Pentru item_proto.txt:
1) Adaugati aceste 2 linii, jos de tot in item_proto.txt (locatie: /usr/game/server/db_auth/db)

Cod: Selectaţi tot

71052	Vrajeste Obiectul 6/7	ITEM_USE	USE_SPECIAL	1	ANTI_STACK | ANTI_SELL | ANTI_DROP	STACKABLE | LOG	NONE	NONE	1000000	0	0	0	0	LIMIT_NONE	0	LIMIT_NONE	0	APPLY_NONE	0	APPLY_NONE	0	APPLY_NONE	0	0	0	0	0	0	0	0	0	0
71051	Intarirea Obiectului 6/7	ITEM_USE	USE_SPECIAL	1	ANTI_STACK | ANTI_SELL | ANTI_DROP	STACKABLE | LOG	NONE	NONE	1000000	0	0	0	0	LIMIT_NONE	0	LIMIT_NONE	0	APPLY_NONE	0	APPLY_NONE	0	APPLY_NONE	0	0	0	0	0	0	0	0	0	0
2) Adaugati aceste 2 linii, jos de tot in item_names.txt (locatie: /usr/game/server/db_auth/db)

Cod: Selectaţi tot

71052	Vrajeste Obiectul 6/7
71051	Intarirea Obiectului 6/7
3) Salvati cele 2 fisier tocmai editate (item_proto.txt si item_names.txt)
4) Le transformati in item_proto pentru client cu acest program:
https://mega.nz/#!l4A2gApD!9f3y-FnoqLSz ... kpDhJd7mcQ
5) Puneti item_proto in locale_ro/de client, impachetati si transpuneti locale_ro/de in folderul pack.

Pentru item_proto.sql:
1) Mergeti in Navicat->player->item_proto si folositi combinatia de taste: CTRL+Q
2) Introduceti aceste 2 linii:

Cod: Selectaţi tot

INSERT INTO `item_proto` VALUES ('71051', 0xF2D8A1A4C0E7B0A1BAF1BCAD202020202020202020202020, 0xA873B7A5C4DDA9CAB06CA55BAFB5D3442020202020202020, '3', '10', '0', '1', '33152', '24576', '0', '', '3000000', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '-1', '-1', '-1', '-1', '-1', '-1', '0', '0', '0');
INSERT INTO `item_proto` VALUES ('71052', 0xF2D8A1A4C0E7B0E6BAF1BCAD202020202020202020202020, 0xA873B7A5C4DDA9CAC2E0B4ABAFB5D3442020202020202020, '3', '10', '0', '1', '33152', '24576', '0', '', '500000', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '-1', '-1', '-1', '-1', '-1', '-1', '0', '0', '0');
3) Si dati run sau ceva, nu mai stiu exact cum e pe Navicat :-?
4) Apoi trebuie sa adaugati aceste 2 linii la sfarsit in item_proto client:

Cod: Selectaţi tot

	<ItemDef Vnum="71052" Name="Vrajeste Obiectul 6/7" LocalizedName="Vrajeste Obiectul 6/7" Type="3" SubType="10" Weight="0" Size="1" AntiFlags="33152" Flags="24576" WearFlags="0" ImmuneFlags="0" Gold="1000000" ShopBuyPrice="0" LimitType0="0" LimitValue0="0" LimitType1="0" LimitValue1="0" ApplyType0="0" ApplyValue0="0" ApplyType1="0" ApplyValue1="0" ApplyType2="0" ApplyValue2="0" Value0="0" Value1="0" Value2="0" Value3="0" Value4="0" Value5="0" Socket0="0" Socket1="0" Socket2="0" RefinedVnum="0" RefineSet="0" AlterToMagicItemPercent="0" Specular="0" GainSocketPercent="0" AddonType="0"  />
	<ItemDef Vnum="71051" Name="Intarirea Obiectului 6/7" LocalizedName="Intarirea Obiectului 6/7" Type="3" SubType="10" Weight="0" Size="1" AntiFlags="33152" Flags="24576" WearFlags="0" ImmuneFlags="0" Gold="1000000" ShopBuyPrice="0" LimitType0="0" LimitValue0="0" LimitType1="0" LimitValue1="0" ApplyType0="0" ApplyValue0="0" ApplyType1="0" ApplyValue1="0" ApplyType2="0" ApplyValue2="0" Value0="0" Value1="0" Value2="0" Value3="0" Value4="0" Value5="0" Socket0="0" Socket1="0" Socket2="0" RefinedVnum="0" RefineSet="0" AlterToMagicItemPercent="0" Specular="0" GainSocketPercent="0" AddonType="0"  />
5) Criptati si inlocuiti fisierele noi cu cele vechi din pack.

Acum, partea de sursa.
1) Mergeti in /usr/src/nume_folder_care_contine_sursa/game/src
2) Cautati fisierul char_item.cpp
3) Cautati aceste 2 case-uri:

Cod: Selectaţi tot

							case 71051 : // 진재가
								{
									// 유럽, 싱가폴, 베트남 진재가 사용금지
									// if (LC_IsEurope() || LC_IsSingapore() || LC_IsVietnam())
										// return false;

									LPITEM item2;

									if (!IsValidItemPosition(DestCell) || !(item2 = GetInventoryItem(wDestCell)))
										return false;

									if (item2->IsExchanging() == true)
										return false;

									if (item2->GetAttributeSetIndex() == -1)
									{
										ChatPacket(CHAT_TYPE_INFO, LC_TEXT("속성을 변경할 수 없는 아이템입니다."));
										return false;
									}

									if (item2->AddRareAttribute() == true)
									{
										ChatPacket(CHAT_TYPE_INFO, LC_TEXT("성공적으로 속성이 추가 되었습니다"));

										int iAddedIdx = item2->GetRareAttrCount() + 4;
										char buf[21];
										snprintf(buf, sizeof(buf), "%u", item2->GetID());

										LogManager::instance().ItemLog(
												GetPlayerID(),
												item2->GetAttributeType(iAddedIdx),
												item2->GetAttributeValue(iAddedIdx),
												item->GetID(),
												"ADD_RARE_ATTR",
												buf,
												GetDesc()->GetHostName(),
												item->GetOriginalVnum());

										item->SetCount(item->GetCount() - 1);
									}
									else
									{
										ChatPacket(CHAT_TYPE_INFO, LC_TEXT("더 이상 이 아이템으로 속성을 추가할 수 없습니다"));
									}
								}
								break;

							case 71052 : // 진재경
								{
									// 유럽, 싱가폴, 베트남 진재가 사용금지
									// if (LC_IsEurope() || LC_IsSingapore() || LC_IsVietnam())
										// return false;

									LPITEM item2;

									if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell)))
										return false;

									if (item2->IsExchanging() == true)
										return false;

									if (item2->GetAttributeSetIndex() == -1)
									{
										ChatPacket(CHAT_TYPE_INFO, LC_TEXT("속성을 변경할 수 없는 아이템입니다."));
										return false;
									}

									if (item2->ChangeRareAttribute() == true)
									{
										char buf[21];
										snprintf(buf, sizeof(buf), "%u", item2->GetID());
										LogManager::instance().ItemLog(this, item, "CHANGE_RARE_ATTR", buf);

										item->SetCount(item->GetCount() - 1);
									}
									else
									{
										ChatPacket(CHAT_TYPE_INFO, LC_TEXT("변경 시킬 속성이 없습니다"));
									}
								}
								break;
4) Cautati aceste 2 linii la ambele case-uri, dupa care comentati-le (la mine sunt gata comentate):

Cod: Selectaţi tot

if (LC_IsEurope() || LC_IsSingapore() || LC_IsVietnam())
										return false;
5) Salvati, apoi compilati sursa game, inlocuiti game-ul nou cu game-ul vechi si acum totul ar trebuii sa mearga. La mine a functionat. Sper ca v-am fost de folos, a fost primul tutorial pe care l-am facut vreodata O:-)
Pentru acest mesaj, misura123 for the post:
Asky
Talk is cheap.
Show me the code.
Afișează semnătura
Avatar utilizator
Găbiță. Z.
Nivel 6

Nivel 6
Mesaje: 1045
Membru din: 24 Oct 2015, 19:02
Server: Ranos2
Regat: Jinno
Aprecieri: 635  
Mulţumiri: 1266  
Discord: Copiază ID
Medalii

Problema rezolvata / A adaugat si rezolvarea! - arhivat
Închis
Răspunsuri
5
Vizualizări
562
Răspunsuri
3
Vizualizări
314
Răspunsuri
4
Vizualizări
467
Răspunsuri
10
Vizualizări
725

Înapoi la “Probleme rezolvate”

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 17 vizitatori