Repair-Script funktioniert nicht
Moderators: Newsposter, Global Moderator, Zugriff Intern, Moderator
Repair-Script funktioniert nicht
hi leute, ich habe mich nach einigen tutorials als totaler noob mal an mein eigenes script gewagt.. leider hab ich wohl was falsch gemacht weis aber nicht genau was. vielleicht kann mir ja hier jemand mit scripting erfahrung einen tip geben. zuerst mal ne erklärung was ich überhaupt machen will:
ein gegenstand soll repariert werden und der spieler muss dafür einen repair-skill von mind. 25 haben (und die quest muss aktiv sein). wenn man den gegenstand nun anklickt soll folgendes passieren: abfrage ob die queststage 20 oder höher ist (dann wurde der gegenstand bereits repariert) und ausgabe einer entsprechenden nachricht. sonst prüfen ob die queststage auf 10 ist (quest ist aktiv) und eine variable setzen. sonst eine nachricht a la "der gegenstand sieht beschädigt aus" (quest ist noch nicht aktiv und spieler kann erstmal nix machen).
wenn die queststage auf 10 ist soll weiterhin der reparieren-skill abgefragt werden und dann entweder a) der gegenstand repariert werden oder b) eine nachricht ausgegeben werden, dass der skill zu niedrig ist.
folgendes script funktioniert leider nicht und ich habe keine ahnung warum...
SCN 01RepairQuest
short 1VarRepairQuest
begin OnActivate player
if getStage 1RepairQuest >= 20 ; abfrage ob die queststage den wert 20 oder höher hat (quest ist abgeschlossen)
showmessage 01AMMessage4 ; zeigt nachricht, dass der gegenstand bereits repariert wurde
elseif
getStage 1RepairQuest == 10 ; abfrage ob die queststage den wert 10 hat (quest ist aktiv)
set 1VarRepairQuest to 1 ; variable 1varRepairQuest auf den wert 1 setzen
elseif
showmessage 01AMMessage1 ; zeigt die nachricht, dass der gegenstand beschädigt aussieht (quest ist nicht aktiv)
endif
end
begin GameMode
if 1VarRepairQuest == 1 ; abfrage ob die variable 1varRepairQuest den wert 1 hat
if player.getAV repair >= 25 ; abfrage ob der repair-skill mind. den wert 25 hat
showmessage 01AMMessage2 ; nachricht, dass der gegenstand erfolgreich repariert wurde
setStage 1RepairQuest to 20 ; queststage auf den wert 20 setzen
else
if player.getAv repair < 25 ; wenn repaier-skill unter 25 ist
showmessage 01AMMessage3 ; nachricht, dass der repair-skill zu niedrig ist
endif
endif
endif
end
ein gegenstand soll repariert werden und der spieler muss dafür einen repair-skill von mind. 25 haben (und die quest muss aktiv sein). wenn man den gegenstand nun anklickt soll folgendes passieren: abfrage ob die queststage 20 oder höher ist (dann wurde der gegenstand bereits repariert) und ausgabe einer entsprechenden nachricht. sonst prüfen ob die queststage auf 10 ist (quest ist aktiv) und eine variable setzen. sonst eine nachricht a la "der gegenstand sieht beschädigt aus" (quest ist noch nicht aktiv und spieler kann erstmal nix machen).
wenn die queststage auf 10 ist soll weiterhin der reparieren-skill abgefragt werden und dann entweder a) der gegenstand repariert werden oder b) eine nachricht ausgegeben werden, dass der skill zu niedrig ist.
folgendes script funktioniert leider nicht und ich habe keine ahnung warum...
SCN 01RepairQuest
short 1VarRepairQuest
begin OnActivate player
if getStage 1RepairQuest >= 20 ; abfrage ob die queststage den wert 20 oder höher hat (quest ist abgeschlossen)
showmessage 01AMMessage4 ; zeigt nachricht, dass der gegenstand bereits repariert wurde
elseif
getStage 1RepairQuest == 10 ; abfrage ob die queststage den wert 10 hat (quest ist aktiv)
set 1VarRepairQuest to 1 ; variable 1varRepairQuest auf den wert 1 setzen
elseif
showmessage 01AMMessage1 ; zeigt die nachricht, dass der gegenstand beschädigt aussieht (quest ist nicht aktiv)
endif
end
begin GameMode
if 1VarRepairQuest == 1 ; abfrage ob die variable 1varRepairQuest den wert 1 hat
if player.getAV repair >= 25 ; abfrage ob der repair-skill mind. den wert 25 hat
showmessage 01AMMessage2 ; nachricht, dass der gegenstand erfolgreich repariert wurde
setStage 1RepairQuest to 20 ; queststage auf den wert 20 setzen
else
if player.getAv repair < 25 ; wenn repaier-skill unter 25 ist
showmessage 01AMMessage3 ; nachricht, dass der repair-skill zu niedrig ist
endif
endif
endif
end
Last edited by judge on Mon Mar 19, 2012 12:54 pm, edited 1 time in total.
Re: Repair-Script funktioniert nicht
edit: mist, die formatierung sieht jetzt ein bißchen wirr aus aber ich hoffe es ist so noch lesbar.
edit 2: nochmal mist, beim ersten mal statt auf editieren auf antworten geklickt...
edit 2: nochmal mist, beim ersten mal statt auf editieren auf antworten geklickt...
Last edited by judge on Mon Mar 19, 2012 12:56 pm, edited 1 time in total.
Re: Repair-Script funktioniert nicht
Du kannst [.code]-Tags benutzen, um das Zeug zu formatieren.
only when you no-life you can exist forever, because what does not live cannot die
- tortured Tomato
- Highwaymanfahrer
- Posts: 1350
- Joined: Wed Jan 27, 2010 7:22 pm
Re: Repair-Script funktioniert nicht
Code: Select all
elseif
getStage 1RepairQuest == 10 ; abfrage ob die queststage den wert 10 hat (quest ist aktiv)
if getStage ...
Außerdem verwendest du "elseif" falsch. Entweder "else" oder "elseif" + "Ausdruck auf selber Zeile"
Also:
Code: Select all
elseif getStage 1RepairQuest == 10 ; abfrage ob die queststage den wert 10 hat (quest ist aktiv)
Code: Select all
if getStage 1RepairQuest >= 20 ; abfrage ob die queststage den wert 20 oder höher hat (quest ist abgeschlossen)
showmessage 01AMMessage4 ; zeigt nachricht, dass der gegenstand bereits repariert wurde
elseif getStage 1RepairQuest == 10 ; abfrage ob die queststage den wert 10 hat (quest ist aktiv)
set 1VarRepairQuest to 1 ; variable 1varRepairQuest auf den wert 1 setzen
else
showmessage 01AMMessage1 ; zeigt die nachricht, dass der gegenstand beschädigt aussieht (quest ist nicht aktiv)
endif
end
Am Besten hier nochmal nachlesen:
http://cs.elderscrolls.com/index.php/Elseif
Last edited by tortured Tomato on Mon Mar 19, 2012 9:11 pm, edited 1 time in total.
Re: Repair-Script funktioniert nicht
danke für den link. jetzt weiß ich wenigstens, dass ich mit && auch mehrere bedingungen abfragen kann. hab das script jetzt überarbeitet, leider passiert absolut nichts wenn ich den gegenstand anklicke.
durch ein gespräch mit dem questgeber hab ich die quest aktiviert und auf stage 10 gesetzt. auch einen entsprechenden eintrag im questlog habe ich erhalten. aber wie gesagt, wenn ich den gegenstand nun anklicke passiert überhaupt nix.
so sieht mein script momentan aus:
durch ein gespräch mit dem questgeber hab ich die quest aktiviert und auf stage 10 gesetzt. auch einen entsprechenden eintrag im questlog habe ich erhalten. aber wie gesagt, wenn ich den gegenstand nun anklicke passiert überhaupt nix.
so sieht mein script momentan aus:
Code: Select all
ScriptName MeineQuestScript
begin OnActivate player
if getStage 1MeineQuest > 10
showmessage Message1 ; wenn die queststage höher als 10 ist wurde der gegenstand bereits repariert -> entsprechende nachricht anzeigen
elseif (getStage 1MeineQuest 10) && (player.getAV repair >= 25) && (player.GetItemCount SensorModule > 0) ; wenn die queststage auf 10 ist, der repair-skill mind 25 ist und 1 sensormodul im inventar ist
setStage 1MeineQuest 20 ; queststage auf den wert 20 setzen
player.removeItem SensorModule 1 ; 1 sensormodul entfernen
showmessage Message2 ; nachricht anzeigen, dass der gegenstand erfolgreich repariert wurde
elseif getStage 1MeineQuest 10 ; wenn quest auf stage 10 aber spieler hat zu niedrigen repair-skill oder kein sensormodul
showmessage Message3 ; nachricht, dass entweder der repair-skill zu niedrig ist oder der spieler kein sensormodul hat
elseif showmessage Message4 ; zeigt die nachricht, dass der gegenstand beschädigt aussieht , quest ist noch nicht aktiv
endif
end
- tortured Tomato
- Highwaymanfahrer
- Posts: 1350
- Joined: Wed Jan 27, 2010 7:22 pm
Re: Repair-Script funktioniert nicht
Wie garnix?
Noch nicht mal im Falle von
if getStage 1MeineQuest > 10 ?
Jep, den GameMode Block kannst du komplett knicken. Würde alles in den OmActivate Block schreiben.
Das letzte If-Statement ist Unsinn
Es heißt hier ELse, da SchowMessage keine Bedingung ist, sondern eine Funktion die ausgeführt werden soll.
Noch nicht mal im Falle von
if getStage 1MeineQuest > 10 ?
Jep, den GameMode Block kannst du komplett knicken. Würde alles in den OmActivate Block schreiben.
Das letzte If-Statement ist Unsinn
Code: Select all
elseif showmessage Message4
Last edited by tortured Tomato on Tue Mar 20, 2012 10:22 pm, edited 1 time in total.
Re: Repair-Script funktioniert nicht
so, dass mit dem elseif habe ich korrigiert, leider tut sich immer noch nichts wenn ich das objekt anklicke. liegt dass vielleicht an falschen einstellungen beim objekt? der gegenstand den man aktivieren soll ist ein projektor. ich habe mir daher einen kopiert und eine andere id eingegeben. unter "script" habe ich dann mein script ausgewählt. wenn ich den projektor nun im spiel sehe steht dort auch "aktiviere projektor" aber wenn ich dann E drücke passiert nichts.
hier mal ein bild der einstellungen:
http://s1.directupload.net/file/d/2836/vhbn7hhk_jpg.htm
hier mal ein bild der einstellungen:
http://s1.directupload.net/file/d/2836/vhbn7hhk_jpg.htm
- tortured Tomato
- Highwaymanfahrer
- Posts: 1350
- Joined: Wed Jan 27, 2010 7:22 pm
Re: Repair-Script funktioniert nicht
Getstage ist sicher die falsche Funktion für deine Zwecke.
Schau mal hier
http://cs.elderscrolls.com/index.php/GetStage
und hier
http://cs.elderscrolls.com/index.php/GetStageDone
Oder du machst's einfach mit einer Variable. Du willst den Activator reparieren? Poste am besten nochmal dein gesamtes Script.
Schau mal hier
http://cs.elderscrolls.com/index.php/GetStage
und hier
http://cs.elderscrolls.com/index.php/GetStageDone
Oder du machst's einfach mit einer Variable. Du willst den Activator reparieren? Poste am besten nochmal dein gesamtes Script.
Last edited by tortured Tomato on Wed Mar 21, 2012 3:53 pm, edited 1 time in total.
Re: Repair-Script funktioniert nicht
ich habe den fehler mittlerweile gefunden! statt "getStage MeineQuest 10" musste es "getStage MeineQuest == 10" heißen. jetzt funktionierts auch.
ganz nützlich ist auch diese seite hier: http://www.cipscis.com/fallout/utilities/validator.aspx
ganz nützlich ist auch diese seite hier: http://www.cipscis.com/fallout/utilities/validator.aspx
- tortured Tomato
- Highwaymanfahrer
- Posts: 1350
- Joined: Wed Jan 27, 2010 7:22 pm
Re: Repair-Script funktioniert nicht
Oh, gut, naklar 
Solche Syntaxfehler überliest man schnell mal. Allerdings erscheint mir die Funktion auch nicht gerade gut beschrieben.

Solche Syntaxfehler überliest man schnell mal. Allerdings erscheint mir die Funktion auch nicht gerade gut beschrieben.