Jump to content
You are about to reply to a thread that has been inactive for 111 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

Posted (edited)

I'm not into PBR and have chosen to begin moving in an opposite direction. So I'm starting a thread to work on useful scripts for text-only viewers. The idea is to figure out how to make text-only viewers a fun and viable option for those of us struggling to adapt to PBR. It also means their are tons and tons of problems to solve. Feel free to contribute ideas, thoughts, or anything you think is useful. I'd rather just post my ideas in one thread so they are all in one place. Also, I write code like a noob, so some of this is probably going to make serious programmers feel like pushing me into a volcano. But it's okay, I understand.

Anyways, here's a brief overview of so individual tools I want to make:

1.) A text adventure movement system (I will post this one for now).

2.) A follow script to allow others to lead you (I made one that works when touched).

3.) Kind of unrelated, but I made a simple force-sitter that works using RLV commands but doesn't require the furniture to be RLV that I thought was interesting and could be useful for a lot more that text-only viewers. Really combining it with number two and dropping it in a collar with some sggy clothes that can be clicked away could be a simple and fun AFK/RLV system. I may combine these first few ideas into a single listener script eventually.

4.) A scanner to scan the world around you for object and ppl. This would be a great way to move and then have a look around without needing to hunt around the menus in Radegast or wait for them to load. Not sure how in-depth this would need to be, but pretty sure I can make it. Haven't started on it yet.

5. The mini-map in Radegast is pretty bad. It's usable. But's it's kind of just the world map. And in some versions, opening it can crash the viewer. I know map HUDs exist, so I plan to try to figure how they work and see if it's possible to map a map that displays it's data in text. This could be difficult to do in the local chat box and might possible be a far more obtainable goal to implement in a forked version of Radegast at a later point. Still, an alternative mapping solution that is all text remains desirable.

6. I wonder if I can use the cast ray thing for quick examinations of immediate objects that I think are in front of me.

7. I wonder if the volume detect or collision stuff could be used to examine things I bump into or ppl I bump into. If possible, generating a system that automatically apologizes to ppl I bump into could be useful.

8. EEP text-weather. Possible the best way to make this work would be to check the clock after a TP, then provide a paragraph of related to the time of day and then a little bit of the weather in relation to the time of day, but randomizing the weather messages I get based on the last digit of the clock. A ton of True/False integers could also be used to determine transitions between weather. Seasons may be possible. I also like this idea for language learning.

9. Strip the 3d render and map features from Radegast and begin to fork it.

10. Add a few features to my fork (assuming I can even begin to fork it): Which song is playing and dual channel entry are my first ideas. Plus a text-only map.

11. Can Radegast be made to look pretty? I wonder.

12. And one of my favorites, which is probably the hardest: Create a ACSII render mode for my fork. This one would be great. It would add a render-mode for a text-only viewer, using text, and could possibly--since the image has to be drastically reduced in quality to render nice in ACSII--provide a simple and very cool rendering pipeline to allow the savvy text-only user to view SL in awesome retro style without all the graphical trouble caused by PBR. But really I have no idea how to do this, if I can be done (I think so), or if it would be a good optimized solution (although, igen, I think so).

Anyways. I'll probably just keep posting about text-only tools and scripts in this thread to avoid polluting the rest of the forums. Here is my current text-only movement system, which still works in a 3d viewer, but it super useful in Radegast----:

float TAU = 1.0;

integer listenHandle;

string msg_1 = "Text Adventure Movement System Activated. To view a list of controls and additional commands say: /1 help";
string msg_2 = "The script has been rest.";
string msg_3 = "
Controls: | /1 north | /1 south | /1 west | /1 east |
Additional Commands: | /1 help | /1 reset |";

move_north()
{
vector pos = llGetPos();
llSleep(0.1);
llMoveToTarget(pos+<0,5,0>,TAU);
llSetTimerEvent (3.0);
}
move_south()
{
vector pos = llGetPos();
llSleep(0.1);
llMoveToTarget(pos+<0,-5,0>,TAU);
llSetTimerEvent (3.0);
}
move_west()
{
vector pos = llGetPos();
llSleep(0.1);
llMoveToTarget(pos+<-5,0,0>,TAU);
llSetTimerEvent (3.0);
}
move_east()
{
vector pos = llGetPos();
llSleep(0.1);
llMoveToTarget(pos+<5,0,0>,TAU);
llSetTimerEvent (3.0);
}

default
{
changed (integer change)
    {
    if (change & CHANGED_OWNER)
    llResetScript();
    }
state_entry()
    {
    listenHandle = llListen(1, "", llGetOwner(), "");
    llOwnerSay (msg_1);
    }
    listen (integer channel, string name, key id, string message)
    {
    if (message == "north")
        {
        move_north();    
        }
        else
        {
        if (message == "south")
            {
            move_south();
            }
            else
            {
            if (message == "west")
                {
                move_west();
                }
                else
                {                
                if (message == "east")
                    {
                    move_east();
                    }
                    else
                    {
                    if (message == "help")
                        {
                        llOwnerSay (msg_3);
                        }
                        else
                        {
                        if (message == "reset")
                            {
                            llOwnerSay (msg_2);
                            llSleep (0.1);
                            llResetScript();
                            }
                            else
                            {
                            return;
                            }
                        }
                    }
                }
            }
        }           
    }
    timer()
    {
    llSetTimerEvent(0.0);
    llStopMoveToTarget();
    }
}

If anybody is reading this and scratching their head, I should explain that I used move-to-target in conjunction with a timer to prevent myself from walking into a walk and continuing to attempt to walk into the wall without ever actually reaching the projected movement target. I used channel 1 for simplicity. Ideally, dual channel input who make it so a second channel could be set in addition to local chat, but that's a long way off. The states change to make everything work. I forget way exactly. But I discovered that it didn't matter what state I was in once I started walking around.

Another thing I should note is that I was unable to find anything like this when I looked, hence why I made it instead of just modifying something that already existed. However, I did find other threads where ppl appeared to be interested in this type of movement system, so probably it has bot or AFK applications beyond what I made it for. =]

It works, and I'd like to say it's super optimized and perfect, but the reality is that it might not be and might even be laughable. Anyway, if anybody would like to tear it apart and explain a better and more optimized way to go about it, I'm all ears.

I should probably add flying and sitting to it. But that's for another day.

I feel that leaving the listen open here makes sense here because of reasons.

 

 

 

 

Edited by WeFlossDaily
Fixed code display
Posted

Reading the above was astoundingly fun. I don't know what could be confusing.

I think more than one of your ideas could be useful for more than just text-only. Also, I think it's a fantastic idea what you're doing.

A lot more people use text-only viewers than one might think, and anything that gives them more ease of use and accessibility is worthy of respect, IMO. So yeah, good stuff, I think you've got some worthwhile ideas.

You are about to reply to a thread that has been inactive for 111 days.

Please take a moment to consider if this thread is worth bumping.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...