Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Hängegleiter Script für BulletSim in 09
#1
Hängegleiter Script für Opensim 09


   


Das Script ist unter Bulletsim in Opensim 09 erprobt. Sollte aber mit Anpassungen auch in anderen Umgebungen (ausser SL) gehen.

Anleitung:

1. Einen Primwürfel erstellen der auf ca. 4 x 3 x 0.4 Meter geformt wird. Primeigenschaften von "Berühren" auf "auf Objekt sitzen" umstellen. Das Prim darf nicht phantom sein!

2. In diesen Würfel eine Sitzanimation hinzufügen.

3. Das Script hinein werfen, resetten und probesitzen. Das Script macht automatisch das Root Prim unsichtbar! Mit Control ALT T kann dieses aber angezeigt werden. Nun testete das Flugobjekt.

4. Sofern alles passt kann nun ein Flugdrachen oder ein anderes ähnlich fliegendes Objekt hinzugelinkt werden. Dazu unbedingt zuerst das Mesh selektieren und danach das Prim mit dem Script. Nun Verlinken. So wird sichergestellt das das Prim Rootprim bleibt.

Der Würfel stellt alleinig die Physik des Flugobjektes dar! Entsprechend sollte es für andere Flugobjekte angepasst werden.



Guten Flug!

Wer den Gleiter nicht selbst bauen will findet einen Meshgleiter bei mir im Souveniershop auf der Isla Bonita.
Dieser hat noch zusätzliche Fähigkeiten.

148.251.8.108:8002/Isla Bonita



Anleitung zur Bedienung:


Mit der Pfeiltaste "Vorwärts" Starten und Schub geben. Erst ab einer Geschwindigkeit oberhalb 20kmh erhält der Drachen Auftrieb
Nun wirkt die BILD AUF (Page UP) Taste und ermöglicht Steigflug.

Die BILD AB  (Page Down) Taste ermöglicht Sinkflug.

Die Cursor Links/Rechts Tasten dienen der Lenkung

Die Cursor RUNTER Taste leitet den Sinkflug zur automatischen Landung ein.

Bitte vor dem Start unbedingt die AO komplett anbehmen, da diese meist an Simgrenzen ein scriptreset durchführt was zum Verlust der Tastaturkontrolle für den Drachen führt.




Code:
// P315 Release V1 Hängegleiter Script für Simcrossing in Opensim 09
// by Tron MCP
// Version 1.0 Stand 29.06.2019
// Creative Commons Version

// Frei zu verwenden für eure Bauten.
// Das Script selbst muss aber kostenfrei und full Perm bleiben sowie der Header intakt.



//==== Globale User Variablen die ohne Multiposer benötigt werden ====
integer      debug = FALSE;                     // Debug Modus

integer      racemode = TRUE;                   // Zeigt Geschwindigkeits Text an
string       sitzanimation;                      // FahrerAnimation
vector       sitzposition = <-0.2, -0.0, -0.12>; // Sitzposition


// === FLUGZEUG KONSTANTEN =====

list        getriebeliste = [  0, 35];        // Antriebskraft je Gang
list        auftriebsliste = [ 0 , 1];        // Auftrieb je Gang
list        lenkgetriebeListe = [0 , 0.4 ]; // Wendigkeit, höhere Werte sind wendiger
list        gangListe = ["Leerlauf", "Flugmodus"];
float       kurvenkraenkung = 5;
float       abfluggeschwindigkeit = 20.0;    // Mindestgeschwindigkeit um Auftrieb zu erhalten

vector      vel;
float       fahrtgeschwindigkeit;           // aktuelle Fluggeschwindigkeit
       
//==== SONSTIGE GLOBAL VARIABLEN ====

float       wasserstand;
key         kapitan;
integer     imflug;
integer     gang;                     // aktuell eingelegter Gang
float       antriebskraft;
float       steigfaehigkeit;
float       lenkansprechverhalten;
integer     ganganzahl;
string      animation;               // aktuell gespielte Animation
integer     landeanflug;


//==== E N D   G L O B A L   V A R I A B L E   D E C L A R A T I O N ====


init_engine()
{
   imflug = FALSE;
   ganganzahl = llGetListLength(getriebeliste);
   llSetSitText("Fliegen");
   vector gSitTarget_Rot = llRot2Euler( llGetRootRotation() ); // SIT TARGET in Anhängigkeit von RootPrim Rotation
   llSitTarget(sitzposition, llEuler2Rot(DEG_TO_RAD * gSitTarget_Rot));
   llSetLinkPrimitiveParamsFast(LINK_ALL_CHILDREN, [PRIM_PHYSICS_SHAPE_TYPE, PRIM_PHYSICS_SHAPE_NONE]);
   llSetLinkAlpha(LINK_THIS, 0.0, ALL_SIDES);    
   llSetLinkAlpha(LINK_ALL_OTHERS, 1.0, ALL_SIDES);
}


gangschaltung(string schalte)
{
   string gangname;

   if (schalte == "Flugmodus") { gang = 1;}  // in Flugmodus schalten    
   else { gang = 0;} // in Leerlauf schalten

   antriebskraft = llList2Float(getriebeliste, gang);
   steigfaehigkeit = llList2Float(auftriebsliste, gang);
   lenkansprechverhalten = llList2Float(lenkgetriebeListe, gang);
   gangname =  llList2String(gangListe , gang);
}


init_followCam()
{
   llSetCameraParams([
                      CAMERA_ACTIVE, 1,                 // 0=INACTIVE  1=ACTIVE
                      CAMERA_BEHINDNESS_ANGLE, 2.5,     // (0 to 180) DEGREES
                      CAMERA_BEHINDNESS_LAG, 0.3,       // (0 to 3) SECONDS
                      CAMERA_DISTANCE, 10.0,            // ( 0.5 to 10) METERS
                      CAMERA_PITCH, 12.0,               // (-45 to 80) DEGREES
                      CAMERA_POSITION_LOCKED, FALSE,    // (TRUE or FALSE)
                      CAMERA_POSITION_LAG, 0.0,         // (0 to 3) SECONDS
                      CAMERA_POSITION_THRESHOLD, 0.0,   // (0 to 4) METERS
                      CAMERA_FOCUS_LOCKED, FALSE,       // (TRUE or FALSE)
                      CAMERA_FOCUS_LAG, 0.0,            // (0 to 3) SECONDS
                      CAMERA_FOCUS_THRESHOLD, 0.0,      // (0 to 4) METERS
                      CAMERA_FOCUS_OFFSET, <-5, 0, 0>   // <-10,-10,-10> to <10,10,10> METERS
                     ]);
   llForceMouselook(FALSE);
}


set_engine()
{
   //Flugzeug PARAMETER
   llSetVehicleType(VEHICLE_TYPE_AIRPLANE);

   // linear friction
   llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, <200, 200, 200> );
 
   // angular friction
   llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 2 );

   // linear motor
   llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, <0, 0, 0> );
   llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 2 );
   llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 1.0 );

   // agular motor
   llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, <0, 0, 0> );
   llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 0 );
   llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 0.4);

   // hover
   llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 2 );
   llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0 );
   llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 3 );
   llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0.977 );

   // linear deflection
   llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0 );
   llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 5 );

   // angular deflection
   llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0.1);
   llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 10);

   // vertical attractor
   llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 );
   llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 1 );

   // banking
   llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 1);
   llSetVehicleFloatParam( VEHICLE_BANKING_MIX, .5);
   llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 0.01);

   // default rotation of local frame
   llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, <0,0,0,1>);

   // remove these flags
   llRemoveVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
                         | VEHICLE_FLAG_HOVER_WATER_ONLY
                         | VEHICLE_FLAG_LIMIT_ROLL_ONLY
                         | VEHICLE_FLAG_HOVER_TERRAIN_ONLY
                         | VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT
                         | VEHICLE_FLAG_HOVER_UP_ONLY
                         | VEHICLE_FLAG_LIMIT_MOTOR_UP );
}


default
{
   state_entry()
   {
       vector bootposition = llGetPos();
       bootposition.z = llGround( ZERO_VECTOR );
       wasserstand = llWater( ZERO_VECTOR );
       if( bootposition.z < wasserstand ) { bootposition.z = wasserstand;}
       llSetRegionPos(bootposition + <0,0,0.1>);
       sitzanimation = llGetInventoryName(INVENTORY_ANIMATION, 0);
       init_engine();
       state Ground;
   }
}


state Ground
{
   state_entry()
   {
       llSetText("",<0,0,0>,1.0);
   }


   on_rez(integer param) { llResetScript();}


   changed(integer change)
   {
       if ((change & CHANGED_LINK) == CHANGED_LINK)
           {
               kapitan = llAvatarOnSitTarget();
               if (kapitan != NULL_KEY)
                   { // wir haben einen Meister
                       llSetStatus(STATUS_PHYSICS, TRUE);
                       llSetStatus(STATUS_ROTATE_Y,TRUE);
                       llSetStatus(STATUS_ROTATE_Z,TRUE);
                       llSetStatus(STATUS_ROTATE_X,TRUE);
                       set_engine();
                       llRequestPermissions(kapitan, PERMISSION_TRIGGER_ANIMATION | PERMISSION_TAKE_CONTROLS | PERMISSION_CONTROL_CAMERA | PERMISSION_TRACK_CAMERA);
                       llSay(0,"Flieger grüß mir die Sonne!\n\r steuer mit Pfeil vorwärts/links/rechts , \n\r kontrollier die Höhe mit Bild auf/ab \n\r lande mit Pfeil runter.");
                       imflug = TRUE; // Teppich fliegt
                       landeanflug = FALSE;
                   }
               else
                   { // Meister hat Teppich verlassen
                       llSetStatus(STATUS_PHYSICS, FALSE);
                       imflug = FALSE; // Teppich steht
                       init_engine();
                       llStopAnimation( animation );    // entfällt bei Multiposer
                       llPushObject(kapitan, <3,3,21>, ZERO_VECTOR, FALSE);
                       llReleaseControls();
                       llClearCameraParams();
                       llSetCameraParams([CAMERA_ACTIVE, 0]);
                       if(racemode) { llSetText("",<0,0,0>,1.0); }
                       llResetScript();
           }
       }

       if ((change & CHANGED_REGION) == CHANGED_REGION)
           {
               if(debug) llWhisper(0,"Simgrenze überquert");
               wasserstand = llWater( ZERO_VECTOR );    // Wasserstand der neuen sim ermitteln
           }
   }


   run_time_permissions(integer perm)
   {
       if (perm)
       {
           gangschaltung("Leerlauf"); // im Leerlauf starten
           llTakeControls(CONTROL_FWD | CONTROL_BACK | CONTROL_DOWN | CONTROL_UP | CONTROL_RIGHT | CONTROL_LEFT | CONTROL_ROT_RIGHT | CONTROL_ROT_LEFT, TRUE, FALSE);
           init_followCam();
           llStopAnimation("sit");
           animation = sitzanimation;  // aktuelle Animation merken
           llStartAnimation(animation);
           llSleep(1.5);
       }
   }


   control(key id, integer held, integer change)
   {
       if(imflug == FALSE) {return;}
       vector AngularMotor;
       
       if(racemode) llSetText( (string)fahrtgeschwindigkeit + " kmh",<1,1,1>,1.0);

       if(held & CONTROL_UP)                       //  STEIGFLUG gewählt
           {
               if( fahrtgeschwindigkeit > abfluggeschwindigkeit )
               {  
                   landeanflug = FALSE;    
                   llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, <antriebskraft *0.75, 0, fahrtgeschwindigkeit * steigfaehigkeit>);  // STEIGEN
                   AngularMotor.y = -2.5;                                                              // NASE anheben
               }
               else { llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, <antriebskraft,0,0>); }  
           }

       else if(held & CONTROL_DOWN)                // SINKFLUG gewählt
           {
               llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, <antriebskraft *2, 0, - fahrtgeschwindigkeit * steigfaehigkeit>);       // SINKEN
               AngularMotor.y = 3.5;                                                                   // NASE runterdrücken
           }        

       else if (held & CONTROL_FWD)                // weiterhin Vorwärts Gas gegeben
           { llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, <antriebskraft,0,0>); }    

       if (~held & change & CONTROL_FWD)              // Auf Vorwärtsflug geschalten
           {
               if (gang < 1)
                   {
                       gangschaltung("Flugmodus");
                       llSetTimerEvent(1.0); // gestartet: nun kontinuierlicher Hoehenverlust und Vortrieb zuschalten
                       llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, <antriebskraft/2 ,0,0>);  
                   }
           }
           
       else if (held & CONTROL_BACK)               // Automatisches Landen gewählt
           {
               if (!landeanflug) llSay(0,"Landung eingeleitet");
               landeanflug = TRUE;
               AngularMotor.y = 1;                                                                     // NASE runterdrücken
           }


       if  (held & CONTROL_ROT_RIGHT)              // Steuerung nach RECHTS erfolgt
       {
           if( fahrtgeschwindigkeit > 3 )                                                              // Einknicken in Kurvenmittelpunkt
           {
               AngularMotor.x += ( lenkansprechverhalten * kurvenkraenkung );                          // ROLLEN rechts
               AngularMotor.y =  AngularMotor.y - ( lenkansprechverhalten * kurvenkraenkung * 0.5);    // NASE anheben
           }
           AngularMotor.z -= lenkansprechverhalten;                                                    // RECHTS DREHEN
       }

       else if (held & CONTROL_ROT_LEFT)           // Steuerung nach LINKS erfolgt
       {
           if( fahrtgeschwindigkeit > 3 )                                                              // Einknicken in Kurvenmittelpunkt
           {
               AngularMotor.x -= ( lenkansprechverhalten * kurvenkraenkung );                          // ROLLEN links
               AngularMotor.y =  AngularMotor.y - ( lenkansprechverhalten * kurvenkraenkung * 0.5);    // NASE anheben
           }
           AngularMotor.z += lenkansprechverhalten;                                                    // LINKS DREHEN
       }
       llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION, AngularMotor);        
   }


   timer()
   {
       llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, < 10 , 0, -8>); // kontinuierlichen Vortrieb von 10 udn Sinken von 8

       vel = llGetVel();
       fahrtgeschwindigkeit = llVecMag(vel); // Geschwindigkeit ermitteln

       vector drachenposition = llGetPos();
       float flughoehe = drachenposition.z - llGround( ZERO_VECTOR );    
       if (flughoehe < 2 )                    // automatisch landen
       {
           llSetTimerEvent(0.0);
           llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, < 0,0,0>);        
           if( drachenposition.z < wasserstand ) { drachenposition.z = wasserstand;}
           llSetRegionPos(drachenposition + <0,0,0.1>);
           gangschaltung( "Leerlauf");
           llSetText("",<0,0,0>,1.0);
       }
   }
}
Antworten }
Thanks given by: Loru Destiny , Achim , Manni
#2
Hallo Tron,

wer nutzt noch Bullet? Das Zeitalter ist UbODE.

Bullet ist einfach nur alt!
---------
DarkWolf

Virtual Life Grid


Lebe dein Leben - lebe es, denn es ist Deins

Was zum nachdenken für SIM Betreiber

"Ist es Kunst - oder kann es weg?
(Zitat Josch Wolf)
Antworten }
Thanks given by:
#3
Klasse werde ich mir nachher mal abholen kommen Wink

Übrigens DarkWolf 99% der Nutzer nutzen BulletSim.
Leider lebt der erschaffer nicht mehr und er hat auch keine Informationen oder Anleitungen hinterlassen.
Das ist also die nächste Blackbox.

BulletSim müste Upgegradet werden und die Robotic sowie fehlende Funktionen müsten in ossl zur verfügung stehen.
- Beipackzettel: Kann Spuren von persönlichen Meinungen, Sarkasmus und Ironie enthalten.
Ausdrücke sind nicht für den Verkehr geeignet. Gelesen mindestens haltbar, siehe oben. -
Antworten }
Thanks given by:
#4
Hallo Darkwolf,

ich habe über 100 verschiedenen Physik Scritpe und Varianten für Bulletsim erstellt, getestet und auf meinem eigenen Grid laufend.

Zum Beispiel Fahrzeuge, Skydiving, Lawinenabgänge oder auch Packeisabbruch mit Tsunami Auslösung.

Ohne Not werde ich mein Grid nicht umstellen- jedoch sicher irgendwann mal eine Testsim für andere Physik erstellen.

Alleine mir fehlt die Zeit zur Portierung aller Scripte, da Scripte nur ein kleiner Teil meiner Interessen sind.

Üblicherweise gehen wir anders vor: Wir suchen ein neues Thema, und erstellen Content dafür. Nur wenn ein Script benötigt wird, dann nehme ich mir dafür Zeit.

Aber du könntest mich ja positiv motivieren wenn du die Vorteile und Unterschiede der Physik Engines kennst und veröffentlichst.

@Manni: ich würde gerne deine Hilfe annehmen um die fliegenden Vogelschwärme in der 09 zu integrieren. Diese wären auf manchen unserer Sims eine echte Bereicherung. Du hattest mal von einem Modul geschrieben, das bei mir aber im Test nicht zum Leben zu erwecken war. Könntest du bitte eine genaue Anleitung schreiben wie das geht, und welche Abhängigkeiten bestehen?

Ach ja- die Erweiterung des Gleiters im Souveniershop auf der Isla, besteht in 2 Partikel Emittern die ab 50kmh automatisch aktiv werden und bunte Streifen in den Himmel zaubern.
Antworten }
Thanks given by:
#5
Also ich hab das Birds Modul Portiert aber das laggt sehr, deswegen hab ich das auch nicht weiter verfolgt.
Lauffähig hab ich das ab 0.9.x.x.
Einige Module habe ich hier rein gestellt: https://github.com/BigManzai/opensim.modules
Ich suche mal wo ich das habe.
- Beipackzettel: Kann Spuren von persönlichen Meinungen, Sarkasmus und Ironie enthalten.
Ausdrücke sind nicht für den Verkehr geeignet. Gelesen mindestens haltbar, siehe oben. -
Antworten }
Thanks given by:
#6
(22.07.2019, 14:19)Manni schrieb: Also ich hab das Birds Modul Portiert aber das laggt sehr, deswegen hab ich das auch nicht weiter verfolgt.
Lauffähig hab ich das ab 0.9.x.x.
Einige Module habe ich hier rein gestellt:  https://github.com/BigManzai/opensim.modules
Ich suche mal wo ich das habe.

ja, das wäre super.

Ist das Modul in den Siminstanzen hinzuzufügen oder in der Robust?

Cool wäre eine genaue Anleitung.

Danke
Antworten }
Thanks given by:
#7
OpenSim.Framework.Communications verschoben nach OpenSim.Framework 2015-09-04 21:39 Diva Canto.

Korrigiert 0 Fehler, ich hab nur keine lust das jetzt zu testen weil ich in der oswp Entwicklung bin.

Im Verzeichnis /bin ist meine kompilation für OpenSim 0.9.1.0.1009 könnte auch mit 0.9 laufen muss man testen.

Sonst einfach mit deiner neu kompilieren.

https://github.com/BigManzai/OpenSimBirds


Code:
cd ~/opensim/addon-modules
git clone https://github.com/BigManzai/OpenSimBirds.git
cd ~/opensim
./runprebuild.sh
msbuild /p:Configuration=Release
Also das wird in den Regions.ini Dateien eingefügt dort wird das dann für die entsprechende Region Aktiviert.
Mehr als 2 Regionen verkraftete mein Server nicht.
Du kannst den Vogel auch gegen Meteore, oder alles was du fliegen lassen möchtest austauschen.
- Beipackzettel: Kann Spuren von persönlichen Meinungen, Sarkasmus und Ironie enthalten.
Ausdrücke sind nicht für den Verkehr geeignet. Gelesen mindestens haltbar, siehe oben. -
Antworten }
Thanks given by:
#8
(22.07.2019, 15:37)Manni schrieb: OpenSim.Framework.Communications verschoben nach OpenSim.Framework 2015-09-04 21:39 Diva Canto.

Korrigiert 0 Fehler, ich hab nur keine lust das jetzt zu testen weil ich in der oswp Entwicklung bin.

Im Verzeichnis /bin ist meine kompilation für OpenSim 0.9.1.0.1009 könnte auch mit 0.9 laufen muss man testen.

Sonst einfach mit deiner neu kompilieren.

https://github.com/BigManzai/OpenSimBirds


Code:
cd ~/opensim/addon-modules
git clone https://github.com/BigManzai/OpenSimBirds.git
cd ~/opensim
./runprebuild.sh
msbuild /p:Configuration=Release
Also das wird in den Regions.ini Dateien eingefügt dort wird das dann für die entsprechende Region Aktiviert.
Mehr als 2 Regionen verkraftete mein Server nicht.
Du kannst den Vogel auch gegen Meteore, oder alles was du fliegen lassen möchtest austauschen.

danke dir! Ich werde es testen. Falls es zuviel Last zieht sollten wir mal eine Umsetzung in Assembler überlegen. Ausserdem könnten Trigonometrische Funktionen durch fertige Tabellen ersetzt werden. Und exakte Berechnungen durch vereinfachte Näherungen.
Antworten }
Thanks given by:
#9
(22.07.2019, 17:51)Tron Mcp schrieb: danke dir! Ich werde es testen. Falls es zuviel Last zieht sollten wir mal eine Umsetzung in Assembler überlegen. Ausserdem könnten Trigonometrische Funktionen durch fertige Tabellen ersetzt werden. Und exakte Berechnungen durch vereinfachte Näherungen.

Wenn du so gut bist, das du so etwas in Assembler umsetzen kannst, dann könntest du mir einen gefallen tun.
Ersetze doch bitte mal diesen Python 2.7 32bit Second Life Viewer Autobuild Installer
gegen einen der in Visual Studio 2017 oder 2019 64bit funktioniert.
So das man OpenSim Viewer in Visual Studio kompilieren kann.
Ich habe schon bestimmt 100 mal versucht einen Viewer zu kompilieren aber das geht einfach nicht.
Es gibt da eine 2013 Anleitung die aber unter vs2017 und vs2019 nicht funktioniert:
http://wiki.secondlife.com/wiki/Visual_S...wer_Builds
Weitere Anleitungen:
http://wiki.secondlife.com/wiki/Compilin..._(MSVS2005)
https://wiki.firestormviewer.org/fs_compiling_firestorm


Dieses alte zeug vor VS2015 läuft auf meinem Computer nicht.

Nachtrag habe VS2017 gefunden hier:
https://bitbucket.org/lindenlab/viewer-v...c/default/
- Beipackzettel: Kann Spuren von persönlichen Meinungen, Sarkasmus und Ironie enthalten.
Ausdrücke sind nicht für den Verkehr geeignet. Gelesen mindestens haltbar, siehe oben. -
Antworten }
Thanks given by:
#10
(23.07.2019, 11:27)Manni schrieb:
(22.07.2019, 17:51)Tron Mcp schrieb: danke dir! Ich werde es testen. Falls es zuviel Last zieht sollten wir mal eine Umsetzung in Assembler überlegen. Ausserdem könnten Trigonometrische Funktionen durch fertige Tabellen ersetzt werden. Und exakte Berechnungen durch vereinfachte Näherungen.

Wenn du so gut bist, das du so etwas in Assembler umsetzen kannst, dann könntest du mir einen gefallen tun.
Ersetze doch bitte mal diesen Python 2.7 32bit Second Life Viewer Autobuild Installer
gegen einen der in Visual Studio 2017 oder 2019 64bit funktioniert.
So das man OpenSim Viewer in Visual Studio kompilieren kann.
Ich habe schon bestimmt 100 mal versucht einen Viewer zu kompilieren aber das geht einfach nicht.
Es gibt da eine 2013 Anleitung die aber unter vs2017 und vs2019 nicht funktioniert:
http://wiki.secondlife.com/wiki/Visual_S...wer_Builds
Weitere Anleitungen:
http://wiki.secondlife.com/wiki/Compilin..._(MSVS2005)
https://wiki.firestormviewer.org/fs_compiling_firestorm


Dieses alte zeug vor VS2015 läuft auf meinem Computer nicht.

Nachtrag habe VS2017 gefunden hier:
https://bitbucket.org/lindenlab/viewer-v...c/default/

Ich muss dich da aus Zeitgründen leider enttäuschen Manni. Ich lebe schon 3 Leben. Sobald das Arbeitsleben Geschichte ist, und ich anfange mich zu langweilen, können wir gerne da tiefer einsteigen. Ich habe früher Gerätetreiber für Echtzeitbetriebssystem in Assembler geschrieben, und in C eine komplette GUI. Das frisst viel Zeit, die ich nicht mehr habe.
Antworten }
Thanks given by:


Gehe zu:


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