Habe die Feuerameisen alle ein wenig runtergeschraubt und die schwereren kommen jetzt später.
Sieht jetzt besser aus mit der Ghul-Verwandlung, habe verschiedene Effekte und Animationen eingebaut.
Jetzt zickt das im Hardcore-Modus aber noch mit den Fraktionen, das ist ein schier undurchschaubares Geflecht, das es einem schwierig macht, das einem wirklich alle hassen. Okay, muss den Player per Script aus drei verschiedenen Fraktionen rauswerfen und ihn nach der Verwandlung wieder hinzufügen, damit das mit der Brotherhood klappt. Wieso ich aber die Arefu-Fraktion nicht feindlich kriege, ist mir ein Rätsel. Mache es gleich wie in Megaton und Big Town und die ballern auf mich los, was das Zeug hält.
Edit
Ist übrigens ziemlich mühsam, Bethesda scheint sämtliche Online-Dokumentationen für Oblivion, Fallout 3, NV und sogar Skyrim deaktiviert zu haben, wenn man Infos braucht, ist man jetzt aufgeschmissen.
War den halben Tag an diesem Script am rumschrauben, das sämtliche RAD-Effekte, die Gift-Halluzinationen und die Ghulverwandlung steuert.
Das mit der Umstellung der Fraktionen ist besonders heikel, ich kann nicht einfach Fraktionen dumm an- und ausschalten oder von Freund auf Feind umschalten, wenn ich die ursprünglichen Reaktionen wieder haben möchte. Ich muss teilweise auslesen, welche Fraktionen dem Player während dem Spiel hinzugefügt wurden, oder mit wem er es sich verscherzt hat. Wenn man die Bomben auf die Citadel fallen lässt, wird auch Cross feindlich und auch in Paradise Falls, Pitt oder Lookout muss ich die ursprünglichen Beziehungen wieder ehrstellen. Musste gar manches Script oder Quest-Stage genauer ansehen, damit ich keinen Scheiss code. Habe da jetzt alles nochmals überarbeitet, vertieft und neu durchdacht. Hoffentlich sind endlich alle feindlich, die es sein sollten und wieder friedlich, wenn es vorbei ist.
Wer es sich ansehen möchte:
scn wlwQuestIntoxicationScript
Spoiler:Code:; Bedingungen in Messages definieren short DoOnce short ResetIt short FollowerCount short FollowerMax short ResetTimer short CanUseGrenade short ButtonPressed short RadMsgOnce short GhoulWpnOnce short IsStartMsg short DoOnce ; Vergleich zu wlwQuest.RadMode short RadMode ; Variablen Gift float PoisonTimer short PoisonApplied ; Variablen Rad float RadTimer short RadState short RandomFactor short RadFxApplied short ApplyRadLevel ; Variablen Ghulifizierung short IsGhoul short GhoulFxTimer short ApplyGhoulFx short ApplyGhoulSound short RemoveGhoulForm short ApplyGhoulLevel short GhulQuestRunning short EffectsDisabled short CanRecruitGhoul short DismissTimer short WasCannibal short KarmaLevel short BrotherhoodMember short BrotherhoodAlly short ReillyMember short OutcastAlly Begin GameMode ; Einmaliger Start oder Update If DoOnce < 2 Set RadMode To wlwQuest.RadMode Set DoOnce To 2 EndIf ; Ghul-Status ermitteln If GhulQuestRunning == 0 && IsGhoul > 0 Set FollowerMax To 3 Set FollowerCount To 0 Set ResetTimer To 1 DLC04FF02DunwichObeliskREF.enable If wlwQuest.RadMode == 3 SetObjectiveDisplayed wlwQuestGhoulHeal 20 1 Else SetObjectiveDisplayed wlwQuestGhoulHeal 10 1 EndIf Set GhulQuestRunning To 1 EndIf ; Start-Message Rads If RadMsgOnce == 0 && Player.GetAv RadiationRads > 400 Set wlwQuestFunction.ShowMsg To 1 Set RadMsgOnce To 1 EndIf ; Gift-Halluzinationen (im Survivor-Modus und nicht als Ghul) If wlwQuest.ModeSurvivor == 1 && IsGhoul == 0 If Player.HasMagicEffect wlwPoisonBaseEffect If PoisonTimer > 50 RiMod wlwEffectPoisonHalluzination If GetRandomPercent > 50 && Player.GetHealthPercentage > 0.25 PlaySound VOCRadioGhouls IMod wlwEffectPoisonHalluzination EndIf Set PoisonApplied To 1 Set PoisonTimer To 0 Else Set PoisonTimer To PoisonTimer + GetSecondsPassed EndIf Else If PoisonApplied == 1 RiMod wlwEffectPoisonHalluzination Set PoisonApplied To 0 EndIf EndIf EndIf ; Radiation-Effekte If RadMode == wlwQuest.RadMode If Player.GetAv RadiationRads > 800 If RadState == 0 && IsGhoul == 0 wlwPlayerMatchHumanRef.MatchRace Player Set KarmaLevel To Player.GetAv Karma EndIf If RadState != 2 If RadMode == 1 Set ApplyRadLevel To 2 ElseIf RadMode > 1 && IsGhoul != 2 Set ApplyGhoulLevel To 2 EndIf Set RadState To 2 EndIf ElseIf Player.GetAv RadiationRads > 600 If RadState == 0 && IsGhoul == 0 wlwPlayerMatchHumanRef.MatchRace Player Set KarmaLevel To Player.GetAv Karma EndIf If RadState != 1 If RadMode == 1 Set ApplyRadLevel To 1 ElseIf RadMode == 2 Set ApplyGhoulLevel To 1 ElseIf RadMode == 3 && IsGhoul == 0 Set ApplyGhoulLevel To 1 EndIf Set RadState To 1 EndIf Else If RadState != 0 If RadMode < 2 Set ApplyRadLevel To -1 ElseIf RadMode == 2 Set ApplyGhoulLevel To -1 EndIf Set RadState To 0 EndIf EndIf Else ; Player hat Modus im Menu geaendert, zuerst nullen, dann wieder beginnen Set RadMode To wlwQuest.RadMode ; Abgleich mit Variable If RadState > 0 Set RadState To 0 Set ApplyGhoulLevel To -1 Set ApplyRadLevel To -1 EndIf EndIf ; Ghul-Level anpassen If ApplyGhoulLevel != 0 && wlwQuestFunction.ApplyGhoulFx == 0 Set wlwQuestFunction.ApplyGhoulFx To ApplyGhoulLevel Set GhoulFxTimer To 1 EndIf If GhoulFxTimer > 0 Set GhoulFxTimer To GhoulFxTimer - 1 ElseIf ApplyGhoulLevel == 1 ; Effekte Level 1 Set IsGhoul To 1 Set CanRecruitGhoul To 0 Set FollowerCount To 0 Set wlwPerkGhoulFleshChance To 100 Player.RemoveFromFaction wlwTypePlayerGhoulFaction2 Player.AddToFaction wlwTypePlayerGhoulFaction1 1 Player.MatchRace wlwPlayerMatchGhoul1Ref Player.RemoveSpell wlwPlayerGhoulSpell2 Player.AddSpell wlwPlayerGhoulSpell1 Player.RemoveItem wlwWpnGhoulGrenade 20 1 Player.RemoveItem wlwWpnFeralGhoulClaws 1 1 SetEnemy PlayerFaction FeralGhoulFaction Player.RemoveFromFaction FeralGhoulFaction If WasCannibal == 0 Player.RemovePerk Cannibal EndIf Set ApplyGhoulLevel To 0 ElseIf ApplyGhoulLevel == 2 ; Effekte Level 2 Set IsGhoul To 2 Set FollowerCount To 0 Set DismissTimer To 1 Set wlwPerkGhoulFleshChance To 10 Player.RemoveFromFaction wlwTypePlayerGhoulFaction1 Player.AddToFaction wlwTypePlayerGhoulFaction2 1 Player.MatchRace wlwPlayerMatchGhoul2Ref Player.RemoveSpell wlwPlayerGhoulSpell1 Player.AddSpell wlwPlayerGhoulSpell2 Player.AddItem wlwWpnGhoulGrenade 3 Player.AddItem wlwWpnFeralGhoulClaws 1 Player.AddItem HumanFlesh 9 1 ClearFactionPlayerEnemyFlag FeralGhoulFaction SetAlly PlayerFaction FeralGhoulFaction 1 1 If WasCannibal == 0 Player.AddPerk Cannibal EndIf If RadMode == 3 ; Karma RewardKarma -2000 ; Ghul-Fraktion Player.AddToFaction FeralGhoulFaction 1 ; Gruppen SetEnemy PlayerFaction MS13CanMez SetEnemy PlayerFaction SmokerFaction SetEnemy PlayerFaction GeneralIdleFaction SetEnemy PlayerFaction WastelanderFaction SetEnemy PlayerFaction WastelandScavengerFaction SetEnemy PlayerFaction WastelandHunterFaction SetEnemy PlayerFaction TraderFaction SetEnemy PlayerFaction SlaverFaction SetEnemy PlayerFaction SlaveFaction ; Siedlungen SetEnemy PlayerFaction ArefuFaction SetEnemy PlayerFaction BigTownFaction SetEnemy PlayerFaction CantCommonsFaction SetEnemy PlayerFaction GirdershadeFaction SetEnemy PlayerFaction LamplightResidentFaction SetEnemy PlayerFaction MegatonSettlerFaction SetEnemy PlayerFaction ParadiseFallsResidentFaction SetEnemy PlayerFaction RCResidentFaction SetEnemy PlayerFaction TennpennyResidentFaction ; Spezielle Gruppen SetEnemy PlayerFaction ParadiseFallsSlaverFaction If Player.GetInFaction ReillysRangersFaction Set ReillyMember To 1 Player.RemoveFromFaction ReillysRangersFaction EndIf SetEnemy PlayerFaction ReillysRangersFaction If Player.GetInFaction BrotherhoodSteelFaction Set BrotherhoodMember To 1 Player.RemoveFromFaction BrotherhoodSteelFaction EndIf SetEnemy PlayerFaction BrotherhoodSteelFaction If Player.GetInFaction MQPlayerBOSAllyFaction Set BrotherhoodAlly To 1 Player.RemoveFromFaction MQPlayerBOSAllyFaction EndIf Player.RemoveFromFaction MQ01BrotherhoodDCFaction If Player.GetInFaction BrotherhoodOutcastAllyFaction Set OutcastAlly To 1 Player.RemoveFromFaction BrotherhoodOutcastAllyFaction EndIf SetEnemy PlayerFaction BrotherhoodOutcastFaction ; DLC-Gruppen SetEnemy PlayerFaction DLC01PittRaiderFaction SetEnemy PlayerFaction DLC01PittSlaveFaction SetEnemy PlayerFaction DLC04TribalFriendlyFaction ; Begleiter SetEnemy PlayerFaction wlwFollowerFactionButch SetEnemy PlayerFaction wlwFollowerFactionCharon SetEnemy PlayerFaction wlwFollowerFactionClover SetEnemy PlayerFaction wlwFollowerFactionCross SetEnemy PlayerFaction wlwFollowerFactionFawkes SetEnemy PlayerFaction wlwFollowerFactionJericho SetEnemy PlayerFaction wlwFollowerFactionRL3 SetEnemy PlayerFaction wlwFollowerFactionDogmeat EndIf If GhoulWpnOnce == 0 Set GhoulWpnOnce To 1 ShowMessage wlwInfoGhoulWeapons EndIf Set ApplyGhoulLevel To 0 ElseIf ApplyGhoulLevel == -1 ; Effekte entfernen Set IsGhoul To 0 Set CanRecruitGhoul To 0 Set FollowerCount To 0 Set wlwPerkGhoulFleshChance To 100 Player.RemoveFromFaction wlwTypePlayerGhoulFaction1 Player.RemoveFromFaction wlwTypePlayerGhoulFaction2 Player.RemoveSpell wlwPlayerGhoulSpell1 Player.RemoveSpell wlwPlayerGhoulSpell2 Player.MatchRace wlwPlayerMatchHumanRef ; WTF!!!! Player.agerace -9 Player.agerace 1 Player.RemoveItem wlwWpnGhoulGrenade 20 1 Player.RemoveItem wlwWpnFeralGhoulClaws 1 1 Player.RemoveFromFaction FeralGhoulFaction SetEnemy PlayerFaction FeralGhoulFaction If WasCannibal == 0 Player.RemovePerk Cannibal EndIf If RadMode == 3 ; Karma neutral RewardKarma 1000 ; Gruppen SetEnemy PlayerFaction MS13CanMez 1 1 SetEnemy PlayerFaction SmokerFaction 1 1 SetEnemy PlayerFaction GeneralIdleFaction 1 1 SetEnemy PlayerFaction WastelanderFaction 1 1 SetEnemy PlayerFaction WastelandScavengerFaction 1 1 SetEnemy PlayerFaction WastelandHunterFaction 1 1 SetEnemy PlayerFaction TraderFaction 1 1 SetEnemy PlayerFaction SlaverFaction 1 1 SetEnemy PlayerFaction SlaveFaction 1 1 ClearFactionPlayerEnemyFlag MS13CanMez ClearFactionPlayerEnemyFlag SmokerFaction ClearFactionPlayerEnemyFlag GeneralIdleFaction ClearFactionPlayerEnemyFlag WastelanderFaction ClearFactionPlayerEnemyFlag WastelandScavengerFaction ClearFactionPlayerEnemyFlag WastelandHunterFaction ClearFactionPlayerEnemyFlag TraderFaction ClearFactionPlayerEnemyFlag SlaverFaction ClearFactionPlayerEnemyFlag SlaveFaction ; Siedlungen If MS09ArefuHates == 0 SetEnemy PlayerFaction ArefuFaction 1 1 EndIf SetEnemy PlayerFaction BigTownFaction 1 1 SetEnemy PlayerFaction CantCommonsFaction 1 1 SetEnemy PlayerFaction GirdershadeFaction 1 1 SetEnemy PlayerFaction LamplightResidentFaction 1 1 SetEnemy PlayerFaction MegatonSettlerFaction 1 1 SetEnemy PlayerFaction ParadiseFallsResidentFaction 1 1 SetEnemy PlayerFaction RCResidentFaction 1 1 SetEnemy PlayerFaction TennpennyResidentFaction 1 1 ClearFactionPlayerEnemyFlag BigTownFaction ClearFactionPlayerEnemyFlag CantCommonsFaction ClearFactionPlayerEnemyFlag GirdershadeFaction ClearFactionPlayerEnemyFlag LamplightResidentFaction ClearFactionPlayerEnemyFlag MegatonSettlerFaction ClearFactionPlayerEnemyFlag ParadiseFallsResidentFaction ClearFactionPlayerEnemyFlag RCResidentFaction ClearFactionPlayerEnemyFlag TennpennyResidentFaction ; Spezielle Gruppen If wlwQuestAmbush.ParadiseSlaversPissed == 0 SetEnemy PlayerFaction ParadiseFallsSlaverFaction 1 1 EndIf If ReillyMember == 1 Set ReillyMember To 0 Player.AddToFaction ReillysRangersFaction 1 EndIf SetEnemy PlayerFaction ReillysRangersFaction 1 1 If wlwQuestAmbush.BrotherhoodPissed == 0 If BrotherhoodMember == 1 Set BrotherhoodMember To 0 Player.AddToFaction BrotherhoodSteelFaction 1 EndIf SetEnemy PlayerFaction BrotherhoodSteelFaction 1 1 If BrotherhoodAlly == 1 Set BrotherhoodAlly To 0 Player.AddToFaction MQPlayerBOSAllyFaction 1 EndIf Player.AddToFaction MQ01BrotherhoodDCFaction 1 SetEnemy PlayerFaction BrotherhoodSteelFaction 1 1 ClearFactionPlayerEnemyFlag BrotherhoodSteelFaction SetEnemy PlayerFaction wlwFollowerFactionCross 1 1 ClearFactionPlayerEnemyFlag wlwFollowerFactionCross EndIf If wlwQuestAmbush.OutcastPissed == 0 If OutcastAlly == 1 Set OutcastAlly To 0 Player.AddToFaction BrotherhoodOutcastAllyFaction 1 EndIf SetEnemy PlayerFaction BrotherhoodOutcastFaction 1 1 ClearFactionPlayerEnemyFlag BrotherhoodOutcastFaction EndIf ; DLC-Gruppen If wlwQuestAmbush.PittRaiderPissed == 0 SetEnemy PlayerFaction DLC01PittRaiderFaction 1 1 ClearFactionPlayerEnemyFlag DLC01PittRaiderFaction EndIf If wlwQuestAmbush.PittSlavesPissed == 0 SetEnemy PlayerFaction DLC01PittSlaveFaction 1 1 ClearFactionPlayerEnemyFlag DLC01PittSlaveFaction EndIf If wlwQuestAmbush.TribalsPissed == 0 SetEnemy PlayerFaction DLC04TribalFriendlyFaction 1 1 ClearFactionPlayerEnemyFlag DLC04TribalFriendlyFaction EndIf ; Begleiter SetEnemy PlayerFaction wlwFollowerFactionButch 1 1 SetEnemy PlayerFaction wlwFollowerFactionCharon 1 1 SetEnemy PlayerFaction wlwFollowerFactionClover 1 1 SetEnemy PlayerFaction wlwFollowerFactionFawkes 1 1 SetEnemy PlayerFaction wlwFollowerFactionJericho 1 1 SetEnemy PlayerFaction wlwFollowerFactionRL3 1 1 SetEnemy PlayerFaction wlwFollowerFactionDogmeat 1 1 ClearFactionPlayerEnemyFlag wlwFollowerFactionButch ClearFactionPlayerEnemyFlag wlwFollowerFactionCharon ClearFactionPlayerEnemyFlag wlwFollowerFactionClover ClearFactionPlayerEnemyFlag wlwFollowerFactionFawkes ClearFactionPlayerEnemyFlag wlwFollowerFactionJericho ClearFactionPlayerEnemyFlag wlwFollowerFactionRL3 ClearFactionPlayerEnemyFlag wlwFollowerFactionDogmeat EndIf If GhulQuestRunning == 1 SetObjectiveCompleted wlwQuestGhoulHeal 20 1 SetObjectiveCompleted wlwQuestGhoulHeal 10 1 CompleteQuest wlwQuestGhoulHeal Set GhulQuestRunning To 0 EndIf Set RadMode To wlwQuest.RadMode Set ApplyGhoulLevel To 0 EndIf ; Effekt anwenden: RAD-Halluzinationen If ApplyRadLevel == 1 ; Effekte Level 1 IMod wlwEffectRad1 RiMod wlwEffectRad2 Set ApplyRadLevel To 0 ElseIf ApplyRadLevel == 2 ; Effekte Level 2 IMod wlwEffectRad2 RiMod wlwEffectRad1 Set ApplyRadLevel To 0 ElseIf ApplyRadLevel == -1 ; Effekte entfernen RIMod wlwEffectRad1 RIMod wlwEffectRad2 RIMod wlwEffectRad1Halluzination RIMod wlwEffectRad2Halluzination Set ApplyRadLevel To 0 EndIf ; Sporadische RAD-Effekte If RadState > 0 && RadMode == 1 If RadTimer > 30 If RadFxApplied == 1 RIMod wlwEffectRad1Halluzination RIMod wlwEffectRad2Halluzination Set RadFxApplied To 0 EndIf If GetRandomPercent < (RadState * 30) Set RadFxApplied To 1 If RadState == 1 IMod wlwEffectRad1Halluzination ElseIf RadState == 2 IMod wlwEffectRad2Halluzination EndIf SetRumble 0.1 0.1 7 If GetRandomPercent > 30 Set RandomFactor To GetRandomPercent If RandomFactor < 3 PlaySound AMBDLC04BoatArrivalBell ElseIf RandomFactor < 6 PlaySound AMBDLC04PungaSprayRinging ElseIf RandomFactor < 9 PlaySound AMBPittCrowdCheer01 ElseIf RandomFactor < 12 PlaySound DRSDeathclawCageClose ElseIf RandomFactor < 15 PlaySound DRSDLC05HangarClose ElseIf RandomFactor < 18 PlaySound DRSMetalHeavySingle01Close ElseIf RandomFactor < 21 PlaySound FXExplosionDebrisMansion ElseIf RandomFactor < 24 PlaySound NPCBrahminIdleGrazingLeft ElseIf RandomFactor < 27 PlaySound NPCDeathClawCageExit ElseIf RandomFactor < 30 PlaySound NPCDeathclawIdleClawScrape ElseIf RandomFactor < 33 PlaySound NPCFeralGhoulRadiate ElseIf RandomFactor < 36 PlaySound NPCFeralGhoulSeizureLong ElseIf RandomFactor < 39 PlaySound NPCHillfolkJugLPM ElseIf RandomFactor < 42 PlaySound NPCHumanSuicideGeneral ElseIf RandomFactor < 45 PlaySound OBJDLC05ClawVoice01 ElseIf RandomFactor < 48 PlaySound OBJDLC05ClawVoice02 ElseIf RandomFactor < 51 PlaySound OBJDLC05ClawVoice03 ElseIf RandomFactor < 54 PlaySound OBJDLC05HealingArchHeal ElseIf RandomFactor < 57 PlaySound OBJDLC05ProbeAlienA01 ElseIf RandomFactor < 60 PlaySound OBJDLC05ProbeAlienB02 ElseIf RandomFactor < 63 PlaySound QSTAlienRadio02 ElseIf RandomFactor < 66 PlaySound QSTBirthStart ElseIf RandomFactor < 69 PlaySound QSTEnclaveTroopsMoving2D ElseIf RandomFactor < 72 PlaySound QSTFadeToWhiteD ElseIf RandomFactor < 75 PlaySound QSTInhibitorPulseDistant ElseIf RandomFactor < 78 PlaySound QSTPartyClapping2D ElseIf RandomFactor < 81 PlaySound QSTPartyNoiseMaker2D ElseIf RandomFactor < 84 PlaySound QSTSiloLaunch ElseIf RandomFactor < 87 PlaySound VOCBehemothSigh ElseIf RandomFactor < 90 PlaySound VOCDLC04MaleChildGiggle ElseIf RandomFactor < 93 PlaySound VOCDLC04MaleChildOooh ElseIf RandomFactor < 96 PlaySound VOCDLC04MaleChildSnarl ElseIf RandomFactor < 100 PlaySound VOCRobotLibertyPrimeCombat23 EndIf EndIf EndIf Set RadTimer To 0 Else Set RadTimer To RadTimer + GetSecondsPassed EndIf EndIf ; Ghul-Effekte If RadState > 0 && IsGhoul > 0 If IsGhoul == 1 If GetRandomPercent < 30 Set ApplyGhoulFx To 1 EndIf If GetRandomPercent < 40 Set ApplyGhoulSound To 1 EndIf If RadMode == 3 && Player.GetAv RadiationRads < 601 Player.CastImmediateOnSelf wlwIngRadBomb EndIf ElseIf IsGhoul == 2 If Player.GetItemCount wlwWpnGhoulGrenade < 3 Player.AddItem wlwWpnGhoulGrenade 3 EndIf If GetRandomPercent < 50 Set ApplyGhoulFx To 1 EndIf If GetRandomPercent < 80 Set ApplyGhoulSound To 1 EndIf If DismissTimer > -1 Set DismissTimer To DismissTimer - 1 EndIf If Player.HasPerk wlwPerkGhoulFollower && RadMode == 3 && DismissTimer < 0 Set CanRecruitGhoul To 1 Else Set CanRecruitGhoul To 0 EndIf If RadMode == 3 && Player.GetAv RadiationRads < 801 Player.CastImmediateOnSelf wlwIngRadBomb EndIf EndIf If ApplyGhoulFx == 1 ; In naechster Version weg RiMod wlwFXGhoulView1a RiMod wlwFXGhoulView1b RiMod wlwFXGhoulView2a RiMod wlwFXGhoulView2b Set RandomFactor To GetRandomPercent If RandomFactor > 75 IMod wlwFxGhoulHalluzination1 ElseIf RandomFactor > 50 IMod wlwFxGhoulHalluzination2 ElseIf RandomFactor > 25 IMod wlwFxGhoulHalluzination3 Else IMod wlwFxGhoulHalluzination4 EndIf Set ApplyGhoulFx To 0 EndIf If ApplyGhoulSound == 1 Set RandomFactor To GetRandomPercent If RandomFactor > 75 PlaySound wlwNPCFeralGhoulAlert ElseIf RandomFactor > 50 PlaySound wlwNPCFeralGhoulAware ElseIf RandomFactor > 25 PlaySound NPCFeralGhoulSeizureLong Else PlaySound NPCFeralGhoulSeizureShort EndIf Set ApplyGhoulSound To 0 EndIf EndIf End