Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
OSSL2Gif
#30
Ich werden das ganze Skript austauschen so das die alten Animationstexturen gelesen werden können und die neuen eine Notecard bekommen.

Prototyp:

Texture-Animation-Script.lsl
PHP-Code:
// Universal LSL Texture Animation Script (Texture-based Notecard)
// Uses: <textureName>.notecard

integer animOn TRUE;

list 
defaultEffects = [LOOP];
integer defaultMovement 0// 0=SLIDE, ROTATE, SCALE
integer face ALL_SIDES;

integer sideX 1;
integer sideY 1;
float start 0.0;
float length 1.0;
float speed 10.0;

string textureName "";
string configNotecard "";

key notecardQuery;
integer notecardLine 0;

string trim(string v)
{
    return 
llStringTrim(vSTRING_TRIM);
}

list 
parseEffects(string value)
{
    list 
llParseString2List(llToUpper(value), [",",";","|"," "], []);
    list 
= [];
    
integer i;
    for(
i=0;i<llGetListLength(t);i++)
    {
        
string s trim(llList2String(t,i));
        if(
== "LOOP"+= [LOOP];
        else if(
== "SMOOTH"+= [SMOOTH];
        else if(
== "REVERSE"+= [REVERSE];
        else if(
== "PING_PONG" || == "PINGPONG"+= [PING_PONG];
    }
    if(
llGetListLength(r) == 0) return defaultEffects;
    return 
r;
}

integer parseMovement(string v)
{
    
llToUpper(trim(v));
    if(
== "ROTATE") return ROTATE;
    if(
== "SCALE") return SCALE;
    return 
0;
}

integer parseFace(string v)
{
    
llToUpper(trim(v));
    if(
== "ALL" || == "ALL_SIDES") return ALL_SIDES;
    return (integer)
v;
}

stopAnim()
{
    
llSetTextureAnim(FALSEface0,0,0,0,0);
}

initAnim()
{
    
integer bits 0;
    
integer i;
    for(
i=0;i<llGetListLength(defaultEffects);i++)
        
bits |= llList2Integer(defaultEffects,i);

    
llSetTextureAnim(ANIM_ON bits defaultMovement,
        
facesideXsideYstartlengthspeed);
}

parseConfig(string line)
{
    
line trim(line);
    if(
line == "" || llGetSubString(line,0,0) == "#" || llGetSubString(line,0,1) == "//")
        return;

    
integer eq llSubStringIndex(line,"=");
    if(
eq == -1) return;

    
string k llToLower(trim(llGetSubString(line,0,eq-1)));
    
string v trim(llGetSubString(line,eq+1,-1));

    if(
== "columns"sideX = (integer)v;
    else if(
== "rows"sideY = (integer)v;
    else if(
== "speed" || == "fps"speed = (float)v;
    else if(
== "start"start = (float)v;
    else if(
== "effects"defaultEffects parseEffects(v);
    else if(
== "movement"defaultMovement parseMovement(v);
    else if(
== "face"face parseFace(v);
    else if(
== "animon")
        
animOn = (llToUpper(v) == "TRUE" || == "1" || == "ON");
}

apply()
{
    if(
textureName == "")
    {
        
llOwnerSay("Keine Textur gefunden.");
        return;
    }

    
llSetTexture(textureNameface);
    
length = (float)(sideX sideY);

    if(
animOninitAnim();
    else 
stopAnim();
}

loadNotecard()
{
    if(
llGetInventoryType(configNotecard) == INVENTORY_NOTECARD)
    {
        
notecardLine 0;
        
notecardQuery llGetNotecardLine(configNotecardnotecardLine);
    }
    else
    {
        
llOwnerSay("Keine Notecard gefunden: " configNotecard);
        
apply();
    }
}

default
{
    
state_entry()
    {
        
stopAnim();

        
textureName llGetInventoryName(INVENTORY_TEXTURE,0);
        if(
textureName == "")
            return;

        
configNotecard textureName ".notecard";
        
loadNotecard();
    }

    
dataserver(key qstring data)
    {
        if(
!= notecardQuery) return;

        if(
data != EOF)
        {
            
parseConfig(data);
            
notecardLine++;
            
notecardQuery llGetNotecardLine(configNotecardnotecardLine);
        }
        else
        {
            
apply();
        }
    }

    
changed(integer c)
    {
        if(
CHANGED_INVENTORY)
            
llResetScript();
    }

    
touch_start(integer t)
    {
        
animOn = !animOn;
        
apply();
    }


bildname.notecard
Code:
# Konfiguration für bildname
columns = 6
rows    = 5
speed   = 5
start   = 0
effects = LOOP
movement = SLIDE
face = ALL
animOn = TRUE

bildname.png
   
Ein Metaversum sind viele kleine Räume, die nahtlos aneinander passen,
sowie direkt sichtbar und begehbar sind, als wäre es aus einem Guss.



[-] The following 1 user says Thank You to Manfred Aabye for this post:
  • Bogus Curry
Zitieren


Nachrichten in diesem Thema
OSSL2Gif - von Manfred Aabye - 12.02.2026, 13:46
RE: OSSL2Gif - von Manfred Aabye - 12.02.2026, 21:00
RE: OSSL2Gif - von Manfred Aabye - 14.02.2026, 15:29
RE: OSSL2Gif - von Dorena Verne - 15.02.2026, 12:56
RE: OSSL2Gif - von Manfred Aabye - 17.02.2026, 10:42
RE: OSSL2Gif - von Pius Noel - 17.02.2026, 17:38
RE: OSSL2Gif - von Manfred Aabye - 18.02.2026, 17:45
RE: OSSL2Gif - von Manfred Aabye - 18.02.2026, 17:52
RE: OSSL2Gif - von Pius Noel - 18.02.2026, 20:06
RE: OSSL2Gif - von Manfred Aabye - 18.02.2026, 18:09
RE: OSSL2Gif - von Manfred Aabye - 19.02.2026, 13:43
RE: OSSL2Gif - von Manfred Aabye - 19.02.2026, 22:00
RE: OSSL2Gif - von Manfred Aabye - 20.02.2026, 18:52
RE: OSSL2Gif - von Manfred Aabye - 21.02.2026, 12:28
RE: OSSL2Gif - von Manfred Aabye - 22.02.2026, 20:26
RE: OSSL2Gif - von Pius Noel - 23.02.2026, 15:05
RE: OSSL2Gif - von Manfred Aabye - 23.02.2026, 16:41
RE: OSSL2Gif - von Dorena Verne - 23.02.2026, 18:21
RE: OSSL2Gif - von Pius Noel - 23.02.2026, 20:50
RE: OSSL2Gif - von Manfred Aabye - 24.02.2026, 15:22
RE: OSSL2Gif - von Dorena Verne - 24.02.2026, 17:27
RE: OSSL2Gif - von Pius Noel - 24.02.2026, 18:44
RE: OSSL2Gif - von Pius Noel - 24.02.2026, 18:54
RE: OSSL2Gif - von Manfred Aabye - 24.02.2026, 19:22
RE: OSSL2Gif - von Manfred Aabye - 24.02.2026, 21:04
RE: OSSL2Gif - von Pius Noel - 25.02.2026, 13:29
RE: OSSL2Gif - von Manfred Aabye - 25.02.2026, 16:17
RE: OSSL2Gif - von Pius Noel - 25.02.2026, 18:01
RE: OSSL2Gif - von Manfred Aabye - 25.02.2026, 19:05
RE: OSSL2Gif - von Manfred Aabye - 26.02.2026, 13:13
RE: OSSL2Gif - von Dorena Verne - 26.02.2026, 14:01
RE: OSSL2Gif - von Manfred Aabye - 26.02.2026, 15:51
RE: OSSL2Gif - von Manfred Aabye - 26.02.2026, 15:29
RE: OSSL2Gif - von Dorena Verne - 26.02.2026, 16:06
RE: OSSL2Gif - von Manfred Aabye - 26.02.2026, 16:32
RE: OSSL2Gif - von Manfred Aabye - 26.02.2026, 16:14
RE: OSSL2Gif - von Dorena Verne - 26.02.2026, 16:56
RE: OSSL2Gif - von Pius Noel - 27.02.2026, 12:08
RE: OSSL2Gif - von Dorena Verne - 27.02.2026, 12:20
RE: OSSL2Gif - von Manfred Aabye - 01.03.2026, 15:36
RE: OSSL2Gif - von Dorena Verne - 01.03.2026, 15:50
RE: OSSL2Gif - von Pius Noel - 02.03.2026, 13:42
RE: OSSL2Gif - von Dorena Verne - 02.03.2026, 14:22

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste