Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 29
  1. #1
    Let's Play-Gucker
    Registriert seit
    30.09.2010
    Beiträge
    108

    Standard Hilfe bei Schlaf Script

    Hallo Leute

    ich brauche eure Hilfe bei einem Schlaf Script.

    Unten sieht man das „A Good Nights Sleep“ Script von JoshNZ runter geladen vom newvegasNexus. Es bewirkt das man beim Schlafen langsamer heilt und keine Körperteile geheilt werden.
    Das Script wird nur im Hardcore Modus aktiv, aber ich hätte es gern im normalen Spielmodus. Kann mir da bitte jemand weiter helfen, ich hab so gut wie keine Ahnung davon!

    scn aaSleepHealth

    Float FullHP
    Float CurrentHP
    Float Diff
    Float HPPerHour
    Float ResultHP
    Float SleepTime

    Int OncePer

    Begin MenuMode

    If GetPCSleepHours != 0 && OncePer == 0
    Set SleepTime to GetPCSleepHours
    if SleepTime > 8
    Set SleepTime to 8
    endif
    set fullHP to player.GetBaseActorValue Health
    set CurrentHP to player.GetActorValue Health
    Set Diff to fullHP - CurrentHP
    Set HPPerHour to (Diff / 8)
    Set ResultHP to HPPerHour * SleepTime
    Player.RestoreActorValue Health ResultHP
    Set OncePer to 1
    Endif

    End

    Begin GameMode

    If OncePer == 1
    Set OncePer to 0
    Endif

    End


    Mfg...

  2. #2
    Meisterin der Klinge Avatar von Aaaaaimbot
    Registriert seit
    17.05.2009
    Ort
    Grayditch (Brandices Haus)
    Beiträge
    5.233

    Standard

    Das muß durch was anderes gesteuert werden, oder zumindest seh ich jetzt in diesem Skript keine Abfrage für den Hardcoremodus, also ob der an ist oder nicht... vielleicht mal das Basisobjekt anschauen, auf dem das Skript draufliegt?
    Schluß mit Verschlimmbesserungen - laßt die guten alten Zeiten wieder aufleben! Jede "Neuerung" ist ein Rückschritt gegenüber Oblivion! (Zur Verdeutlichung: Oblivion = The Elder Scrolls 4.)
    Meine Fallout-3-Mods, mein Youtube-Kanal, I Wanna Be The Jill, mein Mod zu "Jill of the Jungle" von Epic MegaGames, mein Buch (eine abgefahrene Story) bei Amazon, mein NetHack-Mod "Slash'EM Extended" (Freeware)
    Wir sind die Räuber und es wird Zeit, daß ihr das Fürchten lernt! (Amy's Fanfiktion-Profil)

  3. #3
    Let's Play-Gucker
    Registriert seit
    30.09.2010
    Beiträge
    108

    Standard

    Hallo Aaaaaimbot
    das einzige was ich noch gefunden habe ist die dazugehörige Questdatei.

    Klicke auf die Grafik für eine größere Ansicht 

Name:	Bild 000.jpg 
Hits:	211 
Größe:	152,5 KB 
ID:	16433

    Mehr als die paar Einträge auf der erste Seite gibt es nicht. Ich werde nicht schlau daraus wie es gemacht wird, das es nur im Hardcore Modus funktioniert.
    Kann man das Skript etwas umschreiben, damit es nur im normalen Modus läuft?

    Mfg...

  4. #4
    Newbie Avatar von shak-otay
    Registriert seit
    04.09.2012
    Beiträge
    39

    Standard

    Zitat Zitat von Wulfy301 Beitrag anzeigen
    Das Script wird nur im Hardcore Modus aktiv, [...]
    Diese Annahme ist naheliegend, aber leider falsch.

    Als Beweis kannst du z.B. mal die Zeile ShowMessage AprilMartimerDead in den
    If GetPCSleepHours != 0 && OncePer == 0
    [...]
    Endif
    -Block einfügen und im Nicht-Hardcore-Mode auf einer Bettrolle schlafen.
    Du wirst sehen: die Message wird eingeblendet.

    Ich denke, das Heilen beim Schlafen ist hardcoded (Vermutung).
    Diese Heilung "überlagert" im Normalmodus das aaSleepHealth-Script,
    so dass man meint, es wäre nicht aktiv.

    Im HC-Modus ist das hardcoded healing beim Schlafen ausgeschaltet und das
    aaSleepHealth-Script kommt zum Tragen.

    Tja, wie löst man nun dein Problem?
    Du müsstest allen Bedrolls (improvisierte Schlafstellen), die kein Script haben,
    das aaSleepHealth-Script zuweisen. (Habich aber nicht getestet.)

    Bei Betten, die z.B. das PlayerBedSCRIPT benutzen, wird's etwa aufwändiger.

    (Sollte das "Heilen durch Schlafen" doch nicht hardcoded sein, geht's vllt. einfacher.)

    edit: ach ja, habich vergessen: das hardcoded healing muss natürlich iwie ausgeschaltet werden; hmm?
    Geändert von shak-otay (22.10.2012 um 21:05 Uhr)

  5. #5
    Let's Play-Gucker
    Registriert seit
    30.09.2010
    Beiträge
    108

    Standard

    Aha, danke erstmal für deine Antwort shak-otay!

    Das bedeutet um mein Problem zu lösen, könnte ich mir genauso gut auch ins Knie schießen - mist!

    Mfg...

  6. #6
    Newbie Avatar von shak-otay
    Registriert seit
    04.09.2012
    Beiträge
    39

    Standard

    Äh, nein - wozu gibt's denn das Internet?
    Der user ziher hat eine "No healing on resting" mod gemacht; allerdings für Fallout 3:
    http://fallout3.nexusmods.com/mods/752
    Dort hat er netterweise auch das uncompiled script veröffentlicht (unterster Downloadbutton).

    Die Zeile player.damageav health dhealth im gamemode dürfte die entscheidende sein...
    Mfg...

    PS: was macht dein Knie?,-)

  7. #7
    Let's Play-Gucker
    Registriert seit
    30.09.2010
    Beiträge
    108

    Standard

    Wow, shak-otay das Skript funktioniert, beim schlafen wird weder die Gesundheit noch die Körperteile geheilt!
    Wie muss man das Skript aber nun abändern das die Gesundheit geheilt wird aber die Körperteile nicht?
    (Die Pistole liegt noch in griffweite)

    scn NHsleep

    float crleg
    float drleg
    float clleg
    float dlleg
    float crarm
    float drarm
    float clarm
    float dlarm
    float chead
    float dhead
    float ctorso
    float dtorso
    float chealth
    float dhealth
    short usedmenu

    begin menumode 1012

    if ispcsleeping==1
    set chealth to player.GetAV health
    set ctorso to player.GetAV EnduranceCondition
    set chead to player.GetAV PerceptionCondition
    set clarm to player.GetAV LeftAttackCondition
    set crarm to player.GetAV RightAttackCondition
    set clleg to player.GetAV LeftMobilityCondition
    set crleg to player.GetAV RightMobilityCondition
    set usedmenu to 1
    endif

    end

    begin gamemode

    if usedmenu == 1
    set dhealth to player.getav health - chealth
    set dtorso to player.getav EnduranceCondition - ctorso
    set dhead to player.getav PerceptionCondition - chead
    set dlarm to player.getav LeftAttackCondition - clarm
    set drarm to player.getav RightAttackCondition - crarm
    set dlleg to player.getav LeftMobilityCondition - clleg
    set drleg to player.getav RightMobilityCondition - crleg
    player.damageav health dhealth
    player.damageav EnduranceCondition dtorso
    player.damageav PerceptionCondition dhead
    player.damageav LeftAttackCondition dlarm
    player.damageav RightAttackCondition drarm
    player.damageav LeftMobilityCondition dlleg
    player.damageav RightMobilityCondition drleg
    set usedmenu to 0
    endif

    end


    Mfg...

  8. #8
    Newbie Avatar von shak-otay
    Registriert seit
    04.09.2012
    Beiträge
    39

    Standard

    Zitat Zitat von Wulfy301 Beitrag anzeigen
    Wow, shak-otay das Skript funktioniert,
    Naja, müsste wohl heißen: "Wow, ziher", oder?;-)

    beim schlafen wird weder die Gesundheit noch die Körperteile geheilt!
    Wie muss man das Skript aber nun abändern das die Gesundheit geheilt wird aber die Körperteile nicht?
    Einfach die Zeile "player.damageav health dhealth" weglassen?

    Wenn du langsamere Heilung wie mit dem aaSleepHealth-Script meinst - das könnte etwas aufwändiger werden.

    Leider habich gerade nicht so die Zeit dafür, da ich diverse andere Projekte code.

    Aber mit ein bisschen Einarbeitung solltest du das selbst schaffen, oder?

    Da gibt's ein Geck-Wiki, wo man z.B. nachlesen kann, dass menumode 1012 für SleepWait steht etc.

    Dieses Tut ist auch sehr fein gemacht; allerdings auf Englisch; (vllt. gibt's da ja 'ne deutsche Übersetzung von?)
    http://www.cipscis.com/fallout/tutorials/beginners.aspx
    Geändert von shak-otay (22.10.2012 um 22:46 Uhr)

  9. #9
    Let's Play-Gucker
    Registriert seit
    30.09.2010
    Beiträge
    108

    Standard

    Super, danke für deine Hilfe!

    So, momentan sieht es so aus -> das Skript funktioniert, die Körperteile werden nicht mit geheilt - sehr schön!

    Nächster schritt wäre das zeitverzögerte Heilen der Gesundheit. Ich versuch mich mit dem Tut, aber jede Hilfe diesbezüglich, wäre mir lieber!

    Hab mich ein wenig rein gelesen und hab etwas rumprobiert, aber es sieht nicht so aus, als wenn ich das kapieren würde.
    Bitte helft mir!

    Mfg...
    Geändert von Wulfy301 (22.10.2012 um 23:54 Uhr)

  10. #10
    Newbie Avatar von shak-otay
    Registriert seit
    04.09.2012
    Beiträge
    39

    Standard

    Lass' erstmal die limbs-Geschichte außen vor und benutz' nur die Mod von JoshNZ.
    Verschiebe dort die Player.RestoreActorValue-Zeile wie folgt:

    Code:
    Begin GameMode
    
    	If OncePer == 1
    		Set OncePer to 0
    		Player.RestoreActorValue Health ResultHP 
    	Endif
    
    End
    Das wäre praktisch äquivalent zum ziher-script.
    Am Anfang eines GameMode frames wirkt sich das automatisierte healing auf Health aus
    und das wird dann von Player.RestoreActorValue überschrieben.

    Das ist die Idee; testen musst du es selber...

    MfG...

    edit: hmm, das schien nicht zu funzen; hatte schon seinen Grund, weshalb ziher player.damageav
    verwendete.

    Hier das leicht geänderte Script von JoshNZ:

    Code:
    scn aaSleepHealth
    
    Float FullHP
    Float CurrentHP
    Float Diff
    Float HPPerHour
    Float ResultHP
    Float SleepTime
    
    Int OncePer
    
    Begin MenuMode
    
    	If GetPCSleepHours != 0 
                if OncePer==0
    		Set SleepTime to GetPCSleepHours 
    		if SleepTime > 8
    			Set SleepTime to 8
    		endif
    		;ShowMessage AprilMartimerDead
    		set fullHP to player.GetBaseActorValue Health
    		set CurrentHP to player.GetActorValue Health
    		Set Diff to fullHP - CurrentHP 
    		Set HPPerHour to (Diff / 8)
    		Set ResultHP to (fullHP - HPPerHour * SleepTime)
    		Set OncePer to 1
    	    Endif
    	Endif
    
    End
    
    Begin GameMode
    
    	If OncePer==1
    	     player.damageav health ResultHP
      	     Set OncePer to 0
    	Endif
    
    End
    Nach einer Stunde pennen gibt's etwas HP, nach 4h entsprechend mehr.

    Nach 8h oder mehr gibt's allerdings keine full HPs.
    Wenn man nach 8h pennen nochmal 1h pennt, reduzieren sich die HPs,
    weil die Formeln nicht akkumulieren, sondern Absolutwerte generieren.

    Ja, das sollte korrigiert werden, wenn's realistisch sein soll.

    Man muss dazu CurrentHP subtrahieren; weißt du auch, wo?;-)
    Geändert von shak-otay (23.10.2012 um 15:53 Uhr)

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •