Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem bei Quests#-modding (Scripts)
Lord Asgar
21.12.2007, 00:24
Hallo^^
Ich habe eine Questmod gemoddet. soweit so gut. Am Ende der Quest will ich aber, dass ein bestimmter NPC gerade, wenn der Spieler die Quest abgeschlossen hat, eienn Zauber castet und dann disabled wird. Außerdem will ich, das mit beenden der Quest auch ein völlig naderer NPC an nem anderen ort disabled wird. Was und Wo muss ich da eingeben?^^
GlasMond
21.12.2007, 00:33
Es gibt doch ein Result-Fenster (oder so ähnlich) im Quest-Tab, dort sollte das rein. Schau dir mal Vanilla-Quests an, dann wirst du sehen was ich meine. ;)
Lord Asgar
21.12.2007, 00:50
Ich weiss welches Fenster du meinst, aber das hilft mir nix oO
Ich hatte da schon eingetragen, dass, beim Abschluss der Quest, besagter NPC den Spell castet und der andere disabled wird, aber es ist nichts passiert oO
Wie müssen die Befehle denn genau aussehen? Muss man das vielleicht über einen unsichtbaren Trigger machen?
GlasMond
21.12.2007, 01:07
Sorry bei Scripten blicke ich selbst nicht durch, da muß dir jemand anderes helfen. :(
p.s. Du wurdest geknipst (http://www.multimediaxis.de/showthread.php?t=102213&page=2), Herzlichen Glückwunsch zur Lucky 7! :)
Low Post
21.12.2007, 13:25
Eigentlich sollte
[NPC1-Ref].cast [NPC1-Ref] ;für einen Zauber an selbst
[NPC2-Ref].disable
Zusammen mit der Zeile
[NPC1-Ref].disable
im Zauber(nicht in der Queststage, da der ja erst zaubern muss) reichen.
Wie sah denn dein bisheriger Versuch aus?
Lord Asgar
21.12.2007, 14:00
Also ich hatte es so gemacht ; in dem Fenster neben dem Queststage eingetragen :
Ref [NPC] cast [Spell] self (der Spell ist ein disable-Befehl aus den caster)
Ref [NPC2] disable
Low Post
21.12.2007, 14:21
Da haben wir auch schon den Fehler. Hat der dir bei deinem Script keine Fehlermeldung hinterhergeschmissen, als du auf Compile Result geklickt hast?
Nach dem sog. Calling Actor muss ein . hin, kein Leerzeichen
vor den Calling Actor darf kein Ref ! Wenn du eine Ref-Variable willst musst du die in der Zeile vorher definieren. Wenn du eine (Persitence) Reference eines Objects nehmen willst nimmst du einfach die ID.
Ich geh jetzt mal davon aus, die NPC-Refs haben die ID NPC1Ref und NPC2Ref. Dann müsste das so aussehen:
NPC1Ref.Cast [Spell] NPC1Ref
NPC2Ref.disable
Lord Asgar
21.12.2007, 14:46
Da haben wir auch schon den Fehler. Hat der dir bei deinem Script keine Fehlermeldung hinterhergeschmissen, als du auf Compile Result geklickt hast?
Nach dem sog. Calling Actor muss ein . hin, kein Leerzeichen
vor den Calling Actor darf kein Ref ! Wenn du eine Ref-Variable willst musst du die in der Zeile vorher definieren. Wenn du eine (Persitence) Reference eines Objects nehmen willst nimmst du einfach die ID.
Ich geh jetzt mal davon aus, die NPC-Refs haben die ID NPC1Ref und NPC2Ref. Dann müsste das so aussehen:
NPC1Ref.Cast [Spell] NPC1Ref
NPC2Ref.disable
Dann probiere ich das mal aus (Reicht es wirklich, wenn man das einfach an den Questeintrag hängt?)
Vorher noch ne Frage, reicht es, wenn das Spcript für den Disalbe-Spell so aussieht?
scn wegteleportzauberscript
begin scripteffectstart
disable
end
Edit : Es geht, danke
Edit²:
Wieder eine Frage : Ich möchte, dass eine bestimmte Quest 7 Tage nach beendigung einer anderen Quest (also der auf Status 100-Setzung) gestartet wird, WENN der Spieler sich nicht in einer bestimmten Zelle befindet, andernfalls soll sie gestartet werden, wenn er die Zelle verlässt, solange die 7 Tage um sind.
Edit von Low Post:
Den http://www.multimediaxis.de/layouts/tes36/buttons/edit.gif-Button gibt es immer noch.
Low Post
21.12.2007, 15:29
scn Quest2Script
short Day
short Started
Begin Gamemode
if ( Started )
;Dein Code
else
if ( GetQuestRunning Quest1 == 0 )
if ( Day == 0 )
set Day to ( GameDaysPassed + 7 )
else
if ( GameDaysPassed >= Day )
if ( Player.GetInCell [Die bestimmte Zelle] == 0 )
set Started to 1
endif
endif
endif
endif
endif
End
Setzt vorraus, dass die Quest spätestens beim beenden von Quest 1 gestartet wird. (Imho optimaler Zeitpunkt, da das Skript sonst sowieso nichts macht).
Lord Asgar
21.12.2007, 15:55
scn Quest2Script
short Day
short Started
Begin Gamemode
if ( Started )
;Dein Code
else
if ( GetQuestRunning Quest1 == 0 )
if ( Day == 0 )
set Day to ( GameDaysPassed + 7 )
else
if ( GameDaysPassed >= Day )
if ( Player.GetInCell [Die bestimmte Zelle] == 0 )
set Started to 1
endif
endif
endif
endif
endif
End
Setzt vorraus, dass die Quest spätestens beim beenden von Quest 1 gestartet wird. (Imho optimaler Zeitpunkt, da das Skript sonst sowieso nichts macht).
Muss ich das Script an irgendnen Marker oder so hängen oder wirkt es schon durch seine bloße existenz?
Low Post
21.12.2007, 16:15
Das Skript verwendest du als Skript für die 2. Quest. Das was du eigentlich als Questskript haben willst schreibst du dann da hin wo ;dein Code steht. Der Bereich läuft nur ab, wenn die Quest1 beendet wurde und 7 Tage vergangen sind.
Lord Asgar
21.12.2007, 17:03
Aha, aber was meinst du mit Questscript? Kommt das in dieses Result Window oder reicht es wie gesagt, das Script einfach zu schreiben und abzuspeichern und dann wirkt es? Oder muss ich das irgendwo speziell eintragen?
Ich denke ich werde es so machen, dass direkt nach beendigung der ersten Quest Quest zwei beginnt, mit einem dieser Standart-Einträge "Ich sollte auf der Hut sein und Abwarten" und dann kommt das Script zum einsatzt wenn 7 Tage vergangen sind und setzt den Queststatus auf 20 (Das müsste dann bei dein Code stehen? also Setstage quest 20)
Low Post
21.12.2007, 21:47
Mit Questskript meine ich, dass du dem Skript den Typ Quest zuweist.
http://img153.imageshack.us/img153/9374/auswahlscripttypecb8.th.png (http://img153.imageshack.us/my.php?image=auswahlscripttypecb8.png)
Danach wählst du es in dem Quest-Data Tab aus.
http://img153.imageshack.us/img153/4741/auswahlquestscriptqc2.th.png (http://img153.imageshack.us/my.php?image=auswahlquestscriptqc2.png)
Der Abschnitt im Bereich ;dein Code läuft nur ab, wenn die Variable Started auf 1 steht, kannst du also auch zur Abfrage verwenden, ob die 7 Tage um sind.
Achtung:
In das Resultskript der letzten Queststage von Quest1 müssen folgende Zeilen:
StartQuest Quest2
StopQuest Quest1
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.