Benutzer-Werkzeuge

Webseiten-Werkzeuge


Dies ist eine alte Version des Dokuments!


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

itemboni.1439928996.txt.gz · Zuletzt geändert: 2015/08/19 22:03 (Externe Bearbeitung)