User:Michel Lemmon/Script Sittp

From Second Life Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Script Corso Elementare Sit/Teleport

Scopo: Conoscere le problematiche legate al “sit” e alle posizioni in secondlife, imparare come fare degli script per "sedersi" su un oggetto con e senza posizioni, costruire un elementare teleport.

Pre-Requisiti: rezzare box/sfere, muovere e ridimensionare oggetti, inserire semplici script helloworld, conoscere almeno un evento base (touch)

Durata Stimata: 60 minuti

Nota: Trovate qui di seguito le slide della formazione.

Agenda

  • Come ci si siede in SL
  • Uno script per sedersi SENZA la classica "pallina"
  • Sedersi con le posizioni
  • Semplice script di teletrasporto

Quanto è difficile “sedersi”

  • complicato
  • bisogna essere precisissimi
  • si rischia di essere rifiutati

Newbies e non solo hanno sempre problemi e il risultato tipico è di vedere avatars seduti in modo goffo e scortese.

Sedersi con un semplice script

  • box dimensioni 0.5, 0.5, 0.65 (ottimo sgabello).

Script:

 vector offset = <-0.36515, 0.02789, 0.61359>;
 // corrisponde alla rotazione di eulero <0,0,180> in gradi
 rotation rot = <0,0,1,0>; 
 default
 {
   state_entry()
     {
         llSitTarget(offset, rotation);
     }
 }

Rotazioni

Con Eulero le rotazioni si possono scrivere in questo modo: llEuler2Rot(<30°,30°,90°> * DEG_TO_RAD)  rotazione SL Ruota:

  • 30 gradi attorno all'asse X,
  • 30 gradi attorno all'asse y,
  • 90 gradi attorno all'asse z.

La rotazione <0,0,1,0> corrisponde a <0,0,180°>

Sedersi con la palla

Create, Rezzate una sfera, 0.1x0.1x0.1

  1. selezionate la pallina
  2. tasto destro e SIT sulla pallina
  3. ora potete usare le frecce e i tasti di rotazione tipici di build per muovervi come volete

Script

 float xpos = .3; float ypos = 0.01; float zpos = .35;float xrot = 0; float yrot = 0; float zrot = 0;
 key avatar;//Defines "avatar" as a key.
 default
 {
     state_entry()
 {                  
 llSitTarget(<xpos,ypos,zpos>,llEuler2Rot(<xrot,yrot,zrot> * DEG_TO_RAD));
      	  llSetAlpha(1,ALL_SIDES);
      	  llSetText("Siediti",<0,0,0>,1);      
     }
     changed(integer change){
         avatar = llAvatarOnSitTarget();
        if(change & CHANGED_LINK){
            if(avatar == NULL_KEY){
                 llResetScript();
            }

When sit on....

 else if(avatar){
                 llSetAlpha(0.0, ALL_SIDES);
                 llSetText("", <0.0, 0.0, 0.0>, 1.0);      
            }
         } 
     }
 }

Teleport Semplice

 default
 {
     state_entry()
     {
         llSetText("Teleport up",<1,1,1>,1);
         llSetSitText("Teleport");
         llSitTarget(<3,0,6>, ZERO_ROTATION);
     }
     changed(integer change)
     {
         llSleep(0.15);
         llUnSit(llAvatarOnSitTarget());
     }    
 }

Teleport più complessi:

Prendete le coordinate di arrive dalla mappa

 vector target=<160, 120,200>; // coordinate SLURL
 llSitTarget(target-llGetPos(),ZERO_ROTATION);

Ringraziamenti

Salahzar Stenvaag

Michel's Informazioni
Michel Lemmon2.jpg
Click per Ingrandire


Link VTeam

Michel Lemmon 20:00, 13 april 2008(PST)