Designer Tutorial - Commands
How to create chat commands for moove online Roomancer
Roomancer comes with Build-in Commands being defined in the file \moove\OwnerCommands.Txt.
Every line of the file contains a command. Behind of the command text you will find a comma and one or more functions for your own actor ("Owner"). Example:
#),OwnerSetExpr(##SMILE);OwnerSetPosture("Oh My")
If you send a chat line containing <#)>, your actor will smile and use the "Oh My" posture.
The functions are written in the moove programming language DOORS (Dynamic Object Oriented Runtime System) and are separated by semicolon ';'.
OwnerSetExpr(##SMILE) chooses the "Smile" expression; OwnerSetPosture("Oh My") activates the "Oh My" posture.
The Owner...() functions of the DOORS API perform automatic :synchronization
for all members in the room.
Therefore the other members do not need to have the command lines. Postures and expressions are also - as always - only needed at the "owner".
This makes it easier to add your own commands. After a :Backup
please open the file \moove\OwnerCommands.Txt.
- "Sleep"
- We add following line:
Sleep,OwnerSetPostureFromFile(PathName()+'Showcases\Postures\Lie.post');OwnerSetPostureFromFile(PathName()+'Showcases\Expressions\sleeping.post')
- After saving the file and restart of Roomancer the command <Sleep> will set the Lie Posture from the file Lie.post and the expression from the file sleeping.post
- "Erect"
- We add following line:
Erect,ActorScalePartToFactor(NIL, #Penis,2.0, 3.5, 2.0);OwnerSyncSize();StrFile("POSTURE \"_Erect\"\r\n96 0 0 penis",PathName()+'Showcases\Postures\_Erect.post');OwnerSetPostureFromFile(PathName()+'Showcases\Postures\_Erect.post')
- ActorScalePartToFactor() scales a body part in relation to its starting size.
The first parameter selects the actor; NIL stands for the owner actor. The numbers are for the three dimensions.
- Since the Actor...() functions do not perform automatic
:synchronization
for all members in the room, the size of all body parts has to be transferred by OwnerSyncSize() finally.
- The function StrFile() writes the special content of a posture into the related file.
The underline at the beginning prevents overwriting of a potentionally existing posture.
The posture can be set afterwards by the <_Erect> command, but you will not see it in the posture selection, since the posture thumbnail picture is missing.
- At last the fresh created posture file is used and forwarded to other members by calling OwnerSetPostureFromFile().
- Hints: After your changes of part sizes ("Mutations") - for instance with ActorScalePartToFactor() -
just click the Roomancer menu "Extras", "Tools" "Actor mutations" and "Save" to store it into a *.mut file.
This file can be given to other members and can be used by "Load" in the same menu.
By adding an exclamation mark you can call functions directly in the chat input line, for instance.
!ActorScalePartToFactor(NIL, #Head, 0.5, 3.0, 0.5)
Before you can do this, you have to click the Roomancer Menu "View", "Options...", "Service" to activate the "Test Mode" (please uncheck it again afterwards).
- More examples from member
*Sumy*
- HEELSUP,ActorScalePartToFactor(NIL, #RightFoot, 1.0, 1.2, 1.0) ;ActorScalePartToFactor(NIL, #LeftFoot, 1.0, 1.2, 1.0);OwnerSyncSize()
- HEELS,ActorScalePartToFactor(NIL, #RightFoot, 1.0, 1.0, 1.0) ;ActorScalePartToFactor(NIL, #LeftFoot, 1.0, 1.0, 1.0);OwnerSyncSize()
- HEELSDOWN,ActorScalePartToFactor(NIL, #RightFoot, 1.0, 0.8, 1.0) ;ActorScalePartToFactor(NIL, #LeftFoot, 1.0, 0.8, 1.0);OwnerSyncSize()
- HAIRBIG,ActorScalePartToFactor(NIL, #hair, 1.2, 1.0, 1.2) ;OwnerSyncSize()
- HAIR,ActorScalePartToFactor(NIL, #hair, 1.0, 1.0, 1.0) ;OwnerSyncSize()
- HAIRIROC,ActorScalePartToFactor(NIL, #hair, 0.2, 1.0, 1.0) ;OwnerSyncSize()
- HAIRBALD,ActorScalePartToFactor(NIL, #hair, 0.0, 0.0, 0.0) ;OwnerSyncSize()
- SKIRTL,ActorScalePartToFactor(NIL, #skirt, 1.0, 1.2, 1.0) ;OwnerSyncSize()
- SKIRT,ActorScalePartToFactor(NIL, #skirt, 1.0, 1.0, 1.0) ;OwnerSyncSize()
- SKIRTS,ActorScalePartToFactor(NIL, #skirt, 1.0, 0.8, 1.0) ;OwnerSyncSize()
- SKIRTOFF,ActorScalePartToFactor(NIL, #skirt, 0.0, 0.0, 0.0) ;OwnerSyncSize()
Congratulations, you are a DOORS Programmer now!
Hint:
To exchange postures and expressions with other members, just right-click another actor and copy the posture before clicking the moove Roomancer "Extras" button. Then "Tools", "Posture Editor".
To create one or more actor "Servants" just use "Extras", "Developer Tools", "Create Servant". Only you will see it. It will stay until you either dismiss it or exit the room.
You can right-click it to trade bodies when making new postures.
Use "Extras", "Tools" "Backup Postures" to generate a file with all of your postures.
If you get this file from another member, just copy it to your Roomancer folder (C:\moove in most cases).
After importing the file you will have all of the postures of the other member without destroying your own.
Select a posture or a posture sequence just by embedding the name into your chat input as a chat command, e.g. <sit>, <crawl>, <lie> or <Relax>. Use <e> to exercise between the last two postures or expressions. Try the F3 key and select a command...
Show Your Mood To Those Present In The Room By Using Postures And Expressions
Chat commandsDOORSDOORS APINew Namemoove.com
0.03 Seconds