Objets, script et site web

Répondre
Partager Rechercher
Bonjour à tous.

Voila, j'aimerais faire une sorte de borne.
Quanq quelqu'un la touche, je lance une page web avec un parametre genre www.toto.com/touche.php?pseudo=topbonplan.

je voudrais que le pseudo soit automatiquement le nom du joueur.

Est ce que c'est possible à faire? Est ce qu'il faut louer un terrain pour ça?

En gros comment qu'on fait parce que moi j'y connais rien.

Je voudrais que même quand je suis pas connecté, l'obet existe et fonctionne.

Merci de votre aide.
Bonjour topbonplan,

Citation :
je voudrais que le pseudo soit automatiquement le nom du joueur.
Si je ne me trompe pas, il faut que le joueur soit déjà enregistré sur le site pour que la page personnalisée s'ouvre. Or, aucun script ne te permettra de faire l'enregistrement à sa place. Ce que le script peut faire :
1-Identifier le joueur qui touche la borne par son nom / prénom d'avatar (ou identifiant base de données)
2-Ouvrir une url ciblée, spécifique au joueur, à condition que celui-ci se soit déjà enregistré sur le site.

Citation :
Est ce que c'est possible à faire? Est ce qu'il faut louer un terrain pour ça?
Tu n'as pas besoin de terrain pour créer mais il te faut néanmoins un endroit où poser ton objet sinon il te sera retourné ou supprimé.
L'objet continue d'apparaître même lorsque ton statut est offline à condition d'avoir l'accord du propriétaire de l'endroit.

Je te conseille de regarder déjà un peu comment les scripts fonctionnent sur le wiki de Yeuse : https://forums.jeuxonline.info/showthread.php?t=708840
puis de jetter un oeil sur le lsl wiki : http://www.lslwiki.com/

Si tu as encore des difficultés, nous restons disponibles mais essai déjà par toi-même, bon courage !
Le script c'est ça:

Code:
default
{
    
    touch_start(integer total_number)
    {
        string url="www.toto.com/touche.php?pseudo="+llKey2Name(llDetectedKey(0));
        llLoadURL(llDetectedKey(0), "Et hop, sur le site web",  url);
    }
    
}
Tu mets ça dans un script que tu mets dans un objet que tu mets sur TON terrain. Sinon, c'est squatter le terrain de quelqu'un, et c'est MAL !
Merci beaucoup.

Pour le terrain ... Ben je suis en mode gratuit.
Faut que je trouve quelqu'un qui veut bien me prêter un petit bout du sien sinon faudra que j'investisse un peu mais bon ...

Ca aurait été cool d'intégrer un browser dans SL.
Ca aurait pu simplifier beaucoup de chose.
Citation :
Publié par topbonplan
Merci beaucoup.

Pour le terrain ... Ben je suis en mode gratuit.
Et alors ? Ca ne t'empeche pas de louer, ni d'acheter sur une sim privée.

Citation :
Ca aurait été cool d'intégrer un browser dans SL.
Ca aurait pu simplifier beaucoup de chose.
Il y a déjà un mozilla intégré au client SL. Il est accessible dans la page "Web" de ton profil, où tu peux mettre une URL, et il sert pour le Help (F1). Ils sont en train de travailler depuis longtemps pour inclure d'autres possibilités, et notamment, le sacré Graal: HTML on a prim ! Mais c'est pas encore au point.
Le HTML est supporté bien sur (sinon quel intéret). La fonctionnalité qui n'est pas encore implémentée, c'est "HTML on a prim", c'est à dire la possibilité d'afficher une page web comme une texture sur une prim, comme c'est le cas pour les vidéos.

En attendant, va dans ton profil, choisis l'onglet Web et mets l'URL d'une page que les autres pourront voir dans ton profil.
Merci pour tes conseils Nibb.
La page s'affiche bien. Je n'ai pas réussi à agrandir la fenêtre mais bon c'est déjà çà.

Par contre quand je crée un objet avec en contenu un script, est ce que quand moi je le touche il doit se passer quelque chose ou c'est juste quand les autres le touchent?
Oui, en fait j'ai essayé de faire un script mais ca n'a pas encore l'air de marcher.


Sinon, je cherche un moyen de stocké une variable dans un objet.
Quand quelqu'un touche l'objet, je veux modifier cette variable.

Dans tout ce que j'ai lu je n'ai rien vu qui traite de ça.
Je pensait utiliser l'attibut force (llsetforce et llgetforce).

Mais je sais pas si c'est possible.
Tu gardes ta variable dans le script. le script conserve cette variable, sauf si le script est resetté. Il y a des astuces qui permettent de sauver une valeur même si le script est réinitialisé, mais c'est pas super élégant.
Cela me rappelle le script visitor lister qui garde en mémoire tous les visiteurs en mémoire mais il n'est pas idéal pour le lag (il s'agit d'un script "en veille" ou plus précisément sensor, il détecte automatiquement la personne à proximité).
Je garde ma variable dans le script?

Je déclare une variable globale.
Je test si elle est affectée et j'affecte la valeur 0.
Dans touch_start je l'incremente de 1.

Si 10 personnes touchent mon objet la variable aura comme valeur 10?

Les variables globale sont persistantes une fois le script exécuté?
Code:
list visitor_list;
     float range = 10.0; // in meters
     float rate = 1.0; // in seconds
      
    
     integer isNameOnList( string name )
     {
         integer len = llGetListLength( visitor_list );
         integer i;
         for( i = 0; i < len; i++ )
         {
             if( llList2String(visitor_list, i) == name )
             {
                 return TRUE;
             }
         }
         return FALSE;
     }
    
    
     default
     {
         touch( integer number_detected )
         {
             integer i;
             for( i = 0; i < number_detected; i++ )
             {
                 if( llDetectedKey( i ) != llGetOwner() )
                 {
                     string detected_name = llDetectedName( i );
                     if( isNameOnList( detected_name ) == FALSE )
                     {
                         visitor_list += detected_name;
                     }
                 }
             }    
         }
         
         listen( integer channel, string name, key id, string message )
         {
             if( id != llGetOwner() )
             {
                 return;
             }
             else
             if( message == "liste" )
             {
                 llSay( 0, "Liste des personnes ayant touchees la boite :" );
                 integer len = llGetListLength( visitor_list );
                 integer i;
                 for( i = 0; i < len; i++ )
                 {
                     llSay( 0, llList2String(visitor_list, i) );
                 }
                 llSay( 0, "Total = " + (string)len ); 
             }
             else
             if( message == "reset list" )
             {
                 visitor_list = llDeleteSubList(visitor_list, 0, llGetListLength(visitor_list));
                 llSay( 0, "Done resetting.");
             }
         }        
     }
Bon je l'ai pas testé mais grosso modo ca doit ressembler à ça.
Citation :
Publié par topbonplan
Je garde ma variable dans le script?

Je déclare une variable globale.
Je test si elle est affectée et j'affecte la valeur 0.
Dans touch_start je l'incremente de 1.

Si 10 personnes touchent mon objet la variable aura comme valeur 10?

Les variables globale sont persistantes une fois le script exécuté?
Oui. Les scripts dans SL ne s'arretent jamais de tourner (sauf si on décoche la case Running). Ils sont basés sur les evenements, donc se réveillent dès qu'un evenement (pas exemple touch_start) le stimule.

Donc oui, si tu incremente ton compteur à chaque touch_start(), ça le garde en mémoire. Par exemple:
Code:
integer compteur=0;

default
{
    state_entry()
    {
         llSetText((string)compteur+" clics",<1,1,1>,1);
    }

    touch_start(integer total_number)
    {
        string url="www.toto.com/touche.php?pseudo="+llKey2Name(llDetectedKey(0));
        llLoadURL(llDetectedKey(0), "Et hop, sur le site web",  url);
        compteur++;
        llSetText((string)compteur+" clics",<1,1,1>,1);
    }
    
}
Salut, je débute dans les scripts, j'ai recopié ton script pour avoir accès à un site web en touchant, et ça à l'air de marcher : j'ai une fenêtre : voulez vous vous rendre sur le site ..., mais quand je clic sur oui, rien ne se passe... ?
Unhappy
Citation :
Publié par Willow Ahn
Salut, je débute dans les scripts, j'ai recopié ton script pour avoir accès à un site web en touchant, et ça à l'air de marcher : j'ai une fenêtre : voulez vous vous rendre sur le site ..., mais quand je clic sur oui, rien ne se passe... ?
Tout pareil, j'ai recopié le script mais comme je n'ai pas besoin de la reconnaissance du pseudo, j'ai supprimé cette partie.
Donc, la fenêtre qui demande si l'on souhaite aller sur la page web s'affiche bien, le compteur de clics fonctionne parfaitement, mais rien ne se passe si j'accepte de visiter le site... j'ai raté un épisode ?
Merci de vos avis éclairé... je recopie mon code ci-dessous :
Code:
integer compteur=0;
default
{
	state_entry()
	{
		 llSetText((string)compteur+" clics",<1,1,1>,1);
	}
	touch_start(integer total_number)
	{
		string url=www.monsite.com;
		llLoadURL(llDetectedKey(0), "Et hop, sur le site web", url);
		compteur++;
		llSetText((string)compteur+" clics",<1,1,1>,1);
	}
 
}
Bonsoir,

Il manque le http:// avant le www.monsite.com.
Sinon ce script marche correctement.
Je modifie le wiki.

Bon courage !

Edit : oups, dis une bétise, c'est pas dans le wiki
Citation :
Publié par Phli Foxchase
Bonsoir,

Il manque le http:// avant le www.monsite.com.
Sinon ce script marche correctement.
Je modifie le wiki.

Bon courage !

Edit : oups, dis une bétise, c'est pas dans le wiki
Honte sur moi et toute ma descendance !!!

Merci Phli de ta bienveillance !
Répondre

Connectés sur ce fil

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