SL - Forum scripts

[Wiki] Bibliothèque de scripts

Répondre
Partager Rechercher
Les Permissions de prise de commandes
Description : Ce script permet de comprendre le fonctionnement et l'utilisation de la prise de commande de l'avatar pour animer un prim.

Code PHP:

// Script de Mathew Cazalet pour l'Ecole de SL et JOL.
// Merci de respecter cette En-tête.
// Ce script est libre d'utilisation et ne peut être vendu.
// Par avance merci d'en tenir compte ;)

default
{
    
touch_start(integer total_number)
    {
        
llRequestPermissions(llDetectedKey(0),PERMISSION_TAKE_CONTROLS); //Demande de prise de control de l'avatar
    
}
    
run_time_permissions(integer permissions)
    {
        if (
permissions==PERMISSION_TAKE_CONTROLS//Si la demande est acceptée, défini les touches utilisées
        
{
            
//Pour les éléments vous verrez ci-après chaque touche ^^
            
integer controls=
                
CONTROL_BACK|
                
CONTROL_DOWN|
                
CONTROL_FWD|
                
CONTROL_LBUTTON|
                
CONTROL_LEFT|
                
CONTROL_ML_LBUTTON|
                
CONTROL_RIGHT|
                
CONTROL_ROT_LEFT|
                
CONTROL_ROT_RIGHT|
                
CONTROL_UP;
            
llTakeControls(controls,TRUE,FALSE); //Défini le sens de fonctionnement, premier TRUE vous allez envoyer les touches au prim, deuxième FALSE, le prim ne vous enverra pas ces touches.
        
}
    }
    
control(key nameinteger levelsinteger edges)
    {
        
//Losque l'on appuie sur une touche, l'évènement control est réalisé et la valeur de la touche est renvoyée dans levels. Il reste donc a tester cette valeur avec les constantes prédéfinies pour effectuer l'action adéquate.
        
if (levels CONTROL_BACK)
        {
            
llWhisper(0,"Fleche recule");
        }
        if (
levels CONTROL_DOWN)
        {
            
llWhisper(0,"Fleche descendre");
        }
        if (
levels CONTROL_FWD)
        {
            
llWhisper(0,"Fleche avance");
        }
        if (
levels CONTROL_LBUTTON)
        {
            
llWhisper(0,"Clic souris");
        }
        if (
levels CONTROL_LEFT)
        {
            
llWhisper(0,"Fleche gauche + Shift");
        }
        if (
levels CONTROL_ML_LBUTTON)
        {
            
llWhisper(0,"Clic souris en Mouse look");
        }
        if (
levels CONTROL_RIGHT)
        {
            
llWhisper(0,"Fleche droite + shift");
        }
        if (
levels CONTROL_ROT_LEFT)
        {
            
llWhisper(0,"Fleche gauche");
        }
        if (
levels CONTROL_ROT_RIGHT)
        {
            
llWhisper(0,"Fleche droite");
        }
        if (
levels CONTROL_UP)
        {
            
llWhisper(0,"Fleche monter");
        }
    }

Description : Ce script permet de comprendre le fonctionnement et d'utiliser un tableau en 3 Dimensions.

Code PHP:

// Mathew Cazalet MC2007 pour l'Ecole de SL et JOL.
// Merci de respecter cette En-tête.
// Ce script est libre d'utilisation et ne peut être vendu.
// Par avance merci d'en tenir compte ;)

list matrice = ["111_112_113!121_122_123!131_132_133","211_212_213!221_222_223!231_232_233","311_312_313!321_322_323!331_332_333"];//Voici la matrice décomposé en X (via les ,) en Y (via les !) et en Z (via les _)

string matrice3D(integer X,integer Yinteger Z)//Voilà une fonction personnelle
{
    
    
string X1=llList2String(matrice,X-1);//On extrait le ligne des X
    
list X2 llParseString2List(X1,["!"],[]);//On convertit la phrase précédente en liste en avec ! comme caractère de séaparation.
    
string Y1=llList2String(X2,Y-1);//On extrait le ligne des Y
    
list Y2 llParseString2List(Y1,["_"],[]);//On convertit la phrase précédente en liste en avec _ comme caractère de séaparation.
    
string Z1=llList2String(Y2,Z-1);//On extrait la valeur en Z
    
    
return Z1;//Et là on renvoie la valeur Z à la fonction
    
    
}

default
{


    
touch_start(integer total_number)
    {
        
llSay(0matrice3D(2,1,2));//Ici vu que la fonction renvoie la valeur au format "string" pas besoin de passer par des variables globales...
    
}

Une tip jar qui :
envoie des particules vers le donateur j'ai pris celle-ci (qu'il vous faut enregister en PNG afin d'en conserver la transparence dans SL) 18964198528_14e997591c_o.png. Vous glisser la texture avec le script dans l'objet à défaut de texture, ce seront de petite boules blanches.

Remercie le donateur dans la chat

Affiche le montant total de la tip jar ainsi que le nom et la somme versée par le dernier donateur au dessus de l'objet contenant le script.

Vous avertie que vous avez reçu xxxL$ de xxxx

Elle est vraiment parfaite. Merci Netpat !

Citation :
// Durée d'émission des particules en secondes
float DELAI = 4;


integer totaldonated;
string owner;
MakeParticles(key keydest)//This is the function that actually starts the particle system.
{
llParticleSystem([ //KPSv1.0
PSYS_PART_FLAGS , 0 //Comment out any of the following masks to deactivate them
| PSYS_PART_INTERP_COLOR_MASK //Colors fade from start to end
| PSYS_PART_INTERP_SCALE_MASK //Scale fades from beginning to end
| PSYS_PART_FOLLOW_VELOCITY_MASK //Particles are created at the velocity of the emitter
| PSYS_PART_EMISSIVE_MASK //Particles are self-lit (glow)
| PSYS_PART_TARGET_POS_MASK
| PSYS_PART_WIND_MASK

,PSYS_SRC_PATTERN, 2
,PSYS_SRC_TARGET_KEY, keydest
,PSYS_SRC_TEXTURE, llGetInventoryName(INVENTORY_TEXTURE,0) //desired particle texture
,PSYS_PART_MAX_AGE, 2.5 //Lifetime, in seconds, that a particle lasts
,PSYS_SRC_BURST_RATE, .5 //How long, in seconds, between each emission
,PSYS_SRC_BURST_PART_COUNT, 2 //Number of particles per emission
,PSYS_SRC_BURST_RADIUS, 1.0 //Radius of emission
,PSYS_SRC_ACCEL, <3.0,3.0,0.0> //Acceleration of particles each second
,PSYS_PART_START_ALPHA, 1.0 //Starting transparency, 1 is opaque, 0 is transparent.
,PSYS_PART_END_ALPHA, 0.0 //Ending transparency
,PSYS_PART_START_SCALE, <.20,.20,.20> //Starting particle size
,PSYS_PART_END_SCALE, <0.15,0.15,0.15> //Ending particle size, if INTERP_SCALE_MASK is on
,PSYS_SRC_OMEGA, <1.0,0.0,0.0> //Rotation of ANGLE patterns, similar to llTargetOmega()
]);
}
default
{
on_rez( integer sparam )
{
llResetScript();
}

state_entry()
{
owner = llKey2Name( llGetOwner() );
llSetPayPrice(100,[20,50,200,500]);
llSetText( "Tip Jar de " + owner + ".\nmerci pour votre tip !\n$L0 don de la tip jar",<.25,1,.65>,1);
}

money(key id, integer amount)
{
llSetTimerEvent(DELAI);
MakeParticles(id);
totaldonated += amount;

llSay(0, llKey2Name(id)+ " Merci beaucoup TY very much ! ");
llSetText( "Tip Jar de " + owner + ".\nTotal des versements " + (string)totaldonated + " $L"+"\nDernier don de :"+ (string)amount + " $L par "+ llKey2Name(id),<.25,1,.65>,1);
llOwnerSay((string)llKey2Name(id)+" a donné " + (string)amount + " $L.");
}

timer()
{
llParticleSystem([]);
}
}
Merci de ne pas commercialiser ce script qui a été créer gracieusement.

Dernière modification par Lundrah ; 25/06/2015 à 20h49.
Répondre

Connectés sur ce fil

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