Inhaltsverzeichnis

ZenGin Klassen

So, hier möchte ich nach und nach einige Erklärungen der einzelnen Klassen (wie bin ich auf Instanzen gekommen?) sammeln.
Dann werde ich mal beginnen:

c_npc

instance GRD_278_Gardist (Npc_Default)
{
	//-------- primary data --------
 
	name 		=	NAME_gardist;        //Name des NPC
	npctype		= 	NPCTYPE_MINE_GUARD;  //NPC-Typ (was das bewirkt, weiß ich grad nicht)
	guild 		=	GIL_GRD;             //Gilde des NPC
	level 		=	10;            //Der level des NPC (nur wichtig für Angst/keine Angst und Erfahrungspunktevergabe)
	voice 		=	13;                  //die Stimme des NPC
	id 		=	278;                 //die ID (darf nicht doppelt vergeben werden)
 
	//-------- abilities --------
	attribute[ATR_STRENGTH] 	= 35;        //Stärke
	attribute[ATR_DEXTERITY] 	= 35;        //Geschicklichkeit
	attribute[ATR_MANA_MAX] 	= 0;         //max. Zauberenergie
	attribute[ATR_MANA] 		= 0;         //manamenge beim Start
 
 
	attribute[ATR_HITPOINTS_MAX]	= 160;       //max. Lebensenergie
	attribute[ATR_HITPOINTS] 	= 160;       //Lebensenergie zum Start
 
	//-------- visuals --------
	// 			animations
	Mdl_SetVisual		(self,"HUMANS.MDS"); //könnte die Animation sein, aber net sicher
	Mdl_ApplyOverlayMds	(self,"Humans_Militia.mds"); //auch auf jeden Fall ne Animationssache, is die bewegungsart (also hängende Schultern oder verschränkte Arme usw.)
	//			bodymesh,		bdytex,	Haut,	Kopfmesh,		Kopftex,Zahntex,	ruestung	
	Mdl_SetVisualBody (self,"hum_body_Naked0", 	0,	1,	"Hum_Head_Fighter",	12,	2,		GRD_ARMOR_L);
 
        B_Scale (self);          //kA
    	Mdl_SetModelFatness(self,0);     //höhere Werte lassen das mesh dicker erscheinen
 
    	self.aivar[AIV_IMPORTANT] = TRUE;//self.aivar speichert verschiedene dinge über den NPC
                                         //genauere erläuterung einzelner werte folgt demnächst 
 
    	fight_tactic	=	FAI_HUMAN_STRONG; //Kampf-AI (nah-/fernkampf usw.) erläuterung folgt demnächst
 
	//-------- Talente -------- 
 
	Npc_SetTalentSkill (self, NPC_TALENT_1H,1);  //mit dieser Funktion werden Talente definiert
 
 
	//-------- inventory --------
 
	EquipItem	(self, ItMw_1H_Sword_01);    //ein item ins inventory und ausrüsten(anlegen)
	CreateInvItem	(self, ItFoApple);           //ein item ins inventory
	CreateInvItems	(self, ItMiNugget, 10);      //mehrere gleiche items ins inventory
 
	//-------------Daily Routine-------------
	daily_routine = Rtn_start_278;               //der standardtagesablauf des NPC
};
 
FUNC VOID Rtn_Start_289
{
    //Hier kommt der Tagesablauf hinein
    //Beispiel:    
    TA_Stand(00,00,13,00, "KJ_LAGER_INSIDE_02"); 
    TA_Stand(13,00,00,00, "KJ_LAGER_INSIDE_02");
    //Führt dazu, dass der NPC 24 Stunden am Waypoint KJ_LAGER_INSIDE_02 steht.
    //zu beachten, es müssen mindestens zwei funktionen angegeben sein, auch wenn den ganzen Tag das selbe passiert
    TA_Stand(00,00,24,00, "KJ_LAGER_INSIDE_02");
    //ist nicht möglich
};

c_mission

CLASS C_Mission
{
	VAR STRING	name		;	// Name des Auftrages, der im Logbuch angezeigt wird
	VAR STRING	description	;	// Text, der im Logbuch bei der Mission angezeigt wird
	VAR INT		duration	;	// Max. Dauer in Tageszeiten
	VAR INT		important	;
 
	VAR FUNC	offerConditions	;
	VAR FUNC	offer		;
	VAR FUNC	successConditions	;
	VAR FUNC	success			;	// Status: Mission geschafft
	VAR FUNC	failureConditions	;
	VAR FUNC	failure			;	// Status: Mission fehlgeschlagen
	VAR FUNC	obsoleteConditions	;
	VAR FUNC	obsolete	;	// Status: Mission veraltet, 'duration' schon vorbei
	VAR FUNC	running		;	// Status: Mission läuft noch
};

c_item

CLASS C_Item 
{
	// Für alle Items
	VAR INT		id		;	// Individuelle Nummer für dieses Item			
	VAR STRING  	name,nameID	;	// Name der im Spiel angezeigt wird
	VAR INT		hp,hp_max	;
 
	VAR INT    	mainflag,flags	;	// Hauptflag und weitere Flags
	// mainflags können sein: in welcher Kategorie ist das Item?
		//CONST INT ITEM_KAT_NONE	Sonstiges
		//CONST INT ITEM_KAT_NF		Alle Nahkampfwaffen
		//CONST INT ITEM_KAT_FF		Alle Fernkampfwaffen
		//CONST INT ITEM_KAT_MUN	Jede Art von Munition (->MultiSlot)
		//CONST INT ITEM_KAT_ARMOR	Rüstungen und Helme
		//CONST INT ITEM_KAT_FOOD	Alle Nahrungsmittel (->MultiSlot)
		//CONST INT ITEM_KAT_DOCS	Alle Dokumente
		//CONST INT ITEM_KAT_POTIONS	Traenke
		//CONST INT ITEM_KAT_LIGHT	Alle Lichtquellen
		//CONST INT ITEM_KAT_RUNE	Runen und Scrolls
		//CONST INT ITEM_KAT_MAGIC	Ringe und Amulette
		//CONST INT ITEM_KAT_KEYS	
	// flags können sein:
		//CONST INT ITEM_BURN 		Brennbar (kommt nur bei Fackeln vor)
		//CONST INT ITEM_MISSION 	Missionsgegenstand
		//CONST INT ITEM_MULTI		Item kann gestapelt werden (-> Pfeile)
		//CONST INT ITEM_TORCH		Wie eine Fackel behandeln
		//CONST INT ITEM_THROW		Gegenstand kann geworfen werden (geht nicht mehr!)
                //CONST INT ITEM_AMULET         Gegenstand ist ein Amulett
                //CONST INT ITEM_RING           Gegenstand ist ein Ring
                //CONST INT ITEM_BELT           Gegenstand ist ein Gürtel (Nur G2?)
                                                    Bei Amuletten, Ringen und Gürteln kann nur jeweils eine bestimmte Anzahl
                                                    gleichzeitig getragen werden.
 
 
	VAR INT		weight,value	;	//weight: Welches Gewicht hat das Item (wird das gebraucht?)
						//value: Welchen Wert hat das Item beim Kauf / Verkauf? ACHTUNG: Beim Verkauf bringt jedes Item nur die Hälfte des Wertes.
 
	// Für Waffen								
	VAR INT		damageType	;	
	// Welche Schadensarten:
		//CONST INT DAM_INVALID		nur der Vollstandigkeit und Transparenz wegen hier definiert ( _NICHT_ verwenden ) 
		//CONST INT DAM_BARRIER		nur der Vollstandigkeit und Transparenz wegen hier definiert ( _NICHT_ verwenden ) 
		//CONST INT DAM_BLUNT		Keulen oder Hämmer
		//CONST INT DAM_EDGE		Scharfe Waffen wie Schwerter oder Äxte
		//CONST INT DAM_FIRE		Feuer
		//CONST INT DAM_FLY		Flugschaden (-> Windfaust)
		//CONST INT DAM_MAGIC		Magieschaden (Wird getrennt von Feuerschaden erteilt)
		//CONST INT DAM_POINT		Pfeile oder Bolzen
		//CONST INT DAM_FALL		nur der Vollstandigkeit und Transparenz wegen hier definiert ( _NICHT_ verwenden ) 
	VAR INT		damageTotal	;	// Wie viel Schaden macht die Waffe denn nu?
	VAR INT		damage	[DAM_INDEX_MAX]	;	// Um gezielt mehrere Schadensarten anzusprechen (-> Uriziel)
 
	// Für Rüstungen
	VAR INT		wear	;	
	// Wo soll die Rüstung getragen werden?
		//CONST INT WEAR_TORSO		Oberkoerper	( Brustpanzer )
		//CONST INT WEAR_HEAD		Kopf		( Helm )
	VAR INT		protection [PROT_INDEX_MAX] ;	// Vor welchen Schadensarten bietet die Rüstung Schutz?
 
	// Für Nahrung
	VAR INT		nutrition	;	//HP-Steigerung bei Nahrung  ACHTUNG: Wird nicht benutzt. Die Energie wird über on_state vergeben.
 
	// Benötigte Attribute zum Benutzen des Items
	VAR INT		cond_atr	[3] ; // Welches Attribut wird benötigt um das Item anzulegen?
		//const int ATR_HITPOINTS	Lebenspunkte
		//const int ATR_MANA		Mana Mana
		//const int ATR_STRENGTH	Stärke
		//const int ATR_DEXTERITY	Geschick
	VAR INT		cond_value	[3] ; // Wie hoch muss das Attribut sein, um das Item anzulegen?
 
	// Attribute, die bei anlegen des Items verändert werden
	VAR INT		change_atr	[3] ; // Welches Attribut wird beim Anlegen geändert?
	VAR INT		change_value	[3] ; // Um wie viel wird das Attribut verändert?
 
	// Parserfunktionen
	VAR FUNC	magic	;		// Parserfunktion zum "Magie Header" (geht das noch?)
	VAR FUNC	on_equip ;		// Funktion, die aufgerufen wird, wenn man das Item anlegt
	VAR FUNC	on_unequip ;		// Funktion, die aufgerufen wird, wenn man das Item ablegt
	VAR FUNC	on_state  [4]	;	// Funktion, die bei der angegebenen Animationsstufe aufgerufen wird
 
	// Besitzer									
	VAR FUNC	owner		;	//	Besitzer : Name des NPC
	VAR INT		ownerGuild	;	//	Besitzer : Gilde
	VAR INT		disguiseGuild	;	//	Zur Schau getragene Gilde durch Verkleidung
 
	// Die 3DS-Datei
	VAR STRING	visual	; // Welche 3ds-Datei hat das Item?
 
	// Veränderung des NSC-Meshes beim Anlegen dieses Gegenstandes
	VAR STRING 	visual_change	;	// ASC-File -> Die Rüstung bewegt sich beim Laufen ja auch!
	VAR INT		visual_skin	;	// Wird der Skin geändert? (???)
 
	VAR STRING 	scemeName	;	// Animation, die bei Benutzung ausgeführt wird
	VAR INT		material	;	// Material -> Welche Geräusche macht das Item	
	// VAR STRING	pfx		;	//	Magic Weapon PFX (geht erst in G2)
	VAR INT		munition	;	// Name der Munition (zB Pfeile)
 
	var int 	spell	;	// Welcher Zauberspruch ist das? (meistens Rune und Spruchrolle)
	var int		range	;	// In wie viel Meter Entfernung trifft man Gegner damit noch?
 
	var int		mag_circle;	// Welche Magie-Stufe braucht man, um das Item anzulegen?
 
	VAR STRING	description	;	// Name des Items, der im Spiel angezeigt wird
	VAR STRING	text	[ITM_TEXT_MAX]	; // Text, der in Zeile x der Beschreibung angezeigt wird
	VAR INT		count	[ITM_TEXT_MAX]	; // Welche Zahl (zB Schadenswert einer Waffe) wird in Zeile x der Beschreibung angezeigt?
};

c_focus

CLASS C_Focus
{
	/// für NSCs
	VAR FLOAT	npc_longrange		;	//	Zurufweite	( 20 m )
	VAR FLOAT	npc_range1, npc_range2	;	//	Reichweite 
	VAR FLOAT	npc_azi			;	//	Azimuth		( Seitenwinkel )
	VAR FLOAT	npc_elevdo, npc_elevup	;	//	Elevation	( Höhenwinkel  )
	VAR INT		npc_prio		;	//	Priorität
 
	/// für ITEMs
	VAR FLOAT	item_range1, item_range2;	//	Reichweite 
	VAR FLOAT	item_azi		;	//	Azimuth		( Seitenwinkel )
	VAR FLOAT	item_elevdo, item_elevup;	//	Elevation	( Höhenwinkel  )
	VAR INT		item_prio		;	//	Priorität
 
	/// für MOBs
	VAR FLOAT	mob_range1, mob_range2	;	//	Reichweite 
	VAR FLOAT	mob_azi			;	//	Azimuth		( Seitenwinkel )
	VAR FLOAT	mob_elevdo, mob_elevup	;	//	Elevation	( Höhenwinkel  )
	VAR INT		mob_prio		;	//	Priorität
};

c_info

CLASS C_INFO 
{
	VAR INT		npc		;	// Welchem NPC gehört die Info?
	VAR INT		nr		;	// Welche Stelle im Dialogfenster hat die Info?
	VAR INT		important	;	// Wichtig Flag -> ansprechen
	VAR FUNC	condition	;	// Funktion angeben, die bei Rückgabewert 1 die Info erscheinen lässt.
	VAR FUNC	information	;	// Funktion angeben die ausgeführt werden soll, wenn man die Info auswählt oder bekommt.
	VAR STRING	description	;	// Welcher Text steht für die Info im Dialogfenster?
	VAR INT		trade		;	// Soll das Handelsmenü geöffnet werden?
	VAR INT		permanent	;	// Soll diese Info immer wieder gegeben werden, auch wenn man sie schon kennt?
};