This build is a typical wand vibrator but with a twist, leaning towards a wicca design with references to primordial Eve. The wand is designed to wiggle like a snake due to the tail being flexi, the leaves are appropriately positioned to cover some sensitive parts, the apple is made to drip and the trunk of the vibrator emanates some pixie dust for some extra bling.
Most components of this build is fashioned out of appropriately hard or soft materials and are not to be mistaken by their real counterparts.
The wand can be activated either by pressing the on/off button on the handle of the wand, or by typing:
/1vib
on local chat.
Once the wand is activated, a dialog menu will pop up that will allow the user to select various speeds as well as allow the user to turn the wand off.
All the scripts that activate the particle system could be removed but the scripts have been preserved in order for the build to be complete. The rotating apple is activated by link messages and the controller is to be found within the button primitive that is also responsible for setting the color of the on/off button to green when the vibrator is activated and to red when the vibrator is off.
It was decided to keep the build simple and to not include any animations, in particular since the vibrator can be used with any masturbation animation or with any other animation that can be found on the grid.
/////////////////////////////////////////////////////////////////////////// // Copyright (C) Wizardry and Steamworks 2022 - License: GNU GPLv3 // /////////////////////////////////////////////////////////////////////////// default { link_message(integer sender, integer num, string message, key id) { llTargetOmega(<0, 0, 1>, num, 1); } }
/////////////////////////////////////////////////////////////////////////// // Copyright (C) Wizardry and Steamworks 2022 - License: GNU GPLv3 // /////////////////////////////////////////////////////////////////////////// list menu = [ "5", "10", "15", "20", "Off" ]; list channels = []; integer channel = 1; default { state_entry() { llMessageLinked(LINK_SET, 0, "", NULL_KEY); llSetColor(<1, 0, 0>, ALL_SIDES); state dialog; } on_rez(integer num) { llResetScript(); } attach(key id) { llResetScript(); } } state dialog { state_entry() { channels = [ llListen( channel, "", llGetOwner(), "vib" ), llListen( -channel, "", llGetOwner(), "" ) ]; } touch_start(integer num) { llDialog( llGetOwner(), "Please select the speed: ", menu, -channel ); } listen(integer channel, string name, key id, string message) { if(channel == 1) { llOwnerSay("wtf"); llDialog( llGetOwner(), "Please select the speed: ", menu, -channel ); return; } integer speed = (integer)message; llMessageLinked(LINK_SET, speed, "", NULL_KEY); if(speed == 0) { llSetColor(<1, 0, 0>, ALL_SIDES); return; } llSetColor(<0, 1, 0>, ALL_SIDES); } on_rez(integer num) { llResetScript(); } attach(key id) { llResetScript(); } }