World of Gothic Archiv > Editing
Need Help
Seite 1 von 1  1 
06.09.2001, 14:54 #1
DHA
Beiträge: 273
Need Help
Kann mir jemand genau erklären wie man ein neues schwert erstellt
und dazu alles was man dafür braucht als link macht
damit ich genau das was man dafür braucht downloaden kann
06.09.2001, 19:52 #2
Ur-Shak
Beiträge: 539
Mod-Kit...
Hi,

im modkit hats n scripttutorial dazu. Ich hab dir mal den Teil rauskopiert wo beschrieben wird wie ein schwert gescriptet wird... das modelling is nicht mein gebiet, vielleicht kann dir da jemand anderes weiterhelfen

Gruss Ur-Schak

----------------------------------------------------------------------

5. Den Gegenstand der Begierde erstellen
Gunther will ein Schwert haben, das es so in Gothic nicht gibt, also muss es erstellt werden.

Die Klasse

CLASS C_Item
{
// Für alle Items
VAR INT id;

Id wie bei der C_Npc Klasse (s.o.)

VAR STRING name,nameID;

Synonym zu C_Npc

VAR INT hp,hp_max;

Synonym zu C_Npc

VAR INT mainflag,flags; // Hauptflag und weitere Flags
VAR INT weight,value;

Gewicht und Wert lassen sich als integer angeben.

// Für Waffen
VAR INT damageType; // Welche Schadensarten

Synonym zu C_Npc.

VAR INT damageTotal;

Synonym zu C_Npc

VAR INT damage [DAM_INDEX_MAX];

Synonym zu C_Npc

// Für Rüstungen
VAR INT wear;

Hier ist eigentlich nur WEAR_TORSO interessant, weil keine Helme im Spiel sind.

VAR INT protection [PROT_INDEX_MAX];

Dies ist ein Array in dem für jede Schadensklasse ein eigener Rüstschutz angegeben werden kann.

// Für Nahrung
VAR INT nutrition ; // HP-Steigerung bei Nahrung

Obsolet

// Benötigte Attribute zum Benutzen des Items
VAR INT cond_atr [3] ;
VAR INT cond_value [3] ;

Ein Array von zweimal drei Integer, in dem angegeben werde kann welche Stärke (z.B. 10) etc. nötig ist um diese Item anzulegen oder zu Benutzen.

// Attribute, die bei anlegen des Items verändert werden
VAR INT change_atr [3] ;
VAR INT change_value [3] ;

Obsolet

// Parserfunktionen
VAR FUNC magic; // Parserfunktion zum "Magie Header"
VAR FUNC on_equip; // Parserfunktion, wenn Item equipped wird.
VAR FUNC on_unequip; // Parserfunktion, wenn Item unequipped wird.
VAR FUNC on_state [4];

// Besitzer
VAR FUNC owner;

// Besitzer : Instanz-Name

VAR INT ownerGuild;

// Besitzer : Gilde

VAR INT disguiseGuild;

// Zur Schau getragene Gilde durch Verkleidung à Obsolet

// Die 3DS-Datei

VAR STRING visual;

Gibt's an welche Datei als Darstellung für das Item geladen wird.

// Veränderung des NSC-Meshes beim Anlegen dieses Gegenstandes

VAR STRING visual_change ; // ASC - File

Wird zum Anlegen einer Rüstung benutzt, weil dann ein anderes ASC.File als visual geladen wird.

VAR INT visual_skin;

Texturvariation für das betreffende Rüstungsmesh.

VAR STRING scemeName;

Interner Name für das Benutzen von Items.

VAR INT material;

Mit dem Material sind z.B. die "Klangeigenschaften" eines Items festgelegt.

// VAR STRING pfx; // Magic Weapon PFX

Obsolet

VAR INT munition; // Instance of Munition

Bei Bögen wird hier angegeben mit welcher Munition sie schießen (Arrow V Bolt).

VAR INT spell;

Gibt an welchen Spell magische Items ausführen.

VAR INT range;

Gibt den Radius an, in dem eine Nahkampfwaffe trifft.

VAR INT mag_circle;

Welchem Magischen Zirkel ist dieses Item zugeordnet.

VAR STRING description;

Die Beschreibung, die beim Betrachten eines Items auftaucht.

VAR STRING text[ITM_TEXT_MAX];
VAR INT count[ITM_TEXT_MAX];
};

Vars mit denen sich die Werte der Items in den Statusscreen transportieren lassen.

So dann soll jetzt mal ein schönes Schwert entstehen, nach dem Gunther suchen lassen kann. Damit den Spieler das Schwert auch interessiert sollte es natürlich ein paar nette Werte haben, also soll es 1000 Erz wert sein und einen Schaden von 300 machen, das Visual wird aus den Gothicdaten geklaut, weil visuals erstellen an einer andern Stelle erklärt wird Ansonsten muss das Schwert natürlich eine Nahkampfwaffe und ein Schwert sein, sollte aus Metall bestehen und vielleicht noch ein bisschen von sich preisgeben à Deskription.

INSTANCE ItMw_1H_GuntherWantedSword (C_Item)
{
name = Milhouse´ Schwert";

mainflag = ITEM_KAT_NF; // Nahkampfwaffe
flags = ITEM_SWD; // Schwert
material = MAT_METAL; // besteht aus Metall

value = 1000; // Wert von 1000

damageTotal = 300;
damagetype = DAM_EDGE; // Verursacht Klingenschaden
range = 200; // Hat einen Radisu von 2m

cond_atr[2] = ATR_STRENGTH; // Was muß man haben, damit man es führen darf
cond_value[2] = 5; // Wie hoch muß man das (s.o.) haben
visual = "ItMw_1H_Sword_Old_01.3DS"; // Visual aus den Gothicdaten "gemopst"

description = name;
TEXT[2] = "Damage"; COUNT[2] = 300;
TEXT[3] = "Benötigte Stärke"; COUNT[3] = cond_value[2];
TEXT[4] = "einhand Schwert";
TEXT[5] = "Wert"; COUNT[5] = value;
};

Das Item lässt sich jetzt genauso wie Gunther per Konsole im Spiel einfügen.

Bei den Waffen empfiehlt es sich ein eigenes File (*.d) anzulegen, das dann im Ordner /_work/data/skripts/content/Items abgelegt wird. Hier muss dann allerdings auch dafür gesorgt werden, dass das Programm das neue File liest.

Dafür öffnet man das File /_work/data/skripts/content/gothic.src in diesem File sind alle Pfade angegeben, aus denen Contentskripte geladen werden. Diese Pfade sind relativ zum Pfad /_work/data/skripts/

Hier fügt man für das neue File den Pfad ITEMSFILENAME.D ein und schon werden die Daten aus dem File gelesen.

Achtung! Diese Datei erfordert zwingend Großbuchstaben. Falls es mal Probleme geben sollte beim Gamestart kann es sein, das eine Datei Daten aus einer anderen Datei referenziert und deshalb diese vor einer anderen geparst werden muß. Lösungshinweise gigt es zwei, einmal: keine Wildcards verwenden, sondern die Files einzeln per Namen parsen und zum anderen ein wenig mit der Reihenfolge rumspielen, aber nur der Daten, die neu erstellt wurden, weil sonst das ganze File kaputt gehen kann.

Natürlich lassen sich so auch neue Ordner referenzieren, aber das ist dann doch eine Sache zum Ausprobieren und rumspielen.
----------------------------------------------------------------------
10.09.2001, 10:58 #3
DHA
Beiträge: 273

aha danke

Seite 1 von 1  1