Script changement couleur de cheveux

Répondre
Partager Rechercher
Salut à tous, voila je recherche un script qui permettrait de changer la couleur (texture) d'une coupe de cheveux en une seule fois.

J'ai vu que ca existait mais je n'ai pas trouvé, quelq'un a une idée?
Je ne peux pas donner de code "au vol", étant hors-monde il aurait toutes les chances de comporter une erreur de syntaxe, mais le principe est le suivant:

boucler sur le nombe de prims (donné par llGetNumberOfPrims) et appeller llSetLinkColor et/ou llSetLinkTexture.
Voilà un script bilingue que j'ai utilisé pour mes lunettes. Tu devra le mettre dans chaque mèche de ta coupe de cheveux :

Code:
vector couleur; // Couleur de base
default
{
    state_entry()
    {
        llListen(1, "", llGetOwner(), "");
    }
 
 
    listen( integer channel, string name, key id, string message )
    {
        if (message=="blanc")
            llSetColor(<1,1,1>, ALL_SIDES); 
        else
        if (message=="white")
           llSetColor(<1,1,1>, ALL_SIDES);
        else 
        if (message=="noir")
            llSetColor(<0,0,0>, ALL_SIDES);
        else 
        if (message=="black")
            llSetColor(<0,0,0>, ALL_SIDES);
        else 
        if (message=="rouge")
            llSetColor(<1,0,0>, ALL_SIDES);
        else 
        if (message=="red")
            llSetColor(<1,0,0>, ALL_SIDES); 
        else
        if (message=="vert")
            llSetColor(<0,1,0>, ALL_SIDES);
        else
        if (message=="green")
            llSetColor(<0,1,0>, ALL_SIDES);
        else
        if (message=="bleu")
            llSetColor(<0,0,1>, ALL_SIDES);
        else
        if (message=="blue")
            llSetColor(<0,0,1>, ALL_SIDES);
        else 
        if (message=="jaune")
            llSetColor(<1,1,0>, ALL_SIDES);
        else 
        if (message=="yellow")
            llSetColor(<1,1,0>, ALL_SIDES);
        else 
        if (message=="violet")
            llSetColor(<0.6,0,1>, ALL_SIDES);
        else 
        if (message=="purple")
            llSetColor(<0.6,0,1>, ALL_SIDES);
        else 
        if (message=="mauve")
            llSetColor(<1,0,1>, ALL_SIDES);
        else 
        if (message=="bleu clair")
            llSetColor(<0,1,1>, ALL_SIDES);
        else 
        if (message=="light blue")
            llSetColor(<0,1,1>, ALL_SIDES); 
        else 
        if (message=="rose")
            llSetColor(<1,0.4,0.6>, ALL_SIDES);
        else 
        if (message=="pink")
            llSetColor(<1,0.4,0.6>, ALL_SIDES);
        else
        if (message=="orange")
            llSetColor(<1,0.5,0>, ALL_SIDES);
        else
        if (message=="marron")
            llSetColor(<0.7,0.3,0>, ALL_SIDES);
        else
        if (message=="brown")
            llSetColor(<0.7,0.3,0>, ALL_SIDES);
    }
}
Cette commande là : llListen(1, "", llGetOwner(), ""); C'est pour le canal sur lequel tu demandes le changement de couleur. Ici il est sur le numéro 1. Donc, pour changer la couleur de tes cheveux, tu écriras dans le chat : /1 red ... Par exemple.
par contre Didiane je te déconseille le script qui permet de changer la couleur en cliquant sur les cheveux, pour peu que les cheveux soient un peu longs tu déclenches la commande régulièrement sans le vouloir.
Je l'ai eu par défaut dans une série de cheveux que j'ai acheté, heureusement qu'on pouvait le supprimer.
Une commande via le chat sera plus pratique.
Citation :
Publié par David DuCasse
Voilà un script bilingue que j'ai utilisé pour mes lunettes. Tu devra le mettre dans chaque mèche de ta coupe de cheveux
Marchera pas parce que les cheveux sont composés de plusieurs prims.

Code PHP:

setColor(vector color) {
    
integer numprims llGetNumberOfPrims();
    
integer i; for (i=1i<=numprimsi++)
        
llSetLinkColor(i,color,ALL_SIDES);

Oui c'est bien ce que je disais "Tu devra le mettre dans chaque mèche de ta coupe de cheveux" ...

Tout comme mes lunettes, un script dans chaque verre. Le nombre n'est pas important. Deux prims ou 80, ça ne change rien.
Bien sûr. Il suffit de remplacer:
llSetLinkColor(i,color,ALL_SIDES)
par:
llSetLinkTexture(i,texture,ALL_SIDES).

Où 'texture' est le nom de la texture utilisée. Cependant, cela obligerait à placer une copie de la texture dans chaque prim. Il existe une solution plus commode à mon sens qui est de placer un exemplaire unique de la texture dans la racine et de passer la clé de la texture à la place de son nom (les deux sont interchangeable pour cet usage). Ce qui nous donnerait:

Code PHP:

setTexture(string texture) {
    
integer numprims llGetNumberOfPrims();
    
integer i; for (i=1i<=numprimsi++)
        
llSetLinkTexture(i,texture),ALL_SIDES);
}  

key textureKey llGetInventoryKey("Le_nom_de_ma_texture");
setTexture(textureKey); 
hello j'ai un petit probleme.
J'ai utilisé ce script mais il n'y a que moi qui arrive a changer les couleurs.
Je suppose que cela vient de :

llListen(1, "", llGetOwner(), "");

mais je ne sais pas quoi mettre pour que les autres personnes puissent s'en servir?
Quelqu'un peu m'aider ?
merçi d'avance
Remplace llGetOwner() (qui est la clé du propriétaire de l'objet) par NULL_KEY (qui signifie aucune clé):

llListen(1, "", NULL_KEY, "");
Répondre

Connectés sur ce fil

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