Post Reply
10 posts • Page 1 of 1
Ja hallo erstmal...
ich weiß ja nich, ob ihrs schon wusstet, aber ich habe neulich versucht, das Craftingsystem von Nehrim simpel zu erweitern. Dazu habe ich eine "Nähmaschine" angefertigt,
auf der ein script marke eigenbau liegt. Soweit so gut, nur doof, dass es nicht tut! Hier ist erstmal das Script:
scn 0001Nääähmaschine2

Begin OnActivate

short Kleidung

MessageBox "Wa witt du?", "Hufschmiedhose", "Hufschmiedschürze"
	set Kleidung to GetButtonPressed
	If Kleidung == 0
		player.removeitem 0000088D 1 ; Stoff entfernen
		player.additem 000229A7 1 ; Hufschmiedhose hinzufügen
	elseif Kleidung == 1
		player.removeitem 0000088D 1 ; Stoff entfernen
		player.additem 000229A6 1 ; Hufschmiedschürze hinzufügen
	endif
end
Das Problem ist folgendes:
Wenn ich nun ingame die Nähmaschine aktiviere, kommt die MsgBox, wei geplant, aber dann kann ich klicken was ich will und es geschieht NICHTS!
Hoffe ihr könnt helfen,
Thiefnuker
PS: Sollte jemand sich gut mit bethesda scripts auskennen und bereit sein, mein "Lehrer" zu werden:
Skype: thiefnuker
XFire: thiefnuker2
ICQ: 493-466-742 (Thiefnuker @ 25Mbit/s)
Steam: TAW_Thiefnuker
scn 0001Nääähmaschine2

Begin OnActivate

short Kleidung

MessageBox "Wa witt du?", "Hufschmiedhose", "Hufschmiedschürze"
   set Kleidung to GetButtonPressed
   If Kleidung == 0
      player.removeitem 0000088D 1 ; Stoff entfernen
      player.additem 000229A7 1 ; Hufschmiedhose hinzufügen
   elseif Kleidung == 1
      player.removeitem 0000088D 1 ; Stoff entfernen
      player.additem 000229A6 1 ; Hufschmiedschürze hinzufügen
   endif
end
Erstmal: Ich weiß nicht wie oder OB es sich überhaupt auswirkt, aber verwende besser keine Umlaute im Script(namen), außer in MessageBoxen. Gibt jedenfalls bei der .esp(wenn dort im Namen ein Umlaut ist) starke Probleme und generell gibts im Englischen keine Umlaute, deshalb... ;)

Dann: Statt den FormIDs würde ich stets die EditorID verwenden. Also statt "000229A7" lieber "LowerPants01".

Hier mein abgeänderter Script:
scn 0001Nääähmaschine2

Begin OnActivate

short Button

MessageBox "Was willst du?", "Hufschmiedhose", "Hufschmiedschürze"
   set Button to GetButtonPressed
   if Button == 0
      player.removeitem Stoff02 1 ; Stoff entfernen
      player.additem LowerPants01 1 ; Hufschmiedhose hinzufügen
   elseif Button == 1
      player.removeitem Stoff02 1 ; Stoff entfernen
      player.additem LowerShirt01 1 ; Hufschmiedschürze hinzufügen
   endif
end
Edit: Funktioniert immernoch nicht :(.
Aber danke für den tipp dass man auch EditorIDs verwenden kann ;)
greetz,
Thiefnuker
Keine Umlaute in Scripts. Probier mal das:
scn 0001Naeaeaehmaschine2

short Button

Begin OnActivate

if ( IsActionRef, player )
MessageBox "Was willst du?", "Hufschmiedhose", "Hufschmiedschürze", "Nix"
   set Button to GetButtonPressed
   if ( Button == 0 )
       if ( Player.GetItemCount, "Stoff02" )
           player.removeitem, "Stoff02" 1 ; Stoff entfernen
           player.additem, "LowerPants01" 1 ; Hufschmiedhose hinzufügen
       else
           Message, "Kein geeigneter Stoff."
       endif

   elseif ( Button == 1 )
       if ( Player.GetItemCount, "Stoff02" )
           player.removeitem, "Stoff02" 1 ; Stoff entfernen
           player.additem, "LowerShirt01" 1 ; Hufschmiedschürze hinzufügen
       else
           Message, "Kein geeigneter Stoff."
       endif

    elseif ( button == 2 )
        return
   endif
endif
end
War gerade selber am Scripten und habe bemerkt, dass da noch ein GameMode Block rein muss.

scn 0001Naeaeaehmaschine2

short Button
short Next

Begin OnActivate

if ( IsActionRef, player )
   MessageBox "Was willst du?", "Hufschmiedhose", "Hufschmiedschürze", "Nix"
   Set Next to 1
endif
end


Begin GameMode
if ( Next == 1 )
   set Button to GetButtonPressed
   if ( Button == 0 )
       if ( Player.GetItemCount, "Stoff02" )
           player.removeitem, "Stoff02" 1 ; Stoff entfernen
           player.additem, "LowerPants01" 1 ; Hufschmiedhose hinzufügen
           Set Next to -1
       else
           Message, "Kein geeigneter Stoff."
           Set Next to -1
       endif

   elseif ( Button == 1 )
       if ( Player.GetItemCount, "Stoff02" )
           player.removeitem, "Stoff02" 1 ; Stoff entfernen
           player.additem, "LowerShirt01" 1 ; Hufschmiedschürze hinzufügen
           Set Next to -1
       else
           Message, "Kein geeigneter Stoff."
           Set Next to -1
       endif

    elseif ( button == 2 )
        Set Next to -1
        return
   endif
endif
end
Danke für die Entwürfe! Und ich (als script neuling) glaube zu verstehen, warum es nicht getan hat. Ich glaube, das mit dem "GameMode" Block war sehr wichtig, denn das andere läuft ja unter "OnActivate", also heißt das ja dass man dazu das objekt aktivieren muss, aber gilt das nicht nur für den start??? also wenns einmal aktiviert ist, dass es dann das ganze skript runterrattert? Das gedöns von wegen komfort und anschaulichkeit (wie z.b. die nichts option oder "Was willst du?") lassen wir alles erstmal weg ;)
jetzt gehts erstmal drum, dass ich kapier wie das so abläuft mit den scripts!
Nochmals danke für die nette unterstützung,
Thiefnuker aka Kajim
Ja.

OnActivate läuft nach dem Aktivieren eines Objektes, aber nur so lange bis es unterbrochen wird.
Unterprochen wird es in dem Fall von MessageBox, mit der Frage, was gemacht werden soll.

Sobald die MessageBox erscheint schaltet das Script nämlich in den GameMode-Modus.
Also muss anschließend im GameMode weiter gescriptet werden.
Wie kann man eigentlich am effektivsten scripten lernen??
Ich hab mir schon einige Tutorials durchgelesen, aber da sind die scripts immer auf einen modwunsch bezogen, z.B. auf ein "Wetteramulett".
Gibts irgendwo ne "Wörterliste" oder sowas?
MfG, J-man
@J-Man: Am "effektivsten" kann man nie genau sagen, da es auch auf dich selbst ankommt.
Ich hab es mir jedenfalls größtenteils selbst beigebracht, indem ich anfangs einfach vorhandene Scripte genommen habe und diese auf meine Wünsche passend abgeändert habe. So kann man sich leicht mit dem Ganzen vertraut machen und bekommst "problemlos" schon was ganz gutes hin. Und wenn du das oft genug gemacht hast, also immer wieder bestimmte Stellen abgeändert, kopiert, ersetzt, vielleicht auch mal ganz "abgetippt" kommt das mit der Zeit alleine.
Ich fand Tutorials beim Scripten noch nie hilfreich, da mich das einzige was ich je las(ein zum Fallout 3 G.E.C.K.) mich mehr verwirrt als aufgeklärt hat.

Allerdings gibt's 'ne nützliche Seite wo du einzelne Befehle nachlesen kannst, oft auch mit Beispielen wie sie eingesetzt werden. Hier dürftest du fündig werden.
J-man: Wenn Dir die Methode von Ayonbird gefällt hier noch ein Link zu 'nem deutschsprachigen Script - Wiki. Ist zwar auch auf Beispiele und nicht auf einzelne Befehle bezogen, kann aber zum Verständnis echt weiterhelfen. Die Gliederung in Kategorien ist sehr viel übersichtlicher als nur "aneinandergereihte" Beispiel-Scripts in anderen Wikis.

http://www.egg-of-time.us/wiki/index.ph ... ScriptWiki
Post Reply
10 posts • Page 1 of 1