Allgemein
News
News-Archiv
Partner
Netzwerk
Banner
Header
Media
Downloads
Impressum

The Elder Scrolls
Arena
Daggerfall
Spin-offs
Romane
Jubiläum
Reviews
Welt von TES
Lore-Bibliothek
Namens-
generator

FRPGs

Elder Scrolls Online
Allgemein
Fraktionen
Charakter
Kargstein
Technik
Tamriel-
Manuskript

Media

Skyrim
Allgemein
Lösungen
Tipps & Tricks
Steam-Kniffe
Review
Media
Plugins & Mods

Oblivion
Allgemein
Lösungen
Tipps & Tricks
Technik
Charakter
Media
Plugins & Mods
Kompendium

Morrowind
Allgemein
Lösungen
Tipps & Tricks
Media
Plugins & Mods

Foren
The Elder Scrolls Online
Hilfe & Diskussion

Skyrim
Hilfe & Diskussion
Plugins & Mods

Ältere TES-Spiele
TES-Diskussion
Oblivion-Plugins
Morrowind-Plugins

Community
Taverne zum Shalk
Adventures of Vvardenfell
Tales of Tamriel
Seite 2 von 2 ErsteErste 12
Ergebnis 21 bis 38 von 38

Thema: Unsichtbarer PC, Gegner ignorieren Beschwörungen

  1. #21
    Zitat Zitat von Low Post Beitrag anzeigen
    Ich hab ihr gesagt, sie soll den angreifen anstelle des unsichtbaren aktuellen CombatTargets (dem Spieler, also dir), in dem ich ein StartCombat auf sie geworfen habe.
    Das erst nachdem durch obige Formel herauskam, dass sie ihn ohne anderes CombatTarget angreifen würde. Warum mag die auch ihre eigenen beschworenen Viecher nicht. >_<
    That's gobbledygook (im Sinne von Fachchinesisch) to me.

  2. #22
    Code:
    if ( callingActor.getAV aggression > 5 )
      if ( callingActor.getDisposition target < callingActor.getAV aggression )
        ; actor is hostile toward target
      endif
    endif
    Diese Formel nutze ich zum überprüfen, ob Actor1 (CallingActor, eine Referenz mit einem unsichtbaren Angriffsziel) unter normalen umständen Actor2 (target, die neu ermittelte Referenz) angreifen würde.
    Falls das zutrifft sage ich Actor1 mittels StartCombat, dass er/sie/es Actor2 angreifen soll.


    Bei dem Log von dir war das der Fall (StartCombat wurde ausgelöst), allerdings hat sich das Angriffsziel nicht verändert.
    Liegt anscheinend daran, dass der Skeleton Archer von ihr selbst beschworen wurde.
    Seltsamerweise mag die den aber so wenig, dass sie ihn (laut obiger Formel) unter normalen Umständen angreifen würde.
    Könnte allerdings auch an einer extrem hohen Aggression liegen, dann kann die den noch so lieben.

  3. #23
    Ein weiterer Invisible Freeze, diesmal in Villa Flugfels, 3 Sparring-Skelette kämpften gegen mich, ich machte mich irgendwann mal unsichtbar und dann passierte es. Könnte evtl. auch Zufall gewesen sein, das Spiel lief schon relativ lange.
    Angehängte Dateien Angehängte Dateien

  4. #24
    Ich konnte den Bug leider nicht reproduzieren, daher ist das auch ein bisschen ein Schuss in's blaue: <klickst du hier>

    Script sieht jetzt so aus (ich hab noch ein bisschen an der Formel zum überprüfen der Feindlichkeit geschraubt):
    Code:
    scn LPNISQuestScript
    
    int ShutDown
    short OBSEVersion
    long Index
    long Index2
    float fQuestDelayTime
    ref CombatTarget
    ref Follower
    ref OldReference
    ref Reference
    
    Begin Gamemode
    	SetStage LPNISQuest 0
    	if ( OBSEVersion >= 15 )
    		if ( LPNISPluggyDebug )
    			if ( IsPluginInstalled "OBSE_Elys_Pluggy" == 0 ) || ( GetPluginVersion "OBSE_Elys_Pluggy" < 112 )
    				set LPNISPluggyDebug to 0
    				MessageBox "Die DebugMessages dieses PIs benötigen Pluggy v112 (oder höher)."
    				Return
    			endif
    			DestroyAllStrings
    			set Index to GetEsp
    			EspToString -2000 Index 1 1
    			set Index to ( ( StringLen -2000 ) - 4 )
    			StringLen -2000 Index 1
    			SetString -2001 " - DebugFile.txt" 1
    			StringCat -2000 -2001
    			if ( GetGameRestarted )
    				DelFile -2000
    			endif
    		endif
    		set Index to 0
    		SaveIP 1
    		if ( Index < GetNumRefs 69 1 0 )
    			set Reference to Apple
    			if ( Index )
    				set Reference to GetNextRef
    			else
    				set Reference to GetFirstRef 69 1 0
    			endif
    			if ( IsFormValid OldReference )
    				set Index to ( Index + 1 )
    				if ( Reference == OldReference )
    					set OldReference to 0
    					set Index to 0
    				endif
    				RestoreIP 1
    			elseif ( Index == 0 ) && ( LPNISPluggyDebug )
    				SetString -2001 "------------------------------------------------" 1
    				StringToTxtFile -2000 -2001 1
    			endif
    			if ( LPNISPluggyDebug )
    				FmtString -2001 1 "Reference: %n (%i), Index: %.0f", Reference, Reference, Index
    				StringToTxtFile -2000 -2001 1
    			endif
    			if ( Reference.GetCombatTarget )
    				set CombatTarget to Apple
    				set CombatTarget to Reference.GetCombatTarget
    				if ( LPNISPluggyDebug )
    					FmtString -2001 1 "	CombatTarget: %n (%i)", CombatTarget, CombatTarget
    					StringToTxtFile -2000 -2001 1
    				endif
    				if ( CombatTarget.HasMagicEffect INVI ) && ( Reference.GetActorValue Aggression >= 5 )
    					if ( LPNISPluggyDebug )
    						FmtString -2001 1 "		HasMagicEffect INVI"
    						StringToTxtFile -2000 -2001 1
    					endif
    					set OldReference to Apple
    					set OldReference to Reference
    					if ( LPNISPluggyDebug )
    						FmtString -2001 1 "		OldReference: %n (%i)", OldReference, OldReference
    						StringToTxtFile -2000 -2001 1
    					endif
    					set Index2 to 0
    					SaveIP 2
    					if ( Index2 < GetNumRefs 69 1 0 )
    						set CombatTarget to Apple
    						if ( Index2 )
    							set CombatTarget to GetNextRef
    						else
    							set CombatTarget to GetFirstRef 69 1 0
    						endif
    						if ( CombatTarget.HasMagicEffect INVI == 0 ) && ( Reference.GetIsReference CombatTarget == 0 )
    							if ( ( ( Reference.GetDisposition CombatTarget < Reference.GetActorValue Aggression ) || ( Reference.IsActorEvil != CombatTarget.IsActorEvil ) ) && ( Reference.GetActorValue Aggression > 5 ) ) || ( CombatTarget.GetCombatTarget == Reference )
    								if ( LPNISPluggyDebug )
    									FmtString -2001 1 "			NewCombatTarget: %n (%i)", CombatTarget, CombatTarget
    									StringToTxtFile -2000 -2001 1
    								endif
    								set Index to 0
    								SaveIP 3
    								if ( Index < Reference.GetNumFollowers )
    									set Follower to Apple
    									set Follower to Reference.GetNthFollower Index
    									if ( CombatTarget.GetIsReference Follower )
    										if ( LPNISPluggyDebug )
    											FmtString -2001 1 "			%n (%i) is a Follower of %n (%i)", CombatTarget, CombatTarget, Reference, Reference
    											StringToTxtFile -2000 -2001 1
    										endif
    										set Index2 to ( Index2 + 1 )
    										RestoreIP 2
    									else
    										set Index to ( Index + 1 )
    										RestoreIP 3
    									endif
    								endif
    								set Index to 0
    								SaveIP 4
    								if ( Index < CombatTarget.GetNumFollowers )
    									set Follower to Apple
    									set Follower to CombatTarget.GetNthFollower Index
    									if ( Reference.GetIsReference Follower )
    										if ( LPNISPluggyDebug )
    											FmtString -2001 1 "			%n (%i) is a Follower of %n (%i)", Reference, Reference, CombatTarget, CombatTarget
    											StringToTxtFile -2000 -2001 1
    										endif
    										set Index2 to ( Index2 + 1 )
    										RestoreIP 2
    									else
    										set Index to ( Index + 1 )
    										RestoreIP 3
    									endif
    								else
    									Reference.StartCombat CombatTarget
    									if ( LPNISPluggyDebug )
    										FmtString -2001 1 "			%n (%i).StartCombat %n (%i)", Reference, Reference, CombatTarget, CombatTarget
    										StringToTxtFile -2000 -2001 1
    									endif
    								endif
    							else
    								set Index2 to ( Index2 + 1 )
    								RestoreIP 2
    							endif
    						else
    							set Index2 to ( Index2 + 1 )
    							RestoreIP 2
    						endif
    					elseif ( Player.HasMagicEffect INVI == 0 )
    						if ( ( Reference.GetDisposition Player < Reference.GetActorValue Aggression ) && ( Reference.GetActorValue Aggression > 5 ) ) || ( CombatTarget.GetCombatTarget == Reference )
    							if ( LPNISPluggyDebug )
    								FmtString -2001 1 "			%n (%i).StartCombat Player", Reference, Reference
    								StringToTxtFile -2000 -2001 1
    							endif
    							Reference.StartCombat Player
    						endif
    					endif
    					Return
    				endif
    			endif
    			set Index to ( Index + 1 )
    			RestoreIP 1
    		endif
    	elseif ( Shutdown == 2 )
    		if ( OBSEVersion >= 11 )
    			con_Quitgame
    		else
    			Player.Disable
    		endif
    	elseif ( Shutdown == 1 )
    		set Shutdown to ( GetButtonPressed + 2 )
    	elseif ( OBSEVersion )
    		set Shutdown to ( GetButtonPressed + 2 )
    		MessageBox "Dieses PI benötigt OBSE v0015 oder höher. Du verwendest momentan OBSE v%04.0f", OBSEVersion
    	else
    		set Shutdown to ( GetButtonPressed + 2 )
    		MessageBox "Dieses PI benötigt OBSE v0015 oder höher. Stelle sicher, dass du Oblivion über die 'obse_loader.exe' startest."
    	endif
    End


    PS:
    Ab jetzt wird Pluggy v112 oder höher für die Debugnachrichten benötigt.
    Geändert von Low Post (14.09.2008 um 22:29 Uhr)

  5. #25
    Ab jetzt (mit T.I.E.) scheint ein neues Problem aufzutauchen. Die NPC Beschwörer beschwören meistens mehrere summons gleichzeitig. Mal bekämpfen sich diese 2-3 summons gegenseitig, mal gehen sie sogar auf ihren Beschwörer los oder umgekehrt, es ist in dem Durcheinander kaum noch zu sehen, wer wen angreift.

    Wenn ich dieses script deaktiviere, ist anscheinend Ruhe im (gleichen) gegnerischen Rudel.

  6. #26
    Das liegt leider daran, dass GetNthFollower/GetNumFollowers keine Beschwörungen berücksichtigt und es auch sonst keine Möglichkeit gibt das zu überprüfen.
    Heißt: da kann ich leider nichts machen.



    Sollte doch jemand einen Weg kennen das zu beheben so möge er/sie es mir doch bitte mitteilen.

  7. #27
    T.I.E. benutze ich gerade nicht mehr, aber vielleicht kommen in FCOM auch irgendwann Beschwörer mit multiple summons vor(?)...

    Könntest du es auch auf eine nur auf die Arena, oder vielleicht auf Interieur begrenzte Version umschreiben?

    Ich glaube, in freier Wildbahn macht das doch noch zu viele Probleme. Besonders bei "Außenquests" ist es oft so, dass die zu erledigenden Gegner über die halbe Karte weglaufen und man sie nicht mehr wieder findet (z.B. Anvil MG Recommendation Quest; damit habe ich getestet mit und ohne diese Mod). Bei einem Gegner geht es vielleicht gerade noch, aber wenn 2 oder 3 questrelevante NPCs in alle möglichen Richtungen kilometerweit hinter dem nächsten Reh herlaufen, verliert man sie immer wieder.

  8. #28
    Probier mal folgendes: <klick>

    Damit ist das nur noch in Interior-Zellen, deren ID mit ICArena beginnt aktiv (zumindest solange der Spieler sich in einer solchen befindet).
    Ich würde gerne eine weniger radikale Methode anbieten, aber leider weiß ich nicht wie.


    PS:
    Ich hab jetzt nicht getestet, ob es in der Arena noch funktioniert, außerhalb macht es auf jeden Fall nichts mehr und für Innerhalb hat sich eigentlich nichts verändert.

  9. #29
    Danke dafür! Ich komme im Moment nicht so richtig dazu, aber spätestens wenn OXP leveling und RBP in die nächste Version gehen, teste ich es auf jeden Fall durch - vielleicht vorher..

  10. #30
    OBSE v0017-Beta ist raus und damit der Befehl GetFollowers, welcher auch Summons berücksichtigt.


    Hier ein Versuch dazu. Damit sollte das Problem deswegen nicht mehr auftreten.
    Könnte evtl. andere Fehler enthalten (sollte es natürlich nicht, aber trotzdem). Ist absolut ungetestet.

  11. #31
    Das sieht gut aus, bislang konnte ich keine der bekannten Probleme mehr feststellen.

  12. #32
    Freut mich zu hören.

  13. #33
    Aufgrund von OBSE Beta 2 Scripte neu kompiliert und etwas angepasst: <klick>

  14. #34

  15. #35
    Hey, Lowi, irgendwie erkennt die Version meine OBSE 0017 Beta 2 Version nicht. Ich bekomme beim Start eine Endlosschleife mit dem Hinweis, das dieses PlugIn OBSE 0017 Beta 2 braucht, ich Version 0017 installiert hätte. Diese Endlosschleife der Messagebox resultiert dann auch in nem Crash. Ich hab übrigens ganz sicher Beta 2 installiert, weil ich noch nen anderen Mod nutze, der zwingend diese Version braucht (und funktioniert ) und weil ich zusätzlich dazu auch noch in der Lage bin zu lesen. Ist auch kein Pre-Release der Beta oder sonstiges - zumindest wüßte ich nicht, wie das gehen sollte
    Geändert von NewRaven (21.05.2009 um 02:48 Uhr)

  16. #36
    Ja ja, mea culpa.
    Was ändern die auch plötzlich die Revision-Nummer für Beta 2.
    Mal ganz abgesehen, dass die auch ohne Änderung nicht erkannt worden wäre.

    Endlosschleife sollte auch beseitigt sein und gleich nach der Meldung zum Absturz führen.


    Link bleibt der gleiche wie vorhin.

  17. #37
    Mit der neuen OBSE-Versionen kamen die Funktionen GetAllies & GetTargets, wodurch die Gegner- & Verbündeten-Suche komplett von meiner Seite an OBSE abgegeben würde. Einbauen würde vermutlich nicht länger als eine Stunde dauern, aber bevor ich mir die Mühe macht, hat überhaupt jemand Interesse an einem solchen Update?

  18. #38
    Ich benutze seit einiger Zeit Combat Hide und nach ein paar Sekunden Suche wenden sich die Gegner damit dem nächstmöglichen Gegner zu. Ich müsste es noch mal etwas genauer beobachten, aber eigentlich scheint mich an dem Verhalten damit nichts mehr so gewaltig zu stören.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •