Ten temat został zablokowany, nie możesz edytować ani pisać nowych postów.
Autor Wiadomość
Mężczyzna
PostWysłany: 24 Lis 2010, 19:43 
Awatar użytkownika
Dołączenie:
Grudzień 2009
Posty: 224
nick w SL: Kuleer Kanto
witam. mam skrypt o nazwie online indicator. wlozylem go w tablice ze swoim zdjeciem. pokazuje wtedy kiedy jestem online. chcialem uzyc tego samego skryptu do pokazywania statusu innego avatara. gdzie nalezy wpisac jego klucz? czy mozna w ogole? probowalem wklejac go na chybil trafil ale jakos mi nie wychodzi
oto ten skrypt

integer glow = TRUE;
integer bounce = FALSE;
integer interpColor = TRUE;
integer interpSize = TRUE;
integer wind = FALSE;
integer followSource = FALSE;
integer followVel = FALSE;

// Choose a pattern from the following:
// PSYS_SRC_PATTERN_EXPLODE
// PSYS_SRC_PATTERN_DROP
// PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY
// PSYS_SRC_PATTERN_ANGLE_CONE
// PSYS_SRC_PATTERN_ANGLE
integer pattern = PSYS_SRC_PATTERN_ANGLE_CONE;

key target = "";

float age = 4;
float minSpeed = 0;
float maxSpeed = 0;
string texture = "";
float startAlpha = 1;
float endAlpha = 1;
vector startColor = <0,0,0>;
vector endColor = <0,0,0>;
vector startSize = <.0,.0,.0>;
vector endSize = <.0,.0,.0>;
vector push = <0,0,0>;


float rate = .01;
float radius = .2;
integer count = 50;
float outerAngle = 0;
float innerAngle = PI;
vector omega = <5,5,5>;

integer flags;

updateParticles()
{
if (target == "owner") target = llGetOwner();
if (target == "self") target = llGetKey();
if (glow) flags = flags | PSYS_PART_EMISSIVE_MASK;
if (bounce) flags = flags | PSYS_PART_BOUNCE_MASK;
if (interpColor) flags = flags | PSYS_PART_INTERP_COLOR_MASK;
if (interpSize) flags = flags | PSYS_PART_INTERP_SCALE_MASK;
if (wind) flags = flags | PSYS_PART_WIND_MASK;
if (followSource) flags = flags | PSYS_PART_FOLLOW_SRC_MASK;
if (followVel) flags = flags | PSYS_PART_FOLLOW_VELOCITY_MASK;
if (target != "") flags = flags | PSYS_PART_TARGET_POS_MASK;

llParticleSystem([ PSYS_PART_MAX_AGE, age,
PSYS_PART_FLAGS, flags,
PSYS_PART_START_COLOR, startColor,
PSYS_PART_END_COLOR, endColor,
PSYS_PART_START_SCALE, startSize,
PSYS_PART_END_SCALE, endSize,
PSYS_SRC_PATTERN, pattern,
PSYS_SRC_BURST_RATE, rate,
PSYS_SRC_ACCEL, push,
PSYS_SRC_BURST_PART_COUNT, count,
PSYS_SRC_BURST_RADIUS, radius,
PSYS_SRC_BURST_SPEED_MIN, minSpeed,
PSYS_SRC_BURST_SPEED_MAX, maxSpeed,
PSYS_SRC_TARGET_KEY, target,
PSYS_SRC_INNERANGLE, innerAngle,
PSYS_SRC_OUTERANGLE, outerAngle,
PSYS_SRC_OMEGA, omega,
PSYS_SRC_TEXTURE, texture,
PSYS_PART_START_ALPHA, startAlpha,
PSYS_PART_END_ALPHA, endAlpha
]);
}

integer gIsOnline = FALSE;
integer gLandOwner = FALSE;
key gKey = NULL_KEY;
string gName = "";
float UPDATE_INTERVAL = 5.0;

updateStatus(string s){
key k = llGetLandOwnerAt(llGetPos());
if(s=="1"){
gIsOnline = TRUE;
}else{
gIsOnline = FALSE;
}
}

key getWhom(){
if(gKey == NULL_KEY){
if(gLandOwner){
return llGetLandOwnerAt(llGetPos());
}else{
return llGetOwner();
}
}else{
return gKey;
}
}

doUpdate(){
llRequestAgentData(getWhom(),DATA_ONLINE);
}

updateName(){
llRequestAgentData(getWhom(),DATA_NAME);
}

enable(){
updateName();
doUpdate();
llSetTimerEvent(1);
llWhisper(0,"Online status display enabled.");

}
disable(){
llSetTimerEvent(0);
llSetText("Display Disabled",<1,1,1>,1);
llSetColor(<0,0,1>,ALL_SIDES);
startColor = <0,0,1>;
endColor = <0,0,1>;
updateParticles();
llWhisper(0,"Online status display disabled.");
}

default
{
state_entry()
{
llListen(0, "", llGetOwner(), "");
enable();
llWhisper(0,"Type /ol help for a list of commands");
}
on_rez(integer n){
llResetScript();
}
dataserver(key req, string data){
if(data == "1" || data == "0"){
updateStatus(data);
}else{
gName = data;
llSetText("Getting online status for " + gName,<1,1,1>,1);
llSetColor(<0,0,1>,ALL_SIDES);
startColor = <0,0,1>;
endColor = <0,0,1>;
updateParticles();
llSetTimerEvent(UPDATE_INTERVAL);
}
}
timer(){
doUpdate();
if(gIsOnline){
llSetText(gName + " is Online",<1,1,1>,1);
llSetColor(<0,1,0>,ALL_SIDES);
startColor = <0,1,0>;
endColor = <0,1,0>;
updateParticles();
}else{
llSetText(gName + " is Offline",<1,1,1>,1);
llSetColor(<1,0,0>,ALL_SIDES);
startColor = <1,0,0>;
endColor = <1,0,0>;
updateParticles();
}
}
listen(integer number, string name, key id, string msg){
if (llGetSubString(msg, 0,0) != "/"){
return;
}
list argv = llParseString2List(msg, [" "], []);
integer argc = llGetListLength(argv);
string cmd = llToLower(llList2String(argv, 0));
if(cmd == "/ol"){
string arg = llToLower(llList2String(argv, 1));
if(arg=="on"){
enable();
}else if(arg=="off"){
disable();
}else if(arg=="land"){
gLandOwner = TRUE;
gKey = NULL_KEY;
updateName();
}else if(arg=="key"){
gKey = llList2Key(argv,2);
updateName();
}else if(arg=="me"){
gLandOwner = FALSE;
gKey = NULL_KEY;
updateName();
}else if(arg=="help"){
llWhisper(0,"/ol on - activate online status display");
llWhisper(0,"/ol off - disable online status display");
llWhisper(0,"/ol land - display online status for owner of this land");
llWhisper(0,"/ol me - display your online status");
}
}
}

}


Profil E-mail Offline
Mężczyzna
PostWysłany: 24 Lis 2010, 19:52 
Dołączenie:
Lipiec 2008
Posty: 3307
Skąd: Konin
nick w SL: MaxJames Chemistry
W skrypcie masz taki oto fragment:

Cytuj:
key getWhom(){
if(gKey == NULL_KEY){
if(gLandOwner){
return llGetLandOwnerAt(llGetPos());
}else{
return llGetOwner();
}
}else{
return gKey;
}
}


llGetLandOwnerAt() oraz llGetOwner() zwracają w swoim działaniu klucz właściciela obiektu lub ziemi, na której jest obiekt. Jeżeli chcesz, aby wskazywało na klucz konkretnego awatara (ale nie właściciela), to musisz te funkcje zastąpić po prostu kluczem awatara.

Klucz awatara można pozyskać np. poprzez skrypt, lub ewentualnie niektóre viewery podają klucz awatara, któremu przeglądamy profil (np. Hippo ma taką opcję).


Przykładowy skrypt, który wzróci klucz awatara, który dotknie obiektu:

Cytuj:
default{
state_entry(){
}

touch_start(integer num){
llSay(0, "Twoj klucz to " + llDetectedKey(0) + ".");
}
}


Profil E-mail Offline
Mężczyzna
PostWysłany: 24 Lis 2010, 20:03 
Awatar użytkownika
Dołączenie:
Grudzień 2009
Posty: 224
nick w SL: Kuleer Kanto
klucz avatara mam bo to moja partnerka. Dziekuje bardzo za pomoc.
pozdrawiam


Profil E-mail Offline
Mężczyzna
PostWysłany: 24 Lis 2010, 20:31 
Awatar użytkownika
Dołączenie:
Grudzień 2009
Posty: 224
nick w SL: Kuleer Kanto
ale cos mi nie wychodzi. ciagle mi wyskakuje error. co konkretnie mam zastapic kluczem? cala linijke czy tylko czesc? jak to wpisac? w nawiasie, cudzyslowiu?


Profil E-mail Offline
Mężczyzna
PostWysłany: 24 Lis 2010, 20:38 
Awatar użytkownika
Dołączenie:
Grudzień 2009
Posty: 224
nick w SL: Kuleer Kanto
dobra. juz mam. trzeba to dac w cudzyslowiu. temat do zamkniecia


Profil E-mail Offline

Wyświetl posty z poprzednich:  Sortuj według  

Ten temat został zablokowany, nie możesz edytować ani pisać nowych postów.



Kto jest na forum

Użytkownicy przeglądający to forum: Brak zarejestrowanych użytkowników oraz 3 gości

Panel
Góra
Skocz do:  
SecondLife.pl designed by CvX! Powered by phpBB © phpBB Group - tłumaczenie
SecondLife.pl nie jest oficjalną stroną Second Life. SecondLife.pl is an unofficial Second Life website. SecondLife, SL logo and Second Life related graphics are trademarks of Linden Lab.

Entropia Universe , Planet Calypso