[Smal-Release[C++]]Full EQ+Bonis(mit gm command)

04/02/2015 18:52 .K0rí#1
Hallo Epvp,

Ich weß nicht wie man es nennen sollte also es geht mehr um 2 Chat commands die ich gestern gefunden habe im Source.

hier mal die standart codes:
Code:
item_full_set = ( Gibt rassenabhängig EQ )
attr_full_set = ( Gibt auf alles was man anhatt Bonis )
Diese findet ihr in der cmd.cpp

Nun Zeige ich euch wie man die Items ändert die man bekommt und die bonis.

Fangen wir mit dem EQ an, geht dafür in die cmd_gm.cpp und sucht:
Code:
ACMD (do_item_full_set)
Machen wir ein Bsp. bei dem Krieger. Normal sollte das da stehen:
Code:
case JOB_WARRIOR:
		{
			item = ITEM_MANAGER::instance().CreateItem(11299);
			if (!item || !item->EquipTo(ch, item->FindEquipCell(ch)))
				M2_DESTROY_ITEM(item);
			item = ITEM_MANAGER::instance().CreateItem(13049);
			if (!item || !item->EquipTo(ch, item->FindEquipCell(ch)))
				M2_DESTROY_ITEM(item);
			item = ITEM_MANAGER::instance().CreateItem(15189);
			if (!item || !item->EquipTo(ch, item->FindEquipCell(ch)))
				M2_DESTROY_ITEM(item);
			item = ITEM_MANAGER::instance().CreateItem(3159);
			if (!item || !item->EquipTo(ch, item->FindEquipCell(ch)))
				M2_DESTROY_ITEM(item);
			item = ITEM_MANAGER::instance().CreateItem(12249);
			if (!item || !item->EquipTo(ch, item->FindEquipCell(ch)))
				M2_DESTROY_ITEM(item);
			item = ITEM_MANAGER::instance().CreateItem(14109);
			if (!item || !item->EquipTo(ch, item->FindEquipCell(ch)))
				M2_DESTROY_ITEM(item);
			item = ITEM_MANAGER::instance().CreateItem(17109);
			if (!item || !item->EquipTo(ch, item->FindEquipCell(ch)))
				M2_DESTROY_ITEM(item);
			item = ITEM_MANAGER::instance().CreateItem(16109);
			if (!item || !item->EquipTo(ch, item->FindEquipCell(ch)))
				M2_DESTROY_ITEM(item);
		}
Da müsst ihr nur die Id´s anpassen und fertig mehr nicht, ist ganz Simple eig.


Nun zu den Bonis, sucht nacht:
Code:
ACMD (do_attr_full_set)
Wieder der standart bei Krieger:
Code:
case JOB_WARRIOR:
		{
			item = ch->GetWear(WEAR_WEAPON);
			if (item != NULL)
			{
				item->ClearAttribute();
				item->SetForceAttribute(0, APPLY_CAST_SPEED, 20);
				item->SetForceAttribute(1, APPLY_CRITICAL_PCT, 10);
				item->SetForceAttribute(2, APPLY_PENETRATE_PCT, 10);
				item->SetForceAttribute(3, APPLY_ATTBONUS_DEVIL, 20);
				item->SetForceAttribute(4, APPLY_STR, 12);
			}

			item = ch->GetWear(WEAR_HEAD);
			if (item != NULL)
			{
				item->ClearAttribute();
				item->SetForceAttribute(0, APPLY_ATT_SPEED, 8);
				item->SetForceAttribute(1, APPLY_HP_REGEN, 30);
				item->SetForceAttribute(2, APPLY_SP_REGEN, 30);
				item->SetForceAttribute(3, APPLY_DODGE, 15);
				item->SetForceAttribute(4, APPLY_STEAL_SP, 10);
			}

			item = ch->GetWear(WEAR_SHIELD);
			if (item != NULL)
			{
				item->ClearAttribute();
				item->SetForceAttribute(0, APPLY_CON, 12);
				item->SetForceAttribute(1, APPLY_BLOCK, 15);
				item->SetForceAttribute(2, APPLY_REFLECT_MELEE, 10);
				item->SetForceAttribute(3, APPLY_IMMUNE_STUN, 1);
				item->SetForceAttribute(4, APPLY_IMMUNE_SLOW, 1);
			}

			item = ch->GetWear(WEAR_BODY);
			if (item != NULL)
			{
				item->ClearAttribute();
				item->SetForceAttribute(0, APPLY_MAX_HP, 2000);
				item->SetForceAttribute(1, APPLY_CAST_SPEED, 20);
				item->SetForceAttribute(2, APPLY_STEAL_HP, 10);
				item->SetForceAttribute(3, APPLY_REFLECT_MELEE, 10);
				item->SetForceAttribute(4, APPLY_ATT_GRADE_BONUS, 50);
			}

			item = ch->GetWear(WEAR_FOOTS);
			if (item != NULL)
			{
				item->ClearAttribute();
				item->SetForceAttribute(0, APPLY_MAX_HP, 2000);
				item->SetForceAttribute(1, APPLY_MAX_SP, 80);
				item->SetForceAttribute(2, APPLY_MOV_SPEED, 8);
				item->SetForceAttribute(3, APPLY_ATT_SPEED, 8);
				item->SetForceAttribute(4, APPLY_CRITICAL_PCT, 10);
			}

			item = ch->GetWear(WEAR_WRIST);
			if (item != NULL)
			{
				item->ClearAttribute();
				item->SetForceAttribute(0, APPLY_MAX_HP, 2000);
				item->SetForceAttribute(1, APPLY_MAX_SP, 80);
				item->SetForceAttribute(2, APPLY_PENETRATE_PCT, 10);
				item->SetForceAttribute(3, APPLY_STEAL_HP, 10);
				item->SetForceAttribute(4, APPLY_MANA_BURN_PCT, 10);
			}

			item = ch->GetWear(WEAR_NECK);
			if (item != NULL)
			{
				item->ClearAttribute();
				item->SetForceAttribute(0, APPLY_MAX_HP, 2000);
				item->SetForceAttribute(1, APPLY_MAX_SP, 80);
				item->SetForceAttribute(2, APPLY_CRITICAL_PCT, 10);
				item->SetForceAttribute(3, APPLY_PENETRATE_PCT, 10);
				item->SetForceAttribute(4, APPLY_STEAL_SP, 10);
			}

			item = ch->GetWear(WEAR_EAR);
			if (item != NULL)
			{
				item->ClearAttribute();
				item->SetForceAttribute(0, APPLY_MOV_SPEED, 20);
				item->SetForceAttribute(1, APPLY_MANA_BURN_PCT, 10);
				item->SetForceAttribute(2, APPLY_POISON_REDUCE, 5);
				item->SetForceAttribute(3, APPLY_ATTBONUS_DEVIL, 20);
				item->SetForceAttribute(4, APPLY_ATTBONUS_UNDEAD, 20);
			}
		}
Hier könnt ihr halt für jedes Equipmentteil individuell einstellen welche bonis drauf sollen standart. Natürlich auch 6/7 Bonis gehen da ;)


Das wars eig schon, ich weiß nichts großes aber ich fange ja auch erst an mit dem Source zu arbeiten.

In den nächten Tagen wird villeicht nohmal was von mir kommen in der richtung.


Mit freundlichen Grüßen
.Kori

Thanks to:
- Nyor dafür das er mir etwas C++ lernt :D
- Fydes für den root zum Compilern & Testen
04/02/2015 19:07 Poccix#2
Smal .... ? xD
Gefällt mir, jedoch nur für die GM's nützlich :)
Hoffe wirst durch die Bastelleien am Source in C++ besser.
04/02/2015 19:12 Fydes#3
Sauber, wie man`s von dir kennt. :)
04/02/2015 19:41 NaOiZ#4
Schon gewust un das für PvM umgesetzet :) Dennoch danke dafür wird sicherlich einigen helfen :P
04/02/2015 20:03 ©Fitchi#5
Kann man sowas auch machen als quest. Also das man sich per quest full eq geben kann mit boni?
04/02/2015 20:08 .K0rí#6
Quote:
Originally Posted by ©Fitchi View Post
Kann man sowas auch machen als quest. Also das man sich per quest full eq geben kann mit boni?
Natürlich geht das sind normale befehle
04/02/2015 21:05 Kakashi20#7
War schon in der 34k game drine sollte die meisten wissen.
04/02/2015 22:40 .Lynea#8
Finde ich ganz schön, besonders nützlich zum testen des Pvp/Pve Systems.
04/02/2015 23:13 .Colossus.#9
Man sollte eventuell die Berechtigung von dem gm befehl ändern, da glaube ich auch high wizards sich dadurch "full eq" geben können.
04/03/2015 03:21 LovecKrys#10
Already implemented in newer cores, what's the purpose of copypasting it here?
04/03/2015 05:28 He3o Crysis#11
Vom Code her schrecklich, bist aber noch ein Anfänger deshalb ists ok. :)
04/03/2015 18:31 xXGaardenXx#12
Quote:
Originally Posted by .He3o Crysis View Post
Vom Code her schrecklich, bist aber noch ein Anfänger deshalb ists ok. :)
Das hat er doch garnicht selber geschrieben das ist 1:1 im Sourcecode so drinne
04/03/2015 19:09 .K0rí#13
Quote:
Originally Posted by xXGaardenXx View Post
Das hat er doch garnicht selber geschrieben das ist 1:1 im Sourcecode so drinne
Das stimmt, ich wollte nur zeigen das es dies im source gibt und wie man es ändern kann.
04/04/2015 08:20 .T4Ump#14
.K0rí
You're So slow sperm. :DD
04/04/2015 09:45 DreamT™#15
Ganz schick :) Ich persönlich würde es jedoch nicht einbauen, da damit auch viel Unfug getrieben werden kann.

Danke fürs Teilen