Jump to content

[Wip/Research] - ZaZ-Spells and a pillory to use - ModderSource


Recommended Posts

Moin....

 

played a little bit with ZaZ animations in the CK...

made a plugin(for zaz animation pack 05.1)

 

Spells: Get the spellbooks via Console "help zaz:"

Test it......

Do not forget the "Free Girl" spell to end the Animations(Girls walking with pillorys etc. .....).

 

I added a pillory in the back yard of the whiterun smith shop..... say to your (female) follower to sit there :)....

(i changed the pillory with nifscope into a... say chair with branche for a common chair... ;) - you find it in the meshes folder.... if you load the  plugin in the CK and looking for details you will find them)<- first time using nifscope.....

 

the follower will do the  "sit animation", then via script the ZaZ-pillory animation(the placed pillory will disappear, ZaZ-AnimPillory will appear) ... after 30 sec the animation ends and the static pillory will appear again for further use....

i think one can make all the pillorys, wheels etc. into a chair or similar  interactive object ....(will try it tomorrow)..

 

it may simplify things if i had have the pillory animation without pillorys... but om the other side ... maybe it would more complicated to get the actors in the right position.....

 

my plugin is a proof of concept... so it is free to use and alter.... decorate your homes....

 

o3ZaZanimspells-v002.zip

 

thanks to

 

masterchriss and xaz for the animation framework, ag12 for his inspiration (inspecting slaves...you know... ), Fores for his work etc....

(edit) and thanks to Andragon - Underground Bathhouse(dark area) - for inspiration...

 

Moin

Oli

 

P.s.: i am german... so do not complain about my english... especially after i drunk one and a halve bottle of wine(best thing for coding)

 

a link is a link is alink: http://www.loverslab.com/topic/17062-zaz-animation-pack/page-35?do=findComment&comment=390948

 

 

 

post-70730-0-92408100-1368313809_thumb.jpg

post-70730-0-36430100-1368313828_thumb.jpg

post-70730-0-74323000-1368313873_thumb.jpg

post-70730-0-12374700-1368313889_thumb.jpg

post-70730-0-24919700-1368313910_thumb.jpg

post-70730-0-29528700-1368313926_thumb.jpg

post-70730-0-03634500-1368313942_thumb.jpg

 

 

Link to comment

Is that "sit animation" considered as "isSitting" in game? If not then you could simply put pillory as normal activator, then call specific zazPilloryIdle via script?

 

i just added the branch "furniture" to the pillory....from a standartd chair extracted from teh skyrim meshes bsa(nifscope)

after i confirmed the "normal sitin animation" worked... i added a script to the pillory in whiterun.

i tryed hours  to get the animation script on the activating actor working....

if you read the script, you will see, that i cast an akActivator to an Actor...

 

 

"Actor VictimActor = (akActivator as form) as Actor"......

 

i would be glad if you show me a simpler way to use the pillory as an interactive furniture....

but now i  am a little tired(wine ... you know ;) )..... if you have any code or improvement... just post it and/or alter my mod, so i can learn....

 

MoinMoin

Oli

 

P.s: Maybe someone adds an intro animation(enter pillory/wheel/cage) and exitanimaton()....... hehe.. who knows who that will be...(not me... the piano has been drinkink...the piano has been drinking)...

 

Link to comment
EVENT OnActivate(ObjectReference akActionRef)
	Actor akActor = akActionRef as Actor
        self.Disable()
        akActor.playidle(SomeIdle)
        Utility.wait()
        akActor.(IdleForceDefaultState)
        self.Enable()
ENDEVENT

You can add MoveTo() function somewhere in between, after getting an activators coords with GetPosition functions, so its placed perfectly in same spot. Maybe even GetAngle for rotation.

 

But pillory could be simply placed as world obj activator (with an above script attached) without changing its .nif into furniture, because custom furniture animations doesnt work (yet).

 

Link to comment
Scriptname PilloryActivatorScript extends ObjectReference  

bool akSlaveOnly = true
bool akAllowSelfUnlock = true
float akTimer = 0.0 
float akTimeToEnd = 0.0

bool inuse = false
actor myactor = none

faction Property SlavesFaction Auto

Idle Property ZazAPCAO009  Auto  Hidden

Idle Property zbfIdleForceReset  Auto Hidden 


float property UnlockTimer
{ unlock timer in game days ; no timer if <=0 }
  float Function Get()
    return akTimer 
  EndFunction
  function set(float value)
    akTimer = value
  endFunction
EndProperty

bool property SlaveOnly
{ usable only by members of slavefaction ; default true }
  bool Function Get()
    return akSlaveOnly 
  EndFunction
  function set(bool value)
    akSlaveOnly = value
  endFunction
EndProperty

bool property AllowSelfUnlock
{ Allow the slave to unlock ; default true }
  bool Function Get()
    return akAllowSelfUnlock 
  EndFunction
  function set(bool value)
    akAllowSelfUnlock = value
  endFunction
EndProperty


; timer functions

function startupdating()
  registerforupdate(1)
endfunction

event onupdate()
  if utility.GetCurrentGameTime() > aktimetoend
    unregisterforupdate()
    activate(myactor)
  endif
endevent

; activate main function

Event OnActivate(ObjectReference akActionRef)
  actor akactor = akActionRef as actor
  ; only slaves allowed to use ?
  if akSlaveOnly == true
    if !akactor.isinfaction(SlavesFaction)
      return
    endif
  endif
  
  if inuse == false
   ; Enter activation
    ; setrestrained ig good for NPCs  but it locks camera for the player
    ; use DisablePlayerControls for the player
    if AllowSelfUnlock == false
      if akactor == game.getplayer()
        game.DisablePlayerControls()
      else
        akactor.setrestrained()
      endif
    else
     ; AllowSelfUnlock == true
     ; allow player to activate ( to exit ) and nothing else
      if akactor == game.getplayer()
         game.DisablePlayerControls(abActivate = false)
      endif
    endif
    ; do enter
    inuse = true
    myactor = akactor
    akactor.moveto(self)
    akactor.playidle(ZazAPCAO009)
    
    ; set timer if needed
    if aktimer > 0.0
      aktimetoend = utility.GetCurrentGameTime() + aktimer
      startupdating()
    endif
  else
    ; Exit activation
    ; no need to check if allowed  
    if akactor == game.getplayer()
      game.EnablePlayerControls()
    endif
    ; do exit
    inuse = false
    myactor = none
    aktimetoend = 0.0
    akactor.setrestrained(false)
    akactor.playidle(zbfIdleForceReset)
  endif
endevent

I'm working on a script to use them as activator

This script works with options set in properties 

the anims properties are set in the base object ( here for the pillory but the script works for other objects)

faction, autolocking and timer are set in the reference object

 

I plan to add a second activation stage for the master with synchronized anims for master and slave

Link to comment

thor, or you could put different keywords on different baseobjects then make script check self.HasKeyword then play proper idle

 

This  will only work if you define all baseobjects and associated keyworks in the same  esp/esm file

 

Link to comment

 

thor, or you could put different keywords on different baseobjects then make script check self.HasKeyword then play proper idle

 

This  will only work if you define all baseobjects and associated keyworks in the same  esp/esm file

 

Keywords checking can be done with simple literals and doesn't require them to be defined in the mod or some master mod. It does however require the maker of whatever would carry those keywords to have them in place.
Link to comment
  • 2 weeks later...

:cool: sweet. just one question: is she locked there or she can move around like in the zaz animation pack?

 

She is not locked, but she will not move(script), maybe can pushed around....

i am working on an update so one can lock/unlock actors-

 

Moin

Oli

Link to comment
  • 4 weeks later...

Is there any way to make them stay in the poses even after i leave the cell they are in?

 

yep. if the actor is controlled by a (controll)quest.

i am working on this... but it will take a while, since i am occupied by RL....

 

Moin

Oli

Link to comment

 

Is there any way to make them stay in the poses even after i leave the cell they are in?

 

yep. if the actor is controlled by a (controll)quest.

i am working on this... but it will take a while, since i am occupied by RL....

 

Moin

Oli

 

 

Cool, cant wait :)

Link to comment

 

:cool: sweet. just one question: is she locked there or she can move around like in the zaz animation pack?

 

She is not locked, but she will not move(script), maybe can pushed around....

i am working on an update so one can lock/unlock actors-

 

Moin

Oli

 

 

Hi there, awesome work, jbzorg uses a modifier that reduces de velocity of movement of the NPCs to 0 i say this because when missleeches released the arachnophobia mod it caused a conflict with sanguine´s debauchery and jbezorg released a patch and he said that he used the feature of reduce the movement of the NPC to 0, just saying if it helps in any way, keep the great work! =)

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

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

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use