diff options
| author | Dave Seikel | 2018-05-20 23:17:24 +1000 |
|---|---|---|
| committer | Dave Seikel | 2018-05-20 23:17:24 +1000 |
| commit | 9dd74045373c39d8a35a59f3c2801b0348a44a9b (patch) | |
| tree | b3cdc4ba800ffa44b98291ce12a0eb1c9ad809e4 /README.md | |
| parent | Initial commit (diff) | |
| download | MLP-lite-9dd74045373c39d8a35a59f3c2801b0348a44a9b.zip MLP-lite-9dd74045373c39d8a35a59f3c2801b0348a44a9b.tar.gz MLP-lite-9dd74045373c39d8a35a59f3c2801b0348a44a9b.tar.bz2 MLP-lite-9dd74045373c39d8a35a59f3c2801b0348a44a9b.tar.xz | |
Initial commit.
This is the current alpha version, it was time to put it somewhere.
Diffstat (limited to '')
| -rw-r--r-- | README.md | 532 |
1 files changed, 532 insertions, 0 deletions
| @@ -1,2 +1,534 @@ | |||
| 1 | # MLP-lite | 1 | # MLP-lite |
| 2 | A lighter version of the MLP scripts, built for OpenSim. | 2 | A lighter version of the MLP scripts, built for OpenSim. |
| 3 | |||
| 4 | MLP lite v3.0 for OpenSim is almost a complete rewrite by onefang | ||
| 5 | rejected, of the venerable MLP scripts. It uses OpenSim specific | ||
| 6 | functions, so wont work in Second Life. It might not work on some | ||
| 7 | OpenSim grids or sims, due to the use of OpenSim specific "high threat | ||
| 8 | level" functions. Test it first before putting it in anything important. | ||
| 9 | |||
| 10 | The main justification for this rewrite is that I have about a dozen | ||
| 11 | OpenSim sims, some with dozens of copies of MLP running. So this | ||
| 12 | variation uses some OpenSim specific LSL functions, tries to use less | ||
| 13 | resources, be quicker, and automatically shuts down when no one is | ||
| 14 | around. Some functions where removed, hence the "lite" in the name, most | ||
| 15 | of these seem to not be used, or useful, or just don't get used in my | ||
| 16 | sims. Note that I've not extensively tested any of this stuff yet. It's | ||
| 17 | not a huge improvement, but when you have dozens of the things, every | ||
| 18 | little bit helps. And then I added more features. lol | ||
| 19 | |||
| 20 | Note that some of the OpenSim functions used are what OpenSim classes as | ||
| 21 | "high threat level". More about that below. This means that these | ||
| 22 | scripts wont work without some tweaking of your grid / sims | ||
| 23 | configuration. This has only been tested in my hacked up version of | ||
| 24 | OpenSim 0.8.2, which removes a lot of the insane threat levels and script | ||
| 25 | delays, so anything I say about speed improvements might not apply. I | ||
| 26 | did at least remove script delays in both LL and OS functions. If | ||
| 27 | nothing works for you, this is likely why, and you should go back to the | ||
| 28 | old scripts. Test it first before upgrading anything that's not full | ||
| 29 | perm. | ||
| 30 | |||
| 31 | Based on the original MLP - MULTI-LOVE-POSE V1.2 - Copyright (c) 2006, by | ||
| 32 | Miffy Fluffy (BSD License). This code has bounced around Second Life and | ||
| 33 | OpenSim for over a decade, with various people working on it. I can't | ||
| 34 | compile a complete list, as I have no idea of the complete history of the | ||
| 35 | versions I have received. The names I do know coz they where in the | ||
| 36 | source code (in no particular order) - Miffy Fluffy, Learjeff Innis, Jez | ||
| 37 | Ember, Liz Silverstein, Zonax Delorean, Purrcat Miranda, and Kokoro | ||
| 38 | Fasching. Apologies to anyone who's code is in this variation and I | ||
| 39 | haven't mentioned you. It's likely that some or all of the code written | ||
| 40 | by these people is no longer in this variation. Thanks to you all. | ||
| 41 | |||
| 42 | This variation is still BSD licensed. The text of the BSD license wasn't | ||
| 43 | included in any of the versions I have, but it's a simple and standard | ||
| 44 | license, you should easily find copies all over the Internet, or a | ||
| 45 | simple search. The versions I have seen don't specify which variation of | ||
| 46 | the BSD license, so I wont either. GitHub insists on a license file, so | ||
| 47 | I went with 3 clause BSD. | ||
| 48 | |||
| 49 | The next two sections of this document is mostly copied from the .readme | ||
| 50 | file I got with the latest MLP versions I had laying around. | ||
| 51 | |||
| 52 | ================================================ | ||
| 53 | |||
| 54 | FEATURES: | ||
| 55 | - Put all your poseball animations into one object (110 pairs or even more | ||
| 56 | should be no problem). | ||
| 57 | - Create submenus for each category of poses, for instance: "Solo, | ||
| 58 | Boy-Girl, Girl-Girl, Dance, 3some, 4some" | ||
| 59 | - Shows up to nine poseballs depending on the submenu you select | ||
| 60 | - Positions can be adjusted and saved into memory or notecard. | ||
| 61 | - Portable, can be worn and used everywhere | ||
| 62 | - Option to adjust height offset (Z) of all poses at once (for different | ||
| 63 | persons/locations). | ||
| 64 | - 15 poseball colours: | ||
| 65 | PINK, BLUE, PINK2, BLUE2, GREEN, MAGENTA, RED, ORANGE, WHITE, BLACK, | ||
| 66 | YELLOW, CYAN, RED2, TEAL, GREEN2 | ||
| 67 | |||
| 68 | OPERATION: | ||
| 69 | - Click the MLP object to switch it on. | ||
| 70 | - When everything has loaded the main menu will appear. | ||
| 71 | - Select a submenu containing poses, and select a pose. Pose balls will | ||
| 72 | appear. | ||
| 73 | - Sit on your pose ball (Right-click - LOVE). | ||
| 74 | - To remove the balls, select 'EXTRAS>>' then 'STOP', or just walk away, | ||
| 75 | it will shut down automatically when no one is around. | ||
| 76 | |||
| 77 | TO ADJUST POSITIONS: | ||
| 78 | You can adjust the poses to fit your own avatar and those you share MLP | ||
| 79 | with. | ||
| 80 | - Select a pose you want to adjust and sit on the balls. | ||
| 81 | - Select 'EXTRAS>> ' then 'ADJUST'. This changes the balls into | ||
| 82 | translucent beams. | ||
| 83 | - Right-click a beam, select Edit and adjust the position (Shift-click to | ||
| 84 | select more than one). | ||
| 85 | - Position the balls anywhere within the sim. | ||
| 86 | - 'EXTRAS>>', 'OPTIONS>>', then 'Save Pos' stores the positions into a | ||
| 87 | new notecard. | ||
| 88 | |||
| 89 | TO MAKE A BACKUP: | ||
| 90 | Saved positions are stored in memory but are not permanent. They are | ||
| 91 | lost on script error (See "Script run-time error / Stack-Heap Collision" | ||
| 92 | below). They are also lost on shutdown/startup, or "Pos Reset". To | ||
| 93 | back the positions up more permanently you have to copy them into a | ||
| 94 | new .POSITIONS notecard: | ||
| 95 | - Select 'EXTRAS>>', 'OPTIONS>>', then 'Save Pos' . | ||
| 96 | All original .POSITIONS* cards are copied to .backup.POSITIONS* cards. | ||
| 97 | Prop positions are saved to .PROPS, so the same applies. | ||
| 98 | |||
| 99 | Note: After changing any *.POSITIONS* files, use the 'Pos Reset' command | ||
| 100 | to verify your changes, if desired. This also helps to avoid losing | ||
| 101 | changes due to Stack-Heap collisions. | ||
| 102 | |||
| 103 | TO ADJUST HEIGHT OFFSET (Z): | ||
| 104 | Select 'EXTRAS>>', 'OPTIONS>>', then'Height>>' and click the 'Z'-buttons, | ||
| 105 | this will adjust the height for all poses. Note: the offset height is | ||
| 106 | stored in the objects Description, so any descriptions will be replaced. | ||
| 107 | |||
| 108 | TO ADD POSES: | ||
| 109 | Copy all animations into the MLP object (if you want to use existing pose | ||
| 110 | balls, open them to rip their animations). Note: you can use any object | ||
| 111 | as MLP, just copy the MLP contents in the object of your choice. Open the | ||
| 112 | .MENUITEMS and add the animations: | ||
| 113 | |||
| 114 | POSE name | animation1 | animation2 ... | ||
| 115 | |||
| 116 | The changes will become active after MLP is (re)started. Use the 'Menu | ||
| 117 | Reset' command after changing | ||
| 118 | *.MENUITEMS* files. | ||
| 119 | |||
| 120 | To give an expression to an animation, add one of the following suffixes | ||
| 121 | to the anim name in the POSE line. (Just add it to the POSE config line, | ||
| 122 | don't change the anim name.) | ||
| 123 | |||
| 124 | Suffix / expression | ||
| 125 | * open mouth | ||
| 126 | ::1 open mouth | ||
| 127 | ::2 surprise | ||
| 128 | ::3 tongue out | ||
| 129 | ::4 smile | ||
| 130 | ::5 toothsmile | ||
| 131 | ::6 wink | ||
| 132 | ::7 cry | ||
| 133 | ::8 kiss | ||
| 134 | ::9 laugh | ||
| 135 | ::10 disdain | ||
| 136 | ::11 repulsed | ||
| 137 | ::12 anger | ||
| 138 | ::13 bored | ||
| 139 | ::14 sad | ||
| 140 | ::15 embarrassed | ||
| 141 | ::16 frown | ||
| 142 | ::17 shrug | ||
| 143 | ::18 afraid | ||
| 144 | ::19 worry | ||
| 145 | ::20 sleeping (combination of disdain and smile, closest I could find) | ||
| 146 | |||
| 147 | To make the expression happen periodically rather than constantly, add | ||
| 148 | another extension and the period (in seconds). This is mostly needed for | ||
| 149 | those expressions that only last a short time. For example, to use MyAnim | ||
| 150 | with open mouth every 5.5 seconds: | ||
| 151 | |||
| 152 | POSE Mypose | MyAnim::1::5.5 | ||
| 153 | |||
| 154 | TO ADD SOUNDS (buttons to play sounds), in a menu (just like a POSE | ||
| 155 | button), add a line like this: | ||
| 156 | |||
| 157 | SOUND She moans | female-moan | ||
| 158 | |||
| 159 | where "She moans" will be the button label, and "female-moan" is the | ||
| 160 | sound to play, which must be in object inventory. For sounds in menus | ||
| 161 | with poses (rather than in a menu specifically for sounds) I recommend | ||
| 162 | you begin the pose name with "☊" (which looks a bit like headphones, the | ||
| 163 | best I could find for the purpose). This serves as a clue to the user | ||
| 164 | that the button plays a sound. | ||
| 165 | |||
| 166 | TO CREATE ANIMATION SETS (menus): | ||
| 167 | Create .MENUITEMS.xxx and .POSITIONS.xxx files (where xxx is whatever you | ||
| 168 | want) and put the corresponding menu configs and poses in them. This | ||
| 169 | way you can deliver a bed with folders of add-on menus so the customer | ||
| 170 | can choose what types of anims they want to add to the menu. Note that | ||
| 171 | you get at most 12 top menu choices. The scripts read the .POSITIONS | ||
| 172 | files in alphabetical order (and | ||
| 173 | .POSITIONS must be first). | ||
| 174 | |||
| 175 | This also allows you to sell furniture with "enhancement packs", which | ||
| 176 | are simply collections of .MENUITEMS.xxx, .POSITIONS.xxx, and the | ||
| 177 | associated animations for the customer to drop into the furniture. | ||
| 178 | Customers can easily select furniture appearance and pose bundles | ||
| 179 | independently! | ||
| 180 | |||
| 181 | SWAPPING POSES: | ||
| 182 | Each menu can have a swap command: | ||
| 183 | |||
| 184 | SWAP | 21 | ||
| 185 | |||
| 186 | Would be the default. Note that this means before you hit the SWAP | ||
| 187 | button, the balls will be in the same order as listed in the MENU and | ||
| 188 | POSE commands, after they would be reversed. SWAP always assumes | ||
| 189 | the unswapped condition is the order things are listed. So 21 in the | ||
| 190 | above command means swap the first two balls. | ||
| 191 | |||
| 192 | The default for more than two balls is to just fill out both strings with | ||
| 193 | the remaining integers: | ||
| 194 | |||
| 195 | SWAP | 213456789 | ||
| 196 | |||
| 197 | This might be used to swap the last two balls only: | ||
| 198 | |||
| 199 | SWAP | 132 | ||
| 200 | |||
| 201 | Any number of swap patterns can be used: | ||
| 202 | |||
| 203 | SWAP | 132 | 321 | 312 | ||
| 204 | |||
| 205 | You can also use a different name for the button: | ||
| 206 | |||
| 207 | SWAP switch men | 213 | ||
| 208 | |||
| 209 | Also, the original one should be supported, that uses the default: | ||
| 210 | |||
| 211 | SWAP | ||
| 212 | |||
| 213 | ACCESS TO THE MAIN MENU: | ||
| 214 | The owner is the only one who can shutdown, in all cases. Anyone | ||
| 215 | can start it. | ||
| 216 | - if 'MenuUser' is set to OWNER: the owner is the only one who can access | ||
| 217 | the menus | ||
| 218 | - if 'MenuUser' is set to ALL: anyone can access the MAIN MENU | ||
| 219 | - if 'MenuUser' is set to GROUP: members of the same Group as the MLP | ||
| 220 | object can access the | ||
| 221 | MAIN MENU (the MLP Group can set by right-clicking MLP and selecting | ||
| 222 | Edit, More >> General tab - Group: Set) Note: even if "MenuUser" is set | ||
| 223 | to ALL or GROUP, individual SUBMENUS can still be blocked (you can | ||
| 224 | define access for each submenu in .MENUITEMS, see examples in | ||
| 225 | .MENUITEMS). | ||
| 226 | |||
| 227 | PORTABLE USE: | ||
| 228 | Attach the object to the HUD, you can use it's default shape and colour | ||
| 229 | for clickable bar on one of the edges of your screen (to move HUD | ||
| 230 | position: Right-click - Edit), you can edit | ||
| 231 | colour/transparency/size/position. Adjust the height offset (Z). Note: | ||
| 232 | the balls will appear relative to the initial MLP position (to reset | ||
| 233 | where the balls appear, press STOP to remove the balls, and reselect a | ||
| 234 | submenu to rez them again). | ||
| 235 | |||
| 236 | ================================================ | ||
| 237 | |||
| 238 | FAQ for END USERS: | ||
| 239 | |||
| 240 | - Will my animations be lost if I lose a poseball? | ||
| 241 | |||
| 242 | No. The animations are not placed the balls, they remain in the main MLP | ||
| 243 | object. Don't worry about the poseballs, they are copies of the one in | ||
| 244 | the MLP object. A balls will commit suicide if left behind somewhere | ||
| 245 | (the MLP object needs to be within the same sim). | ||
| 246 | |||
| 247 | - Sometimes notecards or scripts won't open for editing, why? | ||
| 248 | |||
| 249 | If the MLP object contains many things, access to it's contents can be | ||
| 250 | slow, just keep waiting until it's all loaded. Can take over a minute | ||
| 251 | sometimes. | ||
| 252 | |||
| 253 | - "Script run-time error / Stack-Heap Collision"? | ||
| 254 | |||
| 255 | Right-click/Edit the object, and use SL menu: "Tools -> Reset Scripts in | ||
| 256 | Selection" to reset. Any saved positions that were not backed up in | ||
| 257 | .POSITIONS files are lost, so if your furniture has lots of poses (over | ||
| 258 | 50) and you save positions, be sure to back up regularly. Use OPTIONS -> | ||
| 259 | Pos Reset after changing .POSITIONS* files. | ||
| 260 | |||
| 261 | FAQ for those who edit *.MENUITEMS files: | ||
| 262 | |||
| 263 | - "Script run-time error / Stack-Heap Collision"? | ||
| 264 | |||
| 265 | After a restart, this is a clue that there are too many items in | ||
| 266 | *.MENUITEMS* or *.POSITIONS* files. Trim the menu. | ||
| 267 | |||
| 268 | - My new menu appears on the main page, rather than as a submenu where I | ||
| 269 | configured it. Why? | ||
| 270 | |||
| 271 | Most likely, you named it differently in the MENU line versus the TOMENU | ||
| 272 | line. When MPL sees a MENU line, it looks for the same name in a TOMENU | ||
| 273 | line. | ||
| 274 | |||
| 275 | ================================================ | ||
| 276 | |||
| 277 | UPGRADE GUIDE: | ||
| 278 | |||
| 279 | For the sake of these instructions, let's say you want to upgrade the | ||
| 280 | scripts in an object called "My Old Bed", this is what you would do. | ||
| 281 | These instructions assume that everything has copy permission. | ||
| 282 | |||
| 283 | First rez My Old Bed in world somewhere. If it is already in world, take | ||
| 284 | a copy, in case things don't work out and you want to revert to the old | ||
| 285 | scripts. You could also move the scripts and things you are about to | ||
| 286 | replace to a new folder, so you can put things back the way they where | ||
| 287 | before. Or just ignore any backups and cross your fingers. | ||
| 288 | |||
| 289 | Remove the old MLP scripts, they will be named ~memory, ~menu, ~menucfg, | ||
| 290 | ~pos, ~pose, ~poser, ~poser 1, ~poser 2, ~poser 3, ~poser 4, ~poser 5, | ||
| 291 | ~run, and you might also have optional scripts ~props, ~sequencer, and | ||
| 292 | ~timer. Also remove the ~ball object. There may be another script, I | ||
| 293 | have never seen one, that deals with PRIMTOUCH, my guess is it might be | ||
| 294 | called ~primtouch. Leave it alone, this new script should be compatible | ||
| 295 | with it. Since I have never seen that script, nor needed it, I dunno | ||
| 296 | for sure. | ||
| 297 | |||
| 298 | Drag the "~MLP lite for OpenSim" script into My Old Bed, and the new | ||
| 299 | ~ball object. You should see "My Old Bed: OFF (touch to switch on)" in | ||
| 300 | chat. | ||
| 301 | |||
| 302 | My Old Bed might have some props in it, they will be objects other than | ||
| 303 | ~ball. In typical examples I have seen there is a pillow, so lets use | ||
| 304 | that as an example. Drag pillow out of My Old Bed and into your | ||
| 305 | inventory, into the same folder you are backing up everything else. | ||
| 306 | Remove pillow from My Old Bed. Drag pillow onto the ground, edit it, and | ||
| 307 | remove the ~prop script. Replace that script with the new ~ball script. | ||
| 308 | Take pillow, then drag it into My Old Bed. Add the "~MLP lite props" | ||
| 309 | script to My Old Bed. | ||
| 310 | |||
| 311 | You may want to update your .MENUITEMS, or just leave them as is. Look | ||
| 312 | at the examples for how it is now recommended to have them setup. If you | ||
| 313 | do this take care of the OPTIONS menu, which is now called OPTIONS>> in | ||
| 314 | this new .MENUITEMS. | ||
| 315 | |||
| 316 | If you still want to edit the poses / props, or do any of the other | ||
| 317 | tweaking, then you might want to add the "~MLP lite tools" script to My | ||
| 318 | Old Bed. Leave it out, or remove it, once My Old Bed is fully set up. | ||
| 319 | |||
| 320 | ================================================ | ||
| 321 | |||
| 322 | DIFFERENCES FOR THE MLP lite v3.0 for OpenSim VARIATION: | ||
| 323 | |||
| 324 | As mentioned above, this variation drops a few rarely used features, and | ||
| 325 | tries to make things a bit better for OpenSim users. Note that some of | ||
| 326 | the dropped features may be added back again in later versions, I dunno | ||
| 327 | yet. | ||
| 328 | |||
| 329 | - Up to nine avatars can be animated at once. | ||
| 330 | |||
| 331 | - Menus no longer lock out other users when someone else is using it. | ||
| 332 | |||
| 333 | - The SWAP command has been changed to something like the XPOSE SWAP | ||
| 334 | command. It's documented above. The original MLP SWAP command works as | ||
| 335 | it used to. | ||
| 336 | |||
| 337 | - Changing menus no longer reverts any SWAP commands. Though if the swap | ||
| 338 | command is different between menus, it wont let you swap again in the | ||
| 339 | different menu. | ||
| 340 | |||
| 341 | - Anyone can start up an MLP lite object, and they automatically shutdown | ||
| 342 | if no one is around for a couple of minutes. This makes it easy to setup | ||
| 343 | public areas with publicly usable objects that don't soak up resources | ||
| 344 | when people forget to turn them off after using them. The startup also | ||
| 345 | prints the startup time. | ||
| 346 | |||
| 347 | - After turning on an MLP object by touching it while it is turned off, | ||
| 348 | the MAIN MENU is shown automatically to the person that started it. I | ||
| 349 | assume that the person that turned it on is just waiting for it to finish | ||
| 350 | starting up so they can actually use it. Actually the menu shows after | ||
| 351 | loading menus, but before loading positions, but you can start to use it | ||
| 352 | straight away. | ||
| 353 | |||
| 354 | - The CHECK command no longer reloads things. It also checks for | ||
| 355 | permissions and animations that are not used, as well as a few other | ||
| 356 | things. It's in the ~MLP lite tools script. | ||
| 357 | |||
| 358 | - Less scripts. There are only two scripts now, "~MLP lite for OpenSim" | ||
| 359 | is the main script, and ~ball in the ~ball and prop objects. OpenSim | ||
| 360 | doesn't seem to have any memory limits per script (usually the main | ||
| 361 | reason to split scripts like that), and it simplifies the code a lot if | ||
| 362 | there is just one main script. The ~ball script is much simpler. Props | ||
| 363 | use the ~ball script instead of ~prop. There are two optional scripts, | ||
| 364 | "~MLP lite props" is used in the main MLP object if you have any props, | ||
| 365 | and "~MLP lite tools" is used by creators and editors if needed. | ||
| 366 | |||
| 367 | - It may use a bit more CPU time when expressions are being used. You | ||
| 368 | may not notice. A lag tester was added to help with this, expressions | ||
| 369 | may slow down when it gets laggy. | ||
| 370 | |||
| 371 | - Since we use some OpenSim functions that are considered high threat, | ||
| 372 | you might need to tweak your OpenSim settings. See below for details. | ||
| 373 | |||
| 374 | - The default .MENUITEMS note card now includes an EXTRAS menu, for all | ||
| 375 | those functions that usually go at the bottom of each menu, so you can | ||
| 376 | fit more poses on each menu. I suggest that "TOMENU EXTRAS>>" be added | ||
| 377 | to the end of menus, along with "BACK" and maybe "SWAP" | ||
| 378 | |||
| 379 | - Various creator and editing functions have been moved to the TOOLS>> | ||
| 380 | menu, and the "~MLP lite tools" script. You can leave this out if | ||
| 381 | the MLP object is fully set up. | ||
| 382 | |||
| 383 | - You no longer need to have the first two lines of .MENUITEMS as the | ||
| 384 | "stand" and "default" POSE commands. It wont hurt to include them. | ||
| 385 | |||
| 386 | - MENUORDER is no longer supported, menu buttons appear in the same order | ||
| 387 | they are on the .MENUITEMS* cards, coz that's the only sane way of doing | ||
| 388 | it. | ||
| 389 | |||
| 390 | - The MAIN MENU, first menu in .MENUITEMS, no longer needs a bunch of | ||
| 391 | "TOMENU -" commands. | ||
| 392 | |||
| 393 | - While the DUMP command still prints the positions in chat, SAVE now | ||
| 394 | saves that to a fresh .POSITIONS notecard, so you no longer have | ||
| 395 | to cut and paste to your old .POSITIONS cards. The old cards are | ||
| 396 | backed up, and the same applies to .PROPS cards that store props. | ||
| 397 | |||
| 398 | - MLP lite remembers all editing of the pose balls, not just those done | ||
| 399 | while in ADJUST mode, ADJUST now just makes the pose balls easier to | ||
| 400 | edit. This makes editing of lots of poses a lot quicker, and means you | ||
| 401 | can make quick fixes on the fly, and save them at the end if you want to. | ||
| 402 | |||
| 403 | - The BALLUSERS, OFF, REDO, INVISIBLE, STAND, SHOW, HIDE, and AGAIN | ||
| 404 | commands no longer exist. They are rarely used, or just not needed. | ||
| 405 | |||
| 406 | - The code that slices up long menus into shorter ones with "BACK" and | ||
| 407 | "MORE", to fit in the Second Life 12 button menu limit has all been | ||
| 408 | removed. I was gonna rewrite that, but for various reasons decided to | ||
| 409 | just drop it completely. People can chop up their own submenus if they | ||
| 410 | need this, and that's exactly what I have seen other furniture makers do. | ||
| 411 | As a bonus, there are no hard coded English menu or button names left in | ||
| 412 | the code, so you can easily use MLP lite for other languages. On the | ||
| 413 | other hand, all the messages are in English. CHECK will let you know if | ||
| 414 | your menus are too long. | ||
| 415 | |||
| 416 | - Old ~prop scripts are not supported, use the new ~ball script instead, | ||
| 417 | which means a bit of surgery needed on old props. | ||
| 418 | |||
| 419 | - Sequences are not currently supported. | ||
| 420 | |||
| 421 | - The REORIENT command, and various link messages, are not currently | ||
| 422 | supported. Some or all of these may come back. Some of the existing | ||
| 423 | link messages changed as well. Combining the scripts meant that a lot | ||
| 424 | of these link messages are no longer needed, but some external scripts | ||
| 425 | may depend on them. | ||
| 426 | |||
| 427 | - ZHAO support is gone. None of the ZHAO based AOs I have seen in | ||
| 428 | OpenSim support that. Note that the ~MLPT-AutoZhao script says "This | ||
| 429 | one supports AutoZhao, which is a ZHAO variant that turns of | ||
| 430 | automatically when you sit." Which seems pointless, it's already doing | ||
| 431 | the correct thing. My own AO / swimmer does the correct thing to. | ||
| 432 | |||
| 433 | - No Xcite support. Xcite doesn't exist in OpenSim. | ||
| 434 | |||
| 435 | - The STOP command now just stops all animations and puts away the balls, | ||
| 436 | instead of switching to the "stand" animation. | ||
| 437 | |||
| 438 | - Strided lists are used internally, in theory should use a little less | ||
| 439 | memory than having separate lists for everything. | ||
| 440 | |||
| 441 | - osMessageObject() is used instead of llSay() to communicate with the | ||
| 442 | pose balls. This will stop any cross talk issues, and save some script | ||
| 443 | running time. As a bonus, balls can be anywhere in the sim. | ||
| 444 | |||
| 445 | - The OpenSim notecard reading functions are used instead of the clunky | ||
| 446 | Second Life dataserver() functions. Faster and cleaner code. | ||
| 447 | |||
| 448 | - While the PRIMTOUCH command is still supported, it's script isn't here. | ||
| 449 | I never did have a copy of that script, and haven't needed to use it | ||
| 450 | anyway. | ||
| 451 | |||
| 452 | - There may be a thing or two I forgot to mention here. | ||
| 453 | |||
| 454 | ================================================ | ||
| 455 | |||
| 456 | OPENSIM THREAT LEVELS: | ||
| 457 | |||
| 458 | OpenSim developers introduced a concept of "threat levels" for their new | ||
| 459 | os* LSL functions. In my not so humble opinion, they where very | ||
| 460 | paranoid in assigning threat levels. For this reason, these scripts may | ||
| 461 | or may not work in any given grid or sim. In my version of OpenSim I | ||
| 462 | have removed or reduced the more insane threat levels, so YMMV. | ||
| 463 | |||
| 464 | Refer to the OpenSim documentation for how to deal with this, or ask the | ||
| 465 | person that runs your OpenSim grid / sim. | ||
| 466 | |||
| 467 | - osAvatarPlayAnimation() and osAvatarStopAnimation() | ||
| 468 | Threat level: VeryHigh, disabled by default. | ||
| 469 | |||
| 470 | These two functions can animate any avatar with any animation in the | ||
| 471 | objects inventory, without asking permission. So I guess this threat | ||
| 472 | level is warranted. Also means one script can manage animations for more | ||
| 473 | than one avatar, a limitation of the LL variety. | ||
| 474 | |||
| 475 | Used to get rid of one of the annoying aspects of how MLP works, which | ||
| 476 | often confuses newbies. Also allowed me to reduce the code complexity | ||
| 477 | and get rid of all those ~poser X scripts. | ||
| 478 | |||
| 479 | - osGetRezzingObject() | ||
| 480 | Threat level: none, enabled by default. | ||
| 481 | |||
| 482 | Wow, no threat level, the only one. lol | ||
| 483 | |||
| 484 | Used to reduce the complexity of the communication between the MLP object | ||
| 485 | and the balls. | ||
| 486 | |||
| 487 | - osGetNumberOfNotecardLines(), osGetNotecard(), and osGetNotecardLine() | ||
| 488 | Threat level: VeryHigh, only enabled for estate owners and managers by | ||
| 489 | default. | ||
| 490 | |||
| 491 | A faster and less complex way of being able to do what you could always | ||
| 492 | do, gets a VeryHigh threat level? WTF are the OpenSim developers | ||
| 493 | smoking? | ||
| 494 | |||
| 495 | Used to speed things up and reduce code complexity, exactly what they | ||
| 496 | where designed for. | ||
| 497 | |||
| 498 | - osMakeNotecard() | ||
| 499 | Threat level: High, only enabled for estate owners and managers by | ||
| 500 | default. | ||
| 501 | |||
| 502 | Slightly less WTF than the other notecard functions, but still. Allows | ||
| 503 | to script what the object owner can do manually, why is that a high | ||
| 504 | threat? | ||
| 505 | |||
| 506 | Saves having to cut and paste to notecards after editing ball and prop | ||
| 507 | positions. | ||
| 508 | |||
| 509 | -osMessageObject() | ||
| 510 | Threat level: Low, only enabled for estate owners and managers by | ||
| 511 | default. | ||
| 512 | |||
| 513 | More WTF, allows to send messages between objects better. Nothing you | ||
| 514 | couldn't do before. | ||
| 515 | |||
| 516 | Used to reduce the complexity and increase the reliability of messages | ||
| 517 | between the MLP object and balls / props. | ||
| 518 | |||
| 519 | -osReplaceString() | ||
| 520 | Threat level: VeryLow , enabled by default. | ||
| 521 | |||
| 522 | Why isn't this threat level none? | ||
| 523 | |||
| 524 | Used to reduce script complexity. | ||
| 525 | |||
| 526 | -osSetPrimitiveParams() | ||
| 527 | Threat level: High, disabled by default. | ||
| 528 | |||
| 529 | Once again, allows scripting of something that can be done manually, and | ||
| 530 | only works on objects the script owner actually owns. With that later | ||
| 531 | restriction, total WTF. | ||
| 532 | |||
| 533 | Used to reduce complexity and speed things up. | ||
| 534 | |||
