Daemonika Nightfire
Forumsgott/göttin
Code:
[COLOR=red] . /´¯/) (\¯`\
. /¯..// ´¯`·. .·´¯`: \\..¯\
. /....// '·. •`·. .·´• .·' \\....\
. /´¯`/'' ''/´¯¯`·¸ `:--·´ `·--:´ ¸·´¯¯`\'' ''\´¯`
./''/ / / /¨ /¯\ `·. ' ' .·´ /¯\ ¨\ \ \ \''\
.(''( ´ ´ ¯\/'' '') ;`·-·´; ('' ''\/¯ ` ` )'')[/COLOR]
vielen von uns ging es sowas von aufn piss beim TP stiefel oder aehnliches vorher ausziehen zu muessen, nur weil die sachen NO MOD und diese scheiss resize scripte darin es auch waren.
es bleibt dann nur die moeglichkeit jedes einzelne script einzeln raus zu loeschen oder einen Estate Manager deines vertrauens u fragen ob er sie komplett deaktiviert, in beiden faellen sind die scripte UNBRAUCHBAR und eine groessen anpassung der items nicht mehr moeglich.
vor allem laggen die stiefel dann wie sau (stifel mit 800 Prims = 800 scripte) GEHTS NOCH???
es ist einfach ne sauerei Ottonormal User so ein Protukt zu verkaufen, drum mal an alle designer die werrt auf so ein resizemist legen MACHT DAS SCHEISS SCRIPT MOD wenns die stiefel schon nicht sind.
Drum hab ich mich entschlossen es hier FULLPERM einsustellen das es keinen grund mehr gibt es NO MOD anzubieten.
erster teil fuer das rootprim:
Code:
key owner; // var that names the owner
string dialog_message; // the text showed in the dialog
list buttons = ["Inc 1%", "Inc 5%", "Inc 10%", "Dec 1%", "Dec 5%", "Dec 10%", "reset", "close"]; // the buttons
integer channel; // the channel for comunication with the dialog
integer num = 1111; // this number makes sure, that only this script resizes the children
vector size; // vars for primsize
vector org_size;
float scale;
string inventory;
integer lhandle;
init() // initialization
{
channel = ((integer)llFrand(2147483640) * -1) - 1; // a random channel generation. this is needed if more objects using this script
dialog_message = "Click the Buttons to increase or decrease the Size of the Prim and its Linkset by 1, 5 or 10%. Click reset to revert to original size and close to leave the menu."; // dialog text
integer i;
inventory = llGetInventoryName(INVENTORY_LANDMARK, 0);
size = llGetScale();
org_size = llGetScale();
llSetScale(size); // get original sizes
scale = 1;
llMessageLinked(LINK_SET, 1111, (string)scale, NULL_KEY);
}
reset()
{
llSetScale(org_size); // reset original size
scale = 1;
llMessageLinked(LINK_SET, 1111, (string)scale, NULL_KEY);
llDialog(owner, dialog_message, buttons, channel);
}
bigger() // make bigger
{
size = llGetScale(); // get size
size = size * scale; // add ten percent
llSetScale(size); // resize
llMessageLinked(LINK_SET, 1111, (string)scale, NULL_KEY);
llDialog(owner, dialog_message, buttons, channel);
llSetTimerEvent(30);
}
smaller() // make smaller
{
size = llGetScale(); // get size
size = size * scale; // take 10% from that
llSetScale(size); // resize
llMessageLinked(LINK_SET, 1111, (string)scale, NULL_KEY);
llDialog(owner, dialog_message, buttons, channel);
llSetTimerEvent(30);
}
menudone()
{
llListenRemove(lhandle);
llSetTimerEvent(0);
}
default
{
state_entry()
{
init();
}
changed(integer change)
{
if (change & CHANGED_OWNER)
init();
}
touch_start(integer total_number)
{
// owner = llDetectedKey(0); // make everyone use the script
lhandle = llListen(channel, "", NULL_KEY, "");
llSetTimerEvent(30);
owner = llGetOwner(); // only owner can use it
if (llDetectedKey(0) == owner)
llDialog(owner, dialog_message, buttons, channel);
else
llGiveInventory(llDetectedKey(0), inventory);
}
listen(integer channel, string name, key id, string message)
{
if (llListFindList(buttons, [message]) != -1) // make sure we listen only to us
{
// llSay(0, name + " picked the option '" + message + "'."); // write order to chat
if (message == "reset")
reset();
else if (message == "Inc 1%")
{
scale = 1.01;
bigger();
}
else if (message == "Inc 5%")
{
scale = 1.05;
bigger();
}
else if (message == "Inc 10%")
{
scale = 1.1;
bigger();
}
else if (message == "Dec 1%")
{
scale = 0.99;
smaller();
}
else if (message == "Dec 5%")
{
scale = 0.95;
smaller();
}
else if (message == "Dec 10%")
{
scale = 0.9;
smaller();
}
else if (message == "close") {
menudone();
}
}
}
timer()
{
menudone();
}
}
Code:
vector org_size;
vector org_pos;
default
{
state_entry()
{
org_size = llGetScale();
org_pos = llGetLocalPos();
}
link_message(integer sender_num, integer num, string str, key id)
{
float scale; // size factor
list primparams;
scale = (float)str;
if (scale == 1)
{
primparams = [];
primparams += [PRIM_SIZE, org_size];
if (llGetLinkNumber() > 1)
{ // only move if we're not the root object
primparams += [PRIM_POSITION, org_pos]; // reposition
}
}
else
{
primparams = [];
primparams += [PRIM_SIZE, llGetScale() * scale]; // resize
if (llGetLinkNumber() > 1)
{ // only move if we're not the root object
primparams += [PRIM_POSITION, llGetLocalPos() * scale]; // reposition
}
}
llSetPrimitiveParams(primparams);
}
}
PS: boese briefe ueber meine beweggruende dieses posts beachte ich erst gar nicht.
uebrigens, wer rechtschreibfehler findet, DARF SIE GERN BEHALTEN^^
eure Dae
bussi