Portal-Zone Gothic-Zone Gothic II-Zone Gothic 3-Zone Gothic 4-Zone Modifikationen-Zone Download-Zone Foren-Zone RPG-Zone Almanach-Zone Spirit of Gothic

 

Ergebnis 1 bis 6 von 6
  1. Beiträge anzeigen #1 Zitieren
    Lehrling Avatar von Tani-Lue
    Registriert seit
    Jun 2021
    Beiträge
    10
     
    Tani-Lue ist offline

    Noch so 3 dumme Fragen: eigener Summon, oder-conditions und Rüssis ändern?

    Endlich Spätschichtwoche vorbei und ab rein in die Frühschicht. Jetzt muss ich mich umstrukturieren. Wurd jetzt mal kurz wach und dachte mir, machst das schnell mal im Forum, dass du Antwort hast, wenn du um 15 Uhr wieder zuhause bist.

    Leute, ich hab ganz fleißig die Sufu benutzt über Stunden vorhin und hab mich durch ne Menge gelesen. Bei vielem wurde ich so gar nicht schlau draus und vieles blieb unbeantwortet. Ich suche vielleicht aber auch falsch, muss ich wohl zugeben, weil ich null Plan habe, wie man was wie bezeichnen und finden könnte.

    3 Fragen brennen mir besonders im Kopf. Ich probiere ja gerne momentan alles aus, damit ich auch viel verstehe. Vielleicht könnt ihr mir dabei helfen. Vergesst nicht, dass ihr mir alles so erklären müsst, als wenn ich so total dumm wäre.

    #1 Ich wollte so gerne für den Kämpfer ein richtig fettes eigenes Monster zum Beschwören. Am besten nen Schattenläufer oder sowas wie Warg oder diesen Dämon mit den Hörnern und den Stacheln.
    Leider brauch ich echt so eine richtige Schritt für Schritt Anleitung. Bei den Mage Sachen kenne ich mich 0 aus. Hab mir zu Runes und Scrolls alles angesehen, komm aber nicht drauf klar Wie kann man so eigne Beschwörungen machen?

    #2 Für den Kämpfer wollte ich noch gerne ein richtig fettes Zweihandschwert, das aber die Möglichkeit für mehrere Spielweisen bietet, es auf unterschiedliche Arten anlegen zu können. Also der Spieler soll beispielsweise die Anforderung 100 Stärke oder 100 Geschick oder 100 Mana erfüllen. Wisst ihr wie ich meine? So entweder das eine Atr oder das andre Atr als condition. Kann man so was leicht regeln in Waffen dateien?

    #3 Sorry hierzu... ich kam bei der Suche nicht so klar damit, weil ich nicht weiß, wie man das nennt. Ich würde so gerne die Rüstungen verändern. Also ich meine nicht die Form, sondern das, was da "aufgemalt" ist. Die Farben und so. Das was sowas wie Leder darstellt oder Metall. Ich weiß auch überhaupt nicht, ob man dafür so professionell malen können muss in Programmen für Designer und so. Wie nennt sich denn die Tätigkeit und wie taste ich mich da ran?

    Bin gespannt, wie ihr wieder helfen könnt! Dank euch raff ich immer alles super schnell. Danke schon mal im Voraus!!

    Grüße @all

  2. Beiträge anzeigen #2 Zitieren
    Flauschiges Bambi
    Registriert seit
    Aug 2007
    Beiträge
    12.001
     
    Tyra ist offline
    Zitat Zitat von Tani-Lue Beitrag anzeigen
    #3 Sorry hierzu... ich kam bei der Suche nicht so klar damit, weil ich nicht weiß, wie man das nennt. Ich würde so gerne die Rüstungen verändern. Also ich meine nicht die Form, sondern das, was da "aufgemalt" ist. Die Farben und so. Das was sowas wie Leder darstellt oder Metall. Ich weiß auch überhaupt nicht, ob man dafür so professionell malen können muss in Programmen für Designer und so. Wie nennt sich denn die Tätigkeit und wie taste ich mich da ran?

    Bin gespannt, wie ihr wieder helfen könnt! Dank euch raff ich immer alles super schnell. Danke schon mal im Voraus!!

    Grüße @all
    Du redest von Texturen. Da kann ich dir jetzt schon raten den 2D-Bereich erstmal links liegen zu lassen, wenn du dich sowieso gerade erst auf das Skripten konzentrierst. (Nur so viel abbeißen, wie man schlucken kann). 2D-Design ist ein riesiger Bereich und es dauert einige Zeit und Übung, bis man da etwas hübsches erstellen kann.
    In kurz: 3D-Modelle wie Rüstungen werden als 2D-Fläche dargestellt und die Oberflächen so geschnitten, dass alles ohne Knicke in diese 2D-Fläche passt. (Wie hier an einem Würfel zu sehen) Das nennt man UV-Mapping. Diese 2D-Fläche wird in einem Grafikprogramm bearbeitet oder bemalt. Wenn eine Schuhsohle der Rüstung in der UV-Grafik links oben ist, malst du links oben das entsprechende Feld aus und im Spiel wird die Schuhsohle dann farblich dargestellt.
    Wenn du dich irgendwann damit näher beschäftigen willst, kannst du dich per Youtube über GIMP (ähnlich wie Photoshop, nur gratis) und UV-Mapping informieren und dir mal die Gothic-Texturen im textures-Ordner ansehen. So wirst du vermutlich sehr schnell ein Grundverständnis dazu kriegen. Aber wie gesagt: Das ist für Einsteiger sehr kompliziert, deswegen verschiebe das lieber nach hinten, wenn du erst das Skripten verstehen willst.

    Glücklicherweise muss man selbst nicht viel Ahnung haben, wenn das andere erledigen. Die Modderdatendank hat für Rüstungstexturen eine eigene Kategorie, in der du dich frei bedienen kannst. Wenn du nicht fündig wirst, kannst du auch (kleinere) Bitten in der Schmiede stellen und hoffen, dass sich einer der 2Dler hier drum kümmert.
    Geändert von Tyra (23.06.2021 um 12:19 Uhr)

  3. Beiträge anzeigen #3 Zitieren
    Abenteurer
    Registriert seit
    Sep 2011
    Beiträge
    90
     
    SkipDasOriginal ist offline
    #2 Für den Kämpfer wollte ich noch gerne ein richtig fettes Zweihandschwert, das aber die Möglichkeit für mehrere Spielweisen bietet, es auf unterschiedliche Arten anlegen zu können. Also der Spieler soll beispielsweise die Anforderung 100 Stärke oder 100 Geschick oder 100 Mana erfüllen. Wisst ihr wie ich meine? So entweder das eine Atr oder das andre Atr als condition. Kann man so was leicht regeln in Waffen dateien?
    Hier hatte ich mal was ausgearbeitet gehabt. Im Prinzip ist es keine Condition als solche, sondern greift erst bei der EquipFunc. Das Beispiel war zwar für Rüstungen (welche quasi ohne die Erfüllung der Anforderung nur halben Schutz bieten solle) und auch keine "Entweder 100 STR Oder 100 DEX Oder 100 Mana"-Sache sondern die gesamte Summe aus Stärke und Geschick wurde abgefragt, aber das Grundprinzip sollte übertragbar sein. Dazu sei gesagt, dass das als erster Test diente, das ein oder andere konnte man sicher auch besser lösen.
    Code:
    INSTANCE ITAR_TestStats (C_Item)
    {
    	name 					=	"Prunkkleidung";
    
    	mainflag 				=	ITEM_KAT_ARMOR;
    	flags 					=	0;
    
    	//protection [PROT_EDGE]	=	0;
    	//protection [PROT_BLUNT]	= 	0;
    	//protection [PROT_POINT] = 	0;
    	//protection [PROT_FIRE] 	= 	0;
    	//protection [PROT_MAGIC] = 	0;
    
    	value 					=	666;
    
    	wear 					=	WEAR_TORSO;
    
    	visual 					=	"ItAr_Governor.3ds";
    	visual_change 			=	"Armor_Governor.asc";
    	visual_skin 			=	0;
    	material 				=	MAT_LEATHER;
    
    	on_equip				=	Equip_ItAr_TestStats;
    	on_unequip				=	UnEquip_ItAr_TestStats;
    
    	description				=	name;
    	
    	TEXT[1]					=	NAME_Prot_Edge;			
    	COUNT[1]				= 	protection	[PROT_EDGE];
    	
    	TEXT[2]					=	NAME_Prot_Point;		
    	COUNT[2]				= 	protection	[PROT_POINT];
    	
    	TEXT[3] 				=	NAME_Prot_Fire;			
    	COUNT[3]				= 	protection	[PROT_FIRE];
    	
    	TEXT[4]					=	NAME_Prot_Magic;		
    	COUNT[4]				= 	protection	[PROT_MAGIC];
    	
    	TEXT[5]					=	NAME_Value;			
    	COUNT[5]				= 	value;
    };
    	FUNC VOID Equip_ItAr_TestStats()
    	{
    		if ((self.attribute[ATR_STRENGTH] + self.attribute[ATR_DEXTERITY]) > (44))
    		{	
    			self.protection [PROT_EDGE] 		+=  40;
    			self.protection [PROT_BLUNT] 		+=  40;
    			self.protection [PROT_POINT] 		+=  40;
    			self.protection [PROT_FIRE] 		+=  40;
    			self.protection [PROT_Magic] 		+=  40;
    		}
    		else	
    		{
    			Print	(PRINT_ItAr_TestStats);
    			self.protection [PROT_EDGE] 		+=  20;
    			self.protection [PROT_BLUNT] 		+=  20;
    			self.protection [PROT_POINT] 		+=  20;
    			self.protection [PROT_FIRE] 		+=  20;
    			self.protection [PROT_Magic] 		+=  20;
    		};
    	};
    
    	FUNC VOID UnEquip_ItAr_TestStats()
    	{
    		if ((self.attribute[ATR_STRENGTH] + self.attribute[ATR_DEXTERITY]) > (44))
    		{	
    			self.protection [PROT_EDGE] 		-=  40;
    			self.protection [PROT_BLUNT] 		-=  40;
    			self.protection [PROT_POINT] 		-=  40;
    			self.protection [PROT_FIRE] 		-=  40;
    			self.protection [PROT_Magic] 		-=  40;
    		}
    		else	
    		{
    			
    			self.protection [PROT_EDGE] 		-=  20;
    			self.protection [PROT_BLUNT] 		-=  20;
    			self.protection [PROT_POINT] 		-=  20;
    			self.protection [PROT_FIRE] 		-=  20;
    			self.protection [PROT_Magic] 		-=  20;
    		};
    	};
    Wichtig hierfür also:

    on_equip = Equip_ItAr_TestStats;

    Und in diesen Funktionen dann die Abfrage einbauen:

    if ((self.attribute[ATR_STRENGTH] + self.attribute[ATR_DEXTERITY]) > (44))

    --> heißt, man braucht über 44 Stärke+Geschick, also 45 aufwärts. Für deine Anfrage müsste man dort die if Frage erweitern, dass erstmal nur ein Attribut mindestens 100 sein muss, oder das andere oder eben das Dritte. Ich bin gerade nicht mehr so sehr in der Materie, ich glaube man konnte zwischen if und else noch or einbauen.
    Bei else müsste bei dir eine UnequipWeapon-Funktion stehen, die müsste man vorher raussuchen, sollte aber leicht zu finden sein. So angepasst müsste es genau so laufen, wie du es willst. Bei der Waffe im eigentlichen Script dann die Condition weglassen oder auf 0 setzen und die Info-Box zu der Waffe entsprechend anpassen, dass dort alles korrekt steht.
    Die UnEquip-Funktion ist glaube ich bei der Waffe egal. Bei der Rüstung war bei mir notwendig, da hierbei Rüstungswerte gegeben wurden. Ohne die UnEquip-Funktion hätte man daraus schnell einen stackbaren Bonus gehabt, der permanent bleibt. Wenn es nur um die Abfrage geht, ob man es anlegen kann, braucht es das aber nicht.

    Ich hoffe, das hilft weiter, auch wenn mein Beispiel etwas an deinem Wunsch vorbei ging. Ist leider schon eine Weile her, dass ich aktiv moddete, daher habe ich auf die Schnelle kein neues Script samt Tests angefertigt.

    Gruß,
    Skip

    EDIT: Zu den anderen beiden Fragen könnte ich mit etwas einlesen auch was sagen, aber da muss ich schauen, ob ich heute dafür Zeit finde. Ist wie gesagt etwas länger her, dass ich aktiv moddete, bin da etwas eingerostet.
    Geändert von SkipDasOriginal (24.06.2021 um 14:53 Uhr)

  4. Beiträge anzeigen #4 Zitieren
    Ritter Avatar von Kirides
    Registriert seit
    Jul 2009
    Ort
    Norddeutschland
    Beiträge
    1.781
     
    Kirides ist offline
    Zitat Zitat von Tani-Lue Beitrag anzeigen
    Endlich Spätschichtwoche vorbei und ab rein in die Frühschicht. Jetzt muss ich mich umstrukturieren. Wurd jetzt mal kurz wach und dachte mir, machst das schnell mal im Forum, dass du Antwort hast, wenn du um 15 Uhr wieder zuhause bist.

    Leute, ich hab ganz fleißig die Sufu benutzt über Stunden vorhin und hab mich durch ne Menge gelesen. Bei vielem wurde ich so gar nicht schlau draus und vieles blieb unbeantwortet. Ich suche vielleicht aber auch falsch, muss ich wohl zugeben, weil ich null Plan habe, wie man was wie bezeichnen und finden könnte.

    3 Fragen brennen mir besonders im Kopf. Ich probiere ja gerne momentan alles aus, damit ich auch viel verstehe. Vielleicht könnt ihr mir dabei helfen. Vergesst nicht, dass ihr mir alles so erklären müsst, als wenn ich so total dumm wäre.

    #1 Ich wollte so gerne für den Kämpfer ein richtig fettes eigenes Monster zum Beschwören. Am besten nen Schattenläufer oder sowas wie Warg oder diesen Dämon mit den Hörnern und den Stacheln.
    Leider brauch ich echt so eine richtige Schritt für Schritt Anleitung. Bei den Mage Sachen kenne ich mich 0 aus. Hab mir zu Runes und Scrolls alles angesehen, komm aber nicht drauf klar Wie kann man so eigne Beschwörungen machen?
    ...
    Für ein neues "dem Spieler gegenüber Freundliches Monster" brauchst du bisschen Code:


    eine Monster definition, "MST_MEIN_PARTNER.d"
    Spoiler:(zum lesen bitte Text markieren)
    Code:
    instance MST_MEIN_PARTNER (Mst_Default_Warg)
    {
        name                             = "Scharfzahn";
        level                            = 0;
        guild                            = GIL_SUMMONED_WOLF;
        aivar[AIV_MM_REAL_ID]            = ID_SUMMONED_WOLF;
        aivar[AIV_X_SummonId]            = ID_Summon_PT_Warg;
    
        // VERTEIDIGUNGEN NICHT VERGESSEN
        protection[PROT_FLY]             = 90;
        damagetype                       = DAM_BLUNT;
    
        aivar[AIV_PARTYMEMBER]           = TRUE;
        B_SetAttitude (self, ATT_FRIENDLY); 
        start_aistate = ZS_MM_Rtn_Summoned;
    
        // STAUTSWERTE NICHT VERGESSEN
    
        Npc_SetToFistMode(self);
    };


    Da sieht man schon, wir machen die Kreatur "Friendly" und sagen, dass diese im "ZS_MM_Rtn_Summoned" starten soll (als beschworene Kreatur des Helden)

    Und noch etwas um die Kreatur zu rufen. Als Beispiel ein einfaches Schriftstück:
    Spoiler:(zum lesen bitte Text markieren)
    Code:
    INSTANCE ItWr_Mein_Partner (C_Item)
    {
        name                 = "Partner rufen";
    
        mainflag             = ITEM_KAT_DOCS;
        flags                = ITEM_MISSION;
    
        value                = 2500;
        visual               = "ItWr_Scroll_01.3DS";    //VARIATIONEN: ItWr_Scroll_01.3DS, ItWr_Scroll_02.3DS
        material             = MAT_LEATHER;
    
        on_state[0]          =   Use_ItWr_Mein_Partner;
        scemeName            = "MAP";
        description          = name;
    
        TEXT[5]              = NAME_Value;     COUNT[5] = value;
    };
    
    func void Use_ItWr_Mein_Partner() {
        Wld_SpawnNpcRange(self, MST_MEIN_PARTNER, 1, 500);
        Snd_Play ("MFX_Transform_Cast");
    };


    Das sollte genug für den Anfang sein. Probleme wie "doppelte Beschwörung" sind dann Aufgabe für den Leser
    Geändert von Kirides (24.06.2021 um 15:46 Uhr)

  5. Beiträge anzeigen #5 Zitieren
    Lehrling Avatar von Tani-Lue
    Registriert seit
    Jun 2021
    Beiträge
    10
     
    Tani-Lue ist offline
    Wow Leute! Krass! Danke für die fabelhaften Antworten.

    Sorry, dass ich noch nicht schrieb. Komme wohl doch weniger mit der Frühschicht klar als ich dachte.

    Hab schon bissle was vorbereitet an Antworten. Geb mir Mühe, euch zu antworten. Muss erst Schlaf nachholen.

  6. Beiträge anzeigen #6 Zitieren
    Abenteurer
    Registriert seit
    Sep 2011
    Beiträge
    90
     
    SkipDasOriginal ist offline
    Hab eben was rumprobiert und mein Script für die Rüstung nun auf eine Testwaffe übertragen:
    Code:
    // *****************************************************
    INSTANCE ItMw_WoGTestStats (C_Item)
    {	
    	name 				=	"Dolch";  
    
    	mainflag 			=	ITEM_KAT_NF;
    	flags 				=	ITEM_SWD;	
    	material 			=	MAT_METAL;
    
    	value 				=	Value_VLKDolch;
    
    	damageTotal  		= 	Damage_VLKDolch;
    	damagetype 			=	DAM_EDGE;
    	range    			=  	RANGE_VLKDolch;	
    	
    	on_equip			=	Equip_WoGTestStats;
    	
    	visual 				=	"Itmw_005_1h_dagger_01.3DS";
    
    	description			= name;
    	
    	TEXT[2]				= NAME_Damage;					COUNT[2]	= damageTotal;
    
    	TEXT[4] 			= NAME_OneHanded;
    	TEXT[5]				= NAME_Value;					COUNT[5]	= value;
    };
    
    //----------------------------1----------------------------------
    
    const string PRINT_WoGTestStats					= "Du brauchst mehr Geschick oder Stärke für diese Waffe!";
    
    FUNC VOID Equip_WoGTestStats()
    {
    		if (hero.attribute[ATR_STRENGTH] > (99))
    		{
    		}
    		else if (hero.attribute[ATR_DEXTERITY] > (99))
    		{	
    		}
    		else
    		{
    			Print	(PRINT_WoGTestStats);
    			AI_UnequipWeapons(hero);	
    		};
    };
    Die Schlüsselstellen mal markiert. Das Grüne ist eher optional und war bei mir tatsächlich fehlerhaft (die Umlaute der Meldung waren falsch dargestellt), aber in einer finalen Version sind solche Meldungen natürlich immer nett. Die türkise Equip-Funktion fragt hier direkt nach den Attributen des Helden, wenn es zu wenig ist, werden alle Waffen abgelegt samt der Fehlermeldung. Leider fiel mir auf die Schnelle keine Möglichkeit ein, speziell diese eine Waffe nur abzulegen - im Zweifel würden also auch Bögen oder Armbrüste abgerüstet werden.
    Ansonsten habe ich den Info-Box Eintrag zu der Anforderung leer gelassen. Wäre natürlich schön, wenn man da dann entsprechend einen Text vorbereitet a la "Du benötigst entweder 100 Stärke oder Geschick", aber da war ich dann leider zu faul Die alte Attributs-Condition habe ich einfach rausgelöscht, durch die neue Abfrage beim Anlegen erübrigt sich die ja und wäre nur im Weg. Man hätte die natürlich auch mit // ausklammern oder auf 0 setzen können.

    Aber mit diesem Script hast du einen Dolch, der 100 Stärke oder 100 Geschick benötigt - hier und da ausbesserungswürdig, aber es funktioniert.




    Zu der Beschwörung wurde ja bereits etwas erklärt. Das wäre eine wirksame Methode. Wenn du es jedoch wie bei den Standard-Beschwörungen integrieren willst, ist das etwas umständlicher. Zauber zu erstellen benötigt etwas Vorbereitung: du musst wissen, wo alle Einträge dazu stehen. Unter _work\data\Scripts\Content\Items sind jeweils für Runen und Spruchrollen entsprechende Dateien. Diese wiederum greifen auf die Zauber zurück, welche unter _work\data\Scripts\Content\AI\Magic\Spells gefunden werden. Jedoch gibt es diverse andere Verweise - so muss man auch in _work\data\Scripts\Content\AI\Magic im Script Spell_ProcessMana.d einen Eintrag zu dem Zauber machen, um abzufragen, ob der Manaverbrauch korrekt abgezogen wird vom Zauberer. In der Constants.d unter _work\data\Scripts\Content\_intern müssen mehrere Einträge gemacht werden. Hier weist man dem Zauber eine ID zu (oder eher: eine ID bekommt einen Zauber zugewiesen), der ID wiederum wird dann noch der Zauber-Name zugewiesen und auch, welche Animation dabei abgespielt wird (Teleport-Animation, Feuerpfeilwerfen-Animation etc). Ich glaube (kann mich aber irren - wie zuvor gepostet, bin ich dahingehend eingerostet!), das wären alle nötigen Einträge, um einen Zauber so zu integrieren, wie es die Originalen sind.
    Noch ein Beispiel, wie das explizite Zauber-Script eines Beschwörungszaubers aussähe, am Beispiel des Golems (ich kommentiere farblich dazu):
    Code:
    // ***************
    // SPL_SummonGolem
    // ***************
    
    const int SPL_Cost_SummonGolem		= 80; Die Manakosten, sollte es sich nicht um eine Spruchrolle handeln (die sind separat genormt)
    
    
    INSTANCE Spell_SummonGolem (C_Spell_Proto)	//ehem. Spell_Golem
    {
    	time_per_mana			= 0; Für aufladbare Zauber nötig
    	spelltype 				= SPELL_BAD; Ob der Zauber "Good", "Neutral" oder "Bad" ist. Ich glaube, je nach dem variiert die Reaktion der NPC, dass zB bei einem Lichtzauber (Good) keiner brüllt, die scheiß Magie solle weg.
    	targetCollectAlgo		= TARGET_COLLECT_NONE; Das Ziel des Zaubers. Bei einer Beschwörung irrelevant, interessanter für Angriffszauber
    };
    
    func int Spell_Logic_SummonGolem (var int manaInvested) Hier wird auch der Manaverbrauch angefragt, eben aus jener Datei, die ich oben erwähnte
    {	
    	if (Npc_GetActiveSpellIsScroll(self) && (self.attribute[ATR_MANA] >= SPL_Cost_Scroll)) Abfrage, ob es eine Spruchrolle ist -> dann wird die Variabel der Manakosten für Spruchrollen abgezogen
    	{
    		return SPL_SENDCAST; -> Zauber wird ausgeführt wenn man genug Mana hat
    	}
    	else if (self.attribute[ATR_MANA] >= SPL_Cost_SummonGolem) Dasselbe nur mit einer Rune. Die Manakosten für die Rune werden dann abgezogen
    	{
    		return SPL_SENDCAST; -> Zauber wird ausgeführt, wenn man genug Mana hat
    	}
    	else //nicht genug Mana Endlich erklärt sich das Script selbst, dachte schon ich muss alles machen...
    	{
    		return SPL_SENDSTOP; -> Zauber wird nicht ausgeführt da zu wenig Mana
    	};
    	
    };
    
    func void Spell_Cast_SummonGolem() Der Effekt des Zaubers
    {
    	if (Npc_GetActiveSpellIsScroll(self)) Wieder die Abfrage ob es eine Spruchrolle ist, mit entsprechender Kostenberechnung
    	{
    		self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_Scroll;
    	}
    	else
    	{
    		self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_SummonGolem;
    	};
    	
    	if (Npc_IsPlayer(self)) Abfrage, ob der Spielercharakter zaubert oder ein NPC - je nachdem wird eine andere Steingolem-Instanz beschworen
    	{		
    		Wld_SpawnNpcRange( self,Summoned_Golem,1,500); Hier wird für den Spieler der eigens erstellte Steingolem beschworen. Er ist also gegenüber dem Spieler freundlich gesinnt.
    	}
    	else
    	{
    		Wld_SpawnNpcRange( self,StoneGolem,1,500); Hier wird für einen NPC der normale Steingolem gespawnt. So wie es bei Insert Stonegolem als Cheat geschehen würde
    	};
    	
    	self.aivar[AIV_SelectSpell] += 1; Das ist, wenn ich mich recht erinnere, dafür da, damit die KI weiß, dass so eben dieser Zauber gezaubert wurde. Ansonsten könnte es ja passieren, dass zB ein NPC-Magier immer weiter Beschwörungszauber spammt, selbst wenn dadurch der Steingolem ständig ersetzt wird statt mehrere zu beschwören.
    };
    Ich weiß darüber zwar auch nicht alles, zum Beispiel frage ich mich gerade, wo die Dauer der Beschwörung festgelegt wird, aber ich denke, anhand dieses Beispiels sollte man, sofern man sich mit dem übrigen Einträgen bereits vertraut machte, ohne Probleme eine eigene Beschwörung im Gothic-Stile nachbauen können.





    Zu den Texturen wurde das ein oder andere ja auch schon gesagt. Mit der reinen Erstellung davon kenne ich mich nicht nennenswert aus, es reicht nur zum Anpassen von Gesichtern im kleinen Maße. Jedoch habe ich schon oft Rüstungsmodelle mit neuen Texturen versehen. Notwendig dazu ist, dass die Rüstungen als .asc Datei unter _work\data\Anims\armor (oder auch ohne 'armor', je nachdem wie deine Ordnerstruktur ist) vorhanden ist, da kopierst du dir deine Rüstung (also das Modell) raus und editierst die Datei mit neuem Namen. Ich öffne die .asc dann mit dem normalen Texteditor von Windows, aber bestimmt gibt es da bessere Programme. Dort findest du irgendwo einen Eintrag wie *BITMAP "Hum_Wache_V2.tga" bei der Milizrüstung. Es hilft da, über STRG+F nach der Textur (zB mit dem Begriff ".tga") zu suchen. Du wirst auch einige Körpertexturen finden, aber diese sind vom Namen her in der Regel ersichtlich. Hier musst du einfach den Dateinamen der neuen Textur eingeben. Heißt deine neue Textur, die du zB aus der Modderdatenbank holst oder selbst gemacht hast, etwa "MilizRuestung_Neu", ersetzt du "Hum_Wache_V2.tga" mit "MilizRuestung_Neu.tga". Die .asc weist du dann im Itemscript einer neuen Rüstung zu. Im ModStarter von Gothic musst du dann aber noch die Scripte Parsen (für das neue Item) und alles konvertieren. Die Textur (falls nicht bereits zuvor geschehen), wird dann zu "MilizRuestung_Neu-C.TEX" umgewandelt, das Rüstungsmesh wird von .asc zu einer .MDM Datei, wenn ich mich recht erinnere. Diese zurück zu .asc umzuwandeln ist ziemlich aufwändig (so aufwändig, dass ich das glaube ich noch nie machte ), daher wenn du sie wieder überarbeiten willst, lieber mit der vorhandenen .asc arbeiten und die alte .MDM Datei vor dem testen löschen (oder als Back-Up sichern). Das Starten des Spiels wird etwas länger dauern als sonst, aber wenn alles richtig gemacht wurde, sollte nun eine neue Rüstung verfügbar sein. Manchmal hatte ich persönlich beim ersten Testen Glitches, zB hatten dann alle NPCs plötzlich die neue Rüstung an - zusätzlich zu ihrer eigenen. Das war aber mit einem normalen Neustart des Spiels behoben.


    Ich hab jetzt mehr dazu geschrieben als ich wollte, bitte entschuldige. Wenn weiter Fragen bestehen, nur zu - wobei es bestimmt bessere Erklärer dafür gibt als mich

    Gruß,
    Skip

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
Impressum | Link Us | intern
World of Gothic © by World of Gothic Team
Gothic, Gothic 2 & Gothic 3 are © by Piranha Bytes & Egmont Interactive & JoWooD Productions AG, all rights reserved worldwide