Unklug, da man sich so Probleme mit der Ablaufreihenfolge der Scripts einhandeln kann und wenn es sich bei den benutzten Funktionen um Referenzanweisungen für Bewegungen oder dergleichen handelt, die non-unique Scriptholder lokal verändern, geht es ohnehin nicht, ohne das gesamte Konzept über den Haufen zu verwerfen. Bevor man sowas macht, sollte man gründlichst nachdenken.wie wärs, wenn man das scripts in der mitte halbiert, und dann an den schluss startscript (zweiter teil, als globales script, natürlich mit neudeklaration und setzung aller variabeln)
Nicht unbedingt. Prinzipiell hast du Recht, aber es gibt Mods, die im Original unsauber gescripted sind. Zu Optimieren kann sich in solchen Fälllen de facto als notwendig erweisen. Es kommt auf die Situation an, ob man etwas ändern sollte, oder nicht.Schmelz schrieb:Aber ist es nicht ungünstig, wenn eine Übersetzung technisch anders ist als das Original?
Ein AITravel von der aktuellen Position zu einer neuen mit nur minimal verschobenen X/Y Koordinaten sollte das Problem lösen. Du mußt natürlich die neuen Koordinaten abhängig von der aktuellen Position erstmal ausrechnen, aber das sollte für dich ja kein Problem sein. Da SetAngle bei NPCs und Creatures verbuggt ist, sehe ich keine andere Chance... na jedenfalls ohne ScriptExtender.Hat jemand eine Idee, wie ich einen Actor per Script drehen kann?
Ein AITravel von der aktuellen Position zu einer neuen mit nur minimal verschobenen X/Y Koordinaten sollte das Problem lösen. Du mußt natürlich die neuen Koordinaten abhängig von der aktuellen Position erstmal ausrechnen, aber das sollte für dich ja kein Problem sein. Da SetAngle bei NPCs und Creatures verbuggt ist, sehe ich keine andere Chance... na jedenfalls ohne ScriptExtender.
...wenn die Zelle denn ein Pathgrid hat. Was hast du denn überhaupt vor? Vielleicht gibt es ja noch einen anderen Weg.Bei AITravel geht er immer zuerst zum nächsten Pathgrid-Punkt und von dort zum Ziel. Das ist für eine Drehung also komplett unpraktikabel
...wenn die Zelle denn ein Pathgrid hat. Was hast du denn überhaupt vor? Vielleicht gibt es ja noch einen anderen Weg.
Hey leute
ich habe eine eigene fraktion erstellt und in einen dilogue folgendes script angehängt:
PCJoinFaction "Uni_Südwest-Academi"
wenn das nun aber ausgeführt wird bekomme ich folgende fehlermeldung:
Expression Error Unable to find faction "Uni_Südwest-Academi" in script Dialogue CompileAndRun.
Die fraktions-ID "Uni_Südwest-Academi" gibt es aber! Also weiß ich nicht, wieso er es angeblich nicht findet. Oder wo liegt da der fehler?
...
if ( OnActivate == 1 ) ; fragt die Aktivierung nicht nur ab, sondern bricht sie auch ab!
if ( bedingung fürs öffnen == 1 )
Activate ; aktiviert die tür wrneut, wodruch sie geöffnet wird
endif
endif
...
1. Globale Variable erstellen
2. In die Resultbox des Dialogs set global_var to 1 schreiben
3. Die globale variable abfragen
begin beispielscript
;Globale Variabeln müssen NICHT deklariert werden
If ( OnActivate == 1 ) ; fragt die aktivierung ab und bricht sie gleichzeitig ab
If ( GlobalVar == 0 ) ; tür wurde noch nicht verschlossen
activate ; aktiviert die tür erneut, diesmal ohne abbruch
endif
If ( bedingng, unter der die Tür trotzdem geöffnet werden kann, z.B. besitzen des schlüssels == 1 ) ;freiwillig
activate
endif
endif
end
begin beispielscript
;Globale Variabeln müssen NICHT deklariert werden
If ( global_var == 1 ) ; fragt die aktivierung ab und bricht sie gleichzeitig ab
lock wert ;wert durch schlosstärke ersetzen. evtl noch einen schlüssel angeben bei den türeinstellungen
endif
end
Also ich möchte das man bei einem bestimmten Gesprächsthema den Schlüssel für eine bestimmte Tür abgeben muss (mach ich mit removeitem) und dann die Tür auch verriegelt wird.
"eindeutigeid"->lock 100 (1-100 sinnvoll)