Silvie Technical Items

From whuckaba
Jump to: navigation, search


Just a few technical items ... mostly for concept and thoughts...

Contents

BUGS

!lock is bugged now for some reason... will be working into new !teachsilvie anyhow.. but still.

Sleep

Right now, her energy is set to a max of 14400. She should no longer tell you exactly where she is in this cycle, but should give you good hints. right now its broken into 0-10%, 10-30%, 30-50%, 50-70%, 70-90%, 90-100% groups for the response, but this too may change.

Idling costs 1 unit per second. Sleeping gains 4 units per second. action response costs 4 units per response.

At this time no other item costs or gains energy. However this I do want to change.. I haven't decided completely, but I think on teaching I will allow setting of Positive and Negative energy attributes.. I still have to fix teach to understand locking at the keyword level... once thats implemented... i should be able to steal from that to implement lock, energy, and maybe happiness as well.. at the command level.

Happiness

Happiness is not programed at this time...

I hope to make it responsive to praises and scoldings (highest delimiter), as well as some actions (to a more limited basis)..

I am thinking of having it such she can commit suicide if she is unhappy enough.. (/part) ...

thoughts and suggestions are appreciated.

She will become happy as she starts to feel abandoned by her %goshujinsama ... probably harsher so...


Health

long long term project... low happiness + low energy = chance to get 'sick'

probably will greatly impact energy level (either max or ratio, or both) ..

other than that not sure.


Variable / Functions

Note for $something() items...

If it is just "something" it can be standalone line. But if it has "$something(something).something", must either be used in a varible in one way or another, including %a = $something(something).something ... even if most of these will not return a usable value (except as noted as "returns").

This list only includes items directly related to SILVIE's function.. not the use of her !poll functionality... which needs a lot more attention as well.

/globalme and /globalsay

This is the global saying commands.

%goshujinsama

Username of the goshujinsama. ... NOTE: this is reset each USERLEVELSET ... and is mostly intended for scripting purposes only.. use $goshujinsama instead... to be sure.

%userlevel

User level of the current $nick, as set by $userlevelset



$nickname

  • Alias for $nickhandle($nick).get intended for use in !teachsilvie
  • Technical note $nickname($1) will return nickname of $1 instead of $nick

$userlevelset()

Tests, Returns, and Sets Userlevel status.

userlevelset

Sets %userlevel and %userlevela for the current nick.

$userlevelset( $1 ).unfriend

Unfriends $1

$userlevelset( $1 ).friend

Friends $1

$userlevelset( $1 ).cfriend

Friends $1 with plus feature

$userlevelset( $1 ).goshujin

Gets $1 as Goshujin note: verify spelling

$userlevelset( $1 ).getfriend

Returns the userlevel of user $1

$prohibittext()

(new with 0.1.2008.12.10a.ALPHA) Will return, set, and verify word restrictions

$prohibittext( $1- )

Checks $1- for words in the restrict and approve lists. (automatically restricts all $ and % words except those approved, automatically approves all words except those disallowed). Running as such will cault "HALT" so no further script action is performed, intended for protecting !TeachSilvie and other vulnerable functions. TO IMPLEMENT: goshujinsama will have a direct by-pass and allow all words desired. may extend to close friends.

$prohibittext( $1- ).check

Returns a list of disallowed items.

$prohibittext( $1 ).allow

Allows the use of $1 in command statements.

$prohibittext( $1 ).disallow

Forbids the use of $1 in command statemnets.

$sleepingsilvie()

0.1.2008.12.11.ALPHA
Used to set or administer sleep functions

sleepingsilvie

If silvie is alseep, she does some random sleep thing and halt. Otherwise no action.

$sleepingsilvie(#)

  1. - Returns "YES" if silvie is asleep.
  2. - Sets Sleep Status (triggers energy changes)
  3. - Sets Wake Status (triggers energy changes)

$energysilvie()

Will be used to set change states, calculate current energy state. and initiate auto-wakeup/sleep

$energysilvie(1).get

Returns a word description of how she feels.

$energysilvie(2).get

Returns a number between 0 and 100 of her current status.

$energysilvie(3).get

Returns transition time.

$energysilvie(4).get

Returns Energy at transition

$energysilvie(5).get

Returns Energybase at present time.

$energysilvie(6).get

Returns Energynow

$energysilvie().set

Locks in current energy change, usually at a transiation of direction.

$energysilvie().rand

This is the silvie wake-up, go-to sleep randomly (based on energy level... at falling to 0% she shoes to slee, at raising to 100% she wakes up... in the last 20% in either side, she has a sliding scale random probability of going to sleep or waking up).

$energysilvie(#).event

Will reduce energy by #.

$energysilvie(#).amount

NOT IMPLEMENTED ... this will vary the base by # %

$nickhandle()

Note: Highly "debug"-ful

nickhandle

this is just kinda a way to debug it.. although hopefully will be used to do the last-seen info

$nickhandle($1,$2).change

copies all items related to $1 into $2 's database, then kills $1 database. Used when changing nicknames, bsaically... sounds simple, but is actually a pretty complex set... works with the users.ini data-base set.

$nickhandle($1).lookup

Returns the nick for the server address ($1) provided

$nickhandle().find

to be removed
returns the nick associated with $nick's address... basically lookup wher $1 = $address($nick,1)

$nickhandle($1,$2,$3,$4).get

Returns a defined variable, $1, set for a certain user $2 = nick (if null, $nick) $3 = network (if null, $network) if $4 = 1 , will NOT process alias forwarding.

$nickhandle($1,$2,$3,$4,$5).set

  • Set a defined variable, $1, for a certain user the value $2
  • $3 = nick (if null, $nick)
  • $4 = network (if null, $network)
  • If $2 = - then removes that setting all together
  • If $5 = 1 then bypasses alias
  • Lastchan is ALWAYS set regardless of alias setting
  • Lastseen is dually set.

$nickhandle($1).lastchan

Returns the last known chan for $1 (useful for global events quit, nick, etc) Does NOT follow alias.

$shockcollar()

Various security and logging functions.

$shockcollar($1).logplay

No security functions, logs the person (if friend), and shows it as playing with Silvie

$shockcollar($1).lognoplay

No security functions, logs te person (if friend), and shows it as NOT playing with Silvie

$shockcollar($1).passive

HALTS if Silvie is dead... and halts on not voiced (ie see #strike-subs) (to be set to configurable channels, that part not yet implemtend)

$shockcollar($1).active

HALTS if Silvie is dead, OR if the friend's current server doesnt match (which should help prevent stealing, if the temporary fix wasn't in place)

$shockcollar($1).set

Kills silvie.

$shockcollar($1).unset

not implemented... will revive silvie


$goshujinsama ()

Various Goshu things

$goshujinsama()

Returns the goshujin for the current $network

$goshujinsama($1)

Returns the goshujin for the $1 network

$goshujinsama($1).set

Sets the goshujinsama for the current $newtork

$goshujinsama($1,$2).set

Sets the goshujinsama for the $2 newtork

$focus()

Various things related to when someone was last seen... or last played, or whatevr..

  • For all applciable, $1 defaults to nick when null
  • For all applicable, $2 defaults to last, if $2 = 1 then to previous (one before)
  • $3 = 1 to pull only the end point, not the master

$focus($1,$2,$3)

Returns 1 if $1 has played with silvie within 20 seconds.

$focus($1,$2,$3).sec

Returns seconds since last play for $1

$focus($1,$2,$3).lsec

Returns seconds since last seen for $1

$focus($1,$2,$3).time

Returns days, minutes, seconds since last play

$focus($1,$2,$3).ltime

Returns days, minutes, seconds since last seen.

$nickalias()

Subroutine to go various items related to nickaliasing

$nickalias($1,$2,$3).verify

  • Returns name of the aliased nick for $1.
  • $2 = command, so lastchan and address would return no alias (null okay)
  • If $3 = 1 then doesnt do anything (for other reasons) (null okay)

$nickalias($1).isit

  • Returns 1 if $1 is a aliased name

$nickalias($1).master

  • Returns 1 if $1 is the master account

$nickalias($1).sub

  • Returns 1 if $1 is a sub account

- TO IMPLEMENT

$filenames()

Note: Not yet implemented Will be used to help unify filenames to one subroutine... primarily useful for setting up multiple databases for various channels.. as appropriate. Will need %rootdirectory a variable needed on init.

... and the varibles keep spilling out of my head to help make silvie a better wanko.