script sur objet porter avec menu

Répondre
Partager Rechercher
bonjour voici un script qui sur soit active une animation
l idée est que l on puis ajouter plusieurs animations et donc acces avec un menu
tout en laissant l objet attaché a soit par exemple une chaise de striptease que l'on porte en attachement mais qui peut avoir un menu
le but est de le porter sur une sim ou l on ne peux pas poser

string anim = "static-pose-2";

integer attached = FALSE;
integer permissions = FALSE;

default
{
state_entry()
{
llRequestPermissions(llGetOwner(), PERMISSION_TRIGGER_ANIMATION);
}

run_time_permissions(integer permissions)
{
if (permissions > 0)
{
llStartAnimation(anim);
attached = TRUE;
permissions = TRUE;
}
}

attach(key attachedAgent)
{
if (attachedAgent != NULL_KEY)
{
attached = TRUE;

if (!permissions)
{
llRequestPermissions(llGetOwner(), PERMISSION_TRIGGER_ANIMATION);
}
}

else
{
attached = FALSE;
llStopAnimation(anim);
}
}
}

// END //

Dernière modification par stefsparta ; 02/11/2019 à 15h32.
teste ça....




list ANIM_MENU;
list REF_MENU;
integer COUNT = 1;

string anim = "static-pose-2";

integer channel;
integer listenHandle;

Stop_all_Anims()
{
list animations = llGetAnimationList(owner);
integer i;
for(i = 0; i < llGetListLength(animations); ++i)
{
llStopAnimation(llList2Key(animations, i));
}
}


list order_buttons(list buttons)
{
return llList2List(buttons, -3, -1) + llList2List(buttons, -6, -4) +
llList2List(buttons, -9, -7) + llList2List(buttons, -12, -10);
}

PresentMenu()
{
integer nb_danses = llGetInventoryNumber(INVENTORY_ANIMATION);
if(nb_danses <= 11)
{
ANIM_MENU = ["STOP"];
REF_MENU = ["STOP"];
integer i;
for(i = 0; i < nb_danses; ++i)
{
string name = llGetInventoryName(INVENTORY_ANIMATION, i);
if(name != "")
{
ANIM_MENU += name;
integer x = llStringLength(name);
if(x > 12)
{
name = llGetSubString(name, x - 10, x - 1);
}
REF_MENU += name;
}
}
}
else
{
ANIM_MENU = ["<<<","STOP", ">>>"];
REF_MENU = ["<<<","STOP", ">>>"];
integer start = (COUNT * 9) -9;
integer stop = (COUNT * 9) - 1;
integer i;
for(i = start; i <= stop; ++i)
{
string name = llGetInventoryName(INVENTORY_ANIMATION, i);
if(name != "")
{
ANIM_MENU += name;
integer x = llStringLength(name);
if(x > 12)
{
name = llGetSubString(name, x - 10, x - 1);
}
REF_MENU += name;
}
}
}
llSetTimerEvent(30.0);
llDialog(owner, "Choise une anim", REF_MENU, channel);
}

key owner;

default
{
on_rez(integer param)
{
llResetScript();
}

state_entry()
{
channel = (integer)("0xA" + llGetSubString((string)llGetKey(), 0,6 ));
owner =llGetOwner();
llRequestPermissions(owner, PERMISSION_TRIGGER_ANIMATION);
}

run_time_permissions(integer permissions)
{
if (permissions > 0)
{
Stop_all_Anims();
llStartAnimation(anim);
}
}

attach(key attachedAgent)
{
if (attachedAgent != NULL_KEY)
{
llRequestPermissions(llGetOwner(), PERMISSION_TRIGGER_ANIMATION);
}

else
{
Stop_all_Anims();
llResetScript();
}
}

touch_start(integer num)
{
key id= llDetectedKey(0);
if(id==owner)
{
llListenRemove(listenHandle);
listenHandle = llListen(channel, "", owner, "");
PresentMenu();
}
}

listen(integer chan, string name, key id, string msg)
{
if(msg =="STOP")
{
Stop_all_Anims();
llResetScript ();
}

else if(msg == ">>>")
{
float MAX = llGetInventoryNumber(INVENTORY_ANIMATION);
MAX = MAX / 9.0;
integer MAXIMUM = llCeil(MAX);
++COUNT;
if(COUNT > MAXIMUM)
{
COUNT = 1;
}
PresentMenu();
}
else if(msg == "<<<")
{
if(COUNT > 1)
{
--COUNT;
}
else
{
float MAX = llGetInventoryNumber(INVENTORY_ANIMATION);
MAX = MAX / 10.0;
integer MAXIMUM = llCeil(MAX);
COUNT = MAXIMUM;
}
PresentMenu();
}

else
{
llListenRemove(listenHandle);
llSetTimerEvent(0.0);

integer index = llListFindList(REF_MENU, [msg]);
string dance = llList2String(ANIM_MENU, index);
Stop_all_Anims();
llStartAnimation(dance);
}
}

timer()
{
llListenRemove(listenHandle);
llSetTimerEvent(0.0);
}

changed (integer change)
{
if (change & CHANGED_OWNER)
llResetScript ();
}
}
script sur objet porter avec menu
j ai trouvé j avais oublié de mettre la pose static

excuse moi
Citation :
Publié par stefsparta
en fait le bouton stop fonctionne pas
comme une idée arrive avec une autre est t il possible avec ce script de porter 2 chaise et que un autre avatar puisse utiliser la 2 eme chaise
Citation :
Publié par stefsparta
j ai trouvé j avais oublié de mettre la pose static

excuse moi

Dernière modification par stefsparta ; 03/11/2019 à 10h54. Motif: Auto-fusion
Citation :
Publié par MenthalOH
Pour moi il fonctionne...il remet l' animation par defaut "static-pose"
oui merci c est au top la
comme une idée arrive avec une autre est t il possible avec ce script de porter 2 chaise et que un autre avatar puisse utiliser la 2 eme chaise
Citation :
Publié par MenthalOH
ça c 'est pas possible , on ne peut pas s' assoir sur un objet porté ....
ok oui faut un hud alors le truc est de ne pas rezzer de balls mais super en tous cas merci beaucou
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés