CheddarTrauma Posted August 28, 2018 Posted August 28, 2018 1 hour ago, skyrimfet said: i dont understand? Currently, the way NPCs randomly comment on the character being a cow is through the script bac_watchdog function emitRandomComment. This function does a bunch of checks to find a suitable nearby NPC to say a fitting comment, randomly chosen, from an array of the topics available inside the ESP plugin. This could be redone to work entirely through the .ESP plugin's Dialog Topic section instead of using scripting. The conditions section of the Dialog Topics would be used instead, meaning script wouldn't be needed as the ESP plugin would use already existing vanilla features. The only downside to this change is that it would take a couple hours to rework in TES5Edit, however I feel it's worth it in the long term to cut down on script usage. Basically, everything inside this function can already be achieved through the ESP without the use of a script. Spoiler function emitRandomComment(Actor target,int recur) debug.trace("recursive:"+recur) if recur>5 || BACConfig.commentProb==0 || speakMode == true return endif Topic TopicToSay = None Actor randomActor = Game.FindRandomActorFromRef(target, 512.0) if randomActor == lastActor emitRandomComment(target,1+recur) return endif if randomActor!=None && randomActor != BACStore.Paul && randomActor!=target && randomActor.GetRelationshipRank(target) < 3 && randomActor.isDead() == false && randomActor.isGhost() == false && randomActor.isInCombat()==false && randomActor.HasLOS(target) && randomActor.getFactionRank(bac_milkmaid) < 2 if randomActor.getRace() == blackStorage.redguardRace || randomActor.getRace() == blackStorage.orcRace || randomActor.getRace() == blackStorage.nordRace || randomActor.getRace() == blackStorage.khajiitRace || randomActor.getRace() == blackStorage.imperialRace || randomActor.getRace() == blackStorage.darkElfRace || randomActor.getRace() == blackStorage.bretonRace || randomActor.getRace() == blackStorage.woodElfRace || randomActor.getRace() == blackStorage.highElfRace || randomActor.getRace() == blackStorage.argonianRace int max = 0 debug.trace(BACConfig.generalComments) debug.trace(BACConfig.generalComments1) debug.trace(BACConfig.generalComments2) debug.trace("random comment pla"+BACActor.npcs_phase[Slot]) debug.trace("random comment act"+randomActor ) max = BACConfig.generalComments.Length TopicToSay = BACConfig.generalComments[Utility.randomInt(0, max - 1 ) ] if BACActor.npcs_phase[Slot] >= 9 max = BACConfig.generalComments1.Length TopicToSay = BACConfig.generalComments1[Utility.randomInt(0, max - 1 ) ] endif if BACActor.npcs_phase[Slot] >= 16 max = BACConfig.generalComments2.Length TopicToSay = BACConfig.generalComments2[Utility.randomInt(0, max - 1 ) ] endif ;attr comments int count = 6 count = count * 2 if BACActor.npcs_fatCow[Slot] == true && Utility.randomInt(0,count) == 0 max = BACConfig.generalCommentsFat.Length TopicToSay = BACConfig.generalCommentsFat[Utility.randomInt(0, max - 1 ) ] endif if BACConfig.solveDirt == true && BACActor.npcs_dirtCow[Slot] == true && Utility.randomInt(0,count) == 0 max = BACConfig.generalCommentsStink.Length TopicToSay = BACConfig.generalCommentsStink[Utility.randomInt(0, max - 1 ) ] endif if BACActor.npcs_celluliteCow[Slot] == true && Utility.randomInt(0,count) == 0 ActorBase randomActorBase = randomActor.GetBaseObject() as ActorBase if randomActorBase.getSex() == 0 max = BACConfig.generalCommentsCelMal.Length TopicToSay = BACConfig.generalCommentsCelMal[Utility.randomInt(0, max - 1 ) ] else max = BACConfig.generalCommentsCelFem.Length TopicToSay = BACConfig.generalCommentsCelFem[Utility.randomInt(0, max - 1 ) ] endif endif if BACActor.npcs_faceCow3[Slot] == true && Utility.randomInt(0,count) == 0 max = BACConfig.generalCommentsFace.Length TopicToSay = BACConfig.generalCommentsFace[Utility.randomInt(0, max - 1 ) ] endif if BACActor.npcs_hornyCow[Slot] == true && Utility.randomInt(0,count) == 0 max = BACConfig.generalCommentsWet.Length TopicToSay = BACConfig.generalCommentsWet[Utility.randomInt(0, max - 1 ) ] endif if BACActor.npcs_pregCow[Slot] == true && Utility.randomInt(0,count) == 0 max = BACConfig.generalCommentsPreg.Length TopicToSay = BACConfig.generalCommentsPreg[Utility.randomInt(0, max - 1 ) ] endif if BACActor.npcs_phase[Slot] > 7 if randomActor.GetRelationshipRank(target) < 0 max = BACConfig.generalCommentsEN.Length TopicToSay = BACConfig.generalCommentsEN[Utility.randomInt(0, max - 1 ) ] endif if randomActor.GetRelationshipRank(target) > 0 && Utility.randomInt(0,1)==0 max = BACConfig.generalCommentsFR.Length TopicToSay = BACConfig.generalCommentsFR[Utility.randomInt(0, max - 1 ) ] endIf endif if TopicToSay == lastTopic emitRandomComment(target,1+recur) return endif if TopicToSay != None if Utility.randomInt(0,100) <= BACConfig.commentProb randomActor.Say(TopicToSay) lastTopic = TopicToSay lastActor = randomActor endif return endif else emitRandomComment(target,1+recur) endIf else emitRandomComment(target,1+recur) endif endFunction Two mods I can think of that do it this way are DeepBlueFrog's SexLab Hormones and Sanguine Debauchery enhanced.
skyrimfet Posted August 28, 2018 Author Posted August 28, 2018 11 minutes ago, hylysi said: Currently, the way NPCs randomly comment on the character being a cow is through the script bac_watchdog function emitRandomComment. This function does a bunch of checks to find a suitable nearby NPC to say a fitting comment, randomly chosen, from an array of the topics available inside the ESP plugin. This could be redone to work entirely through the .ESP plugin's Dialog Topic section instead of using scripting. The conditions section of the Dialog Topics would be used instead, meaning script wouldn't be needed as the ESP plugin would use already existing vanilla features. The only downside to this change is that it would take a couple hours to rework in TES5Edit, however I feel it's worth it in the long term to cut down on script usage. Basically, everything inside this function can already be achieved through the ESP without the use of a script. Hide contents function emitRandomComment(Actor target,int recur) debug.trace("recursive:"+recur) if recur>5 || BACConfig.commentProb==0 || speakMode == true return endif Topic TopicToSay = None Actor randomActor = Game.FindRandomActorFromRef(target, 512.0) if randomActor == lastActor emitRandomComment(target,1+recur) return endif if randomActor!=None && randomActor != BACStore.Paul && randomActor!=target && randomActor.GetRelationshipRank(target) < 3 && randomActor.isDead() == false && randomActor.isGhost() == false && randomActor.isInCombat()==false && randomActor.HasLOS(target) && randomActor.getFactionRank(bac_milkmaid) < 2 if randomActor.getRace() == blackStorage.redguardRace || randomActor.getRace() == blackStorage.orcRace || randomActor.getRace() == blackStorage.nordRace || randomActor.getRace() == blackStorage.khajiitRace || randomActor.getRace() == blackStorage.imperialRace || randomActor.getRace() == blackStorage.darkElfRace || randomActor.getRace() == blackStorage.bretonRace || randomActor.getRace() == blackStorage.woodElfRace || randomActor.getRace() == blackStorage.highElfRace || randomActor.getRace() == blackStorage.argonianRace int max = 0 debug.trace(BACConfig.generalComments) debug.trace(BACConfig.generalComments1) debug.trace(BACConfig.generalComments2) debug.trace("random comment pla"+BACActor.npcs_phase[Slot]) debug.trace("random comment act"+randomActor ) max = BACConfig.generalComments.Length TopicToSay = BACConfig.generalComments[Utility.randomInt(0, max - 1 ) ] if BACActor.npcs_phase[Slot] >= 9 max = BACConfig.generalComments1.Length TopicToSay = BACConfig.generalComments1[Utility.randomInt(0, max - 1 ) ] endif if BACActor.npcs_phase[Slot] >= 16 max = BACConfig.generalComments2.Length TopicToSay = BACConfig.generalComments2[Utility.randomInt(0, max - 1 ) ] endif ;attr comments int count = 6 count = count * 2 if BACActor.npcs_fatCow[Slot] == true && Utility.randomInt(0,count) == 0 max = BACConfig.generalCommentsFat.Length TopicToSay = BACConfig.generalCommentsFat[Utility.randomInt(0, max - 1 ) ] endif if BACConfig.solveDirt == true && BACActor.npcs_dirtCow[Slot] == true && Utility.randomInt(0,count) == 0 max = BACConfig.generalCommentsStink.Length TopicToSay = BACConfig.generalCommentsStink[Utility.randomInt(0, max - 1 ) ] endif if BACActor.npcs_celluliteCow[Slot] == true && Utility.randomInt(0,count) == 0 ActorBase randomActorBase = randomActor.GetBaseObject() as ActorBase if randomActorBase.getSex() == 0 max = BACConfig.generalCommentsCelMal.Length TopicToSay = BACConfig.generalCommentsCelMal[Utility.randomInt(0, max - 1 ) ] else max = BACConfig.generalCommentsCelFem.Length TopicToSay = BACConfig.generalCommentsCelFem[Utility.randomInt(0, max - 1 ) ] endif endif if BACActor.npcs_faceCow3[Slot] == true && Utility.randomInt(0,count) == 0 max = BACConfig.generalCommentsFace.Length TopicToSay = BACConfig.generalCommentsFace[Utility.randomInt(0, max - 1 ) ] endif if BACActor.npcs_hornyCow[Slot] == true && Utility.randomInt(0,count) == 0 max = BACConfig.generalCommentsWet.Length TopicToSay = BACConfig.generalCommentsWet[Utility.randomInt(0, max - 1 ) ] endif if BACActor.npcs_pregCow[Slot] == true && Utility.randomInt(0,count) == 0 max = BACConfig.generalCommentsPreg.Length TopicToSay = BACConfig.generalCommentsPreg[Utility.randomInt(0, max - 1 ) ] endif if BACActor.npcs_phase[Slot] > 7 if randomActor.GetRelationshipRank(target) < 0 max = BACConfig.generalCommentsEN.Length TopicToSay = BACConfig.generalCommentsEN[Utility.randomInt(0, max - 1 ) ] endif if randomActor.GetRelationshipRank(target) > 0 && Utility.randomInt(0,1)==0 max = BACConfig.generalCommentsFR.Length TopicToSay = BACConfig.generalCommentsFR[Utility.randomInt(0, max - 1 ) ] endIf endif if TopicToSay == lastTopic emitRandomComment(target,1+recur) return endif if TopicToSay != None if Utility.randomInt(0,100) <= BACConfig.commentProb randomActor.Say(TopicToSay) lastTopic = TopicToSay lastActor = randomActor endif return endif else emitRandomComment(target,1+recur) endIf else emitRandomComment(target,1+recur) endif endFunction Two mods I can think of that do it this way are DeepBlueFrog's SexLab Hormones and Sanguine Debauchery enhanced. i will check this - but im afraid that it will ended like with no-script hooves and bell sounds - in script i can controll all what i need i can turn on/off it / change conditions / probability - i agreed to change script based bell to armor sound i then i was flooded (and im still flooded) by reports. But thx for your explain and possible solutions!
CheddarTrauma Posted August 28, 2018 Posted August 28, 2018 5 minutes ago, skyrimfet said: i will check this - but im afraid that it will ended like with no-script hooves and bell sounds - in script i can controll all what i need i can turn on/off it / change conditions / probability - i agreed to change script based bell to armor sound i then i was flooded (and im still flooded) by reports. But thx for your explain and possible solutions! Changing the conditions (including turning it on/off) and probability are all things that could be done just the same from the ESP as a script.
DrVec Posted August 28, 2018 Posted August 28, 2018 @skyrimfet, my problem is that my Body isnt scaling. I know i know something with the Body or Skeleton. I checked it over and over and reinstalled all. But only the Belly and breast are scaling but nothing else. I do have all dependencys.
skyrimfet Posted August 28, 2018 Author Posted August 28, 2018 14 minutes ago, DrVec said: @skyrimfet, my problem is that my Body isnt scaling. I know i know something with the Body or Skeleton. I checked it over and over and reinstalled all. But only the Belly and breast are scaling but nothing else. I do have all dependencys. it's not my fault - check topics related with HDT bodies. Im almost sure - that your body have undefined weights related with nodes like butt L / R etc... look for HDT body that support more nodes - btw im going to create my own pack with support for many mods like DD, Zaz, BAC and DLC + Vanilia (and more)
CheshiCat Posted August 28, 2018 Posted August 28, 2018 Good Day. Do you plan to work more with bodies, currently with bodyslide optionth within transformation progress? I really like CBBE "skiiny to big" set, and if you could add some such body-deformations to your transformation - it would be really cool.
MavisMavis Posted August 28, 2018 Posted August 28, 2018 Hi, i also encounter a bug with cow tears quest.After i finish the parade,those hunter brought me to auction(HA). The first time,my character just stand in the cage without any movement. After several reload save, i finally get into the milking machine. Unfortunately,it seems no sign to get further follow up action. whether how much time to reload,the quest seems stuck for me. Any good advice to get the quest done?? 1
Guest Posted August 28, 2018 Posted August 28, 2018 function runme(arg, iter=0){ if iter >= 666 return; runme(arg,++iter) } Consider that with your example there are more than 1300 Variables stored onto the stack !
LinksSword Posted August 28, 2018 Posted August 28, 2018 9 hours ago, skyrimfet said: i did it in in new version, be patient please;) i forget about it - thx ASAP! i can upload unp if someone is able to convert or redraw it - i can help and share files. im also sick - i reduced volume and in next update all will be fine Any idea why the bell sound doesn't work in the latest version for me? I can rollback to before the sound volume was removed and everything is fine.
pebbles321 Posted August 28, 2018 Posted August 28, 2018 10 hours ago, skyrimfet said: did you try to reload game? it's almost impossible - i never had problems with this part - are you using new version of mod? did you unpack .bsa files in past? - it's sounds like bugged copy - unique problem i have reloaded the game and i am using the newest version of the mod, all i did was install with MO i can try re-installing if that might help?
ZI0MATRIX Posted August 28, 2018 Posted August 28, 2018 Wonderful mod, thank you! How long do I need to wait in the Dragonreach milking machine? I have the felling that nothing happens and the quest ist stuck. How Can I skip to the next stage without getting into the milking machine? Thank you
skyrimfet Posted August 28, 2018 Author Posted August 28, 2018 4 hours ago, Adetu said: function runme(arg, iter=0){ if iter >= 666 return; runme(arg,++iter) } Consider that with your example there are more than 1300 Variables stored onto the stack ! It was only example - someone warn me here that recusrion is "risky programming"- so i wrote this pseudo-code as example how to prevent endless recursion - im using in papyrus limits for 4 or 5 iteration. I decided to use recursion in emitRandomComment function, becouse IHMO it was necessary - in papyrus, language without break; or continue; instruction it was just more suitable.
skyrimfet Posted August 28, 2018 Author Posted August 28, 2018 49 minutes ago, ZI0MATRIX said: Wonderful mod, thank you! How long do I need to wait in the Dragonreach milking machine? I have the felling that nothing happens and the quest ist stuck. How Can I skip to the next stage without getting into the milking machine? Thank you dont remember - i think that script count milked units and set you free after let's say 50units? its take a time -1 or 2 minutes, is depend on milk mod economy milking configuration? let me know im using milking with 1s and without feeding, so in my case it is: 1s * 50 units = 1minute (about) with default settings it is about 5-6minutes? or? someone remember?
Lady Victoria Posted August 28, 2018 Posted August 28, 2018 11 hours ago, skyrimfet said: maybe pony play - as extra plugin to devious training - but without story background. Oh I like this idea. Even more so if it had a story background! But I’m not a mod creator so I will be grateful for what ever I get ❤️
Hex Memeniac Posted August 28, 2018 Posted August 28, 2018 thx for this great mod, and nice quest i just have a weird bug with the bell maybe my char have too much big breast but the ring bell trigger every fucking sec make it unplayable so i just muted it
skyrimfet Posted August 28, 2018 Author Posted August 28, 2018 5 minutes ago, Anogia said: thx for this great mod, and nice quest i just have a weird bug with the bell maybe my char have too much big breast but the ring bell trigger every fucking sec make it unplayable so i just muted it i will fix it in next version - problem with loud sound is good known
grdx9 Posted August 29, 2018 Posted August 29, 2018 15 hours ago, skyrimfet said: freeze - so you need to reset your PC or terminate game? Not like that, my Pc is standing in the wagon but cant move or do anything the only way to move is with the command "epc", and also the hunters go away i see them walking away
LinksSword Posted August 29, 2018 Posted August 29, 2018 15 hours ago, skyrimfet said: it's not my fault - check topics related with HDT bodies. Im almost sure - that your body have undefined weights related with nodes like butt L / R etc... look for HDT body that support more nodes - btw im going to create my own pack with support for many mods like DD, Zaz, BAC and DLC + Vanilia (and more) Quick question are you still planning on integrating devious butt with bac somehow? And are there still plans for a on four mode?
pebbles321 Posted August 29, 2018 Posted August 29, 2018 20 hours ago, skyrimfet said: did you try to reload game? it's almost impossible - i never had problems with this part - are you using new version of mod? did you unpack .bsa files in past? - it's sounds like bugged copy - unique problem i got it to work, had to start a new game must have been something i did haha, also have you thought of extending the captured quest? say if the pc doesnt get out of the milking machine before X time the hunters wake up and finish the travel to sell the pc as a cow? could be quite interesting
obviouslyincognito Posted August 29, 2018 Posted August 29, 2018 I love pretty much everything about this mod and everything seems to work fine for me. The only thing I don't like is the "Naked Ass" mutation, any time my character gets this mutation I have to go back to my last save and hope I don't get it again. Is it possible to (or are you all right with) adding a way to let us disable select mutations before we begin turning into a cow? If not, is there a way for me to turn it off on my end?
skyrimfet Posted August 29, 2018 Author Posted August 29, 2018 8 minutes ago, obviouslyincognito said: I love pretty much everything about this mod and everything seems to work fine for me. The only thing I don't like is the "Naked Ass" mutation, any time my character gets this mutation I have to go back to my last save and hope I don't get it again. Is it possible to (or are you all right with) adding a way to let us disable select mutations before we begin turning into a cow? If not, is there a way for me to turn it off on my end? Technicaly yes - I can add disable/enable option but im not going to add it - every mutation is selected randomly, - Of course - if you turn off body weight support you will never get fat/slim cow, without slif you will not get curvy cow. But you cant create your own wishlist with mutaion queue. If you realy dont accept one of - just reload game and try again - if it is realy nacassary. It is IHMO power of this system : unpredictability what you get at level 20 of transformation - beauty cow or 100% freak ..or both. You can be more scared that you are. I'm going to add new one - assymetrical breasts. ]:-> soon
Guest Posted August 29, 2018 Posted August 29, 2018 Any chance of a standalone bodyparts mod? I'd like to use the udders from the start without doing a quest.
skyrimfet Posted August 30, 2018 Author Posted August 30, 2018 15 hours ago, Terteniard said: Any chance of a standalone bodyparts mod? I'd like to use the udders from the start without doing a quest. no chance
CheshiCat Posted August 30, 2018 Posted August 30, 2018 Maybe any chance of adding buffs/debuffs? Its really strange that PC could use weapons after her hand turns into hooves.
skyrimfet Posted August 30, 2018 Author Posted August 30, 2018 17 minutes ago, CheshiCat said: Maybe any chance of adding buffs/debuffs? Its really strange that PC could use weapons after her hand turns into hooves. thats true but how should i add this feature and still keep game playable?
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