Advertisement
Guest User

Untitled

a guest
Nov 12th, 2019
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.25 KB | None | 0 0
  1. This is a comprehensive list of all commands which can be run by an add-on.
  2.  
  3. Parameters passed along with actions will be explained, as well as how to handle the response for each.
  4.  
  5. v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v
  6. This guide assumes that you have a copy of the Example Add-On script for reference.
  7. ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
  8.  
  9. Don't forget how to generate a user's add-on channel! Never leave home without it!
  10.  
  11. #define DIAPER_KEY 121111
  12. #define ADD_ON_OFFSET 8
  13. #define ADD_ON_NAME "Example Add-On"
  14. #define ADD_ON_UUID "UUID HERE"
  15.  
  16. ADD_ON_UUID is provided to you after you register your add-on with the raincloud server.
  17.  
  18. /*
  19. * Used to generate unique channel for diaper to communicate on.
  20. */
  21. integer generateChan(key id) {
  22. return 0x80000000 | ((integer)("0x"+(string)id) ^ DIAPER_KEY);
  23. }
  24.  
  25. // Tiny convenience function to get the add on channel for a user from their SL key.
  26. integer generateAddOnChan(key id) {
  27. return generateChan(id) + ADD_ON_OFFSET;
  28. }
  29.  
  30. ===================
  31. = M A I N C O M M A N D S =
  32. ===================
  33.  
  34. Main, as in DrizzleMain. These aren't any more important than any other commands. These are called to
  35. get some baseline pieces of information, like nickname, gender, and whether or not the diaper is locked.
  36.  
  37. "Lock"
  38. -> Sending this command locks the diaper of the targeted user. The second value passed is the SL key of the locker.
  39. Ex: sendMainCommand(addOnChannel, "Lock", "1d9801d0-84eb-4f23-8b85-3430e3d2ac98");
  40.  
  41. "Unlock"
  42. -> Sending this command unlocks the diaper of the targeted user. The second value passed is the SL key of the unlocker.
  43. Ex: sendMainCommand(addOnChannel, "Unlock", "1d9801d0-84eb-4f23-8b85-3430e3d2ac98");
  44.  
  45. "Toggle Lock"
  46. -> Convenience command for flipping the lock on a targeted user on and off. The second value passed is the SL key of the toggler.
  47. Ex: sendMainCommand(addOnChannel, "Toggle Lock", "1d9801d0-84eb-4f23-8b85-3430e3d2ac98");
  48.  
  49. "Suppress"
  50. -> Sending this command causes the targeted user's diaper to IGNORE left click/touch events. Only the "Diaper Clicked" event broadcasts in response.
  51. -> The second value passed is the SL key of the suppressor.
  52. Ex: sendMainCommand(addOnChannel, "Suppress", "1d9801d0-84eb-4f23-8b85-3430e3d2ac98");
  53.  
  54. "Unsuppress"
  55. -> Sending this command causes the targeted user's diaper to ACCEPT left click/touch events again.
  56. -> ALWAYS call this after invoking "Suppress" -- Treat it just like the "Mute" and "Unmute" print commands mentioned below.
  57. -> The second value passed is the SL key of the unsuppressor.
  58. Ex: sendMainCommand(addOnChannel, "Unsuppress", "1d9801d0-84eb-4f23-8b85-3430e3d2ac98");
  59.  
  60. > > > G E T T E R S < < <
  61. Use these to request a value from the diaper.
  62.  
  63. getNickname
  64. getGender
  65. getAccessMode
  66. getChatter
  67. getCarers
  68. isOpenCaretaker
  69. isTattleTale
  70. isLocked
  71. isSuppressed
  72.  
  73. Ex:
  74. sendMainCommand(addOnChannel, "getNickname", "");
  75.  
  76. and handle the response with this code inside a listen:
  77.  
  78. string nickname;
  79. if(~llListFindList(SETTINGS_LIST, [msg])) {
  80. list getterInfo = llCSV2List(msg); // Convert to list for ease of processing.
  81.  
  82. // Update a local variable
  83. nickname = llList2String(getterInfo, 1); // Get nickname
  84. }
  85.  
  86. > > > S E T T E R S < < <
  87. Calling these will directly set a value within a target user's diaper.
  88. A side-effect of calling a setter is that the diaper will rebroadcast the value openly to all listening add-ons.
  89.  
  90. setNickname
  91.  
  92. Ex:
  93. sendMainCommand(addOnChannel, "setNickname", "Puddlebrat");
  94.  
  95. =====================
  96. = P R I N T C O M M A N D S =
  97. =====================
  98.  
  99. If you want custom printouts for actions that already have built-in prints, these commands are EXTREMELY important.
  100. Simply call mute before sending an action which triggers a printout, then unmute when you're done.
  101.  
  102. # # # DO NOT FORGET TO UNMUTE AFTERWARDS # # #
  103.  
  104. "Mute"
  105. -> Sending this command disables all default printouts within the diaper of the targeted user.
  106. Ex: sendPrintCommand(addOnChannel, "Mute", "");
  107.  
  108. "Unmute"
  109. -> Sending this command re-enables all default printouts within the diaper of the targeted user.
  110. Ex: sendPrintCommand(addOnChannel, "Unmute", "");
  111.  
  112. ======================
  113. = P O T T Y C O M M A N D S =
  114. ======================
  115.  
  116. If you simply want to run these commands and supply your own printouts, see the above section on muting.
  117.  
  118. These commands simulate a user clicking a menu option in the diaper.
  119.  
  120. "Wet"
  121. -> Sending this command makes the user you target wet.
  122. Ex: sendPottyCommand(addOnChannel, "Wet", "");
  123.  
  124. "Mess"
  125. -> Sending this command makes the user you target mess.
  126. Ex: sendPottyCommand(addOnChannel, "Mess", "");
  127.  
  128. "Check"
  129. -> Check the targeted user's diaper. The second value passed is the SL key of the checker.
  130. Ex: sendPottyCommand(addOnChannel, "Check", "1d9801d0-84eb-4f23-8b85-3430e3d2ac98");
  131.  
  132. "Change"
  133. -> Change the targeted user's diaper. The second value passed is the SL key of the changer.
  134. Ex: sendPottyCommand(addOnChannel, "Change", "1d9801d0-84eb-4f23-8b85-3430e3d2ac98");
  135.  
  136. "Start Enema"
  137. -> Start an enema for the targeted user. The second value passed is the SL key of the enema starter.
  138. Ex: sendPottyCommand(addOnChannel, "Start Enema", "1d9801d0-84eb-4f23-8b85-3430e3d2ac98");
  139.  
  140. "Squeeze"
  141. -> Squeeze the targeted user. The second value passed is the SL key of the squeezer.
  142. Ex: sendPottyCommand(addOnChannel, "Squeeze", "1d9801d0-84eb-4f23-8b85-3430e3d2ac98");
  143.  
  144. "Tickle"
  145. -> Tickle the targeted user. The second value passed is the SL key of the tickler.
  146. Ex: sendPottyCommand(addOnChannel, "Tickle", "1d9801d0-84eb-4f23-8b85-3430e3d2ac98");
  147.  
  148. "Spank"
  149. -> Spank the targeted user. The second value passed is the SL key of the spanker.
  150. Ex: sendPottyCommand(addOnChannel, "Spank", "1d9801d0-84eb-4f23-8b85-3430e3d2ac98");
  151.  
  152. "Wedgie"
  153. -> Wedgie the targeted user. The second value passed is the SL key of the wedgier.
  154. Ex: sendPottyCommand(addOnChannel, "Wedgie", "1d9801d0-84eb-4f23-8b85-3430e3d2ac98");
  155.  
  156. "Raspberry"
  157. -> Raspberry the targeted user. The second value passed is the SL key of the raspberrier.
  158. Ex: sendPottyCommand(addOnChannel, "Raspberry", "1d9801d0-84eb-4f23-8b85-3430e3d2ac98");
  159.  
  160. "Diuretic"
  161. -> Give the targeted user a diuretic. The second value is the SL key of the user which gave the diuretic.
  162. Ex: sendPottyCommand(addOnChannel, "Diuretic", "1d9801d0-84eb-4f23-8b85-3430e3d2ac98");
  163.  
  164. "Laxative"
  165. -> Give the targeted user a laxative. The second value is the SL key of the user which gave the laxative.
  166. Ex: sendPottyCommand(addOnChannel, "Laxative", "1d9801d0-84eb-4f23-8b85-3430e3d2ac98");
  167.  
  168. "Toggle Plug"
  169. -> Insert/Remove a plug for the targeted user. The second value is the SL key of the toggler.
  170. Ex: sendPottyCommand(addOnChannel, "Toggle Plug", "1d9801d0-84eb-4f23-8b85-3430e3d2ac98");
  171.  
  172. > > > G E T T E R S < < <
  173. Use these to request a value from the diaper.
  174.  
  175. "getWetness"
  176. "getMessiness"
  177. "getTraining"
  178. "getWetTimer"
  179. "getMessTimer"
  180. "getWetInterval"
  181. "getMessInterval"
  182. "getEnemaTimer"
  183. "getMudpies"
  184. "getPuddles"
  185. "isEnemaActive"
  186. "getEnemaPhase"
  187. "getPhasePlugged"
  188. "isPlugged"
  189. "getWetTraining"
  190. "getMessTraining"
  191. "getWetHoldAttempts"
  192. "getMessHoldAttempts"
  193.  
  194. You call them like so:
  195.  
  196. sendPottyCommand(addOnChannel, "getWetTimer", ""); // Request the current user's wet timer.
  197.  
  198. and handle the response with this code inside a listen:
  199.  
  200. integer wetTimer;
  201. if(~llListFindList(SETTINGS_LIST, [msg])) {
  202. list getterInfo = llCSV2List(msg); // Convert to list for ease of processing.
  203.  
  204. // Update a local variable
  205. wetTimer = llList2Integer(getterInfo, 1); // Get wetTimer
  206. }
  207.  
  208. Ex:
  209. sendMainCommand(addOnChannel, "getNickname", "");
  210.  
  211. > > > S E T T E R S < < <
  212. Calling these will directly set a value within a target user's diaper.
  213. A side-effect of calling a setter is that the diaper will rebroadcast the value openly to all listening add-ons.
  214.  
  215. "setWetness"
  216. "setMessiness"
  217. "setTraining"
  218. "setWetTimer"
  219. "setMessTimer"
  220. "setWetInterval"
  221. "setMessInterval"
  222. "setEnemaTimer"
  223. "setMudpies"
  224. "setPuddles"
  225. "setEnemaActive"
  226. "setEnemaPhase"
  227. "setPhasePlugged"
  228. "setPlugged"
  229. "setWetTraining"
  230. "setMessTraining"
  231. "setWetHoldAttempts"
  232. "setMessHoldAttempts"
  233.  
  234. Ex:
  235. sendPottyCommand(addOnChannel, "setWetTimer", "10"); // Directly set the user's wet timer to 10 minutes.
  236.  
  237. ======================
  238. = R E N D E R C O M M A N D S =
  239. ======================
  240.  
  241. These commands speak directly to the script responsible for texturing, hiding, and showing the diaper.
  242.  
  243. "Hide"
  244. -> Hides the targeted user's diaper.
  245. Ex: sendRenderCommand(addOnChannel, "Hide", "");
  246.  
  247. "Show"
  248. -> Shows the targeted user's diaper.
  249. Ex: sendRenderCommand(addOnChannel, "Show", "");
  250.  
  251. "Apply Pack"
  252. -> Applies a specified texture pack to the targeted user's diaper.
  253. Ex: sendRenderCommand(addOnChannel, "Apply Pack", "3b52d7cb-c232-11e5-9454-bc764e059fde"); // Applies Cloud White texture.
  254.  
  255. "Apply Random Pack"
  256. -> Applies a random texture pack owned by the targeted user to their diaper.
  257. Ex: sendRenderCommand(addOnChannel, "Apply Random Pack", "");
  258.  
  259. "Textures"
  260. -> Displays the targeted user's texture pack menu to the specified user.
  261. -> Must NOT be the UUID of the diaper wearer. That'll trigger their texture REMOVAL menu instead.
  262. Ex; sendRenderCommand(addOnChannel, "Textures", "1d9801d0-84eb-4f23-8b85-3430e3d2ac98");
  263.  
  264. > > > G E T T E R S < < <
  265. "isHidden"
  266.  
  267. integer isHidden;
  268. if(~llListFindList(SETTINGS_LIST, [msg])) {
  269. list getterInfo = llCSV2List(msg); // Convert to list for ease of processing.
  270.  
  271. // Update a local variable
  272. isHidden = llList2Integer(getterInfo, 1); // Get whether or not the diaper is hidden
  273. }
  274.  
  275. =======================
  276. = A D J U S T C O M M A N D S =
  277. =======================
  278.  
  279. These are special helper commands! They are designed to be quick and convenient compared to getter/setter cycles.
  280. All you do is specify the adjuster command, and then the amount you'd like to augment the value!
  281.  
  282. These commands will keep you safely within normal bounds for these settings, and protect you against accidentally setting
  283. nonsensical values.
  284.  
  285. The commands are as follows:
  286.  
  287. "Adjust Wet Training"
  288. "Adjust Mess Training"
  289. "Adjust Wet Interval"
  290. "Adjust Mess Interval"
  291. "Adjust Wet Timer"
  292. "Adjust Mess Timer"
  293. "Adjust Wet Hold Attempts"
  294. "Adjust Mess Hold Attempts"
  295.  
  296. They are invoked like:
  297.  
  298. callAdjuster(addOnChannel, "Adjust Wet Training", "10"); // Raise wet training by 10%
  299. callAdjuster(addOnChannel, "Adjust Wet Training", "-10"); // Lower wet training by 10%
  300.  
  301. ==============================
  302. = P A I R E D G E T T E R C O M M A N D S =
  303. ==============================
  304.  
  305. For convenience, these getters return two values in the response instead of just one.
  306.  
  307. "Wet/Mess Levels"
  308. "Wet/Mess Intervals"
  309. "Wet/Mess Training"
  310. "Wet/Mess Hold Attempts"
  311.  
  312. callPairedGetter(addOnChannel, "Wet/Mess Levels"); // Acquire the values for both wetness and messiness.
  313.  
  314. Then, inside your listen:
  315.  
  316. integer wetness;
  317. integer messiness;
  318.  
  319. list pairedInfo = llCSV2List(msg);
  320.  
  321. string pair = llList2String(pairedInfo, 0); // "Wet/Mess Levels"
  322.  
  323. if(~llListFindList(PAIRED_COMMANDS, [pair])) {
  324. if(pair == "Wet/Mess Levels") {
  325. wetness = llList2Integer(pairedInfo, 1);
  326. messiness = llList2Integer(pairedInfo, 2);
  327. }
  328. }
  329.  
  330. ===========
  331. = D E F I N E S =
  332. ===========
  333.  
  334. These are useful defines to put at the very top of your script. They represent an exhaustive list of all valid API commands.
  335.  
  336. // List of settings freely broadcast on a user's channel.
  337. #define SETTINGS_LIST ["gender", "training", "wetness", "messiness", "wetInterval", "messInterval", "puddles", "mudpies", "isLocked", "accessMode", "chatter", "isPlugged", "nickname", "carers", "openCaretaker", "isTattleTale", "wetTraining", "messTraining", "wetHoldAttempts", "messHoldAttempts", "wetTimer", "messTimer"]
  338.  
  339. // List of events that can happen within the diaper. Events need to be broadcast for the benefit of add-ons! (Enema Unplugged, Plugged, "Tickle Fail", etc...)
  340. #define EVENT_LIST ["Plugged", "Self Unplugged", "Self Plugged", "Self Enema Plugged", "Self Enema Unplugged", "Enema Plugged", "Unplugged", "Tickle Fail", "Rub Fail", "Diuretic Given", "Laxative Given", "Enema Started", "Diaper Wet", "Tickle Success", "Plugged Mess", "Diaper Messed", "Rub Success", "Checked", "Changed", "Enema Release", "Enema Unplugged Release", "Enema Phase", "Locked", "Unlocked", "Spanked", "Raspberried", "Wedgied", "Diaper Clicked", "Texture Changed"]
  341.  
  342. #define MAIN_COMMANDS ["Lock", "Unlock", "Toggle Lock", "Suppress", "Unsuppress", "getGender", "getAccessMode", "getChatter", "getNickname", "getCarers", "isOpenCaretaker", "isTattleTale", "isLocked", "isSuppressed", "setNickname"]
  343.  
  344. // One-off commands which cause the diaper to immediately perform an action.
  345. #define POTTY_COMMANDS ["Wet", "Mess", "Check", "Change", "Start Enema", "Squeeze", "Tickle", "Spank", "Wedgie", "Raspberry", "Diuretic", "Laxative", "getWetness", "getMessiness", "getTraining", "getWetTimer", "getMessTimer", "getWetInterval", "getMessInterval", "getEnemaTimer", "getMudpies", "getPuddles", "isEnemaActive", "getEnemaPhase", "getPhasePlugged", "isPlugged", "getWetTraining", "getMessTraining", "getWetHoldAttempts", "getMessHoldAttempts", "setWetness", "setMessiness", "setTraining", "setWetTimer", "setMessTimer", "setWetInterval", "setMessInterval", "setEnemaTimer", "setMudpies", "setPuddles", "setEnemaActive", "setEnemaPhase", "setPhasePlugged", "setPlugged", "setWetTraining", "setMessTraining", "setWetHoldAttempts", "setMessHoldAttempts"]
  346.  
  347. // One-off commands which adjust whether the diaper is hidden or shown
  348. #define RENDER_COMMANDS ["Hide", "Show", "Apply Pack", "Apply Random Pack"]
  349.  
  350. // One-off commands which can mute/unmute the printout system inside the diaper.
  351. #define PRINT_COMMANDS ["Mute", "Unmute"]
  352.  
  353. // Special getters which return both the wet & mess values for a specific setting.
  354. #define PAIRED_COMMANDS ["Wet/Mess Levels", "Wet/Mess Intervals", "Wet/Mess Training", "Wet/Mess Hold Attempts"]
  355.  
  356. // Like setters, but do not require the user to know the original values. They just pass along the delta (+ or -) they wish to apply to these settings.
  357. #define ADJUST_COMMANDS ["Adjust Wet Training", "Adjust Mess Training", "Adjust Wet Interval", "Adjust Mess Interval", "Adjust Mess Timer", "Adjust Wet Timer", "Adjust Wet Hold Attempts", "Adjust Mess Hold Attempts"]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement