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 14 von 14
  1. Beiträge anzeigen #1 Zitieren
    Legende der Amazonen Avatar von Bisasam
    Registriert seit
    Dec 2006
    Ort
    Meine Faust in Sinis Gesicht
    Beiträge
    9.635
     
    Bisasam ist offline

    Art des Schadens herausfinden

    Hallo,

    ich möchte in G1 herausfinden, welcher Schaden dazu geführt hat, dass beim Npc die AssessDamage (bzw. eine ihrer Variationen) aufgerufen wird.
    Normalerweise könnte man ja über die Gezogene Waffe von other gehen, aber die Waffe die ich meine verfügt über zwei Schadensarten: Point und Fire. Das bringt mir also nicht viel.
    Auch bringt es mir nichts, über den Bodystate BS_MOD_FIRE (oder so ähnlich) zu gehen, weil das während der Brenndauer des Gegners immer aktiv ist.

    Vielleicht hilft es ja, wenn ich den Sachverhalt erstmal erläutere...

    Ich habe einen Bogen, der sowohl Point, als auch Fire schaden macht. Außerdem habe ich über die Assessdamage mein neues Schadensberechnungssystem eingepflegt, was dafür sorgt, dass Fernkampfwaffen Geschicklichkeit einbeziehen.
    Das Problem ist nun, dass bei dem Feuerschaden auch jedes Mal die Geschicklichkeit mit einbezogen wird. Mit anderen Worten...

    100 Point + 100 Dex - Rüstung = HP-Verlust
    UND
    10 Feuer + 100 Dex - Rüstung = HP-Verlust

    Das ist aber zu viel. Ich will verhindern, dass Feuerschaden zu einem Abzug der Geschicklichkeit führt. Wenn ich über den Bodystate gehe, wird über den kompletten Brenn-Zeitraum überhaupt kein Geschick mehr abgezogen, nicht mal bei normalen Schüssen. Das bringt also nichts.
    Ich brauche konkret die Schadensart, die AssessDamage hervorruft und muss das so verhindern. Nur wie komme ich da dran?


    "Das erinnert doch sehr erfreulich an das, was man sich als Gothicfan wünscht!"
    -Korallenkette

  2. Beiträge anzeigen #2 Zitieren
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.446
     
    Lehona ist offline
    Ich befürchte da wirst du nicht um die "LeGo-Schadensberechnung" drumrum kommen. Zumindest wüsste ich keinen einfacheren Weg - alle anderen Ideen die ich hätte bräuchten eine komplette Aushebelung der gothiceigenen Schadensberechnung, das ist für deine Zwecke vielleicht etwas Overkill.

    In der neuen Version der Schadensberechnung (gibt auch G1 Adressen irgendwo gegen Ende des Threads) kann man sich die verschiedenen Schadensarten anschauen (sind im Damagedescriptor).

    Mich wundert allerdings, dass die AssessDamage öfter aufgerufen wird. Liegt das vielleicht einfach daran, dass der NPC brennt? Soll heißen: Tritt das Verhalten auch auf, wenn du Point und Edge mischt?

  3. Beiträge anzeigen #3 Zitieren
    banned
    Registriert seit
    Jan 2009
    Ort
    Oberösterreich
    Beiträge
    2.393
     
    Moe ist offline
    Wird bei Uriziel auch immer Stärke zum Schaden jeweils für Magieschaden und Feuerschaden addiert?

    Code:
    //---------------------------------------------------------------------
    //	Schwert für den Untoten Ork-Hohepriester (aufgeladen)
    //---------------------------------------------------------------------
    instance Mythrilklinge02 (C_Item) 
    {	
    	name 				=	"URIZIEL";
    
    	mainflag 			=	ITEM_KAT_NF;
    	flags 				=	ITEM_2HD_SWD|ITEM_MISSION;	
    	material 			=	MAT_METAL;
    
    	value 				=	10000;
    
    //	damageType				=	DAM_EDGE|DAM_FIRE|DAM_MAGIC;//Templer sollten sofort tot sein
    	damageType				=	DAM_FIRE|DAM_MAGIC;
    //	damageType				=	DAM_MAGIC;
    //	damage[DAM_INDEX_EDGE]	=	  1;						//Templer sollten sofort tot sein
    	damage[DAM_INDEX_FIRE]	=	 30;
    	damage[DAM_INDEX_MAGIC]	=	120;
    	//damage[DAM_INDEX_MAGIC]	=	150;
    
    	range    			=  	180;		
    	cond_atr[2]   		= 	ATR_STRENGTH;
    	cond_value[2]  		= 	30;
    	visual 				=	"ItMw_2H_Sword_Sleeper_02.3DS";
    	description			= 	name;
    	TEXT[0]				=	"Dies ist das Schwert Uriziel.";
    	TEXT[1]				= 	"Uriziel ist magisch geladen";
    	TEXT[2]				=	NAME_Dam_Magic;			COUNT[2]	=	damage[DAM_INDEX_MAGIC];
    	TEXT[3]				=	NAME_Dam_Fire;			COUNT[3]	=	damage[DAM_INDEX_FIRE];
    	TEXT[4] 			=	NAME_Str_needed;		COUNT[4]	=	cond_value[2];
    	TEXT[5]				=	NAME_Value;				COUNT[5]	=	value;
    };

  4. Beiträge anzeigen #4 Zitieren
    Legende der Amazonen Avatar von Bisasam
    Registriert seit
    Dec 2006
    Ort
    Meine Faust in Sinis Gesicht
    Beiträge
    9.635
     
    Bisasam ist offline
    Solange der Npc HP verliert, wird auch die Assessdamage aufgerufen, ja.
    Aber Geschick wird nicht abgezogen, wenn ich eine Nahkampfwaffe anstelle eines Bogens habe. Dann brennt der Npc einfach nur vor sich hin.

    Alternativ würde es mir schon helfen, wenn ich in der AssessDamage einmaligen Feuerschaden mit Effekt verursachen könnte. Wichtig: HP des Gegners -= 10-Feuerschutz und fürs Visuelle ein Brandeffekt für ne Sekunde der keinen Schaden verursacht. Muss ich da ein Projektil irgendwie abfeuern oder so?


    "Das erinnert doch sehr erfreulich an das, was man sich als Gothicfan wünscht!"
    -Korallenkette

  5. Beiträge anzeigen #5 Zitieren
    banned
    Registriert seit
    Jan 2009
    Ort
    Oberösterreich
    Beiträge
    2.393
     
    Moe ist offline
    Ich hab in meiner G2 Mod Uriziel so eingefügt:

    Code:
    INSTANCE ItMw_URIZIEL  (C_Item) 
    {	
    	name 				=	"Uriziel";
    
    	mainflag 			=	ITEM_KAT_NF;
    	flags 				=	ITEM_2HD_SWD;	
    	material 			=	MAT_METAL;
    
    	value 				=	6000;
    
    	damageTotal			= 	200;
    	damagetype			=	DAM_EDGE|DAM_FIRE|DAM_MAGIC;
    	range    			=  	140;	
    	
    	cond_atr[2]   		= 	ATR_STRENGTH;
    	cond_value[2]  		= 	180;
    	visual 				=	"ItMw_2H_Sword_Sleeper_02.3DS";
    
    	description			= name;
    	TEXT[0]				="Dies ist das Schwert Uriziel! Es ist magisch geladen."; 
    	TEXT[1]				= NAME_Damage;					COUNT[1]	= damageTotal;
    	TEXT[2] 			= NAME_Str_needed;				COUNT[2]	= cond_value[2];
    	TEXT[3]				= NAME_TwoHanded;			
    	TEXT[4]				= NAME_RANGE;					COUNT[4]	= range;	
    	TEXT[5]				= NAME_Value;					COUNT[5]	= value;
    
    };
    Die Gegner brennen. Hilft dir das?

  6. Beiträge anzeigen #6 Zitieren
    Legende der Amazonen Avatar von Bisasam
    Registriert seit
    Dec 2006
    Ort
    Meine Faust in Sinis Gesicht
    Beiträge
    9.635
     
    Bisasam ist offline
    Mein Bogen ist auch mit DAM_FIRE eingefügt, so wie Uriziel in G1. Das erzeugt aber halt den Schaden der doppelt und dreifach die assessdamage anspringt.


    "Das erinnert doch sehr erfreulich an das, was man sich als Gothicfan wünscht!"
    -Korallenkette

  7. Beiträge anzeigen #7 Zitieren
    banned
    Registriert seit
    Jan 2009
    Ort
    Oberösterreich
    Beiträge
    2.393
     
    Moe ist offline
    Und wenn du nur einen Schadenswert machst, aber mit mehreren Damage Types? Was passiert dann?

  8. Beiträge anzeigen #8 Zitieren
    Legende der Amazonen Avatar von Bisasam
    Registriert seit
    Dec 2006
    Ort
    Meine Faust in Sinis Gesicht
    Beiträge
    9.635
     
    Bisasam ist offline
    Moment mal... Wenn ich DAM_FIRE auf 0 lasse, müsste der Gegner Schadlos brennen. Dann zieh ich den Rest über ne Spezialbehandlung in der Schadensberechnung ab und fertig. Ich hoffe das klappt...


    "Das erinnert doch sehr erfreulich an das, was man sich als Gothicfan wünscht!"
    -Korallenkette

  9. Beiträge anzeigen #9 Zitieren
    Held Avatar von Teron Gorefiend
    Registriert seit
    Nov 2006
    Ort
    im Alchemielabor
    Beiträge
    5.116
     
    Teron Gorefiend ist offline
    könntest du mal den ganzen code deiner AssessDamage posten? denn meine Schadensberechnung ändern in G1 klappt nicht wirklich. Vielleicht klappt dein Weg ja.

  10. Beiträge anzeigen #10 Zitieren
    Legende der Amazonen Avatar von Bisasam
    Registriert seit
    Dec 2006
    Ort
    Meine Faust in Sinis Gesicht
    Beiträge
    9.635
     
    Bisasam ist offline
    Behandelt ausschließlich den Bogenschaden!
    Meine Spezialbehandlung für Feuerschaden UND Bogenschaden habe ich rausgenommen, sieht aber nicht viel anders aus, nur halt mit Fire statt point.

    Diese Funktion muss in ALLEN assessdamage-Funktionen aufgerufen werden. Auch für Orks und Tiere nochmal extra, da diese die normale B_Assessdamage nicht ausführen!

    Code:
    func void BogenDamageUpdate(var C_NPC self, var C_NPC other)
    {
    
    	
    	var int Fernkampfwaffe;
    	var int FernkampfDamage;
    	var C_Item FKWaffe;
    
    	if Npc_HasReadiedRangedWeapon(other)
    	&& self.flags!=NPC_FLAG_IMMORTAL
    	{
    		//Fernkampfwaffe=Npc_GetRangedWeapon (other);
    		FKWaffe=Npc_GetReadiedWeapon (other);
    		FernkampfDamage=FKWaffe.damageTotal;//Fernkampfwaffe.damageTotal;
    			
    		
    		if FernkampfDamage+other.attribute[ATR_DEXTERITY]>self.protection[PROT_POINT]
    		{
    			if FernkampfDamage<=self.protection[PROT_POINT] //also Bogenschaden hat nicht stattgefunden
    			{
    			Npc_ChangeAttribute (self,ATR_HITPOINTS,-(other.attribute[ATR_DEXTERITY]+FernkampfDamage-self.protection[PROT_POINT]));	
    			}else
    			{
    						
    			Npc_ChangeAttribute (self,ATR_HITPOINTS,-other.attribute[ATR_DEXTERITY]); //ansonsten einfach dex abziehen	
    			
    			};
    			
    			if self.attribute[ATR_HITPOINTS]<=0
    			&& (Npc_IsPlayer   (other)
    			||	(C_NpcIsHuman  (other) && other.aivar[AIV_PARTYMEMBER]))
    			{
    			
    				B_DeathXP();	
    			};			
    		};		
    	};	
    	
    	
    	
    };


    "Das erinnert doch sehr erfreulich an das, was man sich als Gothicfan wünscht!"
    -Korallenkette

  11. Beiträge anzeigen #11 Zitieren
    General Avatar von joey1990
    Registriert seit
    Aug 2008
    Ort
    Germanien/Thüringen/Hermsdorfer Kreuz
    Beiträge
    3.342
     
    joey1990 ist offline
    Ich habe da extra was, was gegner brennen lässt ohne schaden ...


    EDIT

    https://www.worldofgothic.de/?go=mod...page=1&order=0

    da kannst du natürlich den schadenswert auf 0 setzen und der gegner brennt

  12. Beiträge anzeigen #12 Zitieren
    Held Avatar von Teron Gorefiend
    Registriert seit
    Nov 2006
    Ort
    im Alchemielabor
    Beiträge
    5.116
     
    Teron Gorefiend ist offline
    Zitat Zitat von Bisasam Beitrag anzeigen
    Diese Funktion muss in ALLEN assessdamage-Funktionen aufgerufen werden. Auch für Orks und Tiere nochmal extra, da diese die normale B_Assessdamage nicht ausführen!
    Wo genau finde ich diese Dateien?

    In G2 befindet sich unter B_Human / B_Assessdamage sowohl die datei für Monster im Monster Ordner.
    Aber in G1 ist das doch ein bisschen anders aufgebaut dort finde ich keine assessdamage, nur für Orcs und irgendwie scheint die auch nicht zu funktionieren. habe in func void B_Orc_AssessDamage() print("orc assess damage "); aufgerufen aber der text erscheint nicht wenn ich einen Orc treffe.

  13. Beiträge anzeigen #13 Zitieren
    Knight
    Registriert seit
    Aug 2009
    Ort
    Hessen
    Beiträge
    1.484
     
    Cryp18Struct ist offline
    Wenn du in allen G1 Skripten nach PERC_ASSESSDAMAGE suchst findest du alle Funktionen welche für diese Wahrnehmung angemeldet werden. Auf den ersten Blick scheint das immer in 2 Funktionen aufgeteilt zu sein, eine während des Kampfes und eine andere wenn NPC noch nicht im Kampf ist.

    ZS_ReactToDamage
    B_CombatReactToDamage

    B_Orc_AssessDamage
    B_MM_ReactToDamage
    B_MM_ReactToCombatDamage
    B_MMM_CombatReactToDamage
    Geändert von Cryp18Struct (25.03.2018 um 19:26 Uhr)

  14. Beiträge anzeigen #14 Zitieren
    Legende der Amazonen Avatar von Bisasam
    Registriert seit
    Dec 2006
    Ort
    Meine Faust in Sinis Gesicht
    Beiträge
    9.635
     
    Bisasam ist offline
    Für Monster gibt es die Version in der B_MM_Master bzw. in der ZS_MM_Master. Irgendwas mit Master halt. Liegt irgendwo im AI-Ordner.


    "Das erinnert doch sehr erfreulich an das, was man sich als Gothicfan wünscht!"
    -Korallenkette

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