Rang: Ehrenmitglied
Mitglied seit: 05.09.2014(UTC) Beiträge: 84  Wohnort: Tulln und Rostock Dankte: 1 mal(e)
|
Für ein Lagerfeuer nimmt man ein Prim, flacht es ab und macht die Seitenflächen unsichtbar (auf 100% Transparenz stellen), und gibt das untenstehende Skript hinein. Nachdem man das Skript reingetan hat, dupliziert man das Prim, und stellt die Kopie quer zu dem ersten Prim auf - wie auf dem angehängten Screenshot dargestellt. Dann klickt man auf das Prim für ein Menü, und wählt "start fire" aus dem Menü. Um das Feuer zu stoppen, klickt man nochmal auf das Prim, und wählt "stop fire". Alle Prims mit dem gleichen Skript, die sich in einem 10 Meter-Radius um das angeklickte Objekt herum befinden, hören auf den gleichen Befehl, damit man ein richtig großes Lagerfeuer machen kann! Code:
key kT1 = "21eeb911-d57a-6a7b-44cd-b9d905860ac6";
key kT2 = "fcf3ce95-b924-c340-6f16-7f8c25196b1d";
key kT3 = "af80baaf-f7e1-c70b-2b1a-1faa6623d3a0";
key kT4 = "00c3fd93-75fe-3e59-3323-5856256d96c2";
list lFire = [kT1, kT2, kT3, kT4];
key kTEXTURE_INVISIBLE = "bd7d7770-39c2-d4c8-e371-0342ecf20921";
vector vREPEATS = <1.0, 1.0, 0.0>;
float fTimer = 0.03;
integer iStartCounter = 0;
integer iCounter = iStartCounter;
integer iMaxCounter = 3;
integer iCHANNEL = 23498;
string sSTART = "start fire";
string sSTOP = "stop fire";
string sTEXT = "Select an option:";
integer iLISTEN;
integer iCHANNEL_LOCAL = 23499;
default
{
state_entry()
{
llListen(iCHANNEL_LOCAL, "", "", "");
}
touch_start(integer num_detected)
{
iLISTEN = llListen(iCHANNEL, "", llDetectedKey(0), "");
llDialog(llDetectedKey(0), sTEXT, [sSTART, sSTOP], iCHANNEL);
}
listen(integer channel, string name, key id, string message)
{
llListenRemove(iLISTEN);
if (message == sSTART)
{ //start fire
if (channel != iCHANNEL_LOCAL)
{
llWhisper(iCHANNEL_LOCAL, sSTART);
}
llSetTimerEvent(fTimer);
}
else if (message == sSTOP)
{ //stop fire
llSetTimerEvent(0.0);
if (channel != iCHANNEL_LOCAL)
{
llWhisper(iCHANNEL_LOCAL, sSTOP);
}
llSetLinkPrimitiveParamsFast(LINK_THIS, [PRIM_TEXTURE, ALL_SIDES, kTEXTURE_INVISIBLE, vREPEATS, ZERO_VECTOR, 0.0]);
}
}
timer()
{
key kTexture = llList2Key(lFire, iCounter++);
llSetLinkPrimitiveParamsFast(LINK_THIS, [PRIM_TEXTURE, ALL_SIDES, kTexture, vREPEATS, ZERO_VECTOR, 0.0]);
if (iCounter > iMaxCounter)
{
iCounter = iStartCounter;
}
}
}
Bearbeitet vom Moderator Freitag, 19. September 2014 09:33:41(UTC)
| Grund: Nicht angegeben MartinRJ Fayray hat die folgenden Dateien hochgeladen:  feuerskript.jpg (71kb) 17x heruntergeladen.Sie können diese Anhänge NICHT Ansehen/Herunterladen. Sie müssen Sich zunächst Registrieren.- |
It is the mark of an educated mind to be able to entertain a thought without accepting it. |