Benutzer-Werkzeuge

Webseiten-Werkzeuge


Dies ist eine alte Version des Dokuments!


Inhaltsverzeichnis

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
};

Dann wird AndiNo mal weitermachen und die Klasse c_mission, c_item, c_focus und c_info erklären.

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?
};
diverses/instanzerklaerungen.1439928938.txt.gz · Zuletzt geändert: 2016/02/09 18:03 (Externe Bearbeitung)