Silvie Technical Items
Just a few technical items ... mostly for concept and thoughts...
- 1 BUGS
- 2 Sleep
- 3 Happiness
- 4 Health
- 5 Variable / Functions
- 5.1 /globalme and /globalsay
- 5.2 %goshujinsama
- 5.3 %userlevel
- 5.4 $nickname
- 5.5 $userlevelset()
- 5.6 $prohibittext()
- 5.7 $sleepingsilvie()
- 5.8 $energysilvie()
- 5.9 $nickhandle()
- 5.10 $shockcollar()
- 5.11 $goshujinsama ()
- 5.12 $focus()
- 5.13 $nickalias()
- 5.14 $filenames()
!lock is bugged now for some reason... will be working into new !teachsilvie anyhow.. but still.
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 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...
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.
Username of the goshujinsama. ... NOTE: this is reset each USERLEVELSET ... and is mostly intended for scripting purposes only.. use $goshujinsama instead... to be sure.
User level of the current $nick, as set by $userlevelset
- Alias for $nickhandle($nick).get intended for use in !teachsilvie
- Technical note $nickname($1) will return nickname of $1 instead of $nick
Tests, Returns, and Sets Userlevel status.
Sets %userlevel and %userlevela for the current nick.
$userlevelset( $1 ).unfriend
$userlevelset( $1 ).friend
$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
(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.
Used to set or administer sleep functions
If silvie is alseep, she does some random sleep thing and halt. Otherwise no action.
- - Returns "YES" if silvie is asleep.
- - Sets Sleep Status (triggers energy changes)
- - Sets Wake Status (triggers energy changes)
Will be used to set change states, calculate current energy state. and initiate auto-wakeup/sleep
Returns a word description of how she feels.
Returns a number between 0 and 100 of her current status.
Returns transition time.
Returns Energy at transition
Returns Energybase at present time.
Locks in current energy change, usually at a transiation of direction.
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).
Will reduce energy by #.
NOT IMPLEMENTED ... this will vary the base by # %
Note: Highly "debug"-ful
this is just kinda a way to debug it.. although hopefully will be used to do the last-seen info
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.
Returns the nick for the server address ($1) provided
to be removed
returns the nick associated with $nick's address... basically lookup wher $1 = $address($nick,1)
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.
- 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.
Returns the last known chan for $1 (useful for global events quit, nick, etc) Does NOT follow alias.
Various security and logging functions.
No security functions, logs the person (if friend), and shows it as playing with Silvie
No security functions, logs te person (if friend), and shows it as NOT playing with Silvie
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)
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)
not implemented... will revive silvie
Various Goshu things
Returns the goshujin for the current $network
Returns the goshujin for the $1 network
Sets the goshujinsama for the current $newtork
Sets the goshujinsama for the $2 newtork
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
Returns 1 if $1 has played with silvie within 20 seconds.
Returns seconds since last play for $1
Returns seconds since last seen for $1
Returns days, minutes, seconds since last play
Returns days, minutes, seconds since last seen.
Subroutine to go various items related to nickaliasing
- 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)
- Returns 1 if $1 is a aliased name
- Returns 1 if $1 is the master account
- Returns 1 if $1 is a sub account
- TO IMPLEMENT
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.