Construction Set Skriptthread zum Construction Set

Probiere mal folgendes:

Code:
scn NAME
short once

begin onactivate
if once==0
  if getstage PWBGQuestRolf == 10
  setstage PWBGQuestRolf 20
  set once to 1
  endif
elseif once==1
activate
endif
end
Es ist üblich, bei If-Abfragen ein "==" ">=" "<=" oder "!=" zu benutzen.
 
Code's machst du mit
[code1] XXX [/code1] (ohne die 1)

Ach ja, die == hab cih vergessen ^^

@ Waldmeister, es solte so aussehen

Code:
scn NAME
short once

begin onactivate
if once==0
  if getstage PWBGQuestRolf == 10
  setstage PWBGQuestRolf 20
  set once to 1
    activate
  endif
elseif once==1
activate
endif
end
 
Das unterscheidet sich im Prinzip nicht von meinem Skript :p
Bei meinem wird beim erste Aktivieren eben nur die Queststage erhöht und erst ab dem zweiten mal kann man dann das Inventar der Leiche öffnen.

Bei dir öffnet es sich auch beim ersten Mal wenn die Queststage enabled wird.

Eigentlich könnten wir das "once" weglassen und die Abfrage mit dem "GetStage" ersetzen...Würde das Skript verkürzen:
Code:
scn NAME

begin onactivate
if getstage PWBGQuestRolf == 10
setstage PWBGQuestRolf 20
else
activate
endif
end
oder:
Code:
scn NAME

begin onactivate
if getstage PWBGQuestRolf == 10
setstage PWBGQuestRolf 20
endif
activate
end
 
Zuletzt bearbeitet:
Danke jetzt kann ich Dinge explodieren lassen!:lol: Hab mit den XMarkers gleich noch ein bisschen experimentiert. Leider funktioniert da was nicht wie es soll. Ich habe jetzt ein Script erstellt, dass einen Feuerball von einem XMarker zum anderen fliegen lässt. Der Ausgangspunkt stimmt aber der Feuerball geht irgendwo inne Pampa und nicht zum Ziel. Das Script sieht folgendermaßen aus:

Code:
Scn Beschuss

Begin OnEquip

"Punkt1Ref".cast Feuerball "Ziel1Ref"

End

Hab auch schon mit normalen XMarkers und denen mit Direction experimentiert, macht keinen Unterschied. Kann mir einer sagen wo der Fehler liegt?
Btw noch eine Frage, muss ich die Anführungszeichen setzen? Hab das bei einigen Beispielscripts mal gesehen.
 
Dieser Artikel sollte darüber Aufschluss geben. Die Ziel-Referenz muss also ein Actor oder ein Activator sein.
Zu den Anführungszeichen... ich selbst setze keine, andere machen es. Wahrscheinlich geht beides, ohne irgendwelche Unterschiede.
 
  • Like
Reaktionen: General von Cyrodiil
Wenn der Feuerball fliegt, hast du ja gar keinen Berührungszauber und dann sieht es auch nicht wie eine Explosion aus...:? Für den Feuerball-Cast hättest du dir einfach mal das Skript der Oblivion-Minen angucken können :p
 
Moin,

Ich versuche gerade ein Script für einen Teleporter zu schreiben (was eigentlich nicht schwierig sein sollte o_O) und verzweifle langsam. Ich habe schon sämtliche Tutorials und Foren durforstet, auch einige Posts gefunden in welchen mein Problem beschrieben war und bin dennoch nicht weitergekommen. Ich probierte die Lösungen aus und dennoch tat sich nichts. Auch den "moveto" befehl habe ich schon probiert leider jedoch mit demselben ergebnis.

Es handelt sich um ein Script, welches auf einem NPC liegt, demnach ist der Typ auf "Object" eingestellt.

Wenn man den NPC anspricht, sollte sich eine messagebox öffnen in welcher die Namen der Städte Cyrodiils stehen. Nach dem Anklicken einer Stadt sollte der Player eigentlich in das Schloss der angeklickten Stadt teleportiert werden. Doch irgendwie, warum auch immer, passiert wenn ich die Städte anklicke, gar nichts.

Das hier ist mein aktuelles Script.


Code:
scn aaaTeleporterScript01

short button
short teleporter

begin onActivate

    messagebox "Wohin wollt ihr reisen?" , "Skingrad" , "Bravil" ,  "Chorrol" , "Die Kaiserstadt" , "Leyawiin" , "Cheydinhal" , "Kvatch" 
        if teleporter == 0
        set teleporter to 1
    endif
end



Begin GameMode

if teleporter == 1
                set button to GetButtonPressed

            if button == 0 && teleporter == 1
                 Player.GetInCell SkingradCastle
        set teleporter to 1

            elseif button == 1 && teleporter == 1
                Player.GetInCell BravilCastleGreatHall
         set teleporter to 1

            elseif button == 2 && teleporter == 1
                Player.GetInCell ChorrolCastle
        set teleporter to 1

        elseif button == 3 && teleporter == 1
                Player.GetInCell ICPalace
        set teleporter to 1

        elseif button == 6 && teleporter == 1
                Player.GetInCell LeyawiinCastle
        set teleporter to 1

        elseif button == 7 && teleporter == 1
                GetInCell CheydinhalCastle
        set teleporter to 1

        elseif button == 8 && teleporter == 1
                GetInCell Kvatch
    
    return

    endif
    endif
end
Ich hoffe jemand findet den Fehler und kann mir sagen was ich falsch gemacht habe.

Danke schonmal im Voraus^^
 
Zuletzt bearbeitet:
es ist besser wenn du in der bertreffenden zelle einen x-marker setzt und dann den befehl player.moveto MarkerID (muss beim marker als RefID eingegeben werden) einsetzt anstatt den getincell, der meiner meinung nach eher eine abfrage der aktuellen zelle darstellt

also überall nen x-marker setzen dann muss es funktionieren ;)

MfG DarkSinthoras
 
  • Like
Reaktionen: AkiRa
Hallo.

Wie mein Vorredner gepostet hat, solltest du XMarker nehmen

Zu finden unter worldObjects>Static>Xmarker (ganz unten)

Diesen geb ich in dem beispiel mal die ID markerStadtname

also MarkerIC, markerSK, MarkerCHO, MarkerCHE, MarkerANV, MarkerLEY, MarkerBRA, MarkerBRU, MarkerKVA
(was sollder player überhaupt in Kvatch?)

Code:
scn aaaTeleporterScript01

short button
short teleporter

begin onActivate

    messagebox "Wohin wollt ihr reisen?" , "Skingrad" , "Bravil" ,  "Chorrol" , "Die Kaiserstadt" , "Leyawiin" , "Cheydinhal" , "Kvatch" 
        if teleporter == 0
        set teleporter to 1
    endif
end



Begin GameMode

if teleporter == 1
                set button to GetButtonPressed

            if button == 0 && teleporter == 1
                 Player.moveto MarkerSK
        set teleporter to 1

            elseif button == 1 && teleporter == 1
                Player.moveto MarkerBRA
         set teleporter to 1

            elseif button == 2 && teleporter == 1
                Player.moveto MarkerCHO
        set teleporter to 1

        elseif button == 3 && teleporter == 1
                Player.moveto MarkerIC
        set teleporter to 1

        elseif button == 6 && teleporter == 1
                Player.moveto MarkerLEY
        set teleporter to 1

        elseif button == 7 && teleporter == 1
                player.moveto MarkerCHEY
        set teleporter to 1

        elseif button == 8 && teleporter == 1
                player.moveto MarkerKVA
    
    return

    endif
    endif
end

So sollt es stimmen.

Weil mit dem GetInCell hast du nur probleme.

du könntest es auch ausweiten, also das GetInCell so verwenden, dass es eine MessageBox gibt, wenn der Player sich schon dort befindet.
(Natürlich nur, wenn du jeden dieser NPC in die entsprechende Zelle stellst)

LG

CC
 
  • Like
Reaktionen: AkiRa
Moin,

Danke euch erstmal^^

@CreamyCewie:

Ich habs jetzt genau so gemacht, als mit "player.moveto" aber es tut sich trotzdem nichts. Ich spreche den NPC, dann erscheint die gewünschte messagebox. Sobald ich auf den Namen einer Stadt klicke, passiert nach wie vor jedoch nichts.

Irgend ne Idee, woran das liegen könnte?
 
Habe auch mal wieder eine Frage mit meinem Problemfall #1.
Die Zeit :D

Code:
scn aaDRCyra0ParentScript04Druckplatte

short Aktiviert
ref DruckplatteRef
ref ParentRef
float TimerToBack

begin GameMode

If (Aktiviert == 0)

    If (getDistance player < 60)
        
    Let ParentRef := getParentRef
    Let DruckplatteRef := getSelf
    Let Aktiviert := 1
    Let TimerToBack := getsecondpassed
    
    DruckplatteRef.playgroup forward 0

    Endif
Elseif (Aktiviert == 1)

    If (GetSecondsPassed - Timer >= 5)

        Let Aktiviert := 0
        Let TimerToBack := 0
        DruckplatteRef.playgroup backward 0

    Endif
Endif
End

begin onReset

    reset3DState
    set activated to 0

end
Der will die Globale nicht akzeptieren.
Was nun?

(EDIT)
:headwall:
Ein s hat gefehlt.
getsecondpassed => getsecondspassed
 
CreamyCewie:
jap, ganz genau^^

ich habe jetzt das Plugin mit einem anderen von mit gemerged, und siehe da, aus einem mir unverständlichen grund geht es nun o_O

danke nochmal^^
 
Eine Frage.
Gibt es ne Abfrage, womit man fragen kann, welche Art Waffe der Spieler derzeit ausgerüstet hat?
Vor allem suche ich nach ner Stumpfwaffen-Abfrage (1H oder 2H ist egal)
 
Ja gibt es. Ich such dir den entsprechenden Artiekl im CS-Wiki,da hab ich ihn nämlich schon gesehn :D
Edit: Guckst du hier^^
Edit2: Für 1H oder 2H gibt es auch eine Abfrage. Du sagtest zwar, es sei nicht so wichtig, aber hier kannst du es trotzdem nochmal nachlesen ;)
 
Zuletzt bearbeitet:
  • Like
Reaktionen: TheDarkRuler