Thanks EMOD, das war das was ich brauchte, so jetzt gehts los, eine Folterkammer wollte ich schon immer mal haben
PS: @Cyborg
Sehe grad ud hast ne 360, zockst du GTA auch online? Dann würd ich dich mal adden sobald ich wieder Gold hab...
Thanks EMOD, das war das was ich brauchte, so jetzt gehts los, eine Folterkammer wollte ich schon immer mal haben
PS: @Cyborg
Sehe grad ud hast ne 360, zockst du GTA auch online? Dann würd ich dich mal adden sobald ich wieder Gold hab...
Achso, na dann hätte, ich eigentlich drauf kommen müssen
Bin beim Sklavenhalsband zwar nicht fündig geworden, aber dafür auf der GECK Seite
Hätte nicht gedacht, dass es einfach nur der kill command mit ner Nummer dahinter ist...
Geändert von TheManiac (26.04.2009 um 21:01 Uhr)
Hab ein kleines Problem, ich war in dem Regioneditor und hab dabei wohl versehentlich die Region DC02 gelöscht es aber zu keinem Plug-In gespeichert und das GECk einfach geschlossen, als ich es aber wieder geöffnet habe war DC02 trotzdem weg. Habe letztens dann wegen anderen Problemen Fallout 3 und alles was damit zu tun hatte deinstalliert und anschließend wieder installiert, leider hat sich an der Siutuation nichts geändert, DC02 ist immer noch weg.
Hat das etwas zu bedeuten...muss ich mir eventuell sorgen machen
Achja ich versuch gerade ein Script zu erstellen, das Lichter um 21 Uhr ein und um 5 Uhr ausschaltet, aber irgendiwe wills nicht funktionieren, ich verstehs nicht, bsiher haben alle meine Scripts problemlos gefunzt...
Wäre echt nett, wenn mir jemand eins schreiben würde...
Edit: frage 1 hat sich erledigt *g* Ich hab die ganze Zeit in der Citadel World geguckt^^
Geändert von TheManiac (26.04.2009 um 21:00 Uhr)
Meine Version:
scn NACHTLICHTSCRIPT
ref NachtlichtVAR
Begin GameMode
if NachtlichtVAR == 0
set NachtlichtVAR to GetLinkedREF
endif
if gameHour >= 5.0 && gameHour <= 21.0
NachtlichtVAR.disable
else
NachtlichtVAR.enable
endif
End
Das Skript in einen Aktivator packen und daraus eine Collision Box machen. Die verlinkst du mit einer Lichtquelle. Die Lichtquelle am besten im Objekt-Fenster disablen und persist machen. Alle anderen Lichtquellen, die ebenfalls ausgehen sollen, mit enable parent an die erste koppeln.
Geändert von EMOD (06.05.2009 um 01:44 Uhr)
Danke dir, hab das Script schon vor einigen Tagen zum Laufen gebracht, ich wusste dann nur nicht wo ich es hinpacken soll...
Mein Script sieht jetzt so aus:
Hab den Lichtern einen XMarker als Enable Parent zugewiesen, imo mit die einfachste Art *g*
Edit: Achja bei mir flackern die Lichter, wenn der enable Teil direkt nach der Gamehourbedingung kommt...
Deshalb hab ich bei mir ein doonce benutzt...könnte man den Teil eigentlich auch so schreiben:
Dann könnte ich mir nämlich zwei ifs und endifs sparen![]()
Geändert von TheManiac (06.05.2009 um 12:39 Uhr)
Du denkst noch zu kompliziert.
1. Die Trigger kannst du dir sparen, wenn das Licht automatisch an und aus gehen soll. Wenn du damit bezweckst, das die Abfragen erst gestartet werden, wenn der Player kommt, macht das wenig sinn, da GameMode automatisch läuft.
Wenn du damit einen automatischen Schalter bezweckst, der sich durch den Player aktivieren soll, dann ist es okay. Wobei du aber dann wieder keinen GameMode brauchts, weil du die GameHour mit dem Trigger und einem if abfragen kannst.
z.b.
Beginn onTriggerEnter player
if GameHour xxx
Licht enable
End
Beginn onTriggerLeave player
Licht disable
End
Geändert von EMOD (07.05.2009 um 19:03 Uhr)
Soweit ich weiß gibts auch bei GameHour keine Grenzen nach 24 kommt also 25 26 27 usw. aber mit dem oder <6 werden auch alle Zahlen unter 6 relevant, also 6 5 4 3 2 1 somit hab ich mit dem oder alles abgedeckt:
Das Spiel liest die Zahl 22 als Uhrzeit aus, GameHour > 20 trifft zu, das Spiel liest 1 als Uhrzeit aus GameHour > 20 trifft nicht mehr zu, aber dafür GameHour < 6
Wenn du es in die Richtung mit einem und versuchen würdest, dann würde es nicht funktionieren, hatte es darüber auch schon mit jemandem im Bethesda Forum, der es so gemacht hat:
20, 21, 22, 23 && 0, 1, 2, 3, 4, 5, 6 würde kein Problem darstellen, wenn das Spiel wüsste wie eine Uhr funktioniert, aber da es das nicht weiß und auch GameHour nur als eine Zahl ausgelesen wird, wäre diese Abfrage
if GameHour > 20 && GemHour < 6
permanent falsch, das würde nämlich bedeuten, dass die Uhrzeit größer als 20 und kleiner als 6 sein muss und das geht nicht...
Die Zeitabfrage aus deinem Script funktioniert natürlich wunderbar, du hast das oder vermieden, indem du einfach das Gegenereignis definiert hast
Das mit dem kompliziert Denken liegt daran, dass ich es noch nie mit Triggern zu tun hatte...dazu hab ich auch noch eine Frage:
Wenn ich jetzt die Trigger Blöcke weglasse, läuft das Script dann unter Gamemode permanent oder nur wenn der Spieler im Trigger steht?
Ich möchte den Mod nämlich nur so viel wie nötig zu müllen, sonst hätte ich ja von Anfang an ein Quest zum Aktivieren benutzt![]()
Geändert von Sethx (27.05.2009 um 13:51 Uhr)
Genau das meinte ich, die Triggerblöcke sind unnötig, weil der GameMode Block sowieso immer läuft.
@SethX
Das ist wie mit dem Kühlschranklicht, die Skripte laufen zu 99% nicht, wenn der Player außerhalb der Reichweite/Innenzelle ist. Ich weis nur nicht ob die Zellengrenzen bestimmen oder ob es eine maximale Reichweite gibt.
Man kann das leicht testen, koppel mit dem Lichtschalter einen Placeatme Monster 1, nach jedem Tag, der vergangen ist, müsste dann ein Monster an der Stelle stehen, wenn die Zeitschaltuhr mitläuft.
Nach meiner Erfahrung passiert das nur, wenn sich der Player in Reichweite/Zelle befindet. Ich habe solche Abfragen sicherheitshalber immer mit if GetDistance player <= XXXX gekoppelt, da der Beginn GameMode eh mitläuft.
@Trigger
Der Trigger oder (+Enter) aktiviert sich nur, wenn man die Box berührt oder (+Leave) sie verlässt. Wenn man da einen GameMode reinpackt, ist es ein aktiver Aktivator für Skripte + ein Trigger in der Größe der Box. Um zu vermeiden, dass der Trigger von anderen ausgelöst wird (herumlaufenden NPCs):
Begin onTrigger player
Begin onTrigger CalistaREF
Trigger sind auch nur 1x Schalter, weshalb man für eine permanente if Abfrage dann zusätzlich den GameMode braucht. Wenn also irgend ein Trigger Event nicht gehen sollte, muss man die if Abfrage vielleicht nur in einen GameMode setzen. Das ist z.b. beim Lichtschalter so, wäre es nur ein if im Trigger Block, dann würde sich das Licht nur bei Berührung der Trigger Box zu der Uhrzeit Abfrage ein- oder ausschalten.
Kommt immer darauf an was man macht, manche Abfragen gehen nur im GameMode, bei anderen ist es egal. GECK-Wiki hilft manchmal, da man oft tricksen muss
@Läuft das Skript
Das war ja auch der Konsens bei der normalen MM Variante, ich bin davon überzeugt, das die markfordelete Skripte nach Zellen-Reset/Uhrzeit nicht so gehen, wie sie sollten. Im Grunde müssen die Leichen der Monster liegen bleiben, solange der Zell-Reset nicht gemacht wurde oder der Player außerhalb der Reichweite ist.
Beispiel:
Du killst Zombies in der Metro und gehst nach DC. Zwar steht im Skript der Zombies, lösche dich beim Zell-Reset, da der Player aber nicht in Reichweite ist, kann er das eigentlich nicht ausführen. Betritts du die Metro nach dem Zell-Reset wieder, stellt sich die Frage: Hat er sich den Zeitpunkt für den Zell-Reset aller Leichen gemerkt, also den Wert für alle toten Zombis abgespeichert, dann löscht er sie sofort, weil der Player wieder in Reichweite/Zelle ist. Hat er das nicht gespeichert, laufen alle Skripte wieder an, und warten auf den Zell-Reset. Egal wie man es dreht, je mehr Leichen, umso mehr Müll.
Deshalb meine Abfrage auf Entfernung:
scn zMMMzSpawnRemoval
Begin GameMode
if GetDead == 1 && GetDistance Player > 11000 && GetInSameCell Player == 0
markfordelete
endif
End
Beim GetInSameCell Player == 0 müsste sofort alles verschwinden. Ist dann wieder wie beim Kühlschranklicht, hat er es tatsächlich noch ausgeführt, wenn du die Innenzelle verlässt oder das Skript schon auf Eis gelegt, in der Sekunde wo du die Zelle verlassen hast
Diese GetInSameCell == 0 würde umgekehrt immer als GetInSameCell CalistaREF == 0 funktionieren, weil viele Events eh nur wichtig sind, wenn der Player anwesend ist. Aus dem Gefühl würde ich sagen, die GameMode Abfrage ist so schnell, das er die if noch ausführt, bevor du ganz aus der Zelle/Reichweite verschwinden kannst.
Geändert von EMOD (07.05.2009 um 19:01 Uhr)
Ok danke, dann kann ich also das OnTrigerEnter Player und OnTriggerLeave Player weglassen...so wie ich euch jetzt verstanden habe, brauche ich die OnTrigger Blöcke nur bei Dingen wie einen Quest, der beim betreten eines Raumes startet oder automatisch schließenden/öffnenden Türen?
Achja wegen der Uhrzeit, du kannst ja mal probieren ein && zwischen meine Abfrage zu setztenUnd else ist ja so wie ich das bis jetzt bei Scripts gesehen habe nicht das genaue Gegenteil der oben definierten if-Bedingung, auf Englisch heißt else einfach nur andernfalls und das heißt es soweit ich weiß bei Scripts auch.
Ich prophezeie dir auf jeden Fall, dass mein Script mit einem && nicht funktionieren würdeund das liegt daran, dass nach 23 nicht 0 sondern 24 kommt und nach 24 nicht 1 sondern 25
Trigger immer wenn du willst, das sich Ereignis bei betreten der Box aktivieren soll. Es ist wie eine Lichtschranke oder ein Sensorfeld, dass irgend etwas auslöst, wenn du durchgehst.
Der Trigger muss so gesetzt sein, dass er ausgelösst wird, wenn jemand/etwas ... durchgeht. Man kann ihn ja beliebig ziehen, vergrößern und in die Höhe strecken.
Wenn du die Box nur als Aktivator im GameMode benutzt (Zeitschalter), dann kannst du sie ganz klein machen und sie auch außerhalb der Gänge/Wände platzieren.
Mit der Uhrzeit hast du recht, weil es bei mir am Anfang nicht funktioniert hat. Deshalb habe ich ihn durch probieren bestimmt zufällig mit 5 bis 21 Uhr disabled für && kompatibel gemacht.
Mein erster Versuch war sicher auch 21 bis 6 Uhr anmachen, was dann durch mein && nicht ging, weil ich über ein || zwar nachdachte, aber nicht auf das 21 22 23 24 25 kam.
Aus dem Kopf könnte ich viele Sachen eh nicht machen, ich muss mir die Skripte erst nochmal ankucken, bevor ich da aktiv was neues erstellen kannLeider kann man man nicht 24h/365 Tage modden. Für E-MOD hatte ich 3 Monate Vollzeit ^^.
Geändert von EMOD (07.05.2009 um 16:24 Uhr)