SL - Forum scripts

Timer avec choix des minutes ( Countdown )

Répondre
Partager Rechercher
Bonjour la communauté

Je me permet un petit message car je suis à la recherche si jamais cela traine dans votre inventaire d'un script timer .

J'ai besoin de pouvoir mettre le script dans un prim à porter comme un hud et pouvoir cliquer dessus afin d'ouvrir un menu qui me propose différent timer style countdown.

l'ideal serais avec une option loops ( que je puisse activer ou désactiver dans mon menu ) ce qui veut dire que par exemple si je met le timer a 30 mns arrivée au bout des 30mns il repart sur un timer automatiquement .

voila j’espère ne pas vous avoir perdu dans mes explications , voici une petit image pour montrer le style du timer .


i347.png




grand merci d'avance

Afx
Citation :
Publié par afx
Bonjour la communauté

Je me permet un petit message car je suis à la recherche si jamais cela traine dans votre inventaire d'un script timer .

J'ai besoin de pouvoir mettre le script dans un prim à porter comme un hud et pouvoir cliquer dessus afin d'ouvrir un menu qui me propose différent timer style countdown.

l'ideal serais avec une option loops ( que je puisse activer ou désactiver dans mon menu ) ce qui veut dire que par exemple si je met le timer a 30 mns arrivée au bout des 30mns il repart sur un timer automatiquement .

voila j’espère ne pas vous avoir perdu dans mes explications , voici une petit image pour montrer le style du timer .


i347.png




grand merci d'avance

Afx
hello, mets ce script dans un prim, auquel tu ajoutes un petit prim pour le switch "loop", et qui aura donc le linknumber 2....sinon, adapte le linknumber.....




integer count ;
integer counter;
integer loop;

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

list boutons=["10","20","30","60","STOP","GO"];

integer canal;
integer ecoute;

key id;

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

state_entry()
{
canal = (integer)("0xA" + llGetSubString((string)llGetKey(), 0,6 ));

loop = 0;

llSetLinkPrimitiveParamsFast(LINK_THIS, [PRIM_TEXT, "clic pour menu **** loop OFF", <1.0,0.0,0.0>, 1.0]);
llSetLinkPrimitiveParamsFast(2, [PRIM_TEXT, "Loop OFF", <0.0,0.0,1.0>, 1.0]);
}

touch_start(integer total_number)
{
if(llDetectedLinkNumber(0) == 2)
{
if(loop == 0)
{
llSetLinkPrimitiveParamsFast(2, [PRIM_TEXT, "Loop ON", <0.0,0.0,1.0>, 1.0]);
llSetLinkPrimitiveParamsFast(LINK_THIS, [PRIM_TEXT, "clic pour menu **** loop ON", <1.0,0.0,0.0>, 1.0]);
loop = 1;
}
else if (loop == 1)
{
llSetLinkPrimitiveParamsFast(2, [PRIM_TEXT, "Loop OFF", <0.0,0.0,1.0>, 1.0]);
llSetLinkPrimitiveParamsFast(LINK_THIS, [PRIM_TEXT, "clic pour menu **** loop OFF", <1.0,0.0,0.0>, 1.0]);
loop = 0;
}
}
else
{
id = llDetectedKey(0);
llListenRemove(ecoute);
ecoute = llListen(canal, "",id, "");
llDialog(id,"Choise une option", order_buttons(boutons), canal);
}
}

listen(integer chan, string name, key id, string msg)
{
if(msg == "STOP")
{
llResetScript();
}
if(msg == "GO")
{
if(count == 0)
{
llOwnerSay("Selectionnez une durée avant de commencer!");
llSetLinkPrimitiveParamsFast(LINK_THIS, [PRIM_TEXT, "PAS DE DUREE!!!", <1.0,0.0,0.0>, 1.0]);
llDialog(id,"Choise la durée du countdown", order_buttons(boutons), canal);
}
else
{
llListenRemove(ecoute);
llSetTimerEvent(1.0);
}
}
else
{
count = (integer)msg;
counter = count;
llDialog(id,"Choise GO pour demarrer!", order_buttons(boutons), canal);

if(loop == 1)
{
llSetLinkPrimitiveParamsFast(LINK_THIS, [PRIM_TEXT, "Clic GO pour un decompte de\n"+(string)count+ " sec.\n loop ON", <1.0,0.0,0.0>, 1.0]);
}
if(loop == 0)
{
llSetLinkPrimitiveParamsFast(LINK_THIS, [PRIM_TEXT, "Clic GO pour un decompte de\n"+(string)count+ " sec.\n loop OFF", <1.0,0.0,0.0>, 1.0]);
}
}
}

timer()
{
if(loop == 1)
{
llSetLinkPrimitiveParamsFast(LINK_THIS, [PRIM_TEXT, (string)(count--) + " sec."+ " loop ON", <0.0,1.0,0.0>, 1.0]);
if(count == -1)
{
count = counter;
}
}
else if(loop == 0)
{
llSetLinkPrimitiveParamsFast(LINK_THIS, [PRIM_TEXT, (string)(count--) + " sec."+ " loop OFF", <0.0,1.0,0.0>, 1.0]);
if(count == -1)
{
llSleep(1.0);
llResetScript();
}
}
}
}
merci
merci beaucoup MenthalOH pour ton script .

Une chose que je me demandais ... est t'il possible de passer les secondes en minutes , c'est à dire au lieu d'avoir le choix entre 10 , 20 ,30... secondes plutôt avoir cela en minutes .

Autre chose que je me demande aussi ^^je vais t'envoyer un timer car j'ai du mal à comprendre comment faire un affichage comme sur la photo que j'ai post . Le script avec un hovertext rempli bien les fonction mais niveau ( esthétique ) je me pose la question du comment est ce possible de réaliser cela . ( voir photo plus haut )

milles merci en tout les cas de ton aide


afx
Répondre

Connectés sur ce fil

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