[Release] DSotSC v3.0

Maus

Senior Member
Registriert
07.08.2002
Beiträge
9.400
die *.are kann man mit NI anschauen und dort sind auch die Türen nebst Namen hinterlegt und man kann auch sonst alle Details der Türen anschauen... oder ging die Frage um was anderes?
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
12.946
Über BGT werden die Türenbezeichnungen nicht verändert - es bleiben dieselben, wie sie auch im originalen BG1 waren. Ich habe es über Near Infinity auf der Karte von Nashkell verglichen. Stimmt perfekt überein.

Ich weiß nur, dass die Türen der Zelte auf dem Nashkell-Karneval anderen Code haben als die in BG:EE, weil der Areacode da mitverwendet wurde und daher in BGT entsprechend umbenannt wurde, also nicht nur der Areacose sondern eben auch die Türnamen - was aber nicht nötig wäre, da der Türname sowieso nur für die Area gilt. Daher hätte BGT auch einfach den Areanamen von BG1 in den Türnamen behalten können. Das meinte ich. Also als Beispiel, Nashkell Karneval hat in BG1 (und BG:EE) den Areacode AR4900. in BGT die AR3800. In BG:EE (und wahrscheinlich auch in BG1) heißen die Türen also Door49xx. In BGT heißen sie aber Door38xx, obwohl man die Namen auch einfach hätte lassen können, weil der Türname nur in der Area gilt und man die Tür daher auch Door967xyz hätte nennen können.
In Nashkel ist das für mich dasselbe: die Türen tragen den Areacode, also für BG:EE (das den Areacode von original BG1 verwendet) heißen die Türen Door48xx, in BGT sind sie geändert auf Door37xx. Daher weiß ich nicht, was Du hier meinst, dass die Türen dieselben Namen in BG1 und BGT haben.
EET verwendet dieselben Türnamen wie die BG:EE, soweit ich das gesehen habe.
 

Lumorus

Wachender
Registriert
03.03.2011
Beiträge
4.075
In meiner Vanila-Version von BG1 haben die Türen in Nashkell alle 48xx Bezeichnungen und wie Du gesagt hast auf dem Jahrmarkt 49xx-Nummern.

Ich habe gerade gesehen, dass BGT tatsächlich die Nummern auf dem Jahrmarkt in 38xx geändert hat, wie Du gesagt hast.
Dafür ist es in Nashkell so, wie ich es bereits festgestellt habe - die Türenbezeichnungen hier sind gegenüber der Vanila unverändert worden und lauten immer noch auf 48xx.
Das ist wirklich komisch ... :confused:
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
12.946
In meiner BGT sind die Infopoints noch auf Info48xx, aber die Türen nicht. Welche Version hast Du? Das wäre übel, wenn es da Verschiedenheiten gibt, da ich Türen als neue Orientierungspunkte in den Areas entdeckt habe - damit kann man ungefähr abschätzen, wo sich der Spieler in der Area befindet, ohne dass ich neue Trigger einfügen muss (für die man ein neues Spiel beginnen muss). Das ist schon nervig genug, dass es da zwischen BGT und BG:EE Unterschiede gibt, zwischen verschiedenen BGT-Versionen wäre ein Katastrophe. Ich habe die 1.20 Core, aber nichts weiter (ich müsste mir mal dringend das Musikpack aufziehen, die falschen Musiken in den Areas sind nervig.)
Nur zur Sicherheit: so sehen bei mir in Nashkel die Türtrigger aus:
Nashkel_BGT_NI.jpg
 

Lumorus

Wachender
Registriert
03.03.2011
Beiträge
4.075
Ich habe dieses 4in 1 Box-Set der Baldurs Gate Saga ... also, wo alle 4 DVDs zusammen drin sind.
Auf Amazon wird die "Baldur's Gate Compilation (DVD-ROM)" genannt.
Und BGT benutze ich 1.20
 

Lumorus

Wachender
Registriert
03.03.2011
Beiträge
4.075
Nach einiger Suche im DSotSC-Ordner habe ich etwas über meinen speziellen "Freund", den doppelten Drachen gefunden:

Zu finden in DSotSC - Modify - bcs finden sich die geänderten Gebiete. Darunter natürlich auch Ar4600 (Editor).
Wenn ich es richtig verstanden habe, soll der Drache zwar einige Halblinge im Außenbereich töten, sich dabber aber zurückziehen, so dass nur noch der Drache in der Höhle übrig bleibt - dies sollte der eigentliche ENtscheidungskampf sein ... aber aus irgendeinem Grund war der andere Drache immer noch da.

Ich habe den Inhalt für alle Fälle kopiert:

IF
Global("TalkedJeremy","GLOBAL",1)
Global("HalfSpawn","%GibberlingMountains%",0)
THEN
RESPONSE #100
CreateCreature("DSHALF01",[2044.1480],0)
CreateCreature("DSHALFD2",[4233.651],0)
CreateCreature("DSHALFDD",[4125.603],0)
CreateCreature("DSHALFDD",[3854.1480],0)
CreateCreature("DSHALF05",[2190.1282],0)
CreateCreature("DSHALF03",[2020.1485],0)
CreateCreature("DSHALF02",[2040.1517],0)
CreateCreature("DSHALF04",[2200.1260],5)
CreateCreature("DSGNOLLC",[3888.1474],4)
CreateCreature("DSFORDRG",[4239.526],3)
SetGlobal("HalfSpawn","%GibberlingMountains%",1)
SetGlobal("DragonSpawn","%GibberlingMountains%",1)
Continue()
END

IF
Global("TalkedJeremy","GLOBAL",1)
Global("BardoSpawn","%GibberlingMountains%",0)
Level(Player1,1)
THEN
RESPONSE #100
CreateCreature("DSBARDO",[2990.1630],5)
SetGlobal("BardoSpawn","%GibberlingMountains%",1)
END

IF
Global("TalkedJeremy","GLOBAL",1)
Global("BardoSpawn","%GibberlingMountains%",0)
OR(2)
Level(Player1,2)
Level(Player1,3)
THEN
RESPONSE #100
CreateCreature("DSBARDO2",[2990.1630],5)
SetGlobal("BardoSpawn","%GibberlingMountains%",1)
END

IF
Global("TalkedJeremy","GLOBAL",1)
Global("BardoSpawn","%GibberlingMountains%",0)
OR(2)
Level(Player1,4)
Level(Player1,5)
THEN
RESPONSE #100
CreateCreature("DSBARDO4",[2990.1630],5)
SetGlobal("BardoSpawn","%GibberlingMountains%",1)
END

IF
Global("TalkedJeremy","GLOBAL",1)
Global("BardoSpawn","%GibberlingMountains%",0)
LevelGT(Player1,5)
THEN
RESPONSE #100
CreateCreature("DSBARDO6",[2990.1630],5)
SetGlobal("BardoSpawn","%GibberlingMountains%",1)
END

IF
Global("DragonDead","GLOBAL",1)
Exists("DSBARDO")
!InParty("DSBARDO")
THEN
RESPONSE #100
ActionOverride("DSBARDO",EscapeAreaDestroy(15))
Continue()
END

IF
Global("DragonDead","GLOBAL",1)
Global("TorquilSpawn","%GibberlingMountains%",0)
THEN
RESPONSE #100
CreateCreature("DSTORQUI",[3980.1100],0)
SetGlobal("TorquilSpawn","%GibberlingMountains%",1)
Continue()
END

IF
Global("DragonSpawn","%GibberlingMountains%",0)
THEN
RESPONSE #100
TriggerActivation("TranC006",FALSE)
Continue()
END

IF
Global("DragonSpawn","%GibberlingMountains%",1)
Global("DragonDoor","%GibberlingMountains%",0)
NumDeadGT("DSHALFD",2)
THEN
RESPONSE #100
ActionOverride("Salandiaxarxes",EscapeAreaDestroy(15)) //real fight takes place in DS2110.ARE
TriggerActivation("TranC006",TRUE)
AddMapNote([3824.575],@30001)
SetGlobal("DragonDoor","%GibberlingMountains%",1)
Continue()
END

EDIT: Oha, ich glaube, ich habe den Grund in Near Infinty gefunden:

Offenbar spielt der Tod eines Halblings mit der Bezeichnung "DSHALFD" eine Rolle - aber lauf Near Infinity wurde da stattdessen ein Halbling mit der Bezeichnung "DSHALFDD" installiert! Könnte vielleicht das zusätzliche D daran schuld sein, dass der zweite Drache nicht geht?
 
Zuletzt bearbeitet:

Lumorus

Wachender
Registriert
03.03.2011
Beiträge
4.075
Nun gut, ich habe nun eine neue Installation mit drei Korrektur-Experimenten für DSotSC aufgesetzt (ich musste noch einmal deinstallieren, da etwas mit dem Gebiet-Script für die Drachenheide schiefgelaufen ist ... offenbar verwendet DSotSC bei den Span-Befehlen seltsame Abkürzungen, die nicht erkannt werden ... versucht man die Korrekturen zu speichern, ist das Script plötzlich leer)
Zusätzlich zu den aktuellen Korrekturen von K4thos sind nun enthalten:

- meine eigene Korrektur für das Holy Water
- in der "Megacut.bsc" habe ich Nummer des Herrenhauses von Nashkell korrigiert
- im Gebiets-Script für die Drachenheide habe ich (vor der Installation) die Voraussetzung für den Tod der der "DSHALFD" in "DSHALFDD" geändert, damit es mit dem spawnen der Halblingskrieger übereinstimmt, die getötet werden sollen, damit der zweite Drache verschwindet.

Ich hoffe, ich komme diese Woche weit genug, um die Wirkung zu sehen. ;)
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
12.946
Toll!
SHS hat jetzt endlich eine richtige GitHub Organisation. Ich werde k4thos fragen, ob er das DSotSC-Repo dorthin verschiebt.
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
12.946
Die DSotSC Version ist momentan bei mir, bevor ich sie zu SHS weiterschiebe. Ich schreibe hier mal noch weitere Funde rein:

Travel Cloak (+1 auf RK, 20% Feuer+Eis-Resi) kann von allen getragen werden. Da fehlt wahrscheinlich eine Restriktion für Wizard Slayer oder so.
 

Maus

Senior Member
Registriert
07.08.2002
Beiträge
9.400
Er kann auch von Grey getragen werden und sollte vllt die Flag "Cloak" bekommen (ItemType).
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
12.946
Ohne nachzusehen würe ich vermuten, dass er das hat, sonst würde er nicht in den richtigen Slot gehen (und Grey kann wohl keine Miscellaneous items verwenden), aber eben keine weiteren Restriktionen, was für mich wie ein Bug aussihet (außer es steht explizit in der Beschreibung, dass dieser magische Mantel von allen getragen werden kann).
 

Lumorus

Wachender
Registriert
03.03.2011
Beiträge
4.075
Travel Cloak (+1 auf RK, 20% Feuer+Eis-Resi) kann von allen getragen werden. Da fehlt wahrscheinlich eine Restriktion für Wizard Slayer oder so.
Hm, oder wurde vielleicht auch mit Absicht weggelassen?

Wie dem auch sei, mindestens eines der anderen Ausrüstungsgegenstände sind ebenfalls fehlerhaft - es gibt spezielle Stiefel für Waldläufer (und Druiden?), die eigentlich Schutz gegen Netz, verstricken usw gewähren sollten, aber auch nicht funktionieren. Ich müsste nachsehen, wie diese Stiefel nochmal genau heißen ...
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
12.946
@Lumorus zu der Tür in Nashkel, die von Megan entriegelt werden soll: wenn DSotSC 3.0 instaliert ist, seiht der Skriptblock so aus:
Code:
IF
    Global("TalkedToMegan","GLOBAL",1)
THEN
    RESPONSE #100
        CutSceneId("DSMEGAN")  // Megan
        Wait(2)
        Unlock("DOOR3704")
        OpenDoor("DOOR3704")
        EscapeArea()
END

Das heißt, die Platzhaltervariable wird eigentlich richtig erkannt und es wird auch der BGT-Türname eingesetzt. Funktionierte das trotzdem bei Dir nicht, oder hattest Du "nur" die Moddateien angesehen? Eventuell hat er das auch nochmal gefixr, seit Du Dir das angesehen hattest. Vom Code her zumindest müsste es jetzt eigentlich klappen.
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
12.946
- im Gebiets-Script für die Drachenheide habe ich (vor der Installation) die Voraussetzung für den Tod der der "DSHALFD" in "DSHALFDD" geändert, damit es mit dem spawnen der Halblingskrieger übereinstimmt, die getötet werden sollen, damit der zweite Drache verschwindet.
@Lumorus
Eigentlich haben drei der Halblinge den Skriptnamen "DSHALFD". Das heißt, wenn die gestorben sind, dann sollte der Count "NumDeadGT("DSHALFD",2)" erfüllt sein. Warum der Drache dann nicht verschwindet ist mir nicht klar. DSotSC verwendet das "NumDeadGT" an unglaublich vielen Stellen, das sollte also hoffentlich im Prinzip funktionieren. ...Hast Du davon noch einen Savegame?
 

Lumorus

Wachender
Registriert
03.03.2011
Beiträge
4.075
Das heißt, die Platzhaltervariable wird eigentlich richtig erkannt und es wird auch der BGT-Türname eingesetzt. Funktionierte das trotzdem bei Dir nicht, oder hattest Du "nur" die Moddateien angesehen? Eventuell hat er das auch nochmal gefixr, seit Du Dir das angesehen hattest. Vom Code her zumindest müsste es jetzt eigentlich klappen.
Leider funktionierte es mit der jetzigen aktuellen DSotSC-3.0-Version noch nicht. Als ich mir den Scriptbefehl in der "Megacut" in NI dann noch einmal angesehen hatte, stand dort weiterhin eine falsche Türbezeichnung, also nicht die Bezeichnung, welche die Tür in BGT hat. Das wurde also noch nicht behoben. Momentan kann ich auf der Github auch noch keine neuere Version finden, die seit August 2019 gemacht wurde-
Ich habe es aber per NI die Megacut bearbeitet und den richtigen Wert eingefügt - ein kleiner Test per Konsole hat bestätigt, dass es so dann funktioniert hat, Meghan hat die Tür geöffnet.

Eigentlich haben drei der Halblinge den Skriptnamen "DSHALFD". Das heißt, wenn die gestorben sind, dann sollte der Count "NumDeadGT("DSHALFD",2)" erfüllt sein. Warum der Drache dann nicht verschwindet ist mir nicht klar. DSotSC verwendet das "NumDeadGT" an unglaublich vielen Stellen, das sollte also hoffentlich im Prinzip funktionieren. ...Hast Du davon noch einen Savegame?
Nein, leider habe ich kein Savegame mehr davon - ich weiß auch nicht, ob das mit der jetzigen Installation noch gegangen wäre.
nicht mehr.
Ich hoffe, ich kann es dieses Wochenende anschauen, ob meine Änderungen gewirkt haben.
Stimmt, zwei der Halblinge in dem Script haben die Nummer "DSHALFD" - aber wie oben zu sehen ist, werden für den Kampf zwei Halblinge mit der Nummer "DSHALFDD" gespawnt ... meine Vermutung ist nun, dass das Problem, dass der Drache nicht verschwindet, in dem zweiten "D" besteht. Oder in dem "D" was zu wenig ist. Bei den Konsolenbefehlen ist es eigentlich genauso ... ein Buchstabe oder eine Zahl mehr oder weniger und es funktioniert nicht mehr ...

EDIT: Ich habe gerade gesehen, dass die Übersicht in Naschkell bei mir in NI genauso aussieht, wie bei Dir in Beitrag #44
 
Zuletzt bearbeitet:

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
12.946
Leider funktionierte es mit der jetzigen aktuellen DSotSC-3.0-Version noch nicht.
Bei mir ist, wie gesagt, der richtige Türname im Spiel installiert. :confused: Ich würde dann damit erstmal warten, bis Feedback von der Version kommt, die ich gerade in Arbeit habe.
meine Vermutung ist nun, dass das Problem, dass der Drache nicht verschwindet, in dem zweiten "D" besteht. Oder in dem "D" was zu wenig ist.
Das eine ist der Name der Datei, das andere der "Scriptname" (früher Death Variable), die die cre im Spiel hat. Die beiden cre-Dateien "DSHALFD2" und "DSHALFDD" haben beide den Skriptnamen "DSHALFD", und da die letztere zweimal gespawnt wird, sind es insgesamt drei Kreaturen mit diesem Skriptnamen - ich hofffe, das ist verständlich. Sofern die alle drei sterben, sollte also der Skriptblock, der das Weggehen des Drachen triggert, ausgeführt werden. Da könnte man z.B. über das Überprüfen der gesetzten Variablen Global("DragonDoor","AR4600",1) nachschauen.
 

Lumorus

Wachender
Registriert
03.03.2011
Beiträge
4.075
Bei mir ist, wie gesagt, der richtige Türname im Spiel installiert. :confused: Ich würde dann damit erstmal warten, bis Feedback von der Version kommt, die ich gerade in Arbeit habe.
Das ist wirklich komisch ... :confused:

Das eine ist der Name der Datei, das andere der "Scriptname" (früher Death Variable), die die cre im Spiel hat. Die beiden cre-Dateien "DSHALFD2" und "DSHALFDD" haben beide den Skriptnamen "DSHALFD", und da die letztere zweimal gespawnt wird, sind es insgesamt drei Kreaturen mit diesem Skriptnamen - ich hofffe, das ist verständlich. Sofern die alle drei sterben, sollte also der Skriptblock, der das Weggehen des Drachen triggert, ausgeführt werden. Da könnte man z.B. über das Überprüfen der gesetzten Variablen Global("DragonDoor","AR4600",1) nachschauen.
Tut mir leid, für mich leider nicht wirklich verständlich. :o
Ich denke nicht, dass die "DSHALFD2"-cre sterben sollte, sondern nur wirklich die beiden "DSHALFD"-Cres ... die aber als "DSHALFDD"s spawnen
Sowohl DSHALFD2 als auch DSHALFDD stimmen zwar bis zu einem gewissen Punkt mit dem geforderten Scriptnamen "DSHALFD' überein ... aber haben am Ende noch eine weitere Ziffer - also die 2 bzw. das zweite D. So bin ich dann zu der Vermutung gekommen, dass das Script nicht erkennt, dass der Drache verschwinden soll, weil zwei Cres sterben, deren Bezeichnung gar nicht vollständig mit dem Scriptnamen übereinstimmt.
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
12.946
Was ich versucht habe zu erklären ist, dass der Engine das zweite D Wumpe ist, weil die Kreaturen intern mit dem Namen mit nur einem D geführt werden (Dateiname ist nicht gleich Skriptname der Kreatur). Eventuell ist es so verständlicher.
Und der Skriptname mit einem D stimmt mit denen von drei Halblingen überein.
Wenn Du aber sagst, dass eigentlich nur zwei Halblinge sterben, dann ist das eventuell das Problem. Dann würde ich das "NumDeadGT("DSHALFD",2)" zu "NumDeadGT("DSHALFD",1)" ändern (so dass überprüft wird, ob mindestens 2 gestorben sind, nicht 3 wie vorher).
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
12.946
Als Beispiel Dateiname der kreatur nicht gleich Skriptname: Der Drache "Salandiaxarxes" hat die cre Datei "DSFORDRG,cre", womit er auch gespwnt wird. Angesprochen wird er aber mit seinem vollen Namen "Salandiaxarxes" (in dem Skriptblock, in dem er eigentlich verschwinden soll: ActionOverride("Salandiaxarxes",EscapeAreaDestroy(15))), weil das sein interner Skriptname ist.
 

Lumorus

Wachender
Registriert
03.03.2011
Beiträge
4.075
Ja, nun verstehe ich es besser.

Ich habe es mal im Schnelldurchlauf getestet - Du hattest recht, es ist wirklich egal, dass ich im Script DSHALFD in DSHALFDD umbenannt habe und hat nichts gebracht.
 
Oben