The "Post random stuff you've made" thread

Commentary:
The idea is that God planned the Bible in its entirety anyway, and had people (and His Son) play it out as players on His stage. Also, that he wrote it showing His goodness, His own readiness to believe in our abilities and desire to interpret His words. The Angel is able to relate to the imperfections of humanity, being a creation of God himself, and tries to help God understand this point of view.

(However, an overarcing humor is that it really doesn't matter what the Angel proposes, as God shown here as constant as a statue and graceful enough to recieve his servants' words, God would intuitively know the reaction He'd get and provoke it anyway as a test.)

In speaking the Angel only shows his own imperfection, his own fall from grace, as he cannot be as wholly innocent as the Lord.

Further more, says the Angel, God clearly recognises that man cannot interpret 10 laws, and so gives them 2 instead, a shortened version from His Son, Jesus. One could humorously postulate that Jesus was sent only to try to get the word of God across in a more easy to absorb fashion.

These ideas would be the basis for humor in the series, along with Lucifer still working for God, just helping Him seperate the good grain from the bad. Maybe I'm the only one who finds this funny. *shrug*
 
ah, gotcha. I do see the humor in what you've drawn. I'm guessing you spent a lot of time thinking about all the implications of the second pane. I just saw many of the statements for their immediate humor ("man is too stupid", etc), but wouldn't have put together the "In speaking the Angel only shows his own imperfection, his own fall from grace, as he cannot be as wholly innocent as the Lord." part. Deep, man.. far too deep for simple folk like me :)

Ok, So explain the first pane to me. Maybe I just need to put my glasses on, but I can't determine what you're drawing here.
 
Nice dice bag, Mirawyn. Do you knit too, or just crochet? I actually learned how to knit recently. It's a great way to kill time spent riding the gryphons in WoW or between rounds of TAM in UT. So far I've only been knitting hats and scarfs, but I want to try some socks eventually.
Yep, I knit, too. I do both in between battles in PvP sometimes, and during the downtime. :) I haven't learned circular knitting, yet, but I want to learn to knit two socks on two circular needles on my cross-country road trip. I just need sock yarn... Basically, I don't want to have to buy double pointeds.

(If you're interested, you should check out the site my friend Ishylynn and I started, Craft Wonderland. It's a Christian craft forum, small but fairly active for our size.)

Hey! Dorkelf's got some of those million-sided dice!
So do I. In fact, I have more of them than HE does. :)
 
Code:
using System;
using System.Collections.Generic;
using libsecondlife;

namespace SlimSL 
{
    class Program
    {
        public static SecondLife client = new SecondLife();
        public enum CommandList { LOGOFF, HELP, SAY, SHOUT, COME, STOP, BALANCE, SIT, RESETAPP}; //list of commands

        //login information
        private static string[] MasterAv = {""};

        private static string FName = "";
        private static string LName = "";
        private static string Passwd = "";
        private static string ProgramName = "";
        
        static void Main(string[] Args) 
        {

            //trigger a function on login, events <-- important
            client.Network.OnConnected += new NetworkManager.ConnectedCallback(Network_OnConnect);

            //proceed to login //the last var is not needed, usually it is personal info like email address or RL name
            if (client.Network.Login( FName, LName, Passwd, ProgramName, "Spoonies!")) 
            {
                Console.WriteLine("Succeded in logging in " + FName + " " + LName);
            }
            else
            {
                Console.WriteLine("Failed in logging in " + FName + " " + LName);
            }

            //event for instant messages
            client.Self.OnInstantMessage += new MainAvatar.InstantMessageCallback(Self_OnInstantMessage);

            //event for when a teleport command is issued
            client.Self.OnTeleport += new MainAvatar.TeleportCallback(Self_OnTeleport);

            //On Balance change event
            client.Self.OnBalanceUpdated += new MainAvatar.BalanceCallback(Self_OnBalanceUpdated);
         }

        //event for when client connects
        static void Network_OnConnect(object sender)
        {
            //fix the ruth junk look
            client.Appearance.BeginAgentSendAppearance();
        }

        //event for change in money
        static void Self_OnBalanceUpdated(int Balance)
        {
            //client.Self.Chat("Thank you for the tip.", 0, MainAvatar.ChatType.Normal);
        }

        //event for when teleport fires
        static void Self_OnTeleport(string message, MainAvatar.TeleportStatus status, MainAvatar.TeleportFlags flags)
        {
            //client.Self.Chat(message, 0, MainAvatar.ChatType.Normal);
        }

        //triggers on instant message, big nasty list of vars, ive grouped em to similarities
        //some case statements have brackets to force localized variables to prevent warnings
        static void Self_OnInstantMessage(LLUUID fromAgentID, string fromAgentName, 
                                            LLUUID toAgentID, 
                                            uint parentEstateID, LLUUID regionID, LLVector3 position, 
                                            MainAvatar.InstantMessageDialog dialog, bool groupIM, LLUUID imSessionID, 
                                            DateTime timestamp, string message, 
                                            MainAvatar.InstantMessageOnline offline, byte[] binaryBucket)
        {
            if (dialog == MainAvatar.InstantMessageDialog.MessageFromAgent)
            {
                if (Command_Verify_Master(fromAgentName))
                {
                    int Command = Command_Parse(message);

                    if (~Command != 0)
                    {
                        switch (Command)
                        {
                            case 0: //logoff
                                client.Network.Logout();
                                break;
                            case 1: //help
                                Command_IM_Help(fromAgentID, imSessionID);
                                break;
                            case 2: //say
                                Command_Local_say(message, false);
                                break;
                            case 3: //shout
                                Command_Local_say(message, true);
                                break;
                            case 4: //movehere
                                client.Self.AutoPilotLocal((int)position.X, (int)position.Y, (float)position.Z);
                                break;
                            case 5: //stop
                                LLVector3 myPos = client.Self.Position;
                                client.Self.AutoPilotLocal((int)myPos.X, (int)myPos.Y, (float)myPos.Z);
                                break;
                            case 6: //balance
                                client.Self.InstantMessage(fromAgentID, "My balance is: " + client.Self.Balance, imSessionID);
                                break;
                            case 7: //sit
                                {
                                    string[] BreakUp = message.Split(' ');
                                    client.Self.RequestSit(BreakUp[1], LLVector3.Zero);
                                    client.Self.Sit();
                                    break;
                                }
                            case 8: //reset
                                client.Appearance.BeginAgentSendAppearance();
                                break;
                        }

                    }
                    else client.Self.InstantMessage(fromAgentID, "Command Not Found.", imSessionID);
                }
                else client.Self.InstantMessage(fromAgentID, "STFU Newb!", imSessionID);
            }
            else if (dialog == MainAvatar.InstantMessageDialog.RequestTeleport)
            {
                //accept teleport from masters
                if (Command_Verify_Master(fromAgentName))
                    client.Self.TeleportLureRespond(fromAgentID, true);
                else 
                    client.Self.TeleportLureRespond(fromAgentID, false);
            }
        }

        //return 1 if matches a master
        static bool Command_Verify_Master(string Name)
        {
            foreach (string Master in MasterAv)
                if (Master == Name)
                    return true;

            return false;
        }

        //loop through and return the integer value of the enumeration the first word matches or return -1
        static int Command_Parse(string Message)
        {
            string[] BreakUp = Message.Split(' ');
            int i = 0;

            foreach (string Command in Enum.GetNames(typeof(CommandList)))
            {
                if (Command == BreakUp[0].ToUpper())
                    return i;

                ++i;
            }
            return -1;
        }

        //say function, optional shout
        static void Command_Local_say(string Message, bool Shout)
        {
            string[] BreakUp = Message.Split(' ');
            int i = 0;
            string NewMessage = "";

            foreach (string partial in BreakUp)
                if (i++ != 0)
                    NewMessage += partial + " ";  //cover the fact that the spaces are removed

            if (Shout)
                client.Self.Chat(NewMessage, 0, MainAvatar.ChatType.Shout);
            else
                client.Self.Chat(NewMessage, 0, MainAvatar.ChatType.Normal);
        }

        //IM a list of commands to the requester
        static void Command_IM_Help(LLUUID TargetAgentID, LLUUID imSessionID)
        {
            string NewMessage = "Here are the list of available commands: \n ";

            foreach (string command in Enum.GetNames(typeof(CommandList)))
                NewMessage += command + " ";

            client.Self.InstantMessage(TargetAgentID, NewMessage, imSessionID);
        }
    
    }
}

My first venture with C# and using the libSecondLife Library. I wrote most of it saturday, that was fun :p

I need to clean it up a bit still and start moving stuff outta the main file and into classes to handle the various tasks. Scrolling through it all takes awhile :\
 
Back
Top