[Modding] BG1 NPC Startposition ändern

Dieses Thema im Forum "Modding Forum" wurde erstellt von Lokadamus, 21. September 2019.

  1. Lokadamus

    Lokadamus Buddelmagier

    Registriert seit:
    März 2000
    Beiträge:
    4.845
    Zustimmungen:
    4
    Grundlage ist der Mod https://forums.beamdog.com/discussion/72746/bg1-npcs-at-beginning-v3-0
    Xzar und Montaron wollte ich zu Quayle eine Karte weiter verschieben.
    Leider werden die alten Einträge nicht entfernt, weshalb Xzar und Montaron sowohl in Area 6600 (Imoen ist auch da) und Area 6900 (die Kreuzung) erscheinen.

    Die TP2- Datei habe ich am Ende um folgendes Erweitert.
    Code:
    // *** Xzar & Montaron ***
    
    BEGIN @220 DESIGNATED 220
    REQUIRE_PREDICATE GAME_IS ~totsc bgt bgee~ @999
    
    ACTION_IF GAME_IS ~bgt~ BEGIN
    	COPY_EXISTING ~ar6600.bcs~ ~override~
    	DECOMPILE_BCS_TO_BAF
    	REPLACE_TEXTUALLY ~CreateCreature("BGXZAR",[4581.2694],0)~ ~~
    	REPLACE_TEXTUALLY ~CreateCreature("MONTAR",[4514.2705],0)~ ~~
    	REPLACE_TEXTUALLY ~CreateCreature("XZAR2",[4581.2694],0)~ ~~
    	REPLACE_TEXTUALLY ~CreateCreature("MONTAR2",[4514.2705],0)~ ~~
    	REPLACE_TEXTUALLY ~CreateCreature("XZAR4",[4581.2694],0)~ ~~
    	REPLACE_TEXTUALLY ~CreateCreature("MONTAR4",[4514.2705],0)~ ~~
    	REPLACE_TEXTUALLY ~CreateCreature("XZAR6",[4581.2694],0)~ ~~
    	REPLACE_TEXTUALLY ~CreateCreature("MONTAR6",[4514.2705],0)~ ~~
    	REPLACE_TEXTUALLY ~GlobalGT("Chapter","GLOBAL",3)~ ~GlobalGT("Chapter","GLOBAL",8)~
    	COMPILE_BAF_TO_BCS
    
    	EXTEND_BOTTOM ~ar6900.bcs~ ~bg1npcbeg/add-xzar-6900.baf~
    
    END
    
    Die BAF sieht wie folgt aus:
    Code:
    IF
      Global("h#xzar","GLOBAL",0)
      Level(Player1,1)
    THEN
      RESPONSE #100
        SetGlobal("h#xzar","GLOBAL",1)
        CreateCreature("BGXZAR",[950.2000],0)
        CreateCreature("MONTAR",[900.2000],0)
    END
    
    IF
      Global("h#xzar","GLOBAL",0)
      OR(2)
        Level(Player1,2)
        Level(Player1,3)
    THEN
      RESPONSE #100
        SetGlobal("h#xzar","GLOBAL",1)
        CreateCreature("XZAR2",[950.2000],0)
        CreateCreature("MONTAR2",[900.2000],0)
    END
    
    IF
      Global("h#xzar","GLOBAL",0)
      OR(2)
        Level(Player1,4)
        Level(Player1,5)
    THEN
      RESPONSE #100
        SetGlobal("h#xzar","GLOBAL",1)
        CreateCreature("XZAR4",[950.2000],0)
        CreateCreature("MONTAR4",[900.2000],0)
    END
    
    IF
      Global("h#xzar","GLOBAL",0)
      LevelGT(Player1,5)
    THEN
      RESPONSE #100
        SetGlobal("h#xzar","GLOBAL",1)
        CreateCreature("XZAR6",[950.2000],0)
        CreateCreature("MONTAR6",[900.2000],0)
    END
    
    Der Teil mit dem Selbstentfernen nach Chapter 3 habe ich entfernt.

    Die setup.tra ist in der deutschen Sprache um @220 erweitert und wird auch als "successfull installiert" angezeigt.

    Was mache ich falsch, dass in Area 6600 die Einträge von Xzar und Montaron nicht entfernt werden?
    Das Area Skript wird bei Chapter angepasst von 3 auf 8, was durchgeführt wird.
     
  2. Maus

    Maus Senior Member

    Registriert seit:
    Aug. 2002
    Beiträge:
    6.258
    Zustimmungen:
    13
    Na, du musst die Area, in der sie normalerweise erscheinen per area-Skript noch ändern und die beiden ursprünglichen dort wegteleportieren an deine neue Wunschlocation. Nicht töten, das gibt Ärger mit der Dead-Variable. Wenn du sie einfach neu erschaffst, dann sind sie halt doppelt...
     
  3. Jastey

    Jastey Senior Member

    Registriert seit:
    Mai 2004
    Beiträge:
    6.853
    Zustimmungen:
    158
    Um genau zu sein, müsstest Du in der Wunscharea im Skript die NPCs über MoveGlobal hinschieben. Dann verschwinden sie automatisch in den ursprünglichen und Du hast genau die, die dort rumstanden. Geht bei den originalen NPCs direkt, bei Mod-NPCs müsste man sie erst global machen (mit MakeGlobal).
     
  4. Lokadamus

    Lokadamus Buddelmagier

    Registriert seit:
    März 2000
    Beiträge:
    4.845
    Zustimmungen:
    4
    @Maus. Dafür sind die Zeilen da:
    COPY_EXISTING ~ar6600.bcs~ ~override~
    DECOMPILE_BCS_TO_BAF
    REPLACE_TEXTUALLY ~CreateCreature("BGXZAR",[4581.2694],0)~ ~~

    @Jastey. Äh, nein. Ich will gerade nicht, dass sie in der ursprünglichen Area überhaupt erschaffen werden.

    Hat sich einer auch das Original angeschaut? Es ist nur ein Copy and Paste, was ich für Xzar und Montaron angepasst habe.
     
  5. Jastey

    Jastey Senior Member

    Registriert seit:
    Mai 2004
    Beiträge:
    6.853
    Zustimmungen:
    158
    Ah, stimmt. Hm, dann schieb sie zusätzlich in der Originalarea rüber mit MoveGlobal. Bei Verwendung derselben Variablen passiert das dann auch nur einmal.
    EDIT: MoveGlobal korrigiert
     
    Zuletzt bearbeitet: 21. September 2019
  6. Lokadamus

    Lokadamus Buddelmagier

    Registriert seit:
    März 2000
    Beiträge:
    4.845
    Zustimmungen:
    4
    Fehler gefunden:
    REPLACE_TEXTUALLY ~CreateCreature("BGXZAR",\[4581.2694\],0)~ ~~

    Vor dem [ oder dem ] muss ein \ sein, damit sie erkannt werden. Dadurch werden Xzar und Montaron nicht mehr in AR6600 erschaffen.
    Jetzt kann ich noch Edwin in die Taverne schubsen, Minsc in den kleinen Tempel, Coran ebenfalls ins Gebetshaus und Shar Teel wandert in eine Spelunke. Da kann sie sich mit Männern prügeln.
    Was ich mit Imoen mache, weiß ich noch nicht.

    Edit: Wer bastelt so spät in der Abendschicht? Irgendwann muss es mal gemacht werden.
    Wer Langeweile hat, kann sich den kompletten Mod von oben herunterladen und meinen Anhang dazu entpacken. Wenn es richtig entpackt wird, sollte es die Dateien überschreiben und Xan & Montaron, Edwin und Minsc und Coran werden leicht versetzt.
    Und könnte jemand noch das Fileformat 7z für erlaubte Dateianhänge freischalten? Das hätte die Dateien auf 3KB komprimiert.

    Edit: 22.09,. 15:10: Text von Coran geändert.
    Von ~Es tut gut auf andere Leute an diesem Ort zu stoßen. Mein Name ...
    auf ~Es ist erfrischend andere Leute an diesem Ort zu sehen. Mein Name ...
     

    Anhänge:

    Zuletzt bearbeitet: 22. September 2019
  7. Lokadamus

    Lokadamus Buddelmagier

    Registriert seit:
    März 2000
    Beiträge:
    4.845
    Zustimmungen:
    4
    Hat jemand ein gutes Tutorial, wie man die Aktionen bei jemanden verändern kann?
    Nachdem ich Garrick in die Taverne/ Spelunke verschoben habe, kann er seine Sequenz nicht starten. Ich hoffe, es reicht aus seinem EscapeArea ein EscapeAreaMove mit den richtigen Parametern zu machen.
    Alternativ würde ich bei Firebeard noch BAG03 hinzufügen. Das dürfte über ADD_CRE_ITM gehen. Sein Dialog müsste noch angepasst werden und erweitert werden um GiveItem. Wie stell ich das am besten an?
    Ich hab ein bischen Probleme damit zu verstehen, wie ich die Texte bzw. Trigger bearbeiten kann. Vor allem, wenn sie durch einen anderen Mod verschoben sind.
     
    Zuletzt bearbeitet: 23. September 2019
  8. Lokadamus

    Lokadamus Buddelmagier

    Registriert seit:
    März 2000
    Beiträge:
    4.845
    Zustimmungen:
    4
    Garrick hatte ich in die Taverne verschoben. Die Sequenz habe ich so zum Laufen bekommen. Allerdings habe ich dazu nur die Garric.d bearbeitet.
    Wie ich es per Skript hinbekommen kann, ist mir weiterhin unklar.
    Code:
      IF ~~ THEN DO ~ClearAllActions()
    	EscapeAreaMove("AR6700", 2630, 2230, 12) // Garrick walk to next exxit
    	ActionOverride(Player1,LeaveAreaLUA("AR6700","",[2600.2215],12)) // move Player1 to other place
    	ActionOverride(Player2,LeaveAreaLUA("AR6700","",[2600.2215],12))
    	ActionOverride(Player3,LeaveAreaLUA("AR6700","",[2600.2215],12))
    	ActionOverride(Player4,LeaveAreaLUA("AR6700","",[2600.2215],12))
    	ActionOverride(Player5,LeaveAreaLUA("AR6700","",[2600.2215],12))
    	ActionOverride(Player6,LeaveAreaLUA("AR6700","",[2600.2215],12))
    	LeaveAreaLUAPanic("AR6700","",[2600.2215],12) // Switch Area
    StartCutSceneMode()
    StartCutScene("Garrcut")
    ~ EXIT
    Damit Garrick nicht mehr verschwindet, muss die eine Variable ersetzt werden
    Code:
    //IF ~  NumberOfTimesTalkedTo(0)
    IF ~
    GlobalLT("TalkedToGarrick","GLOBAL",1)
    
     
    Zuletzt bearbeitet: 25. September 2019
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden