Jump to content

z4x

Premium Member
  • Posts

    81
  • Joined

  • Last visited

Posts posted by z4x

  1. How would you do it guys?

     

    Im trying to add spell effect that prevents any armor from being equipped on certain slot.

     

    akActor.UnequipItemSlot(32) - doesnt prevent re-equipping

     

    akActor.equipitem(Armor, true, true) - it could work but needs some other armor, which I dont have.

     

    I've been thinking of some invisible armor without actual model that could fill that role, but not even sure how to do it? Do I just leave mesh field empty?

     

     

    Or is there some better method?

  2. SCRIPT A:
    
     
    .....
    
    scriptB.RegisterForSingleUpdate(0)    ; calls for a new thread to be run on script B and immediately continues running code in script A
    
    .......
    

    Btw finally I found use for it, and it doesnt work. Can RegisterForSingleUpdate() really be called from one script to another?

     

    I do ScriptB.RegisterForSingleUpdate(0) and i get compilator error:

     

    Cannot call the member function RegisterForSingleUpdate alone or on a type, must call it on variable

     

    I'm not extending these scripts with each other tho. What Im doing wrong?

  3. Then how would you do it? I'm really new to scripting

     

    ActorBase Property BASE1  Auto
    
    EVENT OnEffectStart(Actor akTarget, Actor akCaster)
      
    (I want to read akTarget's "ActorBase" and save it as BASE1 property value)
    
    ENDEVENT
    

    Then I would like my whole script to work on that saved ActorBase BASE1 value.

     

    As I mentioned above, for example in other functions I would like to use that stored BASE1 value instead of default "akActor":

     

    BASE1.GetActorBase().GetName()

     

    instead of:

     

    akActor.GetActorBase().GetName()

     

    How would you do it?

  4. So Im curious if its possible to read its information after it was definied earlier.

     

    Firstly I do:

    ActorBase Property BASE1  Auto
    
    EVENT OnEffectStart(Actor akTarget, Actor akCaster)
    
       ActorBase BASE1 = akTarget.GetActorBase()
    (now im somehow supposed to save result as BASE1?)
    
    ENDEVENT
    

    Then I marked Actor with this "effect" I would like to be able to call it by name now.

     

    Function Name()
    
    String Name = BASE1.GetActorBase().GetName()
    
    Endfunction
    

     

    or .GetRace() or even more advanced things like:

     

    NetImmerse.GetNodeScale(Actor name, NINODE_NAME,true)

     

    Basically how can I store ActorBase in script to be able to read it later? Could someone explain? Im totally lost >.> and probably messed up everything again

     

     

  5. ScriptName StatesExample extends ObjectReference
    
    Auto State Inactive
    	Function Toggle()
    		GoToState("Active")
    	EndFunction
    EndState
    
    State Active
    	Function Toggle()
    		GoToState("Inactive")
    	EndFunction
    EndState
    
    Function Toggle()
    	; Empty function definition to allow Toggle to be defined inside states. More on this soon...
    EndFunction
    
    Event OnActivate(ObjectReference akActionRef)
    	Toggle()
    EndEvent
    

     

    Its something like that, but with 3rd state: Active2

     

    OnEquipped activates (or at least should be) Active1 state

    OnUnEquipped disactivates Active1 state

     

    OnActivate activates Active2 state on first activate (first click on lets say Barrel, in game), then disactivate Active2 state (on second click) and goes back to Inactive state.

     

    It just doesnt compile, i get some major compiler error, about accessing script, that doesnt show which lines are wrong.

  6. Hmm thats interesting too, but still I have no idea how to make one script decrease and second script increase same value InRealTime.

     

    I have used OnUpdate in 1st script and its decreasing global variable from that script.

     

    Then I use While Loop for .isEquipped() specific item + Utility Wait to delay it a bit in second script.

     

    But i really hate that solution.

  7.  

    Script is attached to the armor object, I'm assuming.

     

    Yeah.

     

     

    The only thing that really stands out to me is that your while loop

    depends on both the armor being equipped and CountVal already being

    greater than 3.

     

    I wanted sound to play when armor is equipped even if CountVal doesnt match. And play sound + 2nd effect while both are TRUE.

     

     

    Maybe try: Debug.Notification("TEST3. CountVal is: " +

    CountVal)

     

    Tried this, and it shows correct CountVal from other script/game.

     

    Any other ideas what could be wrong?

  8. 
    
    Scriptname TEST extends ObjectReference
    
    Actor Property PC Auto
    Armor Property Armor1 Auto
    Potion Property Potion1  Auto 
    Sound Property Sound1 Auto
    
    GlobalVariable Property Count1 Auto
    
    Event OnEquipped(Actor akActor)
    	Utility.Wait(1.0)
    	
        If (akActor == Game.GetPlayer())
            Function1(akActor)
    		Debug.notification("TEST1")
        EndIf
    EndEvent
    
    Event OnUnequipped(Actor akActor)
        If (akActor == Game.GetPlayer())
            Debug.notification("TEST2")
        EndIf
    EndEvent
    
    
    Function Function1(Actor akActor)
    	ActorBase Wearer = akActor.GetBaseObject() as ActorBase
    	Int CountVal = Count1.GetValue() as Int  					;reads global Count1 from game?
    		Debug.notification("TEST3|)			
    	if (akActor.isEquipped(Armor1))							;checks if armor equipped then plays sound
    		int instanceID = Sound1.Play(akActor)						
    		while (akActor.isEquipped(Armor1)) && (CountVal > 3)			;checks if global count > 3
    			akActor.AddItem(Potion1, 1)								
    			CountVal = CountVal - 1						;decreases count by one
    			Count1.setValue(CountVal)					;sets changed count as global IN GAME count
    			Debug.notification("TEST4")					
    		endwhile
    		Sound.StopInstance(instanceID)
    		Debug.notification("TEST5")						
    	endif
    EndFunction
    

     

    Count1 global value is set by another script and in CK as global so its hold by game.

     

    Its supposed to play sound (all the time) while equipping armor as well as spawning items/potions (till count >3)

     

    Its compiling fine, but in game it goes till TEST3 debug message (showing correctly the number from other script), then its stuck.

     

    Thanks in adavance!

  9. Its not mouse problem for sure, because I do attack after each click, just animation isnt displayed.

     

    Found vid of some guy having similar problem, but with enemies -

     

    Enemy is attacking him several times without using animation at all.

     

    He says its 1,8 bug, but I dont believe since else everyone would be screaming around.

     

    More ideas?

  10. I need to click mouse button like 4-5 times before actually seeing an attack animation. In reality my character is all the time attacking, I can hear his groans and I do damage, but simply attack animation isnt displayed.

     

    I heard some people having similar problems. I'm using some animation replacers and skeleton replacer mods, but I've always used them and everything was fine when I was playing Skyrim last time like year ago.

     

    Could it be newer patches issue? or mods? animations, behaviour files? I'm using FNIS but clicking it regularly.

     

    Any tips are welcome.

  11. You need to post link to that poll in comments thread of AGHGEC, because none will find it here. I found it by clicking at your profile, wouldnt do so otherwise... Awesome body btw, would love to see Diano armor rezised to fit that, haha.

     

    [edit] dumb me, voted for D, while im using B. B is perfect, no clipping between "them" and nipples are not enormous that much. My fav definitely.

×
×
  • Create New...