Guest Posted March 12, 2014 Posted March 12, 2014 I dont think is MyRef is blank is a problem until your script don't make operations on it. And since the first block won't run until it is actually a raider (so it won't be blank) it shouldn't happen. That second block runs until it returns a raider. Then, the NextRef is the one which will decide if you are actually shooting it or not, this only prevents if in the meantime you change your target to something else, like a friend (or even a second raider, but it doesn't count)
Guest tomm434 Posted March 12, 2014 Posted March 12, 2014 I feel more confortable with this one: if GetStage MyQuest == the moment I take the collar If player.IsInCombat if TargetIsRaider set MyNextRef to player.GetCombat Target if MyNextRef == MyRef if MyRef.GetHitLocation != -1 my head explodes endif else Set TargetIsRaider to 0 endif else set MyRef to player.GetCombatTarget if MyRef.GetInFaction RaiderFaction set TargetIsRaider to 1 else set TargetIsRaider to 0 endif endif Where I would mean this: TargetIsRaider is a boolean, true if the target is a raider. It is setted in the second block. Second block (it runs if I still have not a raider as target) - Give me the target. If it's raider, set the boolean to true. First block - If I have a raider as target, give me the actual target. If it's the same reference, check if it was shot by me. If it is, let my head explode. If it's a different raider, go back to the second block. This should prevent that de-sync I was thinking about Hope it makes sense for you That's how script looks scriptname aaraiderfriendlyfire ref myref ref mynextref short targetisraider begin gamemode If player.IsInCombat if TargetIsRaider ==0 set MyNextRef to player.GetCombatTarget if MyNextRef == MyRef if MyRef.GetHitLocation != -1 player.PlaceAtMe NVDLC01BombCollarExplosion player.kill player 1 endif else Set TargetIsRaider to 0 endif else set MyRef to player.GetCombatTarget if MyRef.GetInFaction RaiderFaction set TargetIsRaider to 1 endif else set TargetIsRaider to 0 endif endif end Thanks. It works but not in the best way So, raider starts combat if player hits him 4 times. And this 4th hit counts as trigger(because player is in combat) but there is another problem - if I use pistol, I can't hit raider 4 times because he or she dies sooner. I tried to delete line with "If player.IsInCombat" but it doesn't work at all then. I guess I will have to add every raider npc to the form list and then make conditions. Thanks a lot again!
Guest Posted March 12, 2014 Posted March 12, 2014 I agree you can't wait 4 hits, but this script isn't supposed to work in that way. You can of course remove the IsInCombat, its endif is the very last one, it's strange it doesn't allow you, maybe I did some syntax mistake but that IsInCombat shouldn't make the difference for the script purpose. While testing it, I would lower the script delay to something low, like 0.1
Guest tomm434 Posted March 12, 2014 Posted March 12, 2014 I agree you can't wait 4 hits, but this script isn't supposed to work in that way. You can of course remove the IsInCombat, its endif is the very last one, it's strange it doesn't allow you, maybe I did some syntax mistake but that IsInCombat shouldn't make the difference for the script purpose. While testing it, I would lower the script delay to something low, like 0.1 nom when I delete IsInCombat - scripts can be saved. But in game that doesn't work. Maybe because there can't be combat target if player is not in combat?
Guest Posted March 12, 2014 Posted March 12, 2014 it can work even out of combat, I'm using it in these days with another script, it works even with people who is friend. well now that I think to that, I tried it looking through a scope... but well it was working. When I have more time I'll try it without a scope EDIT I just read your script, there's a mistake in the first If Target is raider, you placed == 0, it was simply If Target Is Raider without anything else (it must be 1)
Nessa Posted March 12, 2014 Posted March 12, 2014 Well, it's time I asked a possibly complicated question! (Or at least it's complicated to me this morning!) Two questions, though figuring out only one would be sufficient. One: This might only be regarding ZAZ. Is there a way to use the Sexout system for playing an animation indefinitely? Particularly a 2 or more person animation. Any animation, including ZAZ, can be paused indefinitely by casting SexoutNGPause on one of the actors involved in the act. Resume with SexoutNGResume. I must be obtuse tonight. How would one go about that exactly? I've tried CIOS SexoutNGPause after the sequence starts and before (which makes no sense to me) to no avail. My understanding is the spell callback (CBSpell) works after the sequence is over, yes? Of course I'm attempting the test in an onload block which probably causes more complications knowing my usual luck. Should I have used a timer and then cast SexoutNGPause? Let the sequence get moving, THEN cast. I'll have to give that a shot when I'm not dead tired. Sorry if this is rambling. Long day.
prideslayer Posted March 12, 2014 Posted March 12, 2014 Well, it's time I asked a possibly complicated question! (Or at least it's complicated to me this morning!) Two questions, though figuring out only one would be sufficient. One: This might only be regarding ZAZ. Is there a way to use the Sexout system for playing an animation indefinitely? Particularly a 2 or more person animation. Any animation, including ZAZ, can be paused indefinitely by casting SexoutNGPause on one of the actors involved in the act. Resume with SexoutNGResume. I must be obtuse tonight. How would one go about that exactly? Erm.. just like I said. If alice and bob are engaged in sex, just "aliceRef.CIOS SexoutNGPause". Or bobRef. Doesn't matter which one of the actors you use. The sexout scene must be active before you can pause it, just like you can't pause a movie that isn't playing. I've tried CIOS SexoutNGPause after the sequence starts and before (which makes no sense to me) to no avail. My understanding is the spell callback (CBSpell) works after the sequence is over, yes? Of course I'm attempting the test in an onload block which probably causes more complications knowing my usual luck. Should I have used a timer and then cast SexoutNGPause? Let the sequence get moving, THEN cast. I'll have to give that a shot when I'm not dead tired. Sorry if this is rambling. Long day. If you're trying to use it in a callback then you can only do it from the start notify callback (not the ending one), and yes, you should wait a moment between getting the notification and casting the pause spell. You can do this by having your callback code cast a spell of your own creation on the target, and having that spell effect wait until some time has elapsed or some other condition is met. It should not take long, but you do need to wait, because the first thing the sexout main effect script does is remove any tokens and stuff it finds on the actors in case some previous call crashed and left them laying around. I'm a fool for not adding some NX var that you can check to see if it's 'safe', I'll add that to the todo list, but for now.. just wait 0.1 seconds or something.
Guest tomm434 Posted March 12, 2014 Posted March 12, 2014 it can work even out of combat, I'm using it in these days with another script, it works even with people who is friend. well now that I think to that, I tried it looking through a scope... but well it was working. When I have more time I'll try it without a scope EDIT I just read your script, there's a mistake in the first If Target is raider, you placed == 0, it was simply If Target Is Raider without anything else (it must be 1) I don't know why but without "If player.IsInCombat" script doesn't work at all. Can you publish your script which explodes player after she attack anybody?
Guest Posted March 12, 2014 Posted March 12, 2014 And sorry I explained bad, I was meaning that the problem is not GetCombatTarget because I'm using it in a different script I'm doing in these days, it works with both hostiles and non-hostiles, but well it doesn't make people explode Anyway this is how I scripted my GetCombatTarget: ... (if I press a hotkey) ... set aaPTarget to player.GetCombatTarget if aaPTarget if (gettype aaPTarget == 42) || (gettype aaPTarget == 43) ; if target is actor or creature ; do the rest of the things And essentially it means if I press a hotkey, set aaPTarget (which is a reference variable) to the reference the player is targetting. If that reference exists, and if it's a creature or a human, then do the rest of the script. I just tried without scope because I didn't try it before, but yes it works too. If you already corrected that " if TargetIsRaider == 0 ", then I assume there's something else which is wrong in that script. I'm busy with some things, when I finish I'll give a try
Nessa Posted March 12, 2014 Posted March 12, 2014 I've tried CIOS SexoutNGPause after the sequence starts and before (which makes no sense to me) to no avail. My understanding is the spell callback (CBSpell) works after the sequence is over, yes? Of course I'm attempting the test in an onload block which probably causes more complications knowing my usual luck. Should I have used a timer and then cast SexoutNGPause? Let the sequence get moving, THEN cast. I'll have to give that a shot when I'm not dead tired. Sorry if this is rambling. Long day. If you're trying to use it in a callback then you can only do it from the start notify callback (not the ending one), and yes, you should wait a moment between getting the notification and casting the pause spell. You can do this by having your callback code cast a spell of your own creation on the target, and having that spell effect wait until some time has elapsed or some other condition is met. It should not take long, but you do need to wait, because the first thing the sexout main effect script does is remove any tokens and stuff it finds on the actors in case some previous call crashed and left them laying around. I'm a fool for not adding some NX var that you can check to see if it's 'safe', I'll add that to the todo list, but for now.. just wait 0.1 seconds or something. As usual can't sleep until it's solved. (One should NEVER code late at night!!) It seems my problem initially was I was calling pause before Sexout had a chance to get moving. Slapping in a timer allowed Sexout enough time to get the animation going before pausing. So now Scenario One is essentially solved. Turns out dialog might be possible as well, depending on animation. I've done some quick testing and the animation remains going even during combat which is a nice bonus. I may even consider rewriting the original single person scripts to use this. Those had to handle not only animation, but sound, position, and combat handling. Sexout makes things quite a bit simpler in that regard! Anyway, a little touchup and polish and I think this little mod might be ready. (About time, I only started cleaning it up.... 3 MONTHS ago!! )
nyaalich Posted March 13, 2014 Posted March 13, 2014 Any ideas on how to better manage an NPC's distance? That is: keep them within a certain radius of you, say 512-532. With Confidence 4 and Aggression 0, she is crouching defensively without fleeing far away, but she does so right where I'm at, chasing my heels. I've tried making a FleeNotCombat package w/ the minimum distance being 512, and sometimes she stays at a decent distance, but other times, she runs for Goodsprings.
prideslayer Posted March 13, 2014 Posted March 13, 2014 Glad to hear it. The only thing that can reliably stop a paused animation is unpausing it and/or ending it (SexoutNGFinishNow). Leaving the cell and returning *might* do it, sometimes, that bit is always somewhat unpredictable. I think most of the time leaving the cell will just suspend it (I don't think spell effect scripts run in other cells) and then resume it next time the cell is loaded.
Guest Posted March 13, 2014 Posted March 13, 2014 I don't know why but without "If player.IsInCombat" script doesn't work at all. Can you publish your script which explodes player after she attack anybody? Ok I tried the script ingame and I found where is the problem. It works until the last part, the one which should make the head explode, because GetHitLocation doesn't go true. Looking at the Beth guide, it will returns the value only in the frame when the enemy is killed, it means I need to kill a raider before my head explodes, because a single hit won't do the trick. I tried other functions as GetFriendHit, GetLastPlayerAction and IsPlayerActionActive, they all don't work as I expected. The last thing I can think is making a check with IsKeyPressed: if you press fire when you have a raider as target (and you "almost" have it if IsCombatTarget gives you a target reference), then your head explode. The bad side of this solution is that you actually don't need to hit him, since IsCombatTarget gives you the reference if you aim very near him without hitting him (like 10 cm far from a leg, but if you shoot like 20 cm from the leg it doesn't give you the reference), so it's approximative Also, this script works better with lower delay time. So well, I can't really figure another way to check if a generic reference is hitted without scripting herself or using a specific weapon... sorry... you can still use the form lists but probably other mods which introduce new raiders won't be affected
Guest tomm434 Posted March 13, 2014 Posted March 13, 2014 I don't know why but without "If player.IsInCombat" script doesn't work at all. Can you publish your script which explodes player after she attack anybody? Ok I tried the script ingame and I found where is the problem. It works until the last part, the one which should make the head explode, because GetHitLocation doesn't go true. Looking at the Beth guide, it will returns the value only in the frame when the enemy is killed, it means I need to kill a raider before my head explodes, because a single hit won't do the trick. I tried other functions as GetFriendHit, GetLastPlayerAction and IsPlayerActionActive, they all don't work as I expected. The last thing I can think is making a check with IsKeyPressed: if you press fire when you have a raider as target (and you "almost" have it if IsCombatTarget gives you a target reference), then your head explode. The bad side of this solution is that you actually don't need to hit him, since IsCombatTarget gives you the reference if you aim very near him without hitting him (like 10 cm far from a leg, but if you shoot like 20 cm from the leg it doesn't give you the reference), so it's approximative Also, this script works better with lower delay time. So well, I can't really figure another way to check if a generic reference is hitted without scripting herself or using a specific weapon... sorry... you can still use the form lists but probably other mods which introduce new raiders won't be affected I tried forming a list and it didn't work. Then I added this script(Object type) to every raider to the game Begin OnHit playerref(tried it without "ref") (head explodes) end I've stolen it from Three bounty quets n New Vegas(where each first recon sniper had diferent greeting depending on whether they hit Driver nelphi or not) And it didn't work. I don't know why. Athere are a lod of npc raiders in GECK and they all used about 10 templates. So I added scripts to templates and they should have automaticly applied to other npc who use these templates. I think I will use the script for 4 hits . That is at least something.
Guest Posted March 13, 2014 Posted March 13, 2014 At that point, if you told me raiders in TTW needs 4-5 hits to become hostiles, I would try to use the first solution of many posts ago, the one involving the faction. I believe checking the faction would be the more stable solution and would run nice even with a higher delay time: maybe your head won't explode istantly, maybe in the meantime you will be able to kill a couple of raiders, but still your faith will be decided, you'll die. So maybe is slightly less realistic, but still it would work. Now maybe delay times are not really a problem, it's just me that I'm obsessed with them. Maybe. It deserves a try.
Guest tomm434 Posted March 13, 2014 Posted March 13, 2014 At that point, if you told me raiders in TTW needs 4-5 hits to become hostiles, I would try to use the first solution of many posts ago, the one involving the faction. I believe checking the faction would be the more stable solution and would run nice even with a higher delay time: maybe your head won't explode istantly, maybe in the meantime you will be able to kill a couple of raiders, but still your faith will be decided, you'll die. So maybe is slightly less realistic, but still it would work. Now maybe delay times are not really a problem, it's just me that I'm obsessed with them. Maybe. It deserves a try. yes, dealay won't be the problem, through dialogues I will warn player that he shoudn't mess with raiders at all. So, what exactly is your solution? I tried to this myself(when i was thinking about blowing up the player after player kills any raider) ref raideractorbomb begin gamemode if (raideractorbomb.IsKiller player ==1 && raideractorbomb.GetInFaction raiderfaction ==1) player.PlaceAtMe NVDLC01BombCollarExplosion player.kill player 1 endif end end And it didn't work.
Mailamea Posted March 13, 2014 Posted March 13, 2014 Did the pov functionality became a succes? Was gone for a long while in modding.
Ark of Truth Posted March 13, 2014 Posted March 13, 2014 Did the pov functionality became a succes? Was gone for a long while in modding. Over a year believe it or not
nyaalich Posted March 13, 2014 Posted March 13, 2014 NVSE Command Confusion: Does SetWeaponFlags(1 || 2) work as a toggle? From the notation, it doesn't look like there's a way to set the flag to true/false. SetWeaponFlags2 Alias: none Usage: (nothing) reference.SetWeaponFlags2 weaponFlags2:Integer item:ObjectID Parameters: 2 weaponFlags2:Integeritem:ObjectID Return Type: Nothing Condition Function: No Introduced In: 2.6 Calling Convention: E Description: Sets the weapon flags using integer bit value notation.
nyaalich Posted March 13, 2014 Posted March 13, 2014 Sexout uses tokens for counters, a token for position, and pickidle with conditions on the animations. For any given animation, I will add anywhere from 100 to 10,000 counter tokens. I intend to ditch that and switch to playidle myself at some point, but it's not additem or getitemcount that is slow. There are paired (or tripletted? word?) animations for sex anims. Which actors get the tokens for the anim, and do the actors all get the same amount of tokens? Is there a particular script that I should be looking at? Are animations actually differentiated between vaginal and anal? Below, I have truncated what's in the anim start (I think) script from Sexout, which doesn't mention differences if anim >= 101 && anim <= 200 ; masturbation elseif anim >= 201 && anim <= 400 ; oral laying down elseif anim >= 401 && anim <= 500 ; oral standing elseif anim >= 501 && anim <= 600 ; oral kneeling elseif anim >= 601 && anim <= 700 ; doggy style elseif anim >= 701 && anim <= 800 ; 2p other elseif anim >= 801 && anim <= 900 ; 2p toys elseif anim >= 901 && anim <= 1000 ; 2p girl on top elseif anim >= 1001 && anim <= 1100 ; dog elseif anim >= 1101 && anim <= 1200 ; centaur elseif anim >= 1201 && anim <= 1300 ; feral ghoul elseif anim >= 1301 && anim <= 1400 ; deathclaw elseif anim >= 1401 && anim <= 1500 ; supermutant elseif anim >= 1501 && anim <= 2000 ; spore if anim == 1501 || anim == 1502 || anim == 1503 ; cadazor elseif anim == 1601 endif elseif anim >= 1701 && anim <= 1800 ; reserved for robots elseif anim >= 1801 && anim <= 1900 ; gecko elseif anim >= 1901 && anim <= 1910 ; bloatfly if anim >= 1911 && anim <= 1920 ; bighorner elseif anim >= 1921 && anim <= 1930 ; mirelurk king elseif anim >= 1931 && anim <= 1940 ; nightstalker elseif anim >= 2001 && anim <= 5000 ; reserved 2p sex elseif anim >= 5001 && anim <= 5100 ; standing spitroast elseif anim >= 5101 && anim <= 5200 ; doggy spitroast elseif anim >= 5201 && anim <= 5300 ; standing DP elseif anim >= 5301 && anim <= 5400 ; cowgirl dp elseif anim >= 5401 && anim <= 5500 ; rev cowgirl dp elseif anim >= 5501 && anim <= 5600 ; doggy dp elseif anim >= 5601 && anim <= 10000 ; reserved elseif anim >= 10000 && anim <= 20000 ; reserved for modders elseif anim >= 12000 && anim <= 12999 ; mavia MAVIA CHANGE ; RENUMBER THESE OUT OF RESERVED SECTION.
jaam Posted March 13, 2014 Posted March 13, 2014 WeaponFlag are bitmask. You're suppose to add the values you want set. Values skipped will be restet. example: set iFlags to 1 + 16 ; eFlag_PlayerOnly + eFlag_MinorCrime weap.SetWeaponFlags2 iFlags ... set iFlags to 16 ; eFlag_MinorCrime ; --- clears the player only flag weap.SetWeaponFlags2 iFlags now if you want to remove a flag without knowing what other are present, you need to do bitwise arithmetic using (the very badly named) logicalOr and logicalAnd.
jaam Posted March 13, 2014 Posted March 13, 2014 @Mailamea as prideslayer said, try leaving the scene and returning, and then saving while they are paused then reloading. I would be happy if in both cases the scene survived but I'm afraid it won't. @nyaallich Check SexoutNGRandomizeScript to see which anim apply to which type of sex.
nyaalich Posted March 13, 2014 Posted March 13, 2014 So, is GetWeaponFlags also supposed to return an int based on the actual byte's data/number (If you used get on the weapon above, you'd get 17 and 16 respectively).
jaam Posted March 13, 2014 Posted March 13, 2014 So, is GetWeaponFlags also supposed to return an int based on the actual byte's data/number (If you used get on the weapon above, you'd get 17 and 16 respectively). source says so
prideslayer Posted March 13, 2014 Posted March 13, 2014 Sexout uses tokens for counters, a token for position, and pickidle with conditions on the animations. For any given animation, I will add anywhere from 100 to 10,000 counter tokens. I intend to ditch that and switch to playidle myself at some point, but it's not additem or getitemcount that is slow. There are paired (or tripletted? word?) animations for sex anims. Which actors get the tokens for the anim, and do the actors all get the same amount of tokens? Actors get 3 tokens right now that the system actually uses. 1. The counter. Unscripted. Each actor gets an amount of these equal to the animation currently playing, so if it's anim 601, each involved actor gets 601 of these. The count is used as a conditional in the gecks pickidle. 2. The position. Unscripted. Each actor gets one of these which indicates which role they play in the scene, there are only three of them: A, B, and C, and only one is given to each actor. 3. Dress/Undress. Scripted. This is given to an actor and causes them to undress. Giving them a second one causes them to get dressed and then removes both. When the don't redress flag is set, the first one is removed and a second one is never given. Is there a particular script that I should be looking at? Depends on what you want to know. The main script is SexoutNGEffectBaseScriptF. It's staged and runs from the bottom up (the first stage to run is the last one in the script). Are animations actually differentiated between vaginal and anal? No.
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