# cum_call
!{$ARGS[0] is for the location and should be set for all but vaginal:
'labia' - 'pantyfront' - 'anus' - 'butt' - 'pantyrear' - 'clothes_hidden' - 'clothes' - 'back' - 'legs'
'arms' - 'face' - 'mouth' - 'hands' - 'stomach' - 'breasts' - 'hair' - 'internalcondom' - 'precum' - 'mouth_swallow'
'precum' - is for whenever Sveta has unprotected vaginal sex. It will automatically set the volume to 1.
'mouth_swallow' does the same as mouth but increments swallow for the cum eater trait
'feet' redirects to 'legs'
'anal' redirects to 'anus' (prevents further errors)
$ARGS[1] is for the name of the sexual partner
ARGS[2] is a for knowing the partner. Defaults to 0. If this is not set to 1 the status window message will mention "some guy" instead of his name.
0 - unknown sex partner (his name may be known, but she never saw him before, and likely won't ever again, or she won't remember it)
1 - sex partner is known for MC (classmate, neighbor, someone she new beforehand)
2 - MC is unaware of the act (like unconscious sex)
ARGS[3] is contraception, if left blank it will use the default, if you want to force a particular type:
1 - he thought you were on the pill but you weren''t.
2 - you are on the Pill
3 - Condom. Condoms can still fail vy the code.
4 - the Condom Broke. This is mostly used to check if cum manage resulted in a broken condom.
5 - the Condom Slipped off. Like 4, this is mostly to check if the contraception of 3 had a failure. But both 4 and 5 can be specified if you want to write an event where it fails no matter what.
6 - the condom was Sabotaged but the main character shouldn''t know that
7 - the Condom was Sabotaged by the main character.
ARGS[4] is for changing the potency, -1 for unable to impregnate, default is 10,000
NOTE volume is ignored for pregnancy risk if this or npc_spermpot[] for the partner is set
ARGS[5] is volume, default is 40 (4ml)
For a simple call you only need the first 3, ie:
gs 'cum_call', 'anus', 'Kolka', 1 - for a known partner
gs 'cum_call', 'anus' - for an unknown partner named "unknown", or
gs 'cum_call', 'anus', 'plumber' - for an unknown partner named "plumber"}
if $ARGS[0] ! 'precum':
$cumboy = $boy
if $boy ! $ARGS[1] and $ARGS[1] ! '': $boy = $ARGS[1]
!!This check if the name passed is not in the new MGX format
if $ARGS[1] = '' or isnum(mid($ARGS[1],2)) = 0:
if ARGS[2] = 0 or ARGS[2] = 2:
gs 'npcgeneratec', 0, $ARGS[1], rand(18,60), 0, 1
gs 'boyStat', $npclastgenerated
elseif ARGS[2] = 1:
tempnpcid = arrpos('$npc_usedname', $ARGS[1])
if tempnpcid > 0:
gs 'boystat', tempnpcid
'
DEVELOPER WARNING: Legacy name cum_call needs upgrade from <<$ARGS[1]>> to A<>'
else
MSG 'There has been an error in the cum_call code. Please contact a developer with what you were doing prior to receiving this message so the error may be fixed. Error type: Improper value for cum_call. Name <<$ARGS[1]>>'
gs 'boyStat', 'D0'
end
end
else
gs 'boyStat', $ARGS[1]
end
sexvolume = iif(ARGS[5] ! 0, ARGS[5], 40)
sexspecpot = ARGS[4]
sexcontra = max(0, min(7, ARGS[3]), sexcontra)
sexpartkno = iif(npc_love[$boy] > 0, 1, 0)
if ARGS[2] = 2:
sexunaware = 1
elseif ARGS[2] = 1:
sexpartkno = 1
end
if arrpos('$ARGS', 'labia') >= 0:
spafinloc = 1
elseif arrpos('$ARGS', 'pantyfront') >= 0:
spafinloc = 2
elseif arrpos('$ARGS', 'anus') >= 0:
spafinloc = 3
elseif arrpos('$ARGS', 'anal') >= 0:
spafinloc = 3
elseif arrpos('$ARGS', 'butt') >= 0:
spafinloc = 4
elseif arrpos('$ARGS', 'pantyrear') >= 0:
spafinloc = 5
elseif arrpos('$ARGS', 'clothes_hidden') >= 0:
spafinloc = 6
elseif arrpos('$ARGS', 'clothes') >= 0:
spafinloc = 7
elseif arrpos('$ARGS', 'back') >= 0:
spafinloc = 8
elseif arrpos('$ARGS', 'legs') >= 0:
spafinloc = 9
elseif arrpos('$ARGS', 'feet') >= 0:
spafinloc = 9
elseif arrpos('$ARGS', 'arms') >= 0:
spafinloc = 10
elseif arrpos('$ARGS', 'face') >= 0:
spafinloc = 11
elseif arrpos('$ARGS', 'mouth') >= 0:
spafinloc = 12
elseif arrpos('$ARGS', 'mouth_swallow') >= 0:
spafinloc = 12
stat['swallow'] += 1
elseif arrpos('$ARGS', 'hands') >= 0:
spafinloc = 13
elseif arrpos('$ARGS', 'stomach') >= 0:
spafinloc = 14
elseif arrpos('$ARGS', 'breasts') >= 0:
spafinloc = 15
elseif arrpos('$ARGS', 'hair') >= 0:
spafinloc = 16
elseif arrpos('$ARGS', 'internalcondom') >= 0:
spafinloc = 17
else
spafinloc = max(0, min(17, ARGS[0]))
!Vagina and default
end
!{'boy <<$boydesc>> loc <> contra <> vol <> ppt <> know <> unaware <> cumboy <<$cumboy>>'}
gs 'Cum_Manage'
if $cumboy ! '': $boy = $cumboy & killvar '$cumboy'
sexcontra = 0
else
!This is to check for pregnancy and stds from precum. It is added for readability when it is used in the code.
!It will call cum_call with potency of 1 40th of what it would be for a normal call.
tempSexspecpot = 0
if ARGS[4] > 0:
tempSexspecpot = ARGS[4] / 40
elseif npc_spermpot[$ARGS[1]] > 0:
tempSexspecpot = npc_spermpot[$ARGS[1]] / 40
else
tempSexspecpot = 10000 / 40
end
gs 'cum_call', '', $ARGS[1], ARGS[2], ARGS[3], tempSexspecpot, 1
killvar 'tempSexspecpot'
end
--- cum_call ---------------------------------