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

 

Seite 1 von 2 12 Letzte »
Ergebnis 1 bis 20 von 33
  1. Beiträge anzeigen #1 Zitieren
    Keks-Experte  Avatar von TazmanDevil
    Registriert seit
    Aug 2008
    Ort
    Diesseits des grossen Teiches
    Beiträge
    37.967
     
    TazmanDevil ist offline

    Verbesserungsvorschläge für B_MM_AssessDamage

    B_MM_AssessDamage.d behandelt den Schaden, den Monster nehmen und wird bei jedem Treffer, welcher bei einem Monster Schaden verursacht, ausgeführt.
    Hinweis: die meisten der hier aufgeführten Punkte betreffen auch die B_AssessDamage.d (Schaden für Humans).

    Zeile 489
    Code:
    var C_NPC PCH; PCH = Hlp_GetNpc(PC_Hero);
    => Sollte man sich überlegen, ob das wirklich sinnvoll ist. In dem Skript kennen wir bereits die 3 Variablen 'self' (derjenige, der den Schaden nimmt), 'other' (derjenige, der den Schaden austeilt) und 'hero' (ist immer der Held)

    Insbesondere wegen diesen Abfragen (davon gibt es einige im Skript):
    if (Hlp_GetInstanceID(hero) == Hlp_GetInstanceID(PCH))
    ...

    Im Prinzip wollte man wohl prüfen, ob other der hero ist (also Hlp_GetInstanceID(hero) == Hlp_GetInstanceID(other) ). Geprüft hat man aber eigentlich, ob hero noch der PC_Hero ist. Das Ööfnet nun die Tür für Treffer von NPC an Monstern, oder Monster an Monster. Das ist bei den Pfeilen nicht so gravierend, da nur der Held und einige Händler solche besitzen. Bei Nahkampf ist das riskant.

    => unbedingt beheben!
    Ich würde den PCH komplett eliminieren und mich auf self, other, hero (und ggf noch die Npc_IsPlayer() Funktion) beschränken.

    Auch zu überlegen wäre: Diese Abfrage muss man nicht für jeden Pfeiltyp nochmal machen. Es reicht, wenn man die Abfrage einmal für alle Pfeile macht (d.h. ein if-Block um zu Prüfen, ob der hero den Schaden austeilt, und darin dann die einzelnen if-Blöcke für die jeweiligen Pfeil und Bolzentypen).
    Geändert von TazmanDevil (21.02.2017 um 20:44 Uhr)

  2. Beiträge anzeigen #2 Zitieren
    Keks-Experte  Avatar von TazmanDevil
    Registriert seit
    Aug 2008
    Ort
    Diesseits des grossen Teiches
    Beiträge
    37.967
     
    TazmanDevil ist offline
    Zeile 492 .. 794: Löschen! werden nicht benötigt.
    Code:
        var C_ITEM NahkampfwaffeTest; NahkampfwaffeTest = Npc_GetReadiedWeapon(other);
        var C_ITEM Nahkampfwaffe1; Nahkampfwaffe1 = Npc_GetReadiedWeapon(other);
        ...
        var C_ITEM Nahkampfwaffe302; Nahkampfwaffe302 = Npc_GetReadiedWeapon(other);
    Geändert von TazmanDevil (21.02.2017 um 20:44 Uhr)

  3. Beiträge anzeigen #3 Zitieren
    Keks-Experte  Avatar von TazmanDevil
    Registriert seit
    Aug 2008
    Ort
    Diesseits des grossen Teiches
    Beiträge
    37.967
     
    TazmanDevil ist offline
    Nicht falsch, aber auch ein Zeichen von Ineffizienz:

    Zeile 481..488
    Code:
    	var C_ITEM normalcarr; normalcarr = Npc_GetReadiedWeapon(other);
    	...
    	var C_ITEM magicarr; magicarr = Npc_GetReadiedWeapon(other);
    Hier hätte eigentlich ein einziges Item gereicht. In dem Skript wird später nur geprüft, ob die Waffe des Helden mit einem der Pfeil/Bolzen als Minution ausgerüstet ist. Dazu braucht man nicht 9 Variablen die ReadiedWappon zuweisen.
    Geändert von TazmanDevil (21.02.2017 um 20:45 Uhr)

  4. Beiträge anzeigen #4 Zitieren
    Keks-Experte  Avatar von TazmanDevil
    Registriert seit
    Aug 2008
    Ort
    Diesseits des grossen Teiches
    Beiträge
    37.967
     
    TazmanDevil ist offline
    Pfeil/Bolzentreffer aktuell (14 mal; 1 mal pro Typ):
    Code:
    if (Hlp_GetInstanceID(hero) == Hlp_GetInstanceID(PCH))
       && (Npc_HasItems (hero, ItRw_Arrow_Sharp) > 0)
       && (geschaerftcarr.munition == ItRw_Arrow_Sharp)
    {
        Npc_GetInvItem(hero, ItRw_Arrow_Sharp); //befüllt 'item'
     
        if (Hlp_GetInstanceID(ItRw_Arrow_Sharp) == Hlp_GetInstanceID(item))
        {
            Npc_ChangeAttribute(self, ATR_HITPOINTS, -5); // Zusatzschaden
            //WLD_PlayEffect("VOB_BURN", self, self, 0, 0, 0, FALSE); // Opfer brennt
        };
        // ------ XP ------ Test 11.8.16
        if ( Npc_IsPlayer(other) || (other.aivar[AIV_PARTYMEMBER]==TRUE) )
            && (self.aivar[AIV_VictoryXPGiven] == FALSE)
    	//&& (Npc_IsDead (self))//Bedingung ändert nichts
        {
            B_GivePlayerXP (self.level * XP_PER_VICTORY);				
            self.aivar[AIV_VictoryXPGiven] = TRUE;
        };
    };
    Würde ich zumindest dahingehend ändern:
    Code:
    if (Hlp_GetInstanceID(hero) == Hlp_GetInstanceID(other))
       && (Npc_HasItems (hero, ItRw_Arrow_Sharp) > 0)
       && (geschaerftcarr.munition == ItRw_Arrow_Sharp)  
    {
        Npc_GetInvItem(hero, ItRw_Arrow_Sharp); //befüllt 'item'
     
        if (Hlp_GetInstanceID(ItRw_Arrow_Sharp) == Hlp_GetInstanceID(item))
        {
            Npc_ChangeAttribute(self, ATR_HITPOINTS, -5); // Zusatzschaden
            //WLD_PlayEffect("VOB_BURN", self, self, 0, 0, 0, FALSE); // Opfer brennt
        };
        // ------ XP ------ Test 11.8.16
        if  ( Npc_IsPlayer(other) || (other.aivar[AIV_PARTYMEMBER]==TRUE) ) &&
             ((self.aivar[AIV_VictoryXPGiven] == FALSE)
    	 && (Npc_IsDead (self)) 
        {
            B_GivePlayerXP (self.level * XP_PER_VICTORY);				
            self.aivar[AIV_VictoryXPGiven] = TRUE;
        };
    };
    Hinweis:
    1. geschaerftcarr.munition == ItRw_Arrow_Sharp
    verstehe ich jetzt nicht. C_Item.munition ist vom Typ int. ItRw_Arrow_Sharp ist aber ein C_Item
    OK, funktioniert tatsächlich so. Daedalus ist manchmal wirklich nicht logisch.
    2. sollte Npc_IsDead (self) wirklich nicht funktionieren (im Sinne von: Vergabe der XP erst bei Tod), kann man auch self.attribute[ATR_HITPOINTS] <= 0 ausprobieren.
    3. Ebenfalls nicht wirklich klar ist, warum die XP-Vergabe nicht nur dann ausgeführt wird, wenn der Zusatzschaden hinzugefügt wird. Ohne Zusatzschaden sollte die XP ja anderweitig vergeben werden (ZS_Death)
    Geändert von TazmanDevil (22.02.2017 um 20:29 Uhr)

  5. Beiträge anzeigen #5 Zitieren
    Keks-Experte  Avatar von TazmanDevil
    Registriert seit
    Aug 2008
    Ort
    Diesseits des grossen Teiches
    Beiträge
    37.967
     
    TazmanDevil ist offline
    Zeile 1228 (aktuell):
    Code:
    var C_ITEM OthWeapNpcSchwertkaempfer; 
    if ((Hlp_GetInstanceID(hero) == Hlp_GetInstanceID(PCH))
            && (self.aivar[AIV_ArenaFight] != AF_RUNNING)//neue Bedingung 16.2.17 keine Sonderdamage bei Arenakampf
           	&& (StarkerSchwertkaempferGelernt == TRUE)
           	&& (Npc_HasReadiedMeleeWeapon(hero) == TRUE))//statt hero ggf. other 
           	&& ((self.guild == GIL_SHADOWBEAST)
    		|| (self.guild == GIL_WOLF)
    		|| (self.guild == GIL_WARAN)
    		|| (self.guild == GIL_ALLIGATOR)
    		|| (self.guild == GIL_Gargoyle)
    		|| (self.guild == GIL_SNAPPER)
    		|| (self.guild == GIL_LURKER)
    		|| (self.guild == GIL_SWAMPSHARK)
    		|| (self.guild == GIL_MINECRAWLER)
    		|| (self.guild == GIL_TROLL)
    		|| (self.guild == GIL_SCAVENGER)
    		|| (self.guild == GIL_GIANT_BUG)
    		|| (self.guild == GIL_GIANT_RAT)	
    		|| (self.guild == GIL_GOBBO)
    		|| (self.guild == GIL_BLOODFLY)	
    		|| (self.guild == GIL_MOLERAT)
    		|| (self.guild == GIL_SHEEP)	
    		|| (self.guild == GIL_SUMMONED_WOLF))
    		&& ((self.guild != GIL_GOBBO_SKELETON)
    		|| (self.guild != GIL_SKELETON_MAGE)
    		|| (self.guild != GIL_SKELETON)
    		|| (self.guild != GIL_DRACONIAN)
    		|| (self.guild != GIL_SHADOWBEAST_SKELETON)
    		|| (self.guild != GIL_ZOMBIE)
    		|| (self.guild != GIL_STONEGUARDIAN)
    		|| (self.guild != GIL_STONEGOLEM)
    		|| (self.guild != GIL_FIREGOLEM)
    		|| (self.guild != GIL_ICEGOLEM)
    		|| (self.guild != GIL_SWAMPGOLEM)
    		|| (self.guild != GIL_DRAGON)
    		|| (self.guild != GIL_HARPY)
    		|| (self.guild != GIL_DEMON)
    		|| (self.guild != GIL_SUMMONED_DEMON)
    		|| (self.guild != GIL_SUMMONED_SKELETON)
    		|| (self.guild != GIL_SUMMONED_GOBBO_SKELETON)
    		|| (self.guild != GIL_SUMMONED_GOLEM)
    		|| (self.guild != GIL_SUMMONEDGuardian)
    		|| (self.guild != GIL_SUMMONEDZombie))
    		&& ((self.npctype != NPCTYPE_ORC)
            || (self.npctype != NPCTYPE_AMBIENTMYRTANAORC)
            || (self.npctype != NPCTYPE_MYRTANAORCSHAMAN)
            || (self.npctype != NPCTYPE_MYRTANAORC))
    {
    	OthWeapNpcSchwertkaempfer = Npc_GetEquippedMeleeWeapon(hero);
    		
    	if ((Hlp_GetInstanceID(hero) == Hlp_GetInstanceID(PCH))
    	        && (StarkerSchwertkaempferGelernt == TRUE))
    
    	{
    		// ------ XP ------ Test 11.8.16
    	       if ( Npc_IsPlayer(other) || (other.aivar[AIV_PARTYMEMBER]==TRUE) )
    	       && (self.aivar[AIV_VictoryXPGiven] == FALSE)							
    	       {
    		    B_GivePlayerXP (self.level * XP_PER_VICTORY);			
    		
    		    self.aivar[AIV_VictoryXPGiven] = TRUE;
    	        };		
    			
    		Npc_ChangeAttribute (self, ATR_HITPOINTS, -15);
    		//PrintScreen("Schwertkämpfer Wildtreffer!",-1,40,FONT_Screen,1);
    		return;	
    	   };	
       };

    Code:
    var C_ITEM OthWeapNpcSchwertkaempfer; 
    if ((Hlp_GetInstanceID(hero) == Hlp_GetInstanceID(other))
            && (self.aivar[AIV_ArenaFight] != AF_RUNNING)//neue Bedingung 16.2.17 keine Sonderdamage bei Arenakampf
           	&& (StarkerSchwertkaempferGelernt == TRUE)
           	&& (Npc_HasReadiedMeleeWeapon(hero) == TRUE))//statt hero ggf. other 
           	&& ((self.guild == GIL_SHADOWBEAST)
    		|| (self.guild == GIL_WOLF)
    		|| (self.guild == GIL_WARAN)
    		|| (self.guild == GIL_ALLIGATOR)
    		|| (self.guild == GIL_Gargoyle)
    		|| (self.guild == GIL_SNAPPER)
    		|| (self.guild == GIL_LURKER)
    		|| (self.guild == GIL_SWAMPSHARK)
    		|| (self.guild == GIL_MINECRAWLER)
    		|| (self.guild == GIL_TROLL)
    		|| (self.guild == GIL_SCAVENGER)
    		|| (self.guild == GIL_GIANT_BUG)
    		|| (self.guild == GIL_GIANT_RAT)	
    		|| (self.guild == GIL_GOBBO)
    		|| (self.guild == GIL_BLOODFLY)	
    		|| (self.guild == GIL_MOLERAT)
    		|| (self.guild == GIL_SHEEP)	
    		|| (self.guild == GIL_SUMMONED_WOLF))
    		&& ((self.guild != GIL_GOBBO_SKELETON)
    		|| (self.guild != GIL_SKELETON_MAGE)
    		|| (self.guild != GIL_SKELETON)
    		|| (self.guild != GIL_DRACONIAN)
    		|| (self.guild != GIL_SHADOWBEAST_SKELETON)
    		|| (self.guild != GIL_ZOMBIE)
    		|| (self.guild != GIL_STONEGUARDIAN)
    		|| (self.guild != GIL_STONEGOLEM)
    		|| (self.guild != GIL_FIREGOLEM)
    		|| (self.guild != GIL_ICEGOLEM)
    		|| (self.guild != GIL_SWAMPGOLEM)
    		|| (self.guild != GIL_DRAGON)
    		|| (self.guild != GIL_HARPY)
    		|| (self.guild != GIL_DEMON)
    		|| (self.guild != GIL_SUMMONED_DEMON)
    		|| (self.guild != GIL_SUMMONED_SKELETON)
    		|| (self.guild != GIL_SUMMONED_GOBBO_SKELETON)
    		|| (self.guild != GIL_SUMMONED_GOLEM)
    		|| (self.guild != GIL_SUMMONEDGuardian)
    		|| (self.guild != GIL_SUMMONEDZombie))
    		&& ((self.npctype != NPCTYPE_ORC)
            || (self.npctype != NPCTYPE_AMBIENTMYRTANAORC)
            || (self.npctype != NPCTYPE_MYRTANAORCSHAMAN)
            || (self.npctype != NPCTYPE_MYRTANAORC))
    {
        OthWeapNpcSchwertkaempfer = Npc_GetEquippedMeleeWeapon(hero);  //Wozu?
    	
        if ((Hlp_GetInstanceID(hero) == Hlp_GetInstanceID(PCH))
    	        && (StarkerSchwertkaempferGelernt == TRUE))   //Haben wir gerade erst abgeprüft
    
        Npc_ChangeAttribute (self, ATR_HITPOINTS, -15); //erst Hitpoints abziehen
        //PrintScreen("Schwertkämpfer Wildtreffer!",-1,40,FONT_Screen,1);
    
        if( Npc_IsPlayer(other) || (other.aivar[AIV_PARTYMEMBER]==TRUE) ) &&   //auch nicht mehr nötig
        if ((self.aivar[AIV_VictoryXPGiven] == FALSE) //Dann XP vergeben
    	&& (Npc_IsDead (self)) 					
        {
    	B_GivePlayerXP (self.level * XP_PER_VICTORY);			
            self.aivar[AIV_VictoryXPGiven] = TRUE;
        };		
    			
        return;	   //NEEEEEIIIIN! Nicht abbrechen, sondern nur erst etwas Schaden dazurechnen, und dann den Rest der Assess-Funktion ausführen!!	
    };
    Wie oben: sollte Npc_IsDead (self) wirklich nicht funktionieren (im Sinne von: Vergabe der XP erst bei Tod), kann man auch self.attribute[ATR_HITPOINTS] <= 0 ausprobieren.
    Geändert von TazmanDevil (21.02.2017 um 21:44 Uhr)

  6. Beiträge anzeigen #6 Zitieren
    Keks-Experte  Avatar von TazmanDevil
    Registriert seit
    Aug 2008
    Ort
    Diesseits des grossen Teiches
    Beiträge
    37.967
     
    TazmanDevil ist offline
    Sonderschaden Pfeile (B_MM_AssessDamage) nach Überarbeitung.

    Sieht schon viel besser aus. Einen Punkt habe ich aber noch.
    Code:
    	if (Hlp_GetInstanceID(hero) == Hlp_GetInstanceID(other))
    		&& (Npc_HasItems (hero, ItRw_SharpArrow) > 0)
    		&& (geschaerftcarr.munition == ItRw_SharpArrow)
        {
    		Npc_GetInvItem(hero, ItRw_SharpArrow); //befüllt 'item'
     
    		if (Hlp_GetInstanceID(ItRw_SharpArrow) == Hlp_GetInstanceID(item))
    		{
    			Npc_ChangeAttribute(self, ATR_HITPOINTS, -5); // Zusatzschaden
    			//WLD_PlayEffect("VOB_BURN", self, self, 0, 0, 0, FALSE); // Opfer brennt
    		};
    		// ------ XP ------ Test 23.2.17
    	    //if ( Npc_IsPlayer(other) || (other.aivar[AIV_PARTYMEMBER]==TRUE) )
    	    if (self.aivar[AIV_VictoryXPGiven] == FALSE)
    	       && (self.attribute[ATR_HITPOINTS] <= 0)
    	       && (Npc_IsDead (self))//Bedingung ändert nichts, daher && (self.attribute[ATR_HITPOINTS] <= 0)
    	    {
    		    B_GivePlayerXP (self.level * XP_PER_VICTORY);			
    		
    		    self.aivar[AIV_VictoryXPGiven] = TRUE;
    	    };
    	};
    Wenn die Abfrage Npc-IsDead hier nicht funktioniert, dann würde ich sie auskommentieren (auch in den folgenden Blöcken). Die && Verknüpfung ist hier sowieso falsch, wenn Npc_IsDead in der AssessDamage noch nicht das gewünschte Ergebnis liefert.
    Geändert von TazmanDevil (05.03.2017 um 18:38 Uhr)

  7. Beiträge anzeigen #7 Zitieren
    Keks-Experte  Avatar von TazmanDevil
    Registriert seit
    Aug 2008
    Ort
    Diesseits des grossen Teiches
    Beiträge
    37.967
     
    TazmanDevil ist offline
    Überarbeitete B_MM_AssessDamage:
    Zeile 835: Besser, aber auch hier sind noch Fehler drin
    Code:
    // ------ SONDERFALL: Schwertkämpferperk mit allen Nahkampfwaffen, Bonus bei Wildtieren ------ 	
    	    
    var C_ITEM OthWeapNpcSchwertkaempfer; 
    if ((Hlp_GetInstanceID(hero) == Hlp_GetInstanceID(other))
        && (self.aivar[AIV_ArenaFight] != AF_RUNNING)//neue Bedingung 16.2.17 keine Sonderdamage bei Arenakampf
         && (StarkerSchwertkaempferGelernt == TRUE)
        && (Npc_HasReadiedMeleeWeapon(hero) == TRUE))//statt hero ggf. other 
        && ((self.guild == GIL_SHADOWBEAST)
        || (self.guild == GIL_WOLF)
        ...
        || (self.npctype != NPCTYPE_MYRTANAORC))
    {
        OthWeapNpcSchwertkaempfer = Npc_GetEquippedMeleeWeapon(hero); //braucht es nicht da 'item' nicht verwendet wird => löschen
    	
        if ((Hlp_GetInstanceID(hero) == Hlp_GetInstanceID(other))
    	&& (StarkerSchwertkaempferGelernt == TRUE))  //braucht es nicht da dieser Abfrage in der äusseren if-clause schon gemacht wird => löschen 
    		
        {
    	// ------ XP ------ Test 23.2.17
    	//if ( Npc_IsPlayer(other) || (other.aivar[AIV_PARTYMEMBER]==TRUE) )
    	if (self.aivar[AIV_VictoryXPGiven] == FALSE)
    	    && (self.attribute[ATR_HITPOINTS] <= 0)
    	//&& (Npc_IsDead (self))//Bedingung ändert nichts, daher && (self.attribute[ATR_HITPOINTS] <= 0)					
    	{
    	    B_GivePlayerXP (self.level * XP_PER_VICTORY);			
    
    	    self.aivar[AIV_VictoryXPGiven] = TRUE;
    	};		
    	if (self.attribute[ATR_HITPOINTS] >= 30)//neu Test 23.2.17 
    	{
    	    Npc_ChangeAttribute (self, ATR_HITPOINTS, -15);
    	    //PrintScreen("Schwertkämpfer Wildtreffer!",-1,40,FONT_Screen,1);
    	};
    	return; //Nach wie vor: hier darf kein 'return' stehen =>löschen!
    		
        };	
    };
    Geändert von TazmanDevil (05.03.2017 um 18:59 Uhr)

  8. Beiträge anzeigen #8 Zitieren
    Keks-Experte  Avatar von TazmanDevil
    Registriert seit
    Aug 2008
    Ort
    Diesseits des grossen Teiches
    Beiträge
    37.967
     
    TazmanDevil ist offline
    Überarbeitete B_MM_AssessDamage:
    Zeile 986: 'return' entfernen!
    Zeile 1034: 'return' entfernen!
    Zeile 1125: 'return' entfernen!
    Zeile 1217: 'return' entfernen!
    Zeile 1280: 'return' entfernen!
    Code:
    // ------ SONDERFALL: Schwertmeisterperk mit allen Nahkampfwaffen gegen andere Gegner als Human------ 	
    	
    	    var C_ITEM OthWeapNpcSchwertmeister; 
    if (SchwertmeisterGelernt == TRUE)
    {
        //OthWeapNpcSchwertmeister = Npc_HasReadiedMeleeWeapon(hero);
    	
        if ((Hlp_GetInstanceID(hero) == Hlp_GetInstanceID(other))
    	&& (self.aivar[AIV_ArenaFight] != AF_RUNNING)//neue Bedingung 16.2.17 keine Sonderdamage bei Arenakampf
    	&& (Npc_HasReadiedMeleeWeapon(hero) == TRUE)//statt hero ggf. other 
    	//&& (Hlp_GetInstanceID(OthWeapNpcSchwertmeister) == Hlp_GetInstanceID(item))
           	&& (SchwertmeisterGelernt == TRUE))
    	&& ((self.guild == GIL_GOBBO_SKELETON)
    	...
            || (self.npctype != NPCTYPE_MYRTANAORC))
    		
        {
    	// ------ XP ------ Test 23.2.17
    	//if ( Npc_IsPlayer(other) || (other.aivar[AIV_PARTYMEMBER]==TRUE) )
    	if (self.aivar[AIV_VictoryXPGiven] == FALSE)
    	    && (self.attribute[ATR_HITPOINTS] <= 0)
    	    //&& (Npc_IsDead (self))//Bedingung ändert nichts, daher && (self.attribute[ATR_HITPOINTS] <= 0)				
    	{
    	    B_GivePlayerXP (self.level * XP_PER_VICTORY);			
    		
    	    self.aivar[AIV_VictoryXPGiven] = TRUE;
    	};
    	if (self.attribute[ATR_HITPOINTS] >= 30)//neu Test 23.2.17 
    	{
    	    Npc_ChangeAttribute (self, ATR_HITPOINTS, -15);
    	    //PrintScreen("Schwertmeistertreffer!",-1,40,FONT_Screen,1);
    	};
    	return; //entfernen, der Rest der Assess Funktion muss auch noch durchlaufen werden.
        };
    };
    Geändert von TazmanDevil (05.03.2017 um 18:59 Uhr)

  9. Beiträge anzeigen #9 Zitieren
    Keks-Experte  Avatar von TazmanDevil
    Registriert seit
    Aug 2008
    Ort
    Diesseits des grossen Teiches
    Beiträge
    37.967
     
    TazmanDevil ist offline
    Überarbeitete B_AssessDamage:
    Zeile 701: 'return' entfernen! ( ------ SONDERFALL: Schwertmeisterperk mit allen Nahkampfwaffen gegen Human------ )
    Zeile 747: 'return' entfernen! ( ------ SONDERFALL: Orktöterperk mit allen Nahkampfwaffen ------ MYRTANAORKS GELTEN ALS HUMANS! )
    Zeile 819: 'return' entfernen! ( ------ SONDERFALL: Meisterschützeperk mit allen Fernkampfwaffen gegen Human------ )
    Zeile 878: 'return' entfernen! ( ------ SONDERFALL: Orkjägerperk mit allen Fernkampfwaffen ------ )
    Geändert von TazmanDevil (05.03.2017 um 19:09 Uhr)

  10. Beiträge anzeigen #10 Zitieren
    Keks-Experte  Avatar von TazmanDevil
    Registriert seit
    Aug 2008
    Ort
    Diesseits des grossen Teiches
    Beiträge
    37.967
     
    TazmanDevil ist offline
    Platzhalter 9 (das reicht dann hoffentlich)

  11. Beiträge anzeigen #11 Zitieren
    OdysseeModTeam Avatar von Alain Dufont
    Registriert seit
    Oct 2016
    Ort
    hinter dem Mond
    Beiträge
    3.853
     
    Alain Dufont ist offline
    Gut, das werde ich mir die Tage ansehen.

  12. Beiträge anzeigen #12 Zitieren
    Keks-Experte  Avatar von TazmanDevil
    Registriert seit
    Aug 2008
    Ort
    Diesseits des grossen Teiches
    Beiträge
    37.967
     
    TazmanDevil ist offline
    Alles ist mir nicht klar. Ein paar Punkte sind aber offensichtlich falsch.
    Ob ich morgen dazu komme, weiter zu machen, weiss ich nicht. Kann eventuell auch ein paar Tage dauern, bis ich wieder dazu komme.
    Korrekturen in dem Skript lassen sich ja zum Glück relativ einfach testen, da man mittels GVE die Perks setzen oder rücksetzen kann und sich dann nur durch ein paar Monster metzeln muss.

  13. Beiträge anzeigen #13 Zitieren
    OdysseeModTeam Avatar von Alain Dufont
    Registriert seit
    Oct 2016
    Ort
    hinter dem Mond
    Beiträge
    3.853
     
    Alain Dufont ist offline
    Kein Problem. Ich bin schon froh überhaupt hierbei Hilfe zu bekommen.

  14. Beiträge anzeigen #14 Zitieren
    Keks-Experte  Avatar von TazmanDevil
    Registriert seit
    Aug 2008
    Ort
    Diesseits des grossen Teiches
    Beiträge
    37.967
     
    TazmanDevil ist offline
    Habe die überarbeite ...AssessDamage Funktionen angeschaut, sieht schon viel besser aus, sind aber immer noch ein paar Fehler drin (siehe Beitrag #6, #7, #8)

  15. Beiträge anzeigen #15 Zitieren
    OdysseeModTeam Avatar von Alain Dufont
    Registriert seit
    Oct 2016
    Ort
    hinter dem Mond
    Beiträge
    3.853
     
    Alain Dufont ist offline
    Zitat Zitat von TazmanDevil Beitrag anzeigen
    Habe die überarbeite ...AssessDamage Funktionen angeschaut, sieht schon viel besser aus, sind aber immer noch ein paar Fehler drin (siehe Beitrag #6, #7, #8)
    Das habe ich nun geändert.

  16. Beiträge anzeigen #16 Zitieren
    Local Hero
    Registriert seit
    May 2015
    Beiträge
    273
     
    NeverGiveUp ist offline
    Betrifft dieses Skript die von mir erwähnten Bugs im Nahkampf?
    Ich habe Waffenmeister auf 100%, und im Kampf mit menschlichen NPCs verlieren sie durch Bonusschaden HP, auch wenn sie meine Angriffe abblocken oder sogar ausweichen, d. h. mein Schlag trifft sie nicht, aber ich sehe, wie sie ein Stückchen ihres HP-Balkens verlieren. Zudem bekomme ich unter gewissen Umständen keine XP im Nahkampf.

  17. Beiträge anzeigen #17 Zitieren
    OdysseeModTeam Avatar von Alain Dufont
    Registriert seit
    Oct 2016
    Ort
    hinter dem Mond
    Beiträge
    3.853
     
    Alain Dufont ist offline
    Zitat Zitat von NeverGiveUp Beitrag anzeigen
    Betrifft dieses Skript die von mir erwähnten Bugs im Nahkampf?
    Ich habe Waffenmeister auf 100%, und im Kampf mit menschlichen NPCs verlieren sie durch Bonusschaden HP, auch wenn sie meine Angriffe abblocken oder sogar ausweichen, d. h. mein Schlag trifft sie nicht, aber ich sehe, wie sie ein Stückchen ihres HP-Balkens verlieren. Zudem bekomme ich unter gewissen Umständen keine XP im Nahkampf.
    Bei dem Talent durchbrichst du jedes Blocken und Ausweichen. So wird das Kämpfen gegen starke Gegner erheblich einfacher.

    Du bekommst XP. Die wird aber bei Waffenmeister und Scharfschütze schon meist beim ersten Schlag gegeben.

  18. Beiträge anzeigen #18 Zitieren
    Local Hero
    Registriert seit
    May 2015
    Beiträge
    273
     
    NeverGiveUp ist offline
    Was genau sind alle Eigenschaften jedes dieser 6 Talente? Und wie kann ich die ggf. im GVE Tool abschalten? Dass ich im Nahkampf immer treffe egal ob mein Gegner blockt oder ausweicht macht das Kämpfen langweilig, denn meine Gegner blocken immer, sofern es keine Tiere sind. Somit blocken sie die ganze Zeit und ich kann sie einfach umhauen. Daher will ich dieses Talent auf jeden Fall abschalten.

    Unter gewissen Umständen, d. h. mit bestimmten Attributwerten bekomme ich außerdem keine XP. Meine Vermutung ist, dass ich genau dann keine XP bekomme, wenn die Sonderdmg die letzten HP abzieht, sodass der Gegner dadurch besiegt wird. Habe die XP Werte vorher und nachher verglichen, die sind gleich.

  19. Beiträge anzeigen #19 Zitieren
    OdysseeModTeam Avatar von Alain Dufont
    Registriert seit
    Oct 2016
    Ort
    hinter dem Mond
    Beiträge
    3.853
     
    Alain Dufont ist offline
    Zitat Zitat von NeverGiveUp Beitrag anzeigen
    Was genau sind alle Eigenschaften jedes dieser 6 Talente? Und wie kann ich die ggf. im GVE Tool abschalten? Dass ich im Nahkampf immer treffe egal ob mein Gegner blockt oder ausweicht macht das Kämpfen langweilig, denn meine Gegner blocken immer, sofern es keine Tiere sind. Somit blocken sie die ganze Zeit und ich kann sie einfach umhauen. Daher will ich dieses Talent auf jeden Fall abschalten.

    Unter gewissen Umständen, d. h. mit bestimmten Attributwerten bekomme ich außerdem keine XP. Meine Vermutung ist, dass ich genau dann keine XP bekomme, wenn die Sonderdmg die letzten HP abzieht, sodass der Gegner dadurch besiegt wird. Habe die XP Werte vorher und nachher verglichen, die sind gleich.
    Na, die Eigenschaften sind doch klar. Es gibt beim Kampf mehr Damageabzug bei den Gegnern. Es sind auch nur zwei Talente, in jeweils drei Stufen.

    Bei den Schwierigkeitsgraden "Schwer " und "sehr schwer" sind die Talente übrigens deaktiviert.

    Im gve musst du wahrscheinlich alle Bedingungen, die unten stehen, auf NULL setzen.

    StarkerSchwertkaempferGelernt
    SchwertmeisterGelernt
    OrktoeterGelernt
    WildjaegerGelernt
    MeisterschuetzeGelernt
    OrkhetzerGelernt

  20. Beiträge anzeigen #20 Zitieren
    Local Hero
    Registriert seit
    May 2015
    Beiträge
    273
     
    NeverGiveUp ist offline
    Danke, das funktioniert. Ich habe außerdem noch ein paar Tests bzgl. der 3 Nahkampftalente gemacht. Das mit den Eigenschaften finde ich gar nicht so offensichtlich.
    1. Test:
    StarkerSchwertkaempferGelernt = 0
    SchwertmeisterGelernt = 0
    OrktoeterGelernt = 1
    Ich spiele auf sehr leicht, bin in Khorinis und habe 126 Stärke, ein Schwert mit 155 Schaden und EH Skill 72%. Ohne Orktötertalent kann ich einen Myrtana-Orkspäher nicht mit 1 kritischen Schlag killen, mit Orktöter schon. Wenn ich diese Orks mit dem 1. Schlag kritisch treffe, dann bekomme ich keine 500 XP. Wenn der 1. Schlag nicht kritisch ist, bekomme ich die 500 XP. Außerdem wird die XP schon nach dem 1. Treffer gegeben, sofern der Ork nicht durch den Bonusschaden besiegt wird.
    Zudem benutze ich die Beliarrüstung und wenn ich ohne Orktöter die Orks in der Stadt angreife, dann greifen mich alle Orks in der Nähe an. Mit Orktöter werde ich nicht mehr angegriffen, ich kann jeden einzelnen Ork gemütlich abschlachten. Ich denke, dass dies nicht so gewollt ist.

    2. Test:
    StarkerSchwertkaempferGelernt = 0
    SchwertmeisterGelernt = 1
    OrktoeterGelernt = 0
    Hier verhält es sich mit menschlichen Spielern sehr ähnlich wie mit den Orks. Ich kann gemütlich auf menschliche NPCs einprügeln ohne dass diese Widerstand leisten noch die umstehenden NPCs angreifen. Erst wenn ich einen NPC töte, erst dann greifen mich alle anderen an. Zudem kommt mit diesem Talent noch der Blockbrecher und Treffer obwohl der Gegner ausgewichen ist hinzu. Außerdem wird die XP schon nach dem 1. Treffer gegeben, insbesondere auch bei Gegnern, die im edit abilities menü Flags = 2 haben. Getestet habe ich nicht, ob man XP kriegt, wenn der Bonusschaden die letzten HP abzieht.

    3. Test:
    StarkerSchwertkaempferGelernt = 1
    SchwertmeisterGelernt = 0
    OrktoeterGelernt = 0
    Dieses Talent scheint ok zu sein. Kein Blockbrecher, kein Treffer wenn der Gegner ausweicht. Zudem habe ich gegen menschliche NPCs getestet, ob ich die XP kriege, wenn ich mit dem Bonusschaden den NPC mit 1 kritischen Schlag umhaue. Mit 18 Stärke, meiner 155 DMG Waffe kann ich einen Bauern auf Onars Hof nicht mit 1 kritischen Treffer umhauen, mit 19 Stärke schon. Ich habe die XP dann auch bekommen. Habe allerdings nicht getestet, ob ich die XP auch bei Tieren bekomme, dürfte aber keinen Unterschied machen.

    Ich wüsste gerne, gegen welche Gegner ich mit diesen Talenten Zusatzschaden mache. Orktöter wohl nur bei Orks, und wie ist das mit den Schwertkämpfertalenten? Generell mehr Schaden gegen alle Gegner, also jegliche NPCS (außer evtl. Orks) und alle Arten von Tieren? Und wie ist das genau bei den 3 Schützentalenten? Dass die XP bereits im Voraus gegeben wird finde ich nicht sehr elegant.
    Ich hatte Odyssee 1.3 auf Schwierigkeitsgrad Mittel durchgespielt und spiele nun 2.0 auf sehr leicht. Ganz so leicht, wie man meinen könnte, ist der Schwierigkeitsgrad dann doch nicht, Athanos war am Anfang relativ schwer. Jeder Gegner konnte meine 30(?) HP mit 1 Treffer abziehen. Die Tauchstellen mit den Rubinen habe ich nicht gefunden. Der einzige spürbare Unterschied zwischen 2.0 sehr leicht und 1.3 Mittel ist, finde ich, dass die Gegner in 2.0 schneller umkippen. Austeilen tun sie aber trotzdem ordentlich und ich kann nicht einfach in die Gegnern rennen und alles niedermetzeln. Öfters muss ich die Gegner einzeln rauslocken. Ich habe alle HP Tränke benutzt die man finden/kaufen konnte und hatte bisher keine LP übrig, um sie in HP zu investieren, da ich alle Talente (bis auf Schriftrollen herstellen) lerne. Ich finde dass dieser Schwierigkeitsgrad bis auf den Anfang, der ruhig so bleiben kann, relativ gut balanciert ist. Die Waldgolems sind auch auf diesem Schwierigkeitsgrad unbesiegbar, die aber nach dem Fix nicht mehr auf diesem Schwierigkeitsgrad existieren. Bei manchen Gegnern hatte ich das Gefühl, dass der Schwierigkeitkeitsgrad keinen Einfluss auf die Gegner hat, insbesondere auf Athanos.
    Geändert von NeverGiveUp (10.03.2017 um 22:51 Uhr)

Seite 1 von 2 12 Letzte »

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