07-27-2007 17:42
Hello,

I have been working with this to try to switch textures when someone clicks on Next, Previous buttons. I have it now where, when a avatar click on the object it brings up a dialog menu. Displaying info about what to do and displays Open, Previous, Next buttons for the links, when someone clicks on open it takes you to the Go To Page dialog. Previous button takes you to the previous link, the next button takes you to the next link. Clicking on either previous or next it changes the texture on the object to correspond with the link.
My problem is that when someone clicks on either previous or next. The textures and the do not match if clicked twice. I been working on this script for a while and still can't figure it out. Thank you for your help.
Mikemmax Benford

<code>
string card="Websites NoteCard";
integer i=0;
integer pointer=0;
list URLs;
list Hover;
key owner;
integer listenID;

default
{
state_entry()
{
llSetText("Loading Websites NoteCard", <1,1,1>, 1.0);
llGetNotecardLine(card, i);
owner=llGetOwner();
}
touch_start(integer times)
{
key who=llDetectedKey(0);
if(who==owner)
{
llDialog(owner, "Open URL or select new target?", ["Open", "Prev", "Next"], 1001);
llListenRemove(listenID);
listenID=llListen(1001, "", owner, "";);
} else {
llLoadURL(llDetectedKey(0), "Load "+llList2String(Hover, pointer), llList2String(URLs, pointer));
}
}
dataserver(key query, string data)
{
if(data!=EOF)
{
list temp=llCSV2List(data);
Hover+=llList2String(temp, 0);
URLs+=llList2String(temp, 1);
i++;
llGetNotecardLine(card, i);
} else {
llSetText(llList2String(Hover, pointer), <1,1,1>, 1.0);
}
}
listen(integer channel, string name, key ID, string message)
{
llSetTimerEvent(60);
if(message=="Open";)
{
llLoadURL(llGetOwner(), "Load "+llList2String(Hover, pointer), llList2String(URLs, pointer));
} else if(message=="Prev";)
{
pointer++;
{
llSetTexture("SeekNlinkSLBanner2", ALL_SIDES);
}

if(pointer==llGetListLength(Hover))

{
pointer=0;

}
} else if(message=="Next";)
{
pointer--;
{
llSetTexture("SecondLinksSLBanner", ALL_SIDES);
}

if(pointer<0)

{
pointer=llGetListLength(Hover);

pointer--;
}
}
llSetText(llList2String(Hover, pointer), <1,1,1>, 1.0);
llListenRemove(listenID);
}
changed(integer change)
{
if(change & CHANGED_INVENTORY)
{
llResetScript();
}
}
timer()
{
llListenRemove(listenID);
}
}
<code>
----------------------------------------------------------------------------------------------
Sorry, Maybe next time I will just think a little harder, Just realized that I need llSetTexture("SecondLinksSLBanner", ALL_SIDES); and llSetTexture("SeekNlinkSLBanner2", ALL_SIDES); on Previous and Next like this:
----------------------------------------------------------------------------------------------

<code>
string card="Websites NoteCard";
integer i=0;
integer pointer=0;
list URLs;
list Hover;
key owner;
integer listenID;

default
{
state_entry()
{
llSetText("Loading Websites NoteCard", <1,1,1>, 1.0);
llGetNotecardLine(card, i);
owner=llGetOwner();
}
touch_start(integer times)
{
key who=llDetectedKey(0);
if(who==owner)
{
llDialog(owner, "Open URL or select new target?", ["Open", "Prev", "Next"], 1001);
llListenRemove(listenID);
listenID=llListen(1001, "", owner, "";);
} else {
llLoadURL(llDetectedKey(0), "Load "+llList2String(Hover, pointer), llList2String(URLs, pointer));

}
}
dataserver(key query, string data)
{
if(data!=EOF)

{
list temp=llCSV2List(data);

Hover+=llList2String(temp, 0);
URLs+=llList2String(temp, 1);

i++;
llGetNotecardLine(card, i);

} else {
llSetText(llList2String(Hover, pointer), <1,1,1>, 1.0);

}
}
listen(integer channel, string name, key ID, string message)
{
llSetTimerEvent(60);
if(message=="Open";)
{
llLoadURL(llGetOwner(), "Load "+llList2String(Hover, pointer), llList2String(URLs, pointer));

} else if(message=="Prev";)
{

pointer++;
llSetTexture("OnRezWebsitePIC", ALL_SIDES);
{

}

if(pointer==llGetListLength(Hover))

{

pointer=0;
llSetTexture("SLExchangeWebsitePIC", ALL_SIDES);

}
} else if(message=="Next";)
{

pointer--;
llSetTexture("SLExchangeWebsitePIC", ALL_SIDES);
{

}

if(pointer<0)

{
pointer=llGetListLength(Hover);

pointer--;
llSetTexture("OnRezWebsitePIC", ALL_SIDES);
}
}


llSetText(llList2String(Hover, pointer), <1,1,1>, 1.0);

llListenRemove(listenID);
}
changed(integer change)
{
if(change & CHANGED_INVENTORY)

{
llResetScript();
}
}
timer()
{
llListenRemove(listenID);
}
}

<code>

Sorry again for posting a stupid question.