Jump to content

TamagoClub 1.15c / HiyokoClub1.10a stuff ENG


Recommended Posts

As to OBMM thingy you need to write OBMM script to support it. while it isn't difficult at all, maintaining two packages could ba a hassle to Varenne. Personally I can't live without OBMM. Some of OBMM features are still better than.. at least than NMM.

 

To enable Futanari sperm, type this

set a3ltc.KokumaroMilk to 1
Link to comment
I write the content that I reported in Varenne.
I do not have hostility for rghost.
I only want you to revise it in a right direction if you revise this.
There is the script which he revised in article POST#182 which Varenne wrote.

He sets FertilizationRate in 100%, and when he checked the operation, he says, but the expression is not right.
After fertilization processing was considered to be it, he sets an ovum and the energy of a used sperm to 0.
 
The expression to calculate probability to be fertilized is defined as follows.
 
 (a4tc.FertilizationRate * (1 + IsContainer) * (a->Energy + d->Energy) / 200) 
 
Because vitelline energy was set to 0 after the first fertilization processing, probability falls.
In other words probability of the fertilization after the second is not 100%.
In addition, it may be fertilized several times because probability is not 0%.
But the probability becomes 0% about the sperm used in the first time.
 
When function a4tcfFertilize of the fertilization processing is called, a fertilized egg is produced in a function, and fertilized vitelline step is set in -10.
Because he set vitelline energy to 0, vitelline step is set in -1.
 
An ovum means a dead thing that vitelline step becomes -1.
When an ovum died after an ovum was fertilized if you set debug variable of TamagoClub than 3, log should appear.
 
When an ovum is fertilized, a fertilized egg is produced.
It is formed definitely in this function a4tcfFertilize.
A basic mistake of his script is what it continues processing in the ovum which do not exist which became the fertilized egg.
 
In addition, he may not understand the characteristic of an array variable dealt with in OBSE.
 
As for the array variable, the real data are not deleted as far as there is a variable referring to it.
When ar_Erase was carried out, the reference to the array variable was broken off and seemed to be deleted from the script.
However, the data are left in the OBSE file if a different script refers to the array variable.
 
If you follow reference if you check the statistics information of the OBSE file and do not check it, you get a wrong conclusion.
When the data which you should have deleted are still left, you will misunderstand it.
 
If you steal out of handling of while-loop after having been fertilized, an original script works definitely.
It is not necessary for the vitelline energy to coordinate the energy of the sperm.
It has been already handled in function a4tcfFertilize.
 
When processing delays that plural handling of while-loop are performed.
 
Because your script changes many phenomena, you must inspect most to prove that it acts definitely.
 
It is different in environment using it what time vitelline data are really deleted in.
When HIYOKO was deleted when you use TamagoClub and HiyokoClub, the vitelline data are deleted by OBSE.
Hiyooclub maintains information of the constitution of Hiyoko.
An ovum, a fertilized egg, the information of the sperm are included in that, too.
But HiyokoClub does not delete those data.
HiyokoClub only deletes the array variable referring to them.
OBSE only deletes the data which lost reference automatically.
 
I attach the data which I inspected.
This is inspected in the script which only stopped handling of while-loop by break command.
A Japanese letter is included in statistics information of OBSE.
When you open up a text file, please be careful about it.
 
In addition, the data at the time of the ovulation are quoted by the data which are different from the statistics information of attached OBSE.

 
Original Japanese sentence

私がVarenneに報告した内容を書きます。
私はrghostに対して敵意を持っているわけではありません。
もしあなた達がこれを修正するのであれば正しい方向で修正して欲しいだけです。
 
彼が修正したスクリプトはVarenneが書いた記事POST#182にあります。
 
彼はFertilizationRateを100%に設定して彼は動作確認をしたと彼は言っていますがその表現は正しくありません。
受精処理がされた後に彼は卵子と使用された精子のエネルギーを0に設定しています。
 
受精する確率を算出する式は以下のように定義されています。
 
 (a4tc.FertilizationRate * (1 + IsContainer) * (a->Energy + d->Energy) / 200) 
 
初回の受精処理の後で卵子のエネルギーが0に設定されたので確率が下がります。
つまり2回目以降の受精の確率は100%ではありません。
また確率が0%ではないのでそれは複数回受精する可能性があります。
但し、初回に使用された精子に関しては確率は0%になります。
 
受精処理の関数a4tcfFertilizeが呼ばれると関数内で受精卵が生成され、受精した卵子のstepは-10に設定されます。
 
彼が卵子のエネルギーを0に設定したので卵子のstepが-1に設定されます。
卵子のstepが-1になるとは卵子が死んだことを意味します。
あなたがTamagoClubのdebug変数を3以上に設定すれば卵子が受精した後に卵子が死んだとログが出るはずです。
 
卵子が受精すると受精卵が生成されます。
この関数a4tcfFertilizeで正しく生成されています。
彼のスクリプトの根本的な間違いは受精卵となった存在しない卵子で処理を続けていることです。
 
また彼はOBSEで取り扱われる配列変数の特性を理解していないのかもしれない。
 
配列変数はそれを参照している変数がある限り実際のデータは削除されません。
ar_Eraseが実行されるとその配列変数への参照が解消されそのスクリプトからは削除されたように見えます。
しかし別のスクリプトがその配列変数を参照していればデータはOBSEファイルに残っています。
 
あなたがOBSEファイルの統計情報を調べるならばあなたは参照を辿って調べなければあなたは間違った結論を得ます。
あなたはあなたが削除したはずのデータがまだ残っていると勘違いするでしょう。
 
受精した後にあなたがwhile-loopの処理を抜け出せばオリジナルのスクリプトが正しく処理してくれます。
卵子のエネルギーも精子のエネルギーも調整する必要はありません。
関数a4tcfFertilizeでそれは既に処理されています。
 
while-loopの処理が複数行われるのは処理が遅延した場合だけです。
あなたのスクリプトが多くの事象を変更しているので、それが正しく働いていることを証明するためにはあなたは多くのことを検証しなければなりません。
 
卵子のデータが実際に何時削除されるかについてはそれを使用している環境で異なります。
あなたがTamagoClubとHiyokoClubを使用している場合HIYOKOが削除された時に卵子のデータはOBSEによって削除されます。
HiyooclubはHiyokoの成り立ちの情報を保持しています。
その中に卵子、受精卵、精子の情報も含まれています。
但しHiyokoClubがそれらのデータを削除しているのではありません。
HiyokoClubはそれらを参照している配列変数を削除しているだけです。
参照がなくなったデータをOBSEが自動的に削除しているだけです。
 
私が検証したデータを添付しておきます。
これはwhile-loopの処理をbreakコマンドで中断するようにしただけのスクリプトで検証してあります。
OBSEの統計情報には日本語の文字が含まれています。
テキストファイルを開く時はそのことに気をつけてください。
 
また排卵時のデータは添付されたOBSEの統計情報とは別のデータから引用してあります。

 
a4tcfFertilize
This script is not revised.
Original.

scn a4tcfFertilize

array_var data
short idxOvum
short idxSperm
short immediatelyRemove

array_var ovum
array_var sperm
short n

Begin Function { data idxOvum idxSperm immediatelyRemove }
	SetFunctionValue ar_Null
	if idxOvum < 0 || idxOvum >= ar_Size data->Ovums
		PrintC "TamagoClub:[ERROR] idxOvum(%.f) out of range" idxOvum
		return
	endif
	if idxSperm < 0 || idxSperm >= ar_Size data->Sperms
		PrintC "TamagoClub:[ERROR] idxSperm(%.f) out of range" idxSperm
		return
	endif
	let ovum := data->Ovums[idxOvum]
	let sperm := data->Sperms[idxSperm]
	let ovum->step := -10
	let sperm->step := -10
	let n := ar_Size data->FertilizedOvums
	let data->FertilizedOvums[ n ] := ar_Map "step"::0 "Sperm"::sperm "Ovum"::ovum
	Call a4tcsFertilizedOvumOne data n
	Call a4tcsSpermOne data idxSperm
	if immediatelyRemove
		Call a4tcsOvumOne data idxOvum
	endif
	if ar_HasKey data "reap"
		ar_Erase data "reap"
	endif
	SetFunctionValue data->FertilizedOvums[ n ]
End

 
Such an inspection is not necessary if I only add break command.
I performed this inspection to show how data changed.
 
I do not say such a thing suddenly.
I pointed out a problem beforehand.
And I advised him to examine the improvement of the script.

 

Analysis data of the OBSE statistics information.7z

Link to comment

Perfectioncat, slowly I begin to unterstand you.

 

I changed a4tcsOvumOne to this one. I will test this now.

 

scn a4tcsOvumOne

array_var data
short idx

array_var d
array_var w
array_var a
ref me
;long baseenergy
long l
short i
short n
array_var sperms

Begin Function { data idx }
    let me := GetSelf
    if idx < 0 || idx >= ar_Size data->Ovums
        PrintC "TamagoClub:[ERROR] %n(%i) Ovum Index(%.f) out of range" me me idx
        return
    endif
    let d := data->Ovums[ idx ]
    if 0 < ar_Size data->Wombs
        let w := data->Wombs[ 0 ]
    endif

    if eval(d->step == 0)
        let data->Count->Ovulation += 1
        if w
            let w->Count->Ovulation += 1
        endif
        AddItemNS a4tcOvum 1
        let a4tc.nOvum += 1
        let d->Type := 3
        let d->Ext := ar_Construct StringMap
        let d->Producer := w->Producer
        let d->ProducerBase := w->ProducerBase
        let d->Owner := me
        let d->OwnerBase := me.GetBaseObject
        let d->OriginalOwner := me
        let d->OriginalOwnerBase := me.GetBaseObject
        let d->Age := 0
        let d->OvulationDate := data->LastMins + a4tc.RunInterval
        let d->LastMins := data->LastMins + a4tc.RunInterval
        let l := me.GetAV Luck
        let d->Energy := d->MaxEnergy := 50 + 0.5 * (d->Womb->Energy + Rand 0 l)

;        let baseenergy := 50 + 0.3 * (me.GetAV Strength + me.GetAV Endurance + me.GetAV Energy + Rand 0 l)   ;Womb energy is frozen, not good for leveled NPC and PC, this is a temp fix
;        let d->Energy := d->MaxEnergy := 50 + 0.5 * (baseenergy + Rand 0 l)
        let d->step := 1
        let d->Place := me.Call a5cGetParentPlace
        if a4tc.Debug >= 3
            DebugPrint "TamagoClub:%n(%i) has ovulated" me me
        endif
        let l := Call a4tcfDispatchEvent "OnOvum" 0 ar_Map "Index"::idx "Me"::me "OvumOwner"::me "OvumProducer": :D->Producer "OvumProducerBase": :D->ProducerBase "Age": :D->Age "OvumOnset": :D->OvulationDate "Ovum": :D "Womb"::w "Data"::data
        if l < 0
            let d->step := l
        endif
        Call a4tcfRefreshShowItem

    elseif eval(d->step == 1)
    while (d->LastMins <= data->LastMins + a4tc.RunInterval) && d->step == 1
        if IsActor || GetItemCount a4tcCryopreserveDevice == 0
            let d->Age += a4tc.RunInterval
            ;Fertilization?
            if IsActor == 0 && GetItemCount a4tcIVFDevice == 0
                let i := 0
                let n := 0
            else
                let sperms := data->Sperms
                let i := 0
                let n := ar_Size sperms
                while i < n
                    let a := sperms[ i ]
                    if Call a4tcRandWithLog (a4tc.FertilizationRate * (1 + IsContainer) * (a->Energy + d->Energy) / 200) a d
                        break
                    endif
                    let i += 1
                loop
            endif

            ;Hit?
            if i < n
                Call a4tcfFertilize data idx i 0
                break
            else
                let d->Energy -= 100 * a4tc.RunInterval / a4tc.OvumLife
                ;Dead?
                if eval(d->Energy <= 0)
                    let d->step := -1
                else
                    let l := Call a4tcfDispatchEvent "OnOvum" 10 ar_Map "Index"::idx "Me"::me "OvumOwner"::me "OvumProducer": :D->Producer "OvumProducerBase": :D->ProducerBase "Age": :D->Age "OvumOnset": :D->OvulationDate "Ovum": :D "Womb"::w "Data"::data
                    if l < 0
                        let d->step := l
                    endif
                endif
            endif
        endif
        let d->LastMins += a4tc.RunInterval
    loop
    endif

    if eval(d->step >= 0)
        return
    endif
    if eval(d->step > -999)
        if eval(d->step > -10) && a4tc.Debug >= 3
            DebugPrint "TamagoClub:The ovum dies in %n(%i)" me me
        endif
        Call a4tcfDispatchEvent "OnOvum" d->step ar_Map "Index"::idx "Me"::me "OvumOwner"::me "OvumProducer": :D->Producer "OvumProducerBase": :D->ProducerBase "Age": :D->Age "OvumOnset": :D->OvulationDate "Ovum": :D "Womb"::w "Data"::data
    endif
    ar_Erase data->Ovums idx
    let a4tc.nOvum -= 1
    RemoveItemNS a4tcOvum 1
    Call a4tcfRefreshShowItem

end

 

 

I left the "while (d->LastMins <= data->LastMins + a4tc.RunInterval) && d->step == 1".

If in the first loop the ovum dies, don't loop it again.

 

 

Link to comment

@supierce

a4tcfFertilize which I showed is changed to nothing.
Original.
Because I thought that it was necessary though you understood my explanation, I attached it.
I added an explanatory note to a former contribution with red not to cause misunderstanding.
 
@rghost
The red cord is checked on while sentence.
Why is it necessary to confirm it some other time?
The afterward false script that a fertilized egg was produced is not carried out.
It is an unnecessary script.
You write that you add the script to sort a dead ovum, but this script is not carried out in a dead ovum.
When vitelline energy disappeared, ar_Erase is considered to be it and cannot refer from management information.

 

I tell a person to see my article some other time.
I use the thing which revised Japanese original MOD by the inspection that I did.
It is not the thing which revised MOD distributed in this thread.
You should think that it is different MOD closely.
You do not believe my conclusion, and you should inspect it some other time.
 
I show some advice to a person inspecting it.
You exclude MOD to be related to except TamagoClub and HiyokoClub.
MOD to be related to is MOD referring to the data which TamagoClub and HiyokoClub provide.
I think that you can understand this meaning if you understand the characteristic of the array variable.
But it is not necessary to exclude it if you understand the influence range that MOD gives.
You should begin it in the environment that you exclude TamagoClub and HiyokoClub once, and carried out a clean save.
You should not do the setting that 100% of phenomena produce.
You should set a debugging level of TamagoClub to a high price.
There is the log that is not output depending on the value of the debugging variable.
Alternatively, there is it, but thinks that it is no longer necessary to say.
I suggest that you attach a clear document and report your inspection result.
It is necessary so that other people evaluate the result.
If there are a log message, statistics information of OBSE, I think that it is enough.

 

japanese original

 

 

検証する人へのアドバイスを幾つか示します。
あなたはTamagoClub及びHiyokoClub以外の関係するMODを外す。
関係するMODとはTamagoClub及びHiyokoClubが提供するデータを参照するMODです。
あなたが配列変数の特性を理解しているのであればあなたはこの意味を理解できると思います。
但し、そのMODが及ぼす影響範囲をあなたが理解しているのであればそれを外す必要はありません。
あなたは一度TamagoClub及びHiyokoClubを外してクリーンセーブを実施した環境で始めるべきです。
事象が100%発生するような設定はするべきではありません。
TamagoClubのデバッグレベルを高い値に設定すべきです。
デバッグ変数の値によっては出力されないログがあります。
これ以外にもありますがこれ以上言う必要はないと思います。

 
I wrote the following things in the report to Varenne.
It is more correct processing that it adds update processing of the processing time before break command.
I leave out this processing daringly.
This is because it is unnecessary information for me.
I think that you should add it if the information is necessary for you.
 
@rghost
I think that at least you should send words of the appreciation to Varenne.
I do not read the words of this thread.
If you send it personally, I apologize.

 

Link to comment

 
@rghost
The red cord is checked on while sentence.
Why is it necessary to confirm it some other time?
The afterward false script that a fertilized egg was produced is not carried out.
It is an unnecessary script.
You write that you add the script to sort a dead ovum, but this script is not carried out in a dead ovum.
When vitelline energy disappeared, ar_Erase is considered to be it and cannot refer from management information.

 

 

 

Yes, the script part is not executed on dead ovum.

But ovum can enter the while part with low energy.

The while loop runs two times (checkd with debugging).

If on the first run the ovum is not fertilized, energy gets removed.

It can reach energy < 0, then step will be set to -1 --> ovum death.

The script loops a second time and there is a chance the now death ovum gets fertilized.

This is pretended && d->step == 1.

 

In TamagoClub V1.12 there is no while loop and the check against death ovum will never happen.

 

Sorry, I did not understand this:"The afterward false script that a fertilized egg was produced is not carried out.

It is an unnecessary script."
 

Also I am getting on my limit with the english explanations. My native language is not english.

 

 

 

I remeber slowly why I put the extra code in the scripts.

The script loops 2 times which doubles the fertilized ovum, but I got 4 or more fertilized ova.

Then the 4 fertilized ova got to 8 empryos etc...

In the log (I had my on debug code in Tamagoclub, which printed ervery var and step to the console) I have seen the two calls to a4tcfFertilize. After a while I have seen the script was called again and two additional calls to a4tcfFertilize.

This should have never happend, because a4tcfFertilize has this:  

let ovum->step := -10

let sperm->step := -10

Putting let ovum->step := -1 after the call to a4tcfFertilize solved this.

 

 

 

I have made an error in script a4tcsOvumOne in TamagoClub on Post #17.

This line is wrong:

if IsActor == 0 && GetItemCount a4tcIVFDevice == 0 && eval (d->Energy <= 0)

The logic is wrong. Either it should be "if (IsActor == 0 && GetItemCount a4tcIVFDevice == 0) || eval (d->Energy <= 0)

or without && eval (d->Energy <= 0). This "eval (d->Energy <= 0)" was a safety check.

The check "IsActor == 0 && GetItemCount a4tcIVFDevice == 0" prevents fertilization without Actor if not the a4tcIVFDevice is present.

 

 

 

@ varenne

I will look at the OBSE data, but first I want to add again my own debug code to Tamagoclub.

This will take 1-2 weeks. I don't have much freetime. After the debug code is ready I will post the code here.

 

I thought it was normal for low level char to have lower chances???

The only bug with the frozen womb energy I have found is:

Womb will be added on Tamagoclub's first initialization. The energy is defined based on strengh, endurance and luck.

If you make a new game with female PC, you are level 1 with low values. The energy is based on these low values and is getting frozen. You can make level ups and the value never changes.

The ova are getting the energy based on womb energy.

 

Possible workaround is in the comments from a4tcsOvumOne script I postet ago.

 

 

 

 

 

For this posting I took 2 hours.

Yes, I am not good in english.

Link to comment

Quote

 

 

 


 
@rghost
The red cord is checked on while sentence.
Why is it necessary to confirm it some other time?
The afterward false script that a fertilized egg was produced is not carried out.
It is an unnecessary script.
You write that you add the script to sort a dead ovum, but this script is not carried out in a dead ovum.
When vitelline energy disappeared, ar_Erase is considered to be it and cannot refer from management information.

 


 

 

Yes, the script part is not executed on dead ovum.

But ovum can enter the while part with low energy.

The while loop runs two times (checkd with debugging).

If on the first run the ovum is not fertilized, energy gets removed.

It can reach energy < 0, then step will be set to -1 --> ovum death.

The script loops a second time and there is a chance the now death ovum gets fertilized.

This is pretended && d->step == 1.

 

In TamagoClub V1.12 there is no while loop and the check against death ovum will never happen.

 

Sorry, I did not understand this:"The afterward false script that a fertilized egg was produced is not carried out.

It is an unnecessary script."
 

Also I am getting on my limit with the english explanations. My native language is not english.

 

 

 

I remeber slowly why I put the extra code in the scripts.

The script loops 2 times which doubles the fertilized ovum, but I got 4 or more fertilized ova.

Then the 4 fertilized ova got to 8 empryos etc...

In the log (I had my on debug code in Tamagoclub, which printed ervery var and step to the console) I have seen the two calls to a4tcfFertilize. After a while I have seen the script was called again and two additional calls to a4tcfFertilize.

This should have never happend, because a4tcfFertilize has this:  

let ovum->step := -10

let sperm->step := -10

Putting let ovum->step := -1 after the call to a4tcfFertilize solved this.

 

 

 

I have made an error in script a4tcsOvumOne in TamagoClub on Post #17.

This line is wrong:

if IsActor == 0 && GetItemCount a4tcIVFDevice == 0 && eval (d->Energy <= 0)

The logic is wrong. Either it should be "if (IsActor == 0 && GetItemCount a4tcIVFDevice == 0) || eval (d->Energy <= 0)

or without && eval (d->Energy <= 0). This "eval (d->Energy <= 0)" was a safety check.

The check "IsActor == 0 && GetItemCount a4tcIVFDevice == 0" prevents fertilization without Actor if not the a4tcIVFDevice is present.

 

 

 

@ varenne

I will look at the OBSE data, but first I want to add again my own debug code to Tamagoclub.

This will take 1-2 weeks. I don't have much freetime. After the debug code is ready I will post the code here.

 

I thought it was normal for low level char to have lower chances???

The only bug with the frozen womb energy I have found is:

Womb will be added on Tamagoclub's first initialization. The energy is defined based on strengh, endurance and luck.

If you make a new game with female PC, you are level 1 with low values. The energy is based on these low values and is getting frozen. You can make level ups and the value never changes.

The ova are getting the energy based on womb energy.

 

Possible workaround is in the comments from a4tcsOvumOne script I postet ago.

 

 

 

 

 

For this posting I took 2 hours.

Yes, I am not good in english.

 

 

 

 

I must apologize to you first; I'm sorry.
 
It is different from this problem, but your judgment is right.
 
I misunderstood it to see the reason why you added the script to.
It is right processing that you added the script to while.
Because this script could not be carried out with a dead egg, I overlooked the meaning of the script.
What you discovered is in the middle of judging the right or wrong of the fertilization, and an ovum is a dead case.
I think that the script which you added is a smart modification.
It is a very rare case, but thinks that you should deal.
 
I want to take in the correction.
 
You found new problems, and you improved it; therefore I thank you.
 
japanese original

私は最初にあなたに謝らなければならない、ごめんなさい。
それは今回の問題とは異なりますがあなたの判断は正しい。
私はあなたがそのスクリプトを追加した理由を見て勘違いをしていました。
あなたがwhileにそのスクリプトを追加したのは正しい処理です。
死んだ卵でこのスクリプトが実行されるはずが無いのでスクリプトの意味を見落としました。
あなたが発見したのは受精の可否を判断している途中で卵子が死んだケースです。
あなたが追加したスクリプトが賢い修正方法だと思います。
非常に稀なケースですが対処すべきだと思います。
私はその修正を取り込みたいと思います。
あなたは新しい問題点を見つけ、あなたはそれを改善した、だから私はあなたに感謝します。

 

Link to comment

The low energy level of the womb installed in a new player character was documented back when I first looked at LPK. It's why I added the womb energy tonic to Tamago Fertility Clinic; just take that every 5 - 10 levels and it reruns the original calculation with your new values.

 

I don't believe sperm are affected; they certainly aren't in 1.12. I remain unconvinced that 1.15 is an 'upgrade'.

 

Edit : in fact, the first Oblivion mod I wrote was to fix the womb energy thing; it just reran the calculation whenever the player levelled up. I'd forgotten about it until now. At the time I usually didn't want my heroine to become pregnant, so I stopped using it.

 

 

Link to comment

@ @rghost - I had no idea English wasn't your primary language! Sorry for so much to read! (What is your primary language?)

 

Looks like you and PerfectionCat are making progress, and yes I agree to looking at .obse AFTER you alter current scripts.

 

 

I thought it was normal for low level char to have lower chances???

The only bug with the frozen womb energy I have found is:

Womb will be added on Tamagoclub's first initialization. The energy is defined based on strengh, endurance and luck.

If you make a new game with female PC, you are level 1 with low values. The energy is based on these low values and is getting frozen. You can make level ups and the value never changes.

The ova are getting the energy based on womb energy.

 

Yes, I read that too yet still don't understand it completely or why the MOD author would impose such a 'hard lock' on advancing. I too need to read and understand more of the scripts before I can truly and accurately speak as to what the functionality intent is. Is the STR, ENDUR, LUCK calculations limited to only certain aspects of sperm,  ovum then post-fertilized, or is it across the board for all items throughout their life cycles? That was what I was studying last before I had to return to work.

(German)

 

 

The sperm is calculated on creation time based on current strength, endurance and luck.

 

After thinking about pros and cons, I want to copy the womb energy formula to the script a4tcsOvumOne.

I want to tear off the depency between womb energy and ovum energy. The ovum energy will be calculated with current values like the sperm on creation.

I will add some debug lines which print the new and the old value to console for testing.

 

script a4tcsWombOne:

            if eval(d->Energy < d->MaxEnergy)

                let d->Energy += 1 + me.GetAV Endurance / 10

                if eval(d->Energy > d->MaxEnergy)

                    let d->Energy += d->MaxEnergy

                endif

            endif

 

 

The author has began to implement a energy cycle for the womb.

But this script part is not finished and doesn't do anything.

There is an error too, the red marked part should be let d->Energy := d->MaxEnergy.

 

 

I have reworked the known error list on post #17.

Link to comment

I think the intention of the author of the script to be the following.

 

script a4tcsWombOne:

            if eval(d->Energy =< d->MaxEnergy)
                let d->Energy += 1 + me.GetAV Endurance / 10
                if eval(d->Energy > d->MaxEnergy)
                    let d->Energy -= d->MaxEnergy
                endif
            endif

 

Because the width of the change is too big, I do not recommend it.
If energy consumption is so big, the organ dies.

 

When it sets the maximum of the energy, the ceremony of first judgment is not established from the next time.
Because its energy becomes the maximum at time when the uterus is produced, the script is not carried out now.
 
Because this script does not act, I think that the author does not inspect it about this function enough.
You revise the incomplete script which an author does not inspect daringly, and I think that it is not necessary to let it act.
 
When I showed this problem, I write my opinion.
 
I show reference data when you consider the energy change of the uterus.

A precondition for calculation.
The level of mother is 1.
The family is Bosmer.
Energy of NPC used for a calculation is Energy of the AI, but supposes it to be 0 because I did not confirm a value when AI is not set.
The random number used for a calculating formula assumes a case of all 1 or 0.
 
Because the value of the parameter to be used for a calculating formula was low, I chose Bosmer.
The racial parameter referred to the following URLs.
 
 
These are approximate values.
 
Minimum Energy of Womb:70
let l := me.GetAV Luck
let d->Energy := d->MaxEnergy := 50 + 0.3 * (me.GetAV Strength + me.GetAV Endurance + me.GetAV Energy + Rand 0 l)
 
Minimum Energy of Ovum:85
let l := me.GetAV Luck
let d->Energy := d->MaxEnergy := 50 + 0.5 * (d->Womb->Energy + Rand 0 l)
 
Minimum Energy of Sperm:50
let l := me.GetAV Luck
let d->Energy := d->MaxEnergy := 20 + 0.5 * (me.GetAV Strength + me.GetAV Endurance + me.GetAV Energy) + Rand 0 l
 
Energy which Womb decreased:4
let d->Energy += 1 + me.GetAV Endurance / 10
if eval(d->Energy > d->MaxEnergy)
let d->Energy -= d->MaxEnergy
endif
 
Lowest Energy of Ovum generated then:52
let l := me.GetAV Luck
let d->Energy := d->MaxEnergy := 50 + 0.5 * (d->Womb->Energy + Rand 0 l)
 
Duration of survival of Ovum:Two days
RunInterval:Four game hours
 
Energy consumption of Ovum:8
let d->Energy -= 100 * a4tc.RunInterval / a4tc.OvumLife
 
Fertilization probability:7.65% (In the case of FertilizationRate:15%)
a4tc.FertilizationRate * (1 + IsContainer) * (a->Energy + d->Energy) / 200
 
Only half degree of the duration of survival can survive
 
Lowest Energy of FertilizedOvum fertilized then:51
let d->Energy := d->MaxEnergy := (d->Ovum->MaxEnergy + d->Sperm->MaxEnergy) / 2
 
Duration of survival of FertilizedOvum:Two days
RunInterval:Four game hours
 
Energy consumption of FertilizedOvum:8
let d->Energy -= 100 * a4tc.RunInterval / a4tc.FertilizedOvumLife
 
Implantation probability:1.375% (In the case of ConceptionRate:5%)
a4tc.ConceptionRate * (d->Energy + w->Energy) / 200
 
Only half degree of the duration of survival can survive
 
The minimum conception probability when I confirmed it in my environment was 2%.(ConceptionRate is 5% of situation.)
 
japanese origianl

あなたが子宮のエネルギー変動を考慮する場合の参考データを提示する。
算出の前提条件。
母親のレベルは1。
種族はBosmer。
計算に用いられるNPCのEnergyはAIのEnergyであるがAIが設定されていない場合の値を確認したことが無いので0と仮定している。
計算式に使用されている乱数は全て1もしくは0の場合を想定している。
 
計算式に使用されるパラメータの値が低いのでBosmerを選択した。
種族のパラメータは以下のURLを参照した。
 
 
これらは概算値である。
 
Wombの最低Energy:70程度
let l := me.GetAV Luck
let d->Energy := d->MaxEnergy := 50 + 0.3 * (me.GetAV Strength + me.GetAV Endurance + me.GetAV Energy + Rand 0 l)
 
Ovumの最低Energy:85程度
let l := me.GetAV Luck
let d->Energy := d->MaxEnergy := 50 + 0.5 * (d->Womb->Energy + Rand 0 l)
 
Spermの最低Energy:50程度
let l := me.GetAV Luck
let d->Energy := d->MaxEnergy := 20 + 0.5 * (me.GetAV Strength + me.GetAV Endurance + me.GetAV Energy) + Rand 0 l
 
Wombの低下したEnergy:4程度
let d->Energy += 1 + me.GetAV Endurance / 10
if eval(d->Energy > d->MaxEnergy)
let d->Energy -= d->MaxEnergy
endif
 
この時生成されたOvumの最低Energy:52程度
let l := me.GetAV Luck
let d->Energy := d->MaxEnergy := 50 + 0.5 * (d->Womb->Energy + Rand 0 l)
 
Ovumの生存期間:2日間
RunIntervalは4時間
Ovumのエネルギー消費は8程度
let d->Energy -= 100 * a4tc.RunInterval / a4tc.OvumLife
 
受精確率:7.65% (FertilizationRate:15%の場合)
a4tc.FertilizationRate * (1 + IsContainer) * (a->Energy + d->Energy) / 200
 
生存期間の半分程度のエネルギーしかない。
 
この時受精したFertilizedOvumの最低Energy:51
let d->Energy := d->MaxEnergy := (d->Ovum->MaxEnergy + d->Sperm->MaxEnergy) / 2
 
FertilizedOvumの生存期間:2日間
RunIntervalは4時間
FertilizedOvumのエネルギー消費は8程度
let d->Energy -= 100 * a4tc.RunInterval / a4tc.FertilizedOvumLife
 
着床確率:1.375% (ConceptionRate:5%の場合)
a4tc.ConceptionRate * (d->Energy + w->Energy) / 200
 
生存期間の半分程度のエネルギーしかない。
 
私の環境で確認した最低の受胎確率は2%だった。(ConceptionRateが5%の状況である。)

 

Link to comment

 

I think the intention of the author of the script to be the following.

 

script a4tcsWombOne:

            if eval(d->Energy =< d->MaxEnergy)

                let d->Energy += 1 + me.GetAV Endurance / 10

                if eval(d->Energy > d->MaxEnergy)

                    let d->Energy -= d->MaxEnergy

                endif

            endif

 

Because the width of the change is too big, I do not recommend it.

If energy consumption is so big, the organ dies.

 

When it sets the maximum of the energy, the ceremony of first judgment is not established from the next time.
Because its energy becomes the maximum at time when the uterus is produced, the script is not carried out now.
 
Because this script does not act, I think that the author does not inspect it about this function enough.
You revise the incomplete script which an author does not inspect daringly, and I think that it is not necessary to let it act.
 
When I showed this problem, I write my opinion.
 
I show reference data when you consider the energy change of the uterus.

A precondition for calculation.
The level of mother is 1.
The family is Bosmer.
Energy of NPC used for a calculation is Energy of the AI, but supposes it to be 0 because I did not confirm a value when AI is not set.
The random number used for a calculating formula assumes a case of all 1 or 0.
 
Because the value of the parameter to be used for a calculating formula was low, I chose Bosmer.
The racial parameter referred to the following URLs.
 
 
These are approximate values.
 
Minimum Energy of Womb:70
let l := me.GetAV Luck
let d->Energy := d->MaxEnergy := 50 + 0.3 * (me.GetAV Strength + me.GetAV Endurance + me.GetAV Energy + Rand 0 l)
 
Minimum Energy of Ovum:85
let l := me.GetAV Luck
let d->Energy := d->MaxEnergy := 50 + 0.5 * (d->Womb->Energy + Rand 0 l)
 
Minimum Energy of Sperm:50
let l := me.GetAV Luck
let d->Energy := d->MaxEnergy := 20 + 0.5 * (me.GetAV Strength + me.GetAV Endurance + me.GetAV Energy) + Rand 0 l
 
Energy which Womb decreased:4
let d->Energy += 1 + me.GetAV Endurance / 10
if eval(d->Energy > d->MaxEnergy)
let d->Energy -= d->MaxEnergy
endif
 
Lowest Energy of Ovum generated then:52
let l := me.GetAV Luck
let d->Energy := d->MaxEnergy := 50 + 0.5 * (d->Womb->Energy + Rand 0 l)
 
Duration of survival of Ovum:Two days
RunInterval:Four game hours
 
Energy consumption of Ovum:8
let d->Energy -= 100 * a4tc.RunInterval / a4tc.OvumLife
 
Fertilization probability:7.65% (In the case of FertilizationRate:15%)
a4tc.FertilizationRate * (1 + IsContainer) * (a->Energy + d->Energy) / 200
 
Only half degree of the duration of survival can survive
 
Lowest Energy of FertilizedOvum fertilized then:51
let d->Energy := d->MaxEnergy := (d->Ovum->MaxEnergy + d->Sperm->MaxEnergy) / 2
 
Duration of survival of FertilizedOvum:Two days
RunInterval:Four game hours
 
Energy consumption of FertilizedOvum:8
let d->Energy -= 100 * a4tc.RunInterval / a4tc.FertilizedOvumLife
 
Implantation probability:1.375% (In the case of ConceptionRate:5%)
a4tc.ConceptionRate * (d->Energy + w->Energy) / 200
 
Only half degree of the duration of survival can survive
 
The minimum conception probability when I confirmed it in my environment was 2%.(ConceptionRate is 5% of situation.)
 
japanese origianl

あなたが子宮のエネルギー変動を考慮する場合の参考データを提示する。
算出の前提条件。
母親のレベルは1。
種族はBosmer。
計算に用いられるNPCのEnergyはAIのEnergyであるがAIが設定されていない場合の値を確認したことが無いので0と仮定している。
計算式に使用されている乱数は全て1もしくは0の場合を想定している。
 
計算式に使用されるパラメータの値が低いのでBosmerを選択した。
種族のパラメータは以下のURLを参照した。
 
 
これらは概算値である。
 
Wombの最低Energy:70程度
let l := me.GetAV Luck
let d->Energy := d->MaxEnergy := 50 + 0.3 * (me.GetAV Strength + me.GetAV Endurance + me.GetAV Energy + Rand 0 l)
 
Ovumの最低Energy:85程度
let l := me.GetAV Luck
let d->Energy := d->MaxEnergy := 50 + 0.5 * (d->Womb->Energy + Rand 0 l)
 
Spermの最低Energy:50程度
let l := me.GetAV Luck
let d->Energy := d->MaxEnergy := 20 + 0.5 * (me.GetAV Strength + me.GetAV Endurance + me.GetAV Energy) + Rand 0 l
 
Wombの低下したEnergy:4程度
let d->Energy += 1 + me.GetAV Endurance / 10
if eval(d->Energy > d->MaxEnergy)
let d->Energy -= d->MaxEnergy
endif
 
この時生成されたOvumの最低Energy:52程度
let l := me.GetAV Luck
let d->Energy := d->MaxEnergy := 50 + 0.5 * (d->Womb->Energy + Rand 0 l)
 
Ovumの生存期間:2日間
RunIntervalは4時間
Ovumのエネルギー消費は8程度
let d->Energy -= 100 * a4tc.RunInterval / a4tc.OvumLife
 
受精確率:7.65% (FertilizationRate:15%の場合)
a4tc.FertilizationRate * (1 + IsContainer) * (a->Energy + d->Energy) / 200
 
生存期間の半分程度のエネルギーしかない。
 
この時受精したFertilizedOvumの最低Energy:51
let d->Energy := d->MaxEnergy := (d->Ovum->MaxEnergy + d->Sperm->MaxEnergy) / 2
 
FertilizedOvumの生存期間:2日間
RunIntervalは4時間
FertilizedOvumのエネルギー消費は8程度
let d->Energy -= 100 * a4tc.RunInterval / a4tc.FertilizedOvumLife
 
着床確率:1.375% (ConceptionRate:5%の場合)
a4tc.ConceptionRate * (d->Energy + w->Energy) / 200
 
生存期間の半分程度のエネルギーしかない。
 
私の環境で確認した最低の受胎確率は2%だった。(ConceptionRateが5%の状況である。)

 

 

I would comment the block out, doesn't do anything.

 

Link to comment

Debug Edition of TamagoClub.esm based on my Rev 2 on post #17
 
Should fix following errors:

- Multiple fertilized ova etc...
- The while condition in a4tcsWombOne, a4tcsOvumOne, a4tcsSpermOne, a4tcsFertilizedOvumOne and a4tcsConceptionOne ignores step changes.
- Use of undeclared variable a4tc.EventScan in a4tcsSettingsSpell
-  Womb added on Tamagoclub's first initialization will get the energy based on strengh, endurance and luck.
  If you make a new game with female PC and you are level 1 with low values,
  the energy is based on these low values and is getting frozen. You can make level ups and the value never changes.
  The energy is used in the ova energy calculation and other scripts.
- Minor incompatibility with Construction Set Extender v6.0:
  Declare a variable with name "wait" in a4tcsSettingsSpell and a4tcqMain is not allowed.
 

Change between Rev 2 and Rev 3:

- Some unnecessary code changes were removed

- The womb energy is now calculated on every state change. This is called:

  let l := me.GetAV Luck
  let d->Energy := d->MaxEnergy := 50 + 0.3 * (me.GetAV Strength + me.GetAV Endurance + me.GetAV Energy + Rand 0 l)

  It is the same function which is executed for the first initialisation. Now its executed on very womb state change.

  The lowest running interval is one run per in game day. It debends on state. Let it run more frequently will consume more cpu power.

 

 

This is a test version for debug only.
 

For a logfile you need ConScribe installed.

Don't report bugs with this version without a logfile.

This version prints a lot of information to the console. This doesn't need the debug mode to be enabled,

it's hardcoded with printtoconsole.

 

 A version without this debug code will be released, once this version is considered as stable.
 
 

 
 
 
Edit 2013-10-21
Print additional info during womb state change (luck, strength, endurance...)

 

2013-11-03

a4tcqMain: Missing "r" on line:

           MessageBoxEX "TamagoClub:[WARN]%rIf you want to have support for Lovers sex scenes install LoversTamagoClub.esp"

TamagoClubv1_15c-Rev_3_Test_Debug.7z

Link to comment

Debug Edition of TamagoClub.esm.

 

This is a test version for debug only.

 

You need ConScribe installed.

 

 

 

The womb energy is used in many scripts. The womb energy is now calculated on every state change.

In the formel there is a random value, the womb energy will go a little up and down.

Thats the original formel!

 

I'm sorry, I do not know the meaning.

Because an original script is wrong, the energy of the uterus does not change.

Link to comment

 

Debug Edition of TamagoClub.esm.

 

This is a test version for debug only.

 

You need ConScribe installed.

 

 

 

The womb energy is used in many scripts. The womb energy is now calculated on every state change.

In the formel there is a random value, the womb energy will go a little up and down.

Thats the original formel!

 

I'm sorry, I do not know the meaning.

Because an original script is wrong, the energy of the uterus does not change.

 

 

The womb energy is calculated on every state change. This will fix this:

-  Womb added on Tamagoclub's first initialization will get the energy based on strengh, endurance and luck.

  If you make a new game with female PC and you are level 1 with low values,

  the energy is based on these low values and is getting frozen. You can make level ups and the value never changes.

  The energy is used in the ova energy calculation and other scripts.

 

The change for this is made in script a4tcsWombOne.

 

 

I can change the recalculation of womb energy from every state change to beginning of each early follicular phase,

if the majority wants it.

 

 

 

 

 

 

Link to comment

Varenne, as far as I can tell without running the proposed new version of 1.15, all the proposed change will do as far as TFC is concerned is make the womb energy drink redundant (it runs the same update, just only on the player, whenever you like). I'm not going to lose any sleep over that.

 

I would agree that on menstruation start is a better time to update the energy level then on every state change, if we're talking about running this on all NPCs (never mind crabs, rats etc) as well as the player, which I think we are (if we aren't, then on level up is the best time).

 

I don't want to sound like a stuck record, but I'm still puzzled as to what problem in 1.12 version 1.15 was supposed to fix. The only change I've felt compelled to make in my copy of 1.12 was to force births at the end of the allowed pregnancy time, rather than have postterm pregnancy/miscarriage.

 

Link to comment

 

@ rghost

 

Well, I think every state change may be too often. That may be opening up situations where the script doesn't trigger properly. I think incremental, gradual change to the scripts is better, IMO, with lots of in-game testing.

 

So I think I would vote for beginning of each early follicular phase instead. At least initially.

 

Also, do current 'fixed' scripts allow for affects to pregnancy such as fighting and getting low endurance? Getting injured and having a remote chance of a miscarriage simulates a more realistic pregnancy, IMO. (Just an idea I had as I've been reading through your latest posts.)

 

Also, what affect will this change have on other MODs like Tamago Fertility Clinic? Specifically the functionality in the OP here:

 

 

I think it will overwrite changes by Tamago Fertility Clinic to womb energy.

 

 

Varenne, as far as I can tell without running the proposed new version of 1.15, all the proposed change will do as far as TFC is concerned is make the womb energy drink redundant (it runs the same update, just only on the player, whenever you like). I'm not going to lose any sleep over that.

 

I would agree that on menstruation start is a better time to update the energy level then on every state change, if we're talking about running this on all NPCs (never mind crabs, rats etc) as well as the player, which I think we are (if we aren't, then on level up is the best time).

 

I don't want to sound like a stuck record, but I'm still puzzled as to what problem in 1.12 version 1.15 was supposed to fix. The only change I've felt compelled to make in my copy of 1.12 was to force births at the end of the allowed pregnancy time, rather than have postterm pregnancy/miscarriage.

 

This script runs on all NPC's etc.

 

Main difference between v1.12 and v1.15?

The main goal for v1.15 is to reduce the cpu load to allow more NPC's added by mods.

Script execute time is halfed, thats why the while loops are there.

 

 

I have only copied the formel for womb energy for the first install of womb.

                    let l := me.GetAV Luck            ; Temp fix for frozen womb energy. Frozen womb energy is bad for leveled character

                    let d->Energy := d->MaxEnergy := 50 + 0.3 * (me.GetAV Strength + me.GetAV Endurance + me.GetAV Energy + Rand 0 l)

 

What is Energy (GetAV Energy)?

In the Wiki it's descriped for NPC and Creature, does PC have it?

 

If something in compat reduces endurance before the energy is getting updated, it will affect the whole process.

Womb energy is not only used for ovum! Thats what I thought first, too.

Also, the conception check and embryo energy are depending on womb energy.

 

If I recalculate it on beginning of each early follicular phase, one complete phase of menstruation cycle will depend on the value. Thats default 7 ingame days?

Thats why I recalculate the value on each state change.

 

 

 

 

 

Link to comment

This mod is script heavy, right?

I'm asking this because my FPS lowered dramatically since I installed a LWPK plugin but I'm not sure which. I'm fairly certain it's TamagoClub/HiyokoClub, though.

If so, are there any negative consequences of uninstalling it DURING a playthrough, assuming my character isn't pregnant?

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use