Jump to content

[WIP] Skyrim Slavers Guild


Recommended Posts

Posted

um... no' date=' lol. i have been concentrating on dealing with the government stuff for gimps like me, stupid annoying reality sucks.

was that the lovers stuff?...

[/quote']

 

Yeah, The sex itself is a bit unreliable still, but the code to store animations in arrays and bring up the positioning data - that works just fine.

Posted

sweet... i always wondered how they kept track of stuff so seeming easily... ill have to unpack that and see exactly how they did it.

 

sounds like a creating a quasi squal server database.

Posted

By the by... what is so special about those arrays? I read the CK wiki page about them but to me it looks like written in Chinese xD All I understood is that they're similar to formlists somehow but if they and formlists exist together obviously there must be something more to them?

Posted

there important because instead of using formlists that just list the names/id's the arrays can story all of the information...

 

basically if its setup how i think it might be, its like putting all the animations we want to use into a single file... then when running down specific animations or to debug animations that arent running properly super easy.

it would also be a huge help with keeping scripting to as much of a minimum as possible. making it easier to keep track of all the script involved as well.

 

at least thats what im hoping lol

Posted

By the by... what is so special about those arrays? I read the CK wiki page about them but to me it looks like written in Chinese xD All I understood is that they're similar to formlists somehow but if they and formlists exist together obviously there must be something more to them?

 

Arrays are:

 

  • Faster
  • More memory-efficient
  • Allocatable
  • Typed
  • Subscripted
  • Limited in Size

 

They're faster' date=' because they're just a raw block of bytes internally. The engine can whizz down these super-fast. Formlists on the other hand need to calculate where to find the data for each form you access, and for each index. If you have a lot of list processing to do, arrays are going to be a LOT faster.

 

They're more [b']memory efficient[/b] simply because they're just a block of pointers. Formlists are going to have all sorts of cruft internally, generally to do with efficient use of memory, or to optimise search times. None of it is major, but it's quite possible that a formlist uses 10 times the amount of memory per item stored. Then again, that's still maybe 40 bytes as opposed to 4, so unless you're using a lot of lists, it's probably not worth worrying about.

 

Arrays are allocatable because you can say new objecttype[99] and get a chunk of memory that wasn't there before. You can fake that with things like placeAtMe of course, but this is way less bother.

 

Arrays are subscripted which means that you can write

 

foo = myArray[32]

 

rather than

 

foo = myFormList.getAt(32)

 

which is not only less typing, but saves the expense of a function call to get your data. They're typed, too. With the formlist, you need to cast the result to be the same type as foo and if there's a problem, you don't get to find out until run time. With the array, the compiler checks that foo and myarray are compatible at compile time, potentially saving a lot of debugging time.

 

On the other hand, arrays are limited in size, where formlists are not. Arrays can't be bigger than 128 entries, which is a pure pain.

 

basically if its setup how i think it might be' date=' its like putting all the animations we want to use into a single file... then when running down specific animations or to debug animations that arent running properly super easy.

[/quote']

 

Well, not quite. You get the arrays to look up the objects quickly, but the user defined types are still a problem.

 

In theory, you can a record to hold any data you like just by extending form:

 

Scriptname SkySex_Warehouse_Marker_Script extends Form
{ custom data object for sex acts }

Idle 	property	anim	auto
{ The actual idle to play with PlayIdle }
string 	Property	name	Auto
{ name of the animation - this is what we'll search on }
string 	Property	mod		Auto
{ name of the mod - so we can SSG.Blowjob and AP.Blowjob without them interfering }
Int		Property	slot	Auto
{ slot zero is the the primary: one around which the others are positioned }
Int		Property	zero_index	Auto
{ index of the zero/prime record }
float	Property	displacement		Auto
{ distance from primary in x-y plane }
float	Property	zoff		Auto
{ z-distance relatuve to primary  }
Float	Property	zrot	Auto
{rotation relatuve to primary - 180 if you want the actor to turn around }
Float 	Property	duration	Auto
{ how long to run the act for. Only used for primary records }
Bool	Property	headtrack	Auto
{ if false, disables head track }
String	Property	idle_name	Auto
{ name of the idle as defined in the behavior file }

 

(Anyone else really hate that curly-bracket auto-doc syntax?)

 

Anyway, that works, in so far as you create a new record format that has data elements for all the info needed to start and position a sex scene with any number of participants. The problem is creating instances of the object. New only works with arrays[1].

 

What we can do, however, is attach the same script to an object that we can place in the game. So what I did was change the first line to

 

Scriptname SkySex_Warehouse_Marker_Script extends ObjectReference

 

And then I copied Gold001 and added the script to the coin base object. I can create new instances of my modified coin with placeAtMe, just like any other in-game object. And each one I create has all the data needed to store the animation data for part of a sex scene.[2]

 

So: for each idle I want to add I use placeAtMe to create the record (conveniently attached to a fake gold coin) and then add the reference to an array where I can look it up. Well actually ... :rolleyes: I added it to a formlist in this case, being worried about that 128 limit. At some point I'll make an unbounded array class but for now I use a formlist :)

 

To manage all the records I have a Warehouse script with some useful functions. This is one to add a new record:

int function add_animation(                                       \
       Idle a_animation,                                               \
       string  a_name, string a_mod,                                   \
       int     a_slot,                                                 \
       float   a_displacement=0.0, float a_zoff=0.0,                   \
       float   a_zrot=0.0,                                             \
       float   a_duration=10.0,                                        \
       bool    a_headtrack = False,                                    \
       Int     a_zero_index=-1                                         \
)

;
; get a new animation record
;
SkySex_Warehouse_Marker_Script rec = new_animation()

;
; shout, if that failed for any reason
;
if rec == None
	MessageBox("Error: record not created")
	Return -1
EndIf

;
; fill out the fields
;
rec.name 	= a_name
rec.anim 	= a_animation
rec.mod 	= a_mod
rec.slot	= a_slot
rec.displacement	= a_displacement
rec.zrot 	= a_zrot
rec.duration	= a_duration
rec.headtrack	= a_headtrack
rec.zero_index	= a_zero_index;

;
; add it to the form list
;
AnimationList.AddForm(rec);

;
; return the index of the record
; that's the size of the list, -1 since we count from zero
;
return AnimationList.GetSize() - 1;
EndFunction

 

This is the function that creates our golden data records

 

SkySex_Warehouse_Marker_Script function new_animation()
;
; this is the instance we return
;
SkySex_Warehouse_Marker_Script instance

;
; get the object ref and the base form
;
ObjectReference oref = proto_alias.GetReference();
form base = oref.GetBaseObject()

;
; create the instance with some bracketting debug chatter
;
trace("creating new record from " + proto_alias)
instance =  oref.PlaceAtMe(base, 1, True, False) as SkySex_Warehouse_Marker_Script	
trace("instance created: " + instance);

;
; return it
;
return instance
EndFunction

 

 

And then we can add scenes to the list with code like this:

       ;
       ; cowgirl animation. We're calling the male primary this time
       ; since the female needs to position herself relative to him
       ;
       ; calling the mod here "skysex", for lack of any better info
       ;
       add_animation(                                          \
               a_animation = m_cowgirl,                \
               a_name          = "Cowgirl",            \
               a_mod           = "Sexrim",             \
               a_slot          = 0                                     \
       )
       add_animation(                                          \
               a_animation = f_cowgirl,                \
               a_name  = "Cowgirl",                    \
               a_mod   = "Sexrim",                             \
               a_slot  = 1,                                    \
               a_displacement  = -10                                   \
       )

 

So, there we have it: A quick guide to arrays, custom data formats, and the sex framework, all in one post.

 

Incidentally, I should probably add that this isn't just blue sky "it ought to work" stuff here. All of this is written and working in v0.03 :)

 

 

[1] This may not be true. There's a linked list implementation in the CK wiki that manages to "new" arbitrary objects, but I couldn't work out how they were doing it.

 

[2] This may be how the linked list example ended up doing it as well. I'm not sure they used the "new" keyword at all in the end.

Posted

Two things I've thought about, one is on the PC will be marked up with something set if you fail something quest. with something markings, collar, burner marking between his legs. so that nps not want to trade or even let the PC in or send her to jail if she try to buy some things from them. and only low life would rape or do sexual things to the PC.

 

Second, if it were possible to have an An Alternative Start where Pc is already enslaved and broken. slave to a monster "like the one in "a night to remember" or something like that. and something quest to get out of it and whit that Pc have may changed have to a similar skin tone as the owner which help of magic. which would result the same as becoming marked. but the body has the same shape but only the skin has changed, but if you find someone good healer can make the PC human again. or a bad/mean one that sealing the PC skin tone and instead enslaves PC and keep her as a play freak. show her all over town and skrim as a object to play and humiliate.

 

or much easier, but starlings as a slave in the guild. choose face, hair, body weight and there after starting on a carriage which takes PC to someone new owner or to the guild like you just got picked up and being delivered to some bad place, but the PC is already broken down.

 

Otherwise, thanks for what you have done so far and good luck with the rest

Posted

Are there any plans to incorporate deadric princes in the quests, there are some who fit quite well. As a bonus they are also each others enemies. This could make for some interesting factions within the guild maybe?

 

Mephala VS. Molag Bal?

 

 

As known in the West, Mephala is the demon prince of murder, sex, and secrets. All of these themes contain subtle aspects and violent ones (assassination/genocide, courtship/orgy, tact/poetic truths); Mephala is understood paradoxically to contain and integrate these contradictory themes." — Vivec and Mephala

 

Molag Bal is the Daedric Prince whose sphere is the domination and enslavement of mortals. He is known as the King of Rape and the Harvester of Souls. His main desire is to harvest the souls of mortals and to bring them within his sway by spreading seeds of strife and discord in the mortal realms. One legend claims that Molag Bal created the first vampire when he raped a Nedic virgin, who in turn slaughtered a group of nomads. He is a Daedric power of much importance in Morrowind, where he is always the archenemy of Boethiah, the Prince of Plots. Other enemies are Ebonarm and Mephala. His summoning day is Chil'a. In Aldmeris, his name means Fire Stone.

 

 

Posted

basically if its setup how i think it might be' date=' its like putting all the animations we want to use into a single file... then when running down specific animations or to debug animations that arent running properly super easy.

[/quote']

 

Well, not quite. You get the arrays to look up the objects quickly, but the user defined types are still a problem.

 

In theory, you can a record to hold any data you like just by extending form:

 

Scriptname SkySex_Warehouse_Marker_Script extends Form
{ custom data object for sex acts }

Idle 	property	anim	auto
{ The actual idle to play with PlayIdle }
string 	Property	name	Auto
{ name of the animation - this is what we'll search on }
string 	Property	mod		Auto
{ name of the mod - so we can SSG.Blowjob and AP.Blowjob without them interfering }
Int		Property	slot	Auto
{ slot zero is the the primary: one around which the others are positioned }
Int		Property	zero_index	Auto
{ index of the zero/prime record }
float	Property	displacement		Auto
{ distance from primary in x-y plane }
float	Property	zoff		Auto
{ z-distance relatuve to primary  }
Float	Property	zrot	Auto
{rotation relatuve to primary - 180 if you want the actor to turn around }
Float 	Property	duration	Auto
{ how long to run the act for. Only used for primary records }
Bool	Property	headtrack	Auto
{ if false, disables head track }
String	Property	idle_name	Auto
{ name of the idle as defined in the behavior file }

 

(Anyone else really hate that curly-bracket auto-doc syntax?)

 

Anyway, that works, in so far as you create a new record format that has data elements for all the info needed to start and position a sex scene with any number of participants. The problem is creating instances of the object. New only works with arrays[1].

 

What we can do, however, is attach the same script to an object that we can place in the game. So what I did was change the first line to

 

Scriptname SkySex_Warehouse_Marker_Script extends ObjectReference

 

And then I copied Gold001 and added the script to the coin base object. I can create new instances of my modified coin with placeAtMe, just like any other in-game object. And each one I create has all the data needed to store the animation data for part of a sex scene.[2]

 

So: for each idle I want to add I use placeAtMe to create the record (conveniently attached to a fake gold coin) and then add the reference to an array where I can look it up. Well actually ... :rolleyes: I added it to a formlist in this case, being worried about that 128 limit. At some point I'll make an unbounded array class but for now I use a formlist :)

 

To manage all the records I have a Warehouse script with some useful functions. This is one to add a new record:

int function add_animation(                                       \
       Idle a_animation,                                               \
       string  a_name, string a_mod,                                   \
       int     a_slot,                                                 \
       float   a_displacement=0.0, float a_zoff=0.0,                   \
       float   a_zrot=0.0,                                             \
       float   a_duration=10.0,                                        \
       bool    a_headtrack = False,                                    \
       Int     a_zero_index=-1                                         \
)

;
; get a new animation record
;
SkySex_Warehouse_Marker_Script rec = new_animation()

;
; shout, if that failed for any reason
;
if rec == None
	MessageBox("Error: record not created")
	Return -1
EndIf

;
; fill out the fields
;
rec.name 	= a_name
rec.anim 	= a_animation
rec.mod 	= a_mod
rec.slot	= a_slot
rec.displacement	= a_displacement
rec.zrot 	= a_zrot
rec.duration	= a_duration
rec.headtrack	= a_headtrack
rec.zero_index	= a_zero_index;

;
; add it to the form list
;
AnimationList.AddForm(rec);

;
; return the index of the record
; that's the size of the list, -1 since we count from zero
;
return AnimationList.GetSize() - 1;
EndFunction

 

This is the function that creates our golden data records

 

SkySex_Warehouse_Marker_Script function new_animation()
;
; this is the instance we return
;
SkySex_Warehouse_Marker_Script instance

;
; get the object ref and the base form
;
ObjectReference oref = proto_alias.GetReference();
form base = oref.GetBaseObject()

;
; create the instance with some bracketting debug chatter
;
trace("creating new record from " + proto_alias)
instance =  oref.PlaceAtMe(base, 1, True, False) as SkySex_Warehouse_Marker_Script	
trace("instance created: " + instance);

;
; return it
;
return instance
EndFunction

 

 

And then we can add scenes to the list with code like this:

       ;
       ; cowgirl animation. We're calling the male primary this time
       ; since the female needs to position herself relative to him
       ;
       ; calling the mod here "skysex", for lack of any better info
       ;
       add_animation(                                          \
               a_animation = m_cowgirl,                \
               a_name          = "Cowgirl",            \
               a_mod           = "Sexrim",             \
               a_slot          = 0                                     \
       )
       add_animation(                                          \
               a_animation = f_cowgirl,                \
               a_name  = "Cowgirl",                    \
               a_mod   = "Sexrim",                             \
               a_slot  = 1,                                    \
               a_displacement  = -10                                   \
       )

 

So, there we have it: A quick guide to arrays, custom data formats, and the sex framework, all in one post.

 

Incidentally, I should probably add that this isn't just blue sky "it ought to work" stuff here. All of this is written and working in v0.03 :)

 

 

[1] This may not be true. There's a linked list implementation in the CK wiki that manages to "new" arbitrary objects, but I couldn't work out how they were doing it.

 

[2] This may be how the linked list example ended up doing it as well. I'm not sure they used the "new" keyword at all in the end.

 

ill create a subpage on srecourse.esm wiki page for these.

Posted

Are there any plans to incorporate deadric princes in the quests' date=' there are some who fit quite well. As a bonus they are also each others enemies. This could make for some interesting factions within the guild maybe?

 

Mephala VS. Molag Bal?

 

 

As known in the West, Mephala is the demon prince of murder, sex, and secrets. All of these themes contain subtle aspects and violent ones (assassination/genocide, courtship/orgy, tact/poetic truths); Mephala is understood paradoxically to contain and integrate these contradictory themes." — Vivec and Mephala

 

Molag Bal is the Daedric Prince whose sphere is the domination and enslavement of mortals. He is known as the King of Rape and the Harvester of Souls. His main desire is to harvest the souls of mortals and to bring them within his sway by spreading seeds of strife and discord in the mortal realms. One legend claims that Molag Bal created the first vampire when he raped a Nedic virgin, who in turn slaughtered a group of nomads. He is a Daedric power of much importance in Morrowind, where he is always the archenemy of Boethiah, the Prince of Plots. Other enemies are Ebonarm and Mephala. His summoning day is Chil'a. In Aldmeris, his name means Fire Stone.

 

 

[/quote']

 

Short answer: yes

Long answer: Look back through a bunch of the earlier pages.

Posted

Are there any plans to incorporate deadric princes in the quests' date=' there are some who fit quite well. As a bonus they are also each others enemies. This could make for some interesting factions within the guild maybe?

 

Mephala VS. Molag Bal?

 

 

As known in the West, Mephala is the demon prince of murder, sex, and secrets. All of these themes contain subtle aspects and violent ones (assassination/genocide, courtship/orgy, tact/poetic truths); Mephala is understood paradoxically to contain and integrate these contradictory themes." — Vivec and Mephala

 

Molag Bal is the Daedric Prince whose sphere is the domination and enslavement of mortals. He is known as the King of Rape and the Harvester of Souls. His main desire is to harvest the souls of mortals and to bring them within his sway by spreading seeds of strife and discord in the mortal realms. One legend claims that Molag Bal created the first vampire when he raped a Nedic virgin, who in turn slaughtered a group of nomads. He is a Daedric power of much importance in Morrowind, where he is always the archenemy of Boethiah, the Prince of Plots. Other enemies are Ebonarm and Mephala. His summoning day is Chil'a. In Aldmeris, his name means Fire Stone.

 

 

[/quote']

 

Short answer: yes

Long answer: Look back through a bunch of the earlier pages.

 

ive been following this thread with much anticipation but this is the first time i felt i had something to add...regaurding the deadra...a guild is really just a collection of like minded people who usualy pool thier resources to benefit all of thier guild...for example the base game thieves guild...now in that guild there are people with different skill sets useful for certain activities...infiltrating, pickpocketing, jailbreaking and extortion to name the few i remember...how about we take some of the deadric princes and give them factions within the guild...such as dibella followers who deal with pleasure slaves...followers of hircine for the slavers who excell at capturing the raw slaves...dagon followers who can break a slave quicker...molag bhaal followers could be generalists good at all but specializing in nothing...mephala followers could be good at secretly tranporting the slaves...(i havent studied the princes and thier realms of influence so if other deadra fit certain aspects better please change it to fit better) i dont know how difficult any of this would be to implement but it could be usefull (if possiable) to give players of SSG a choice in how they want to play the mod from hardcore badass to typical middle of the road slaver, niether evil or caring, who just gets the job done to tender caring master who will nurture and guide his slaves

 

well thats more than my 2 cents. please feel free to ignore or use as you modders see fit...i just wanted to throw this out for consideration

Posted

dont forget mehrunes dagon :D

 

Awh I dunno... would Mehrunes be more the top or the bottom? ^^ For me he always was such a poor thing! His very existence is actually a curse forcing him to act against his nature (he wanted to save Mundus from Alduin but was cursed to become the prince of destruction instead), everything he has ever tried either ended in a spectacular failure or came back to stab (or bite) him in the end and other Daedric Princes are always having so much fun at his expense! He got the job against his will and I think he really just wants to be a happy little leaper demon again...

Posted

dont forget mehrunes dagon :D

 

Awh I dunno... would Mehrunes be more the top or the bottom? ^^ For me he always was such a poor thing! His very existence is actually a curse forcing him to act against his nature (he wanted to save Mundus from Alduin but was cursed to become the prince of destruction instead)' date=' everything he has ever tried either ended in a spectacular failure or came back to stab (or bite) him in the end and other Daedric Princes are always having so much fun at his expense! He got the job against his will and I think he really just wants to be a happy little leaper demon again...

[/quote']

 

lol...i had to laugh...Mehrunes dagon the prince of...brat slaves...those slaves who cant but help acting out...of course all done to incite "master" into "punishing" them thus giving them the very thing they desire...interesting take on it...and more so because it rings true...rethinking...mmmmmm....fades into rumination......

Posted

Hello, a message of one of the scenario writers and co-admins of this mod:

 

As of now, the wiki seems to be closed down. We were harassed by a troll yesterday, who seemed to be offended by the themes of this mod. This same troll might have reported the wiki for objectionable content, causing it to shut down.

Doc has send a message to the Wikia staff, in hopes of getting the Wiki, or at least its contents back.

 

The unfair thing is that we were issued no warning before it closed down.

 

The only thing we can do now is wait...

Posted

Where the hell did this troll come from?

 

No idea. Someone edited the font page calling me a bigoted asshole for not personally writing same sex content for the mod and saying how come rape was ok and gay sex was not. Something about the way he phrased it seemed to suggest that the rape would have been A-OK if male rape had been possible. Go figure.

 

Anyway' date=' Dark_Lord rolled back the change and we thought no more about it. 24 hours later the wiki is closed, without so much as the courtesy of a warning note. Disappointing.

 

Anyway, it's not the end of the world.

 

[list']

[*] I've contacted wikia asking them to review the decision. I suspect that someone (who may or may not have been yesterdays' gay rape fetishist) has run to the wikia admins shouting "Homophobia! Hate speech! Pornography! Oh my!" If so, it's possible that a wikia admin too a quick look and canned the page without further thought. If so, maybe a review can get the site re-instated. If not, maybe we can still get the content from them. Let's hope so.

[*] If we can't ... we've still got a lot of stuff on the thread here. Digging it all out and getting it to a new home is going to be a stone pain in the ass ... but if it's got to be done, it's got to be done.

[*] Some of you are going to have offline copies of the data. Anyone who has anything, I'd appreciate a copy.

[*] And it's possible we can dig some of the pages out of our browser cache. I'm not having a lot of luck there just yet, but if anyone can, please do.

 

Lastly, please don't hassle the wikia dudes about this. I'm going to try and play this very responsible and businesslike and hope to persuade them that I'm not a mad rapist or homophobe, and that we have a right to the data we created, even if wikia don't care to host it. Let's not undermine that by flaming them to a crist, 'kay?

 

OK, I've rambled enough. Later, all.

 

 

We have a lot of the data on the thread here, so that's one thing.

Posted

Hello' date=' a message of one of the scenario writers and co-admins of this mod:

 

As of now, the wiki seems to be closed down. We were harassed by a troll yesterday, who seemed to be offended by the themes of this mod. This same troll might have reported the wiki for objectionable content, causing it to shut down.

Doc has send a message to the Wikia staff, in hopes of getting the Wiki, or at least its contents back.

 

The unfair thing is that we were issued no warning before it closed down.

 

The only thing we can do now is wait...

[/quote']

 

Damn, no one has a backup?

Posted

Damn' date=' no one has a backup?

[/quote']

 

Im assuming the mod is safe, im assuming its some of the images and requests as well as the stories that have gone missing

Posted

well, a lot of the detailed planning is gone. We can recreate that easy enough I guess, but there's a lot of work just went up in a puff of logic.

 

If folks have local copies, I'd like the journal of facedon valerius, the cheapcunt express and as much of Birthday Girl/the Dastard/Mthandeumz Market as I can get

Posted

well' date=' a lot of the detailed planning is gone. We can recreate that easy enough I guess, but there's a lot of work just went up in a puff of logic.

 

If folks have local copies, I'd like the journal of facedon valerius, the cheapcunt express and as much of Birthday Girl/the Dastard/Mthandeumz Market as I can get

[/quote']

 

Would have been alot worse if the current mod coding got lost, stories and ideas are easily redone, re-writing scripts is alot more difficult.

 

If we dont get the wiki page back, I do have a suggestion, possibly if the admins allow it a sub-forum here would be ideal, course thats not something that can be requested lightly, but at least source information stored here is far safer than on a wiki.

 

of course I know there are alot of modders on here who would love sub-forums and would see it as possibly favoratism, but then again I dont think many modders here have ever really attempted a mod on this scale with the exception of 'Claudia's Little Secret' which does have its own subforum.

 

Im skeptical that the wiki guys will give the data back anyway as Im pretty sure they arn't quite as understanding or open minded about...certain things that we find acceptable here...and if they do I wouldnt trust them to keep it up again indefinately

Posted

Like I say: let's keep those fingers away from the nuclear launch buttons.

 

Someone out there has just accused us of being a bunch of low-life scumbags. Let's not give him anything that could support his argument

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...