====== Item-Boni ====== 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 [[quickstart:skripte:variablen]] schon durchgelesen haben. 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; }; }; }; 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