set invPos to pCont.GetNumItems
Label 1
if invPos
set invPos to (invPos - 1)
set pInvObj to (pCont.GetInventoryObject invPos)
if ( (IsArmor pInvObj) == 1 || (IsWeapon pInvObj == 1) )
set currHealth to (GetCurrentHealth pInvObj)
set maxHealth to (GetObjectHealth pInvObj)
PrintToConsole "Item: %n (%.0f / %.0f)" pInvObj currHealth maxHealth
endif
Goto 1
endif
Ich habe mal eine Frage. Ich wollte einen Zauber machen, wenn man den zaubert soll der Spieler fliegen können, so wie Levitation. Wie müsste das Skript dazu aussehen?
Scn DWThiefStartup
short doOnce
Begin GameMode
If ( doOnce == 0 )
MessageBox "Test"
Player.RemoveItem "LowerPants05" 1
Player.RemoveItem "LowerShirt05" 1
Player.RemoveItem "LowerShoes05" 1
Player.RemoveItem "WristIrons" 1
Player.AddItem "DBLeatherCuirass" 1
Player.AddItem "DBLeatherHelmet" 1
Player.EquipItem "DBLeatherCuirass"
Player.EquipItem "DBLeatherHelmet"
Set doOnce To 1
EndIf
End
Nachdem ich KotN und SI installiert habe funktioniert es plötzlich. Das muss ich nicht verstehen, oder?
Hallo, vielleicht kann mir jemand weiter helfen. Ich habe im Forum nichts dazu gefunden:
Und zwar möchte ich die Function GetCurrentHealth verwenden umd den Zustand von Waffen und Rüstungen abzufragen.
Das ist eine OBSE-Funktion. Verwendest Du überhaupt OBSE?
Hallo, vielleicht kann mir jemand weiter helfen. Ich habe im Forum nichts dazu gefunden:
Und zwar möchte ich die Function GetCurrentHealth verwenden umd den Zustand von Waffen und Rüstungen abzufragen. Auf der CS-WIKI Seite steht die Funktion auch erklärt. Aber sobald ich die Funktion aufrufe, wird das Skript irgendwie sofort beendet und ich sehe noch nicht einmal die Ausgabe, die 2 Zeilen später kommen soll. Wenn ich es auskommentiere und die Ausgabe nur mit einen Parameter mache, kann ich mir den Maximalwert (100%) für den Zustand anzeigen lassen. Hier mein Code:
Code:set invPos to pCont.GetNumItems Label 1 if invPos set invPos to (invPos - 1) set pInvObj to (pCont.GetInventoryObject invPos) if ( (IsArmor pInvObj) == 1 || (IsWeapon pInvObj == 1) ) set currHealth to (GetCurrentHealth pInvObj) set maxHealth to (GetObjectHealth pInvObj) PrintToConsole "Item: %n (%.0f / %.0f)" pInvObj currHealth maxHealth endif Goto 1 endif
Wie kann ich den aktuellen Zustand anzeigen lassen? Ich weiß, es gibt noch die Funktion GetEquippedCurrentHealth, aber die funktioniert nur für angelegte Sachen, was ich nicht möchte. Ich möchte eigentlich das Gegenstückt zu GetObjectHealth haben....
Wäre nett, wenn mir jemand helfen könnte.
set invPos to pCont.GetNumItems
Label 1
if invPos ;fehlt hier net nen vergleich? oder meinst du hier "if invPos==1"?
set invPos to (invPos - 1)
set pInvObj to (pCont.GetInventoryObject invPos)
if ( [COLOR="Red"](pInvObj.IsArmor == 1 ) || (pInvObj.IsWeapon == 1)[/COLOR] )
set currHealth to ([COLOR="Red"]pInvObj.GetCurrentHealth[/COLOR])
set maxHealth to ([COLOR="Red"]pInvObj.GetObjectHealth[/COLOR]) ; so muss das ganze aussehen vom syntax würd ich meinen
PrintToConsole "Item: %n (%.0f / %.0f)"[COLOR="Red"],[/COLOR] pInvObj[COLOR="Red"],[/COLOR] currHealth[COLOR="Red"],[/COLOR] maxHealth ;die kommas könnten wichtig sein
endif
Goto 1
endif
Ich weiß nicht. Das sieht Syntax mäßig total komisch aus, was aber nicht unbedingt heißt, dass es falsch ist.
Code:set invPos to pCont.GetNumItems Label 1 if invPos ;fehlt hier net nen vergleich? oder meinst du hier "if invPos==1"? set invPos to (invPos - 1) set pInvObj to (pCont.GetInventoryObject invPos) if ( [COLOR="Red"](pInvObj.IsArmor == 1 ) || (pInvObj.IsWeapon == 1)[/COLOR] ) set currHealth to ([COLOR="Red"]pInvObj.GetCurrentHealth[/COLOR]) set maxHealth to ([COLOR="Red"]pInvObj.GetObjectHealth[/COLOR]) ; so muss das ganze aussehen vom syntax würd ich meinen PrintToConsole "Item: %n (%.0f / %.0f)"[COLOR="Red"],[/COLOR] pInvObj[COLOR="Red"],[/COLOR] currHealth[COLOR="Red"],[/COLOR] maxHealth ;die kommas könnten wichtig sein endif Goto 1 endif
Kann es sein, dass die Funktion GetCurrentHealth in OBSE nicht richtig implementiert ist? :huh:
Ne, aber es könnte eventuell sein, dass getcurrenthealth so ähnlich wie return funktioniert