[C++] [TUTORIAL] Sistem bonusuri pe costume

Închis
Neconectat
Avatar utilizator
Lehel
Super Moderator

Super Moderator
Mesaje: 1478
Membru din: 21 Aug 2013
Localitate: Cluj-Napoca
Reputație: ► Super Moderator
---------------------------------------
► Fost Lider Helperi
► Fost Super Ad Moderator
► Fost Ad Moderator
► Fost Moderator
► Fost Helper
---------------------------------------
Regat: Jinno
Mulţumiri acordate: 33  
Mulţumiri primite: 27  
Contact:

[C++] [TUTORIAL] Sistem bonusuri pe costume

Mesaj de Lehel » 05 Sep 2015, 11:26

*** ACEST SISTEM ESTE POSTAT EXCLUSIV PENTRU JUST4METIN ***
Salutare , m-am decis să postez şi Sistemul De Bonusuri pentru Costume.
Sistemul este făcut de mine deci dacă apare altundeva măcar să apară cu credite.

Cum arată sistemul?
Trebuie să fii logat sau înregistrat pentru a vedea acest link.
Server part - Source
Intraţi în common/item_length.h şi căutaţi:

Cod: Selectaţi tot

USE_PUT_INTO_RING_SOCKET,
Adăugaţi sub:

Cod: Selectaţi tot

	USE_COSTUME_CHANGE_ATTRIBUTE,
	USE_COSTUME_ADD_ATTRIBUTE,
Acum intraţi în game/src/char_item.cpp şi căutaţi:

Cod: Selectaţi tot

					case USE_TUNING:
					case USE_DETACHMENT:
						{
							LPITEM item2;

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

							if (item2->IsExchanging())
								return false;
	
							if (item2->IsEquipped())
                                return false;

							if (item2->GetVnum() >= 28330 && item2->GetVnum() <= 28343) // ??+3
							{
								ChatPacket(CHAT_TYPE_INFO, LC_TEXT("+3 ??? ? ????? ??? ? ????"));
								return false;
							}

							if (item->GetValue(0) == ACCE_CLEAN_ATTR)
							{
								CleanAcceAttr(item, item2);
							}

							if (item2->GetVnum() >= 28430 && item2->GetVnum() <= 28443)  // ??+4
							{
								if (item->GetVnum() == 71056) // ?????
								{
									RefineItem(item, item2);
								}
								else
								{
									ChatPacket(CHAT_TYPE_INFO, LC_TEXT("??? ? ????? ??? ? ????"));
								}
							}
							else
							{
								RefineItem(item, item2);
							}
						}
						break;
Adăugaţi sub:

Cod: Selectaţi tot

					// COSTUMEATTR
					case USE_COSTUME_CHANGE_ATTRIBUTE:
					case USE_COSTUME_ADD_ATTRIBUTE:
						{
							LPITEM item2;
							if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell)))
								return false;

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

							if (item2->IsEquipped())
								return false;

							if (ITEM_WEAPON == item2->GetType() || ITEM_ARMOR  == item2->GetType() || COSTUME_HAIR == item2->GetSubType())
							{
								ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Poti folosi aceste bonusuri doar pe costume."));
								return false;
							}

							switch (item->GetSubType())
							{
								case USE_COSTUME_ADD_ATTRIBUTE:
									if (item2->GetAttributeSetIndex() == -1)
									{
										ChatPacket(CHAT_TYPE_INFO, LC_TEXT("??? ??? ? ?? ??????."));
										return false;
									}

									if (item2->GetAttributeCount() < 3)
									{
										char buf[21];
										snprintf(buf, sizeof(buf), "%u", item2->GetID());

										item2->AddAttribute();
										ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Ai adaugat cu succes un bonus."));
										item->SetCount(item->GetCount() - 1);
									}
									else
									{
										ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Poti adauga doar 3 bonusuri pe costum."));
										break;
									}
									break;

								case USE_COSTUME_CHANGE_ATTRIBUTE:
									if (item2->GetAttributeSetIndex() == -1)
									{
										ChatPacket(CHAT_TYPE_INFO, LC_TEXT("??? ??? ? ?? ??????."));
									return false;
									}

									if (item2->GetAttributeCount() == 0)
									{
										ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Acest costum nu detine nici un bonus."));
										return false;
									}

									item2->ClearAttribute();
									item2->AlterToMagicItem();
									item->SetCount(item->GetCount() - 1);
									ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Tocmai ai schimbat un bonus."));
									break;
							}
						}
						break;
Acum intraţi în game/src/item.cpp şi căutaţi:

Cod: Selectaţi tot

			case ITEM_COSTUME:
			case ITEM_ARMOR:
				if (GetSubType() == ARMOR_BODY)
				{
					iSecondPct = 10;
					iThirdPct = 2;
				}
				else
				{
					iSecondPct = 10;
					iThirdPct = 1;
				}
				break;
Modificaţi cu:

Cod: Selectaţi tot

			case ITEM_COSTUME:
				iSecondPct = 50;
				iThirdPct = 40;
				break;

			case ITEM_ARMOR:
				if (GetSubType() == ARMOR_BODY)
				{
					iSecondPct = 10;
					iThirdPct = 2;
				}
				else
				{
					iSecondPct = 10;
					iThirdPct = 1;
				}
				break;
Acum căutaţi:

Cod: Selectaţi tot

			case ITEM_COSTUME:
			case ITEM_ARMOR:
				if (GetSubType() == ARMOR_BODY)
				{
					iSecondPct = 20;
					iThirdPct = 10;
				}
				else
				{
					iSecondPct = 10;
					iThirdPct = 5;
				}
				break;
Modificaţi cu :

Cod: Selectaţi tot

			case ITEM_COSTUME:
				iSecondPct = 50;
				iThirdPct = 40;
				break;

			case ITEM_ARMOR:
				if (GetSubType() == ARMOR_BODY)
				{
					iSecondPct = 20;
					iThirdPct = 10;
				}
				else
				{
					iSecondPct = 10;
					iThirdPct = 5;
				}
				break;
Acum intrati în db/src/ProtoReader.cpp şi căutaţi:

Cod: Selectaţi tot

	static string arSub3[] = { "USE_POTION", "USE_TALISMAN", "USE_TUNING", "USE_MOVE", "USE_TREASURE_BOX", "USE_MONEYBAG", "USE_BAIT",
				"USE_ABILITY_UP", "USE_AFFECT", "USE_CREATE_STONE", "USE_SPECIAL", "USE_POTION_NODELAY", "USE_CLEAR",
				"USE_INVISIBILITY", "USE_DETACHMENT", "USE_BUCKET", "USE_POTION_CONTINUE", "USE_CLEAN_SOCKET",
				"USE_CHANGE_ATTRIBUTE", "USE_ADD_ATTRIBUTE", "USE_ADD_ACCESSORY_SOCKET", "USE_PUT_INTO_ACCESSORY_SOCKET",
				"USE_ADD_ATTRIBUTE2", "USE_RECIPE", "USE_CHANGE_ATTRIBUTE2", "USE_BIND", "USE_UNBIND", "USE_TIME_CHARGE_PER", "USE_TIME_CHARGE_FIX", "USE_PUT_INTO_BELT_SOCKET", "USE_PUT_INTO_RING_SOCKET"};
Modificaţi cu:

Cod: Selectaţi tot

	static string arSub3[] = { "USE_POTION", "USE_TALISMAN", "USE_TUNING", "USE_MOVE", "USE_TREASURE_BOX", "USE_MONEYBAG", "USE_BAIT",
				"USE_ABILITY_UP", "USE_AFFECT", "USE_CREATE_STONE", "USE_SPECIAL", "USE_POTION_NODELAY", "USE_CLEAR",
				"USE_INVISIBILITY", "USE_DETACHMENT", "USE_BUCKET", "USE_POTION_CONTINUE", "USE_CLEAN_SOCKET",
				"USE_CHANGE_ATTRIBUTE", "USE_ADD_ATTRIBUTE", "USE_ADD_ACCESSORY_SOCKET", "USE_PUT_INTO_ACCESSORY_SOCKET",
				"USE_ADD_ATTRIBUTE2", "USE_RECIPE", "USE_CHANGE_ATTRIBUTE2", "USE_BIND", "USE_UNBIND", "USE_TIME_CHARGE_PER", "USE_TIME_CHARGE_FIX", "USE_PUT_INTO_BELT_SOCKET", "USE_PUT_INTO_RING_SOCKET","USE_COSTUME_CHANGE_ATTRIBUTE", "USE_COSTUME_ADD_ATTRIBUTE" };
Acum intraţi în dump_proto/ItemCSVReader.cpp şi căutaţi:

Cod: Selectaţi tot

"USE_PUT_INTO_RING_SOCKET"
Adăugaţi după, în acelaşi tabel acestea:

Cod: Selectaţi tot

,"USE_COSTUME_CHANGE_ATTRIBUTE", "USE_COSTUME_ADD_ATTRIBUTE"
Acum intraţi în server/db/item_names.txt şi adăugaţi:

Cod: Selectaţi tot

79998	Bonus vrajit
79999	Vraja bonus
Acum intraţi în server/db/item_proto.txt şi adăugaţi:

Cod: Selectaţi tot

79998	????	ITEM_USE	USE_COSTUME_CHANGE_ATTRIBUTE	1	ANTI_DROP | ANTI_SELL | ANTI_GIVE | ANTI_MYSHOP	ITEM_STACKABLE | LOG	NONE	NONE	0	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
79999	????	ITEM_USE	USE_COSTUME_ADD_ATTRIBUTE	1	ANTI_DROP | ANTI_SELL | ANTI_GIVE | ANTI_MYSHOP	ITEM_STACKABLE | LOG	NONE	NONE	0	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
Acum intraţi în GameLib/ItemData.cpp şi căutaţi:

Cod: Selectaţi tot

		case USE_PUT_INTO_RING_SOCKET:
			return DEF_STR(USE_PUT_INTO_RING_SOCKET);
Adăugaţi sub:

Cod: Selectaţi tot

		case USE_COSTUME_CHANGE_ATTRIBUTE:
			return DEF_STR(USE_COSTUME_CHANGE_ATTRIBUTE);
		case USE_COSTUME_ADD_ATTRIBUTE:
			return DEF_STR(USE_COSTUME_ADD_ATTRIBUTE);
Acum intraţi în GameLib/ItemData.h şi căutaţi:

Cod: Selectaţi tot

USE_PUT_INTO_RING_SOCKET,
Adăugaţi sub:

Cod: Selectaţi tot

	USE_COSTUME_CHANGE_ATTRIBUTE,
	USE_COSTUME_ADD_ATTRIBUTE,
Acum vă las aici tutorial implementare pe partea de client!
Parola arhivă: morphe_just4metin.ro
LINK DOWNLOAD: Trebuie să fii logat sau înregistrat pentru a vedea acest link.
*** ACEST SISTEM ESTE POSTAT EXCLUSIV PENTRU JUST4METIN ***
Imagine

Neconectat
Avatar utilizator
L.a.D l Catalin
Nivel 6

Nivel 6
Mesaje: 1095
Membru din: 15 Sep 2014
Localitate: Buzau
Reputație: Helper 1.45/3
Membru Club
Fost Moderator
Status: I'm fine. Thanks!
Server Metin2: Freakz Metin2
Regat: Jinno
Mulţumiri acordate: 11  
Mulţumiri primite: 23  
Contact:

Re: [C++] [TUTORIAL] Sistem bonusuri pe costume

Mesaj de L.a.D l Catalin » 05 Sep 2015, 11:56

Bine ca stergi topicul facut de mine si dai copy-paste facand tu topic. Halal moderator.
[center]VAND CONT STEAM 112 GAMES[/center]

Neconectat
Avatar utilizator
M.Seby
Utilizator interzis !

Utilizator interzis !
Mesaje: 2829
Membru din: 10 Sep 2013
Localitate: Suceava
Reputație: Fost Administrator
Fost Organizator echipă
Status: Sunt bine mersi ^.^
Server Metin2: Not Found
Regat: Jinno
Mulţumiri acordate: 1  
Mulţumiri primite: 16  
Contact:

Re: [C++] [TUTORIAL] Sistem bonusuri pe costume

Mesaj de M.Seby » 05 Sep 2015, 11:57

L.a.D l Catalin scrie:Bine ca stergi topicul facut de mine si dai copy-paste facand tu topic. Halal moderator.
A fost o problemă pe forum cu echipa!
Topicul nu a fost şters, a fost modificat de către unu care nu a avut ce face şi a şters tot ce era prin C++/SF/CLIENT/MAPE/SERVERE HOSTATE
Imagine

Neconectat
Avatar utilizator
L.a.D l Catalin
Nivel 6

Nivel 6
Mesaje: 1095
Membru din: 15 Sep 2014
Localitate: Buzau
Reputație: Helper 1.45/3
Membru Club
Fost Moderator
Status: I'm fine. Thanks!
Server Metin2: Freakz Metin2
Regat: Jinno
Mulţumiri acordate: 11  
Mulţumiri primite: 23  
Contact:

Re: [C++] [TUTORIAL] Sistem bonusuri pe costume

Mesaj de L.a.D l Catalin » 05 Sep 2015, 12:02

Nu sunt eu vinovat ca dati accese la toti ratatii. Sincer: Dati prea usor acces si prea multe comenzi disponibile are orice grad. Helperul care se obtine foarte usor primeste si moderare si edit..delete.. Tot tacamul.
[center]VAND CONT STEAM 112 GAMES[/center]

Neconectat
Avatar utilizator
C.Marius
Mister Just4Metin

Mister Just4Metin
Mesaje: 688
Membru din: 28 Sep 2014
Localitate: Targoviste
Status: Sunt bine mersi ^.^
Server Metin2: Metin2Delphi
Regat: Jinno
Mulţumiri acordate: 1  
Mulţumiri primite: 17  
Contact:

Re: [C++] [TUTORIAL] Sistem bonusuri pe costume

Mesaj de C.Marius » 04 Oct 2015, 13:13

Functioneaza 100%???

Neconectat
Avatar utilizator
Redder
Nivel 2

Nivel 2
Mesaje: 247
Membru din: 10 Iun 2017
Status: Sunt bine mersi
Mulţumiri acordate: 16  
Mulţumiri primite: 4  

Re: [C++] [TUTORIAL] Sistem bonusuri pe costume

Mesaj de Redder » 01 Mar 2018, 23:38

Link-ul numai este functional ^^

Neconectat
Avatar utilizator
emoemolizu
Nivel 3

Nivel 3
Mesaje: 424
Membru din: 20 Mar 2014
Status: http://www.ivmar.ro
Server Metin2: ivmar.ro
Regat: Chunjo
Mulţumiri acordate: 20  
Mulţumiri primite: 1  

Re: [C++] [TUTORIAL] Sistem bonusuri pe costume

Mesaj de emoemolizu » 24 Iun 2019, 12:22

link nefunctional

Neconectat
Avatar utilizator
Solange
Lider Designeri

Lider Designeri
Mesaje: 933
Membru din: 10 Sep 2014
Localitate: Cluj-Napoca
Reputație: Lider Designeri
Discord: Ema#1833
Regat: Chunjo
Mulţumiri acordate: 36  
Mulţumiri primite: 81  
Contact:

Re: [C++] [TUTORIAL] Sistem bonusuri pe costume

Mesaj de Solange » 21 Iul 2019, 20:38

T/C

[ Postat de pe Android ] Imagine

Închis

Înapoi la “Arhivă”