Da Vinci Machine Posing Stand
This is V, and it is Friday.
Anyone here remember Syndicate? It’s been a really fabulous game by Bullfrog (a fabulous game studio in their own right) back in the day when a 486 DX 2 was manna from heaven. For some reason, a certain scene from the intro stuck with me.
So this is your chance to get your own Leonardo Device, or “Da Vinci Machine” as I call it. It requires a simple tube, which you can either make and decorate yourself, or use my pre-made mythically engraved stone circle. (Imprudence export file. See instructions on how to upload it.) Also, you will need a circular texture for use when the circle is activated. Please upload it first to the grid you want to use it on. Then create a new script inside your tube, and replace it with this code:
string TITLE=”Da Vinci Machine”;
vector offset=<0.0,0.0,-0.1>;string ANIMATION;
integer visible = TRUE;
key avatar;vector COLOR = <1.0,1.0,1.0>;
float ALPHA_ON = 1.0;
float ALPHA_OFF = 0.0;show(){
visible = TRUE;
llSetText(TITLE, COLOR,ALPHA_ON);
llSetAlpha(ALPHA_ON, ALL_SIDES);
}hide(){
visible = FALSE;
llSetText(“”, COLOR,ALPHA_ON);
llSetAlpha(ALPHA_OFF, ALL_SIDES);
}default{
state_entry() {
llSitTarget(offset,ZERO_ROTATION);
if((ANIMATION = llGetInventoryName(INVENTORY_ANIMATION,0)) == “”){
llOwnerSay(“Error: No animation”);
ANIMATION = “sit”;
}
llSetSitText(“pose”);
show();
}touch_start(integer detected) {
if(visible){ hide(); }
else { show(); }
}changed(integer change) {
if(change & CHANGED_LINK) {
avatar = llAvatarOnSitTarget();
if(avatar != NULL_KEY){
hide();
llRequestPermissions(avatar,PERMISSION_TRIGGER_ANIMATION);
{
llParticleSystem([ PSYS_PART_MAX_AGE, 1.5,
PSYS_PART_START_COLOR, <0.91941, 0.91941, 0.91941>,
PSYS_PART_END_COLOR, <1.00000, 1.00000, 1.00000>,
PSYS_PART_START_SCALE, <4.0, 4.0, 4.0>,
PSYS_PART_END_SCALE, <4.0, 4.0, 4.0>,
PSYS_SRC_BURST_RATE,1.0,
PSYS_SRC_ACCEL,<0.00000, 0.00000, 0.00000>,
PSYS_SRC_BURST_PART_COUNT,1,
PSYS_SRC_BURST_RADIUS,0.000000,
PSYS_SRC_BURST_SPEED_MIN,0.410000,
PSYS_SRC_BURST_SPEED_MAX,0.010000,
PSYS_SRC_INNERANGLE,0.000000,
PSYS_SRC_OUTERANGLE,0.000000,
PSYS_SRC_OMEGA,<0.00000, 0.0, 0.00000>,
PSYS_SRC_MAX_AGE,0.000000,
PSYS_PART_START_ALPHA,1.000000,
PSYS_PART_END_ALPHA,1.000000,
PSYS_SRC_TEXTURE, "52783ffa-7d1c-4976-8dc6-f08e6475e504",
PSYS_SRC_TARGET_KEY,(key)"" ]);
}
return;
}else{
if (llGetPermissionsKey() != NULL_KEY){ llStopAnimation(ANIMATION); }
show();
{
llParticleSystem([]);
}
return;
}
}
if(change & CHANGED_INVENTORY) { llResetScript(); }
if(change & CHANGED_OWNER) { llResetScript(); }
}run_time_permissions(integer perm) {
if(perm & PERMISSION_TRIGGER_ANIMATION) {
llStopAnimation(“sit”);
llStartAnimation(ANIMATION);
hide();
}
}
}
Additionally, you need a posing animation for use when someone sits on the circle. You can use either one of the two da vinci animations I made. Upload them to the grid as well, and make sure the priority is set to 4 and the ‘loop’ box is checked. (Also, for nicer results, ease in and ease out should be set to about 2 seconds.)
Finally, drag and drop one of the animations to the contents of the circle and then replace the UUID of the texture in the above script (the long number from the line PSYS_SRC_TEXTURE, “52783ffa-7d1c-4976-8dc6-f08e6475e504″,) with the UUID from the circle texture you uploaded. (In Imprudence, right-click the texture in your inventory and select ‘copy UUID’).
Done. Now every time you sit on your Da Vinci Machine, it will keep your avatar firmly in its grip, allowing you to edit parts on its body more easily. Also, the stone circle will disappear and be replaced with a glowing circle around it.
See you next, Friday.


