Hey,
heute erklär ich euch wie man Itemboni erstellt.

Zuerst ein wenig Vorarbeit:

Wir öffnen die Datei: Story_Globals in _work/data/Scripts/Content/Story
und machen dort einen Eintrag.

"var int SpezStew"

(Ihr solltet euch das Kapitel "Variablen&Konstanten" schon durchgelesen haben.


Das wars erstmal.

Nun gucken wir uns die Itemscripts an, ich nehme den "Eintopf".
(Zu finden in _work/data/Scripts/Content/Items/IT_Food


INSTANCE ItFo_Stew (C_Item)
{
name = "Eintopf";

mainflag = ITEM_KAT_FOOD;
flags = ITEM_MULTI;

value = Value_Stew;

visual = "ItFo_Stew.3ds";
material = MAT_WOOD;
scemeName = "RICE";
on_state[0] = Use_Stew;

description = name;
TEXT[1] = NAME_Bonus_HP; COUNT[1] = HP_Stew;
TEXT[5] = NAME_Value; COUNT[5] = Value_Stew;

};

FUNC VOID Use_Stew()
{
Npc_ChangeAttribute (self, ATR_HITPOINTS, HP_Stew);
};


Das ist ein ganz normaler Eintopf.

Nun das Script meines "speziellen Eintopfes"


INSTANCE ItFo_SpezStew (C_Item)
{
name = "Spezieller Eintopf";

mainflag = ITEM_KAT_FOOD;
flags = ITEM_MULTI;

value = Value_SpezStew;

visual = "ItFo_Stew.3ds";
material = MAT_WOOD;
scemeName = "RICE";
on_state[0] = Use_SpezStew;

description = name;
TEXT[1] = NAME_Bonus_HP; COUNT[1] = HP_SpezStew;
TEXT[5] = NAME_Value; COUNT[5] = Value_SpezStew;

};

FUNC VOID Use_SpezStew()
{
Npc_ChangeAttribute (self, ATR_HITPOINTS, HP_SpezStew);
if (Npc_IsPlayer(self))
{
SpezStewBoni = SpezStewBoni + 1;
if (SpezStewBoni == 5)
{
B_RaiseAttribute (self, ATR_STRENGTH, 1);
SpezStewBoni = 0;
};
};
};



Der obere Teil sollte euch bekannt vorkommen.
Interessant wirds erst ab FUNC VOID Use_SpezStew ()


Npc_ChangeAttribute (self, ATR_HITPOINTS, HP_SpezStew);
if (Npc_IsPlayer(self))
{
SpezStewBoni = SpezStewBoni + 1;
if (SpezStewBoni == 5)
{
B_RaiseAttribute (self, ATR_STRENGTH, 1);
SpezStewBoni = 0;


Das "Npc_ChangeAttribute (self,ATR_HITPOINTS, HP_SpezStew)"
sorgt dafür, dass der Held die HP regeneriert.

"SpezStewBoni = SpezStewBoni + 1;"

Das ist eine Art Zähler. Jedesmal, wenn der Held das Item benutzt, wird der Variable 1 hinzugefügt.

"if (SpezStewBoni == 5)
{
B_RaiseAttribute (self, ATR_STRENGTH, 1);
SpezStewBoni = 0;"

Dadurch wird abgefragt, ob die Variable auf 5 steht.
Tut sie es, also hat der Held das Item schon 5x benutzt, wird das Attribut "Stärke" um 1 erhöht. Ihr könnt in
"B_RaiseAttribute (self, ATR_STRENGTH, 1);"
auch ein anderes Attribut eingeben, das ist egal.

Hinterher wird der Wert der Variable wieder auf 0 gesetzt, so kann der Bonus mehrmals erscheinen.


Ich hoffe ich konnte euch hiermit helfen.
Bei Fragen & Beschwerden bitte an mich wenden.

Mfg eternally