Guest Shadd Ashborn Posted May 8, 2020 Posted May 8, 2020 Yeah, I got it. Though I still hope that I will manage how to return player role to script and make effects depend on was player def or off. Eh.
Guest Shadd Ashborn Posted May 8, 2020 Posted May 8, 2020 14 minutes ago, fejeena said: set offender and defender Oh, this may be helpful. Seems that I just need to check if those tokens are in player's inventory?
fejeena Posted May 8, 2020 Posted May 8, 2020 You can add in the "ppxLoversPenaltyFunction" script a position check. The off an def position has token in the Lovers with PK esm xLoversOff "Lovers Attacker" [CLOT:0103BFCF] xLoversDef "Lovers Reciever" [CLOT:0103D454] Spoiler scn ppxLoversPenaltyFunction ref me ;short s0 ref spell short LPowerRandom Begin Function { me } if me.GetDead || me.GetDisabled || me != player set me to 0 endif if me.GetItemCount xLoversPkrEquipFuncItem == 0 set LPowerRandom to GetRandomPercent ;;;;;;;;;;;;;;;;;;;;;;;; Hardcore Mode ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; If Player.GetItemCount ppxLoversPenaltyHardcoreToken >= 1 If Player.GetIsSex male == 1 ; Player is male if LPowerRandom < 11 ;10% set spell to ppxLoversPowerSpellFiller1Hm elseif LPowerRandom == 11 ;1% set spell to ppxLoversPowerSpell16Hm elseif LPowerRandom == 12 ;1% set spell to ppxLoversPowerSpell17Hm elseif LPowerRandom >= 13 && LPowerRandom < 15 ;2% set spell to ppxLoversPowerSpell18Hm elseif LPowerRandom >= 15 && LPowerRandom < 17 ;2% set spell to ppxLoversPowerSpell19Hm elseif LPowerRandom >= 17 && LPowerRandom < 19 ;2% set spell to ppxLoversPowerSpell20Hm elseif LPowerRandom == 19 ;1% set spell to ppxLoversPowerSpell21Hm elseif LPowerRandom == 20 ;1% set spell to ppxLoversPowerSpell22Hm elseif LPowerRandom >= 21 && LPowerRandom < 26 ;5% set spell to ppxLoversPowerSpell0Hm ;Example if you do not like this Disease is def position you add elseif LPowerRandom >= 26 && LPowerRandom < 31 If Player.getitemcount xLoversDef >= 1 ; add nothing or add another disease else set spell to ppxLoversPowerSpell1Hm endif elseif LPowerRandom >= 31 && LPowerRandom < 36 set spell to ppxLoversPowerSpell2Hm elseif LPowerRandom >= 36 && LPowerRandom < 41 set spell to ppxLoversPowerSpell3Hm elseif LPowerRandom >= 41 && LPowerRandom < 46 set spell to ppxLoversPowerSpell4Hm elseif LPowerRandom >= 46 && LPowerRandom < 51 set spell to ppxLoversPowerSpell5Hm elseif LPowerRandom >= 51 && LPowerRandom < 56 ;5% set spell to ppxLoversPowerSpell6Hm elseif LPowerRandom >= 56 && LPowerRandom < 59 ;3% set spell to ppxLoversPowerSpell7Hm elseif LPowerRandom >= 59 && LPowerRandom < 62 set spell to ppxLoversPowerSpell8Hm elseif LPowerRandom >= 62 && LPowerRandom < 65 set spell to ppxLoversPowerSpell9Hm elseif LPowerRandom >= 65 && LPowerRandom < 68 ;3 set spell to ppxLoversPowerSpell10Hm elseif LPowerRandom >= 68 && LPowerRandom < 70 ;2% set spell to ppxLoversPowerSpell11Hm elseif LPowerRandom >= 70 && LPowerRandom < 72 ;2% set spell to ppxLoversPowerSpell12Hm elseif LPowerRandom >= 72 && LPowerRandom < 77 ;5% set spell to ppxLoversPowerSpell13Hm elseif LPowerRandom >= 77 && LPowerRandom < 80 ;3% set spell to ppxLoversPowerSpell14Hm elseif LPowerRandom == 80 set spell to ppxLoversPowerSpell15Hm elseif LPowerRandom >= 81 && LPowerRandom < 91 ;10% set spell to ppxLoversPowerSpellFiller3Hm elseif LPowerRandom >= 91 ;10% set spell to ppxLoversPowerSpellFiller4Hm endif endif If Player.GetIsSex female == 1 if LPowerRandom < 11 ;10% set spell to ppxLoversPowerSpellFiller1Hf elseif LPowerRandom == 11 ;1% set spell to ppxLoversPowerSpell16Hf elseif LPowerRandom == 12 ;1% set spell to ppxLoversPowerSpell17Hf elseif LPowerRandom >= 13 && LPowerRandom < 15 ;2% set spell to ppxLoversPowerSpell18Hf elseif LPowerRandom >= 15 && LPowerRandom < 17 ;2% set spell to ppxLoversPowerSpell19Hf elseif LPowerRandom >= 17 && LPowerRandom < 19 ;2% set spell to ppxLoversPowerSpell20Hf elseif LPowerRandom == 19 ;1% set spell to ppxLoversPowerSpell21Hf elseif LPowerRandom == 20 ;1% set spell to ppxLoversPowerSpell22Hf elseif LPowerRandom >= 21 && LPowerRandom < 26 ;5% set spell to ppxLoversPowerSpell0Hf elseif LPowerRandom >= 26 && LPowerRandom < 31 set spell to ppxLoversPowerSpell1Hf elseif LPowerRandom >= 31 && LPowerRandom < 36 set spell to ppxLoversPowerSpell2Hf elseif LPowerRandom >= 36 && LPowerRandom < 41 set spell to ppxLoversPowerSpell3Hf elseif LPowerRandom >= 41 && LPowerRandom < 46 set spell to ppxLoversPowerSpell4Hf elseif LPowerRandom >= 46 && LPowerRandom < 51 set spell to ppxLoversPowerSpell5Hf elseif LPowerRandom >= 51 && LPowerRandom < 56 ;5% set spell to ppxLoversPowerSpell6Hf elseif LPowerRandom >= 56 && LPowerRandom < 59 ;3% set spell to ppxLoversPowerSpell7Hf elseif LPowerRandom >= 59 && LPowerRandom < 62 set spell to ppxLoversPowerSpell8Hf elseif LPowerRandom >= 62 && LPowerRandom < 65 set spell to ppxLoversPowerSpell9Hf elseif LPowerRandom >= 65 && LPowerRandom < 68 ;3 set spell to ppxLoversPowerSpell10Hf elseif LPowerRandom >= 68 && LPowerRandom < 70 ;2% set spell to ppxLoversPowerSpell11Hf elseif LPowerRandom >= 70 && LPowerRandom < 72 ;2% set spell to ppxLoversPowerSpell12Hf elseif LPowerRandom >= 72 && LPowerRandom < 77 ;5% set spell to ppxLoversPowerSpell13Hf elseif LPowerRandom >= 77 && LPowerRandom < 80 ;3% set spell to ppxLoversPowerSpell14Hf elseif LPowerRandom == 80 set spell to ppxLoversPowerSpell15Hf elseif LPowerRandom >= 81 && LPowerRandom < 91 ;10% set spell to ppxLoversPowerSpellFiller3Hf elseif LPowerRandom >= 91 ;10% set spell to ppxLoversPowerSpellFiller4Hf endif endif endif ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Normal Mode ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; If Player.GetItemCount ppxLoversPenaltyHardcoreToken == 0 If Player.GetIsSex male == 1 if LPowerRandom < 11 ;10% ; nothing happens elseif LPowerRandom >= 11 && LPowerRandom < 21 ;10% set spell to ppxLoversPowerSpellFillerN1m elseif LPowerRandom >= 21 && LPowerRandom < 26 ;5% set spell to ppxLoversPowerSpell0m elseif LPowerRandom >= 26 && LPowerRandom < 31 set spell to ppxLoversPowerSpell1m elseif LPowerRandom >= 31 && LPowerRandom < 36 set spell to ppxLoversPowerSpell2m elseif LPowerRandom >= 36 && LPowerRandom < 41 set spell to ppxLoversPowerSpell3m elseif LPowerRandom >= 41 && LPowerRandom < 46 set spell to ppxLoversPowerSpell4m elseif LPowerRandom >= 46 && LPowerRandom < 51 set spell to ppxLoversPowerSpell5m elseif LPowerRandom >= 51 && LPowerRandom < 56 ;5% set spell to ppxLoversPowerSpell6m elseif LPowerRandom >= 56 && LPowerRandom < 59 ;3% set spell to ppxLoversPowerSpell7m elseif LPowerRandom >= 59 && LPowerRandom < 62 set spell to ppxLoversPowerSpell8m elseif LPowerRandom >= 62 && LPowerRandom < 65 set spell to ppxLoversPowerSpell9m elseif LPowerRandom >= 65 && LPowerRandom < 68 ;3 set spell to ppxLoversPowerSpell10m elseif LPowerRandom >= 68 && LPowerRandom < 70 ;2% set spell to ppxLoversPowerSpell11m elseif LPowerRandom >= 70 && LPowerRandom < 72 ;2% set spell to ppxLoversPowerSpell12m elseif LPowerRandom >= 72 && LPowerRandom < 77 ;5% set spell to ppxLoversPowerSpell13m elseif LPowerRandom >= 77 && LPowerRandom < 80 ;3% set spell to ppxLoversPowerSpell14m elseif LPowerRandom == 80 set spell to ppxLoversPowerSpell15m elseif LPowerRandom >= 81 && LPowerRandom < 91 ;10% set spell to ppxLoversPowerSpellFillerN2m elseif LPowerRandom >= 91 ;10% ; nothing happens endif endif If Player.GetIsSex female == 1 if LPowerRandom < 11 ;10% ; nothing happens elseif LPowerRandom >= 11 && LPowerRandom < 21 ;10% set spell to ppxLoversPowerSpellFillerN1f elseif LPowerRandom >= 21 && LPowerRandom < 26 ;5% set spell to ppxLoversPowerSpell0f elseif LPowerRandom >= 26 && LPowerRandom < 31 set spell to ppxLoversPowerSpell1f elseif LPowerRandom >= 31 && LPowerRandom < 36 set spell to ppxLoversPowerSpell2f elseif LPowerRandom >= 36 && LPowerRandom < 41 set spell to ppxLoversPowerSpell3f elseif LPowerRandom >= 41 && LPowerRandom < 46 set spell to ppxLoversPowerSpell4f elseif LPowerRandom >= 46 && LPowerRandom < 51 set spell to ppxLoversPowerSpell5f elseif LPowerRandom >= 51 && LPowerRandom < 56 ;5% set spell to ppxLoversPowerSpell6f elseif LPowerRandom >= 56 && LPowerRandom < 59 ;3% set spell to ppxLoversPowerSpell7f elseif LPowerRandom >= 59 && LPowerRandom < 62 set spell to ppxLoversPowerSpell8f elseif LPowerRandom >= 62 && LPowerRandom < 65 set spell to ppxLoversPowerSpell9f elseif LPowerRandom >= 65 && LPowerRandom < 68 ;3 set spell to ppxLoversPowerSpell10f elseif LPowerRandom >= 68 && LPowerRandom < 70 ;2% set spell to ppxLoversPowerSpell11f elseif LPowerRandom >= 70 && LPowerRandom < 72 ;2% set spell to ppxLoversPowerSpell12f elseif LPowerRandom >= 72 && LPowerRandom < 77 ;5% set spell to ppxLoversPowerSpell13f elseif LPowerRandom >= 77 && LPowerRandom < 80 ;3% set spell to ppxLoversPowerSpell14f elseif LPowerRandom == 80 set spell to ppxLoversPowerSpell15f elseif LPowerRandom >= 81 && LPowerRandom < 91 ;10% set spell to ppxLoversPowerSpellFillerN2f elseif LPowerRandom >= 91 ;10% ; nothing happens endif endif endif ppxLoversPenaltyActivatorRef.MoveTo me ppxLoversPenaltyActivatorRef.Cast spell me ppxLoversPenaltyActivatorRef.MoveTo ppxLoversPenaltyResetMarker set me to 0 endif SetFunctionValue me End ;<CSEBlock> ;<CSECaretPos> 0 </CSECaretPos> ;</CSEBlock>
Guest Shadd Ashborn Posted May 8, 2020 Posted May 8, 2020 Yeah, seems that things are pretty easy with tokens system (forgot about it while Sexout used it long time ago, new versions use strings system that doesnt use any tokens at all, so I naturally began to searc flags in main framework scripts and stuff).
Guest Shadd Ashborn Posted May 8, 2020 Posted May 8, 2020 So... Script doesn't seem to work at all like that. Token presence check for player just always fails (I made debug printC to check it). I have this script: Spoiler scn ppxLoversPenaltyFunction ref me ;short s0 ref spell ref ActorR short LPowerRandom Begin Function { me } Set ActorR to player if me.GetDead || me.GetDisabled || me != player set me to 0 endif if me.GetItemCount xLoversPkrEquipFuncItem == 0 set LPowerRandom to GetRandomPercent ;;;;;;;;;;;;;;;;;;;;;;;; Hardcore Mode ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; If Player.GetItemCount ppxLoversPenaltyHardcoreToken >= 1 If Player.Getitemcount xLoversOff >= 1 if LPowerRandom < 11 ;10% set spell to ppxLoversPowerSpellFiller1Hm elseif LPowerRandom == 11 ;1% set spell to ppxLoversPowerSpell16Hm elseif LPowerRandom == 12 ;1% set spell to ppxLoversPowerSpell17Hm elseif LPowerRandom >= 13 && LPowerRandom < 15 ;2% set spell to ppxLoversPowerSpell18Hm elseif LPowerRandom >= 15 && LPowerRandom < 17 ;2% set spell to ppxLoversPowerSpell19Hm elseif LPowerRandom >= 17 && LPowerRandom < 19 ;2% set spell to ppxLoversPowerSpell20Hm elseif LPowerRandom == 19 ;1% set spell to ppxLoversPowerSpell21Hm elseif LPowerRandom == 20 ;1% set spell to ppxLoversPowerSpell22Hm elseif LPowerRandom >= 21 && LPowerRandom < 26 ;5% set spell to ppxLoversPowerSpell0Hm elseif LPowerRandom >= 26 && LPowerRandom < 31 set spell to ppxLoversPowerSpell1Hm elseif LPowerRandom >= 31 && LPowerRandom < 36 set spell to ppxLoversPowerSpell2Hm elseif LPowerRandom >= 36 && LPowerRandom < 41 set spell to ppxLoversPowerSpell3Hm elseif LPowerRandom >= 41 && LPowerRandom < 46 set spell to ppxLoversPowerSpell4Hm elseif LPowerRandom >= 46 && LPowerRandom < 51 set spell to ppxLoversPowerSpell5Hm elseif LPowerRandom >= 51 && LPowerRandom < 56 ;5% set spell to ppxLoversPowerSpell6Hm elseif LPowerRandom >= 56 && LPowerRandom < 59 ;3% set spell to ppxLoversPowerSpell7Hm elseif LPowerRandom >= 59 && LPowerRandom < 62 set spell to ppxLoversPowerSpell8Hm elseif LPowerRandom >= 62 && LPowerRandom < 65 set spell to ppxLoversPowerSpell9Hm elseif LPowerRandom >= 65 && LPowerRandom < 68 ;3 set spell to ppxLoversPowerSpell10Hm elseif LPowerRandom >= 68 && LPowerRandom < 70 ;2% set spell to ppxLoversPowerSpell11Hm elseif LPowerRandom >= 70 && LPowerRandom < 72 ;2% set spell to ppxLoversPowerSpell12Hm elseif LPowerRandom >= 72 && LPowerRandom < 77 ;5% set spell to ppxLoversPowerSpell13Hm elseif LPowerRandom >= 77 && LPowerRandom < 80 ;3% set spell to ppxLoversPowerSpell14Hm elseif LPowerRandom == 80 set spell to ppxLoversPowerSpell15Hm elseif LPowerRandom >= 81 && LPowerRandom < 91 ;10% set spell to ppxLoversPowerSpellFiller3Hm elseif LPowerRandom >= 91 ;10% set spell to ppxLoversPowerSpellFiller4Hm endif Else printc "screwed up" Endif If Player.Getitemcount xLoversDef >= 1 if LPowerRandom < 11 ;10% set spell to ppxLoversPowerSpellFiller1Hf elseif LPowerRandom == 11 ;1% set spell to ppxLoversPowerSpell16Hf elseif LPowerRandom == 12 ;1% set spell to ppxLoversPowerSpell17Hf elseif LPowerRandom >= 13 && LPowerRandom < 15 ;2% set spell to ppxLoversPowerSpell18Hf elseif LPowerRandom >= 15 && LPowerRandom < 17 ;2% set spell to ppxLoversPowerSpell19Hf elseif LPowerRandom >= 17 && LPowerRandom < 19 ;2% set spell to ppxLoversPowerSpell20Hf elseif LPowerRandom == 19 ;1% set spell to ppxLoversPowerSpell21Hf elseif LPowerRandom == 20 ;1% set spell to ppxLoversPowerSpell22Hf elseif LPowerRandom >= 21 && LPowerRandom < 26 ;5% set spell to ppxLoversPowerSpell0Hf elseif LPowerRandom >= 26 && LPowerRandom < 31 set spell to ppxLoversPowerSpell1Hf elseif LPowerRandom >= 31 && LPowerRandom < 36 set spell to ppxLoversPowerSpell2Hf elseif LPowerRandom >= 36 && LPowerRandom < 41 set spell to ppxLoversPowerSpell3Hf elseif LPowerRandom >= 41 && LPowerRandom < 46 set spell to ppxLoversPowerSpell4Hf elseif LPowerRandom >= 46 && LPowerRandom < 51 set spell to ppxLoversPowerSpell5Hf elseif LPowerRandom >= 51 && LPowerRandom < 56 ;5% set spell to ppxLoversPowerSpell6Hf elseif LPowerRandom >= 56 && LPowerRandom < 59 ;3% set spell to ppxLoversPowerSpell7Hf elseif LPowerRandom >= 59 && LPowerRandom < 62 set spell to ppxLoversPowerSpell8Hf elseif LPowerRandom >= 62 && LPowerRandom < 65 set spell to ppxLoversPowerSpell9Hf elseif LPowerRandom >= 65 && LPowerRandom < 68 ;3 set spell to ppxLoversPowerSpell10Hf elseif LPowerRandom >= 68 && LPowerRandom < 70 ;2% set spell to ppxLoversPowerSpell11Hf elseif LPowerRandom >= 70 && LPowerRandom < 72 ;2% set spell to ppxLoversPowerSpell12Hf elseif LPowerRandom >= 72 && LPowerRandom < 77 ;5% set spell to ppxLoversPowerSpell13Hf elseif LPowerRandom >= 77 && LPowerRandom < 80 ;3% set spell to ppxLoversPowerSpell14Hf elseif LPowerRandom == 80 set spell to ppxLoversPowerSpell15Hf elseif LPowerRandom >= 81 && LPowerRandom < 91 ;10% set spell to ppxLoversPowerSpellFiller3Hf elseif LPowerRandom >= 91 ;10% set spell to ppxLoversPowerSpellFiller4Hf endif endif Else printc "screwed up" endif ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Normal Mode ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; If Player.GetItemCount ppxLoversPenaltyHardcoreToken == 0 If Player.Getitemcount xLoversOff >= 1 if LPowerRandom < 11 ;10% ; nothing happens elseif LPowerRandom >= 11 && LPowerRandom < 21 ;10% set spell to ppxLoversPowerSpellFillerN1m elseif LPowerRandom >= 21 && LPowerRandom < 26 ;5% set spell to ppxLoversPowerSpell0m elseif LPowerRandom >= 26 && LPowerRandom < 31 set spell to ppxLoversPowerSpell1m elseif LPowerRandom >= 31 && LPowerRandom < 36 set spell to ppxLoversPowerSpell2m elseif LPowerRandom >= 36 && LPowerRandom < 41 set spell to ppxLoversPowerSpell3m elseif LPowerRandom >= 41 && LPowerRandom < 46 set spell to ppxLoversPowerSpell4m elseif LPowerRandom >= 46 && LPowerRandom < 51 set spell to ppxLoversPowerSpell5m elseif LPowerRandom >= 51 && LPowerRandom < 56 ;5% set spell to ppxLoversPowerSpell6m elseif LPowerRandom >= 56 && LPowerRandom < 59 ;3% set spell to ppxLoversPowerSpell7m elseif LPowerRandom >= 59 && LPowerRandom < 62 set spell to ppxLoversPowerSpell8m elseif LPowerRandom >= 62 && LPowerRandom < 65 set spell to ppxLoversPowerSpell9m elseif LPowerRandom >= 65 && LPowerRandom < 68 ;3 set spell to ppxLoversPowerSpell10m elseif LPowerRandom >= 68 && LPowerRandom < 70 ;2% set spell to ppxLoversPowerSpell11m elseif LPowerRandom >= 70 && LPowerRandom < 72 ;2% set spell to ppxLoversPowerSpell12m elseif LPowerRandom >= 72 && LPowerRandom < 77 ;5% set spell to ppxLoversPowerSpell13m elseif LPowerRandom >= 77 && LPowerRandom < 80 ;3% set spell to ppxLoversPowerSpell14m elseif LPowerRandom == 80 set spell to ppxLoversPowerSpell15m elseif LPowerRandom >= 81 && LPowerRandom < 91 ;10% set spell to ppxLoversPowerSpellFillerN2m elseif LPowerRandom >= 91 ;10% ; nothing happens endif Else printc "screwed up" Endif If Player.Getitemcount xLoversDef >= 1 if LPowerRandom < 11 ;10% ; nothing happens elseif LPowerRandom >= 11 && LPowerRandom < 21 ;10% set spell to ppxLoversPowerSpellFillerN1f elseif LPowerRandom >= 21 && LPowerRandom < 26 ;5% set spell to ppxLoversPowerSpell0f elseif LPowerRandom >= 26 && LPowerRandom < 31 set spell to ppxLoversPowerSpell1f elseif LPowerRandom >= 31 && LPowerRandom < 36 set spell to ppxLoversPowerSpell2f elseif LPowerRandom >= 36 && LPowerRandom < 41 set spell to ppxLoversPowerSpell3f elseif LPowerRandom >= 41 && LPowerRandom < 46 set spell to ppxLoversPowerSpell4f elseif LPowerRandom >= 46 && LPowerRandom < 51 set spell to ppxLoversPowerSpell5f elseif LPowerRandom >= 51 && LPowerRandom < 56 ;5% set spell to ppxLoversPowerSpell6f elseif LPowerRandom >= 56 && LPowerRandom < 59 ;3% set spell to ppxLoversPowerSpell7f elseif LPowerRandom >= 59 && LPowerRandom < 62 set spell to ppxLoversPowerSpell8f elseif LPowerRandom >= 62 && LPowerRandom < 65 set spell to ppxLoversPowerSpell9f elseif LPowerRandom >= 65 && LPowerRandom < 68 ;3 set spell to ppxLoversPowerSpell10f elseif LPowerRandom >= 68 && LPowerRandom < 70 ;2% set spell to ppxLoversPowerSpell11f elseif LPowerRandom >= 70 && LPowerRandom < 72 ;2% set spell to ppxLoversPowerSpell12f elseif LPowerRandom >= 72 && LPowerRandom < 77 ;5% set spell to ppxLoversPowerSpell13f elseif LPowerRandom >= 77 && LPowerRandom < 80 ;3% set spell to ppxLoversPowerSpell14f elseif LPowerRandom == 80 set spell to ppxLoversPowerSpell15f elseif LPowerRandom >= 81 && LPowerRandom < 91 ;10% set spell to ppxLoversPowerSpellFillerN2f elseif LPowerRandom >= 91 ;10% ; nothing happens endif endif Else printc "screwed up" ;nothing endif ppxLoversPenaltyActivatorRef.MoveTo me ppxLoversPenaltyActivatorRef.Cast spell me ppxLoversPenaltyActivatorRef.MoveTo ppxLoversPenaltyResetMarker set me to 0 endif SetFunctionValue me End ;<CSEBlock> ;<CSECaretPos> 0 </CSECaretPos> ;</CSEBlock> But somehow it doesn't work at all. Or, to be more concrete, it works, but fails to find tokens in Player's inventory. I always end up with printC "screwed up" condition which, in theory, means that player doesn't have tokens in his inventory when function executes. More to say, I have printC message two times in a row which, again, in teory means that all script runs independant from if player have hardcore token or not.
fejeena Posted May 8, 2020 Posted May 8, 2020 I must check it in game. Yes not all token are in the inventory until the sex ends. And I just saw it will not work, the Disease is add after the sex This line if me.GetItemCount xLoversPkrEquipFuncItem == 0 0 xLoversPkrEquipFuncItem token = no sex, sex is over. So You have to add a Token or script variable during the sex that you check after the sex in the "ppxLoversPenaltyFunction" script . Will check the other scripts and see what I can do. 1
Guest Shadd Ashborn Posted May 8, 2020 Posted May 8, 2020 "During the sex" - is it in Callback script? Those that checks for 3rd stage of actual act, as I understood.
fejeena Posted May 8, 2020 Posted May 8, 2020 Yes during the call pack script you can check if player is off or def and set a script variable in the Quest script. And this variable you can check in the "ppxLoversPenaltyFunction" script . So in the ppxLoversPenaltyQuestScript you add a new short PlayerIsOff And in the ppxLoversPenaltyCallback script you check the token If Player.getitemcount xLoversOff >= 1 set ppxLoversPenaltyQuest.PlayerIsOff to 1 else set ppxLoversPenaltyQuest.PlayerIsOff to 0 endif And in the ppxLoversPenaltyFunction script you check the short If ppxLoversPenaltyQuest.PlayerIsOff == 1 or if ppxLoversPenaltyQuest.PlayerIsOff == 0
Guest Shadd Ashborn Posted May 8, 2020 Posted May 8, 2020 Yup, ended up with similar solution and it seems to work. I saw rape tokens in RaperS mod and have thoughts that it may be used same way to make hardcor-ish debuffs be consequences of rape/raped (will make mod dependant of rapers).
Guest Shadd Ashborn Posted May 8, 2020 Posted May 8, 2020 UPD Hm, seems that three items count is exactly rape identifier for Lovers framework and seems that Penalty itself exactly about rape/raped (I assume LoversPower is counterpart for consensual encounters). LoversVoiseSSP reveals many secrets about how lovers handle such things. :p I got another idea and already tested it, fancy message boxes right after rough action that describes particular, erm, damage to player's body or honour.
fejeena Posted May 9, 2020 Posted May 9, 2020 Almost everything is done with token. Also the token that stay in the inventory you can use . e.g for dialogs. If you check if a NPC has a "raped by player" token in the dialog greeting contitions she/he can react the next time you talk to him after you have raped him. Most token are in Lovers with PK esm. But other usefull token are in other Lovers Mods. I use many token in my Mods ( in my privat Mods. I add sex to many Quest or new villages Mods ) LoversVoiseSSP has the public sex token so you do not have to search a privat place to have sex. In LoversSlaveTrader you have the xLSTInviolableToken, so he/she can not be enslaved , but think can also do not buy slaves. In Lovers Rapers you have token to block NPCs to rape ... and other Mods And you can add the token with scripts so that a Mod does not need all the masterfiles. Only Lovers with PK esm should be the masterfile. Spoiler short muggHasLST short muggHasVoiceSSPplus short muggHasRapers ref muggLSTSlavetoken ref muggNoSlaveToken ref muggServiceToken ref muggPublicSex ref muggNoRape ref muggNothingRape BEGIN GameMode if GetGameLoaded set muggHasLST to 0 set muggHasVoiceSSPplus to 0 set muggHasRapers to 0 if muggHasLST == 0 if (IsModLoaded "LoversSlaveTrader.esp") Set muggLSTSlavetoken to GetFormFromMod "LoversSlaveTrader.esp" 001D36 Set muggNoSlaveToken to GetFormFromMod "LoversSlaveTrader.esp" 022DC8 set muggServiceToken to GetFormFromMod "LoversSlaveTrader.esp" 006F4B Set muggHasLST to 1 endif endif if muggHasVoiceSSPplus == 0 if (IsModLoaded "LoversVoiceSSPplus.esp") Set muggPublicSex to GetFormFromMod "LoversVoiceSSPplus.esp" 002360 Set muggHasVoiceSSPplus to 1 endif endif if muggHasRapers == 0 if (IsModLoaded "LoversRaperS.esp") set muggNoRape to GetFormFromMod "LoversRaperS.esp" 01A1A5 set muggNothingRape to GetFormFromMod "LoversRaperS.esp" 0496B7 set muggHasRapers to 1 endif endif ;;;;; After you have the ref for all the token you can add them if muggHasRapers == 1 If a0MuggfilthycuntRef.GetItemCount muggNoRape == 0 a0MuggfilthycuntRef.AddItem muggNoRape 1 endif ;;;;; and so on with all NPCs that should get token and all the Mods you used above. ;;; And you can also stop adding a token. if muggHasLST == 1 If a0MuggfilthycuntRef.GetItemCount muggNoSlaveToken == 0 && GetStage Questxy < 60 a0MuggfilthycuntRef.AddItem muggNoSlaveToken 1 endif endif ;;; You remove the token during a quest ( stage 60 ) and when you start the game again the token is not added again.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now