Jump to content

Essential Player??


Myst42

Recommended Posts

Posted

It always bothered me that after doing so many amazing things and becoming a "god" your character is still technically "mortal"

That shouldn't be

 

Story: (Skip it if you want)

 

 

In Skyrim, there's a cheat mod that sets player to essential. Looked for one in Oblivion, but I could only find one that makes it only for a new game... checked it's structure with the CS and it's not script-based...

 

I still don't know much about scripts, I was given some links to some tutorials I have stored for reading... but in the meantime, I decided to take this task upon myself as it would seem simple enough...

 

The thing is I want this thing to be a mod which allows you to become "godlike" ONLY when you decide to

For roleplaying purposes, to me that's only after finishing the Shivering Isles quest

So I left a book which adds some things I thought godlike worthy:

 

For example:

-Added Immunities to Disease, Poison, Palalysis, Magic, certain resistance to normal weapons and a water breathing effect... A "god" shouldn't worry about such things right?

-All of the above, in some cases, is nothing a few mods and a high lever character can't achieve

-This is all part of an ability spell added by reading a book I placed on a floating island, tested, it works. I used the DLC Spell Tomes scripts and changed a few things

-But there's still the mortality issue. No matter what, you're still technically mortal.

 

 

 

So I decided to try to add one more spell to the ability:

-Set player essential

 

Figured it would be a matter of adding a script effect to the the ability and point it to a script i would have to make.

And this is where I am right now.

 

I wanted to try this:

 

Script type: magic effect

 

 

scn EssentialPlayerScript

 

begin ScriptEffectStart 

   set Player.SetEssential to 1

end

 

 
Simple enough

But

Will it work?

Will there be any issues?

Will it be permanent or it will safely disappear if one decides to remove the ability for example?

Or perhaps This one is better?

 

 

scn EssentialPlayerScript
 
Begin ScriptEffectStart 
   If Player.IsRefEssential == 0
      Player.SetRefEssential 1
   EndIf
End

 

 

 

Honestly. I've no Idea what I'm doing

??

Am I on the right track?

Am I just breaking the game?

Any light please?

Posted

Ok then...

Script should be

 

scn EssentialPlayerScript
 
Begin ScriptEffectStart 
   SetEssential 00000007 1
End

 

But then I'd have that camera problem right?

Or... Use that Shivering death mod and resurrect at the oblivion plane...

 

OR...

See what that mod has to prevent camera bug?

It says:

"But as of version 0.04, Cobl's death handling feature is used instead. (Cobl uses setEssential with some tricks to prevent camera drop, etc. Thanks to Scanner for these!)"

 

I use Cobl too so perhaps there's a way???

Posted

IIRC, Nessa looked at this in detail and decided that CObL death-handling was the most robust way to go. I'd try that for starters. Your mod would have CObL as a dependency but this isn't a bad thing. Many excellent mods already do.

Posted

If you just want to make yourself immortal, least-dependent mod I know of is Sleepypanda's Death Denied. It's available on the Nexus.

Not good enough. Comes at a cost.
A true Daedric Prince shouldnt have to pay a cost for immortality
 

IIRC, Nessa looked at this in detail and decided that CObL death-handling was the most robust way to go. I'd try that for starters. Your mod would have CObL as a dependency but this isn't a bad thing. Many excellent mods already do.

I'm totally OK with dependency mods. Easy as cake with the CS Extender. Besides, Cobl is masterfile too.

 

Now to the script...

 

This is the one from Shivering Death:

 

 

scn wrWobQS
;--Wrye Shivering Death handler.
;  Piggybacks on Cobl's death handler.
 
;--Local vars
float fQuestDelayTime
short myState
short picked ;--Random selection
short state ;--State var from pre-cobl version.
float timer ;--Unused
 
;--Values copied from cobMortQ
short cmState
ref cmRealDeathToken
 
begin gameMode ;---------------------------------------------------------------
 
;--Clean old death handling?
if state != 0
   set state to 0
   player.removeSpell wrWobBufferAb
   message "Removed old death handler."
endif
 
;--Cache cobMorQ values
set cmState to cobMortQ.state
set cmRealDeathToken to cobMortQ.rRealDeath
 
;--Idle?
if cmState == 0
   ;--Sheofied yet?
   if getStage se14 < 6
      return
   ;--Register? (If loses registration, will try to re-register)
   elseif cmRealDeathToken != wrWobDeathToken
      if cmRealDeathToken == 0 || cobMortQ.realDeathLevel < 40
         ;message "wrWobQ: Registered"
         ;player.removeSpell se14RezSpell
         set cobMortQ.rRealDeath to wrWobDeathToken
         set cobMortQ.realDeathLevel to 40
         if getQuestRunning cobMortQ == 0
            startQuest cobMortQ
         endif
      endif
   endif
 
   set fQuestDelayTime to 0.25
   set myState to 0
   return
 
;--CobMort ready for death handler?
elseif cmState != 20
   set myState to 0
 
;--Is this the active handler?
elseif cmRealDeathToken != wrWobDeathToken || cobMortQ.rFakeDeath != 0
   set myState to 0
 
;--Handle it: Move player to Waters of Oblivion
elseif myState == 0
   set myState to 10
   set cobSigNoPcTeleport to 1 ;--PC shouldn't teleport out.
   set cobSigNoPcNeeds to 1 ;--PC shouldn't get hungry or sleepy.
   set cobSigNoCompFollow to 1 ;--Companions shouldn't follow.
   set cobSigNoWeatherScript to 1 ;--Weather mods shouldn't mess with 
   playSound AMBThunder
   player.pms wrWobShader01
   Player.SCAOnActor
   ;--Doors
   wrWobExit01.disable
   wrWobExit02.disable
   wrWobExit03.disable
   set picked to 1 + getRandomPercent/33
   if picked == 1
      wrWobExit01.enable
   elseif picked == 2
      wrWobExit02.enable
   else
      wrWobExit03.enable
   endif
   ;--Move the player
   set picked to 1 + getRandomPercent/25
   if picked == 1
   player.moveTo wrWobArrival01
   elseif picked == 2
      player.moveTo wrWobArrival02
   elseif picked == 3
      player.moveTo wrWobArrival03
   else
      player.moveTo wrWobArrival04
   endif
   return
 
;--Player arrived in WOb?
elseif myState == 10
   if player.getInWorldSpace wrWobWorld
      player.pms wrWobShader01
      enablePlayerControls ;--Since cobMort still has them suspended.
      playSound AMBThunderDistant
      player.addSpell wrWobWaterEffects
      if cobLugMainRef.getDisabled
         player.removeAllItems wrWobDeathItemsRef 1
         wrWobDeathItemsRef.enable
      else
         player.removeAllItems cobLugMainRef 1
         wrWobDeathItemsRef.disable
      endif
      set myState to 20
   endif
   set cobMortQ.timer to -10
 
;--Player has exited Wob?
elseif myState == 20
   if player.getInWorldSpace wrWobWorld == 0
      set cobSigNoPcTeleport to 0
      set cobSigNoPcNeeds to 0
      set cobSigNoCompFollow to 0
      set cobSigNoWeatherScript to 0
      player.removeSpell wrWobWaterEffects
      player.sms wrWobShader01
      set cobMortQ.state to 30
      set myState to 0
   else
      player.pms wrWobShader01
      set cobMortQ.timer to -10 ;--Keep cobMortQ from timing out to state 30.
   endif
 
endif
 

end ;--gameMode

 

 

This is CobMort, which I believe may contain the things necessary to be essential

 

 

;--DO NOT MODIFY THIS SCRIPT!!!
;  DOING SO WILL CAUSE CTDS AND STRANGE BEHAVIOR FOR USERS.
;  If you need this script to do more, have a suggestion, or an alteration:
 
;--PUBLIC MONITOR QUEST SCRIPT
;  Monitors/prevents player death. 
 
;--VERSION HISTORY
;  v1.17 First version.
 
scn cobMortQS
 
;--INPUT/OUTPUT ---------------------------------------------------------------------
;--Real Death vs. Fake Death
;  There should be only one death handler active at a time -- this
;  is the "Real Death" handler. However, as an escape clause to handle
;  special situations where a death isn't considered real (death in a
;  dream, or player is in a situation where he'll be recalled before 
;  dying for real), a "Fake Death" handler can be made active. 
 
;--Registering/Deregistering
;  To register a death handler, set either rFakeDeath or rRealDeath
;  to a permanent ref object owned by the death handling mod. To deregister,
;  just set the token ref to 0. 
;  * Real death handlers should also set realDeathLevel -- see below.
;  * Don't register/deregister unless state == 0.
ref rFakeDeath 
ref rRealDeath
 
;--Overriding Registration
;  If a fake death handler is already registered, then usually no new
;  death handler should override it. Since these are always quest related,
;  the quest should delayed until registration is possible.
;
;  Real death policy is slightly different. An existing real death handler
;  should not be overridden unless the current realDeathLevel is less than 
;  the realDeathlevel of the new handler.
 
;--Real Death level
;  10: Low level spell. May fail in some locations.
;  20: High level spell. May fail in some very well protected locations.
;  30: God level immortality. Never fails.
short realDeathLevel
 
;--Monitoring Registration
;  Once a handler has registered, it should keep an eye on its registration token
;  (rFakeDeath or rRealDeath). If the handler loses registration 
;  (tokenRef != handler's token), then the handler should deactivate itself. 
;
;  Also, a real death handler should keep an eye on the fake death handler.
;  The real death handler should not handle any death events if the 
;  fake death handler is active.
 
;--State and timer
;  This script will take care of most of the work. A handler script just
;  needs to watch for state == 20, and at the point, do their thing. When
;  done, they should manually set state to 30. The handler should also 
;  manipulate the timer to keep the default action from kicking in.
;   0: Idle
;  10: Death sensed, initial recovery.
;  20: Death handler should intercept.
;  30: Cleanup spells. Handler should set to this when it's done.
float state
float timer
 
;--PRIVATE --------------------------------------------------------------------
float fQuestDelayTime
short isActive
short repeated ;--Repeated deats before recovery.
 
begin gameMode
 
;--Idle
if state == 0
   set repeated to 0
   set fQuestDelayTime to 0.001
   if rFakeDeath == 0 && rRealDeath == 0
      ;message "cobMortQS: Deactivating"
      setEssential 7 0 ;--De-essentialize player
      set isActive to 0
      stopQuest cobMortQ
      return
   elseif player.GetAV health >= 1 
      setEssential 7 1 ;--Essentialize player
      if isActive == 0
         ;message "cobMortQS: Activating"
         set isActive to 1
      endif
      return
   endif
endif
 
;--Player Killed?
if player.GetAV health < 1 && repeated < 3
   ;message "cobMortQS: Player KIA"
   ;--Scanner magic to avoid knockdown
   player.SetRestrained 1
   player.SetRestrained 0
   player.PushActorAway player 0
   ;--Player recovery
   disablePlayerControls
   player.DispelAllSpells
   player.setGhost 1
   player.SCAOnActor
   player.addSpell cobMortRecoveryAB
   set repeated to repeated + 1
   set timer to -2.0
   set state to 10
   return
 
elseif timer < 0 && state < 30
   set timer to timer + getSecondsPassed
   return
 
;--Signal handler to step in
elseif state == 10
   player.SCAOnActor
   set state to 20
   set timer to -10
 
;--Handler failed to step in
elseif state == 20
   ;message "cobMortQS: Default Handler"
   if rFakeDeath != 0 && rRealDeath != 0
      ;--Deregister fake death and give real death a shot.
      set rFakeDeath to 0
      set timer to -10
   else
      ;--Deregister both and cleanup (player gets freebie)
      set rFakeDeath to 0
      set rRealDeath to 0
      set state to 30
   endif
 
;--Cleanup
else ; state == 60
   ;message "cobMortQS: Cleanup"
   player.setGhost 0
   player.SCAOnActor
   player.removeSpell cobMortRecoveryAB
   enablePlayerControls
   set timer to 0
   set state to 0
 
endif
 

end ;--gameMode

 

 

And now I'm lost again...

I think I'm supposed to set something...

Perhaps RealDeath Level to 30?

But what's all this talk about tokens and items, timers and handlers?

 

And I get the feeling that every time some process may change the "handler" It could send this immortality to the toilet in benefit of a new "handler"

That's assuming I ever get past this and manage to make it work

 

This is why I hate fucking scripts

 

Well... It's not like I plan on dying often. But perhaps I got a better chance just setting player to essential and ignoring the camera problem... It says saving and reloading fixes it anyways...

Posted

 

If you just want to make yourself immortal, least-dependent mod I know of is Sleepypanda's Death Denied. It's available on the Nexus.

Not good enough. Comes at a cost.

 

If you define "Casting a spell once" as "A cost" then yes, it does. Otherwise, it's absolutely free.

However, unless you want to rely on COBL it's the best you'll get, unless there's a mod out there I missed.

 

Read the v0.6 version notes:

v0.6 edit: Yeah, okay, I put up a new esp for download. It gives you a spell - Immortals Health - that adds 25% base health, effectively making this mod free.

Note, however, that your health bar will no longer be accurate.

 

Posted

I wanted something that didn't mess up the game.. in ANY way

-Wrye Shivering Death says there could be quest issues if you "die" in a place where you can't go back to

-Death Denied has probably the same issue as it also teleports the player. Plus it first messes with your health and then if you use that spell your health bar is no longer accurate according to that. That means something "broke up"

Posted

I've been using Wrye Shivering Death for quite some time now, with no issues. I haven't yet died in any place I couldn't get back to mind, but if that did happen, you'd just be forced to go back to you last, good save.

 

Wrye's usual attention to detail.

Posted

I don't know why I even bother trying to help you...

 

I wanted something that didn't mess up the game.. in ANY way

-Death Denied has probably the same issue as it also teleports the player. Plus it first messes with your health and then if you use that spell your health bar is no longer accurate according to that. That means something "broke up"

 

No, it does not teleport the player, let me provide the exact quote for you (since you obviously did NOT read the freaking mod page):

 

 

v0.7 edit: At a request, I've uploaded a new version that merely knocks the player character down for five seconds before bringing him\her up at full hit points.

 

Yes, it messes with the health bar, but if I recall correctly you know quite a bit about textures, and taking a couple minutes to create a texture that reflects the inaccuracy is something I believe would be trivial for you (for example, have 20% of the bar be a different color).

If it isn't, you can try asking Sleepypanda. He's updated his mod twice now on request, I'm pretty sure he'd do it again if you asked.

 

 

If you don't want the mod, it's obviously your call, but please - do me a favor? When someone suggests a mod with about half a page's worth of text in an attempt to help you, at least look at the mod before making any false claims. I don't care whether you use the mod or not, but I do care if you say I'm wrong when I'm not.

Posted

I don't know why I even bother trying to help you...

 

I wanted something that didn't mess up the game.. in ANY way

-Death Denied has probably the same issue as it also teleports the player. Plus it first messes with your health and then if you use that spell your health bar is no longer accurate according to that. That means something "broke up"

 

No, it does not teleport the player, let me provide the exact quote for you (since you obviously did NOT read the freaking mod page):

 

 

v0.7 edit: At a request, I've uploaded a new version that merely knocks the player character down for five seconds before bringing him\her up at full hit points.

 

Yes, it messes with the health bar, but if I recall correctly you know quite a bit about textures, and taking a couple minutes to create a texture that reflects the inaccuracy is something I believe would be trivial for you (for example, have 20% of the bar be a different color).

If it isn't, you can try asking Sleepypanda. He's updated his mod twice now on request, I'm pretty sure he'd do it again if you asked.

 

If you don't want the mod, it's obviously your call, but please - do me a favor? When someone suggests a mod with about half a page's worth of text in an attempt to help you, at least look at the mod before making any false claims. I don't care whether you use the mod or not, but I do care when you say I'm wrong when I'm not.

 

Eaasayy there m8

 

  1. If you're really trying to help, you should have a bit more patience... explain your points and not expect me to just accept your word as holy just because you said it. Sometimes, one may try to help with the best intentions, but perhaps the other person is looking for something else. For example... for roleplaying purposes I would have preferred that this mod activated in the game only after finishing SI or at least when you decided to... but I guess it's fine anyways.
  2. I (and I believe other people too) am fond of being convinced though arguments not orders, as it seemed you just wanted to "give me a freaking mod" and get it over with
  3. My turn: I'll admit I didn't read the whole thing. I often skip the updates part since it rarely says anything useful... except for this case. In most cases it's about bug fixes and stuff I don't care since the latest version is supposed to be the best. My mistake.
  4. Attitude, man... either you help in good will with patience or you don't help at all. You make real suggestions, you don't command decisions, you don't call the person you're trying to help, a liar or an idiot (not even subjectively... unless there is really no further point in it in which case you just walk away) And you swallow your pride since everyone can be wrong once in a while. This time, it was me.
  5. Despite your rustled jimmies, I'm gonna give you a like and a big thank you (to symon too) as if this last version really knocks down the player with no further issues, then it's really over I guess.

 

Peace

Posted

 

Eaasayy there m8

 

  1. If you're really trying to help, you should have a bit more patience... explain your points and not expect me to just accept your word as holy just because you said it. Sometimes, one may try to help with the best intentions, but perhaps the other person is looking for something else. For example... for roleplaying purposes I would have preferred that this mod activated in the game only after finishing SI or at least when you decided to... but I guess it's fine anyways.
  2. I (and I believe other people too) am fond of being convinced though arguments not orders, as it seemed you just wanted to "give me a freaking mod" and get it over with
  3. My turn: I'll admit I didn't read the whole thing. I often skip the updates part since it rarely says anything useful... except for this case. In most cases it's about bug fixes and stuff I don't care since the latest version is supposed to be the best. My mistake.
  4. Attitude, man... either you help in good will with patience or you don't help at all. You make real suggestions, you don't command decisions, you don't call the person you're trying to help, a liar or an idiot (not even subjectively... unless there is really no further point in it in which case you just walk away) And you swallow your pride since everyone can be wrong once in a while. This time, it was me.
  5. Despite your rustled jimmies, I'm gonna give you a like and a big thank you (to symon too) as if this last version really knocks down the player with no further issues, then it's really over I guess.

 

Peace

 

 

1. Nobody expects you to "take my words as holy". Just read the mod page. If you decide afterwards you don't want the mod, simply saying "I don't want this mod" is enough. But spreading false information is wrong regardless of what your reason is.

 

2. I didn't order you. I suggested a mod, you didn't look at it and complained about something. I provided a counter-argument. You still didn't look at it before providing a second complaint. I provided a counter-argument again.

None of that would have been necessary if you looked at the mod. That, for me, is frustrating.

 

3. Considering I took my previous counter-argument out of the version changes, reading them seems to me like the logical thing to do on the off-chance they contain the counter-argument to your next complaint.

 

4. You made two different complaints when reading would have shown you they were false. I'm not sure what the dictionary definition of "spreading misinformation" but I am more than willing to look it up if you want.

I didn't call you an idiot; I simply pointed out - perhaps a bit too aggressively - that you did not read the mod page, and that it was getting annoying the second time around.

 

5. Don't forget to endorse Sleepypanda's mod, if you like it. It's his scripting, after all.

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...