Construction Set Der Scriptthread

Ok, ich habe mir den Script mal angeschaut und er dürfte in etwa das machen was ich auch möchte, bin aber nicht ganz damit zurecht gekommen somal dieser auf 2-3 Seiten verteilt ist. Könntest du mir noch mal den kompletten Script, so wie er richtig funktioniert aufschreiben. Du erwähnst da etwas von den Teil da einfügen und weis nicht wirklich wo dieser teil hin soll. Wäre nett wenn du oder jemand anderes mir den geben könnte.



_________
DaOrkboss|
 
Version für ein Rezept. Truhe ist Reference Persistent und heißt DaOrkboss_chest. Zutaten sind Feuersalze und Ebenerz. Script liegt auf einem Activator deiner Wahl, der als Schalter dient.

Code:
begin DaOrkboss_horadrim_switch_script

short state
short button
short rezept

if ( state == 0 )
  if ( OnActivate == 1 )
    set state to 1
  endif
elseif ( state == 1 )   ;hier wird Rezept überprüft
  if ( "DaOrkboss_chest"->GetItemCount, "ingred_raw_ebony_01" >= 5 )
    if ( "DaOrkboss_chest"->GetItemCount, "ingred_fire_salts_01" >= 5 )
      MessageBox, "Wollt Ihr Rezept 1 benutzen?", "Ja", "Nein"
      set state to 2
      set rezept to 1
      return
   endif
  endif

  ;hier wäre Platz für weitere Rezepte

elseif ( state == 2 )
  set button to GetButtonPressed

  if ( button == 0 )
    set state to 0
    
    if ( rezept == 1 )
      set rezept to 0
      "DaOrkboss_chest"->RemoveItem, "ingred_raw_ebony_01", 5
      "DaOrkboss_chest"->RemoveItem, "ingred_fire_salts_01", 5
      "DaOrkboss_chest"->AddItem, "Potion_Local_Brew_01", 1
      PlaySound, "enchant success"
      return
    endif

  elseif ( button == 1 )
    set state to 0
    set rezept to 0
    return
  endif
endif

end
 
  • Like
Reaktionen: DaOrkboss
Danke, funktioniert genau wie ich es mir vorgestellt hatte. Zwar gibt mir das Spiel einen ERROR an, dass es das Item welches ich erschaffen will nicht finden kann, letzendlich erstellt die Maschiene es aber doch, tja. Dennoch funktioniert es und der ERROR ist wohl eher ein Ladeproblem, da ich vorher shcon mal alles geladen hatte, und abgespeichert hatte, da ist wohl der ERROR vom ersten Versuch noch geblieben.



_________
DaOrkboss|
 
Kampf erkennen

Ich bin mir nicht sicher, ob es diese scriptanfrage schon gibt, ich hab bis jetzt zumindest noch nichts in der art gefunden. Ich bräuchte ein script, dass herausfindet, ob sich der spieler zurzeit im kampf befindet oder nicht. Ich habe mir vorgestellt per mwse script die npc- und creature-liste durchzuscrollen und für jedes objekt abzufragen, ob es den spieler bekämpft oder nicht. Das große problem ist ich hab keine ahnung vom scripten mit mwse -_-. Hat jemand schon einmal eine ähnliche abfrage gescriptet und könnte mir helfen?
 
If ( ActorID -> GetTarget, Player == 1 )

Damit könntest du feststellen, ob ein Unique Actor im Kampf mit dem Spieler ist. Bei "non-unique" Actors funktioniert das natürlich nicht, sondern nur, wenn die selbst ein Script tragen, welches dann

If ( GetTarget, Player == 1 )

benutzt. Keine Ahnung, ob dir das weiterhilft, aber ohne MWSE ist das wohl die einzige sinnvolle Variante, wie man feststellen kann, ob eine bestimmte NPC oder Kreatur gerade den Spieler angreift.
 
mein problem ist momentan, dass
ifx ( ref )
setx ref to xNextRef ref
else
setx ref to xFirstNPC
endif
mein morrowind zum abstürzen bringt :(
damit wollt ich eigentlich die npcs durchchecken und dann mithilfe von xGetCombat, GetTarget und GetAIPackage überprüfen ob der npc im kampf ist, ob er den spieler anvisiert und ob er kein companion ist. alles drei zutreffend = im kampf. funktioniert auch prächtig so circa 3 sekunden lang -.-''' hab schon probiert es nur alle paar hundert frames durchlaufen zu lassen aber das verzögert den absturz nur.
 
Ich habe vollgenden Script, der einen Feueratronach an einen bestimmten Platz in einer Zelle erscheinenlassen soll, wenn man einen Hebelbetätigt und dieser Hebel soll nebenbei noch eine Animation abspielen. Undzwar die, welche den Hebel einfach nach untenschnellen lässt, ich glaube dieser Teil sollte eigenlich richtig sein. Der Fehler tritt auf beim Erscheinenlassen der Atronachen auf.

begin OrkB_fire_atronach

short make ;to summon the atronach
short move

if ( OnActivate == 1 )
set make to 1
endif
if ( make == 1)
PlaceItemCell, "AAA_OrkB_atronach_flame", "Mkultan Inner Forge" 4155, 6845, 15404, 0
set make to 0
set move to 1
endif

if ( move == 1 )

;animate the lever
if ( state == 0 )
playgroup "idle2"
set state to 1
else
playgroup "idle3"
set state to 0
endif

set move to 0

endif

end

Wenn ich nun den Hebel betätige erscheint zwar der Atronach, aber nicht auf der Vorgegeben Position, sondern direckt über dem Schalter und beim Aktivieren erscheint eine Fehlermeldung in Großbuchstaben: EXPRESSION und ich werde nur noch gefragt ob ich den Script weiterführen will, was zwar funktioniert, aber der Atronach wird eben nicht dorthin gesetzt, wo ich es gerne hätte.

Wenn wer zeit hat, kann sich ja mal wer den Script anschauen und mir sagen was ich verkehrt machen. Was evenutell noch gut wäre, wenn im Script noch ein Timer vorkommen würde, damit man den Schalter nicht beliebig oft benutzen kann. So eine Abklinkzeit von ca. 'ner Stunde Ingamezeit.



_________
DaOrkboss|
 
Wenn wer zeit hat, kann sich ja mal wer den Script anschauen und mir sagen was ich verkehrt machen. Was evenutell noch gut wäre, wenn im Script noch ein Timer vorkommen würde, damit man den Schalter nicht beliebig oft benutzen kann. So eine Abklinkzeit von ca. 'ner Stunde Ingamezeit.

Du verwendest die Variable state, hast sie aber nicht deklariert.
 
  • Like
Reaktionen: DaOrkboss
Gut, die Fehlermdelung kommt nicht mehr. Allerdings Spawnen die Atranachen wie schon zuvor über dem Schalter, anstatt an dem aufgelisteten Punkt und jetzt ist es so. Wenn ich den toten Atronach ''anspreche'', spawned auf einmal einweiterer. Obwohl ich ja den Atronach anklicke und nicht den Schalter.


_________
DaOrkboss|
 
Gut, die Fehlermdelung kommt nicht mehr. Allerdings Spawnen die Atranachen wie schon zuvor über dem Schalter, anstatt an dem aufgelisteten Punkt und jetzt ist es so. Wenn ich den toten Atronach ''anspreche'', spawned auf einmal einweiterer. Obwohl ich ja den Atronach anklicke und nicht den Schalter.

Hört sich so an, als hättest du deinem Atronach aus Versehen das gleiche Script verpasst.
 
  • Like
Reaktionen: DaOrkboss
Ich habe ein Problem mit dem Befehl "cast". Er erkennt anscheinend nicht den Zauber, den ich ihm gebe.
Also es kommt immer eine Fehlermeldung. Dabei ist es egal, wer zaubern soll. Bis jetzt sieht es so aus:

Code:
player.cast <ZauberID>
 
player.cast ist eine Oblivion-Funktion aber das hier ist der Morrowind-Scriptthread. Bestimmt kann dir jemand im Oblivion-Sciptthread helfen^^.
 
Hallo,
Macht ihr auch Scripte für Dialoge?

Ich möchte gerne ein Topic erstellen wo ich die NPCs nach ihren Zustand fragen kann, ihn denn mir ihre HP und MP angezeigt wird.

Könnt ihr mir so was machen?
 
Dann brauch ich es ja erst gar nicht zu testen, wen es auf der DV nicht geht :eek:
Naja, also grundsätzlich...

ich hab mir das nicht angesehen, aber wenn die Mod ein Topic hinzufügt, wo man einen Companion etwas fragen kann, könnte das mit ein wenig Chance sogar ohne Übersetzung laufen. Wären natürlich englische Texte, aber wenn man sich an die Standardfunktionen hält, würde es gehen. Ich würd es einfach mal ausprobieren. Ist ja nur eine esp, die kannst du dir problemlos im CS mal ansehen und das Prinzip nachbauen.
 
So, hab es getestet und es geht nicht. :(

EDIT; So hab gerade ein Mod gefunden wo so was dabei ist.
Der Mod heißt Mietbegleiter
 
Zuletzt bearbeitet:
Sorry wegen denn doppel post.

Könnt ihr mir diesen script so machen, das man die Musik An und aus schalten kann?

Code:
begin Musik_Bobby_darin

if ( CellChanged == 0 )
    if ( GetSoundPlaying "Bobby_darin" == 0 )
        PlayLoopSound3DVP "Bobby_darin", 1.0, 1.0
    endif
endif

end