GridTalk.de

Normale Version: Suche Tür Script
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Ich würde für die Türen der Kabinen auf meinem Schiff ein Tür Script suchen. Auf zu würde reichen.
Türskripte gibts viele- um das passende für dich rauszusuchen sollte es schon etwas genauer sein:

- Dreh- oder Schiebetür?

- verlinkt mit dem Schiff oder unverlinkt?

- 1-Prim-Türen oder bestehen die aus mehreren Teilen?

- soll es auf Anklicken oder auf Kollision reagieren- oder auf beides?
Um Binks Liste zu erweitern:
- Soll sich die Tür automatisch wieder schliessen?
- Soll die Tür ein Geräusch machen?
also ok sorry das ich da so ungenau war. also die türen werden ein prim sein. schliessen muss sie sich nicht selber, geräusch muss sie auch keines machen und sie muss auch nicht verlinkt werden. und eigentlich könnte ich beides brauchen dreh und auch schiebetüre, denn jede kabine hat auch ein stück aussendeck da würde eine schiebetüre ganz gut aussehn. anklicken zum öffnen reicht mir.
Ich empfehle als Door Script:
Simple Door Kit von ORI KERKOR
u.A. zu bekommen auf dieser Region, im den Gebäude wo es Häuser gibt:

SC-Rezz Region
Hier ein Beispiel für eine Drehtür (arbeitet verlinkt und unverklinkt bei 1-Prim-Türen - Sound kann noch eingefügt werden, wenn gewünscht):
 
Code:
float zeit = 10.0 ; // Timer in Sekunden
float volume = 0.5 ; // Lautstärke
integer Zustand_offen;

default
{
    state_entry()
    {
        
        Zustand_offen=FALSE;
     
    }

    touch_start(integer total_number)
    {
        
        if(Zustand_offen==0)
        {
        rotation rot = llGetLocalRot();
    rotation delta = llEuler2Rot(<0,0,PI/4>); // Falsche Richtung? -> Aendere -PI zu PI (oder umgekehrt)
    rot = delta * rot;
    llSetLocalRot(rot);

    rot = delta * rot;
    llSetLocalRot(rot);
        Zustand_offen=TRUE;
     //   llPlaySound(llGetInventoryName(INVENTORY_SOUND,0),volume);  
     // in Zeile 27 entfernen, falls doch Sound gespielt werden soll & Sound zu Skript in Prim packen
         llSetTimerEvent(zeit);// Löschen, falls nicht selbst schließen soll
        }
        
        else
        {
        rotation rot = llGetLocalRot();
    rotation delta = llEuler2Rot(<0,0,-PI/4>);// Falsche Richtung? -> Aendere -PI zu PI (oder umgekehrt)
    rot = delta * rot;
    llSetLocalRot(rot);

    rot = delta * rot;
    llSetLocalRot(rot);
        Zustand_offen=FALSE;
        //   llPlaySound(llGetInventoryName(INVENTORY_SOUND,1),volume);
     // in Zeile 42 entfernen, falls doch Sound gespielt werden soll & 2. Sound zu Skript in Prim packen
         }
     }
         timer()
         {
             if(Zustand_offen!=0)
             {
        rotation rot = llGetLocalRot();
    rotation delta = llEuler2Rot(<0,0,-PI/4>);// Falsche Richtung? -> Aendere -PI zu PI (oder umgekehrt)
    rot = delta * rot;
    llSetLocalRot(rot);

    rot = delta * rot;
    llSetLocalRot(rot);
        Zustand_offen=FALSE;
        //   llPlaySound(llGetInventoryName(INVENTORY_SOUND,1),volume);
     // in Zeile 58 entfernen, falls doch Sound gespielt werden soll
        llResetScript();
               }  
         }
 
    
  }    


Das Ganze noch als Schiebetür:
 
Code:
vector move = <-4.0,0.0,0.0>;// Falsche Richtung? Ändere die Werte anhand des Beispiels (Minus bzw kein Minus ändert die Richtung nur von links nach rechts bzw. umgekehrt): -.2.0 = x-Axis, 0= y-Axis, 0= z-Axis

integer Zustand_offen;

float volume = 0.5 ; // Lautstärke


default
{
    state_entry()
    {
       
        Zustand_offen=FALSE;
        
    }
   
   
    touch_start(integer total_number)
    {
        if(Zustand_offen==0)
        {
        llSetPos(llGetLocalPos() + move);
   
       // llPlaySound(llGetInventoryName(INVENTORY_SOUND,0),volume);
// in obere Zeile entfernen und Sound zu Skript in Inhalt packen, wenn doch Sound gewünscht ist
        Zustand_offen=TRUE;
        
        llSetTimerEvent(10);// Löschen, falls nicht selbst schließen soll
        }
        else
        {
        llSetPos(llGetLocalPos() - move);
        // llPlaySound(llGetInventoryName(INVENTORY_SOUND,0),volume);
    // in oberer Zeile entfernen, wenn doch Sound gewünscht ist
        Zustand_offen=FALSE;
        }
     }
     timer()
        {
             if(Zustand_offen!=0)
          {
             llSetPos(llGetLocalPos() - move);
          // llPlaySound(llGetInventoryName(INVENTORY_SOUND,0),volume);
     // in oberer Zeile entfernen, wenn doch Sound gewünscht ist
        Zustand_offen=FALSE;
        llResetScript();
        }
   }
     
}

Bitte hier der Anleitung am Anfang des Skripts folgen, da die Bewegungsrichtung von der Bauweise abhängt (z.B. welche Ausrichtung auf der Region, falls unverlinkt, oder wie der Rootprim ausgerichtet ist, wenn die Tür in einem Linkset verwendet wird...)
danke^^
Hier noch eine 1 Prim Doppel Slider Türe mit Sound und allem Komfort.
Einfach einen Würfel erstellen und Script rein und fertig.
Jetzt nur noch größe anpassen für den jeweiligen Zweck.
Tür öffnet bei Kollission und auf anklicken, anschliessend schliesst sie selbstständig.
Alles kann im script angepasst werden.
 
Code:
// Türanimation Öffnen und Schließen
 
// Original 1 prim Doppel-Glasschiebetür wurde von Seagel Neville als Public Domain, Nov 2006 hergestellt
// Geändert von Kevin Carbonaro (SL: Kevin Ballinger) 8. März 2007
 
// Gekauft von SL Free Scripts auf www.findensquare.org/sl
//
// Korrekturen:
// - FIX - Durch das Zurücksetzen des Skripts wird das Objekt nicht neu positioniert, skaliert und gedreht, sondern auf bestimmte vordefinierte Zahlen.
//


integer pitch = 5; //Schritte zum öffnen und schliessen der Tür. Je mehr schritte je langsammer.
float TimeInterval = 6.0; //Sekunden, die die Tür offen bleibt.
integer TouchFlag;
integer Holding;
integer SecureFlag;

Open()
{
TouchFlag = TRUE;
llTriggerSound("de7ac1a3-f31b-e1a4-5a21-5b9907921bf1", 1.0);
integer i;
for(i = 0; i < pitch + .5; i++)
{
llSetPrimitiveParams([PRIM_TYPE, 0, 0, <0.000000, 1.000000, 0.000000>,
0.949000, <0.000000, 0.000000, 0.000000>, <(float)i/pitch, 1.000000, 0.000000>,
<0.000000, 0.000000, 0.000000>]);
}
llSetTimerEvent(TimeInterval);
}

Close()
{
llSetTimerEvent(0);
TouchFlag = FALSE;
llTriggerSound("44f32d82-8604-1f29-37c9-a35baec646ee", 1.0);
integer i;
for(i = pitch - 1; i >= 0 ; i--)
{
llSetPrimitiveParams([PRIM_TYPE, 0, 0, <0.000000, 1.000000, 0.000000>,
0.949000, <0.000000, 0.000000, 0.000000>, <(float)i/pitch, 1.000000, 0.000000>,
<0.000000, 0.000000, 0.000000>]);
}
}

TouchOpen()
{
if(TouchFlag == FALSE)
{
Open();
}
else
{
Close();
}
}

CollideOpen()
{
if(TouchFlag == FALSE)
{
Open();
}
else
{
llSetTimerEvent(TimeInterval);
}
}
// Farbe und Material Einstellungen
Init()
{
llSetPrimitiveParams([PRIM_MATERIAL, PRIM_MATERIAL_GLASS, PRIM_SIZE, llGetScale(),
PRIM_TYPE, 0, 0, <0.0, 1.0, 0.0>, 0.949, <0.0, 0.0, 0.0>, <0.0, 1.0, 0.0>, <0.0, 0.0, 0.0>,
PRIM_FULLBRIGHT, ALL_SIDES, TRUE, PRIM_ROTATION, llGetRot(),
PRIM_COLOR, ALL_SIDES, <0.0, 0.0, 0.0>, 0.75, PRIM_POSITION, llGetPos() + (<0, 0, 0> * llGetRot()),
PRIM_TEXTURE, ALL_SIDES, "5748decc-f629-461c-9a36-a35a221fe21f",
<1.0, 1.0, 0.0>, <0.0, 0.0, 0.0>, 0.0]);
}

default
{
state_entry()
{
Init();
}
changed(integer change)
{
if(change & CHANGED_OWNER)
{
llResetScript();
}
}
touch(integer total_number)
{
if(llDetectedKey(0) == llGetOwner())
{
Holding++;
if(Holding == 50)
{
if(SecureFlag == FALSE)
{
llOwnerSay("Door Locked");
SecureFlag = TRUE;
}
else
{
llOwnerSay("Door Unlocked");
SecureFlag = FALSE;
}
}
}
}
touch_end(integer total_number)
{
Holding = 0;
if(SecureFlag == FALSE)
{
TouchOpen();
}
else
{
if(llDetectedKey(0) == llGetOwner())
{
TouchOpen();
}
else
{
llWhisper(0, "Sorry, this door is locked.");
}
}
}
collision_start(integer num_detected)
{
if(SecureFlag == FALSE)
{
CollideOpen();
}
else
{
if(llDetectedKey(0) == llGetOwner())
{
CollideOpen();
}
else
{
llWhisper(0, "Sorry, this door is locked.");
llSleep(5.0);
}
}
}
timer()
{
Close();
}
}


 
Oh danke^^ :-)