Jump to content

useful community scripts to start mods with


Guest Donkey

Recommended Posts

I am hoping that someone can point me to an example of a script to change an npc's movement animations' date=' specifically from default walking animations to a different set of animations temporarily.

 

Thanx in advance

[/quote']

 

Ignore this I figured it out on my own thanks anyway!

 

Umm can U post the method U used thanx

 

Link to comment

@mastercchris

 

Not sure how BisquitsNgravy did it, but you can do the same by using the OBSE command "ToggleSpecialAnim". In your first post, you said that you wanted to enchant an item with something that would do that. It's possible to do it through enchantment, but I think it would be a lot easier to just use tokens, so that's what this script is for:

 

scn examplescript

ref actor

Begin OnAdd

set actor to GetContainer
actor.ToggleSpecialAnim "YourAnimFile.kf" 1
actor.Update3D

End

Begin OnDrop

actor.ToggleSpecialAnim "YourAnimFile.kf" 0
actor.Update3D

End

 

Your animation file needs to be in the special animations folder.

 

 

@Slammer64

 

Galgat's examples work just fine, but they seem a little complicated for what you want done. You could do what you wanted by just using this:

 

scn examplescript

ref actor
short count

Begin OnAdd

set actor to GetContainer

set count to actor.GetItemCount YourItem1
actor.RemoveItemNS YourItem1 count

set count to actor.GetItemCount YourItem2
actor.RemoveItemNS YourItem2 count

;etc.

End

 

 

@arelim

 

Correct, you have to use some type of loop in order to do this. Example script for a spell:

 

scn examplescript

ref actor
ref item

Begin ScriptEffectStart

let actor := GetSelf

ForEach (item <- actor)
	if (item.IsPlayable2 == 0)
		item.RemoveMeIR
	endif
loop

End

 

Not sure if that would work if you happen to have more than one for some of the unplayable items. I don't know if it will work, but you might have to change it to this:

 

scn examplescript

ref actor
ref item
short count

Begin ScriptEffectStart

let actor := GetSelf

ForEach (item <- actor)
	if (item.IsPlayable2 == 0)
		let count := actor.GetItemCount item
		actor.RemoveItemNS item count
	endif
loop

End

Link to comment

Been doing some major script translation for rev 91. And this script was bit strange.

 

scn xLoversMainScriptStepWaitReady

;This script to allow wait function between various scripts. Makes sure wait is ready.
;Step1:

array_var ar
float passed

ref xme
ref zme
ref offence
ref defence

float f0

Begin Function { ar passed }

;Added by Rev60 blockDelay ‚has been added
;This makes sure you can't keep pressing block after an another.
;Even if you do, it would not make a difference.
if eval( ar["blockDelay"] > 0 )
	let ar["blockDelay"] -= passed
	return
endif


;Begins by declaring defender(zme) and attacker(xme) within an array 
let xme := ar["xme"]
let zme := ar["zme"]
let offence := ar["offence"]
let defence := ar["defence"]

;printC "xLoversMainScriptStepWaitReady: %n to %n" offence defence


;Added by Rev63 KnockedState ‚if defender or offender side is concerned.
if xme.GetKnockedState || zme.GetKnockedState
	if eval( ar["bpl"] )
		Message "’Offender or defender is currently in knocked state"
	endif
	let ar["xLoveStep"] := 4	;Lets array jump to step 4
	return
endif


;Added by Rev60 Check if both offender and defender is not in knocked state
;	if xme.GetKnockedState == 0
	set f0 to xme.GetAngle Z + xme.GetHeadingAngle zme
	xme.SetAngle Z f0
;	endif
;	if zme.GetKnockedState == 0
;		set f0 to zme.GetAngle Z + zme.GetHeadingAngle xme
;		zme.SetAngle Z f0
;	endif


;Added by Rev60 Calls the scrip and either set it to offender or defender
if Call xLoversPkrIsEquipFuncTarget xme
	return	;BLOCK
endif
if Call xLoversPkrIsEquipFuncTarget zme
	return	;BLOCK
endif


;Check delay and if time is passed
;Added by Rev60 
if eval(ar["checkDelay"] > 0)
	let ar["checkDelay"] -= passed
	if xme.GetKnockedState==0 && zme.GetKnockedState==0 && xme.IsOnGround && zme.IsOnGround	;; && xme.AnimPathIncludes "getupface"==0 && zme.AnimPathIncludes "getupface"==0
		let ar["checkDelay"] := 0	;END
	else
		return	;BLOCK
	endif
endif


;Advance to next step
;Jump to next script
let ar["xLoveStep"] += 1

End

 

Especially this part:

 

;Added by Rev60 Check if both offender and defender is not in knocked state

; if xme.GetKnockedState == 0

set f0 to xme.GetAngle Z + xme.GetHeadingAngle zme

xme.SetAngle Z f0

; endif

; if zme.GetKnockedState == 0

; set f0 to zme.GetAngle Z + zme.GetHeadingAngle xme

; zme.SetAngle Z f0

; endif

 

 

Could this be bug who slipped in ?? Should it not look like this instead ??

 

;Added by Rev60 Check if both offender and defender is not in knocked state

; if xme.GetKnockedState == 0

; set f0 to xme.GetAngle Z + xme.GetHeadingAngle zme

; xme.SetAngle Z f0

; endif

; if zme.GetKnockedState == 0

; set f0 to zme.GetAngle Z + zme.GetHeadingAngle xme

; zme.SetAngle Z f0

; endif

 

 

If this is the case that could be why some where reporting about knocked states keep appearing.

Link to comment

@mastercchris

 

Not sure how BisquitsNgravy did it' date=' but you can do the same by using the OBSE command "ToggleSpecialAnim". In your first post, you said that you wanted to enchant an item with something that would do that. It's possible to do it through enchantment, but I think it would be a lot easier to just use tokens, so that's what this script is for:

 

 

[/quote']

 

 

Sorry it took me awhile to get back to this. I did mine through a scripted spell, actually two spells:

 

You won't want to use this as is because of the removeallitems statement.

 

scriptname a00BisSlaveBound

short updateCount
short Bound

Begin ScriptEffectStart
removeallitems
set Bound to 1
	SetRestrained 1
		ToggleSpecialAnim "BisWalkBackward.kf" 1
		ToggleSpecialAnim "BisWalk.kf" 1
		ToggleSpecialAnim "BisIdle.kf" 1
		ToggleSpecialAnim "BisFastForward.kf" 1
		ToggleSpecialAnim "BisTurnLeft.kf" 1
		ToggleSpecialAnim "BisTurnRight.kf" 1
	Update3D
	SetRestrained 0
End


Begin ScriptEffectUpdate
 set updateCount to updateCount + 1
End

 

 

 

 

 

scriptname a00BisSlaveUnBound

short updateCount
short Bound

Begin ScriptEffectStart
set Bound to 1
	SetRestrained 1
		ToggleSpecialAnim "BisWalkBackward.kf" 0
		ToggleSpecialAnim "BisWalk.kf" 0
		ToggleSpecialAnim "BisIdle.kf" 0
		ToggleSpecialAnim "BisFastForward.kf" 0
		ToggleSpecialAnim "BisTurnLeft.kf" 0
		ToggleSpecialAnim "BisTurnRight.kf" 0
	Update3D
	SetRestrained 0
End


Begin ScriptEffectUpdate
 set updateCount to updateCount + 1
End

 

 

Hope this helps someone. Oh and BTW nice to see you here again Donkey!

 

Link to comment

Here is an example of the same spell as my last post except this one is timed and is a self spell. I know there are probably better ways to do this but I am learning kind of in a vacuum but I am slowly picking it up.

 

 

scriptname a00Bisonallfours

ref mySelf
ref EquippedItemr
short updateCount
short dropToFloor

Begin ScriptEffectStart
set EquippedItemr to GetEquippedObject 13
UnEquipItemNS EquippedItemr
set EquippedItemr to GetEquippedObject 16
UnEquipItemNS EquippedItemr
set EquippedItemr to GetEquippedObject 20
UnEquipItemNS EquippedItemr
set EquippedItemr to GetEquippedObject 18
UnEquipItemNS EquippedItemr
set EquippedItemr to GetEquippedObject 19
UnEquipItemNS EquippedItemr
set EquippedItemr to GetEquippedObject 21
UnEquipItemNS EquippedItemr
set EquippedItemr to GetEquippedObject 2
UnEquipItemNS EquippedItemr
set EquippedItemr to GetEquippedObject 3
UnEquipItemNS EquippedItemr
set EquippedItemr to GetEquippedObject 4
UnEquipItemNS EquippedItemr
set EquippedItemr to GetEquippedObject 5
UnEquipItemNS EquippedItemr
set dropToFloor to 1
mySelf.SetRestrained 1
mySelf.ToggleSpecialAnim Bisbackward.kf 1
mySelf.ToggleSpecialAnim Bisforward.kf 1
mySelf.ToggleSpecialAnim Bisidle.kf 1
mySelf.ToggleSpecialAnim Bisleft.kf 1
mySelf.ToggleSpecialAnim Bisright.kf 1
mySelf.ToggleSpecialAnim Bisturnleft.kf 1
mySelf.ToggleSpecialAnim Bisturnright.kf 1
mySelf.Update3D
mySelf.SetRestrained 0
End


Begin ScriptEffectUpdate
set updateCount to updateCount + 1
End

Begin ScriptEffectFinish
set dropToFloor to 1
mySelf.SetRestrained 1
mySelf.ToggleSpecialAnim Bisbackward.kf 0
mySelf.ToggleSpecialAnim Bisforward.kf 0
mySelf.ToggleSpecialAnim Bisidle.kf 0
mySelf.ToggleSpecialAnim Bisleft.kf 0
mySelf.ToggleSpecialAnim Bisright.kf 0
mySelf.ToggleSpecialAnim Bisturnleft.kf 0
mySelf.ToggleSpecialAnim Bisturnright.kf 0
mySelf.Update3D
mySelf.SetRestrained 0
Message "Spell is finished. ScriptEffectUpdate was run %.0f times", updateCount
End[/Code]

Link to comment

@Donkey

 

That part of the code only makes it so that the attacker (xme) will keep facing the defender (zme).

 

The only part of the script which deals with the messages is when either the attacker or defender is knocked down/out, and then it ups ar["xLoveStep"] to 4. After which, I assume that the function is no longer called so the message does not repeat itself.

Link to comment

Thanx to fg109 and BisquitsNgravy

 

Will work on These tonite and let u guys know the progress ,

Will Post the anims too if they are worth it

 

Just wanna give back something to the community for creating awesome mods

 

Cheers

 

Edit

 

Tried Out fg109 Method Yea I needed the Equipment in conjunction with the Anims , Somehow its working for the player only not for NPC's Im Posting the Scripts

 

 

scn ZStockTokenScript

 

ref actor

 

Begin OnAdd

 

set actor to GetContainer

actor.ToggleSpecialAnim "StockWalkBackward.kf" 1

actor.ToggleSpecialAnim "StockWalkBackward2.kf" 1

actor.ToggleSpecialAnim "StockWalkForward.kf" 1

actor.ToggleSpecialAnim "StockIdle.kf" 1

actor.ToggleSpecialAnim "StockFastForward.kf" 1

actor.ToggleSpecialAnim "StockTurnLeft.kf" 1

actor.ToggleSpecialAnim "StockTurnRight.kf" 1

actor.Update3D

 

End

 

Begin OnDrop

 

actor.ToggleSpecialAnim "StockWalkBackward.kf" 0

actor.ToggleSpecialAnim "StockWalkBackward2.kf" 0

actor.ToggleSpecialAnim "StockWalkForward.kf" 0

actor.ToggleSpecialAnim "StockIdle.kf" 0

actor.ToggleSpecialAnim "StockFastForward.kf" 0

actor.ToggleSpecialAnim "StockTurnLeft.kf" 0

actor.ToggleSpecialAnim "StockTurnRight.kf" 0

actor.Update3D

 

End

;

; 825

;

 

 

 

Scn ZStockEquipScript

 

ref actor

 

Begin OnEquip

set actor to GetContainer

actor.Additem ZSlaveStockToken 1

End

 

Begin OnUnequip

actor.Removeitem ZSlaveStockToken 1

End

 

;

; 139

;

 

 

 

 

 

 

What Am I doin Wrong ....

Thanx In Advance

Link to comment

After messing around with the scripts from BisquitsNgravy I got what i wanted to some extent

Although I Would Prefer an enchantment

But His Script Seems Like a Great way to test on NPC'S(Since I wanted to see from another perspective)

 

Had a Few CTD's With the spell Effects and Range settings( :P lol At one Point all the Npc's in IC market got the disired effect The game Couldn't handle it I guess)

So I Created the spell , added it to a merchant , Bought it , Cast the spell , Used MCS Follow order . ( Noobish Method I know :P)

 

Im Posting the Script In-case it will come handy for novice modders like myself.....

 

Thanx fg109 & BisquitsNgravy for the help .

 

 

scriptname ZSlaveStocked

 

short updateCount

short Stocked

 

Begin ScriptEffectStart

removeallitems

additem zWoodenStocks 1

equipitem zwoodenstocks

set Stocked to 1

SetRestrained 1

ToggleSpecialAnim "StockWalkBackward.kf" 1

ToggleSpecialAnim "StockWalkBackward2.kf" 1

ToggleSpecialAnim "StockWalkForward.kf" 1

ToggleSpecialAnim "StockIdle.kf" 1

ToggleSpecialAnim "StockFastForward.kf" 1

ToggleSpecialAnim "StockTurnLeft.kf" 1

ToggleSpecialAnim "StockTurnRight.kf" 1

Update3D

SetRestrained 0

End

 

 

 

Begin ScriptEffectUpdate

set updateCount to updateCount + 1

End

 

 

 

 

A lil Tweaking is Remaining , Will Post when Its done .

Link to comment
  • 1 month later...

One thing that interested me the most was how LPK or plugin could allow you to adjust FOV before boinking, allowing one to see your character closer. Vanilla Oblivion resets the cam back to 75 FOV when in 3rd person or flying cam mode, but I'd like to be able to adjust FOV (to say, 35 or 25) in those modes.

 

I'm still going through the scripts to try and figure that out, but if anyone happens to know how I can get this to work as a spell or crystal ball, I'd be happy. :)

 

 

EDIT:

 

I realized I can get this to work with the console command "con_SetINISetting". Nevermind. :P

Link to comment

Hello people. I'm trying to make a kind of patch that resolves all the issues concerning graphic and roleplaying incompatibilities with Kou's Oblivion Trap Mod, that includes small changes to some mods like TrueCrime or LoversAdultPlayPlus.

 

Now I'm suck and I need your help. When a male is having sex, if the setting on Lovers and PK is adjusted to remove his clothes in the lower part of the body, Lovers and PK removes that cloth and changes the mesh from that part to ashardware1.nif (or asbonerhardnormalskin.nif, depending of the settings) so the man shows a boner, no matter if he is the attacker or the defender.

 

What I want to do is to configure Lovers and PK.esp to change this behavior only when the male is the defender, by do not change his Lowerbody.nif, so he can stay nude and with the original part of his body (without the boner). The problem is I can't find the script when this change occurs or is managed.

 

So, someone knows where I can change this? Thank you.

Link to comment
  • 3 weeks later...

I (and perhaps others) could use an example of how to gracefully swap information between separate .esp's. In particular, I'm looking for a way for .esp #1 to use a variable defined in .esp #2 if #2 is present, but not to choke and die if #2 is absent (and thus the variable is undefined).

 

Of course, the obvious places I've started are with IsModLoaded and GetFormFromMod, but I'm still stuck. Even though it's in a loop that'll never execute if .esp #2 isn't loaded (conditional on IsModLoaded), the CS Editor gripes if I simply use the variable's EditorID directly without loading up .esp #2 (of course). But if I do the following:

 

if IsModLoaded "esp2.esp"
set refVar to GetFormFromMod "esp2.esp" "004cd4"
;004cd4 above points to a particular float in esp2
endif

 

How can I access the variable? I thought I'd be able to use the refVar directly in operations such as:

set tempfloat to refVar

 

but that fails. In fact I'm changing from a float to an integer, and in the example I'm trying the esp2 variable happens to be a global variable.

 

I can use reference variables, IsModLoaded and GetFormFromMod to access inventory objects or scripts in .esp #2, but not simple variables, consarnit.

Link to comment
  • 2 months later...

Hi guys,

 

I have been looking all over but I cannot figure out how to award sex experience for any given action. For instance, the player finds a sexually oriented object out of 100 for use in a quest and you want to award that player experience for just finding the object. I'm not a scripter by any stretch of the imagination but I have a pretty big non-Lovers mod that I am converting to interface with Lovers

 

Thanks,

Wulf

Link to comment

Hi everyone!

 

Could someone give me a hint how to create an easy (if possible) script to attract a crowd to the player?

 

I actually would like to work it as follows:

 

- Player gets the quest item (let it be zzCrowdAttract, for example)

- If the player has this item in his inventory, each NPC in radius of 200 meters that spots the player starts to follow him.

- If the player removes the item from inventory, the whole crowd returns to their usual day-to-day business.

 

I know, such mods as Estrus and ChainBeasts do it in some way, but I tried to read their scripts and they look to me as if they were written in Chinese )

 

Thanks in advance!

Link to comment
  • 3 weeks later...

Well not really for me' date=' but someone starting out modding will mostly needs script witch could be way over his or her head. This will mostly be basic. To get you starting out.

 

If you look at the lovers structure, they make use of heavy scripting already. So if you want to creating anything funny for a lovers plug-in not only do you need scripts, but also understanding how they function in-game.

[/quote']

 

As I new user, I gotta say the idea of the thread is good, the main problem Im experincing is most threads give very little information on the mod (albiet, the filename is usually of use in guessing)

Link to comment
  • 3 weeks later...

Well I am back at it again! I am trying to modify a script to do an check for whether or not an item is equipped. I the the item is equipped then I want the item check to fail it it isn't then I want it to pass I am not using any specific item just any item equipped in the right ring slot.

 

It should be said that this script is not mine and I am modifying it for personal use.

 

In any case the idea is I want to use the right ring slot as a check like the normal checks Lovers does with running, swimming, and combat. If anything is equipped there then I want the script to not advance any further until that slot is empty.

 

I hope this makes sense below is the script I am modifying. Any help would be awesome. The part in Italics is my feeble attempt at this.

 

 

 

 

scn xLHookerMain

 

ref lhNearbyActor

ref lhGoldItem

ref lhPreviousJohn

ref tmpr2

ref EquippedItemr

;short localactivated = 0

short lhtempvariable

float lhTempDiceroll

short lhTempYes

short lhApproachChance

short lhTempDisposition

short lhDoneBefore

 

 

begin GameMode

 

;Print "Activated is " + ToString LHC002.lhActivated

if LHC002.lhActivated == 1

RETURN

endif

 

set EquippedItemr to tmpr2.GetEquippedObject 6

if EquippedItemr != 1

RETURN

endif

 

if Player.IsRunning == 1

RETURN

endif

 

if Player.IsSneaking == 1

RETURN

endif

 

if Player.IsInCombat == 1

RETURN

endif

 

if Player.IsSwimming == 1

RETURN

endif

 

if Player.IsRidingHorse == 1

RETURN

endif

 

if IsPlayerInJail

RETURN

endif

 

set lhNearbyActor to GetFirstRef 69 0 0

set lhGoldItem to Gold001

set lhtempvariable to lhNearbyActor.GetItemCount lhGoldItem

 

 

while (lhNearbyActor) && LHC002.lhActivated == 0

 

;Print "Checking " + ToString lhNearbyActor

if lhNearbyActor.GetDistance Player < 200

 

if lhtempvariable > 10

 

set lhDoneBefore to 0

if lhNearbyActor == lhPreviousJohn

set lhDoneBefore to 1

endif

 

if lhDoneBefore == 0

set lhApproachChance to 0

set lhTempDiceroll to GetRandomPercent

;Print "Actor chance is " + ToString lhTempDiceroll

 

set lhApproachChance to lhApproachChance + LHC002.lhCourtesanRank

 

set lhTempDisposition to lhNearbyActor.GetDisposition Player

set lhApproachChance to lhApproachChance + (lhTempDisposition / 2)

 

if lhNearbyActor.GetIsSex Male

set lhApproachChance to lhApproachChance + LHC002.lhMaleChance

endif

 

if lhNearbyActor.GetIsSex Female

set lhApproachChance to lhApproachChance + LHC002.lhFemaleChance

endif

 

if lhNearbyActor.IsGuard == 1

set lhApproachChance to lhApproachChance - LHC002.lhGuardChance

endif

 

;Call xLHookerDetect

 

if lhApproachChance > lhTempDiceRoll

set LHC002.lhCurrentJohn to lhNearbyActor

set LHC002.lhJohnMood to GetRandomPercent

;Print "Hooker approach from: " + ToString lhNearbyActor

Message "Someone looks interested in you..."

set LHC002.lhActivated to 1

set LHC002.lhcooldown to 50

set lhPreviousJohn to lhNearbyActor

lhNearbyActor.StartConversation Player LHCApproach3

endif

endif

endif

endif

 

if LHC002.lhActivated == 0

set lhNearbyActor to GetNextRef

set lhtempvariable to lhNearbyActor.GetItemCount lhGoldItem

endif

loop

end

 

 

 

Link to comment

I think looking at this script may give you idea's I have sense changed it some, but the basic Idea you want is here. This was what I had in my Library text doc, i try to keep scripts there as I make them and they work. this script was for a toilet to remove the lower body slot of clothing as the character sit's down., and put it back on when they get up.

 

SCN AAAGBMPissPotScript

;Galgats Potty script

ref Panties
begIN ONACTIVATE player
if player.GetSitting != 3
     set panties to player.GetEquippedObject 3 ;OBSE Function GetEquippedObject "3" is lower body
     player.UnequipItem panties 1
     Message"you squat down, on the Piss pot to do your thing"
     activate
elseif player.GetSitting == 3
     Message"Whew ! That feels better, I been holding that a long time."
     player.EquipItem panties
     activate
endif
end

 

This may give you ideas how you can do what you want, I don't know. I have sense streamlined it some so NPC can use it too, but this is the basic script.

 

here are most of the numbers for the different slot's

 

@@NUmbers for different slots using GetEquippedObject

armor/clothing
0	head
1	hair
2	upper body
3	lower body
4	hand
5	foot
6	right ring
7	left ring
8	amulet
13	shield
14	torch
15	tail
18	lower and upper body
19	lower and upper and foot
20	lower, upper, hand and foot
21	lower, upper, and hand
22 	upper and hand
255	no slot

weapon/ammo
16	weapon
17	ammo


Special return values are used for getting the Equipment Type (Value Type 3) in GetOV, GetCV, GetEOV and GetECV

Special return values
18     both lower and upper body (robes)

Reserved values are currently nonfunctional and/or obsolete.

reserved
 9	(weapon)
10	(back weapon)
11	(side weapon)
12	(quiver) 

Link to comment
  • 1 month later...
Guest Donkey

Does anyone know if in the ini it is possible to use if statements like within scripts ??

 

If so it should be possible to have several alignments going and all you need to do is something like this:

 

;====================================================================
; Donkey Edit
;====================================================================
; sposgroup ... position group number
; 0 = female cowgirl position led to consolidate here, please
; 1 = a back-back on all fours, and standing back
; 2 = face (lying) posture and the position
; 3 = face (standing), standing on one foot, and lunches
; 4 =  non-insertion Blow and Tit (where all the non-insertion system)
; 5 = prelude animaitions
; 6 = rape prelude from the front
; 7 = rape prelude from the back
; 100 = creature 
set xLoversPkrQuest.sposgroup to 7

;================================================
;Rotation and angle settings for different races
If GetisRace == Orc
set xLoversPkrQuest.xymov to 12
set xLoversPkrQuest.xyscale to 0
set xLoversPkrQuest.xaddz to 0
set xLoversPkrQuest.xzscale to 3
set xLoversPkrQuest.zaddz to 67
set xLoversPkrQuest.zzscale to 0

elseif GetIsRace == Imperial
set xLoversPkrQuest.xymov to 102.50
set xLoversPkrQuest.xyscale to 0
set xLoversPkrQuest.xaddz to 50.0
set xLoversPkrQuest.xzscale to 3
set xLoversPkrQuest.zaddz to 67.0
set xLoversPkrQuest.zzscale to 0

;etc..

endif
;Rotation and angle settings Ends
;================================================= 

;====================================================================
; chinupo ... black sea bream Kino Mukai policy recommendations
; -1 = Do not show
; 0 = Horizontal
; 1 = Up
; 2 = Down
set xLoversPkrQuest.chinupo to 0
;====================================================================

;====================================================================
; umid ... Yunikumoshon this motion to identify the ID of the script
; 0 = Disabled (motion unique ID is not used)
; 1-2147483647 = ??Unique ID Motion
; others are using MOD Yunikumoshon is strictly forbidden and duplicate ID
;, "the resting place of all men MOD-related Lover" Right here in the pages found
; own MOD + Yunikumoshon using the information ID and let me describe
; other ID and MOD should be able to avoid collision
;====================================================================
set xLoversPkrQuest.umid to 20111073

;====================================================================
; normal rotation / position on the bed and positive H used to successfully play
; basezangle ... that position many times (Deg) Specify if you ask whether it is a normal rotation rotation
; basefrontback ... specifies whether the position as you slide back and forth how a positive position
;====================================================================
set xLoversPkrQuest.basezangle to 0
set xLoversPkrQuest.basefrontback to 0
set xLoversPkrQuest.xmeRotate180 to 1
;====================================================================
; Donkey Edit end
;====================================================================

Link to comment
  • 1 month later...

Hi folks,

After reading through this thread and learning ALOT ;)

I have a couple of script snips that other new folks to LL might find useful when getting started. I in no way created these scripts. They are just what I typed up and find works after all the great questions and answers here on these boards.

I have them attached to an amulet inside a GameMode block with a timer.

With the first one, your esp will have to inherit the Lovers with PK.esm

 

  set newcount to Player.GetItemCount xLoversPkrCountSex
if newcount > oldcount
; you can decide what skills are important in sexual exercise
   IncrementPlayerSkillUse Illusion 1 1
   IncrementPlayerSkillUse Acrobatics 1 1
   IncrementPlayerSkillUse Athletics 1 1
   set oldcount to newcount
endif

The second one has been successful for me in having a way to set a variable that will show just what is and is not worn and even if a specific piece is worn.

set tacsum to 0
set testob1 to Player.GetEquippedObject 2 ;top
   if(testob1)
       set tacsum to tacsum + 1
   endif
   set testob2 to Player.GetEquippedObject 3 ;bottom
   if(testob2)
       set tacsum to tacsum + 2
   endif
   set testob3 to Player.GetEquippedObject 5 ;shoes
   if(testob3)
       set tacsum to tacsum + 4
   endif
   set testob4 to Player.GetEquippedObject 18 ;robe
   if(testob4)
       set tacsum to tacsum + 8
   endif
   if tacsum == 11 ; it seems to add top, bottom and robe slot when just robe worn.
       set tacsum to 8
   endif
 ; you can use an if check on tacsum now to know just what is worn.
 ; if tacsum is 7 then shoes bottom and top are worn, etc.
 ; Also you can now compare to see if the clothing is a specific one or not.
 ; i.e.
 if tacsum == 1 || tacsum == 3 || tacsum == 5 ;we have a valid testob1 to compare against
     ; do needed comparison code etc.
 endif

 

Thank you LL family,

Mem

Link to comment
  • 4 weeks later...

I wanna make new animations with furniture and other objects like semen, vibrator etc, but i simply can't see the connection between animations, and animated objects. After checking the anim's ini files i've found a suspicious line:

 

set xLoversPkrQuest.umid to 0990000143

 

is anybody know where it leads? And basically, what it is?

Link to comment

Hey LL,

I'm trying to make sense out of LoversStopCombatEx so I can try to fix it/alter it, but I can't find what variables they're using.

 

In this script, they just start using SCEPairs and they reference PKRQuestRef out of nowhere. I've tried googling them, and surprisingly, I get 0 matches. Hopefully, one of you guys can help me out.

 

 

scn xLoversStopCombatExQuestScript

 

float fQuestDelayTime

short doonce

 

array_var arSCEPairs

int max

int idx

ref r0

ref r1

short s0

 

ref PkrQuestRef

 

Begin GameMode

 

if doonce==0 || GetGameLoaded || GetGameRestarted

set fQuestDelayTime to 0.1 ;ŠÄŽ‹ƒTƒCƒNƒ‹

;Ref

set PkrQuestRef to GetFormFromMod "Lovers with PK.esp" 007A7D

if PkrQuestRef == 0

MessageBoxEx "~ Lovers StopCombatEx ~%r%rLovers with PK.esp could not be located, ensure that it is active in your load order."

return

endif

;done

set doonce to 1

endif

 

;”z—ñ‚ª–¢Šm•Û‚È‚çƒXƒLƒbƒv

if arSCEPairs == 0

return

endif

 

;ƒyƒA‚𒲂ׂé

let max := ar_Size arSCEPairs

set idx to max - 2

while( idx >= 0 )

;ƒyƒAŽæ“¾

let r0 := arSCEPairs[ idx + 0 ]

let r1 := arSCEPairs[ idx + 1 ]

;Š®—¹”»’è

if GetSourceModIndex r0==-1 || r0.GetDead || r0.GetDisabled

set s0 to 0 ;END

else

set s0 to 1 ;CONTINUE

if GetVariable "StopCombatLongFlag" PkrQuestRef

;’…ˆßŠ®—¹‚Ü‚Å—LŒø

if r1.GetItemCount xLoversPkrEquipFuncItem == 0

set s0 to 0 ;END

endif

elseif r1.GetItemCount xLoversPkrIdentifier == 0

;‚gŠ®—¹‚Ü‚Å—LŒø

set s0 to 0 ;END

endif

endif

;ÅI”»’è

if s0 == 0

;Š®—¹‚µ‚Ü‚µ‚½

if GetSourceModIndex r0 != -1

r0.SetFactionRank xLoversStopCombatExFaction -1 ;’E‘Þ

endif

if GetSourceModIndex r1 != -1

r1.SetFactionRank xLoversStopCombatExFaction -1 ;’E‘Þ

endif

;”z—ñ‚©‚çíœ

ar_Erase arSCEPairs (idx+0):(idx+1)

printC "Lovers: StopCombatEX %n ¨ %n Finish" r0 r1

endif

;next

set idx to idx - 2

loop

;”z—ñ‚ª‹ó‚É‚È‚Á‚Ä‚¢‚½‚ç‰ð•ú

if 0 == ar_Size arSCEPairs

let arSCEPairs := ar_Null

printC "Lovers: StopCombatEx No Remains"

endif

 

End

 

 

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