123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742 |
- # shortgs
- !! following function counts the number of guys which PC slept with.
- !! use func('shortgs','guy') or func('shortgs','guy',X) for subset (X can be 'A','B','C','AB','AC','BC')
- if $ARGS[0] = 'guy':
- r_sht=0
- if $ARGS[1] = '': $temptask = 'ABC' else $temptask = $ARGS[1]
- :loop_shtty
- $temptaskchar = mid($temptask,1,1)
- $temptask = mid($temptask,2,len($temptask)-1)
- s_sht=0
- :loop_shya
- if s_sht<=dyneval("result = <<$temptaskchar>>arraynumber"):
- s_sht += 1
- if npc_sex['<<$temptaskchar>><<s_sht>>'] > 0: r_sht = r_sht + iif(npc_gender['<<$temptaskchar>><<s_sht>>'] = 0,1,0)
- jump 'loop_shya'
- end
- if len($temptask) > 0:jump 'loop_shtty'
- result = r_sht
- killvar 'r_sht'
- killvar '$temptask'
- killvar '$temptaskchar'
- killvar 's_sht'
- end &! --- guy ---
- !! following function counts the number of girls which PC slept with.
- !! use func('shortgs','girl') or func('shortgs','girl',X) for subset (X can be 'A','B','C','AB','AC','BC')
- if $ARGS[0] = 'girl':
- r_sht=0
- if $ARGS[1] = '': $temptask = 'ABC' else $temptask = $ARGS[1]
- :loop_shttl
- $temptaskchar = mid($temptask,1,1)
- $temptask = mid($temptask,2,len($temptask)-1)
- s_sht=0
- :loop_shl
- if s_sht<=dyneval("result = <<$temptaskchar>>arraynumber"):
- s_sht += 1
- if npc_sex['<<$temptaskchar>><<s_sht>>'] > 0: r_sht = r_sht + iif(npc_gender['<<$temptaskchar>><<s_sht>>'] = 1,1,0)
- jump 'loop_shl'
- end
- if len($temptask) > 0: jump 'loop_shttl'
- result = r_sht
- killvar 'r_sht'
- killvar '$temptask'
- killvar '$temptaskchar'
- killvar 's_sht'
- end &! --- girl ---
- !! following procedure should be used when PC gets naked, but it should be paired with the reverse procedure
- !! use gs 'shortgs','undress'
- if $ARGS[0] = 'undress':
- gs 'clothing','strip'
- gs 'underwear', 'remove'
- end &! --- undress ---
- !! reverse procedure, it can be modified for lose or stolen panties later.
- !! use gs 'shortgs','dress'
- if $ARGS[0] = 'dress':
- gs 'clothing','wear_last_worn'
- gs 'underwear', 'wear'
- end &! --- dress ---
- !! procedure, which prevents PC to leave a room naked.
- !! use gs 'shortgs','checkdress',' <<$loc>>,<<$loc_arg>> ' or equivalent
- if $ARGS[0] = 'checkdress':
- if $clothingworntype = 'nude':
- msg '<b><font color="red">You need to get dressed before going out.</font></b>'
- dynamic 'gt <<$ARGS[1]>>'
- end
- end &! --- checkdress ---
- !! this is an integer sqrt function
- !! call func('shortgs','sqrt', n)
- if $ARGS[0] = 'sqrt':
- sqrtnum = ARGS[1]
- if sqrtnum = 0: result = 0 & exit
- sqrtn = sqrtnum/2 + 1
- sqrtn1 = (sqrtn + sqrtnum / sqrtn) / 2
- :sqrtloop
- if sqrtn1 < sqrtn:
- sqrtn = sqrtn1
- sqrtn1 = (sqrtn + sqrtnum / sqrtn) / 2
- jump 'sqrtloop'
- end
- result = sqrtn
- end
- !! this function calculates modul of given arguments as it was coordinates in cartezian systeme
- !! use func('shortgs','modul',n1,n2,..n8)
- if $ARGS[0] = 'modul':
- modul_sum = ARGS[1]*ARGS[1]+ARGS[2]*ARGS[2]+ARGS[3]*ARGS[3]+ARGS[4]*ARGS[4]+ARGS[5]*ARGS[5]+ARGS[6]*ARGS[6]+ARGS[7]*ARGS[7]+ARGS[8]*ARGS[8]
- result = func('shortgs','sqrt',modul_sum)
- killvar 'modul_sum'
- end
- !! day of week 1 - Monday .. 7 - Sunday
- if $ARGS[0] = 'dow':
- if ARGS[1]=0:
- D_dow = day
- M_dow = month
- Y_dow = year
- else
- D_dow = ARGS[3]
- M_dow = ARGS[2]
- Y_dow = ARGS[1]
- end
- dow_a = (14 - M_dow) / 12
- dow_Y = Y_dow - dow_a
- dow_M = M_dow + 12*dow_a - 2
- dummy = (D_dow + dow_y + dow_y/4 - dow_y/100 + dow_y/400 + (31*dow_m)/12) mod 7
- if dummy = 0: dummy = 7
- result = dummy
- end
- !! day of year
- !! use xdoy = func('shortgs','doy',year,month,day)
- if $ARGS[0] = 'doy':
- doy_N1 = 275 * ARGS[2] / 9
- doy_N2 = (ARGS[2] + 9) / 12
- doy_N3 = 1 + (ARGS[1] - 4 * (ARGS[1] / 4) + 2) / 3
- result = doy_N1 - (doy_N2 * doy_N3) + ARGS[3] - 30
- end
- if $ARGS[0] = 'mk1':
- gs 'saveposition'
- *clr & cla
- $mk_subst['0'] = 'M' & $mk_subst['1'] = 'F' & $mk_subst['2'] = 'O' & $mk_subst['3'] = 'L' & $mk_subst['4'] = 'R' & $mk_subst['5'] = 'P'
- '<center><font face="courier" size=1>'
- '<table border = 1>'
- '<tr><th>Mon</th><th>Tue</th><th>Wen</th><th>Thu</th><th>Fri</th><th>Sat</th><th>Sun</th><th>Mon</th><th>Tue</th><th>Wen</th><th>Thu</th><th>Fri</th><th>Sat</th><th>Sun</th>
- <th>Mon</th><th>Tue</th><th>Wen</th><th>Thu</th><th>Fri</th><th>Sat</th><th>Sun</th><th>Mon</th><th>Tue</th><th>Wen</th><th>Thu</th><th>Fri</th><th>Sat</th><th>Sun</th></tr>'
- i = ArrSize('$MenCal')
- empty0 = week + 29 - i - 1
- empty1 = min(28,empty0)
- full1 = max(0,28 - empty0)
- empty2 = max(0,empty0-28)
- full2 = i - full1
- empty3 = 28 - empty2 - full2
- count=0
- $tabmc = '<tr>'
- :tabmcl1
- if empty1 > 0: empty1 -=1 & $tabmc +='<td> </td>' & jump 'tabmcl1'
- :tabmcl2
- if full1 > 0:
- full1 -=1
- if $MenCal[count]='0': $tabmc +='<td bgcolor="red"><<$mk_subst[$MenCal[count]]>></td>' else $tabmc +='<td><<$mk_subst[$MenCal[count]]>></td>'
- count +=1
- jump 'tabmcl1'
- end
- $tabmc += '</tr><tr>'
- :tabmcl3
- if empty2 > 0: empty2 -=1 & $tabmc +='<td> </td>' & jump 'tabmcl3'
- :tabmcl4
- if full2 > 0:
- full2 -=1
- if $MenCal[count]='0': $tabmc +='<td bgcolor="red"><<$mk_subst[$MenCal[count]]>></td>' else $tabmc +='<td><<$mk_subst[$MenCal[count]]>></td>'
- count +=1
- jump 'tabmcl4'
- end
- :tabmcl5
- if empty3 > 0: empty3 -=1 & $tabmc +='<td></td>' & jump 'tabmcl5'
- $tabmc += '</tr><table></font></center>'
- $tabmc
- act 'Back': gt 'restoreposition'
- end
- !! use gs 'shortgs','mk'
- if $ARGS[0] = 'mk':
- gs 'saveposition'
- *clr & cla
- copyarr '$MenCalCopy','$MenCal'
- length_of_month_field = arrsize('$MenCalCopy')
- if daystart - firstmens > 40:
- mensnotfound = 1
- i = 0
- :tabmcfm
- if $MenCalCopy[length_of_month_field-i] = '0' and $MenCalCopy[length_of_month_field-i-1] = '3': mensnotfound = 0
- i += 1
- if i < length_of_month_field and mensnotfound = 1: jump 'tabmcfm'
- if mensnotfound = 0:
- firstmens = daystart - i + 1
- end
- end
- i=1
- :tabmcc1
- if daystart - firstmens < 40:
- if (daystart - firstmens + i) = 28:
- $MenCalCopy[] = ' bgcolor="#df2020"'
- elseif (daystart - firstmens + i) = 29:
- $MenCalCopy[] = ' bgcolor="#df3030"'
- elseif (daystart - firstmens + i) = 30:
- $MenCalCopy[] = ' bgcolor="#df4040"'
- elseif (daystart - firstmens + i) = 12:
- $MenCalCopy[] = ' bgcolor="#d8ff00"'
- elseif (daystart - firstmens + i) = 13:
- $MenCalCopy[] = ' bgcolor="#d0ff00"'
- elseif (daystart - firstmens + i) = 14:
- $MenCalCopy[] = ' bgcolor="#c8ff00"'
- elseif (daystart - firstmens + i) = 15:
- $MenCalCopy[] = ' bgcolor="#c0ff00"'
- elseif (daystart - firstmens + i) = 16:
- $MenCalCopy[] = ' bgcolor="#d0ff00"'
- elseif (daystart - firstmens + i) = 12+28:
- $MenCalCopy[] = ' bgcolor="#d8ff00"'
- elseif (daystart - firstmens + i) = 13+28:
- $MenCalCopy[] = ' bgcolor="#d0ff00"'
- elseif (daystart - firstmens + i) = 14+28:
- $MenCalCopy[] = ' bgcolor="#c8ff00"'
- elseif (daystart - firstmens + i) = 15+28:
- $MenCalCopy[] = ' bgcolor="#c0ff00"'
- elseif (daystart - firstmens + i) = 16+28:
- $MenCalCopy[] = ' bgcolor="#d0ff00"'
- else
- $MenCalCopy[] = ''
- end
- i += 1
- if i < 40: jump 'tabmcc1'
- end
- i = length_of_month_field
- :tabmcc2
- if i > 0:
- if $MenCalCopy[i-1] = '2' and i = 1 : $MenCalCopy[i-1] = ' bgcolor="#c0ff00"'
- if $MenCalCopy[i-1] = '2' and $MenCalCopy[i-2] = '2': $MenCalCopy[i-1] = ' bgcolor="#c0ff00"'
- if $MenCalCopy[i-1] = '2' and $MenCalCopy[i-2] = '1': $MenCalCopy[i-1] = ' bgcolor="#80ff00"' & $MenCalCopy[i-2] = ' bgcolor="#90ff00"' & $MenCalCopy[i-3] = ' bgcolor="#a0ff00"' & $MenCalCopy[i-4] = ' bgcolor="#b0ff00"' & $MenCalCopy[i-5] = ' bgcolor="#c0ff00"'
- if $MenCalCopy[i-1] = '1' and (daystart - firstmens - length_of_month_field + i) < 12: $MenCalCopy[i-1] =''
- if $MenCalCopy[i-1] = '1' and (daystart - firstmens - length_of_month_field + i) = 12: $MenCalCopy[i-1] =' bgcolor="#b0ff00"'
- if $MenCalCopy[i-1] = '1' and (daystart - firstmens - length_of_month_field + i) = 13: $MenCalCopy[i-1] =' bgcolor="#a0ff00"'
- if $MenCalCopy[i-1] = '1' and (daystart - firstmens - length_of_month_field + i) = 14: $MenCalCopy[i-1] =' bgcolor="#90ff00"'
- if $MenCalCopy[i-1] = '1' and (daystart - firstmens - length_of_month_field + i) = 15: $MenCalCopy[i-1] =' bgcolor="#80ff00"'
- if $MenCalCopy[i-1] = '1' and (daystart - firstmens - length_of_month_field + i) > 15: $MenCalCopy[i-1] =''
- if $MenCalCopy[i-1] = '0': $MenCalCopy[i-1] =' bgcolor="#df2020"'
- if $MenCalCopy[i-1] = '3': $MenCalCopy[i-1] =''
- if $MenCalCopy[i-1] = '4': $MenCalCopy[i-1] =''
- if $MenCalCopy[i-1] = '5': $MenCalCopy[i-1] =''
- if $MenCalCopy[i-1] = '6': $MenCalCopy[i-1] =''
- i -= 1
- jump 'tabmcc2'
- end
- cur_day_doy = func('shortgs','doy',year,month,day)
- if month = 1:
- dif_days = cur_day_doy + 30
- prev_month = 12
- prev_month_length = 31
- else
- prev_month = month - 1
- dif_days = cur_day_doy - func('shortgs','doy',year,prev_month,1)
- prev_month_length = func('shortgs','doy',year,month,1) - func('shortgs','doy',year,prev_month,1)
- end
- first_month_first_day_week = week - (dif_days mod 7)
- first_month_first_day_index = length_of_month_field -1 - dif_days
- r = first_month_first_day_index
- if first_month_first_day_week < 1: first_month_first_day_week += 7
- i = 42
- :tabmc21
- $mk1_mdays[] = ' ' & i -= 1 & if i > 0: jump 'tabmc21'
- i = 0
- :tabmc21a
- $mk1_mdays[i+first_month_first_day_week-1] = $str(i+1)
- i += 1
- if i < prev_month_length: jump 'tabmc21a'
- $prev_month_name = $mid($monthName[prev_month],1,1) + '<br>' + $mid($monthName[prev_month],2,1) + '<br>' + $mid($monthName[prev_month],3,1)
- k = 0
- $tabmc ='<center><font face="courier" size=5>'
- $tabmc +='<table border = 1 cellspacing="0" cellpadding="5">'
- $tabmc +='<tr><th>Month</th><th>Mon</th><th>Tue</th><th>Wen</th><th>Thu</th><th>Fri</th><th>Sat</th><th>Sun</th></tr>'
- month_weeks = (first_month_first_day_week + prev_month_length + 5)/7 - 1
- i = month_weeks
- :tabmc22
- $tabmc +='<tr>'
- j = 7
- if i = month_weeks:$tabmc +='<td rowspan="<<month_weeks+1>>" align = "center"><<$prev_month_name>></td>'
- :tabmc23
- if j > 0:
- j -=1
- if $mk1_mdays[k]=' ':
- $tabmc +='<td><<$mk1_mdays[k]>></td>'
- else
- $tabmc +='<td<<$MenCalCopy[r]>> ><<$mk1_mdays[k]>></td>'
- r +=1
- end
- k +=1
- jump 'tabmc23' & !<<$MenCalCopy[r]>>
- end
- if i > 0: i -=1 & $tabmc +='</tr>' & jump 'tabmc22'
- killvar '$mk1_mdays'
- killvar '$mk1_mdays_color'
- !! current month
- if month = 12:
- dif_days = day - 1
- cur_month = month
- cur_month_length = 31
- else
- dif_days = day - 1
- cur_month_length = func('shortgs','doy',year,month+1,1) - func('shortgs','doy',year,month,1)
- end
- second_month_first_day_week = week - (dif_days mod 7)
- second_month_first_day_index = length_of_month_field -1 - dif_days
-
- if second_month_first_day_week < 1: second_month_first_day_week += 7
- i = 42
- :tabmc31
- $mk1_mdays[] = ' ' & i -= 1 & if i > 0: jump 'tabmc31'
- i = 0
- :tabmc31a
- $mk1_mdays[i+second_month_first_day_week-1] = $str(i+1)
- i += 1
- if i < cur_month_length: jump 'tabmc31a'
- $cur_month_name = $mid($monthName[month],1,1) + '<br>' + $mid($monthName[month],2,1) + '<br>' + $mid($monthName[month],3,1)
- k = 0
- month_weeks = (second_month_first_day_week + cur_month_length + 5)/7 - 1
- i = month_weeks
- :tabmc32
- $tabmc +='<tr>'
- j = 7
- if i = month_weeks:$tabmc +='<td rowspan="<<month_weeks+1>>" align = "center"><<$cur_month_name>></td>'
- :tabmc33
- if j > 0:
- j -=1
- if $mk1_mdays[k]=' ':
- $tabmc +='<td><<$mk1_mdays[k]>></td>'
- else
- if day + second_month_first_day_week - 2 = k: $tabmc +='<td<<$MenCalCopy[r]>> ><u><b><<$mk1_mdays[k]>></b></u></td>' else $tabmc +='<td<<$MenCalCopy[r]>> ><<$mk1_mdays[k]>></td>'
- r +=1
- end
- k +=1
- jump 'tabmc33'
- end
- if i > 0: i -=1 & $tabmc +='</tr>' & jump 'tabmc32'
- killvar '$mk1_mdays'
- killvar '$mk1_mdays_color'
-
- !! next month
- if month = 12:
- dif_days = 31 - day + 1
- next_month = 1
- next_month_length = 31
- elseif month = 11:
- dif_days = 30 - day + 1
- next_month = 12
- next_month_length = 31
- else
- next_month = month + 1
- dif_days = cur_month_length - day + 1
- next_month_length = func('shortgs','doy',year,month+2,1) - func('shortgs','doy',year,month+1,1)
- end
- next_month_first_day_week = week + (dif_days mod 7)
- next_month_first_day_index = length_of_month_field -1 - dif_days
-
- if next_month_first_day_week < 1: next_month_first_day_week += 7
- i = 35
- :tabmc41
- $mk1_mdays[] = ' ' & i -= 1 & if i > 0: jump 'tabmc41'
- i = 0
- :tabmc41a
- $mk1_mdays[i+next_month_first_day_week-1] = $str(i+1)
- !! if next_month_first_day_index + i >= 0: $mk1_mdays[i+next_month_first_day_week-1] += $mk_subst[$MenCal[second_month_first_day_index + i]]
- i += 1
- if i < next_month_length: jump 'tabmc41a'
- $next_month_name = $mid($monthName[next_month],1,1) + '<br>' + $mid($monthName[next_month],2,1) + '<br>' + $mid($monthName[next_month],3,1)
- k = 0
- month_weeks = (next_month_first_day_week + next_month_length + 5)/7 - 1
- i = month_weeks
- :tabmc42
- $tabmc +='<tr>'
- j = 7
- if i = month_weeks:$tabmc +='<td rowspan="<<month_weeks+1>>" align = "center"><<$next_month_name>></td>'
- :tabmc43
- if j > 0:
- j -=1
- if $mk1_mdays[k]=' ':
- $tabmc +='<td><<$mk1_mdays[k]>></td>'
- else
- $tabmc +='<td<<$MenCalCopy[r]>> ><<$mk1_mdays[k]>></td>'
- r +=1
- end
- k +=1
- jump 'tabmc43'
- end
- if i > 0: i -=1 & $tabmc +='</tr>' & jump 'tabmc42'
- killvar '$mk1_mdays'
-
- $tabmc += '</tr><table></font></center>'
- $tabmc
- act 'Back': gt 'restoreposition'
- end
- !! gs 'shortgs','fonts'
- if $ARGS[0] = 'fonts':
- if $ARGS[1] = 'refresh':
- jump 'fontsloop'
- else
- $dynamicreturn = $ARGS[1]
- $OpenPhraseSave = $ARGS[2]
- $ClosePhraseSave = $ARGS[3]
- end
- gs 'saveposition'
- $fontlist[] = 'Lucida' & $fontlist[] = 'Ariel' & $fontlist[] = 'Tahoma' & $fontlist[] = 'Verdana' & $fontlist[] = 'Courier New' & $fontlist[] = 'Courier' & $fontlist[] = 'Georgia' & $fontlist[] = 'Times New Roman' & $fontlist[] = 'Garamond' & $fontlist[] = 'Bookman' & $fontlist[] = 'Times New Roman' & $fontlist[] = 'Times' & $fontlist[] = 'Comic Sans MS' & $fontlist[] = 'Trebuchet MS' & $fontlist[] = 'Impact' & $fontlist[] = 'BankGothic'
- $fontcolor[] = 'aqua' & $fontcolor[] = 'black' & $fontcolor[] = 'blue' & $fontcolor[] = 'magenta' & $fontcolor[] = 'green' & $fontcolor[] = 'gray' & $fontcolor[] = 'lime' & $fontcolor[] = 'maroon' & $fontcolor[] = 'navy' & $fontcolor[] = 'olive' & $fontcolor[] = 'purple' & $fontcolor[] = 'red' & $fontcolor[] = 'silver' & $fontcolor[] = 'teal' & $fontcolor[] = 'white' & $fontcolor[] = 'yellow'
- i = 15
- :fontsloop0
- if $CurFont = $fontlist[i]: curfont = i
- if $CurColor = $fontcolor[i]: curcolor = i
- i -= 1
- if i > 0: jump 'fontsloop0'
- jump 'fontsloop1'
- :fontsloop
- $OpenPhrase = '<font size="<<CurFontSize>>" color="<<$CurColor>>" face="<<$CurFont>>" >'+$CurBold+$CurItalic
- $ClosePhrase = $CurItalicBack+$CurBoldBack+'</font>'
- :fontsloop1
- *clr & cla
- $OpenPhrase+'Current font is <<$CurFont>> Size <<CurFontSize>>, the color is <<$CurColor>>, the Bold is <<iif($CurBold = ''<b>'',''On'',''Off'')>> and Italic is <<iif($CurItalic = ''<i>'',''On'',''Off'')>>'+$ClosePhrase
- '<a href="exec: curfont = (curfont + 1) mod 16 & $CurFont = $fontlist[curfont] & gs ''shortgs'',''fonts'',''refresh'' ">Change the Font</a>'
- '<a href="exec: curcolor = (curcolor + 1) mod 16 & $CurColor = $fontcolor[curcolor] & gs ''shortgs'',''fonts'',''refresh'' ">Change the Color</a>'
- '<a href="exec:$CurBold = iif($CurBold ! ''<b>'',''<b>'','' '') & $CurBoldBack = iif($CurBold = ''<b>'',''</b>'','' '') & gs ''shortgs'',''fonts'',''refresh'' ">Change the BoldState</a>'
- '<a href="exec:$CurItalic = iif($CurItalic ! ''<i>'',''<i>'','' '') & $CurItalicBack = iif($CurItalic = ''<i>'',''</i>'','' '') & gs ''shortgs'',''fonts'',''refresh'' ">Change the ItalicState</a>'
- '<a href="exec:CurfontSize -= 1 & gs ''shortgs'',''fonts'',''refresh'' ">Decrease the Font</a>   <a href="exec:CurfontSize += 1 & gs ''shortgs'',''fonts'',''refresh'' ">Increase the font</a>'
- act 'Back':
- killvar '$fontlist'
- killvar '$fontcolor'
- dynamic '<<$OpenPhraseSave>> = $OpenPhrase'
- dynamic '<<$ClosePhraseSave>> = $ClosePhrase'
- if $dynamicreturn ! '': dynamic 'dynamic <<$dynamicreturn>>'
- gt 'restoreposition'
- end
- end
- !! use gs 'shortgs','ncp_update'
- if $ARGS[0] = 'ncp_update':
- copyarr 'copy_npc_QW','npc_QW'
- copyarr 'copy_npc_rel','npc_rel'
- copyarr 'copy_npc_love','npc_love'
- copyarr '$copy_npc_usedname','$npc_usedname'
- gs 'npcstatic1'
- gs 'npcstatic2'
- gs 'npcstatic3'
- gs 'npcstatic4'
- gs 'npcstatic5'
- i = arrsize('copy_npc_QW')
- j = 1
- :loopnpcupdate
- $boy = 'A<<j>>'
- npc_QW[$boy] = copy_npc_QW[$boy]
- npc_rel[$boy] = copy_npc_rel[$boy]
- npc_love[$boy] = copy_npc_love[$boy]
- $npc_usedname[$boy] = $copy_npc_usedname[$boy]
- j += 1
- if j <= i: jump 'loopnpcupdate'
- killvar 'copy_npc_QW'
- killvar 'copy_npc_rel'
- killvar 'copy_npc_love'
- killvar '$copy_npc_usedname'
- end
- !! this function returns the numeric index of the array element which is indexed by string value.
- !! call func('shortgs', 'get_me_index', 'name of array','string index')
- !! the array can be both numeric or string: Be aware, for the search is used the value 'SearchTag' for string arrays and -2147483648 for numeric arrays.
- !! if the array consists such value, the fuction can mess the array content and return wrong value
- !! changed the value for detecting numeric element from -999 to -2147483648 (November 2020)
- if $ARGS[0] = 'get_me_index':
- $test = '<<$ARGS[1]>>[''<<$ARGS[2]>>'']'
- testas0 = arrsize('<<$ARGS[1]>>')
- if $mid($test,1,1)='$':
- $temp=dyneval('$result=<<$test>>')
- dynamic '<<$test>> = ''SearchTag'' '
- testas1 = arrsize('<<$ARGS[1]>>')
- if testas0 = testas1:
- if Enable_Android = 1:
- res = dyneval('result = arrpos(''<<$ARGS[1]>>'',''SearchTag'',0)')
- else
- res = dyneval('result = arrpos(0,''<<$ARGS[1]>>'',''SearchTag'')')
- end
- dynamic '<<$test>> = ''<<$temp>>'' '
- else
- res = -1
- killvar '<<$ARGS[1]>>',testas0
- end
- else
- temp=dyneval('result=<<$test>>')
- dynamic '<<$test>> = -2147483648'
- testas1 = arrsize('<<$ARGS[1]>>')
- if testas0 = testas1:
- if Enable_Android = 1:
- res = dyneval('result = arrpos(''<<$ARGS[1]>>'',-2147483648,0)')
- else
- res = dyneval('result = arrpos(0,''<<$ARGS[1]>>'',-2147483648)')
- end
- dynamic '<<$test>> = <<temp>>'
- else
- res = -1
- killvar '<<$ARGS[1]>>',testas0
- end
- end
- result = res
- end
- !! call gs 'shortgs', 'remove_array_element', 'name of array','string index'
- if $ARGS[0] = 'remove_array_element':
- i = func('shortgs', 'get_me_index', $ARGS[1],$ARGS[2])
- killvar '<<$ARGS[1]>>',i
- end
- if $ARGS[0] = 'testsize':
- '$npc_dna = ' + arrsize('$npc_dna')
- 'npc_firstname = ' + arrsize('$npc_firstname')
- '$npc_lastname = ' + arrsize('$npc_lastname')
- 'npc_nickname = ' + arrsize('$npc_nickname')
- '$npc_notes = ' + arrsize('$npc_notes')
- '$npc_occupation = ' + arrsize('$npc_occupation')
- '$npc_perstype = ' + arrsize('$npc_perstype')
- '$npc_pic = ' + arrsize('$npc_pic')
- '$npc_thdick = ' + arrsize('$npc_thdick')
- '$npc_usedname = ' + arrsize('$npc_usedname')
- 'npc_apprnc = ' + arrsize('npc_apprnc')
- 'npc_bust = ' + arrsize('npc_bust')
- 'npc_outfit = ' + arrsize('npc_outfit')
- 'npc_style = ' + arrsize('npc_style')
- 'npc_dick = ' + arrsize('npc_dick')
- 'npc_dob = ' + arrsize('npc_dob')
- 'npc_drunk = ' + arrsize('npc_drunk')
- 'npc_gender = ' + arrsize('npc_gender')
- 'npc_haircol = ' + arrsize('npc_haircol')
- 'npc_height = ' + arrsize('npc_height')
- 'npc_horny = ' + arrsize('npc_horny')
- 'npc_intel = ' + arrsize('npc_intel')
- 'npc_love = ' + arrsize('npc_love')
- 'npc_QW = ' + arrsize('npc_QW')
- 'npc_rel = ' + arrsize('npc_rel')
- 'npc_sex = ' + arrsize('npc_sex')
- 'npc_sexskill = ' + arrsize('npc_sexskill')
- 'npc_spermpot = ' + arrsize('npc_spermpot')
-
- 'npc_herpes = ' + arrsize('npc_herpes')
- 'npc_syth = ' + arrsize('npc_syth')
- 'npc_gon = ' + arrsize('npc_gon')
- 'npc_thrush = ' + arrsize('npc_thrush')
-
-
- 'npc_apt_type = ' + arrsize('npc_apt_type')
- 'npc_apt_number = ' + arrsize('npc_apt_number')
-
- '$npc_apt_bedroom = ' + arrsize('$npc_apt_bedroom')
- '$npc_apt_kitchen = ' + arrsize('$npc_apt_kitchen')
- '$npc_apt_livingroom = ' + arrsize('$npc_apt_livingroom')
- '$npc_apt_bathroom = ' + arrsize('$npc_apt_bathroom')
-
- 'npc_perv = ' + arrsize('npc_perv')
- 'npc_finance = ' + arrsize('npc_finance')
- 'npc_humor = ' + arrsize('npc_humor')
- 'npc_fav_pos = ' + arrsize('npc_fav_pos')
- 'npc_tit_pref = ' + arrsize('npc_tit_pref')
- 'npc_addit = ' + arrsize('npc_addit')
- 'npc_doors = ' + arrsize('npc_doors')
- 'npc_goal = ' + arrsize('npc_goal')
- 'npc_fidelity = ' + arrsize('npc_fidelity')
- 'npc_lover_days = ' + arrsize('npc_lover_days')
- 'npc_lover_keys = ' + arrsize('npc_lover_keys')
- end
- if $ARGS[0] = 'npctest':
- ' --- init --- '
- gs 'shortgs', 'testsize'
- gs 'npcgeneratec', 0, 'stranger', rand(18,45),1
- $npc_notes[$npclastgenerated]
- $npclastgenerated
- ' --- gen npc C --- '
- gs 'shortgs', 'testsize'
- gs 'npcpreservec', $npclastgenerated
- $npc_notes[$npclastsaved]
- $npclastsaved
- ' --- sav npc C to npc B --- '
- gs 'shortgs', 'testsize'
- gs 'npccleanc',$npclastsaved
- ' --- delete npc B --- '
- gs 'shortgs', 'testsize'
- end
- if $ARGS[0] = 'replace header':
- wait(ARGS[1])
- RH_Count = ARGS[2]
- $RH_temp = $MAINTXT
- :RH_label
- RH_temp_lenght = LEN($RH_temp)
- RH_temp_LFpos = STRPOS($RH_temp,'\n')
- $RH_temp = $MID($RH_temp, RH_temp_LFpos+1, RH_temp_lenght - RH_temp_LFpos)
- RH_Count -=1
- if RH_Count > 0: jump 'RH_label'
- *clr
- $ARGS[3] & $ARGS[4] & $ARGS[5] & $ARGS[6] & $ARGS[7]
- $RH_temp
- killvar '$RH_temp'
- killvar 'RH_Count'
- killvar 'RH_temp_lenght'
- killvar 'RH_temp_LFpos'
- end
- if $ARGS[0]='img msg':
- $shortgstemp = '<center><img height=280 src="<<$ARGS[1]>>"></center>'
- msg $shortgstemp
- killvar '$shortgstemp'
- end
- !! Used for dividing with accurate rounding up/down
- if $ARGS[0] = 'round_divide':
- !! ARGS[1] = value you want divided
- !! ARGS[2] = divider
- !! func('shortgs','round_divide', number, divider)
- !! func('shortgs','round_divide', 12345, 7)
- if ARGS[2] ! 0:
- temp_number = ARGS[1]/ARGS[2]
- if (ARGS[2] mod 2 ! 0 and ARGS[1] mod ARGS[2] > ARGS[2]/2) or (ARGS[2] mod 2 = 0 and ARGS[1] mod ARGS[2] >= ARGS[2]/2): temp_number += 1
- result = temp_number
- killvar 'temp_number'
- else
- msg '<b>Error: No dividing by 0! You trying to make the universe disappear?</b>'
- end
- end
- !! Used for rounding numbers to the nearest multiple of ARGS[2]
- if $ARGS[0] = 'round_tool':
- !! ARGS[1] = value you want rounded
- !! ARGS[2] = nearest multiple to round to
- !! func('shortgs','round_tool', number, multiple)
- !! func('shortgs','round_tool', 12345, 10)
- if ARGS[2] ! 0:
- temp_multiple = ARGS[2]
- result = func('shortgs','round_divide', ARGS[1], ARGS[2]) * temp_multiple
- killvar 'temp_multiple'
- else
- msg '<b>Error: Can''t round to 0!</b>'
- end
- end
- !! Randomly picks one of the items plugged in
- !!
- !! Option 1: (has 6 input limit)
- !! $ARGS[1] = 'string' or 'number' to specify what youre plugging in (can also be blank for numbers)
- !! $ARGS[2-7] = strings or numbers to pick from, limited to 6
- !! Example 1: func('shortgs', 'rand_pick', 'string', 'alpha', 'beta', 'gamma', 'delta', 'epsilon', 'zeta')
- !! Example 2: func('shortgs', 'rand_pick', '', 2, 3, 5, 7, 11, 13)
- !!
- !! Option 2: (no limitations, has to be delimited)
- !! $ARGS[1] = 'delimit' - used for larger numbers of items to pick from
- !! $ARGS[2] = 'string' or 'number' to specify what youre plugging in (can also be blank for numbers)
- !! $ARGS[3] = Delimited string to parse
- !! $ARGS[4] = Delimiter used (Default = '|' pipe)
- !! Example 1: func('shortgs', 'rand_pick', 'delimit', 'string', 'alpha|beta|gamma|delta|epsilon|zeta')
- !! Example 2: func('shortgs', 'rand_pick', 'delimit', 'number', '1-12-123-1234-12345-123456', '-')
- !! Example 3: func('shortgs', 'rand_pick', 'delimit', '', '0.1.2.3.5.7.11', '.')
- if $ARGS[0] = 'rand_pick':
- if $ARGS[1] = 'delimit':
- if $ARGS[2] = 'string':
- gs 'shortgs', 'parse_string', '$rand_pick_temp', $ARGS[3], $ARGS[4]
- $result = $rand_pick_temp[rand(0, arrsize('$rand_pick_temp')-1)]
- killvar '$rand_pick_temp'
- else
- gs 'shortgs', 'parse_string', 'rand_pick_temp', $ARGS[3], $ARGS[4]
- result = rand_pick_temp[rand(0, arrsize('rand_pick_temp')-1)]
- killvar 'rand_pick_temp'
- end
- else
- if arrsize('ARGS') > 2:
- if $ARGS[1] = 'string':
- $result = $ARGS[rand(2, arrsize('$ARGS')-1)]
- else
- result = ARGS[rand(2, arrsize('ARGS')-1)]
- end
- else
- msg '<b>Error: ''rand_pick'' is missing ARGS</b>'
- end
- end
- end
- !! Parse delimited string into an array
- !! $ARGS[1] = ArrayName (has to include $ for string values)
- !! $ARGS[2] = Delimited string to parse
- !! $ARGS[3] = Delimiter used (Default = '|' pipe)
- !! Example 1: gs 'shortgs', 'parse_string', '$my_array', 'alpha|beta|gamma|delta|epsilon|zeta'
- !! Example 2: gs 'shortgs', 'parse_string', 'my_array', '1-12-123-1234-12345-123456', '-'
- if $ARGS[0] = 'parse_string':
- !! Some failsafes (blank array name, blank string or no delimiters in string)
- if $ARGS[1] ! '':
- if $ARGS[2] ! '' and instr($ARGS[2],iif($ARGS[3] = '', '|', $ARGS[3])) > 0:
- !! Set delimiter with default if needed
- if $ARGS[3] = '':
- $ParserTmpDelim = '|'
- else
- $ParserTmpDelim = $ARGS[3]
- end
- !! Clear temp array if needed
- killvar 'ParserTmpArr' & killvar '$ParserTmpArr'
- $ParserTmpStr = $ARGS[2]
- !! Loop through string until no more delimiters found
- :StringParser01
- ParserTmpIdx = instr($ParserTmpStr, $ParserTmpDelim)
- if ParserTmpIdx > 0:
- if mid($ARGS[1],1,1) = '$':
- $ParserTmpArr[] = mid($ParserTmpStr, 1, ParserTmpIdx-1)
- $ParserTmpStr = mid($ParserTmpStr, ParserTmpIdx+1)
- else
- ParserTmpArr[] = mid($ParserTmpStr, 1, ParserTmpIdx-1)
- $ParserTmpStr = mid($ParserTmpStr, ParserTmpIdx+1)
- end
- jump 'StringParser01'
- !! Get last part since no more delimiters were found and copy to the final array
- elseif mid($ARGS[1],1,1) = '$':
- $ParserTmpArr[] = $ParserTmpStr
- copyarr $ARGS[1], '$ParserTmpArr'
- else
- ParserTmpArr[] = $ParserTmpStr
- copyarr $ARGS[1], 'ParserTmpArr'
- end
- killvar '$ParserTmpDelim'
- killvar '$ParserTmpStr'
- killvar 'ParserTmpIdx'
- killvar 'ParserTmpArr' & killvar '$ParserTmpArr'
- else
- msg '<b>Error: No delimited string found!</b>'
- end
- else
- msg '<b>Error: No array name found!</b>'
- end
- end
- --- shortgs ---------------------------------
|