Script "texture align"

Répondre
Partager Rechercher
Bonsoir a tous !
Comme le titre l'indique.... Je cherche a savoir si un script nommé "texture align" existe. En fait un ami m'en a parlé mais je ne sais pas s'il est vraiment.
En fait je cherche un script capable d'assigner 1 texture sur plusieurs prims linkés....mais que cette texture n'apparaisse pas une fois par prim mais bien "scalée" sur tous les prims.... ....suis pas sur de bien me faire comprendre....

Si une âme charitable n'arrive pas a dormir..... ....moi suis là, j'attend..... .....patiemment..... ........ben heu...... ........zète tous couchés....??
LOL j'déconnes...ouais je sais C pas l'heure

@ toute !
Content de voir que ça servira au moins réellement à quelque chose!
Moi C pour la création de véhicule et de bijoux..... les découpage et redécoupage...et upload a tout va...ça fait BOOOCOUP de temps perdu......

Au fait j'ai pas pensé à te le dire master....et j'espère ne pas te vexer en te le disant, mais je suis bien entendu prêt à te payer...... bien que mes faibles revenu ne te rendront pas riche!!

Entout cas encore merci de prendre cela en main....et dis moi si en fin de compte cela n'est pas faisable (bien que tu ais l'air d'être réellement un dieu... )

En tout cas...et je le pense au nom de pas mal de personnes sur JOL à qui (j'ai vu au cour de mes nombreuse heures de lectures) tu as bien rendu service.....NOUS TE REMERCIONS POUR TOUT CE QUE TU FAIS !!

un peu de thé monsieur ?.... un massage?.... ah...les deux....eh.... faut pas abuser non plus

me I'm in the lose of my mind... ....Scuzez j'mégard encore...

@+++++
Bon, je vous ai pondu ça:
Code:
integer face = 0;
float rot = 0.0;
float SX = 0.0;
float SY = 0.0;
float PX = 0.0;
float PY = 0.0;
vector scale = ZERO_VECTOR;
vector offset = ZERO_VECTOR;
string texture = "";
string name = "";

str2data (string sTmp) {
    list lTmp = llParseStringKeepNulls(sTmp, ["+"], []);
    sTmp = llList2String(lTmp, 0);
    if (sTmp == name) {
        sTmp = llList2String(lTmp, 1);
        if (sTmp != "") face = (integer)sTmp;
        if (face == -1) face = ALL_SIDES;
        sTmp = llList2String(lTmp, 2);
        if (sTmp != "") SX = (float)sTmp;
        sTmp = llList2String(lTmp, 3);
        if (sTmp != "") SY = (float)sTmp;
        sTmp = llList2String(lTmp, 4);
        if (sTmp != "") PX = (float)sTmp;
        sTmp = llList2String(lTmp, 5);
        if (sTmp != "") PY = (float)sTmp;
        sTmp = llList2String(lTmp, 6);
        if (sTmp != "") rot = (float)sTmp;
        sTmp = llList2String(lTmp, 7);
        if (sTmp != "") texture = sTmp; }
    if (SX > 0) {
        scale.x = 1 / SX;
        offset.x = PX / SX; }
    else {
        SX = 1;
        PX = 1;
        scale.x = 1;
        offset.x = 1; }
    if (SY > 0) {
        scale.y = 1 / SY;
        offset.y = PY / SY; }
    else {
        SY = 1;
        PY = 1;
        scale.y = 1;
        offset.y = 1; }
    llSetPrimitiveParams([PRIM_TEXTURE, face, texture, scale, offset, rot * DEG_TO_RAD]); }

default {
    state_entry() {
        name = llGetObjectName();
        string sTmp = llGetObjectDesc();
        if (sTmp != "") str2data (name + "+" + sTmp); }

    on_rez (integer num) {
        llResetScript(); }

    link_message(integer sender, integer canal, string mess, key id) {
        if ((canal == 99) && (mess != "")) str2data (mess); } }
Bon, alors comment ça marche:
vous nommez vos prims, c'est indispensable, j'aurais pu utiliser le numéro de prim du link, mais sauf à se casser le cul à la sélection des prims pour le link, le numéro de link n'est pas fiable.

vous mettez un script par prim.

et après c'est au choix:

Soit dans la description vous collez la config, soit vous l'envoyez par MessageLinked() sur le canal 99 avec le nom de la prim concernée.

La config, c'est une chaîne de caractères, contenant 7 informations séparées par des "+".
Ces informations sont:
Le numéro de la face que vous voulez changer (-1 pour changer toutes les faces).
Le nombre de colonnes dans la texture.
Le nombre de lignes dans la texture.
Le numéro de colonne contenant la partie à afficher, la première à gauche étant numérotés 0.
Le numéro de ligne contenant la partie à afficher, la première en haut étant numérotée 0.
La rotation en degré de la texture.
Le nom de la texture dans l'inventaire du prim 0 (pas besoin de mettre une texture dans l'inventaire de chaque prim).

Exemple, vous avez 1 texture "drapeau" avec 3 parties sur l'horizontale, pour 3 prims nommées 1, 2 et 3, soyons fous.
Dans la description de la prim 1 vous collez: 1+3+1+0+0+0+drapeau
Pour la prim 2 c'est 1+3+1+1+0+0+drapeau
Et la 3: 1+3+1+2+0+0+drapeau
ou, sans coller la config dans description, vous faites un script du genre:
Code:
default {
    state_entry() {
        llMessageLinked(LINK_SET, 99, "1+1+3+0+0+0+0+drapeau", NULL_KEY);
        llMessageLinked(LINK_SET, 99, "2+1+3+1+0+0+0+drapeau", NULL_KEY);
        llMessageLinked(LINK_SET, 99, "3+1+3+2+0+0+0+drapeau", NULL_KEY); } }
Bon, avec ça, vous pouvez tout faire. Flip-Book, panneau d'affichage, panneau sur autant de prim que vous voulez...

C'est à vous d'envoyer les bons messages aux prims, ou de coller la bonne config dans description.

PS: si une information est absente, la précédente est conservée.
exemple, pour afficher sur 2 face, vous pouvez envoyer les 2 config suivantes:
1+3+0+0+0+0+drapeau puis 1+3+0+0+0+0+drapeau
ou:
1+3+0+0+0+0+drapeau puis 2++++++
ça peut aider.
Ha, une dernière chose.
En théorie, comme ce script manipule des données des prims, c'est comme le llSetText().
une fois la texture faite, si elle ne doit plus bouger, vous pouvez virer le script et la config, ça ne bougera plus
ah...oui au fait j'crois qu'j'ai oublié d'te dire merci master.... suis po sur....

J'ai pas encore eu le temps d'essayer le script car pas de PC avec SL...gnarggragnnee.... j'crois qu'chuis en manque.....addict addict, suis pas addict ! qui a dit ça?!! HEIN QUI!?????

Non, sans déconner... j'ai trouvé un tuto vidéo sur le fameux script "texture align" qui montre ce qu'on peut faire avec exactement... si ça peux te servir pour améliorer ton bb, (vivement ce soir que je sois chez moi pour le tester enfin!!!)

http://www.youtube.com/watch?v=xVPLZ...related&search=

Merci encore master ...quoi... trop de merci?...m'enfin...chui content moi qu'on se préoccupe un peu de ma p'tite personne.....

@allez @ ce soir
joli petit morceau de script...
Mais bon, c'est pas 30 minutes de travail à faire

Mon bout de script en fait autant, mais est bien moins automatisé, tu dois encore configurer le tout
Répondre

Connectés sur ce fil

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