Construction Set Skriptthread zum Construction Set

Endlich kommen wir der Sache einen Schritt näher. :lol:

Wenn dieser Script:
Code:
scn aaarmorbroken
long Status

begin GameMode
   set Status to Player.GetObjectHealth aatestarmor
    if ( Player.GetEquipped aatestarmor )
       message "if funktioniert"
       if ( Status <= 0.50 )
                message "Test Rüstung ist Beschädigt"
                Player.UnEquipItem aatestarmor
                Player.removeitem aatestarmor 1
                Player.AddItem aatestarmorbroken 1
                Player.EquipItem aatestarmorbroken
       endif
    endif
end
auf der Rüstung liegt, sollte es klappen. Wahrscheinlich hat es nicht geklappt, weil du aatestarmor in eckigen Klammern geschrieben hast. Du benutzt ja OBSE. Kann sein, dass das CS deswegen nicht gemeckert hat.

Probier's mal so.

Ach ja, wahrscheinlich eine blöde Bemerkung, aber nur um sicher zu gehen: Oblivion mit OBSE starten, falls du es nicht tust.
 
Blöde Gegenbemerkung: wenn ich das cs mit obse starten kann kann man davon ausgehen das ich das mit Obl auch hinbekomme:)

ok 1 if schleife funktioniert jetzt wird die 2te nicht ausgelöst wenn ich meine rüssi unter 50 Zauber :?
 
****** OBSE, nicht wahr? :lol:

Das Wiki sagt, dass GetObjectHealth Returns the base object health. Also nicht die Lebenspunkte des Objekts in Relation zu den maximalen Lebenspunkten in %. Probiere es mal hiermit:

Code:
scn aaarmorbroken
long halfStatus
long Status

begin GameMode
if halfStatus == 0
    set halfStatus to Player.GetObjectHealth aatestarmor
    set halfstatus to halfstatus / 2
    return
else
   set Status to Player.GetObjectHealth aatestarmor
    if ( Player.GetEquipped aatestarmor )
       message "if funktioniert"
       if ( Status <=  halfStatus )
                message "Test Rüstung ist Beschädigt"
                Player.UnEquipItem aatestarmor
                Player.removeitem aatestarmor 1
                Player.AddItem aatestarmorbroken 1
                Player.EquipItem aatestarmorbroken
       endif
    endif
endif
end

lol. Man kann ja nicht mal das Wort mit S benutzen, ohne dass es "zensiert" wird.
 
  • Like
Reaktionen: robinH
Erstmal Danke Gildur! :)
Ich habe aber immernoch einen ziemlich seltsamen Bug.
Sobald ich angegriffen werde, werde ich teleportiert, aber:
Der NPC ist nicht tot.
Der Minotaur der mich angegriffen hat, ist Tod.
Ein Minotaur der mich nicht geschlagen hat ist weg.
Ein Minotaur der mich nicht geschlagen lebt noch.
Sobald mich dieser angreift, stirbt er und ich werde erneut teleportiert.:? :eek: :shock: :huh:
Ich blick da sowas von nicht durch. ??!!!
Kann mir jemand helfen ?!
mfg
 
Code:
scn name

short init

Begin GameMode
 if init == 0
  if player.isInCombat == 1
   if getCombatTarget == player
    if player.getAV health < player.getBaseAV
     set init to 1
	aaaMinotaurLord1.disable
	aaaMinotaurLord2.disable
	aaaMinotaurLord3.disable
	aaaGunzaltermann1.kill
     	player.moveto aaaGunzTod
    endif
   endif
  endif
 elseif init == 1
  if player.isInCombat == 0
   set init to 0
  endif
 endif
end
 
  • Like
Reaktionen: robinH und patricktyp
@Gildur: du sagst es ;)

so schön dein Skript auch ist er funktioniert nicht :cry:
kann das evt auch daran liegen das die esp andauernd verändere und im meinen save die rüssi angelegt habe und ihr zustand bereits unter 50 ist?

//Edit: nein daran lag es nicht hab den mod Reseted aber gebracht hats nichts:(

@Lord4Ever: wir sind nicht nur gut wir sind die Besten:ugly:
 
Zuletzt bearbeitet:
Wieder ein Schritt weiter, aber noch nicht am Ziel ;)

Der NPC ist Tod.
Der Minotaur, der mich getroffen hat ist weg.
Die beiden anderen sind weiterhin da.
:?
mfg
 
@ Lord4Ever: hier gibt es eine kleine Scriptsammling. Ansonsten findest du auch auf anderen Portalen und diversen Seiten Scripte. Aber wenn man mit den Befehlen vertraut ist, rate ich immer zum selber schreiben.

@ Orios das Auge: Da die OBSE-befehlsliste so verdammt lang ist (und ich OBSE eh nicht benutze), wollte ich erst den Befehl nicht suchen. Aber ich kann nicht anders... :lol:

Code:
scn aaarmorbroken

long halfStatus
long Status
ref myself

begin GameMode
if halfStatus == 0
    set halfStatus to myself.GetObjectHealth
    set halfstatus to halfstatus / 2
    return
else
   set Status to myself.GetCurrentHealth
    if ( Player.GetEquipped myself )
       message "if funktioniert"
       if ( Status <=  halfStatus )
                message "Test Rüstung ist Beschädigt"
                Player.UnEquipItem aatestarmor
                Player.removeitem aatestarmor 1
                Player.AddItem aatestarmorbroken 1
                Player.EquipItem aatestarmorbroken
       endif
    endif
endif
end

Die Syntax von GetObjectHealth war die ganze Zeit falsch (von dir abgeschrieben :p). Außerdem habe ich jetzt den Befehl "GetCurrentHealth" hinzugefügt, der die tatsächlichen Lebenspunkte abfragt.

@ patricktyp: Du musst die anderen beiden doch auch einfach durch ihre Referenzen disablen. Da kann es doch keine Probleme geben...
 
  • Like
Reaktionen: robinH und Lord4Ever
jetzt sehe ich nicht ma mehr die (if Funktioniert) message
iwie kommt mir die variable myself ein wenig sinnfrei vor hast du da was vergessen?

hast du ein link zur obse Befehlsliste möcht mich da auch ma durchwühlen
 
Kann es sein, dass ein andere Script die Zentaur wieder enabled?

@ Orios: http://cs.elderscrolls.com/constwiki/index.php/OBSE_Functions

DAS muss klappen (habe das wichtigste einfach vergessen, nämlich myself eine referenz zuzuweisen)
Code:
scn aaarmorbroken

long halfStatus
long Status
ref myself

begin GameMode
set myself to getself
if halfStatus == 0
    set halfStatus to myself.GetObjectHealth
    set halfstatus to halfstatus / 2
    return
else
   set Status to myself.GetCurrentHealth
    if ( Player.GetEquipped myself )
       message "if funktioniert"
       if ( Status <=  halfStatus )
                message "Test Rüstung ist Beschädigt"
                Player.UnEquipItem aatestarmor
                Player.removeitem aatestarmor 1
                Player.AddItem aatestarmorbroken 1
                Player.EquipItem aatestarmorbroken
       endif
    endif
endif
end
Ich bin heute etwas zerstreut...
 
Zuletzt bearbeitet:
Das letzte mal, falls du es noch nciht geschafft hast (ich komme mir so peinlich vor):
Code:
scn aaarmorbroken

long halfStatus
long Status
ref myself

begin GameMode
set myself to getself
if halfStatus == 0
    set halfStatus to myself.GetObjectHealth
    set halfstatus to halfstatus / 2
    return
else
   set Status to myself.GetCurrentHealth
    if ( Player.GetEquipped aatestarmor )
       message "if funktioniert ENDLICH!"
       if ( Status <=  halfStatus )
                message "Test Rüstung ist Beschädigt"
                Player.UnEquipItem aatestarmor
                Player.removeitem aatestarmor 1
                Player.AddItem aatestarmorbroken 1
                Player.EquipItem aatestarmorbroken
       endif
    endif
endif
end

@ patricktyp: Dann weiß ich auch nicht weiter. Es ergibt schlicht weg einfach keinen Sinn.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: robinH
Die sind noch nicht hinzugefügt wurden. Allerdings kannst du die Befehle auch in der Changelog von OBSE finden:

obse_whatsnew.txt schrieb:
0016:
- DeleteFromInputText
- MoveTextInputCursor
- Get/SetStringIniSetting
- Get/SetPCTrainingSessionsUsed
Da dann aber ohne Erläuterung.

Das CS Wiki ist ja genau wie das normale Wiki zusammengetragenes Wissen der User. Du könntest die Befehle doch ausprobieren und die Liste aktualisieren. :)

@ Orios das Auge: Ich sage sowas extrem selten, aber ich geb's auf. Nie mehr OBSE für mich (obwohl es so simpel scheint). Oder vielleicht probiere ich es mal selbst heute auf meinem Rechner... mal schauen.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: robinH
Hi!

Ist es möglich per Script eine MessageBox zu schließen? Gerne auch mit OBSE.
Um es etwas genauer zu beschreiben, ich suche einfach nur eine Möglichkeit die aktuell angezeigte MessageBox zu schließen, dadurch den MenuMode zu verlassen und wieder in den GameMode einzutreten, ohne dass der Spieler dazu auf einen Schalter in der MessageBox klicken muss. Wie die MessageBox geschlossen wird ist egal, d.h. mir würde es schon reichen zu simulieren, dass der Spieler auf eine Schaltfläche geklickt hat. Den gedrückten Button setze ich in meinem Script eh selbst.
Es handelt sich übrigens um ein Quest-Script. Wenn nötig, kann ich das Script aber auch auf einen Gegenstand legen, falls das bei der Lösung meines Problems hilft.
Hab im CS-Wiki und über Google leider nichts dazu gefunden.
Danke im Voraus für die Hilfe!



Grüße T-Rip
 
Zuletzt bearbeitet: